From f054190a60699b1fe459a3f34edd235000bc1096 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 18 Oct 2024 18:58:58 +0000 Subject: [PATCH] build based on 1cb07d7 --- previews/PR563/.documenter-siteinfo.json | 1 + previews/PR563/POMDPTools/beliefs/index.html | 7 + .../PR563/POMDPTools/common_rl/index.html | 16 + .../PR563/POMDPTools/distributions/index.html | 11 + previews/PR563/POMDPTools/index.html | 2 + previews/PR563/POMDPTools/model/index.html | 42 + previews/PR563/POMDPTools/policies/index.html | 41 + .../PR563/POMDPTools/simulators/index.html | 80 ++ previews/PR563/POMDPTools/testing/index.html | 8 + .../PR563/POMDPTools/visualization/index.html | 7 + previews/PR563/api/index.html | 36 + previews/PR563/assets/documenter.js | 1064 +++++++++++++++++ previews/PR563/assets/logo.png | Bin 0 -> 21765 bytes .../PR563/assets/themes/catppuccin-frappe.css | 1 + .../PR563/assets/themes/catppuccin-latte.css | 1 + .../assets/themes/catppuccin-macchiato.css | 1 + .../PR563/assets/themes/catppuccin-mocha.css | 1 + .../PR563/assets/themes/documenter-dark.css | 7 + .../PR563/assets/themes/documenter-light.css | 9 + previews/PR563/assets/themeswap.js | 84 ++ previews/PR563/assets/warner.js | 52 + previews/PR563/concepts/index.html | 2 + previews/PR563/def_pomdp/index.html | 199 +++ previews/PR563/def_solver/index.html | 2 + previews/PR563/def_updater/index.html | 32 + .../example_defining_problems/index.html | 250 ++++ .../PR563/example_gridworld_mdp/index.html | 403 +++++++ previews/PR563/example_simulations/index.html | 181 +++ previews/PR563/example_solvers/index.html | 155 +++ previews/PR563/examples/DroneSurveillance.gif | Bin 0 -> 267119 bytes previews/PR563/examples/EscapeRoomba.gif | Bin 0 -> 77830 bytes previews/PR563/examples/QuickMountainCar.gif | Bin 0 -> 41909 bytes previews/PR563/examples/RockSample.gif | Bin 0 -> 84260 bytes previews/PR563/examples/TagPOMDP.gif | Bin 0 -> 129043 bytes .../PR563/examples/crying_baby_examples.jl | 230 ++++ .../PR563/examples/crying_baby_solvers.jl | 24 + .../PR563/examples/grid_world_overview.gif | Bin 0 -> 8958 bytes previews/PR563/examples/index.html | 2 + previews/PR563/faq/index.html | 17 + previews/PR563/figures/concepts.png | Bin 0 -> 30557 bytes .../PR563/figures/interface_relationships.svg | 639 ++++++++++ previews/PR563/figures/mdp_ddn.svg | 748 ++++++++++++ previews/PR563/figures/pomdp_ddn.svg | 829 +++++++++++++ .../PR563/figures/requirements_info_gw.png | Bin 0 -> 90687 bytes .../PR563/figures/requirements_info_new.png | Bin 0 -> 171472 bytes previews/PR563/gallery/index.html | 190 +++ previews/PR563/get_started/index.html | 16 + previews/PR563/index.html | 2 + previews/PR563/install/index.html | 3 + previews/PR563/interfaces/index.html | 2 + previews/PR563/objects.inv | Bin 0 -> 5841 bytes previews/PR563/offline_solver/index.html | 73 ++ previews/PR563/online_solver/index.html | 59 + previews/PR563/policy_interaction/index.html | 2 + previews/PR563/run_simulation/index.html | 3 + previews/PR563/search_index.js | 3 + previews/PR563/simulation/index.html | 24 + previews/PR563/siteinfo.js | 1 + 58 files changed, 5562 insertions(+) create mode 100644 previews/PR563/.documenter-siteinfo.json create mode 100644 previews/PR563/POMDPTools/beliefs/index.html create mode 100644 previews/PR563/POMDPTools/common_rl/index.html create mode 100644 previews/PR563/POMDPTools/distributions/index.html create mode 100644 previews/PR563/POMDPTools/index.html create mode 100644 previews/PR563/POMDPTools/model/index.html create mode 100644 previews/PR563/POMDPTools/policies/index.html create mode 100644 previews/PR563/POMDPTools/simulators/index.html create mode 100644 previews/PR563/POMDPTools/testing/index.html create mode 100644 previews/PR563/POMDPTools/visualization/index.html create mode 100644 previews/PR563/api/index.html create mode 100644 previews/PR563/assets/documenter.js create mode 100644 previews/PR563/assets/logo.png create mode 100644 previews/PR563/assets/themes/catppuccin-frappe.css create mode 100644 previews/PR563/assets/themes/catppuccin-latte.css create mode 100644 previews/PR563/assets/themes/catppuccin-macchiato.css create mode 100644 previews/PR563/assets/themes/catppuccin-mocha.css create mode 100644 previews/PR563/assets/themes/documenter-dark.css create mode 100644 previews/PR563/assets/themes/documenter-light.css create mode 100644 previews/PR563/assets/themeswap.js create mode 100644 previews/PR563/assets/warner.js create mode 100644 previews/PR563/concepts/index.html create mode 100644 previews/PR563/def_pomdp/index.html create mode 100644 previews/PR563/def_solver/index.html create mode 100644 previews/PR563/def_updater/index.html create mode 100644 previews/PR563/example_defining_problems/index.html create mode 100644 previews/PR563/example_gridworld_mdp/index.html create mode 100644 previews/PR563/example_simulations/index.html create mode 100644 previews/PR563/example_solvers/index.html create mode 100644 previews/PR563/examples/DroneSurveillance.gif create mode 100644 previews/PR563/examples/EscapeRoomba.gif create mode 100644 previews/PR563/examples/QuickMountainCar.gif create mode 100644 previews/PR563/examples/RockSample.gif create mode 100644 previews/PR563/examples/TagPOMDP.gif create mode 100644 previews/PR563/examples/crying_baby_examples.jl create mode 100644 previews/PR563/examples/crying_baby_solvers.jl create mode 100644 previews/PR563/examples/grid_world_overview.gif create mode 100644 previews/PR563/examples/index.html create mode 100644 previews/PR563/faq/index.html create mode 100644 previews/PR563/figures/concepts.png create mode 100644 previews/PR563/figures/interface_relationships.svg create mode 100644 previews/PR563/figures/mdp_ddn.svg create mode 100644 previews/PR563/figures/pomdp_ddn.svg create mode 100644 previews/PR563/figures/requirements_info_gw.png create mode 100644 previews/PR563/figures/requirements_info_new.png create mode 100644 previews/PR563/gallery/index.html create mode 100644 previews/PR563/get_started/index.html create mode 100644 previews/PR563/index.html create mode 100644 previews/PR563/install/index.html create mode 100644 previews/PR563/interfaces/index.html create mode 100644 previews/PR563/objects.inv create mode 100644 previews/PR563/offline_solver/index.html create mode 100644 previews/PR563/online_solver/index.html create mode 100644 previews/PR563/policy_interaction/index.html create mode 100644 previews/PR563/run_simulation/index.html create mode 100644 previews/PR563/search_index.js create mode 100644 previews/PR563/simulation/index.html create mode 100644 previews/PR563/siteinfo.js diff --git a/previews/PR563/.documenter-siteinfo.json b/previews/PR563/.documenter-siteinfo.json new file mode 100644 index 00000000..99648437 --- /dev/null +++ b/previews/PR563/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.11.1","generation_timestamp":"2024-10-18T18:58:52","documenter_version":"1.7.0"}} \ No newline at end of file diff --git a/previews/PR563/POMDPTools/beliefs/index.html b/previews/PR563/POMDPTools/beliefs/index.html new file mode 100644 index 00000000..78177521 --- /dev/null +++ b/previews/PR563/POMDPTools/beliefs/index.html @@ -0,0 +1,7 @@ + +Implemented Belief Updaters · POMDPs.jl

Implemented Belief Updaters

POMDPTools provides the following generic belief updaters:

  • a discrete belief updater
  • a k previous observation updater
  • a previous observation updater
  • a nothing updater (for when the policy does not depend on any feedback)

For particle filters see ParticleFilters.jl.

Discrete (Bayesian Filter)

The DiscreteUpater is a default implementation of a discrete Bayesian filter. The DiscreteBelief type is provided to represent discrete beliefs for discrete state POMDPs.

A convenience function uniform_belief is provided to create a DiscreteBelief with equal probability for each state.

POMDPTools.BeliefUpdaters.DiscreteBeliefType
DiscreteBelief

A belief specified by a probability vector.

Normalization of b is assumed in some calculations (e.g. pdf), but it is only automatically enforced in update(...), and a warning is given if normalized incorrectly in DiscreteBelief(pomdp, b).

Constructor

DiscreteBelief(pomdp, b::Vector{Float64}; check::Bool=true)

Fields

  • pomdp : the POMDP problem
  • state_list : a vector of ordered states
  • b : the probability vector
source

K Previous Observations

POMDPTools.BeliefUpdaters.KMarkovUpdaterType
KMarkovUpdater

Updater that stores the k most recent observations as the belief.

Example:

up = KMarkovUpdater(5)
+s0 = rand(rng, initialstate(pomdp))
+initial_observation = rand(rng, initialobs(pomdp, s0))
+initial_obs_vec = fill(initial_observation, 5)
+hr = HistoryRecorder(rng=rng, max_steps=100)
+hist = simulate(hr, pomdp, policy, up, initial_obs_vec, s0)
source

Previous Observation

Nothing Updater

diff --git a/previews/PR563/POMDPTools/common_rl/index.html b/previews/PR563/POMDPTools/common_rl/index.html new file mode 100644 index 00000000..935ebf39 --- /dev/null +++ b/previews/PR563/POMDPTools/common_rl/index.html @@ -0,0 +1,16 @@ + +CommonRLInterface Integration · POMDPs.jl

CommonRLInterface Integration

POMDPTools provides two-way integration with the CommonRLInterface.jl package. Using the convert function, one can convert an MDP or POMDP object to a CommonRLInterface environment, or vice-versa.

For example,

using POMDPs
+using POMDPTools
+using POMDPModels
+using CommonRLInterface
+
+env = convert(AbstractEnv, BabyPOMDP())
+
+r = act!(env, true)
+observe(env)

converts a Crying Baby POMDP to an RL environment and acts in and observes the environment. This environment (or any other CommonRLInterface environment), can be converted to an MDP or POMDP:

using BasicPOMCP
+
+m = convert(POMDP, env)
+planner = solve(POMCPSolver(), m)
+a = action(planner, initialstate(m))

You can also use the constructors listed below to manually convert between the interfaces.

Environment Wrapper Types

Since the standard reinforcement learning environment interface offers less information about the internal workings of the environment than the POMDPs.jl interface, MDPs and POMDPs created from these environments will have limited functionality. There are two types of (PO)MDP types that can wrap an environment:

Generative model wrappers

If the state and setstate! CommonRLInterface functions are provided, then the environment can be wrapped in a RLEnvMDP or RLEnvPOMDP and the POMDPs.jl generative model interface will be available.

Opaque wrappers

If the state and setstate! are not provided, then the resulting POMDP or MDP can only be simulated. This case is represented using the OpaqueRLEnvPOMDP and OpaqueRLEnvMDP wrappers. From the POMDPs.jl perspective, the state of the opaque (PO)MDP is just an integer wrapped in an OpaqueRLEnvState. This keeps track of the "age" of the environment so that POMDPs.jl actions that attempt to interact with the environment at a different age are invalid.

Constructors

Creating RL environments from MDPs and POMDPs

POMDPTools.CommonRLIntegration.MDPCommonRLEnvType
MDPCommonRLEnv(m, [s])
+MDPCommonRLEnv{RLO}(m, [s])

Create a CommonRLInterface environment from MDP m; optionally specify the state 's'.

The RLO parameter can be used to specify a type to convert the observation to. By default, this is AbstractArray. Use Any to disable conversion.

source
POMDPTools.CommonRLIntegration.POMDPCommonRLEnvType
POMDPCommonRLEnv(m, [s], [o])
+POMDPCommonRLEnv{RLO}(m, [s], [o])

Create a CommonRLInterface environment from POMDP m; optionally specify the state 's' and observation 'o'.

The RLO and RLS parameters can be used to specify types to convert the observation and state to. By default, this is AbstractArray. Use Any to disable conversion.

source

Creating MDPs and POMDPs from RL environments

POMDPTools.CommonRLIntegration.RLEnvMDPType
RLEnvMDP(env; discount=1.0)

Create an MDP by wrapping a CommonRLInterface.AbstractEnv. state and setstate! from CommonRLInterface must be provided, and the POMDPs generative model functionality will be provided.

source
POMDPTools.CommonRLIntegration.RLEnvPOMDPType
RLEnvPOMDP(env; discount=1.0)

Create an POMDP by wrapping a CommonRLInterface.AbstractEnv. state and setstate! from CommonRLInterface must be provided, and the POMDPs generative model functionality will be provided.

source
diff --git a/previews/PR563/POMDPTools/distributions/index.html b/previews/PR563/POMDPTools/distributions/index.html new file mode 100644 index 00000000..7d28c488 --- /dev/null +++ b/previews/PR563/POMDPTools/distributions/index.html @@ -0,0 +1,11 @@ + +Implemented Distributions · POMDPs.jl

Implemented Distributions

POMDPTools contains several utility distributions to be used in the POMDPs transition and observation functions. These implement the appropriate methods of the functions in the distributions interface.

This package also supplies showdistribution for pretty printing distributions as unicode bar graphs to the terminal.

Sparse Categorical (SparseCat)

SparseCat is a sparse categorical distribution which is specified by simply providing a list of possible values (states or observations) and the probabilities corresponding to those particular objects.

Example: SparseCat([1,2,3], [0.1,0.2,0.7]) is a categorical distribution that assigns probability 0.1 to 1, 0.2 to 2, 0.7 to 3, and 0 to all other values.

POMDPTools.POMDPDistributions.SparseCatType
SparseCat(values, probabilities)

Create a sparse categorical distribution.

values is an iterable object containing the possible values (can be of any type) in the distribution that have nonzero probability. probabilities is an iterable object that contains the associated probabilities.

This is optimized for value iteration with a fast implementation of weighted_iterator. Both pdf and rand are order n.

source

Implicit

In situations where a distribution object is required, but the pdf is difficult to specify and only samples are required, ImplicitDistribution provides a convenient way to package a sampling function.

POMDPTools.POMDPDistributions.ImplicitDistributionType
ImplicitDistribution(sample_function, args...)

Define a distribution that can only be sampled from using rand, but has no explicit pdf.

Each time rand(rng, d::ImplicitDistribution) is called,

sample_function(args..., rng)

will be called to generate a new sample.

ImplicitDistribution is designed to be used with anonymous functions or the do syntax as follows:

Examples

ImplicitDistribution(rng->rand(rng)^2)
struct MyMDP <: MDP{Float64, Int} end
+
+function POMDPs.transition(m::MyMDP, s, a)
+    ImplicitDistribution(s, a) do s, a, rng
+        return s + a + 0.001*randn(rng)
+    end
+end
+
+td = transition(MyMDP(), 1.0, 1)
+rand(td) # will return a number near 2
source

Bool Distribution

Deterministic

POMDPTools.POMDPDistributions.DeterministicType
Deterministic(value)

Create a deterministic distribution over only one value.

This is intended to be used when a distribution is required, but the outcome is deterministic. It is equivalent to a Kronecker Delta distribution.

source

Uniform

POMDPTools.POMDPDistributions.UniformType
Uniform(collection)

Create a uniform categorical distribution over a collection of objects.

The objects in the collection must be unique (this is tested on construction), and will be stored in a Set. To avoid this overhead, use UnsafeUniform.

source
POMDPTools.POMDPDistributions.UnsafeUniformType
UnsafeUniform(collection)

Create a uniform categorical distribution over a collection of objects.

No checks are performed to ensure uniqueness or check whether an object is actually in the set when evaluating the pdf.

source

Pretty Printing

diff --git a/previews/PR563/POMDPTools/index.html b/previews/PR563/POMDPTools/index.html new file mode 100644 index 00000000..9a71d12a --- /dev/null +++ b/previews/PR563/POMDPTools/index.html @@ -0,0 +1,2 @@ + +POMDPTools: the standard library for POMDPs.jl · POMDPs.jl

POMDPTools: the standard library for POMDPs.jl

The POMDPs.jl package does nothing more than define an interface or language for interacting with and solving (PO)MDPs; it does not contain any implementations. In practice, defining and solving POMDPs is made vastly easier if some commonly-used structures are provided. The POMDPTools package contains these implementations. Thus, the relationship between POMDPs.jl and POMDPTools is similar to the relationship between a programming language and its standard library.

The POMDPTools package source code is hosted in the POMDPs.jl github repository in the lib/POMDPTools directory.

The contents of the library are outlined below:

diff --git a/previews/PR563/POMDPTools/model/index.html b/previews/PR563/POMDPTools/model/index.html new file mode 100644 index 00000000..9fe248d1 --- /dev/null +++ b/previews/PR563/POMDPTools/model/index.html @@ -0,0 +1,42 @@ + +Model Tools · POMDPs.jl

Model Tools

POMDPTools contains assorted tools that are not part of the core POMDPs.jl interface for working with (PO)MDP Models.

Interface Extensions

POMDPTools contains several interface extensions that provide shortcuts and standardized ways of dealing with extra data.

Programmers should use these functions whenever possible in case optimized implementations are available, but all of the functions have default implementations based on the core POMDPs.jl interface. Thus, if the core interface is implemented, all of these functions will also be available.

Weighted Iteration

Many solution techniques, for example value iteration, require iteration through the support of a distribution and evaluating the probability mass for each value. In some cases, looking up the probability mass is expensive, so it is more efficient to iterate through value => probability pairs. weighted_iterator provides a standard interface for this.

POMDPTools.POMDPDistributions.weighted_iteratorFunction
weighted_iterator(d)

Return an iterator through pairs of the values and probabilities in distribution d.

This is designed to speed up value iteration. Distributions are encouraged to provide a custom optimized implementation if possible.

Example

julia> d = BoolDistribution(0.7)
+BoolDistribution(0.7)
+
+julia> collect(weighted_iterator(d))
+2-element Array{Pair{Bool,Float64},1}:
+  true => 0.7
+ false => 0.3
source

Observation Weight

Sometimes, e.g. in particle filtering, the relative likelihood of an observation is required in addition to a generative model, and it is often tedious to implement a custom observation distribution type. For this case, the shortcut function obs_weight is provided.

POMDPTools.ModelTools.obs_weightFunction
obs_weight(pomdp, s, a, sp, o)

Return a weight proportional to the likelihood of receiving observation o from state sp (and a and s if they are present).

This is a useful shortcut for particle filtering so that the observation distribution does not have to be represented.

source

Ordered Spaces

It is often useful to have a list of states, actions, or observations ordered consistently with the respective index function from POMDPs.jl. Since the POMDPs.jl interface does not demand that spaces be ordered consistently with index, the states, actions, and observations functions are not sufficient. Thus POMDPModelTools provides ordered_actions, ordered_states, and ordered_observations to provide this capability.

POMDPTools.ModelTools.ordered_actionsFunction
ordered_actions(mdp)

Return an AbstractVector of actions ordered according to actionindex(mdp, a).

ordered_actions(mdp) will always return an AbstractVector{A} v containing all of the actions in actions(mdp) in the order such that actionindex(mdp, v[i]) == i. You may wish to override this for your problem for efficiency.

source
POMDPTools.ModelTools.ordered_statesFunction
ordered_states(mdp)

Return an AbstractVector of states ordered according to stateindex(mdp, a).

ordered_states(mdp) will always return a AbstractVector{A} v containing all of the states in states(mdp) in the order such that stateindex(mdp, v[i]) == i. You may wish to override this for your problem for efficiency.

source
POMDPTools.ModelTools.ordered_observationsFunction
ordered_observations(pomdp)

Return an AbstractVector of observations ordered according to obsindex(pomdp, a).

ordered_observations(mdp) will always return a AbstractVector{A} v containing all of the observations in observations(pomdp) in the order such that obsindex(pomdp, v[i]) == i. You may wish to override this for your problem for efficiency.

source

Info Interface

It is often the case that useful information besides the belief, state, action, etc is generated by a function in POMDPs.jl. This information can be useful for debugging or understanding the behavior of a solver, updater, or problem. The info interface provides a standard way for problems, policies, solvers or updaters to output this information. The recording simulators from POMDPTools automatically record this information.

To specify info from policies, solvers, or updaters, implement the following functions:

POMDPTools.ModelTools.action_infoFunction
a, ai = action_info(policy, x)

Return a tuple containing the action determined by policy 'p' at state or belief 'x' and information (usually a NamedTuple, Dict or nothing) from the calculation of that action.

By default, returns nothing as info.

source
POMDPTools.ModelTools.solve_infoFunction
policy, si = solve_info(solver, problem)

Return a tuple containing the policy determined by a solver and information (usually a NamedTuple, Dict or nothing) from the calculation of that policy.

By default, returns nothing as info.

source
POMDPTools.ModelTools.update_infoFunction
bp, i = update_info(updater, b, a, o)

Return a tuple containing the new belief and information (usually a NamedTuple, Dict or nothing) from the belief update.

By default, returns nothing as info.

source

Model Transformations

POMDPTools contains several tools for transforming problems into other classes so that they can be used by different solvers.

Linear Algebra Representations

For some algorithms, such as value iteration, it is convenient to use vectors that contain the reward for every state, and matrices that contain the transition probabilities. These can be constructed with the following functions:

POMDPTools.ModelTools.transition_matricesFunction
transition_matrices(p::SparseTabularProblem)

Accessor function for the transition model of a sparse tabular problem. It returns a list of sparse matrices for each action of the problem.

source
transition_matrices(m::Union{MDP,POMDP})
+transition_matrices(m; sparse=true)

Construct transition matrices for (PO)MDP m.

The returned object is an associative object (usually a Dict), where the keys are actions. Each value in this object is an AbstractMatrix where the row corresponds to the state index of s and the column corresponds to the state index of s'. The entry in the matrix is the probability of transitioning from state s to state s'.

source
POMDPTools.ModelTools.reward_vectorsFunction
reward_vectors(m::Union{MDP, POMDP})

Construct reward vectors for (PO)MDP m.

The returned object is an associative object (usually a Dict), where the keys are actions. Each value in this object is an AbstractVector where the index corresponds to the state index of s and the entry is the reward for that state.

source

Sparse Tabular MDPs and POMDPs

The SparseTabularMDP and SparseTabularPOMDP represents discrete problems defined using the explicit interface. The transition and observation models are represented using sparse matrices. Solver writers can leverage these data structures to write efficient vectorized code. A problem writer can define its problem using the explicit interface and it can be automatically converted to a sparse tabular representation by calling the constructors SparseTabularMDP(::MDP) or SparseTabularPOMDP(::POMDP). See the following docs to know more about the matrix representation and how to access the fields of the SparseTabular objects:

POMDPTools.ModelTools.SparseTabularMDPType
SparseTabularMDP

An MDP object where states and actions are integers and the transition is represented by a list of sparse matrices. This data structure can be useful to exploit in vectorized algorithm (e.g. see SparseValueIterationSolver). The recommended way to access the transition and reward matrices is through the provided accessor functions: transition_matrix and reward_vector.

Fields

  • T::Vector{SparseMatrixCSC{Float64, Int64}} The transition model is represented as a vector of sparse matrices (one for each action). T[a][s, sp] the probability of transition from s to sp taking action a.
  • R::Array{Float64, 2} The reward is represented as a matrix where the rows are states and the columns actions: R[s, a] is the reward of taking action a in sate s.
  • initial_probs::SparseVector{Float64, Int64} Specifies the initial state distribution
  • terminal_states::Set{Int64} Stores the terminal states
  • discount::Float64 The discount factor

Constructors

  • SparseTabularMDP(mdp::MDP) : One can provide the matrices to the default constructor or one can construct a SparseTabularMDP from any discrete state MDP defined using the explicit interface.

Note that constructing the transition and reward matrices requires to iterate over all the states and can take a while. To learn more information about how to define an MDP with the explicit interface please visit https://juliapomdp.github.io/POMDPs.jl/latest/explicit/ .

  • SparseTabularMDP(smdp::SparseTabularMDP; transition, reward, discount) : This constructor returns a new sparse MDP that is a copy of the original smdp except for the field specified by the keyword arguments.
source
POMDPTools.ModelTools.SparseTabularPOMDPType
SparseTabularPOMDP

A POMDP object where states and actions are integers and the transition and observation distributions are represented by lists of sparse matrices. This data structure can be useful to exploit in vectorized algorithms to gain performance (e.g. see SparseValueIterationSolver). The recommended way to access the transition, reward, and observation matrices is through the provided accessor functions: transition_matrix, reward_vector, observation_matrix.

Fields

  • T::Vector{SparseMatrixCSC{Float64, Int64}} The transition model is represented as a vector of sparse matrices (one for each action). T[a][s, sp] the probability of transition from s to sp taking action a.
  • R::Array{Float64, 2} The reward is represented as a matrix where the rows are states and the columns actions: R[s, a] is the reward of taking action a in sate s.
  • O::Vector{SparseMatrixCSC{Float64, Int64}} The observation model is represented as a vector of sparse matrices (one for each action). O[a][sp, o] is the probability of observing o from state sp after having taken action a.
  • initial_probs::SparseVector{Float64, Int64} Specifies the initial state distribution
  • terminal_states::Set{Int64} Stores the terminal states
  • discount::Float64 The discount factor

Constructors

  • SparseTabularPOMDP(pomdp::POMDP) : One can provide the matrices to the default constructor or one can construct a SparseTabularPOMDP from any discrete state MDP defined using the explicit interface.

Note that constructing the transition and reward matrices requires to iterate over all the states and can take a while. To learn more information about how to define an MDP with the explicit interface please visit https://juliapomdp.github.io/POMDPs.jl/latest/explicit/ .

  • SparseTabularPOMDP(spomdp::SparseTabularMDP; transition, reward, observation, discount) : This constructor returns a new sparse POMDP that is a copy of the original smdp except for the field specified by the keyword arguments.
source
POMDPTools.ModelTools.transition_matrixFunction
transition_matrix(p::SparseTabularProblem, a)

Accessor function for the transition model of a sparse tabular problem. It returns a sparse matrix containing the transition probabilities when taking action a: T[s, sp] = Pr(sp | s, a).

source
POMDPTools.ModelTools.reward_vectorFunction
reward_vector(p::SparseTabularProblem, a)

Accessor function for the reward function of a sparse tabular problem. It returns a vector containing the reward for all the states when taking action a: R(s, a). The length of the return vector is equal to the number of states.

source
POMDPTools.ModelTools.observation_matrixFunction
observation_matrix(p::SparseTabularPOMDP, a::Int64)

Accessor function for the observation model of a sparse tabular POMDP. It returns a sparse matrix containing the observation probabilities when having taken action a: O[sp, o] = Pr(o | sp, a).

source
POMDPTools.ModelTools.observation_matricesFunction
observation_matrices(p::SparseTabularPOMDP)

Accessor function for the observation model of a sparse tabular POMDP. It returns a list of sparse matrices for each action of the problem.

source

Fully Observable POMDP

Generative Belief MDP

Every POMDP is an MDP on the belief space GenerativeBeliefMDP creates a generative model for that MDP.

Warning

The reward generated by the GenerativeBeliefMDP is the reward for a single state sampled from the belief; it is not the expected reward for that belief transition (though, in expectation, they are equivalent of course). Implementing the model with the expected reward requires a custom implementation because belief updaters do not typically deal with reward.

POMDPTools.ModelTools.GenerativeBeliefMDPType
GenerativeBeliefMDP(pomdp, updater)
+GenerativeBeliefMDP(pomdp, updater; terminal_behavior=TerminalStateTerminalBehavior())

Create a generative model of the belief MDP corresponding to POMDP pomdp with belief updates performed by updater. Each step is performed by sampling a state from the current belief, generating an observation from that state and action, and then using updater to update the belief.

A belief is considered terminal when all POMDP states in the support with nonzero probability are terminal.

The default behavior when a terminal POMDP state is sampled from the belief is to transition to terminalstate. This can be controlled by the terminal_behavior keyword argument. Using terminal_behavior=ContinueTerminalBehavior(pomdp, updater) will cause the MDP to keep attempting a belief update even when the sampled state is terminal. This can be further customized by providing terminal_behavior with a Function or callable object that takes arguments b, s, a, rng and returns a new belief (see the implementation of ContinueTerminalBehavior for an example). You can customize behavior additionally using determine_gbmdp_state_type.

source

Example

using POMDPs
+using POMDPModels
+using POMDPTools
+
+pomdp = BabyPOMDP()
+updater = DiscreteUpdater(pomdp)
+
+belief_mdp = GenerativeBeliefMDP(pomdp, updater)
+@show statetype(belief_mdp) # POMDPModels.BoolDistribution
+
+for (a, r, sp) in stepthrough(belief_mdp, RandomPolicy(belief_mdp), "a,r,sp", max_steps=5)
+    @show a, r, sp
+end
+
+# output
+statetype(belief_mdp) = DiscreteBelief{POMDPModels.BabyPOMDP, Bool}Bool}
+(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))
+(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))
+(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))
+(a, r, sp) = (false, 0.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [0.9759036144578314, 0.02409638554216867]))
+(a, r, sp) = (false, 0.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [0.9701315984030756, 0.029868401596924433]))

Underlying MDP

State Action Reward Model

POMDPTools.ModelTools.StateActionRewardType
StateActionReward(m::Union{MDP,POMDP})

Robustly create a reward function that depends only on the state and action.

If reward(m, s, a) is implemented, that will be used, otherwise the mean of reward(m, s, a, sp) for MDPs or reward(m, s, a, sp, o) for POMDPs will be used.

Example

using POMDPs
+using POMDPModels
+using POMDPTools
+
+m = BabyPOMDP()
+
+rm = StateActionReward(m)
+
+rm(true, true)
+
+# output
+
+-15.0
source

Utility Types

Terminal State

TerminalState and its singleton instance terminalstate are available to use for a terminal state in concert with another state type. It has the appropriate type promotion logic to make its use with other types friendly, similar to nothing and missing.

Note

NOTE: This is NOT a replacement for the standard POMDPs.jl isterminal function, though isterminal is implemented for the type. It is merely a convenient type to use for terminal states.

Warning

WARNING: Early tests (August 2018) suggest that the Julia 1.0 compiler will not be able to efficiently implement union splitting in cases as complex as POMDPs, so using a Union for the state type of a problem can currently have a large overhead.

POMDPTools.ModelTools.TerminalStateType
TerminalState

A type with no fields whose singleton instance terminalstate is used to represent a terminal state with no additional information.

This type has the appropriate promotion logic implemented to function like Missing when added to arrays, etc.

Note that terminal states NEED NOT be of type TerminalState. You can define any state to be terminal by implementing the appropriate isterminal method. Solvers and simulators SHOULD NOT check for this type, but should instead check using isterminal.

source
diff --git a/previews/PR563/POMDPTools/policies/index.html b/previews/PR563/POMDPTools/policies/index.html new file mode 100644 index 00000000..c6cd0aed --- /dev/null +++ b/previews/PR563/POMDPTools/policies/index.html @@ -0,0 +1,41 @@ + +Implemented Policies · POMDPs.jl

Implemented Policies

POMDPTools currently provides the following policy types:

  • a wrapper to turn a function into a Policy
  • an alpha vector policy type
  • a random policy
  • a stochastic policy type
  • exploration policies
  • a vector policy type
  • a wrapper to collect statistics and errors about policies

In addition, it provides the showpolicy function for printing policies similar to the way that matrices are printed in the repl and the evaluate function for evaluating MDP policies.

Function

Wraps a Function mapping states to actions into a Policy.

Alpha Vector Policy

Represents a policy with a set of alpha vectors (See AlphaVectorPolicy constructor docstring). In addition to finding the optimal action with action, the alpha vectors can be accessed with alphavectors or alphapairs.

Determining the estimated value and optimal action depends on calculating the dot product between alpha vectors and a belief vector. POMDPTools.Policies.beliefvec(pomdp, b) is used to create this vector and can be overridden for new belief types for efficiency.

POMDPTools.Policies.AlphaVectorPolicyType
AlphaVectorPolicy(pomdp::POMDP, alphas, action_map)

Construct a policy from alpha vectors.

Arguments

  • alphas: an |S| x (number of alpha vecs) matrix or a vector of alpha vectors.

  • action_map: a vector of the actions correponding to each alpha vector

    AlphaVectorPolicy{P<:POMDP, A}

Represents a policy with a set of alpha vectors.

Use action to get the best action for a belief, and alphavectors and alphapairs to

Fields

  • pomdp::P the POMDP problem
  • n_states::Int the number of states in the POMDP
  • alphas::Vector{Vector{Float64}} the list of alpha vectors
  • action_map::Vector{A} a list of action corresponding to the alpha vectors
source
POMDPTools.Policies.beliefvecFunction
POMDPTools.Policies.beliefvec(m::POMDP, n_states::Int, b)

Return a vector-like representation of the belief b suitable for calculating the dot product with the alpha vectors.

source

Random Policy

A policy that returns a randomly selected action using rand(rng, actions(pomdp)).

POMDPTools.Policies.RandomPolicyType
RandomPolicy{RNG<:AbstractRNG, P<:Union{POMDP,MDP}, U<:Updater}

a generic policy that uses the actions function to create a list of actions and then randomly samples an action from it.

Constructor:

`RandomPolicy(problem::Union{POMDP,MDP};
+         rng=Random.default_rng(),
+         updater=NothingUpdater())`

Fields

  • rng::RNG a random number generator
  • probelm::P the POMDP or MDP problem
  • updater::U a belief updater (default to NothingUpdater in the above constructor)
source

Stochastic Policies

Types for representing randomized policies:

  • StochasticPolicy samples actions from an arbitrary distribution.
  • UniformRandomPolicy samples actions uniformly (see RandomPolicy for a similar use)
  • CategoricalTabularPolicy samples actions from a categorical distribution with weights given by a ValuePolicy.
POMDPTools.Policies.StochasticPolicyType

StochasticPolicy{D, RNG <: AbstractRNG}

Represents a stochastic policy. Action are sampled from an arbitrary distribution.

Constructor:

`StochasticPolicy(distribution; rng=Random.default_rng())`

Fields

  • distribution::D
  • rng::RNG a random number generator
source
POMDPTools.Policies.CategoricalTabularPolicyType
CategoricalTabularPolicy

represents a stochastic policy sampling an action from a categorical distribution with weights given by a ValuePolicy

constructor:

CategoricalTabularPolicy(mdp::Union{POMDP,MDP}; rng=Random.default_rng())

Fields

  • stochastic::StochasticPolicy
  • value::ValuePolicy
source

Vector Policies

Tabular policies including the following:

  • VectorPolicy holds a vector of actions, one for each state, ordered according to stateindex.
  • ValuePolicy holds a matrix of values for state-action pairs and chooses the action with the highest value at the given state
POMDPTools.Policies.VectorPolicyType
VectorPolicy{S,A}

A generic MDP policy that consists of a vector of actions. The entry at stateindex(mdp, s) is the action that will be taken in state s.

Fields

  • mdp::MDP{S,A} the MDP problem
  • act::Vector{A} a vector of size |S| mapping state indices to actions
source
POMDPTools.Policies.ValuePolicyType
 ValuePolicy{P<:Union{POMDP,MDP}, T<:AbstractMatrix{Float64}, A}

A generic MDP policy that consists of a value table. The entry at stateindex(mdp, s) is the action that will be taken in state s. It is expected that the order of the actions in the value table is consistent with the order of the actions in act. If act is not explicitly set in the construction, act is ordered according to actionindex.

Fields

  • mdp::P the MDP problem
  • value_table::T the value table as a |S|x|A| matrix
  • act::Vector{A} the possible actions
source

Value Dict Policy

ValueDictPolicy holds a dictionary of values, where the key is state-action tuple, and chooses the action with the highest value at the given state. It allows one to write solvers without enumerating state and action spaces, but actions and states must support Base.isequal() and Base.hash().

POMDPTools.Policies.ValueDictPolicyType
 ValueDictPolicy(mdp)

A generic MDP policy that consists of a Dict storing Q-values for state-action pairs. If there are no entries higher than a default value, this will fall back to a default policy.

Keyword Arguments

  • value_table::AbstractDict the value dict, key is (s, a) Tuple.
  • default_value::Float64 the defalut value of value_dict.
  • default_policy::Policy the policy taken when no action has a value higher than default_value
source

Exploration Policies

Exploration policies are often useful for Reinforcement Learning algorithm to choose an action that is different than the action given by the policy being learned (on_policy).

Exploration policies are subtype of the abstract ExplorationPolicy type and they follow the following interface: action(exploration_policy::ExplorationPolicy, on_policy::Policy, k, s). k is used to compute the value of the exploration parameter (see Schedule), and s is the current state or observation in which the agent is taking an action.

The action method is exported by POMDPs.jl. To use exploration policies in a solver, you must use the four argument version of action where on_policy is the policy being learned (e.g. tabular policy or neural network policy).

This package provides two exploration policies: EpsGreedyPolicy and SoftmaxPolicy

POMDPTools.Policies.EpsGreedyPolicyType
EpsGreedyPolicy <: ExplorationPolicy

represents an epsilon greedy policy, sampling a random action with a probability eps or returning an action from a given policy otherwise. The evolution of epsilon can be controlled using a schedule. This feature is useful for using those policies in reinforcement learning algorithms.

Constructor:

EpsGreedyPolicy(problem::Union{MDP, POMDP}, eps::Union{Function, Float64}; rng=Random.default_rng(), schedule=ConstantSchedule)

If a function is passed for eps, eps(k) is called to compute the value of epsilon when calling action(exploration_policy, on_policy, k, s).

Fields

  • eps::Function
  • rng::AbstractRNG
  • m::M POMDPs or MDPs problem
source
POMDPTools.Policies.SoftmaxPolicyType
SoftmaxPolicy <: ExplorationPolicy

represents a softmax policy, sampling a random action according to a softmax function. The softmax function converts the action values of the on policy into probabilities that are used for sampling. A temperature parameter or function can be used to make the resulting distribution more or less wide.

Constructor

SoftmaxPolicy(problem, temperature::Union{Function, Float64}; rng=Random.default_rng())

If a function is passed for temperature, temperature(k) is called to compute the value of the temperature when calling action(exploration_policy, on_policy, k, s)

Fields

  • temperature::Function
  • rng::AbstractRNG
  • actions::A an indexable list of action
source

Schedule

Exploration policies often rely on a key parameter: $\epsilon$ in $\epsilon$-greedy and the temperature in softmax for example. Reinforcement learning algorithms often require a decay schedule for these parameters. Schedule can be passed to an exploration policy as functions. For example one can define an epsilon greedy policy with an exponential decay schedule as follow:

    m # your mdp or pomdp model
+    exploration_policy = EpsGreedyPolicy(m, k->0.05*0.9^(k/10))

POMDPTools exports a linear decay schedule object that can be used as well.

POMDPTools.Policies.LinearDecayScheduleType
LinearDecaySchedule

A schedule that linearly decreases a value from start to stop in steps steps. if the value is greater or equal to stop, it stays constant.

Constructor

LinearDecaySchedule(;start, stop, steps)

source

Playback Policy

A policy that replays a fixed sequence of actions. When all actions are used, a backup policy is used.

POMDPTools.Policies.PlaybackPolicyType
PlaybackPolicy{A<:AbstractArray, P<:Policy, V<:AbstractArray{<:Real}}

a policy that applies a fixed sequence of actions until they are all used and then falls back onto a backup policy until the end of the episode.

Constructor:

`PlaybackPolicy(actions::AbstractArray, backup_policy::Policy; logpdfs::AbstractArray{Float64, 1} = Float64[])`

Fields

  • actions::Vector{A} a vector of actions to play back
  • backup_policy::Policy the policy to use when all prescribed actions have been taken but the episode continues
  • logpdfs::Vector{Float64} the log probability (density) of actions
  • i::Int64 the current action index
source

Utility Wrapper

A wrapper for policies to collect statistics and handle errors.

POMDPTools.Policies.PolicyWrapperType
PolicyWrapper

Flexible utility wrapper for a policy designed for collecting statistics about planning.

Carries a function, a policy, and optionally a payload (that can be any type).

The function should typically be defined with the do syntax. Each time action is called on the wrapper, this function will be called.

If there is no payload, it will be called with two argments: the policy and the state/belief. If there is a payload, it will be called with three arguments: the policy, the payload, and the current state or belief. The function should return an appropriate action. The idea is that, in this function, action(policy, s) should be called, statistics from the policy/planner should be collected and saved in the payload, exceptions can be handled, and the action should be returned.

Constructor

PolicyWrapper(policy::Policy; payload=nothing)

Example

using POMDPModels
+using POMDPToolbox
+
+mdp = GridWorld()
+policy = RandomPolicy(mdp)
+counts = Dict(a=>0 for a in actions(mdp))
+
+# with a payload
+statswrapper = PolicyWrapper(policy, payload=counts) do policy, counts, s
+    a = action(policy, s)
+    counts[a] += 1
+    return a
+end
+
+h = simulate(HistoryRecorder(max_steps=100), mdp, statswrapper)
+for (a, count) in payload(statswrapper)
+    println("policy chose action $a $count of $(n_steps(h)) times.")
+end
+
+# without a payload
+errwrapper = PolicyWrapper(policy) do policy, s
+    try
+        a = action(policy, s)
+    catch ex
+        @warn("Caught error in policy; using default")
+        a = :left
+    end
+    return a
+end
+
+h = simulate(HistoryRecorder(max_steps=100), mdp, errwrapper)

Fields

  • f::F
  • policy::P
  • payload::PL
source

Pretty Printing Policies

POMDPTools.Policies.showpolicyFunction
showpolicy([io], [mime], m::MDP, p::Policy)
+showpolicy([io], [mime], statelist::AbstractVector, p::Policy)
+showpolicy(...; pre=" ")

Print the states in m or statelist and the actions from policy p corresponding to those states.

For the MDP version, if io[:limit] is true, will only print enough states to fill the display.

source

Policy Evaluation

The evaluate function provides a policy evaluation tool for MDPs:

POMDPTools.Policies.evaluateFunction
evaluate(m::MDP, p::Policy)
+evaluate(m::MDP, p::Policy; rewardfunction=POMDPs.reward)

Calculate the value for a policy on an MDP using the approach in equation 4.2.2 of Kochenderfer, Decision Making Under Uncertainty, 2015.

Returns a DiscreteValueFunction, which maps states to values.

Example

using POMDPTools, POMDPModels
+m = SimpleGridWorld()
+u = evaluate(m, FunctionPolicy(x->:left))
+u([1,1]) # value of always moving left starting at state [1,1]
source
diff --git a/previews/PR563/POMDPTools/simulators/index.html b/previews/PR563/POMDPTools/simulators/index.html new file mode 100644 index 00000000..0b2b4fdf --- /dev/null +++ b/previews/PR563/POMDPTools/simulators/index.html @@ -0,0 +1,80 @@ + +Implemented Simulators · POMDPs.jl

Implemented Simulators

POMDPTools contains a collection of POMDPs.jl simulators.

Usage examples can be found in the Simulations Examples section.

If you are just getting started, probably the easiest way to begin is the stepthrough function. Otherwise, consult the Which Simulator Should I Use? guide below:

Which Simulator Should I Use?

The simulators in this package provide interaction with simulations of MDP and POMDP environments from a variety of perspectives. Use these questions to choose the best simulator to suit your needs.

I want to run fast rollout simulations and get the discounted reward.

Use the Rollout Simulator.

I want to evaluate performance with many parallel Monte Carlo simulations.

Use the Parallel Simulator.

I want to closely examine the histories of states, actions, etc. produced by simulations.

Use the History Recorder.

I want to step through each individual step of a simulation.

Use the stepthrough function.

I want to visualize a simulation.

Use the DisplaySimulator.

Also see the POMDPGifs package for creating gif animations.

I want to interact with a MDP or POMDP environment from the policy's perspective

Use the sim function.

Stepping through

The stepthrough function exposes a simulation as an iterator so that the steps can be iterated through with a for loop syntax as follows:

pomdp = BabyPOMDP()
+policy = RandomPolicy(pomdp)
+
+for (s, a, o, r) in stepthrough(pomdp, policy, "s,a,o,r", max_steps=10)
+    println("in state $s")
+    println("took action $a")
+    println("received observation $o and reward $r")
+end
POMDPTools.Simulators.stepthroughFunction
stepthrough(problem, policy, [spec])
+stepthrough(problem, policy, [spec], [rng=rng], [max_steps=max_steps])
+stepthrough(mdp::MDP, policy::Policy, [init_state], [spec]; [kwargs...])
+stepthrough(pomdp::POMDP, policy::Policy, [up::Updater, [initial_belief, [initial_state]]], [spec]; [kwargs...])

Create a simulation iterator. This is intended to be used with for loop syntax to output the results of each step as the simulation is being run.

Example:

pomdp = BabyPOMDP()
+policy = RandomPolicy(pomdp)
+
+for (s, a, o, r) in stepthrough(pomdp, policy, "s,a,o,r", max_steps=10)
+    println("in state $s")
+    println("took action $a")
+    println("received observation $o and reward $r")
+end

The optional spec argument can be a string, tuple of symbols, or single symbol and follows the same pattern as eachstep called on a SimHistory object.

Under the hood, this function creates a StepSimulator with spec and returns a [PO]MDPSimIterator by calling simulate with all of the arguments except spec. All keyword arguments are passed to the StepSimulator constructor.

source

The StepSimulator contained in this file can provide the same functionality with the following syntax:

sim = StepSimulator("s,a,r,sp")
+for (s,a,r,sp) in simulate(sim, problem, policy)
+    # do something
+end

Rollouts

RolloutSimulator is the simplest MDP or POMDP simulator. When simulate is called, it simply simulates a single trajectory of the process and returns the discounted reward.

rs = RolloutSimulator()
+mdp = GridWorld()
+policy = RandomPolicy(mdp)
+
+r = simulate(rs, mdp, policy)
POMDPTools.Simulators.RolloutSimulatorType
RolloutSimulator(rng, max_steps)
+RolloutSimulator(; <keyword arguments>)

A fast simulator that just returns the reward

The simulation will be terminated when either

  1. a terminal state is reached (as determined by isterminal() or
  2. the discount factor is as small as eps or
  3. max_steps have been executed

Keyword arguments:

  • rng::AbstractRNG (default: Random.default_rng()) - A random number generator to use.
  • eps::Float64 (default: 0.0) - A small number; if γᵗ where γ is the discount factor and t is the time step becomes smaller than this, the simulation will be terminated.
  • max_steps::Int (default: typemax(Int)) - The maximum number of steps to simulate.

Usage (optional arguments in brackets):

ro = RolloutSimulator()
+history = simulate(ro, pomdp, policy, [updater [, init_belief [, init_state]]])

See also: HistoryRecorder, run_parallel

source

History Recorder

A HistoryRecorder runs a simulation and records the trajectory. It returns an AbstractVector of NamedTuples - see Histories for more info.

hr = HistoryRecorder(max_steps=100)
+pomdp = TigerPOMDP()
+policy = RandomPolicy(pomdp)
+
+h = simulate(hr, pomdp, policy)
POMDPTools.Simulators.HistoryRecorderType

A simulator that records the history for later examination

The simulation will be terminated when either

  1. a terminal state is reached (as determined by isterminal() or
  2. the discount factor is as small as eps or
  3. max_steps have been executed

Keyword Arguments: - rng: The random number generator for the simulation - capture_exception::Bool: whether to capture an exception and store it in the history, or let it go uncaught, potentially killing the script - show_progress::Bool: show a progress bar for the simulation - eps - max_steps

Usage (optional arguments in brackets):

hr = HistoryRecorder()
+history = simulate(hr, pomdp, policy, [updater [, init_belief [, init_state]]])
source

sim()

The sim function provides a convenient way to interact with a POMDP or MDP environment and return a history. The first argument is a function that is called at every time step and takes a state (in the case of an MDP) or an observation (in the case of a POMDP) as the argument and then returns an action. The second argument is a pomdp or mdp. It is intended to be used with Julia's do syntax as follows:

pomdp = TigerPOMDP()
+history = sim(pomdp, max_steps=10) do obs
+    println("Observation was $obs.")
+    return TIGER_OPEN_LEFT
+end

This allows a flexible and general way to interact with a POMDP environment without creating new Policy types.

In the POMDP case, an updater can optionally be supplied as an additional positional argument if the policy function works with beliefs rather than directly with observations.

POMDPTools.Simulators.simFunction
sim(polfunc::Function, mdp::MDP; [<keyword arguments>])
+sim(polfunc::Function, pomdp::POMDP; [<keyword arguments>])

Alternative way of running a simulation with a function specifying how to calculate the action at each timestep.

Usage

sim(mdp) do s
+    # code that calculates action `a` based on `s` - this is the policy
+    # you can also do other things like display something
+    return a
+end

for an MDP or

sim(pomdp) do o
+    # code that calculates 'a' based on observation `o`
+    # optionally you could save 'o' in a global variable or do a belief update
+    return a
+end

or with a POMDP

sim(pomdp, updater) do b
+    # code that calculates 'a' based on belief `b`
+    # `b` is calculated by `updater`
+    return a
+end

for a POMDP and a belief updater.

Keyword Arguments

All Versions

  • initialstate: the initial state for the simulation
  • simulator: keyword argument to specify any simulator to run the simulation. If nothing is specified for the simulator, a HistoryRecorder will be used as the simulator, with all keyword arguments forwarded to it, e.g.
    sim(mdp, max_steps=100, show_progress=true) do s
    +    # ...
    +end
    will limit the simulation to 100 steps.

POMDP version

  • initialobs: this will control the initial observation given to the policy function. If this is not defined, rand(initialobs(m, s)) will be used if it is available. If it is not, missing will be used.

POMDP and updater version

  • initialbelief: initialize_belief(updater, initialbelief) is the first belief that will be given to the policy function.
source

Histories

The results produced by HistoryRecorders and the sim function are contained in SimHistory objects.

POMDPTools.Simulators.SimHistoryType
SimHistory

An (PO)MDP simulation history returned by simulate(::HistoryRecorder, ::Union{MDP,POMDP},...).

This is an AbstractVector of NamedTuples containing the states, actions, etc.

Examples

hist[1][:s] # returns the first state in the history
hist[:a] # returns all of the actions in the history
source

Examples

using POMDPs, POMDPTools, POMDPModels
+hr = HistoryRecorder(max_steps=10)
+hist = simulate(hr, BabyPOMDP(), FunctionPolicy(x->true))
+step = hist[1] # all information available about the first step
+step[:s] # the first state
+step[:a] # the first action

To see everything available in a step, use

keys(first(hist))

The entire history of each variable is available by using a Symbol instead of an index, i.e.

hist[:s]

will return a vector of the starting states for each step (note the difference between :s and :sp).

eachstep

The eachstep function may also be useful:

POMDPTools.Simulators.eachstepFunction
for t in eachstep(hist, [spec])
+    ...
+end

Iterate through the steps in SimHistory hist. spec is a tuple of symbols or string that controls what is returned for each step.

For example,

for (s, a, r, sp) in eachstep(h, "(s, a, r, sp)")    
+    println("reward $r received when state $sp was reached after action $a was taken in state $s")
+end

returns the start state, action, reward and destination state for each step of the simulation.

Alternatively, instead of expanding the steps implicitly, the elements of the step can be accessed as fields (since each step is a NamedTuple):

for step in eachstep(h, "(s, a, r, sp)")    
+    println("reward $(step.r) received when state $(step.sp) was reached after action $(step.a) was taken in state $(step.s)")
+end

The possible valid elements in the iteration specification are

  • Any node in the (PO)MDP Dynamic Decision network (by default :s, :a, :sp, :o, :r)
  • b - the initial belief in the step (for POMDPs only)
  • bp - the belief after being updated based on o (for POMDPs only)
  • action_info - info from the policy decision (from action_info)
  • update_info - info from the belief update (from update_info)
  • t - the timestep index
source

Examples:

collect(eachstep(h, "a,o"))

will produce a vector of action-observation named tuples.

collect(norm(sp-s) for (s,sp) in eachstep(h, "s,sp"))

will produce a vector of the distances traveled on each step (assuming the state is a Euclidean vector).

Notes

  • The iteration specification can be specified as a tuple of symbols (e.g. (:s, :a)) instead of a string.
  • For type stability in performance-critical code, one should construct an iterator directly using HistoryIterator{typeof(h), (:a,:r)}(h) rather than eachstep(h, "ar").

Other Functions

state_hist(h), action_hist(h), observation_hist(h) belief_hist(h), and reward_hist(h) will return vectors of the states, actions, and rewards, and undiscounted_reward(h) and discounted_reward(h) will return the total rewards collected over the trajectory. n_steps(h) returns the number of steps in the history. exception(h) and backtrace(h) can be used to hold an exception if the simulation failed to finish.

view(h, range) (e.g. view(h, 1:n_steps(h)-4)) can be used to create a view of the history object h that only contains a certain range of steps. The object returned by view is an AbstractSimHistory that can be iterated through and manipulated just like a complete SimHistory.

Parallel

POMDPTools contains a utility for running many Monte Carlo simulations in parallel to evaluate performance. The basic workflow involves the following steps:

  1. Create a vector of Sim objects, each specifying how a single simulation should be run.
  2. Use the run_parallel or run function to run the simulations.
  3. Analyze the results of the simulations contained in the DataFrame returned by run_parallel.

Example

An example can be found in the Parallel Simulations section.

Sim objects

Each simulation should be specified by a Sim object which contains all the information needed to run a simulation, including the Simulator, POMDP or MDP, Policy, Updater, and any other ingredients.

POMDPTools.Simulators.SimType
Sim(m::MDP, p::Policy[, initialstate]; kwargs...)
+Sim(m::POMDP, p::Policy[, updater[, initial_belief[, initialstate]]]; kwargs...)

Create a Sim object that contains everything needed to run and record a single simulation, including model, initial conditions, and metadata.

A vector of Sim objects can be executed with run or run_parallel.

Keyword Arguments

  • rng::AbstractRNG=Random.default_rng()
  • max_steps::Int=typemax(Int)
  • simulator::Simulator=HistoryRecorder(rng=rng, max_steps=max_steps)
  • metadata::NamedTuple a named tuple (or dictionary) of metadata for the sim that will be recorded, e.g.(solver_iterations=500,)`.
source

Running simulations

The simulations are actually carried out by the run and run_parallel functions.

POMDPTools.Simulators.run_parallelFunction
run_parallel(queue::Vector{Sim})
+run_parallel(f::Function, queue::Vector{Sim})

Run Sim objects in queue in parallel and return results as a DataFrame.

By default, the DataFrame will contain the reward for each simulation and the metadata provided to the sim.

Arguments

  • queue: List of Sim objects to be executed
  • f: Function to process the results of each simulation

This function should take two arguments, (1) the Sim that was executed and (2) the result of the simulation, by default a SimHistory. It should return a named tuple that will appear in the dataframe. See Examples below.

Keyword Arguments

  • show_progress::Bool: whether or not to show a progress meter
  • progress::ProgressMeter.Progress: determines how the progress meter is displayed

Examples

run_parallel(queue) do sim, hist
+    return (n_steps=n_steps(hist), reward=discounted_reward(hist))
+end

will return a dataframe with with the number of steps and the reward in it.

source

The run function is also provided to run simulations in serial (this is often useful for debugging). Note that the documentation below also contains a section for the builtin julia run function, even though it is not relevant here.

Base.runFunction
run(queue::Vector{Sim})
+run(f::Function, queue::Vector{Sim})

Run the Sim objects in queue on a single process and return the results as a dataframe.

See run_parallel for more information.

source

Specifying information to be recorded

By default, only the discounted rewards from each simulation are recorded, but arbitrary information can be recorded.

The run_parallel and run functions accept a function (normally specified via the do syntax) that takes the Sim object and history of the simulation and extracts relevant statistics as a named tuple. For example, if the desired characteristics are the number of steps in the simulation and the reward, run_parallel would be invoked as follows:

df = run_parallel(queue) do sim::Sim, hist::SimHistory
+    return (n_steps=n_steps(hist), reward=discounted_reward(hist))
+end

These statistics are combined into a DataFrame, with each line representing a single simulation, allowing for statistical analysis. For example,

mean(df[:reward]./df[:n_steps])

would compute the average reward per step with each simulation weighted equally regardless of length.

Display

DisplaySimulator

The DisplaySimulator displays each step of a simulation in real time through a multimedia display such as a Jupyter notebook or ElectronDisplay. Specifically it uses POMDPTools.render and the built-in Julia display function to visualize each step.

Example:

using POMDPs
+using POMDPModels
+using POMDPTools
+using ElectronDisplay
+ElectronDisplay.CONFIG.single_window = true
+
+ds = DisplaySimulator()
+m = SimpleGridWorld()
+simulate(ds, m, RandomPolicy(m))
POMDPTools.Simulators.DisplaySimulatorType
DisplaySimulator(;kwargs...)

Create a simulator that displays each step of a simulation.

Given a POMDP or MDP model m, this simulator roughly works like

for step in stepthrough(m, ...)
+    display(render(m, step))
+end

Keyword Arguments

  • display::AbstractDisplay: the display to use for the first argument to the display function. If this is nothing, display(...) will be called without an AbstractDisplay argument.
  • render_kwargs::NamedTuple: keyword arguments for POMDPTools.render(...)
  • max_fps::Number=10: maximum number of frames to be displayed per second - sleep will be used to skip extra time, so this is not designed for high precision
  • predisplay::Function: function to call before every call to display(...). The only argument to this function will be the display (if it is specified) or nothing
  • extra_initial::Bool=false: if true, display an extra step at the beginning with only elements t, sp, and bp for POMDPs (this can be useful to see the initial state if render displays only sp and not s).
  • extra_final::Bool=true: iftrue, display an extra step at the end with only elementst,done,s, andbfor POMDPs (this can be useful to see the final state ifrenderdisplays onlysand notsp`).
  • max_steps::Integer: maximum number of steps to run for
  • spec::NTuple{Symbol}: specification of what step elements to display (see eachstep)
  • rng::AbstractRNG: random number generator

See the POMDPSimulators documentation for more tips about using specific displays.

source

Display-specific tips

The following tips may be helpful when using particular displays.

Jupyter notebooks

By default, in a Jupyter notebook, the visualizations of all steps are displayed in the output box one after another. To make the output animated instead, where the image is overwritten at each step, one may use

DisplaySimulator(predisplay=(d)->IJulia.clear_output(true))

ElectronDisplay

By default, ElectronDisplay will open a new window for each new step. To prevent this, use

ElectronDisplay.CONFIG.single_window = true
diff --git a/previews/PR563/POMDPTools/testing/index.html b/previews/PR563/POMDPTools/testing/index.html new file mode 100644 index 00000000..4234a78b --- /dev/null +++ b/previews/PR563/POMDPTools/testing/index.html @@ -0,0 +1,8 @@ + +Testing · POMDPs.jl

Testing

POMDPTools contains basic utilities for testing models and solvers.

Testing (PO)MDP Models

POMDPTools.Testing.has_consistent_distributionsFunction
has_consistent_distributions(m::MDP; atol=0)
+has_consistent_distributions(m::POMDP; atol=0)

Return true if no problems are found in the distributions for a discrete problem. Print information and return false if problems are found.

Tests whether

  • All probabilities are positive
  • Probabilities for all distributions sum to 1
  • All items with positive probability are in the support

Keyword Arguments

  • atol: absolute tolerance passed to approx for all probability checks
source
POMDPTools.Testing.has_consistent_initial_distributionFunction
has_consistent_initial_distribution(m; atol=0)

Return true if no problems are found with the initial state distribution for a discrete problem. Print information and return false if problems are found.

See has_consistent_distributions for information on what checks are performed.

source
POMDPTools.Testing.has_consistent_transition_distributionsFunction
has_consistent_transition_distributions(m; atol=0)

Return true if no problems are found in the transition distributions for a discrete problem. Print information and return false if problems are found.

See has_consistent_distributions for information on what checks are performed.

source
POMDPTools.Testing.has_consistent_observation_distributionsFunction
has_consistent_observation_distributions(m; atol=0)

Return true if no problems are found in the observation distributions for a discrete POMDP. Print information and return false if problems are found.

See has_consistent_distributions for information on what checks are performed.

source

Testing Solvers

POMDPTools.Testing.test_solverFunction
test_solver(solver::Solver, problem::POMDP)
+test_solver(solver::Solver, problem::MDP)

Use the solver to solve the specified problem, then run a simulation.

This is designed to illustrate how solvers are expected to function. All solvers should be able to complete this standard test with the simple models in the POMDPModels package.

Note that this does NOT test the optimality of the solution, but is only a smoke test to see if the solver interacts with POMDP models as expected.

To run this with a solver called YourSolver, run

using POMDPToolbox
+using POMDPModels
+
+solver = YourSolver(# initialize with parameters #)
+test_solver(solver, BabyPOMDP())
source
diff --git a/previews/PR563/POMDPTools/visualization/index.html b/previews/PR563/POMDPTools/visualization/index.html new file mode 100644 index 00000000..9dc9fbbc --- /dev/null +++ b/previews/PR563/POMDPTools/visualization/index.html @@ -0,0 +1,7 @@ + +Visualization · POMDPs.jl

Visualization

POMDPTools contains a basic visualization interface consisting of the render function.

Problem writers should implement a method of this function so that their problem can be visualized in a variety of contexts including jupyter notebooks, web browsers, or saved as images or animations.

POMDPTools.ModelTools.renderFunction
render(m::Union{MDP,POMDP}, step::NamedTuple)

Return a renderable representation of the step in problem m.

The renderable representation may be anything that has show(io, mime, x) methods. It could be a plot, svg, Compose.jl context, Cairo context, or image.

Arguments

step is a NamedTuple that contains the states, action, etc. corresponding to one transition in a simulation. It may have the following fields:

  • t: the time step index
  • s: the state at the beginning of the step
  • a: the action
  • sp: the state at the end of the step (s')
  • r: the reward for the step
  • o: the observation
  • b: the belief at the
  • bp: the belief at the end of the step
  • i: info from the model when the state transition was calculated
  • ai: info from the policy decision
  • ui: info from the belief update

Keyword arguments are reserved for the problem implementer and can be used to control appearance, etc.

Important Notes

  • step may not contain all of the elements listed above, so render should check for them and render only what is available
  • o typically corresponds to sp, so it is often clearer for POMDPs to render sp rather than s.
source

Sometimes it is important to have control over how the problem is rendered with different mimetypes. One way to handle this is to have render return a custom type, e.g.

struct MyProblemVisualization
+    mdp::MyProblem
+    step::NamedTuple
+end
+
+POMDPTools.render(mdp, step) = MyProblemVisualization(mdp, step)

and then implement custom show methods, e.g.

show(io::IO, mime::MIME"text/html", v::MyProblemVisualization)
diff --git a/previews/PR563/api/index.html b/previews/PR563/api/index.html new file mode 100644 index 00000000..f9a5881f --- /dev/null +++ b/previews/PR563/api/index.html @@ -0,0 +1,36 @@ + +API Documentation · POMDPs.jl

API Documentation

Docstrings for POMDPs.jl interface members can be accessed through Julia's built-in documentation system or in the list below.

Contents

Index

Types

POMDPs.POMDPType
POMDP{S,A,O}

Abstract base type for a partially observable Markov decision process.

S: state type
+A: action type
+O: observation type
source
POMDPs.MDPType
MDP{S,A}

Abstract base type for a fully observable Markov decision process.

S: state type
+A: action type
source
POMDPs.PolicyType

Base type for a policy (a map from every possible belief, or more abstract policy state, to an optimal or suboptimal action)

source
POMDPs.UpdaterType

Abstract type for an object that defines how the belief should be updated

A belief is a general construct that represents the knowledge an agent has about the state of the system. This can be a probability distribution, an action observation history or a more general representation.

source

Model Functions

Dynamics

POMDPs.transitionFunction
transition(m::POMDP, state, action)
+transition(m::MDP, state, action)

Return the transition distribution from the current state-action pair.

If it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a generative model.

source
POMDPs.observationFunction
observation(m::POMDP, statep)
+observation(m::POMDP, action, statep)
+observation(m::POMDP, state, action, statep)

Return the observation distribution. You need only define the method with the fewest arguments needed to determine the observation distribution.

If it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a generative model.

Example

using POMDPModelTools # for SparseCat
+
+struct MyPOMDP <: POMDP{Int, Int, Int} end
+
+observation(p::MyPOMDP, sp::Int) = SparseCat([sp-1, sp, sp+1], [0.1, 0.8, 0.1])
source
POMDPs.rewardFunction
reward(m::POMDP, s, a)
+reward(m::MDP, s, a)

Return the immediate reward for the s-a pair.

reward(m::POMDP, s, a, sp)
+reward(m::MDP, s, a, sp)

Return the immediate reward for the s-a-s' triple

reward(m::POMDP, s, a, sp, o)

Return the immediate reward for the s-a-s'-o quad

For some problems, it is easier to express reward(m, s, a, sp) or reward(m, s, a, sp, o), than reward(m, s, a), but some solvers, e.g. SARSOP, can only use reward(m, s, a). Both can be implemented for a problem, but when reward(m, s, a) is implemented, it should be consistent with reward(m, s, a, sp[, o]), that is, it should be the expected value over all destination states and observations.

source
POMDPs.genFunction
gen(m::Union{MDP,POMDP}, s, a, rng::AbstractRNG)

Function for implementing the entire MDP/POMDP generative model by returning a NamedTuple.

gen should only be implemented in the case where two or more of the next state, observation, and reward need to be generated at the same time. If the state transition model can be separated from the reward and observation models, you should implement transition with an ImplicitDistribution instead of gen.

Solver and simulator writers should use the @gen macro to call a generative model.

Arguments

  • m: an MDP or POMDP model
  • s: the current state
  • a: the action
  • rng: a random number generator (Typically a MersenneTwister)

Return

The function should return a NamedTuple. With a subset of following entries:

MDP

  • sp: the next state
  • r: the reward for the step
  • info: extra debugging information, typically in an associative container like a NamedTuple

POMDP

  • sp: the next state
  • o: the observation
  • r: the reward for the step
  • info: extra debugging information, typically in an associative container like a NamedTuple

Some elements can be left out. For instance if o is left out of the return, the problem-writer can also implement observation and POMDPs.jl will automatically use it when needed.

Example

struct LQRMDP <: MDP{Float64, Float64} end
+
+POMDPs.gen(m::LQRMDP, s, a, rng) = (sp = s + a + randn(rng), r = -s^2 - a^2)
source
POMDPs.@genMacro
@gen(X)(m, s, a)
+@gen(X)(m, s, a, rng::AbstractRNG)

Call the generative model for a (PO)MDP m; Sample values from several nodes in the dynamic decision network. X is one or more symbols indicating which nodes to output.

Solvers and simulators should call this rather than the gen function. Problem writers should implement a method of the transition or gen function instead of altering @gen.

Arguments

  • m: an MDP or POMDP model
  • s: the current state
  • a: the action
  • rng (optional): a random number generator (Typically a MersenneTwister)

Return

If X, is a symbol, return a value sample from the corresponding node. If X is several symbols, return a Tuple of values sampled from the specified nodes.

Examples

Let m be an MDP or POMDP, s be a state of m, a be an action of m, and rng be an AbstractRNG.

  • @gen(:sp, :r)(m, s, a) returns a Tuple containing the next state and reward.
  • @gen(:sp, :o, :r)(m, s, a, rng) returns a Tuple containing the next state, observation, and reward.
  • @gen(:sp)(m, s, a, rng) returns the next state.
source

Static Properties

POMDPs.statesFunction
states(problem::POMDP)
+states(problem::MDP)

Returns the complete state space of a POMDP.

source
POMDPs.actionsFunction
actions(m::Union{MDP,POMDP})

Returns the entire action space of a (PO)MDP.


actions(m::Union{MDP,POMDP}, s)

Return the actions that can be taken from state s.


actions(m::POMDP, b)

Return the actions that can be taken from belief b.

To implement an observation-dependent action space, use currentobs(b) to get the observation associated with belief b within the implementation of actions(m, b).

source
POMDPs.isterminalFunction
isterminal(m::Union{MDP,POMDP}, s)

Check if state s is terminal.

If a state is terminal, no actions will be taken in it and no additional rewards will be accumulated. Thus, the value function at such a state is, by definition, zero.

source
POMDPs.discountFunction
discount(m::POMDP)
+discount(m::MDP)

Return the discount factor for the problem.

source
POMDPs.initialstateFunction
initialstate(m::Union{POMDP,MDP})

Return a distribution of initial states for (PO)MDP m.

If it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a model for sampling.

source
POMDPs.initialobsFunction
initialobs(m::POMDP, s)

Return a distribution of initial observations for POMDP m and state s.

If it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a model for sampling.

This function is only used in cases where the policy expects an initial observation rather than an initial belief, e.g. in a reinforcement learning setting. It is not used in a standard POMDP simulation.

source
POMDPs.stateindexFunction
stateindex(problem::POMDP, s)
+stateindex(problem::MDP, s)

Return the integer index of state s. Used for discrete models only.

source
POMDPs.actionindexFunction
actionindex(problem::POMDP, a)
+actionindex(problem::MDP, a)

Return the integer index of action a. Used for discrete models only.

source
POMDPs.obsindexFunction
obsindex(problem::POMDP, o)

Return the integer index of observation o. Used for discrete models only.

source
POMDPs.convert_sFunction
convert_s(::Type{V}, s, problem::Union{MDP,POMDP}) where V<:AbstractArray
+convert_s(::Type{S}, vec::V, problem::Union{MDP,POMDP}) where {S,V<:AbstractArray}

Convert a state to vectorized form or vice versa.

source
POMDPs.convert_aFunction
convert_a(::Type{V}, a, problem::Union{MDP,POMDP}) where V<:AbstractArray
+convert_a(::Type{A}, vec::V, problem::Union{MDP,POMDP}) where {A,V<:AbstractArray}

Convert an action to vectorized form or vice versa.

source
POMDPs.convert_oFunction
convert_o(::Type{V}, o, problem::Union{MDP,POMDP}) where V<:AbstractArray
+convert_o(::Type{O}, vec::V, problem::Union{MDP,POMDP}) where {O,V<:AbstractArray}

Convert an observation to vectorized form or vice versa.

source

Type Inference

POMDPs.statetypeFunction
statetype(t::Type)
+statetype(p::Union{POMDP,MDP})

Return the state type for a problem type (the S in POMDP{S,A,O}).

type A <: POMDP{Int, Bool, Bool} end
+
+statetype(A) # returns Int
source
POMDPs.actiontypeFunction
actiontype(t::Type)
+actiontype(p::Union{POMDP,MDP})

Return the state type for a problem type (the S in POMDP{S,A,O}).

type A <: POMDP{Bool, Int, Bool} end
+
+actiontype(A) # returns Int
source
POMDPs.obstypeFunction
obstype(t::Type)

Return the state type for a problem type (the S in POMDP{S,A,O}).

type A <: POMDP{Bool, Bool, Int} end
+
+obstype(A) # returns Int
source

Distributions and Spaces

Base.randFunction
rand(rng::AbstractRNG, d::Any)

Return a random element from distribution or space d.

If d is a state or transition distribution, the sample will be a state; if d is an action distribution, the sample will be an action or if d is an observation distribution, the sample will be an observation.

source
Distributions.pdfFunction
pdf(d::Any, x::Any)

Evaluate the probability density of distribution d at sample x.

source
Distributions.supportFunction
support(d::Any)

Return an iterable object containing the possible values that can be sampled from distribution d. Values with zero probability may be skipped.

source

Belief Functions

POMDPs.updateFunction
update(updater::Updater, belief_old, action, observation)

Return a new instance of an updated belief given belief_old and the latest action and observation.

source
POMDPs.initialize_beliefFunction
initialize_belief(updater::Updater,
+                     state_distribution::Any)
+initialize_belief(updater::Updater, belief::Any)

Returns a belief that can be updated using updater that has similar distribution to state_distribution or belief.

The conversion may be lossy. This function is also idempotent, i.e. there is a default implementation that passes the belief through when it is already the correct type: initialize_belief(updater::Updater, belief) = belief

source
POMDPs.historyFunction
history(b)

Return the action-observation history associated with belief b.

The history should be an AbstractVector, Tuple, (or similar object that supports indexing with end) full of NamedTuples with keys :a and :o, i.e. history(b)[end][:a] should be the last action taken leading up to b, and history(b)[end][:o] should be the last observation received.

It is acceptable to return only part of the history if that is all that is available, but it should always end with the current observation. For example, it would be acceptable to return a structure containing only the last three observations in a length 3 Vector{NamedTuple{(:o,),Tuple{O}}.

source
POMDPs.currentobsFunction
currentobs(b)

Return the latest observation associated with belief b.

If a solver or updater implements history(b) for a belief type, currentobs has a default implementation.

source

Policy and Solver Functions

POMDPs.solveFunction
solve(solver::Solver, problem::POMDP)

Solves the POMDP using method associated with solver, and returns a policy.

source
POMDPs.updaterFunction
updater(policy::Policy)

Returns a default Updater appropriate for a belief type that policy p can use

source
POMDPs.actionFunction
action(policy::Policy, x)

Returns the action that the policy deems best for the current state or belief, x.

x is a generalized information state - can be a state in an MDP, a distribution in POMDP, or another specialized policy-dependent representation of the information needed to choose an action.

source
POMDPs.valueFunction
value(p::Policy, s)
+value(p::Policy, s, a)

Returns the utility value from policy p given the state (or belief), or state-action (or belief-action) pair.

The state-action version is commonly referred to as the Q-value.

source

Simulator

POMDPs.simulateFunction
simulate(sim::Simulator, m::POMDP, p::Policy, u::Updater=updater(p), b0=initialstate(m), s0=rand(b0))
+simulate(sim::Simulator, m::MDP, p::Policy, s0=rand(initialstate(m)))

Run a simulation using the specified policy.

The return type is flexible and depends on the simulator. Simulations should adhere to the Simulation Standard.

source
diff --git a/previews/PR563/assets/documenter.js b/previews/PR563/assets/documenter.js new file mode 100644 index 00000000..82252a11 --- /dev/null +++ b/previews/PR563/assets/documenter.js @@ -0,0 +1,1064 @@ +// 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', + '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 .docstring-article-toggle-button", + function () { + let articleToggleTitle = "Expand docstring"; + const parent = $(this).parent(); + + debounce(() => { + if (parent.siblings("section").is(":visible")) { + parent + .find("a.docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + parent + .find("a.docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + parent + .children(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + parent.siblings("section").slideToggle(); + }); + } +); + +$(document).on("click", ".docs-article-toggle-button", function (event) { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + let animationSpeed = event.noToggleAnimation ? 0 : 400; + + debounce(() => { + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $("a.docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(animationSpeed); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $("a.docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(animationSpeed); + } + + $(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'], function($) { + +$(document).ready(function () { + let meta = $("div[data-docstringscollapsed]").data(); + + if (meta?.docstringscollapsed) { + $("#documenter-article-toggle-button").trigger({ + type: "click", + noToggleAnimation: true, + }); + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +/* +To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +PSEUDOCODE: + +Searching happens automatically as the user types or adjusts the selected filters. +To preserve responsiveness, as much as possible of the slow parts of the search are done +in a web worker. Searching and result generation are done in the worker, and filtering and +DOM updates are done in the main thread. The filters are in the main thread as they should +be very quick to apply. This lets filters be changed without re-searching with minisearch +(which is possible even if filtering is on the worker thread) and also lets filters be +changed _while_ the worker is searching and without message passing (neither of which are +possible if filtering is on the worker thread) + +SEARCH WORKER: + +Import minisearch + +Build index + +On message from main thread + run search + find the first 200 unique results from each category, and compute their divs for display + note that this is necessary and sufficient information for the main thread to find the + first 200 unique results from any given filter set + post results to main thread + +MAIN: + +Launch worker + +Declare nonconstant globals (worker_is_running, last_search_text, unfiltered_results) + +On text update + if worker is not running, launch_search() + +launch_search + set worker_is_running to true, set last_search_text to the search text + post the search query to worker + +on message from worker + if last_search_text is not the same as the text in the search field, + the latest search result is not reflective of the latest search query, so update again + launch_search() + otherwise + set worker_is_running to false + + regardless, display the new search results to the user + save the unfiltered_results as a global + update_search() + +on filter click + adjust the filter selection + update_search() + +update_search + apply search filters by looping through the unfiltered_results and finding the first 200 + unique results that match the filters + + Update the DOM +*/ + +/////// SEARCH WORKER /////// + +function worker_function(documenterSearchIndex, documenterBaseURL, filters) { + importScripts( + "https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min.js" + ); + + let data = documenterSearchIndex.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 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@!]+$/, ""); + + word = word.toLowerCase(); + } + + 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: { + prefix: true, + boost: { title: 100 }, + fuzzy: 2, + }, + }); + + index.addAll(data); + + /** + * Used to map characters to HTML entities. + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'", + }; + + /** + * Used to match HTML entities and HTML characters. + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + const reUnescapedHtml = /[&<>"']/g; + const reHasUnescapedHtml = RegExp(reUnescapedHtml.source); + + /** + * Escape function from lodash + * Refer: https://github.com/lodash/lodash/blob/main/src/escape.ts + */ + function escape(string) { + return string && reHasUnescapedHtml.test(string) + ? string.replace(reUnescapedHtml, (chr) => htmlEscapes[chr]) + : string || ""; + } + + /** + * RegX escape function from MDN + * Refer: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + } + + /** + * 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})`; + } + searchstring = escapeRegExp(querystring); + let textindex = new RegExp(`${searchstring}`, "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 + + text = text.length ? escape(text) : ""; + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`${escape(searchstring)}`, "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 = ` + +
+
${escape(result.title)}
+
${result.category}
+
+

+ ${display_result} +

+
+ ${display_link} +
+
+ ${search_divider} + `; + + return result_div; + } + + self.onmessage = function (e) { + let query = e.data; + let results = index.search(query, { + filter: (result) => { + // Only return relevant results + return result.score >= 1; + }, + combineWith: "AND", + }); + + // Pre-filter to deduplicate and limit to 200 per category to the extent + // possible without knowing what the filters are. + let filtered_results = []; + let counts = {}; + for (let filter of filters) { + counts[filter] = 0; + } + let present = {}; + + for (let result of results) { + cat = result.category; + cnt = counts[cat]; + if (cnt < 200) { + id = cat + "---" + result.location; + if (present[id]) { + continue; + } + present[id] = true; + filtered_results.push({ + location: result.location, + category: cat, + div: make_search_result(result, query), + }); + } + } + + postMessage(filtered_results); + }; +} + +// `worker = Threads.@spawn worker_function(documenterSearchIndex)`, but in JavaScript! +const filters = [ + ...new Set(documenterSearchIndex["docs"].map((x) => x.category)), +]; +const worker_str = + "(" + + worker_function.toString() + + ")(" + + JSON.stringify(documenterSearchIndex["docs"]) + + "," + + JSON.stringify(documenterBaseURL) + + "," + + JSON.stringify(filters) + + ")"; +const worker_blob = new Blob([worker_str], { type: "text/javascript" }); +const worker = new Worker(URL.createObjectURL(worker_blob)); + +/////// SEARCH MAIN /////// + +// Whether the worker is currently handling a search. This is a boolean +// as the worker only ever handles 1 or 0 searches at a time. +var worker_is_running = false; + +// The last search text that was sent to the worker. This is used to determine +// if the worker should be launched again when it reports back results. +var last_search_text = ""; + +// The results of the last search. This, in combination with the state of the filters +// in the DOM, is used compute the results to display on calls to update_search. +var unfiltered_results = []; + +// Which filter is currently selected +var selected_filter = ""; + +$(document).on("input", ".documenter-search-input", function (event) { + if (!worker_is_running) { + launch_search(); + } +}); + +function launch_search() { + worker_is_running = true; + last_search_text = $(".documenter-search-input").val(); + worker.postMessage(last_search_text); +} + +worker.onmessage = function (e) { + if (last_search_text !== $(".documenter-search-input").val()) { + launch_search(); + } else { + worker_is_running = false; + } + + unfiltered_results = e.data; + update_search(); +}; + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + selected_filter = ""; + } else { + selected_filter = $(this).text().toLowerCase(); + } + + // This updates search results and toggles classes for UI: + update_search(); +}); + +/** + * Make/Update the search component + */ +function update_search() { + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + if (selected_filter == "") { + results = unfiltered_results; + } else { + results = unfiltered_results.filter((result) => { + return selected_filter == result.category.toLowerCase(); + }); + } + + let search_result_container = ``; + let modal_filters = make_modal_body_filters(); + let search_divider = `
`; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + for (var i = 0, n = results.length; i < n && count < 200; ++i) { + let result = results[i]; + if (result.location && !links.includes(result.location)) { + search_results += result.div; + count++; + links.push(result.location); + } + } + + if (count == 1) { + count_str = "1 result"; + } else if (count == 200) { + count_str = "200+ results"; + } else { + count_str = count + " results"; + } + let result_count = `
${count_str}
`; + + 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 { + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(` +
Type something to get started!
+ `); + } +} + +/** + * Make the modal filter html + * + * @returns string + */ +function make_modal_body_filters() { + let str = filters + .map((val) => { + if (selected_filter == val.toLowerCase()) { + return `${val}`; + } else { + return `${val}`; + } + }) + .join(""); + + return ` +
+ Filters: + ${str} +
`; +} + +}) +//////////////////////////////////////////////////////////////////////////////// +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($) { + +$(document).ready(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/PR563/assets/logo.png b/previews/PR563/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..289eeab01e6529c5e5da82347dabd4bd0acc4518 GIT binary patch literal 21765 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 U;VPNk7fDAeCa7CTya5{fKb(cAPXGV_ literal 0 HcmV?d00001 diff --git a/previews/PR563/assets/themes/catppuccin-frappe.css b/previews/PR563/assets/themes/catppuccin-frappe.css new file mode 100644 index 00000000..32e3f008 --- /dev/null +++ b/previews/PR563/assets/themes/catppuccin-frappe.css @@ -0,0 +1 @@ +html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe .pagination-ellipsis,html.theme--catppuccin-frappe .file-cta,html.theme--catppuccin-frappe .file-name,html.theme--catppuccin-frappe .select select,html.theme--catppuccin-frappe .textarea,html.theme--catppuccin-frappe .input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe .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--catppuccin-frappe .pagination-previous:focus,html.theme--catppuccin-frappe .pagination-next:focus,html.theme--catppuccin-frappe .pagination-link:focus,html.theme--catppuccin-frappe .pagination-ellipsis:focus,html.theme--catppuccin-frappe .file-cta:focus,html.theme--catppuccin-frappe .file-name:focus,html.theme--catppuccin-frappe .select select:focus,html.theme--catppuccin-frappe .textarea:focus,html.theme--catppuccin-frappe .input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-frappe .button:focus,html.theme--catppuccin-frappe .is-focused.pagination-previous,html.theme--catppuccin-frappe .is-focused.pagination-next,html.theme--catppuccin-frappe .is-focused.pagination-link,html.theme--catppuccin-frappe .is-focused.pagination-ellipsis,html.theme--catppuccin-frappe .is-focused.file-cta,html.theme--catppuccin-frappe .is-focused.file-name,html.theme--catppuccin-frappe .select select.is-focused,html.theme--catppuccin-frappe .is-focused.textarea,html.theme--catppuccin-frappe .is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-focused.button,html.theme--catppuccin-frappe .pagination-previous:active,html.theme--catppuccin-frappe .pagination-next:active,html.theme--catppuccin-frappe .pagination-link:active,html.theme--catppuccin-frappe .pagination-ellipsis:active,html.theme--catppuccin-frappe .file-cta:active,html.theme--catppuccin-frappe .file-name:active,html.theme--catppuccin-frappe .select select:active,html.theme--catppuccin-frappe .textarea:active,html.theme--catppuccin-frappe .input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-frappe .button:active,html.theme--catppuccin-frappe .is-active.pagination-previous,html.theme--catppuccin-frappe .is-active.pagination-next,html.theme--catppuccin-frappe .is-active.pagination-link,html.theme--catppuccin-frappe .is-active.pagination-ellipsis,html.theme--catppuccin-frappe .is-active.file-cta,html.theme--catppuccin-frappe .is-active.file-name,html.theme--catppuccin-frappe .select select.is-active,html.theme--catppuccin-frappe .is-active.textarea,html.theme--catppuccin-frappe .is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-frappe .is-active.button{outline:none}html.theme--catppuccin-frappe .pagination-previous[disabled],html.theme--catppuccin-frappe .pagination-next[disabled],html.theme--catppuccin-frappe .pagination-link[disabled],html.theme--catppuccin-frappe .pagination-ellipsis[disabled],html.theme--catppuccin-frappe .file-cta[disabled],html.theme--catppuccin-frappe .file-name[disabled],html.theme--catppuccin-frappe .select select[disabled],html.theme--catppuccin-frappe .textarea[disabled],html.theme--catppuccin-frappe .input[disabled],html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--catppuccin-frappe .button[disabled],fieldset[disabled] html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--catppuccin-frappe .pagination-ellipsis,html.theme--catppuccin-frappe fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--catppuccin-frappe .file-cta,html.theme--catppuccin-frappe fieldset[disabled] .file-cta,fieldset[disabled] html.theme--catppuccin-frappe .file-name,html.theme--catppuccin-frappe fieldset[disabled] .file-name,fieldset[disabled] html.theme--catppuccin-frappe .select select,fieldset[disabled] html.theme--catppuccin-frappe .textarea,fieldset[disabled] html.theme--catppuccin-frappe .input,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe fieldset[disabled] .select select,html.theme--catppuccin-frappe .select fieldset[disabled] select,html.theme--catppuccin-frappe fieldset[disabled] .textarea,html.theme--catppuccin-frappe fieldset[disabled] .input,html.theme--catppuccin-frappe fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--catppuccin-frappe .button,html.theme--catppuccin-frappe fieldset[disabled] .button{cursor:not-allowed}html.theme--catppuccin-frappe .tabs,html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe .pagination-ellipsis,html.theme--catppuccin-frappe .breadcrumb,html.theme--catppuccin-frappe .file,html.theme--catppuccin-frappe .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--catppuccin-frappe .navbar-link:not(.is-arrowless)::after,html.theme--catppuccin-frappe .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--catppuccin-frappe .admonition:not(:last-child),html.theme--catppuccin-frappe .tabs:not(:last-child),html.theme--catppuccin-frappe .pagination:not(:last-child),html.theme--catppuccin-frappe .message:not(:last-child),html.theme--catppuccin-frappe .level:not(:last-child),html.theme--catppuccin-frappe .breadcrumb:not(:last-child),html.theme--catppuccin-frappe .block:not(:last-child),html.theme--catppuccin-frappe .title:not(:last-child),html.theme--catppuccin-frappe .subtitle:not(:last-child),html.theme--catppuccin-frappe .table-container:not(:last-child),html.theme--catppuccin-frappe .table:not(:last-child),html.theme--catppuccin-frappe .progress:not(:last-child),html.theme--catppuccin-frappe .notification:not(:last-child),html.theme--catppuccin-frappe .content:not(:last-child),html.theme--catppuccin-frappe .box:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-frappe .modal-close,html.theme--catppuccin-frappe .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--catppuccin-frappe .modal-close::before,html.theme--catppuccin-frappe .delete::before,html.theme--catppuccin-frappe .modal-close::after,html.theme--catppuccin-frappe .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--catppuccin-frappe .modal-close::before,html.theme--catppuccin-frappe .delete::before{height:2px;width:50%}html.theme--catppuccin-frappe .modal-close::after,html.theme--catppuccin-frappe .delete::after{height:50%;width:2px}html.theme--catppuccin-frappe .modal-close:hover,html.theme--catppuccin-frappe .delete:hover,html.theme--catppuccin-frappe .modal-close:focus,html.theme--catppuccin-frappe .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--catppuccin-frappe .modal-close:active,html.theme--catppuccin-frappe .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--catppuccin-frappe .is-small.modal-close,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--catppuccin-frappe .is-small.delete,html.theme--catppuccin-frappe #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--catppuccin-frappe .is-medium.modal-close,html.theme--catppuccin-frappe .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--catppuccin-frappe .is-large.modal-close,html.theme--catppuccin-frappe .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--catppuccin-frappe .control.is-loading::after,html.theme--catppuccin-frappe .select.is-loading::after,html.theme--catppuccin-frappe .loader,html.theme--catppuccin-frappe .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #838ba7;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--catppuccin-frappe .hero-video,html.theme--catppuccin-frappe .modal-background,html.theme--catppuccin-frappe .modal,html.theme--catppuccin-frappe .image.is-square img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-frappe .image.is-square .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-frappe .image.is-1by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-frappe .image.is-1by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-frappe .image.is-5by4 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-frappe .image.is-5by4 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-frappe .image.is-4by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-frappe .image.is-4by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-frappe .image.is-3by2 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-frappe .image.is-3by2 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-frappe .image.is-5by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-frappe .image.is-5by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-frappe .image.is-16by9 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-frappe .image.is-16by9 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-frappe .image.is-2by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-frappe .image.is-2by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-frappe .image.is-3by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-frappe .image.is-3by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-frappe .image.is-4by5 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-frappe .image.is-4by5 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-frappe .image.is-3by4 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-frappe .image.is-3by4 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-frappe .image.is-2by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-frappe .image.is-2by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-frappe .image.is-3by5 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-frappe .image.is-3by5 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-frappe .image.is-9by16 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-frappe .image.is-9by16 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-frappe .image.is-1by2 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-frappe .image.is-1by2 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-frappe .image.is-1by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-frappe .image.is-1by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--catppuccin-frappe .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:#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:#414559 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#2b2e3c !important}.has-background-dark{background-color:#414559 !important}.has-text-primary{color:#8caaee !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#6089e7 !important}.has-background-primary{background-color:#8caaee !important}.has-text-primary-light{color:#edf2fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c1d1f6 !important}.has-background-primary-light{background-color:#edf2fc !important}.has-text-primary-dark{color:#153a8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#1c4cbb !important}.has-background-primary-dark{background-color:#153a8e !important}.has-text-link{color:#8caaee !important}a.has-text-link:hover,a.has-text-link:focus{color:#6089e7 !important}.has-background-link{background-color:#8caaee !important}.has-text-link-light{color:#edf2fc !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c1d1f6 !important}.has-background-link-light{background-color:#edf2fc !important}.has-text-link-dark{color:#153a8e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1c4cbb !important}.has-background-link-dark{background-color:#153a8e !important}.has-text-info{color:#81c8be !important}a.has-text-info:hover,a.has-text-info:focus{color:#5db9ac !important}.has-background-info{background-color:#81c8be !important}.has-text-info-light{color:#f1f9f8 !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#cde9e5 !important}.has-background-info-light{background-color:#f1f9f8 !important}.has-text-info-dark{color:#2d675f !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#3c8a7f !important}.has-background-info-dark{background-color:#2d675f !important}.has-text-success{color:#a6d189 !important}a.has-text-success:hover,a.has-text-success:focus{color:#8ac364 !important}.has-background-success{background-color:#a6d189 !important}.has-text-success-light{color:#f4f9f0 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#d8ebcc !important}.has-background-success-light{background-color:#f4f9f0 !important}.has-text-success-dark{color:#446a29 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#5b8f38 !important}.has-background-success-dark{background-color:#446a29 !important}.has-text-warning{color:#e5c890 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#dbb467 !important}.has-background-warning{background-color:#e5c890 !important}.has-text-warning-light{color:#fbf7ee !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#f1e2c5 !important}.has-background-warning-light{background-color:#fbf7ee !important}.has-text-warning-dark{color:#78591c !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#a17726 !important}.has-background-warning-dark{background-color:#78591c !important}.has-text-danger{color:#e78284 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#df575a !important}.has-background-danger{background-color:#e78284 !important}.has-text-danger-light{color:#fceeee !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#f3c3c4 !important}.has-background-danger-light{background-color:#fceeee !important}.has-text-danger-dark{color:#9a1e20 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#c52629 !important}.has-background-danger-dark{background-color:#9a1e20 !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:#414559 !important}.has-background-grey-darker{background-color:#414559 !important}.has-text-grey-dark{color:#51576d !important}.has-background-grey-dark{background-color:#51576d !important}.has-text-grey{color:#626880 !important}.has-background-grey{background-color:#626880 !important}.has-text-grey-light{color:#737994 !important}.has-background-grey-light{background-color:#737994 !important}.has-text-grey-lighter{color:#838ba7 !important}.has-background-grey-lighter{background-color:#838ba7 !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,html.theme--catppuccin-frappe .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--catppuccin-frappe html{background-color:#303446;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--catppuccin-frappe article,html.theme--catppuccin-frappe aside,html.theme--catppuccin-frappe figure,html.theme--catppuccin-frappe footer,html.theme--catppuccin-frappe header,html.theme--catppuccin-frappe hgroup,html.theme--catppuccin-frappe section{display:block}html.theme--catppuccin-frappe body,html.theme--catppuccin-frappe button,html.theme--catppuccin-frappe input,html.theme--catppuccin-frappe optgroup,html.theme--catppuccin-frappe select,html.theme--catppuccin-frappe textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--catppuccin-frappe code,html.theme--catppuccin-frappe 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--catppuccin-frappe body{color:#c6d0f5;font-size:1em;font-weight:400;line-height:1.5}html.theme--catppuccin-frappe a{color:#8caaee;cursor:pointer;text-decoration:none}html.theme--catppuccin-frappe a strong{color:currentColor}html.theme--catppuccin-frappe a:hover{color:#99d1db}html.theme--catppuccin-frappe code{background-color:#292c3c;color:#c6d0f5;font-size:.875em;font-weight:normal;padding:.1em}html.theme--catppuccin-frappe hr{background-color:#292c3c;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--catppuccin-frappe img{height:auto;max-width:100%}html.theme--catppuccin-frappe input[type="checkbox"],html.theme--catppuccin-frappe input[type="radio"]{vertical-align:baseline}html.theme--catppuccin-frappe small{font-size:.875em}html.theme--catppuccin-frappe span{font-style:inherit;font-weight:inherit}html.theme--catppuccin-frappe strong{color:#b0bef1;font-weight:700}html.theme--catppuccin-frappe fieldset{border:none}html.theme--catppuccin-frappe pre{-webkit-overflow-scrolling:touch;background-color:#292c3c;color:#c6d0f5;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--catppuccin-frappe pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--catppuccin-frappe table td,html.theme--catppuccin-frappe table th{vertical-align:top}html.theme--catppuccin-frappe table td:not([align]),html.theme--catppuccin-frappe table th:not([align]){text-align:inherit}html.theme--catppuccin-frappe table th{color:#b0bef1}html.theme--catppuccin-frappe .box{background-color:#51576d;border-radius:8px;box-shadow:none;color:#c6d0f5;display:block;padding:1.25rem}html.theme--catppuccin-frappe a.box:hover,html.theme--catppuccin-frappe a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #8caaee}html.theme--catppuccin-frappe a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #8caaee}html.theme--catppuccin-frappe .button{background-color:#292c3c;border-color:#484d69;border-width:1px;color:#8caaee;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--catppuccin-frappe .button strong{color:inherit}html.theme--catppuccin-frappe .button .icon,html.theme--catppuccin-frappe .button .icon.is-small,html.theme--catppuccin-frappe .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--catppuccin-frappe .button .icon.is-medium,html.theme--catppuccin-frappe .button .icon.is-large{height:1.5em;width:1.5em}html.theme--catppuccin-frappe .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--catppuccin-frappe .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-frappe .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-frappe .button:hover,html.theme--catppuccin-frappe .button.is-hovered{border-color:#737994;color:#b0bef1}html.theme--catppuccin-frappe .button:focus,html.theme--catppuccin-frappe .button.is-focused{border-color:#737994;color:#769aeb}html.theme--catppuccin-frappe .button:focus:not(:active),html.theme--catppuccin-frappe .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .button:active,html.theme--catppuccin-frappe .button.is-active{border-color:#51576d;color:#b0bef1}html.theme--catppuccin-frappe .button.is-text{background-color:transparent;border-color:transparent;color:#c6d0f5;text-decoration:underline}html.theme--catppuccin-frappe .button.is-text:hover,html.theme--catppuccin-frappe .button.is-text.is-hovered,html.theme--catppuccin-frappe .button.is-text:focus,html.theme--catppuccin-frappe .button.is-text.is-focused{background-color:#292c3c;color:#b0bef1}html.theme--catppuccin-frappe .button.is-text:active,html.theme--catppuccin-frappe .button.is-text.is-active{background-color:#1f212d;color:#b0bef1}html.theme--catppuccin-frappe .button.is-text[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--catppuccin-frappe .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#8caaee;text-decoration:none}html.theme--catppuccin-frappe .button.is-ghost:hover,html.theme--catppuccin-frappe .button.is-ghost.is-hovered{color:#8caaee;text-decoration:underline}html.theme--catppuccin-frappe .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white:hover,html.theme--catppuccin-frappe .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white:focus,html.theme--catppuccin-frappe .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white:focus:not(:active),html.theme--catppuccin-frappe .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-frappe .button.is-white:active,html.theme--catppuccin-frappe .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--catppuccin-frappe .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .button.is-white.is-inverted:hover,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--catppuccin-frappe .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-frappe .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-white.is-outlined:hover,html.theme--catppuccin-frappe .button.is-white.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-white.is-outlined:focus,html.theme--catppuccin-frappe .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-white.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-white.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-frappe .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-black:hover,html.theme--catppuccin-frappe .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-black:focus,html.theme--catppuccin-frappe .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-black:focus:not(:active),html.theme--catppuccin-frappe .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-frappe .button.is-black:active,html.theme--catppuccin-frappe .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-black[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--catppuccin-frappe .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black.is-inverted:hover,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-frappe .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black.is-outlined:hover,html.theme--catppuccin-frappe .button.is-black.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-black.is-outlined:focus,html.theme--catppuccin-frappe .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-frappe .button.is-black.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-black.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light:hover,html.theme--catppuccin-frappe .button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light:focus,html.theme--catppuccin-frappe .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light:focus:not(:active),html.theme--catppuccin-frappe .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-frappe .button.is-light:active,html.theme--catppuccin-frappe .button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}html.theme--catppuccin-frappe .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-frappe .button.is-light.is-inverted:hover,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-frappe .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--catppuccin-frappe .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}html.theme--catppuccin-frappe .button.is-light.is-outlined:hover,html.theme--catppuccin-frappe .button.is-light.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-light.is-outlined:focus,html.theme--catppuccin-frappe .button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-frappe .button.is-light.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-light.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .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--catppuccin-frappe .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-frappe .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--catppuccin-frappe .button.is-light.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-frappe .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .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--catppuccin-frappe .button.is-dark,html.theme--catppuccin-frappe .content kbd.button{background-color:#414559;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-dark:hover,html.theme--catppuccin-frappe .content kbd.button:hover,html.theme--catppuccin-frappe .button.is-dark.is-hovered,html.theme--catppuccin-frappe .content kbd.button.is-hovered{background-color:#3c3f52;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-dark:focus,html.theme--catppuccin-frappe .content kbd.button:focus,html.theme--catppuccin-frappe .button.is-dark.is-focused,html.theme--catppuccin-frappe .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-dark:focus:not(:active),html.theme--catppuccin-frappe .content kbd.button:focus:not(:active),html.theme--catppuccin-frappe .button.is-dark.is-focused:not(:active),html.theme--catppuccin-frappe .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(65,69,89,0.25)}html.theme--catppuccin-frappe .button.is-dark:active,html.theme--catppuccin-frappe .content kbd.button:active,html.theme--catppuccin-frappe .button.is-dark.is-active,html.theme--catppuccin-frappe .content kbd.button.is-active{background-color:#363a4a;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-dark[disabled],html.theme--catppuccin-frappe .content kbd.button[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-dark,fieldset[disabled] html.theme--catppuccin-frappe .content kbd.button{background-color:#414559;border-color:#414559;box-shadow:none}html.theme--catppuccin-frappe .button.is-dark.is-inverted,html.theme--catppuccin-frappe .content kbd.button.is-inverted{background-color:#fff;color:#414559}html.theme--catppuccin-frappe .button.is-dark.is-inverted:hover,html.theme--catppuccin-frappe .content kbd.button.is-inverted:hover,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-hovered,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-frappe .button.is-dark.is-inverted[disabled],html.theme--catppuccin-frappe .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-dark.is-inverted,fieldset[disabled] html.theme--catppuccin-frappe .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#414559}html.theme--catppuccin-frappe .button.is-dark.is-loading::after,html.theme--catppuccin-frappe .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-dark.is-outlined,html.theme--catppuccin-frappe .content kbd.button.is-outlined{background-color:transparent;border-color:#414559;color:#414559}html.theme--catppuccin-frappe .button.is-dark.is-outlined:hover,html.theme--catppuccin-frappe .content kbd.button.is-outlined:hover,html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-hovered,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-dark.is-outlined:focus,html.theme--catppuccin-frappe .content kbd.button.is-outlined:focus,html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-focused,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-focused{background-color:#414559;border-color:#414559;color:#fff}html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-loading::after,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #414559 #414559 !important}html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-frappe .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-dark.is-outlined[disabled],html.theme--catppuccin-frappe .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-dark.is-outlined,fieldset[disabled] html.theme--catppuccin-frappe .content kbd.button.is-outlined{background-color:transparent;border-color:#414559;box-shadow:none;color:#414559}html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#414559}html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #414559 #414559 !important}html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined[disabled],html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-frappe .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-primary,html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink{background-color:#8caaee;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-primary:hover,html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink:hover,html.theme--catppuccin-frappe .button.is-primary.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#81a2ec;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-primary:focus,html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink:focus,html.theme--catppuccin-frappe .button.is-primary.is-focused,html.theme--catppuccin-frappe .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-primary:focus:not(:active),html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--catppuccin-frappe .button.is-primary.is-focused:not(:active),html.theme--catppuccin-frappe .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .button.is-primary:active,html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink:active,html.theme--catppuccin-frappe .button.is-primary.is-active,html.theme--catppuccin-frappe .docstring>section>a.button.is-active.docs-sourcelink{background-color:#769aeb;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-primary[disabled],html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-primary,fieldset[disabled] html.theme--catppuccin-frappe .docstring>section>a.button.docs-sourcelink{background-color:#8caaee;border-color:#8caaee;box-shadow:none}html.theme--catppuccin-frappe .button.is-primary.is-inverted,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .button.is-primary.is-inverted:hover,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--catppuccin-frappe .button.is-primary.is-inverted[disabled],html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-primary.is-inverted,fieldset[disabled] html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#8caaee}html.theme--catppuccin-frappe .button.is-primary.is-loading::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-primary.is-outlined,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#8caaee;color:#8caaee}html.theme--catppuccin-frappe .button.is-primary.is-outlined:hover,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-frappe .button.is-primary.is-outlined:focus,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-focused,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#8caaee;border-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-loading::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #8caaee #8caaee !important}html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-frappe .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-primary.is-outlined[disabled],html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-primary.is-outlined,fieldset[disabled] html.theme--catppuccin-frappe .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#8caaee;box-shadow:none;color:#8caaee}html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #8caaee #8caaee !important}html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined[disabled],html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-frappe .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-primary.is-light,html.theme--catppuccin-frappe .docstring>section>a.button.is-light.docs-sourcelink{background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .button.is-primary.is-light:hover,html.theme--catppuccin-frappe .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--catppuccin-frappe .button.is-primary.is-light.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e2eafb;border-color:transparent;color:#153a8e}html.theme--catppuccin-frappe .button.is-primary.is-light:active,html.theme--catppuccin-frappe .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--catppuccin-frappe .button.is-primary.is-light.is-active,html.theme--catppuccin-frappe .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d7e1f9;border-color:transparent;color:#153a8e}html.theme--catppuccin-frappe .button.is-link{background-color:#8caaee;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-link:hover,html.theme--catppuccin-frappe .button.is-link.is-hovered{background-color:#81a2ec;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-link:focus,html.theme--catppuccin-frappe .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-link:focus:not(:active),html.theme--catppuccin-frappe .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .button.is-link:active,html.theme--catppuccin-frappe .button.is-link.is-active{background-color:#769aeb;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-link[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-link{background-color:#8caaee;border-color:#8caaee;box-shadow:none}html.theme--catppuccin-frappe .button.is-link.is-inverted{background-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .button.is-link.is-inverted:hover,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-frappe .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#8caaee}html.theme--catppuccin-frappe .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-link.is-outlined{background-color:transparent;border-color:#8caaee;color:#8caaee}html.theme--catppuccin-frappe .button.is-link.is-outlined:hover,html.theme--catppuccin-frappe .button.is-link.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-link.is-outlined:focus,html.theme--catppuccin-frappe .button.is-link.is-outlined.is-focused{background-color:#8caaee;border-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #8caaee #8caaee !important}html.theme--catppuccin-frappe .button.is-link.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-link.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-link.is-outlined{background-color:transparent;border-color:#8caaee;box-shadow:none;color:#8caaee}html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #8caaee #8caaee !important}html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-link.is-light{background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .button.is-link.is-light:hover,html.theme--catppuccin-frappe .button.is-link.is-light.is-hovered{background-color:#e2eafb;border-color:transparent;color:#153a8e}html.theme--catppuccin-frappe .button.is-link.is-light:active,html.theme--catppuccin-frappe .button.is-link.is-light.is-active{background-color:#d7e1f9;border-color:transparent;color:#153a8e}html.theme--catppuccin-frappe .button.is-info{background-color:#81c8be;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info:hover,html.theme--catppuccin-frappe .button.is-info.is-hovered{background-color:#78c4b9;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info:focus,html.theme--catppuccin-frappe .button.is-info.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info:focus:not(:active),html.theme--catppuccin-frappe .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(129,200,190,0.25)}html.theme--catppuccin-frappe .button.is-info:active,html.theme--catppuccin-frappe .button.is-info.is-active{background-color:#6fc0b5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-info{background-color:#81c8be;border-color:#81c8be;box-shadow:none}html.theme--catppuccin-frappe .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);color:#81c8be}html.theme--catppuccin-frappe .button.is-info.is-inverted:hover,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#81c8be}html.theme--catppuccin-frappe .button.is-info.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-frappe .button.is-info.is-outlined{background-color:transparent;border-color:#81c8be;color:#81c8be}html.theme--catppuccin-frappe .button.is-info.is-outlined:hover,html.theme--catppuccin-frappe .button.is-info.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-info.is-outlined:focus,html.theme--catppuccin-frappe .button.is-info.is-outlined.is-focused{background-color:#81c8be;border-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #81c8be #81c8be !important}html.theme--catppuccin-frappe .button.is-info.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-info.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-info.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--catppuccin-frappe .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-info.is-outlined{background-color:transparent;border-color:#81c8be;box-shadow:none;color:#81c8be}html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#81c8be}html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #81c8be #81c8be !important}html.theme--catppuccin-frappe .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-info.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--catppuccin-frappe .button.is-info.is-light{background-color:#f1f9f8;color:#2d675f}html.theme--catppuccin-frappe .button.is-info.is-light:hover,html.theme--catppuccin-frappe .button.is-info.is-light.is-hovered{background-color:#e8f5f3;border-color:transparent;color:#2d675f}html.theme--catppuccin-frappe .button.is-info.is-light:active,html.theme--catppuccin-frappe .button.is-info.is-light.is-active{background-color:#dff1ef;border-color:transparent;color:#2d675f}html.theme--catppuccin-frappe .button.is-success{background-color:#a6d189;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success:hover,html.theme--catppuccin-frappe .button.is-success.is-hovered{background-color:#9fcd80;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success:focus,html.theme--catppuccin-frappe .button.is-success.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success:focus:not(:active),html.theme--catppuccin-frappe .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(166,209,137,0.25)}html.theme--catppuccin-frappe .button.is-success:active,html.theme--catppuccin-frappe .button.is-success.is-active{background-color:#98ca77;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-success{background-color:#a6d189;border-color:#a6d189;box-shadow:none}html.theme--catppuccin-frappe .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);color:#a6d189}html.theme--catppuccin-frappe .button.is-success.is-inverted:hover,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#a6d189}html.theme--catppuccin-frappe .button.is-success.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-frappe .button.is-success.is-outlined{background-color:transparent;border-color:#a6d189;color:#a6d189}html.theme--catppuccin-frappe .button.is-success.is-outlined:hover,html.theme--catppuccin-frappe .button.is-success.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-success.is-outlined:focus,html.theme--catppuccin-frappe .button.is-success.is-outlined.is-focused{background-color:#a6d189;border-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #a6d189 #a6d189 !important}html.theme--catppuccin-frappe .button.is-success.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-success.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-success.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--catppuccin-frappe .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-success.is-outlined{background-color:transparent;border-color:#a6d189;box-shadow:none;color:#a6d189}html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#a6d189}html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #a6d189 #a6d189 !important}html.theme--catppuccin-frappe .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-success.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--catppuccin-frappe .button.is-success.is-light{background-color:#f4f9f0;color:#446a29}html.theme--catppuccin-frappe .button.is-success.is-light:hover,html.theme--catppuccin-frappe .button.is-success.is-light.is-hovered{background-color:#edf6e7;border-color:transparent;color:#446a29}html.theme--catppuccin-frappe .button.is-success.is-light:active,html.theme--catppuccin-frappe .button.is-success.is-light.is-active{background-color:#e6f2de;border-color:transparent;color:#446a29}html.theme--catppuccin-frappe .button.is-warning{background-color:#e5c890;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning:hover,html.theme--catppuccin-frappe .button.is-warning.is-hovered{background-color:#e3c386;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning:focus,html.theme--catppuccin-frappe .button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning:focus:not(:active),html.theme--catppuccin-frappe .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(229,200,144,0.25)}html.theme--catppuccin-frappe .button.is-warning:active,html.theme--catppuccin-frappe .button.is-warning.is-active{background-color:#e0be7b;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-warning{background-color:#e5c890;border-color:#e5c890;box-shadow:none}html.theme--catppuccin-frappe .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#e5c890}html.theme--catppuccin-frappe .button.is-warning.is-inverted:hover,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#e5c890}html.theme--catppuccin-frappe .button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-frappe .button.is-warning.is-outlined{background-color:transparent;border-color:#e5c890;color:#e5c890}html.theme--catppuccin-frappe .button.is-warning.is-outlined:hover,html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-warning.is-outlined:focus,html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-focused{background-color:#e5c890;border-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #e5c890 #e5c890 !important}html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-warning.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .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}html.theme--catppuccin-frappe .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-warning.is-outlined{background-color:transparent;border-color:#e5c890;box-shadow:none;color:#e5c890}html.theme--catppuccin-frappe .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)}html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#e5c890}html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #e5c890 #e5c890 !important}html.theme--catppuccin-frappe .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .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)}html.theme--catppuccin-frappe .button.is-warning.is-light{background-color:#fbf7ee;color:#78591c}html.theme--catppuccin-frappe .button.is-warning.is-light:hover,html.theme--catppuccin-frappe .button.is-warning.is-light.is-hovered{background-color:#f9f2e4;border-color:transparent;color:#78591c}html.theme--catppuccin-frappe .button.is-warning.is-light:active,html.theme--catppuccin-frappe .button.is-warning.is-light.is-active{background-color:#f6edda;border-color:transparent;color:#78591c}html.theme--catppuccin-frappe .button.is-danger{background-color:#e78284;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-danger:hover,html.theme--catppuccin-frappe .button.is-danger.is-hovered{background-color:#e57779;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-danger:focus,html.theme--catppuccin-frappe .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-danger:focus:not(:active),html.theme--catppuccin-frappe .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(231,130,132,0.25)}html.theme--catppuccin-frappe .button.is-danger:active,html.theme--catppuccin-frappe .button.is-danger.is-active{background-color:#e36d6f;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .button.is-danger[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-danger{background-color:#e78284;border-color:#e78284;box-shadow:none}html.theme--catppuccin-frappe .button.is-danger.is-inverted{background-color:#fff;color:#e78284}html.theme--catppuccin-frappe .button.is-danger.is-inverted:hover,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-frappe .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#e78284}html.theme--catppuccin-frappe .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-danger.is-outlined{background-color:transparent;border-color:#e78284;color:#e78284}html.theme--catppuccin-frappe .button.is-danger.is-outlined:hover,html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-danger.is-outlined:focus,html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-focused{background-color:#e78284;border-color:#e78284;color:#fff}html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #e78284 #e78284 !important}html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-frappe .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-danger.is-outlined{background-color:transparent;border-color:#e78284;box-shadow:none;color:#e78284}html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined:hover,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined:focus,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#e78284}html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #e78284 #e78284 !important}html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-frappe .button.is-danger.is-light{background-color:#fceeee;color:#9a1e20}html.theme--catppuccin-frappe .button.is-danger.is-light:hover,html.theme--catppuccin-frappe .button.is-danger.is-light.is-hovered{background-color:#fae3e4;border-color:transparent;color:#9a1e20}html.theme--catppuccin-frappe .button.is-danger.is-light:active,html.theme--catppuccin-frappe .button.is-danger.is-light.is-active{background-color:#f8d8d9;border-color:transparent;color:#9a1e20}html.theme--catppuccin-frappe .button.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--catppuccin-frappe .button.is-small:not(.is-rounded),html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--catppuccin-frappe .button.is-normal{font-size:1rem}html.theme--catppuccin-frappe .button.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .button.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .button[disabled],fieldset[disabled] html.theme--catppuccin-frappe .button{background-color:#737994;border-color:#626880;box-shadow:none;opacity:.5}html.theme--catppuccin-frappe .button.is-fullwidth{display:flex;width:100%}html.theme--catppuccin-frappe .button.is-loading{color:transparent !important;pointer-events:none}html.theme--catppuccin-frappe .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--catppuccin-frappe .button.is-static{background-color:#292c3c;border-color:#626880;color:#838ba7;box-shadow:none;pointer-events:none}html.theme--catppuccin-frappe .button.is-rounded,html.theme--catppuccin-frappe #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--catppuccin-frappe .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-frappe .buttons .button{margin-bottom:0.5rem}html.theme--catppuccin-frappe .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--catppuccin-frappe .buttons:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-frappe .buttons:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-frappe .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--catppuccin-frappe .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--catppuccin-frappe .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--catppuccin-frappe .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--catppuccin-frappe .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-frappe .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--catppuccin-frappe .buttons.has-addons .button:last-child{margin-right:0}html.theme--catppuccin-frappe .buttons.has-addons .button:hover,html.theme--catppuccin-frappe .buttons.has-addons .button.is-hovered{z-index:2}html.theme--catppuccin-frappe .buttons.has-addons .button:focus,html.theme--catppuccin-frappe .buttons.has-addons .button.is-focused,html.theme--catppuccin-frappe .buttons.has-addons .button:active,html.theme--catppuccin-frappe .buttons.has-addons .button.is-active,html.theme--catppuccin-frappe .buttons.has-addons .button.is-selected{z-index:3}html.theme--catppuccin-frappe .buttons.has-addons .button:focus:hover,html.theme--catppuccin-frappe .buttons.has-addons .button.is-focused:hover,html.theme--catppuccin-frappe .buttons.has-addons .button:active:hover,html.theme--catppuccin-frappe .buttons.has-addons .button.is-active:hover,html.theme--catppuccin-frappe .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--catppuccin-frappe .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .buttons.is-centered{justify-content:center}html.theme--catppuccin-frappe .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--catppuccin-frappe .buttons.is-right{justify-content:flex-end}html.theme--catppuccin-frappe .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--catppuccin-frappe .button.is-responsive.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--catppuccin-frappe .button.is-responsive,html.theme--catppuccin-frappe .button.is-responsive.is-normal{font-size:.65625rem}html.theme--catppuccin-frappe .button.is-responsive.is-medium{font-size:.75rem}html.theme--catppuccin-frappe .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .button.is-responsive.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--catppuccin-frappe .button.is-responsive,html.theme--catppuccin-frappe .button.is-responsive.is-normal{font-size:.75rem}html.theme--catppuccin-frappe .button.is-responsive.is-medium{font-size:1rem}html.theme--catppuccin-frappe .button.is-responsive.is-large{font-size:1.25rem}}html.theme--catppuccin-frappe .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--catppuccin-frappe .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--catppuccin-frappe .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--catppuccin-frappe .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--catppuccin-frappe .content li+li{margin-top:0.25em}html.theme--catppuccin-frappe .content p:not(:last-child),html.theme--catppuccin-frappe .content dl:not(:last-child),html.theme--catppuccin-frappe .content ol:not(:last-child),html.theme--catppuccin-frappe .content ul:not(:last-child),html.theme--catppuccin-frappe .content blockquote:not(:last-child),html.theme--catppuccin-frappe .content pre:not(:last-child),html.theme--catppuccin-frappe .content table:not(:last-child){margin-bottom:1em}html.theme--catppuccin-frappe .content h1,html.theme--catppuccin-frappe .content h2,html.theme--catppuccin-frappe .content h3,html.theme--catppuccin-frappe .content h4,html.theme--catppuccin-frappe .content h5,html.theme--catppuccin-frappe .content h6{color:#c6d0f5;font-weight:600;line-height:1.125}html.theme--catppuccin-frappe .content h1{font-size:2em;margin-bottom:0.5em}html.theme--catppuccin-frappe .content h1:not(:first-child){margin-top:1em}html.theme--catppuccin-frappe .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--catppuccin-frappe .content h2:not(:first-child){margin-top:1.1428em}html.theme--catppuccin-frappe .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--catppuccin-frappe .content h3:not(:first-child){margin-top:1.3333em}html.theme--catppuccin-frappe .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--catppuccin-frappe .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--catppuccin-frappe .content h6{font-size:1em;margin-bottom:1em}html.theme--catppuccin-frappe .content blockquote{background-color:#292c3c;border-left:5px solid #626880;padding:1.25em 1.5em}html.theme--catppuccin-frappe .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-frappe .content ol:not([type]){list-style-type:decimal}html.theme--catppuccin-frappe .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--catppuccin-frappe .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--catppuccin-frappe .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--catppuccin-frappe .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--catppuccin-frappe .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-frappe .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--catppuccin-frappe .content ul ul ul{list-style-type:square}html.theme--catppuccin-frappe .content dd{margin-left:2em}html.theme--catppuccin-frappe .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--catppuccin-frappe .content figure:not(:first-child){margin-top:2em}html.theme--catppuccin-frappe .content figure:not(:last-child){margin-bottom:2em}html.theme--catppuccin-frappe .content figure img{display:inline-block}html.theme--catppuccin-frappe .content figure figcaption{font-style:italic}html.theme--catppuccin-frappe .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--catppuccin-frappe .content sup,html.theme--catppuccin-frappe .content sub{font-size:75%}html.theme--catppuccin-frappe .content table{width:100%}html.theme--catppuccin-frappe .content table td,html.theme--catppuccin-frappe .content table th{border:1px solid #626880;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-frappe .content table th{color:#b0bef1}html.theme--catppuccin-frappe .content table th:not([align]){text-align:inherit}html.theme--catppuccin-frappe .content table thead td,html.theme--catppuccin-frappe .content table thead th{border-width:0 0 2px;color:#b0bef1}html.theme--catppuccin-frappe .content table tfoot td,html.theme--catppuccin-frappe .content table tfoot th{border-width:2px 0 0;color:#b0bef1}html.theme--catppuccin-frappe .content table tbody tr:last-child td,html.theme--catppuccin-frappe .content table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-frappe .content .tabs li+li{margin-top:0}html.theme--catppuccin-frappe .content.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--catppuccin-frappe .content.is-normal{font-size:1rem}html.theme--catppuccin-frappe .content.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .content.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--catppuccin-frappe .icon.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--catppuccin-frappe .icon.is-medium{height:2rem;width:2rem}html.theme--catppuccin-frappe .icon.is-large{height:3rem;width:3rem}html.theme--catppuccin-frappe .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--catppuccin-frappe .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--catppuccin-frappe .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--catppuccin-frappe .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--catppuccin-frappe div.icon-text{display:flex}html.theme--catppuccin-frappe .image,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--catppuccin-frappe .image img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--catppuccin-frappe .image img.is-rounded,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--catppuccin-frappe .image.is-fullwidth,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--catppuccin-frappe .image.is-square img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-frappe .image.is-square .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-frappe .image.is-1by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-frappe .image.is-1by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-frappe .image.is-5by4 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-frappe .image.is-5by4 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-frappe .image.is-4by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-frappe .image.is-4by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-frappe .image.is-3by2 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-frappe .image.is-3by2 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-frappe .image.is-5by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-frappe .image.is-5by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-frappe .image.is-16by9 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-frappe .image.is-16by9 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-frappe .image.is-2by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-frappe .image.is-2by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-frappe .image.is-3by1 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-frappe .image.is-3by1 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-frappe .image.is-4by5 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-frappe .image.is-4by5 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-frappe .image.is-3by4 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-frappe .image.is-3by4 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-frappe .image.is-2by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-frappe .image.is-2by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-frappe .image.is-3by5 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-frappe .image.is-3by5 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-frappe .image.is-9by16 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-frappe .image.is-9by16 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-frappe .image.is-1by2 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-frappe .image.is-1by2 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-frappe .image.is-1by3 img,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-frappe .image.is-1by3 .has-ratio,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--catppuccin-frappe .image.is-square,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--catppuccin-frappe .image.is-1by1,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--catppuccin-frappe .image.is-5by4,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--catppuccin-frappe .image.is-4by3,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--catppuccin-frappe .image.is-3by2,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--catppuccin-frappe .image.is-5by3,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--catppuccin-frappe .image.is-16by9,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--catppuccin-frappe .image.is-2by1,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--catppuccin-frappe .image.is-3by1,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--catppuccin-frappe .image.is-4by5,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--catppuccin-frappe .image.is-3by4,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--catppuccin-frappe .image.is-2by3,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--catppuccin-frappe .image.is-3by5,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--catppuccin-frappe .image.is-9by16,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--catppuccin-frappe .image.is-1by2,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--catppuccin-frappe .image.is-1by3,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--catppuccin-frappe .image.is-16x16,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--catppuccin-frappe .image.is-24x24,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--catppuccin-frappe .image.is-32x32,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--catppuccin-frappe .image.is-48x48,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--catppuccin-frappe .image.is-64x64,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--catppuccin-frappe .image.is-96x96,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--catppuccin-frappe .image.is-128x128,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--catppuccin-frappe .notification{background-color:#292c3c;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--catppuccin-frappe .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-frappe .notification strong{color:currentColor}html.theme--catppuccin-frappe .notification code,html.theme--catppuccin-frappe .notification pre{background:#fff}html.theme--catppuccin-frappe .notification pre code{background:transparent}html.theme--catppuccin-frappe .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--catppuccin-frappe .notification .title,html.theme--catppuccin-frappe .notification .subtitle,html.theme--catppuccin-frappe .notification .content{color:currentColor}html.theme--catppuccin-frappe .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .notification.is-dark,html.theme--catppuccin-frappe .content kbd.notification{background-color:#414559;color:#fff}html.theme--catppuccin-frappe .notification.is-primary,html.theme--catppuccin-frappe .docstring>section>a.notification.docs-sourcelink{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .notification.is-primary.is-light,html.theme--catppuccin-frappe .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .notification.is-link{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .notification.is-link.is-light{background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .notification.is-info{background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .notification.is-info.is-light{background-color:#f1f9f8;color:#2d675f}html.theme--catppuccin-frappe .notification.is-success{background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .notification.is-success.is-light{background-color:#f4f9f0;color:#446a29}html.theme--catppuccin-frappe .notification.is-warning{background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .notification.is-warning.is-light{background-color:#fbf7ee;color:#78591c}html.theme--catppuccin-frappe .notification.is-danger{background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .notification.is-danger.is-light{background-color:#fceeee;color:#9a1e20}html.theme--catppuccin-frappe .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--catppuccin-frappe .progress::-webkit-progress-bar{background-color:#51576d}html.theme--catppuccin-frappe .progress::-webkit-progress-value{background-color:#838ba7}html.theme--catppuccin-frappe .progress::-moz-progress-bar{background-color:#838ba7}html.theme--catppuccin-frappe .progress::-ms-fill{background-color:#838ba7;border:none}html.theme--catppuccin-frappe .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--catppuccin-frappe .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--catppuccin-frappe .progress.is-white::-ms-fill{background-color:#fff}html.theme--catppuccin-frappe .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--catppuccin-frappe .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--catppuccin-frappe .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--catppuccin-frappe .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-light::-webkit-progress-value{background-color:#f5f5f5}html.theme--catppuccin-frappe .progress.is-light::-moz-progress-bar{background-color:#f5f5f5}html.theme--catppuccin-frappe .progress.is-light::-ms-fill{background-color:#f5f5f5}html.theme--catppuccin-frappe .progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-dark::-webkit-progress-value,html.theme--catppuccin-frappe .content kbd.progress::-webkit-progress-value{background-color:#414559}html.theme--catppuccin-frappe .progress.is-dark::-moz-progress-bar,html.theme--catppuccin-frappe .content kbd.progress::-moz-progress-bar{background-color:#414559}html.theme--catppuccin-frappe .progress.is-dark::-ms-fill,html.theme--catppuccin-frappe .content kbd.progress::-ms-fill{background-color:#414559}html.theme--catppuccin-frappe .progress.is-dark:indeterminate,html.theme--catppuccin-frappe .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #414559 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-primary::-webkit-progress-value,html.theme--catppuccin-frappe .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-primary::-moz-progress-bar,html.theme--catppuccin-frappe .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-primary::-ms-fill,html.theme--catppuccin-frappe .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-primary:indeterminate,html.theme--catppuccin-frappe .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #8caaee 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-link::-webkit-progress-value{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-link::-moz-progress-bar{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-link::-ms-fill{background-color:#8caaee}html.theme--catppuccin-frappe .progress.is-link:indeterminate{background-image:linear-gradient(to right, #8caaee 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-info::-webkit-progress-value{background-color:#81c8be}html.theme--catppuccin-frappe .progress.is-info::-moz-progress-bar{background-color:#81c8be}html.theme--catppuccin-frappe .progress.is-info::-ms-fill{background-color:#81c8be}html.theme--catppuccin-frappe .progress.is-info:indeterminate{background-image:linear-gradient(to right, #81c8be 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-success::-webkit-progress-value{background-color:#a6d189}html.theme--catppuccin-frappe .progress.is-success::-moz-progress-bar{background-color:#a6d189}html.theme--catppuccin-frappe .progress.is-success::-ms-fill{background-color:#a6d189}html.theme--catppuccin-frappe .progress.is-success:indeterminate{background-image:linear-gradient(to right, #a6d189 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-warning::-webkit-progress-value{background-color:#e5c890}html.theme--catppuccin-frappe .progress.is-warning::-moz-progress-bar{background-color:#e5c890}html.theme--catppuccin-frappe .progress.is-warning::-ms-fill{background-color:#e5c890}html.theme--catppuccin-frappe .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #e5c890 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress.is-danger::-webkit-progress-value{background-color:#e78284}html.theme--catppuccin-frappe .progress.is-danger::-moz-progress-bar{background-color:#e78284}html.theme--catppuccin-frappe .progress.is-danger::-ms-fill{background-color:#e78284}html.theme--catppuccin-frappe .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #e78284 30%, #51576d 30%)}html.theme--catppuccin-frappe .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#51576d;background-image:linear-gradient(to right, #c6d0f5 30%, #51576d 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--catppuccin-frappe .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--catppuccin-frappe .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--catppuccin-frappe .progress:indeterminate::-ms-fill{animation-name:none}html.theme--catppuccin-frappe .progress.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--catppuccin-frappe .progress.is-medium{height:1.25rem}html.theme--catppuccin-frappe .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--catppuccin-frappe .table{background-color:#51576d;color:#c6d0f5}html.theme--catppuccin-frappe .table td,html.theme--catppuccin-frappe .table th{border:1px solid #626880;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-frappe .table td.is-white,html.theme--catppuccin-frappe .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .table td.is-black,html.theme--catppuccin-frappe .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .table td.is-light,html.theme--catppuccin-frappe .table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .table td.is-dark,html.theme--catppuccin-frappe .table th.is-dark{background-color:#414559;border-color:#414559;color:#fff}html.theme--catppuccin-frappe .table td.is-primary,html.theme--catppuccin-frappe .table th.is-primary{background-color:#8caaee;border-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .table td.is-link,html.theme--catppuccin-frappe .table th.is-link{background-color:#8caaee;border-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .table td.is-info,html.theme--catppuccin-frappe .table th.is-info{background-color:#81c8be;border-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .table td.is-success,html.theme--catppuccin-frappe .table th.is-success{background-color:#a6d189;border-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .table td.is-warning,html.theme--catppuccin-frappe .table th.is-warning{background-color:#e5c890;border-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .table td.is-danger,html.theme--catppuccin-frappe .table th.is-danger{background-color:#e78284;border-color:#e78284;color:#fff}html.theme--catppuccin-frappe .table td.is-narrow,html.theme--catppuccin-frappe .table th.is-narrow{white-space:nowrap;width:1%}html.theme--catppuccin-frappe .table td.is-selected,html.theme--catppuccin-frappe .table th.is-selected{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .table td.is-selected a,html.theme--catppuccin-frappe .table td.is-selected strong,html.theme--catppuccin-frappe .table th.is-selected a,html.theme--catppuccin-frappe .table th.is-selected strong{color:currentColor}html.theme--catppuccin-frappe .table td.is-vcentered,html.theme--catppuccin-frappe .table th.is-vcentered{vertical-align:middle}html.theme--catppuccin-frappe .table th{color:#b0bef1}html.theme--catppuccin-frappe .table th:not([align]){text-align:left}html.theme--catppuccin-frappe .table tr.is-selected{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .table tr.is-selected a,html.theme--catppuccin-frappe .table tr.is-selected strong{color:currentColor}html.theme--catppuccin-frappe .table tr.is-selected td,html.theme--catppuccin-frappe .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--catppuccin-frappe .table thead{background-color:rgba(0,0,0,0)}html.theme--catppuccin-frappe .table thead td,html.theme--catppuccin-frappe .table thead th{border-width:0 0 2px;color:#b0bef1}html.theme--catppuccin-frappe .table tfoot{background-color:rgba(0,0,0,0)}html.theme--catppuccin-frappe .table tfoot td,html.theme--catppuccin-frappe .table tfoot th{border-width:2px 0 0;color:#b0bef1}html.theme--catppuccin-frappe .table tbody{background-color:rgba(0,0,0,0)}html.theme--catppuccin-frappe .table tbody tr:last-child td,html.theme--catppuccin-frappe .table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-frappe .table.is-bordered td,html.theme--catppuccin-frappe .table.is-bordered th{border-width:1px}html.theme--catppuccin-frappe .table.is-bordered tr:last-child td,html.theme--catppuccin-frappe .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--catppuccin-frappe .table.is-fullwidth{width:100%}html.theme--catppuccin-frappe .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#414559}html.theme--catppuccin-frappe .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#414559}html.theme--catppuccin-frappe .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#454a5f}html.theme--catppuccin-frappe .table.is-narrow td,html.theme--catppuccin-frappe .table.is-narrow th{padding:0.25em 0.5em}html.theme--catppuccin-frappe .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#414559}html.theme--catppuccin-frappe .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--catppuccin-frappe .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-frappe .tags .tag,html.theme--catppuccin-frappe .tags .content kbd,html.theme--catppuccin-frappe .content .tags kbd,html.theme--catppuccin-frappe .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--catppuccin-frappe .tags .tag:not(:last-child),html.theme--catppuccin-frappe .tags .content kbd:not(:last-child),html.theme--catppuccin-frappe .content .tags kbd:not(:last-child),html.theme--catppuccin-frappe .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--catppuccin-frappe .tags:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-frappe .tags:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-frappe .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--catppuccin-frappe .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-frappe .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-frappe .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--catppuccin-frappe .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--catppuccin-frappe .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-frappe .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-frappe .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--catppuccin-frappe .tags.is-centered{justify-content:center}html.theme--catppuccin-frappe .tags.is-centered .tag,html.theme--catppuccin-frappe .tags.is-centered .content kbd,html.theme--catppuccin-frappe .content .tags.is-centered kbd,html.theme--catppuccin-frappe .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--catppuccin-frappe .tags.is-right{justify-content:flex-end}html.theme--catppuccin-frappe .tags.is-right .tag:not(:first-child),html.theme--catppuccin-frappe .tags.is-right .content kbd:not(:first-child),html.theme--catppuccin-frappe .content .tags.is-right kbd:not(:first-child),html.theme--catppuccin-frappe .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--catppuccin-frappe .tags.is-right .tag:not(:last-child),html.theme--catppuccin-frappe .tags.is-right .content kbd:not(:last-child),html.theme--catppuccin-frappe .content .tags.is-right kbd:not(:last-child),html.theme--catppuccin-frappe .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--catppuccin-frappe .tags.has-addons .tag,html.theme--catppuccin-frappe .tags.has-addons .content kbd,html.theme--catppuccin-frappe .content .tags.has-addons kbd,html.theme--catppuccin-frappe .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--catppuccin-frappe .tags.has-addons .tag:not(:first-child),html.theme--catppuccin-frappe .tags.has-addons .content kbd:not(:first-child),html.theme--catppuccin-frappe .content .tags.has-addons kbd:not(:first-child),html.theme--catppuccin-frappe .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--catppuccin-frappe .tags.has-addons .tag:not(:last-child),html.theme--catppuccin-frappe .tags.has-addons .content kbd:not(:last-child),html.theme--catppuccin-frappe .content .tags.has-addons kbd:not(:last-child),html.theme--catppuccin-frappe .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--catppuccin-frappe .tag:not(body),html.theme--catppuccin-frappe .content kbd:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#292c3c;border-radius:.4em;color:#c6d0f5;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--catppuccin-frappe .tag:not(body) .delete,html.theme--catppuccin-frappe .content kbd:not(body) .delete,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--catppuccin-frappe .tag.is-white:not(body),html.theme--catppuccin-frappe .content kbd.is-white:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .tag.is-black:not(body),html.theme--catppuccin-frappe .content kbd.is-black:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .tag.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .tag.is-dark:not(body),html.theme--catppuccin-frappe .content kbd:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--catppuccin-frappe .content .docstring>section>kbd:not(body){background-color:#414559;color:#fff}html.theme--catppuccin-frappe .tag.is-primary:not(body),html.theme--catppuccin-frappe .content kbd.is-primary:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body){background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .tag.is-primary.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-primary.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .tag.is-link:not(body),html.theme--catppuccin-frappe .content kbd.is-link:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .tag.is-link.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-link.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edf2fc;color:#153a8e}html.theme--catppuccin-frappe .tag.is-info:not(body),html.theme--catppuccin-frappe .content kbd.is-info:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .tag.is-info.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-info.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#f1f9f8;color:#2d675f}html.theme--catppuccin-frappe .tag.is-success:not(body),html.theme--catppuccin-frappe .content kbd.is-success:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .tag.is-success.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-success.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#f4f9f0;color:#446a29}html.theme--catppuccin-frappe .tag.is-warning:not(body),html.theme--catppuccin-frappe .content kbd.is-warning:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .tag.is-warning.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-warning.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fbf7ee;color:#78591c}html.theme--catppuccin-frappe .tag.is-danger:not(body),html.theme--catppuccin-frappe .content kbd.is-danger:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .tag.is-danger.is-light:not(body),html.theme--catppuccin-frappe .content kbd.is-danger.is-light:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fceeee;color:#9a1e20}html.theme--catppuccin-frappe .tag.is-normal:not(body),html.theme--catppuccin-frappe .content kbd.is-normal:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--catppuccin-frappe .tag.is-medium:not(body),html.theme--catppuccin-frappe .content kbd.is-medium:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--catppuccin-frappe .tag.is-large:not(body),html.theme--catppuccin-frappe .content kbd.is-large:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--catppuccin-frappe .tag:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-frappe .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--catppuccin-frappe .tag:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-frappe .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--catppuccin-frappe .tag:not(body) .icon:first-child:last-child,html.theme--catppuccin-frappe .content kbd:not(body) .icon:first-child:last-child,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--catppuccin-frappe .tag.is-delete:not(body),html.theme--catppuccin-frappe .content kbd.is-delete:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--catppuccin-frappe .tag.is-delete:not(body)::before,html.theme--catppuccin-frappe .content kbd.is-delete:not(body)::before,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--catppuccin-frappe .tag.is-delete:not(body)::after,html.theme--catppuccin-frappe .content kbd.is-delete:not(body)::after,html.theme--catppuccin-frappe .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--catppuccin-frappe .tag.is-delete:not(body)::before,html.theme--catppuccin-frappe .content kbd.is-delete:not(body)::before,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--catppuccin-frappe .tag.is-delete:not(body)::after,html.theme--catppuccin-frappe .content kbd.is-delete:not(body)::after,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--catppuccin-frappe .tag.is-delete:not(body):hover,html.theme--catppuccin-frappe .content kbd.is-delete:not(body):hover,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--catppuccin-frappe .tag.is-delete:not(body):focus,html.theme--catppuccin-frappe .content kbd.is-delete:not(body):focus,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1f212d}html.theme--catppuccin-frappe .tag.is-delete:not(body):active,html.theme--catppuccin-frappe .content kbd.is-delete:not(body):active,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#14161e}html.theme--catppuccin-frappe .tag.is-rounded:not(body),html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--catppuccin-frappe .content kbd.is-rounded:not(body),html.theme--catppuccin-frappe #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--catppuccin-frappe a.tag:hover,html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--catppuccin-frappe .title,html.theme--catppuccin-frappe .subtitle{word-break:break-word}html.theme--catppuccin-frappe .title em,html.theme--catppuccin-frappe .title span,html.theme--catppuccin-frappe .subtitle em,html.theme--catppuccin-frappe .subtitle span{font-weight:inherit}html.theme--catppuccin-frappe .title sub,html.theme--catppuccin-frappe .subtitle sub{font-size:.75em}html.theme--catppuccin-frappe .title sup,html.theme--catppuccin-frappe .subtitle sup{font-size:.75em}html.theme--catppuccin-frappe .title .tag,html.theme--catppuccin-frappe .title .content kbd,html.theme--catppuccin-frappe .content .title kbd,html.theme--catppuccin-frappe .title .docstring>section>a.docs-sourcelink,html.theme--catppuccin-frappe .subtitle .tag,html.theme--catppuccin-frappe .subtitle .content kbd,html.theme--catppuccin-frappe .content .subtitle kbd,html.theme--catppuccin-frappe .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--catppuccin-frappe .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--catppuccin-frappe .title strong{color:inherit;font-weight:inherit}html.theme--catppuccin-frappe .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--catppuccin-frappe .title.is-1{font-size:3rem}html.theme--catppuccin-frappe .title.is-2{font-size:2.5rem}html.theme--catppuccin-frappe .title.is-3{font-size:2rem}html.theme--catppuccin-frappe .title.is-4{font-size:1.5rem}html.theme--catppuccin-frappe .title.is-5{font-size:1.25rem}html.theme--catppuccin-frappe .title.is-6{font-size:1rem}html.theme--catppuccin-frappe .title.is-7{font-size:.75rem}html.theme--catppuccin-frappe .subtitle{color:#737994;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--catppuccin-frappe .subtitle strong{color:#737994;font-weight:600}html.theme--catppuccin-frappe .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--catppuccin-frappe .subtitle.is-1{font-size:3rem}html.theme--catppuccin-frappe .subtitle.is-2{font-size:2.5rem}html.theme--catppuccin-frappe .subtitle.is-3{font-size:2rem}html.theme--catppuccin-frappe .subtitle.is-4{font-size:1.5rem}html.theme--catppuccin-frappe .subtitle.is-5{font-size:1.25rem}html.theme--catppuccin-frappe .subtitle.is-6{font-size:1rem}html.theme--catppuccin-frappe .subtitle.is-7{font-size:.75rem}html.theme--catppuccin-frappe .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--catppuccin-frappe .number{align-items:center;background-color:#292c3c;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--catppuccin-frappe .select select,html.theme--catppuccin-frappe .textarea,html.theme--catppuccin-frappe .input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input{background-color:#303446;border-color:#626880;border-radius:.4em;color:#838ba7}html.theme--catppuccin-frappe .select select::-moz-placeholder,html.theme--catppuccin-frappe .textarea::-moz-placeholder,html.theme--catppuccin-frappe .input::-moz-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--catppuccin-frappe .select select::-webkit-input-placeholder,html.theme--catppuccin-frappe .textarea::-webkit-input-placeholder,html.theme--catppuccin-frappe .input::-webkit-input-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--catppuccin-frappe .select select:-moz-placeholder,html.theme--catppuccin-frappe .textarea:-moz-placeholder,html.theme--catppuccin-frappe .input:-moz-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--catppuccin-frappe .select select:-ms-input-placeholder,html.theme--catppuccin-frappe .textarea:-ms-input-placeholder,html.theme--catppuccin-frappe .input:-ms-input-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--catppuccin-frappe .select select:hover,html.theme--catppuccin-frappe .textarea:hover,html.theme--catppuccin-frappe .input:hover,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:hover,html.theme--catppuccin-frappe .select select.is-hovered,html.theme--catppuccin-frappe .is-hovered.textarea,html.theme--catppuccin-frappe .is-hovered.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#737994}html.theme--catppuccin-frappe .select select:focus,html.theme--catppuccin-frappe .textarea:focus,html.theme--catppuccin-frappe .input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-frappe .select select.is-focused,html.theme--catppuccin-frappe .is-focused.textarea,html.theme--catppuccin-frappe .is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .select select:active,html.theme--catppuccin-frappe .textarea:active,html.theme--catppuccin-frappe .input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-frappe .select select.is-active,html.theme--catppuccin-frappe .is-active.textarea,html.theme--catppuccin-frappe .is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#8caaee;box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .select select[disabled],html.theme--catppuccin-frappe .textarea[disabled],html.theme--catppuccin-frappe .input[disabled],html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--catppuccin-frappe .select select,fieldset[disabled] html.theme--catppuccin-frappe .textarea,fieldset[disabled] html.theme--catppuccin-frappe .input,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input{background-color:#737994;border-color:#292c3c;box-shadow:none;color:#f1f4fd}html.theme--catppuccin-frappe .select select[disabled]::-moz-placeholder,html.theme--catppuccin-frappe .textarea[disabled]::-moz-placeholder,html.theme--catppuccin-frappe .input[disabled]::-moz-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .select select::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .textarea::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .input::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(241,244,253,0.3)}html.theme--catppuccin-frappe .select select[disabled]::-webkit-input-placeholder,html.theme--catppuccin-frappe .textarea[disabled]::-webkit-input-placeholder,html.theme--catppuccin-frappe .input[disabled]::-webkit-input-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .input::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(241,244,253,0.3)}html.theme--catppuccin-frappe .select select[disabled]:-moz-placeholder,html.theme--catppuccin-frappe .textarea[disabled]:-moz-placeholder,html.theme--catppuccin-frappe .input[disabled]:-moz-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .select select:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .textarea:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .input:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(241,244,253,0.3)}html.theme--catppuccin-frappe .select select[disabled]:-ms-input-placeholder,html.theme--catppuccin-frappe .textarea[disabled]:-ms-input-placeholder,html.theme--catppuccin-frappe .input[disabled]:-ms-input-placeholder,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .select select:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe .input:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(241,244,253,0.3)}html.theme--catppuccin-frappe .textarea,html.theme--catppuccin-frappe .input,html.theme--catppuccin-frappe #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--catppuccin-frappe .textarea[readonly],html.theme--catppuccin-frappe .input[readonly],html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--catppuccin-frappe .is-white.textarea,html.theme--catppuccin-frappe .is-white.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--catppuccin-frappe .is-white.textarea:focus,html.theme--catppuccin-frappe .is-white.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--catppuccin-frappe .is-white.is-focused.textarea,html.theme--catppuccin-frappe .is-white.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-white.textarea:active,html.theme--catppuccin-frappe .is-white.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--catppuccin-frappe .is-white.is-active.textarea,html.theme--catppuccin-frappe .is-white.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-frappe .is-black.textarea,html.theme--catppuccin-frappe .is-black.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--catppuccin-frappe .is-black.textarea:focus,html.theme--catppuccin-frappe .is-black.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--catppuccin-frappe .is-black.is-focused.textarea,html.theme--catppuccin-frappe .is-black.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-black.textarea:active,html.theme--catppuccin-frappe .is-black.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--catppuccin-frappe .is-black.is-active.textarea,html.theme--catppuccin-frappe .is-black.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-frappe .is-light.textarea,html.theme--catppuccin-frappe .is-light.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}html.theme--catppuccin-frappe .is-light.textarea:focus,html.theme--catppuccin-frappe .is-light.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--catppuccin-frappe .is-light.is-focused.textarea,html.theme--catppuccin-frappe .is-light.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-light.textarea:active,html.theme--catppuccin-frappe .is-light.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--catppuccin-frappe .is-light.is-active.textarea,html.theme--catppuccin-frappe .is-light.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-frappe .is-dark.textarea,html.theme--catppuccin-frappe .content kbd.textarea,html.theme--catppuccin-frappe .is-dark.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--catppuccin-frappe .content kbd.input{border-color:#414559}html.theme--catppuccin-frappe .is-dark.textarea:focus,html.theme--catppuccin-frappe .content kbd.textarea:focus,html.theme--catppuccin-frappe .is-dark.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--catppuccin-frappe .content kbd.input:focus,html.theme--catppuccin-frappe .is-dark.is-focused.textarea,html.theme--catppuccin-frappe .content kbd.is-focused.textarea,html.theme--catppuccin-frappe .is-dark.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .content kbd.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-dark.textarea:active,html.theme--catppuccin-frappe .content kbd.textarea:active,html.theme--catppuccin-frappe .is-dark.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--catppuccin-frappe .content kbd.input:active,html.theme--catppuccin-frappe .is-dark.is-active.textarea,html.theme--catppuccin-frappe .content kbd.is-active.textarea,html.theme--catppuccin-frappe .is-dark.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-frappe .content kbd.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(65,69,89,0.25)}html.theme--catppuccin-frappe .is-primary.textarea,html.theme--catppuccin-frappe .docstring>section>a.textarea.docs-sourcelink,html.theme--catppuccin-frappe .is-primary.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--catppuccin-frappe .docstring>section>a.input.docs-sourcelink{border-color:#8caaee}html.theme--catppuccin-frappe .is-primary.textarea:focus,html.theme--catppuccin-frappe .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--catppuccin-frappe .is-primary.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--catppuccin-frappe .docstring>section>a.input.docs-sourcelink:focus,html.theme--catppuccin-frappe .is-primary.is-focused.textarea,html.theme--catppuccin-frappe .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--catppuccin-frappe .is-primary.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--catppuccin-frappe .is-primary.textarea:active,html.theme--catppuccin-frappe .docstring>section>a.textarea.docs-sourcelink:active,html.theme--catppuccin-frappe .is-primary.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--catppuccin-frappe .docstring>section>a.input.docs-sourcelink:active,html.theme--catppuccin-frappe .is-primary.is-active.textarea,html.theme--catppuccin-frappe .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--catppuccin-frappe .is-primary.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-frappe .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .is-link.textarea,html.theme--catppuccin-frappe .is-link.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#8caaee}html.theme--catppuccin-frappe .is-link.textarea:focus,html.theme--catppuccin-frappe .is-link.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--catppuccin-frappe .is-link.is-focused.textarea,html.theme--catppuccin-frappe .is-link.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-link.textarea:active,html.theme--catppuccin-frappe .is-link.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--catppuccin-frappe .is-link.is-active.textarea,html.theme--catppuccin-frappe .is-link.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .is-info.textarea,html.theme--catppuccin-frappe .is-info.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#81c8be}html.theme--catppuccin-frappe .is-info.textarea:focus,html.theme--catppuccin-frappe .is-info.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--catppuccin-frappe .is-info.is-focused.textarea,html.theme--catppuccin-frappe .is-info.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-info.textarea:active,html.theme--catppuccin-frappe .is-info.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--catppuccin-frappe .is-info.is-active.textarea,html.theme--catppuccin-frappe .is-info.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(129,200,190,0.25)}html.theme--catppuccin-frappe .is-success.textarea,html.theme--catppuccin-frappe .is-success.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#a6d189}html.theme--catppuccin-frappe .is-success.textarea:focus,html.theme--catppuccin-frappe .is-success.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--catppuccin-frappe .is-success.is-focused.textarea,html.theme--catppuccin-frappe .is-success.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-success.textarea:active,html.theme--catppuccin-frappe .is-success.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--catppuccin-frappe .is-success.is-active.textarea,html.theme--catppuccin-frappe .is-success.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(166,209,137,0.25)}html.theme--catppuccin-frappe .is-warning.textarea,html.theme--catppuccin-frappe .is-warning.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#e5c890}html.theme--catppuccin-frappe .is-warning.textarea:focus,html.theme--catppuccin-frappe .is-warning.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--catppuccin-frappe .is-warning.is-focused.textarea,html.theme--catppuccin-frappe .is-warning.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-warning.textarea:active,html.theme--catppuccin-frappe .is-warning.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--catppuccin-frappe .is-warning.is-active.textarea,html.theme--catppuccin-frappe .is-warning.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(229,200,144,0.25)}html.theme--catppuccin-frappe .is-danger.textarea,html.theme--catppuccin-frappe .is-danger.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#e78284}html.theme--catppuccin-frappe .is-danger.textarea:focus,html.theme--catppuccin-frappe .is-danger.input:focus,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--catppuccin-frappe .is-danger.is-focused.textarea,html.theme--catppuccin-frappe .is-danger.is-focused.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-frappe .is-danger.textarea:active,html.theme--catppuccin-frappe .is-danger.input:active,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--catppuccin-frappe .is-danger.is-active.textarea,html.theme--catppuccin-frappe .is-danger.is-active.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(231,130,132,0.25)}html.theme--catppuccin-frappe .is-small.textarea,html.theme--catppuccin-frappe .is-small.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--catppuccin-frappe .is-medium.textarea,html.theme--catppuccin-frappe .is-medium.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .is-large.textarea,html.theme--catppuccin-frappe .is-large.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .is-fullwidth.textarea,html.theme--catppuccin-frappe .is-fullwidth.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--catppuccin-frappe .is-inline.textarea,html.theme--catppuccin-frappe .is-inline.input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--catppuccin-frappe .input.is-rounded,html.theme--catppuccin-frappe #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--catppuccin-frappe .input.is-static,html.theme--catppuccin-frappe #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--catppuccin-frappe .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--catppuccin-frappe .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--catppuccin-frappe .textarea[rows]{height:initial}html.theme--catppuccin-frappe .textarea.has-fixed-size{resize:none}html.theme--catppuccin-frappe .radio,html.theme--catppuccin-frappe .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--catppuccin-frappe .radio input,html.theme--catppuccin-frappe .checkbox input{cursor:pointer}html.theme--catppuccin-frappe .radio:hover,html.theme--catppuccin-frappe .checkbox:hover{color:#99d1db}html.theme--catppuccin-frappe .radio[disabled],html.theme--catppuccin-frappe .checkbox[disabled],fieldset[disabled] html.theme--catppuccin-frappe .radio,fieldset[disabled] html.theme--catppuccin-frappe .checkbox,html.theme--catppuccin-frappe .radio input[disabled],html.theme--catppuccin-frappe .checkbox input[disabled]{color:#f1f4fd;cursor:not-allowed}html.theme--catppuccin-frappe .radio+.radio{margin-left:.5em}html.theme--catppuccin-frappe .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--catppuccin-frappe .select:not(.is-multiple){height:2.5em}html.theme--catppuccin-frappe .select:not(.is-multiple):not(.is-loading)::after{border-color:#8caaee;right:1.125em;z-index:4}html.theme--catppuccin-frappe .select.is-rounded select,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--catppuccin-frappe .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--catppuccin-frappe .select select::-ms-expand{display:none}html.theme--catppuccin-frappe .select select[disabled]:hover,fieldset[disabled] html.theme--catppuccin-frappe .select select:hover{border-color:#292c3c}html.theme--catppuccin-frappe .select select:not([multiple]){padding-right:2.5em}html.theme--catppuccin-frappe .select select[multiple]{height:auto;padding:0}html.theme--catppuccin-frappe .select select[multiple] option{padding:0.5em 1em}html.theme--catppuccin-frappe .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#99d1db}html.theme--catppuccin-frappe .select.is-white:not(:hover)::after{border-color:#fff}html.theme--catppuccin-frappe .select.is-white select{border-color:#fff}html.theme--catppuccin-frappe .select.is-white select:hover,html.theme--catppuccin-frappe .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--catppuccin-frappe .select.is-white select:focus,html.theme--catppuccin-frappe .select.is-white select.is-focused,html.theme--catppuccin-frappe .select.is-white select:active,html.theme--catppuccin-frappe .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-frappe .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--catppuccin-frappe .select.is-black select{border-color:#0a0a0a}html.theme--catppuccin-frappe .select.is-black select:hover,html.theme--catppuccin-frappe .select.is-black select.is-hovered{border-color:#000}html.theme--catppuccin-frappe .select.is-black select:focus,html.theme--catppuccin-frappe .select.is-black select.is-focused,html.theme--catppuccin-frappe .select.is-black select:active,html.theme--catppuccin-frappe .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-frappe .select.is-light:not(:hover)::after{border-color:#f5f5f5}html.theme--catppuccin-frappe .select.is-light select{border-color:#f5f5f5}html.theme--catppuccin-frappe .select.is-light select:hover,html.theme--catppuccin-frappe .select.is-light select.is-hovered{border-color:#e8e8e8}html.theme--catppuccin-frappe .select.is-light select:focus,html.theme--catppuccin-frappe .select.is-light select.is-focused,html.theme--catppuccin-frappe .select.is-light select:active,html.theme--catppuccin-frappe .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-frappe .select.is-dark:not(:hover)::after,html.theme--catppuccin-frappe .content kbd.select:not(:hover)::after{border-color:#414559}html.theme--catppuccin-frappe .select.is-dark select,html.theme--catppuccin-frappe .content kbd.select select{border-color:#414559}html.theme--catppuccin-frappe .select.is-dark select:hover,html.theme--catppuccin-frappe .content kbd.select select:hover,html.theme--catppuccin-frappe .select.is-dark select.is-hovered,html.theme--catppuccin-frappe .content kbd.select select.is-hovered{border-color:#363a4a}html.theme--catppuccin-frappe .select.is-dark select:focus,html.theme--catppuccin-frappe .content kbd.select select:focus,html.theme--catppuccin-frappe .select.is-dark select.is-focused,html.theme--catppuccin-frappe .content kbd.select select.is-focused,html.theme--catppuccin-frappe .select.is-dark select:active,html.theme--catppuccin-frappe .content kbd.select select:active,html.theme--catppuccin-frappe .select.is-dark select.is-active,html.theme--catppuccin-frappe .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(65,69,89,0.25)}html.theme--catppuccin-frappe .select.is-primary:not(:hover)::after,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#8caaee}html.theme--catppuccin-frappe .select.is-primary select,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select{border-color:#8caaee}html.theme--catppuccin-frappe .select.is-primary select:hover,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select:hover,html.theme--catppuccin-frappe .select.is-primary select.is-hovered,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#769aeb}html.theme--catppuccin-frappe .select.is-primary select:focus,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select:focus,html.theme--catppuccin-frappe .select.is-primary select.is-focused,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--catppuccin-frappe .select.is-primary select:active,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select:active,html.theme--catppuccin-frappe .select.is-primary select.is-active,html.theme--catppuccin-frappe .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .select.is-link:not(:hover)::after{border-color:#8caaee}html.theme--catppuccin-frappe .select.is-link select{border-color:#8caaee}html.theme--catppuccin-frappe .select.is-link select:hover,html.theme--catppuccin-frappe .select.is-link select.is-hovered{border-color:#769aeb}html.theme--catppuccin-frappe .select.is-link select:focus,html.theme--catppuccin-frappe .select.is-link select.is-focused,html.theme--catppuccin-frappe .select.is-link select:active,html.theme--catppuccin-frappe .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(140,170,238,0.25)}html.theme--catppuccin-frappe .select.is-info:not(:hover)::after{border-color:#81c8be}html.theme--catppuccin-frappe .select.is-info select{border-color:#81c8be}html.theme--catppuccin-frappe .select.is-info select:hover,html.theme--catppuccin-frappe .select.is-info select.is-hovered{border-color:#6fc0b5}html.theme--catppuccin-frappe .select.is-info select:focus,html.theme--catppuccin-frappe .select.is-info select.is-focused,html.theme--catppuccin-frappe .select.is-info select:active,html.theme--catppuccin-frappe .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(129,200,190,0.25)}html.theme--catppuccin-frappe .select.is-success:not(:hover)::after{border-color:#a6d189}html.theme--catppuccin-frappe .select.is-success select{border-color:#a6d189}html.theme--catppuccin-frappe .select.is-success select:hover,html.theme--catppuccin-frappe .select.is-success select.is-hovered{border-color:#98ca77}html.theme--catppuccin-frappe .select.is-success select:focus,html.theme--catppuccin-frappe .select.is-success select.is-focused,html.theme--catppuccin-frappe .select.is-success select:active,html.theme--catppuccin-frappe .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(166,209,137,0.25)}html.theme--catppuccin-frappe .select.is-warning:not(:hover)::after{border-color:#e5c890}html.theme--catppuccin-frappe .select.is-warning select{border-color:#e5c890}html.theme--catppuccin-frappe .select.is-warning select:hover,html.theme--catppuccin-frappe .select.is-warning select.is-hovered{border-color:#e0be7b}html.theme--catppuccin-frappe .select.is-warning select:focus,html.theme--catppuccin-frappe .select.is-warning select.is-focused,html.theme--catppuccin-frappe .select.is-warning select:active,html.theme--catppuccin-frappe .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(229,200,144,0.25)}html.theme--catppuccin-frappe .select.is-danger:not(:hover)::after{border-color:#e78284}html.theme--catppuccin-frappe .select.is-danger select{border-color:#e78284}html.theme--catppuccin-frappe .select.is-danger select:hover,html.theme--catppuccin-frappe .select.is-danger select.is-hovered{border-color:#e36d6f}html.theme--catppuccin-frappe .select.is-danger select:focus,html.theme--catppuccin-frappe .select.is-danger select.is-focused,html.theme--catppuccin-frappe .select.is-danger select:active,html.theme--catppuccin-frappe .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(231,130,132,0.25)}html.theme--catppuccin-frappe .select.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--catppuccin-frappe .select.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .select.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .select.is-disabled::after{border-color:#f1f4fd !important;opacity:0.5}html.theme--catppuccin-frappe .select.is-fullwidth{width:100%}html.theme--catppuccin-frappe .select.is-fullwidth select{width:100%}html.theme--catppuccin-frappe .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--catppuccin-frappe .select.is-loading.is-small:after,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-frappe .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-frappe .select.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-frappe .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--catppuccin-frappe .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .file.is-white:hover .file-cta,html.theme--catppuccin-frappe .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .file.is-white:focus .file-cta,html.theme--catppuccin-frappe .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--catppuccin-frappe .file.is-white:active .file-cta,html.theme--catppuccin-frappe .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-frappe .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-black:hover .file-cta,html.theme--catppuccin-frappe .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-black:focus .file-cta,html.theme--catppuccin-frappe .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--catppuccin-frappe .file.is-black:active .file-cta,html.theme--catppuccin-frappe .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-light:hover .file-cta,html.theme--catppuccin-frappe .file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-light:focus .file-cta,html.theme--catppuccin-frappe .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)}html.theme--catppuccin-frappe .file.is-light:active .file-cta,html.theme--catppuccin-frappe .file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-dark .file-cta,html.theme--catppuccin-frappe .content kbd.file .file-cta{background-color:#414559;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-dark:hover .file-cta,html.theme--catppuccin-frappe .content kbd.file:hover .file-cta,html.theme--catppuccin-frappe .file.is-dark.is-hovered .file-cta,html.theme--catppuccin-frappe .content kbd.file.is-hovered .file-cta{background-color:#3c3f52;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-dark:focus .file-cta,html.theme--catppuccin-frappe .content kbd.file:focus .file-cta,html.theme--catppuccin-frappe .file.is-dark.is-focused .file-cta,html.theme--catppuccin-frappe .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(65,69,89,0.25);color:#fff}html.theme--catppuccin-frappe .file.is-dark:active .file-cta,html.theme--catppuccin-frappe .content kbd.file:active .file-cta,html.theme--catppuccin-frappe .file.is-dark.is-active .file-cta,html.theme--catppuccin-frappe .content kbd.file.is-active .file-cta{background-color:#363a4a;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-primary .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#8caaee;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-primary:hover .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--catppuccin-frappe .file.is-primary.is-hovered .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#81a2ec;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-primary:focus .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--catppuccin-frappe .file.is-primary.is-focused .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(140,170,238,0.25);color:#fff}html.theme--catppuccin-frappe .file.is-primary:active .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--catppuccin-frappe .file.is-primary.is-active .file-cta,html.theme--catppuccin-frappe .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#769aeb;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-link .file-cta{background-color:#8caaee;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-link:hover .file-cta,html.theme--catppuccin-frappe .file.is-link.is-hovered .file-cta{background-color:#81a2ec;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-link:focus .file-cta,html.theme--catppuccin-frappe .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(140,170,238,0.25);color:#fff}html.theme--catppuccin-frappe .file.is-link:active .file-cta,html.theme--catppuccin-frappe .file.is-link.is-active .file-cta{background-color:#769aeb;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-info .file-cta{background-color:#81c8be;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-info:hover .file-cta,html.theme--catppuccin-frappe .file.is-info.is-hovered .file-cta{background-color:#78c4b9;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-info:focus .file-cta,html.theme--catppuccin-frappe .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(129,200,190,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-info:active .file-cta,html.theme--catppuccin-frappe .file.is-info.is-active .file-cta{background-color:#6fc0b5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-success .file-cta{background-color:#a6d189;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-success:hover .file-cta,html.theme--catppuccin-frappe .file.is-success.is-hovered .file-cta{background-color:#9fcd80;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-success:focus .file-cta,html.theme--catppuccin-frappe .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(166,209,137,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-success:active .file-cta,html.theme--catppuccin-frappe .file.is-success.is-active .file-cta{background-color:#98ca77;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-warning .file-cta{background-color:#e5c890;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-warning:hover .file-cta,html.theme--catppuccin-frappe .file.is-warning.is-hovered .file-cta{background-color:#e3c386;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-warning:focus .file-cta,html.theme--catppuccin-frappe .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(229,200,144,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-warning:active .file-cta,html.theme--catppuccin-frappe .file.is-warning.is-active .file-cta{background-color:#e0be7b;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .file.is-danger .file-cta{background-color:#e78284;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-danger:hover .file-cta,html.theme--catppuccin-frappe .file.is-danger.is-hovered .file-cta{background-color:#e57779;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-danger:focus .file-cta,html.theme--catppuccin-frappe .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(231,130,132,0.25);color:#fff}html.theme--catppuccin-frappe .file.is-danger:active .file-cta,html.theme--catppuccin-frappe .file.is-danger.is-active .file-cta{background-color:#e36d6f;border-color:transparent;color:#fff}html.theme--catppuccin-frappe .file.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--catppuccin-frappe .file.is-normal{font-size:1rem}html.theme--catppuccin-frappe .file.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .file.is-medium .file-icon .fa{font-size:21px}html.theme--catppuccin-frappe .file.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .file.is-large .file-icon .fa{font-size:28px}html.theme--catppuccin-frappe .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-frappe .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-frappe .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--catppuccin-frappe .file.has-name.is-empty .file-name{display:none}html.theme--catppuccin-frappe .file.is-boxed .file-label{flex-direction:column}html.theme--catppuccin-frappe .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--catppuccin-frappe .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--catppuccin-frappe .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--catppuccin-frappe .file.is-boxed .file-icon .fa{font-size:21px}html.theme--catppuccin-frappe .file.is-boxed.is-small .file-icon .fa,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--catppuccin-frappe .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--catppuccin-frappe .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--catppuccin-frappe .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--catppuccin-frappe .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--catppuccin-frappe .file.is-centered{justify-content:center}html.theme--catppuccin-frappe .file.is-fullwidth .file-label{width:100%}html.theme--catppuccin-frappe .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--catppuccin-frappe .file.is-right{justify-content:flex-end}html.theme--catppuccin-frappe .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--catppuccin-frappe .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--catppuccin-frappe .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--catppuccin-frappe .file-label:hover .file-cta{background-color:#3c3f52;color:#b0bef1}html.theme--catppuccin-frappe .file-label:hover .file-name{border-color:#5c6279}html.theme--catppuccin-frappe .file-label:active .file-cta{background-color:#363a4a;color:#b0bef1}html.theme--catppuccin-frappe .file-label:active .file-name{border-color:#575c72}html.theme--catppuccin-frappe .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--catppuccin-frappe .file-cta,html.theme--catppuccin-frappe .file-name{border-color:#626880;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--catppuccin-frappe .file-cta{background-color:#414559;color:#c6d0f5}html.theme--catppuccin-frappe .file-name{border-color:#626880;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--catppuccin-frappe .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--catppuccin-frappe .file-icon .fa{font-size:14px}html.theme--catppuccin-frappe .label{color:#b0bef1;display:block;font-size:1rem;font-weight:700}html.theme--catppuccin-frappe .label:not(:last-child){margin-bottom:0.5em}html.theme--catppuccin-frappe .label.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--catppuccin-frappe .label.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .label.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--catppuccin-frappe .help.is-white{color:#fff}html.theme--catppuccin-frappe .help.is-black{color:#0a0a0a}html.theme--catppuccin-frappe .help.is-light{color:#f5f5f5}html.theme--catppuccin-frappe .help.is-dark,html.theme--catppuccin-frappe .content kbd.help{color:#414559}html.theme--catppuccin-frappe .help.is-primary,html.theme--catppuccin-frappe .docstring>section>a.help.docs-sourcelink{color:#8caaee}html.theme--catppuccin-frappe .help.is-link{color:#8caaee}html.theme--catppuccin-frappe .help.is-info{color:#81c8be}html.theme--catppuccin-frappe .help.is-success{color:#a6d189}html.theme--catppuccin-frappe .help.is-warning{color:#e5c890}html.theme--catppuccin-frappe .help.is-danger{color:#e78284}html.theme--catppuccin-frappe .field:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-frappe .field.has-addons{display:flex;justify-content:flex-start}html.theme--catppuccin-frappe .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--catppuccin-frappe .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--catppuccin-frappe .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--catppuccin-frappe .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--catppuccin-frappe .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--catppuccin-frappe .field.has-addons .control:first-child:not(:only-child) .button,html.theme--catppuccin-frappe .field.has-addons .control:first-child:not(:only-child) .input,html.theme--catppuccin-frappe .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-frappe .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-frappe .field.has-addons .control:last-child:not(:only-child) .button,html.theme--catppuccin-frappe .field.has-addons .control:last-child:not(:only-child) .input,html.theme--catppuccin-frappe .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-frappe .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-frappe .field.has-addons .control .button:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .input:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .select select:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--catppuccin-frappe .field.has-addons .control .button:not([disabled]):focus,html.theme--catppuccin-frappe .field.has-addons .control .button.is-focused:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .button:not([disabled]):active,html.theme--catppuccin-frappe .field.has-addons .control .button.is-active:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .input:not([disabled]):focus,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-frappe .field.has-addons .control .input.is-focused:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .input:not([disabled]):active,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--catppuccin-frappe .field.has-addons .control .input.is-active:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .select select:not([disabled]):focus,html.theme--catppuccin-frappe .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--catppuccin-frappe .field.has-addons .control .select select:not([disabled]):active,html.theme--catppuccin-frappe .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--catppuccin-frappe .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--catppuccin-frappe .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .button:not([disabled]):active:hover,html.theme--catppuccin-frappe .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-frappe .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .input:not([disabled]):active:hover,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-frappe .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-frappe #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--catppuccin-frappe .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--catppuccin-frappe .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--catppuccin-frappe .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--catppuccin-frappe .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .field.has-addons.has-addons-centered{justify-content:center}html.theme--catppuccin-frappe .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--catppuccin-frappe .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--catppuccin-frappe .field.is-grouped{display:flex;justify-content:flex-start}html.theme--catppuccin-frappe .field.is-grouped>.control{flex-shrink:0}html.theme--catppuccin-frappe .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-frappe .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--catppuccin-frappe .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--catppuccin-frappe .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .field.is-horizontal{display:flex}}html.theme--catppuccin-frappe .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--catppuccin-frappe .field-label.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--catppuccin-frappe .field-label.is-normal{padding-top:0.375em}html.theme--catppuccin-frappe .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--catppuccin-frappe .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--catppuccin-frappe .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--catppuccin-frappe .field-body .field{margin-bottom:0}html.theme--catppuccin-frappe .field-body>.field{flex-shrink:1}html.theme--catppuccin-frappe .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--catppuccin-frappe .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-frappe .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--catppuccin-frappe .control.has-icons-left .input:focus~.icon,html.theme--catppuccin-frappe .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--catppuccin-frappe .control.has-icons-left .select:focus~.icon,html.theme--catppuccin-frappe .control.has-icons-right .input:focus~.icon,html.theme--catppuccin-frappe .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--catppuccin-frappe .control.has-icons-right .select:focus~.icon{color:#414559}html.theme--catppuccin-frappe .control.has-icons-left .input.is-small~.icon,html.theme--catppuccin-frappe .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--catppuccin-frappe .control.has-icons-left .select.is-small~.icon,html.theme--catppuccin-frappe .control.has-icons-right .input.is-small~.icon,html.theme--catppuccin-frappe .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--catppuccin-frappe .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--catppuccin-frappe .control.has-icons-left .input.is-medium~.icon,html.theme--catppuccin-frappe .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--catppuccin-frappe .control.has-icons-left .select.is-medium~.icon,html.theme--catppuccin-frappe .control.has-icons-right .input.is-medium~.icon,html.theme--catppuccin-frappe .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--catppuccin-frappe .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--catppuccin-frappe .control.has-icons-left .input.is-large~.icon,html.theme--catppuccin-frappe .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--catppuccin-frappe .control.has-icons-left .select.is-large~.icon,html.theme--catppuccin-frappe .control.has-icons-right .input.is-large~.icon,html.theme--catppuccin-frappe .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--catppuccin-frappe .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--catppuccin-frappe .control.has-icons-left .icon,html.theme--catppuccin-frappe .control.has-icons-right .icon{color:#626880;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--catppuccin-frappe .control.has-icons-left .input,html.theme--catppuccin-frappe .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--catppuccin-frappe .control.has-icons-left .select select{padding-left:2.5em}html.theme--catppuccin-frappe .control.has-icons-left .icon.is-left{left:0}html.theme--catppuccin-frappe .control.has-icons-right .input,html.theme--catppuccin-frappe .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--catppuccin-frappe .control.has-icons-right .select select{padding-right:2.5em}html.theme--catppuccin-frappe .control.has-icons-right .icon.is-right{right:0}html.theme--catppuccin-frappe .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--catppuccin-frappe .control.is-loading.is-small:after,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-frappe .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-frappe .control.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-frappe .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--catppuccin-frappe .breadcrumb a{align-items:center;color:#8caaee;display:flex;justify-content:center;padding:0 .75em}html.theme--catppuccin-frappe .breadcrumb a:hover{color:#99d1db}html.theme--catppuccin-frappe .breadcrumb li{align-items:center;display:flex}html.theme--catppuccin-frappe .breadcrumb li:first-child a{padding-left:0}html.theme--catppuccin-frappe .breadcrumb li.is-active a{color:#b0bef1;cursor:default;pointer-events:none}html.theme--catppuccin-frappe .breadcrumb li+li::before{color:#737994;content:"\0002f"}html.theme--catppuccin-frappe .breadcrumb ul,html.theme--catppuccin-frappe .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-frappe .breadcrumb .icon:first-child{margin-right:.5em}html.theme--catppuccin-frappe .breadcrumb .icon:last-child{margin-left:.5em}html.theme--catppuccin-frappe .breadcrumb.is-centered ol,html.theme--catppuccin-frappe .breadcrumb.is-centered ul{justify-content:center}html.theme--catppuccin-frappe .breadcrumb.is-right ol,html.theme--catppuccin-frappe .breadcrumb.is-right ul{justify-content:flex-end}html.theme--catppuccin-frappe .breadcrumb.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--catppuccin-frappe .breadcrumb.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .breadcrumb.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--catppuccin-frappe .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--catppuccin-frappe .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--catppuccin-frappe .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--catppuccin-frappe .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#c6d0f5;max-width:100%;position:relative}html.theme--catppuccin-frappe .card-footer:first-child,html.theme--catppuccin-frappe .card-content:first-child,html.theme--catppuccin-frappe .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-frappe .card-footer:last-child,html.theme--catppuccin-frappe .card-content:last-child,html.theme--catppuccin-frappe .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-frappe .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--catppuccin-frappe .card-header-title{align-items:center;color:#b0bef1;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--catppuccin-frappe .card-header-title.is-centered{justify-content:center}html.theme--catppuccin-frappe .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--catppuccin-frappe .card-image{display:block;position:relative}html.theme--catppuccin-frappe .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-frappe .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-frappe .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--catppuccin-frappe .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--catppuccin-frappe .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--catppuccin-frappe .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--catppuccin-frappe .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-frappe .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--catppuccin-frappe .dropdown.is-active .dropdown-menu,html.theme--catppuccin-frappe .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--catppuccin-frappe .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--catppuccin-frappe .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--catppuccin-frappe .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--catppuccin-frappe .dropdown-content{background-color:#292c3c;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--catppuccin-frappe .dropdown-item{color:#c6d0f5;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--catppuccin-frappe a.dropdown-item,html.theme--catppuccin-frappe button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--catppuccin-frappe a.dropdown-item:hover,html.theme--catppuccin-frappe button.dropdown-item:hover{background-color:#292c3c;color:#0a0a0a}html.theme--catppuccin-frappe a.dropdown-item.is-active,html.theme--catppuccin-frappe button.dropdown-item.is-active{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--catppuccin-frappe .level{align-items:center;justify-content:space-between}html.theme--catppuccin-frappe .level code{border-radius:.4em}html.theme--catppuccin-frappe .level img{display:inline-block;vertical-align:top}html.theme--catppuccin-frappe .level.is-mobile{display:flex}html.theme--catppuccin-frappe .level.is-mobile .level-left,html.theme--catppuccin-frappe .level.is-mobile .level-right{display:flex}html.theme--catppuccin-frappe .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--catppuccin-frappe .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-frappe .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .level{display:flex}html.theme--catppuccin-frappe .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--catppuccin-frappe .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--catppuccin-frappe .level-item .title,html.theme--catppuccin-frappe .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--catppuccin-frappe .level-left,html.theme--catppuccin-frappe .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-frappe .level-left .level-item.is-flexible,html.theme--catppuccin-frappe .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .level-left .level-item:not(:last-child),html.theme--catppuccin-frappe .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-frappe .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .level-left{display:flex}}html.theme--catppuccin-frappe .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .level-right{display:flex}}html.theme--catppuccin-frappe .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--catppuccin-frappe .media .content:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-frappe .media .media{border-top:1px solid rgba(98,104,128,0.5);display:flex;padding-top:.75rem}html.theme--catppuccin-frappe .media .media .content:not(:last-child),html.theme--catppuccin-frappe .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--catppuccin-frappe .media .media .media{padding-top:.5rem}html.theme--catppuccin-frappe .media .media .media+.media{margin-top:.5rem}html.theme--catppuccin-frappe .media+.media{border-top:1px solid rgba(98,104,128,0.5);margin-top:1rem;padding-top:1rem}html.theme--catppuccin-frappe .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--catppuccin-frappe .media-left,html.theme--catppuccin-frappe .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-frappe .media-left{margin-right:1rem}html.theme--catppuccin-frappe .media-right{margin-left:1rem}html.theme--catppuccin-frappe .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .media-content{overflow-x:auto}}html.theme--catppuccin-frappe .menu{font-size:1rem}html.theme--catppuccin-frappe .menu.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--catppuccin-frappe .menu.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .menu.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .menu-list{line-height:1.25}html.theme--catppuccin-frappe .menu-list a{border-radius:3px;color:#c6d0f5;display:block;padding:0.5em 0.75em}html.theme--catppuccin-frappe .menu-list a:hover{background-color:#292c3c;color:#b0bef1}html.theme--catppuccin-frappe .menu-list a.is-active{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .menu-list li ul{border-left:1px solid #626880;margin:.75em;padding-left:.75em}html.theme--catppuccin-frappe .menu-label{color:#f1f4fd;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--catppuccin-frappe .menu-label:not(:first-child){margin-top:1em}html.theme--catppuccin-frappe .menu-label:not(:last-child){margin-bottom:1em}html.theme--catppuccin-frappe .message{background-color:#292c3c;border-radius:.4em;font-size:1rem}html.theme--catppuccin-frappe .message strong{color:currentColor}html.theme--catppuccin-frappe .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-frappe .message.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--catppuccin-frappe .message.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .message.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .message.is-white{background-color:#fff}html.theme--catppuccin-frappe .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .message.is-white .message-body{border-color:#fff}html.theme--catppuccin-frappe .message.is-black{background-color:#fafafa}html.theme--catppuccin-frappe .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .message.is-black .message-body{border-color:#0a0a0a}html.theme--catppuccin-frappe .message.is-light{background-color:#fafafa}html.theme--catppuccin-frappe .message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .message.is-light .message-body{border-color:#f5f5f5}html.theme--catppuccin-frappe .message.is-dark,html.theme--catppuccin-frappe .content kbd.message{background-color:#f9f9fb}html.theme--catppuccin-frappe .message.is-dark .message-header,html.theme--catppuccin-frappe .content kbd.message .message-header{background-color:#414559;color:#fff}html.theme--catppuccin-frappe .message.is-dark .message-body,html.theme--catppuccin-frappe .content kbd.message .message-body{border-color:#414559}html.theme--catppuccin-frappe .message.is-primary,html.theme--catppuccin-frappe .docstring>section>a.message.docs-sourcelink{background-color:#edf2fc}html.theme--catppuccin-frappe .message.is-primary .message-header,html.theme--catppuccin-frappe .docstring>section>a.message.docs-sourcelink .message-header{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .message.is-primary .message-body,html.theme--catppuccin-frappe .docstring>section>a.message.docs-sourcelink .message-body{border-color:#8caaee;color:#153a8e}html.theme--catppuccin-frappe .message.is-link{background-color:#edf2fc}html.theme--catppuccin-frappe .message.is-link .message-header{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .message.is-link .message-body{border-color:#8caaee;color:#153a8e}html.theme--catppuccin-frappe .message.is-info{background-color:#f1f9f8}html.theme--catppuccin-frappe .message.is-info .message-header{background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .message.is-info .message-body{border-color:#81c8be;color:#2d675f}html.theme--catppuccin-frappe .message.is-success{background-color:#f4f9f0}html.theme--catppuccin-frappe .message.is-success .message-header{background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .message.is-success .message-body{border-color:#a6d189;color:#446a29}html.theme--catppuccin-frappe .message.is-warning{background-color:#fbf7ee}html.theme--catppuccin-frappe .message.is-warning .message-header{background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .message.is-warning .message-body{border-color:#e5c890;color:#78591c}html.theme--catppuccin-frappe .message.is-danger{background-color:#fceeee}html.theme--catppuccin-frappe .message.is-danger .message-header{background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .message.is-danger .message-body{border-color:#e78284;color:#9a1e20}html.theme--catppuccin-frappe .message-header{align-items:center;background-color:#c6d0f5;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--catppuccin-frappe .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--catppuccin-frappe .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--catppuccin-frappe .message-body{border-color:#626880;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#c6d0f5;padding:1.25em 1.5em}html.theme--catppuccin-frappe .message-body code,html.theme--catppuccin-frappe .message-body pre{background-color:#fff}html.theme--catppuccin-frappe .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--catppuccin-frappe .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--catppuccin-frappe .modal.is-active{display:flex}html.theme--catppuccin-frappe .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--catppuccin-frappe .modal-content,html.theme--catppuccin-frappe .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--catppuccin-frappe .modal-content,html.theme--catppuccin-frappe .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--catppuccin-frappe .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--catppuccin-frappe .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--catppuccin-frappe .modal-card-head,html.theme--catppuccin-frappe .modal-card-foot{align-items:center;background-color:#292c3c;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--catppuccin-frappe .modal-card-head{border-bottom:1px solid #626880;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--catppuccin-frappe .modal-card-title{color:#c6d0f5;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--catppuccin-frappe .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #626880}html.theme--catppuccin-frappe .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--catppuccin-frappe .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#303446;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--catppuccin-frappe .navbar{background-color:#8caaee;min-height:4rem;position:relative;z-index:30}html.theme--catppuccin-frappe .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-white .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-white .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-white .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-white .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-white .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-white .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-frappe .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--catppuccin-frappe .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-black .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-black .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-black .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-black .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-black .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-black .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--catppuccin-frappe .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--catppuccin-frappe .navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-light .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-light .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-light .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-light .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-light .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-light .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-frappe .navbar.is-dark,html.theme--catppuccin-frappe .content kbd.navbar{background-color:#414559;color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#363a4a;color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--catppuccin-frappe .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-burger,html.theme--catppuccin-frappe .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-dark .navbar-start>.navbar-item,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end>.navbar-item,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#363a4a;color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .content kbd.navbar .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-dark .navbar-end .navbar-link::after,html.theme--catppuccin-frappe .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-frappe .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#363a4a;color:#fff}html.theme--catppuccin-frappe .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-frappe .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#414559;color:#fff}}html.theme--catppuccin-frappe .navbar.is-primary,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-burger,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-primary .navbar-start>.navbar-item,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end>.navbar-item,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-primary .navbar-end .navbar-link::after,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#8caaee;color:#fff}}html.theme--catppuccin-frappe .navbar.is-link{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-link .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-link .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-link .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-link .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-link .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-link .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#8caaee;color:#fff}}html.theme--catppuccin-frappe .navbar.is-info{background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#6fc0b5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-info .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-info .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-info .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-info .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-info .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-info .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-info .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#6fc0b5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-info .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#6fc0b5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#81c8be;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-frappe .navbar.is-success{background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#98ca77;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-success .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-success .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-success .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-success .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-success .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-success .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-success .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#98ca77;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-success .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#98ca77;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#a6d189;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-frappe .navbar.is-warning{background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#e0be7b;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-warning .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#e0be7b;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e0be7b;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#e5c890;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-frappe .navbar.is-danger{background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand>.navbar-item,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#e36d6f;color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar.is-danger .navbar-start>.navbar-item,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start .navbar-link,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end>.navbar-item,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#e36d6f;color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-start .navbar-link::after,html.theme--catppuccin-frappe .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e36d6f;color:#fff}html.theme--catppuccin-frappe .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#e78284;color:#fff}}html.theme--catppuccin-frappe .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--catppuccin-frappe .navbar.has-shadow{box-shadow:0 2px 0 0 #292c3c}html.theme--catppuccin-frappe .navbar.is-fixed-bottom,html.theme--catppuccin-frappe .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-frappe .navbar.is-fixed-bottom{bottom:0}html.theme--catppuccin-frappe .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #292c3c}html.theme--catppuccin-frappe .navbar.is-fixed-top{top:0}html.theme--catppuccin-frappe html.has-navbar-fixed-top,html.theme--catppuccin-frappe body.has-navbar-fixed-top{padding-top:4rem}html.theme--catppuccin-frappe html.has-navbar-fixed-bottom,html.theme--catppuccin-frappe body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--catppuccin-frappe .navbar-brand,html.theme--catppuccin-frappe .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--catppuccin-frappe .navbar-brand a.navbar-item:focus,html.theme--catppuccin-frappe .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--catppuccin-frappe .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--catppuccin-frappe .navbar-burger{color:#c6d0f5;-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--catppuccin-frappe .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--catppuccin-frappe .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--catppuccin-frappe .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--catppuccin-frappe .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--catppuccin-frappe .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--catppuccin-frappe .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--catppuccin-frappe .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--catppuccin-frappe .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--catppuccin-frappe .navbar-menu{display:none}html.theme--catppuccin-frappe .navbar-item,html.theme--catppuccin-frappe .navbar-link{color:#c6d0f5;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--catppuccin-frappe .navbar-item .icon:only-child,html.theme--catppuccin-frappe .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--catppuccin-frappe a.navbar-item,html.theme--catppuccin-frappe .navbar-link{cursor:pointer}html.theme--catppuccin-frappe a.navbar-item:focus,html.theme--catppuccin-frappe a.navbar-item:focus-within,html.theme--catppuccin-frappe a.navbar-item:hover,html.theme--catppuccin-frappe a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar-link:focus,html.theme--catppuccin-frappe .navbar-link:focus-within,html.theme--catppuccin-frappe .navbar-link:hover,html.theme--catppuccin-frappe .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#8caaee}html.theme--catppuccin-frappe .navbar-item{flex-grow:0;flex-shrink:0}html.theme--catppuccin-frappe .navbar-item img{max-height:1.75rem}html.theme--catppuccin-frappe .navbar-item.has-dropdown{padding:0}html.theme--catppuccin-frappe .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--catppuccin-frappe .navbar-item.is-tab:focus,html.theme--catppuccin-frappe .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#8caaee}html.theme--catppuccin-frappe .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#8caaee;border-bottom-style:solid;border-bottom-width:3px;color:#8caaee;padding-bottom:calc(0.5rem - 3px)}html.theme--catppuccin-frappe .navbar-content{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--catppuccin-frappe .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--catppuccin-frappe .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--catppuccin-frappe .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--catppuccin-frappe .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--catppuccin-frappe .navbar>.container{display:block}html.theme--catppuccin-frappe .navbar-brand .navbar-item,html.theme--catppuccin-frappe .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--catppuccin-frappe .navbar-link::after{display:none}html.theme--catppuccin-frappe .navbar-menu{background-color:#8caaee;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--catppuccin-frappe .navbar-menu.is-active{display:block}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-touch,html.theme--catppuccin-frappe .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-touch{bottom:0}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .navbar.is-fixed-top-touch{top:0}html.theme--catppuccin-frappe .navbar.is-fixed-top .navbar-menu,html.theme--catppuccin-frappe .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--catppuccin-frappe html.has-navbar-fixed-top-touch,html.theme--catppuccin-frappe body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--catppuccin-frappe html.has-navbar-fixed-bottom-touch,html.theme--catppuccin-frappe body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .navbar,html.theme--catppuccin-frappe .navbar-menu,html.theme--catppuccin-frappe .navbar-start,html.theme--catppuccin-frappe .navbar-end{align-items:stretch;display:flex}html.theme--catppuccin-frappe .navbar{min-height:4rem}html.theme--catppuccin-frappe .navbar.is-spaced{padding:1rem 2rem}html.theme--catppuccin-frappe .navbar.is-spaced .navbar-start,html.theme--catppuccin-frappe .navbar.is-spaced .navbar-end{align-items:center}html.theme--catppuccin-frappe .navbar.is-spaced a.navbar-item,html.theme--catppuccin-frappe .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--catppuccin-frappe .navbar.is-transparent a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-transparent a.navbar-item:hover,html.theme--catppuccin-frappe .navbar.is-transparent a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-link:focus,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-link:hover,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--catppuccin-frappe .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--catppuccin-frappe .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-frappe .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#838ba7}html.theme--catppuccin-frappe .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#8caaee}html.theme--catppuccin-frappe .navbar-burger{display:none}html.theme--catppuccin-frappe .navbar-item,html.theme--catppuccin-frappe .navbar-link{align-items:center;display:flex}html.theme--catppuccin-frappe .navbar-item.has-dropdown{align-items:stretch}html.theme--catppuccin-frappe .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--catppuccin-frappe .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--catppuccin-frappe .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--catppuccin-frappe .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-frappe .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--catppuccin-frappe .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--catppuccin-frappe .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--catppuccin-frappe .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--catppuccin-frappe .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--catppuccin-frappe .navbar-dropdown{background-color:#8caaee;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--catppuccin-frappe .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--catppuccin-frappe .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--catppuccin-frappe .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-frappe .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#838ba7}html.theme--catppuccin-frappe .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#8caaee}.navbar.is-spaced html.theme--catppuccin-frappe .navbar-dropdown,html.theme--catppuccin-frappe .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--catppuccin-frappe .navbar-dropdown.is-right{left:auto;right:0}html.theme--catppuccin-frappe .navbar-divider{display:block}html.theme--catppuccin-frappe .navbar>.container .navbar-brand,html.theme--catppuccin-frappe .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--catppuccin-frappe .navbar>.container .navbar-menu,html.theme--catppuccin-frappe .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-desktop,html.theme--catppuccin-frappe .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--catppuccin-frappe .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .navbar.is-fixed-top-desktop{top:0}html.theme--catppuccin-frappe html.has-navbar-fixed-top-desktop,html.theme--catppuccin-frappe body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--catppuccin-frappe html.has-navbar-fixed-bottom-desktop,html.theme--catppuccin-frappe body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--catppuccin-frappe html.has-spaced-navbar-fixed-top,html.theme--catppuccin-frappe body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--catppuccin-frappe html.has-spaced-navbar-fixed-bottom,html.theme--catppuccin-frappe body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--catppuccin-frappe a.navbar-item.is-active,html.theme--catppuccin-frappe .navbar-link.is-active{color:#8caaee}html.theme--catppuccin-frappe a.navbar-item.is-active:not(:focus):not(:hover),html.theme--catppuccin-frappe .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--catppuccin-frappe .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-frappe .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-frappe .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--catppuccin-frappe .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--catppuccin-frappe .pagination{font-size:1rem;margin:-.25rem}html.theme--catppuccin-frappe .pagination.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--catppuccin-frappe .pagination.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .pagination.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .pagination.is-rounded .pagination-previous,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--catppuccin-frappe .pagination.is-rounded .pagination-next,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--catppuccin-frappe .pagination.is-rounded .pagination-link,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--catppuccin-frappe .pagination,html.theme--catppuccin-frappe .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-link{border-color:#626880;color:#8caaee;min-width:2.5em}html.theme--catppuccin-frappe .pagination-previous:hover,html.theme--catppuccin-frappe .pagination-next:hover,html.theme--catppuccin-frappe .pagination-link:hover{border-color:#737994;color:#99d1db}html.theme--catppuccin-frappe .pagination-previous:focus,html.theme--catppuccin-frappe .pagination-next:focus,html.theme--catppuccin-frappe .pagination-link:focus{border-color:#737994}html.theme--catppuccin-frappe .pagination-previous:active,html.theme--catppuccin-frappe .pagination-next:active,html.theme--catppuccin-frappe .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--catppuccin-frappe .pagination-previous[disabled],html.theme--catppuccin-frappe .pagination-previous.is-disabled,html.theme--catppuccin-frappe .pagination-next[disabled],html.theme--catppuccin-frappe .pagination-next.is-disabled,html.theme--catppuccin-frappe .pagination-link[disabled],html.theme--catppuccin-frappe .pagination-link.is-disabled{background-color:#626880;border-color:#626880;box-shadow:none;color:#f1f4fd;opacity:0.5}html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--catppuccin-frappe .pagination-link.is-current{background-color:#8caaee;border-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .pagination-ellipsis{color:#737994;pointer-events:none}html.theme--catppuccin-frappe .pagination-list{flex-wrap:wrap}html.theme--catppuccin-frappe .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .pagination{flex-wrap:wrap}html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--catppuccin-frappe .pagination-previous{order:2}html.theme--catppuccin-frappe .pagination-next{order:3}html.theme--catppuccin-frappe .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--catppuccin-frappe .pagination.is-centered .pagination-previous{order:1}html.theme--catppuccin-frappe .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--catppuccin-frappe .pagination.is-centered .pagination-next{order:3}html.theme--catppuccin-frappe .pagination.is-right .pagination-previous{order:1}html.theme--catppuccin-frappe .pagination.is-right .pagination-next{order:2}html.theme--catppuccin-frappe .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--catppuccin-frappe .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--catppuccin-frappe .panel:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-frappe .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--catppuccin-frappe .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--catppuccin-frappe .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--catppuccin-frappe .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--catppuccin-frappe .panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}html.theme--catppuccin-frappe .panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}html.theme--catppuccin-frappe .panel.is-dark .panel-heading,html.theme--catppuccin-frappe .content kbd.panel .panel-heading{background-color:#414559;color:#fff}html.theme--catppuccin-frappe .panel.is-dark .panel-tabs a.is-active,html.theme--catppuccin-frappe .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#414559}html.theme--catppuccin-frappe .panel.is-dark .panel-block.is-active .panel-icon,html.theme--catppuccin-frappe .content kbd.panel .panel-block.is-active .panel-icon{color:#414559}html.theme--catppuccin-frappe .panel.is-primary .panel-heading,html.theme--catppuccin-frappe .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .panel.is-primary .panel-tabs a.is-active,html.theme--catppuccin-frappe .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#8caaee}html.theme--catppuccin-frappe .panel.is-primary .panel-block.is-active .panel-icon,html.theme--catppuccin-frappe .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#8caaee}html.theme--catppuccin-frappe .panel.is-link .panel-heading{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .panel.is-link .panel-tabs a.is-active{border-bottom-color:#8caaee}html.theme--catppuccin-frappe .panel.is-link .panel-block.is-active .panel-icon{color:#8caaee}html.theme--catppuccin-frappe .panel.is-info .panel-heading{background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .panel.is-info .panel-tabs a.is-active{border-bottom-color:#81c8be}html.theme--catppuccin-frappe .panel.is-info .panel-block.is-active .panel-icon{color:#81c8be}html.theme--catppuccin-frappe .panel.is-success .panel-heading{background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .panel.is-success .panel-tabs a.is-active{border-bottom-color:#a6d189}html.theme--catppuccin-frappe .panel.is-success .panel-block.is-active .panel-icon{color:#a6d189}html.theme--catppuccin-frappe .panel.is-warning .panel-heading{background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#e5c890}html.theme--catppuccin-frappe .panel.is-warning .panel-block.is-active .panel-icon{color:#e5c890}html.theme--catppuccin-frappe .panel.is-danger .panel-heading{background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#e78284}html.theme--catppuccin-frappe .panel.is-danger .panel-block.is-active .panel-icon{color:#e78284}html.theme--catppuccin-frappe .panel-tabs:not(:last-child),html.theme--catppuccin-frappe .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--catppuccin-frappe .panel-heading{background-color:#51576d;border-radius:8px 8px 0 0;color:#b0bef1;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--catppuccin-frappe .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--catppuccin-frappe .panel-tabs a{border-bottom:1px solid #626880;margin-bottom:-1px;padding:0.5em}html.theme--catppuccin-frappe .panel-tabs a.is-active{border-bottom-color:#51576d;color:#769aeb}html.theme--catppuccin-frappe .panel-list a{color:#c6d0f5}html.theme--catppuccin-frappe .panel-list a:hover{color:#8caaee}html.theme--catppuccin-frappe .panel-block{align-items:center;color:#b0bef1;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--catppuccin-frappe .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--catppuccin-frappe .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--catppuccin-frappe .panel-block.is-wrapped{flex-wrap:wrap}html.theme--catppuccin-frappe .panel-block.is-active{border-left-color:#8caaee;color:#769aeb}html.theme--catppuccin-frappe .panel-block.is-active .panel-icon{color:#8caaee}html.theme--catppuccin-frappe .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--catppuccin-frappe a.panel-block,html.theme--catppuccin-frappe label.panel-block{cursor:pointer}html.theme--catppuccin-frappe a.panel-block:hover,html.theme--catppuccin-frappe label.panel-block:hover{background-color:#292c3c}html.theme--catppuccin-frappe .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#f1f4fd;margin-right:.75em}html.theme--catppuccin-frappe .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--catppuccin-frappe .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--catppuccin-frappe .tabs a{align-items:center;border-bottom-color:#626880;border-bottom-style:solid;border-bottom-width:1px;color:#c6d0f5;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--catppuccin-frappe .tabs a:hover{border-bottom-color:#b0bef1;color:#b0bef1}html.theme--catppuccin-frappe .tabs li{display:block}html.theme--catppuccin-frappe .tabs li.is-active a{border-bottom-color:#8caaee;color:#8caaee}html.theme--catppuccin-frappe .tabs ul{align-items:center;border-bottom-color:#626880;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--catppuccin-frappe .tabs ul.is-left{padding-right:0.75em}html.theme--catppuccin-frappe .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--catppuccin-frappe .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--catppuccin-frappe .tabs .icon:first-child{margin-right:.5em}html.theme--catppuccin-frappe .tabs .icon:last-child{margin-left:.5em}html.theme--catppuccin-frappe .tabs.is-centered ul{justify-content:center}html.theme--catppuccin-frappe .tabs.is-right ul{justify-content:flex-end}html.theme--catppuccin-frappe .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--catppuccin-frappe .tabs.is-boxed a:hover{background-color:#292c3c;border-bottom-color:#626880}html.theme--catppuccin-frappe .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#626880;border-bottom-color:rgba(0,0,0,0) !important}html.theme--catppuccin-frappe .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--catppuccin-frappe .tabs.is-toggle a{border-color:#626880;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--catppuccin-frappe .tabs.is-toggle a:hover{background-color:#292c3c;border-color:#737994;z-index:2}html.theme--catppuccin-frappe .tabs.is-toggle li+li{margin-left:-1px}html.theme--catppuccin-frappe .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--catppuccin-frappe .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--catppuccin-frappe .tabs.is-toggle li.is-active a{background-color:#8caaee;border-color:#8caaee;color:#fff;z-index:1}html.theme--catppuccin-frappe .tabs.is-toggle ul{border-bottom:none}html.theme--catppuccin-frappe .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--catppuccin-frappe .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--catppuccin-frappe .tabs.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--catppuccin-frappe .tabs.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .tabs.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-frappe .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .column.is-narrow-mobile{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full-mobile{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half-mobile{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half-mobile{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--catppuccin-frappe .column.is-0-mobile{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0-mobile{margin-left:0%}html.theme--catppuccin-frappe .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3-mobile{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3-mobile{margin-left:25%}html.theme--catppuccin-frappe .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6-mobile{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6-mobile{margin-left:50%}html.theme--catppuccin-frappe .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9-mobile{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9-mobile{margin-left:75%}html.theme--catppuccin-frappe .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12-mobile{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .column.is-narrow,html.theme--catppuccin-frappe .column.is-narrow-tablet{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full,html.theme--catppuccin-frappe .column.is-full-tablet{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters,html.theme--catppuccin-frappe .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds,html.theme--catppuccin-frappe .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half,html.theme--catppuccin-frappe .column.is-half-tablet{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third,html.theme--catppuccin-frappe .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter,html.theme--catppuccin-frappe .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth,html.theme--catppuccin-frappe .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths,html.theme--catppuccin-frappe .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths,html.theme--catppuccin-frappe .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths,html.theme--catppuccin-frappe .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters,html.theme--catppuccin-frappe .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds,html.theme--catppuccin-frappe .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half,html.theme--catppuccin-frappe .column.is-offset-half-tablet{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third,html.theme--catppuccin-frappe .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter,html.theme--catppuccin-frappe .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth,html.theme--catppuccin-frappe .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths,html.theme--catppuccin-frappe .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths,html.theme--catppuccin-frappe .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths,html.theme--catppuccin-frappe .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--catppuccin-frappe .column.is-0,html.theme--catppuccin-frappe .column.is-0-tablet{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0,html.theme--catppuccin-frappe .column.is-offset-0-tablet{margin-left:0%}html.theme--catppuccin-frappe .column.is-1,html.theme--catppuccin-frappe .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1,html.theme--catppuccin-frappe .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2,html.theme--catppuccin-frappe .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2,html.theme--catppuccin-frappe .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3,html.theme--catppuccin-frappe .column.is-3-tablet{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3,html.theme--catppuccin-frappe .column.is-offset-3-tablet{margin-left:25%}html.theme--catppuccin-frappe .column.is-4,html.theme--catppuccin-frappe .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4,html.theme--catppuccin-frappe .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5,html.theme--catppuccin-frappe .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5,html.theme--catppuccin-frappe .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6,html.theme--catppuccin-frappe .column.is-6-tablet{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6,html.theme--catppuccin-frappe .column.is-offset-6-tablet{margin-left:50%}html.theme--catppuccin-frappe .column.is-7,html.theme--catppuccin-frappe .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7,html.theme--catppuccin-frappe .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8,html.theme--catppuccin-frappe .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8,html.theme--catppuccin-frappe .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9,html.theme--catppuccin-frappe .column.is-9-tablet{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9,html.theme--catppuccin-frappe .column.is-offset-9-tablet{margin-left:75%}html.theme--catppuccin-frappe .column.is-10,html.theme--catppuccin-frappe .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10,html.theme--catppuccin-frappe .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11,html.theme--catppuccin-frappe .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11,html.theme--catppuccin-frappe .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12,html.theme--catppuccin-frappe .column.is-12-tablet{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12,html.theme--catppuccin-frappe .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .column.is-narrow-touch{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full-touch{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters-touch{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half-touch{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter-touch{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth-touch{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths-touch{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths-touch{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths-touch{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half-touch{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--catppuccin-frappe .column.is-0-touch{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0-touch{margin-left:0%}html.theme--catppuccin-frappe .column.is-1-touch{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2-touch{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3-touch{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3-touch{margin-left:25%}html.theme--catppuccin-frappe .column.is-4-touch{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5-touch{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6-touch{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6-touch{margin-left:50%}html.theme--catppuccin-frappe .column.is-7-touch{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8-touch{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9-touch{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9-touch{margin-left:75%}html.theme--catppuccin-frappe .column.is-10-touch{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11-touch{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12-touch{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .column.is-narrow-desktop{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full-desktop{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half-desktop{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half-desktop{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--catppuccin-frappe .column.is-0-desktop{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0-desktop{margin-left:0%}html.theme--catppuccin-frappe .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3-desktop{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3-desktop{margin-left:25%}html.theme--catppuccin-frappe .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6-desktop{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6-desktop{margin-left:50%}html.theme--catppuccin-frappe .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9-desktop{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9-desktop{margin-left:75%}html.theme--catppuccin-frappe .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12-desktop{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .column.is-narrow-widescreen{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full-widescreen{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half-widescreen{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half-widescreen{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--catppuccin-frappe .column.is-0-widescreen{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0-widescreen{margin-left:0%}html.theme--catppuccin-frappe .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3-widescreen{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3-widescreen{margin-left:25%}html.theme--catppuccin-frappe .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6-widescreen{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6-widescreen{margin-left:50%}html.theme--catppuccin-frappe .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9-widescreen{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9-widescreen{margin-left:75%}html.theme--catppuccin-frappe .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12-widescreen{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .column.is-narrow-fullhd{flex:none;width:unset}html.theme--catppuccin-frappe .column.is-full-fullhd{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--catppuccin-frappe .column.is-half-fullhd{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--catppuccin-frappe .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--catppuccin-frappe .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--catppuccin-frappe .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--catppuccin-frappe .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--catppuccin-frappe .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--catppuccin-frappe .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--catppuccin-frappe .column.is-offset-half-fullhd{margin-left:50%}html.theme--catppuccin-frappe .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--catppuccin-frappe .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--catppuccin-frappe .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--catppuccin-frappe .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--catppuccin-frappe .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--catppuccin-frappe .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--catppuccin-frappe .column.is-0-fullhd{flex:none;width:0%}html.theme--catppuccin-frappe .column.is-offset-0-fullhd{margin-left:0%}html.theme--catppuccin-frappe .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--catppuccin-frappe .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--catppuccin-frappe .column.is-3-fullhd{flex:none;width:25%}html.theme--catppuccin-frappe .column.is-offset-3-fullhd{margin-left:25%}html.theme--catppuccin-frappe .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--catppuccin-frappe .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--catppuccin-frappe .column.is-6-fullhd{flex:none;width:50%}html.theme--catppuccin-frappe .column.is-offset-6-fullhd{margin-left:50%}html.theme--catppuccin-frappe .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--catppuccin-frappe .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--catppuccin-frappe .column.is-9-fullhd{flex:none;width:75%}html.theme--catppuccin-frappe .column.is-offset-9-fullhd{margin-left:75%}html.theme--catppuccin-frappe .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--catppuccin-frappe .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--catppuccin-frappe .column.is-12-fullhd{flex:none;width:100%}html.theme--catppuccin-frappe .column.is-offset-12-fullhd{margin-left:100%}}html.theme--catppuccin-frappe .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-frappe .columns:last-child{margin-bottom:-.75rem}html.theme--catppuccin-frappe .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--catppuccin-frappe .columns.is-centered{justify-content:center}html.theme--catppuccin-frappe .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--catppuccin-frappe .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--catppuccin-frappe .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-frappe .columns.is-gapless:last-child{margin-bottom:0}html.theme--catppuccin-frappe .columns.is-mobile{display:flex}html.theme--catppuccin-frappe .columns.is-multiline{flex-wrap:wrap}html.theme--catppuccin-frappe .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-desktop{display:flex}}html.theme--catppuccin-frappe .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--catppuccin-frappe .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--catppuccin-frappe .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--catppuccin-frappe .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--catppuccin-frappe .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--catppuccin-frappe .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--catppuccin-frappe .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--catppuccin-frappe .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--catppuccin-frappe .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--catppuccin-frappe .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--catppuccin-frappe .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-frappe .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-frappe .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-frappe .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-frappe .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--catppuccin-frappe .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--catppuccin-frappe .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-frappe .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--catppuccin-frappe .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-frappe .tile.is-child{margin:0 !important}html.theme--catppuccin-frappe .tile.is-parent{padding:.75rem}html.theme--catppuccin-frappe .tile.is-vertical{flex-direction:column}html.theme--catppuccin-frappe .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .tile:not(.is-child){display:flex}html.theme--catppuccin-frappe .tile.is-1{flex:none;width:8.33333337%}html.theme--catppuccin-frappe .tile.is-2{flex:none;width:16.66666674%}html.theme--catppuccin-frappe .tile.is-3{flex:none;width:25%}html.theme--catppuccin-frappe .tile.is-4{flex:none;width:33.33333337%}html.theme--catppuccin-frappe .tile.is-5{flex:none;width:41.66666674%}html.theme--catppuccin-frappe .tile.is-6{flex:none;width:50%}html.theme--catppuccin-frappe .tile.is-7{flex:none;width:58.33333337%}html.theme--catppuccin-frappe .tile.is-8{flex:none;width:66.66666674%}html.theme--catppuccin-frappe .tile.is-9{flex:none;width:75%}html.theme--catppuccin-frappe .tile.is-10{flex:none;width:83.33333337%}html.theme--catppuccin-frappe .tile.is-11{flex:none;width:91.66666674%}html.theme--catppuccin-frappe .tile.is-12{flex:none;width:100%}}html.theme--catppuccin-frappe .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--catppuccin-frappe .hero .navbar{background:none}html.theme--catppuccin-frappe .hero .tabs ul{border-bottom:none}html.theme--catppuccin-frappe .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-white strong{color:inherit}html.theme--catppuccin-frappe .hero.is-white .title{color:#0a0a0a}html.theme--catppuccin-frappe .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--catppuccin-frappe .hero.is-white .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-white .navbar-menu{background-color:#fff}}html.theme--catppuccin-frappe .hero.is-white .navbar-item,html.theme--catppuccin-frappe .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--catppuccin-frappe .hero.is-white a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-white a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-white .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-frappe .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--catppuccin-frappe .hero.is-white .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--catppuccin-frappe .hero.is-white .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--catppuccin-frappe .hero.is-white .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-white .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-white .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--catppuccin-frappe .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-frappe .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-black strong{color:inherit}html.theme--catppuccin-frappe .hero.is-black .title{color:#fff}html.theme--catppuccin-frappe .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-frappe .hero.is-black .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--catppuccin-frappe .hero.is-black .navbar-item,html.theme--catppuccin-frappe .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-frappe .hero.is-black a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-black a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-black .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-frappe .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-frappe .hero.is-black .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--catppuccin-frappe .hero.is-black .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--catppuccin-frappe .hero.is-black .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-black .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-black .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-frappe .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--catppuccin-frappe .hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-light strong{color:inherit}html.theme--catppuccin-frappe .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-frappe .hero.is-light .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-light .navbar-menu{background-color:#f5f5f5}}html.theme--catppuccin-frappe .hero.is-light .navbar-item,html.theme--catppuccin-frappe .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-light a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-light a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-light .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-frappe .hero.is-light .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}html.theme--catppuccin-frappe .hero.is-light .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-light .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-light .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-light .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .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}html.theme--catppuccin-frappe .hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}html.theme--catppuccin-frappe .hero.is-dark,html.theme--catppuccin-frappe .content kbd.hero{background-color:#414559;color:#fff}html.theme--catppuccin-frappe .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-dark strong,html.theme--catppuccin-frappe .content kbd.hero strong{color:inherit}html.theme--catppuccin-frappe .hero.is-dark .title,html.theme--catppuccin-frappe .content kbd.hero .title{color:#fff}html.theme--catppuccin-frappe .hero.is-dark .subtitle,html.theme--catppuccin-frappe .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-frappe .hero.is-dark .subtitle a:not(.button),html.theme--catppuccin-frappe .content kbd.hero .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-dark .subtitle strong,html.theme--catppuccin-frappe .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-dark .navbar-menu,html.theme--catppuccin-frappe .content kbd.hero .navbar-menu{background-color:#414559}}html.theme--catppuccin-frappe .hero.is-dark .navbar-item,html.theme--catppuccin-frappe .content kbd.hero .navbar-item,html.theme--catppuccin-frappe .hero.is-dark .navbar-link,html.theme--catppuccin-frappe .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-frappe .hero.is-dark a.navbar-item:hover,html.theme--catppuccin-frappe .content kbd.hero a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-dark a.navbar-item.is-active,html.theme--catppuccin-frappe .content kbd.hero a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-dark .navbar-link:hover,html.theme--catppuccin-frappe .content kbd.hero .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-dark .navbar-link.is-active,html.theme--catppuccin-frappe .content kbd.hero .navbar-link.is-active{background-color:#363a4a;color:#fff}html.theme--catppuccin-frappe .hero.is-dark .tabs a,html.theme--catppuccin-frappe .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-frappe .hero.is-dark .tabs a:hover,html.theme--catppuccin-frappe .content kbd.hero .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-dark .tabs li.is-active a,html.theme--catppuccin-frappe .content kbd.hero .tabs li.is-active a{color:#414559 !important;opacity:1}html.theme--catppuccin-frappe .hero.is-dark .tabs.is-boxed a,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-dark .tabs.is-toggle a,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--catppuccin-frappe .hero.is-dark .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-dark .tabs.is-toggle a:hover,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#414559}html.theme--catppuccin-frappe .hero.is-dark.is-bold,html.theme--catppuccin-frappe .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #262f41 0%, #414559 71%, #47476c 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-dark.is-bold .navbar-menu,html.theme--catppuccin-frappe .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #262f41 0%, #414559 71%, #47476c 100%)}}html.theme--catppuccin-frappe .hero.is-primary,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-primary strong,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--catppuccin-frappe .hero.is-primary .title,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--catppuccin-frappe .hero.is-primary .subtitle,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-frappe .hero.is-primary .subtitle a:not(.button),html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-primary .subtitle strong,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-primary .navbar-menu,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#8caaee}}html.theme--catppuccin-frappe .hero.is-primary .navbar-item,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--catppuccin-frappe .hero.is-primary .navbar-link,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-frappe .hero.is-primary a.navbar-item:hover,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-primary a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-primary .navbar-link:hover,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-primary .navbar-link.is-active,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .hero.is-primary .tabs a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-frappe .hero.is-primary .tabs a:hover,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-primary .tabs li.is-active a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#8caaee !important;opacity:1}html.theme--catppuccin-frappe .hero.is-primary .tabs.is-boxed a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-primary .tabs.is-toggle a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--catppuccin-frappe .hero.is-primary .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-primary .tabs.is-toggle a:hover,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .hero.is-primary.is-bold,html.theme--catppuccin-frappe .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #569ff1 0%, #8caaee 71%, #a0abf4 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-primary.is-bold .navbar-menu,html.theme--catppuccin-frappe .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #569ff1 0%, #8caaee 71%, #a0abf4 100%)}}html.theme--catppuccin-frappe .hero.is-link{background-color:#8caaee;color:#fff}html.theme--catppuccin-frappe .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-link strong{color:inherit}html.theme--catppuccin-frappe .hero.is-link .title{color:#fff}html.theme--catppuccin-frappe .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-frappe .hero.is-link .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-link .navbar-menu{background-color:#8caaee}}html.theme--catppuccin-frappe .hero.is-link .navbar-item,html.theme--catppuccin-frappe .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-frappe .hero.is-link a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-link a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-link .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-link .navbar-link.is-active{background-color:#769aeb;color:#fff}html.theme--catppuccin-frappe .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-frappe .hero.is-link .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-link .tabs li.is-active a{color:#8caaee !important;opacity:1}html.theme--catppuccin-frappe .hero.is-link .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--catppuccin-frappe .hero.is-link .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-link .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-link .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#8caaee}html.theme--catppuccin-frappe .hero.is-link.is-bold{background-image:linear-gradient(141deg, #569ff1 0%, #8caaee 71%, #a0abf4 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #569ff1 0%, #8caaee 71%, #a0abf4 100%)}}html.theme--catppuccin-frappe .hero.is-info{background-color:#81c8be;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-info strong{color:inherit}html.theme--catppuccin-frappe .hero.is-info .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-info .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-frappe .hero.is-info .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-info .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-info .navbar-menu{background-color:#81c8be}}html.theme--catppuccin-frappe .hero.is-info .navbar-item,html.theme--catppuccin-frappe .hero.is-info .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-info a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-info a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-info .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-info .navbar-link.is-active{background-color:#6fc0b5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-info .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-frappe .hero.is-info .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-info .tabs li.is-active a{color:#81c8be !important;opacity:1}html.theme--catppuccin-frappe .hero.is-info .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-info .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-info .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-info .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-info .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-info .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:#81c8be}html.theme--catppuccin-frappe .hero.is-info.is-bold{background-image:linear-gradient(141deg, #52c4a1 0%, #81c8be 71%, #8fd2d4 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #52c4a1 0%, #81c8be 71%, #8fd2d4 100%)}}html.theme--catppuccin-frappe .hero.is-success{background-color:#a6d189;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-success strong{color:inherit}html.theme--catppuccin-frappe .hero.is-success .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-success .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-frappe .hero.is-success .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-success .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-success .navbar-menu{background-color:#a6d189}}html.theme--catppuccin-frappe .hero.is-success .navbar-item,html.theme--catppuccin-frappe .hero.is-success .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-success a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-success a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-success .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-success .navbar-link.is-active{background-color:#98ca77;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-success .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-frappe .hero.is-success .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-success .tabs li.is-active a{color:#a6d189 !important;opacity:1}html.theme--catppuccin-frappe .hero.is-success .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-success .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-success .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-success .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-success .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-success .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:#a6d189}html.theme--catppuccin-frappe .hero.is-success.is-bold{background-image:linear-gradient(141deg, #9ccd5a 0%, #a6d189 71%, #a8dc98 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #9ccd5a 0%, #a6d189 71%, #a8dc98 100%)}}html.theme--catppuccin-frappe .hero.is-warning{background-color:#e5c890;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-warning strong{color:inherit}html.theme--catppuccin-frappe .hero.is-warning .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-frappe .hero.is-warning .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-warning .navbar-menu{background-color:#e5c890}}html.theme--catppuccin-frappe .hero.is-warning .navbar-item,html.theme--catppuccin-frappe .hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-warning a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-warning a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-warning .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-warning .navbar-link.is-active{background-color:#e0be7b;color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-frappe .hero.is-warning .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-warning .tabs li.is-active a{color:#e5c890 !important;opacity:1}html.theme--catppuccin-frappe .hero.is-warning .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-frappe .hero.is-warning .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .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:#e5c890}html.theme--catppuccin-frappe .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #e5a05d 0%, #e5c890 71%, #ede0a2 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e5a05d 0%, #e5c890 71%, #ede0a2 100%)}}html.theme--catppuccin-frappe .hero.is-danger{background-color:#e78284;color:#fff}html.theme--catppuccin-frappe .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-frappe .hero.is-danger strong{color:inherit}html.theme--catppuccin-frappe .hero.is-danger .title{color:#fff}html.theme--catppuccin-frappe .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-frappe .hero.is-danger .subtitle a:not(.button),html.theme--catppuccin-frappe .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .hero.is-danger .navbar-menu{background-color:#e78284}}html.theme--catppuccin-frappe .hero.is-danger .navbar-item,html.theme--catppuccin-frappe .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-frappe .hero.is-danger a.navbar-item:hover,html.theme--catppuccin-frappe .hero.is-danger a.navbar-item.is-active,html.theme--catppuccin-frappe .hero.is-danger .navbar-link:hover,html.theme--catppuccin-frappe .hero.is-danger .navbar-link.is-active{background-color:#e36d6f;color:#fff}html.theme--catppuccin-frappe .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-frappe .hero.is-danger .tabs a:hover{opacity:1}html.theme--catppuccin-frappe .hero.is-danger .tabs li.is-active a{color:#e78284 !important;opacity:1}html.theme--catppuccin-frappe .hero.is-danger .tabs.is-boxed a,html.theme--catppuccin-frappe .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--catppuccin-frappe .hero.is-danger .tabs.is-boxed a:hover,html.theme--catppuccin-frappe .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-frappe .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--catppuccin-frappe .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-frappe .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--catppuccin-frappe .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#e78284}html.theme--catppuccin-frappe .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #e94d6a 0%, #e78284 71%, #eea294 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e94d6a 0%, #e78284 71%, #eea294 100%)}}html.theme--catppuccin-frappe .hero.is-small .hero-body,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--catppuccin-frappe .hero.is-halfheight .hero-body,html.theme--catppuccin-frappe .hero.is-fullheight .hero-body,html.theme--catppuccin-frappe .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--catppuccin-frappe .hero.is-halfheight .hero-body>.container,html.theme--catppuccin-frappe .hero.is-fullheight .hero-body>.container,html.theme--catppuccin-frappe .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--catppuccin-frappe .hero.is-halfheight{min-height:50vh}html.theme--catppuccin-frappe .hero.is-fullheight{min-height:100vh}html.theme--catppuccin-frappe .hero-video{overflow:hidden}html.theme--catppuccin-frappe .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--catppuccin-frappe .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero-video{display:none}}html.theme--catppuccin-frappe .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-frappe .hero-buttons .button{display:flex}html.theme--catppuccin-frappe .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .hero-buttons{display:flex;justify-content:center}html.theme--catppuccin-frappe .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--catppuccin-frappe .hero-head,html.theme--catppuccin-frappe .hero-foot{flex-grow:0;flex-shrink:0}html.theme--catppuccin-frappe .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-frappe .hero-body{padding:3rem 3rem}}html.theme--catppuccin-frappe .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe .section{padding:3rem 3rem}html.theme--catppuccin-frappe .section.is-medium{padding:9rem 4.5rem}html.theme--catppuccin-frappe .section.is-large{padding:18rem 6rem}}html.theme--catppuccin-frappe .footer{background-color:#292c3c;padding:3rem 1.5rem 6rem}html.theme--catppuccin-frappe h1 .docs-heading-anchor,html.theme--catppuccin-frappe h1 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h1 .docs-heading-anchor:visited,html.theme--catppuccin-frappe h2 .docs-heading-anchor,html.theme--catppuccin-frappe h2 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h2 .docs-heading-anchor:visited,html.theme--catppuccin-frappe h3 .docs-heading-anchor,html.theme--catppuccin-frappe h3 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h3 .docs-heading-anchor:visited,html.theme--catppuccin-frappe h4 .docs-heading-anchor,html.theme--catppuccin-frappe h4 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h4 .docs-heading-anchor:visited,html.theme--catppuccin-frappe h5 .docs-heading-anchor,html.theme--catppuccin-frappe h5 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h5 .docs-heading-anchor:visited,html.theme--catppuccin-frappe h6 .docs-heading-anchor,html.theme--catppuccin-frappe h6 .docs-heading-anchor:hover,html.theme--catppuccin-frappe h6 .docs-heading-anchor:visited{color:#c6d0f5}html.theme--catppuccin-frappe h1 .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h2 .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h3 .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h4 .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h5 .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--catppuccin-frappe h1 .docs-heading-anchor-permalink::before,html.theme--catppuccin-frappe h2 .docs-heading-anchor-permalink::before,html.theme--catppuccin-frappe h3 .docs-heading-anchor-permalink::before,html.theme--catppuccin-frappe h4 .docs-heading-anchor-permalink::before,html.theme--catppuccin-frappe h5 .docs-heading-anchor-permalink::before,html.theme--catppuccin-frappe h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--catppuccin-frappe h1:hover .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h2:hover .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h3:hover .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h4:hover .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h5:hover .docs-heading-anchor-permalink,html.theme--catppuccin-frappe h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--catppuccin-frappe .docs-light-only{display:none !important}html.theme--catppuccin-frappe pre{position:relative;overflow:hidden}html.theme--catppuccin-frappe pre code,html.theme--catppuccin-frappe pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--catppuccin-frappe pre code:first-of-type,html.theme--catppuccin-frappe pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--catppuccin-frappe pre code:last-of-type,html.theme--catppuccin-frappe pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--catppuccin-frappe 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:#c6d0f5;cursor:pointer;text-align:center}html.theme--catppuccin-frappe pre .copy-button:focus,html.theme--catppuccin-frappe pre .copy-button:hover{opacity:1;background:rgba(198,208,245,0.1);color:#8caaee}html.theme--catppuccin-frappe pre .copy-button.success{color:#a6d189;opacity:1}html.theme--catppuccin-frappe pre .copy-button.error{color:#e78284;opacity:1}html.theme--catppuccin-frappe pre:hover .copy-button{opacity:1}html.theme--catppuccin-frappe .admonition{background-color:#292c3c;border-style:solid;border-width:2px;border-color:#b5bfe2;border-radius:4px;font-size:1rem}html.theme--catppuccin-frappe .admonition strong{color:currentColor}html.theme--catppuccin-frappe .admonition.is-small,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--catppuccin-frappe .admonition.is-medium{font-size:1.25rem}html.theme--catppuccin-frappe .admonition.is-large{font-size:1.5rem}html.theme--catppuccin-frappe .admonition.is-default{background-color:#292c3c;border-color:#b5bfe2}html.theme--catppuccin-frappe .admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#b5bfe2}html.theme--catppuccin-frappe .admonition.is-default>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-info{background-color:#292c3c;border-color:#81c8be}html.theme--catppuccin-frappe .admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#81c8be}html.theme--catppuccin-frappe .admonition.is-info>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-success{background-color:#292c3c;border-color:#a6d189}html.theme--catppuccin-frappe .admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#a6d189}html.theme--catppuccin-frappe .admonition.is-success>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-warning{background-color:#292c3c;border-color:#e5c890}html.theme--catppuccin-frappe .admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#e5c890}html.theme--catppuccin-frappe .admonition.is-warning>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-danger{background-color:#292c3c;border-color:#e78284}html.theme--catppuccin-frappe .admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#e78284}html.theme--catppuccin-frappe .admonition.is-danger>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-compat{background-color:#292c3c;border-color:#99d1db}html.theme--catppuccin-frappe .admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#99d1db}html.theme--catppuccin-frappe .admonition.is-compat>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition.is-todo{background-color:#292c3c;border-color:#ca9ee6}html.theme--catppuccin-frappe .admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#ca9ee6}html.theme--catppuccin-frappe .admonition.is-todo>.admonition-body{color:#c6d0f5}html.theme--catppuccin-frappe .admonition-header{color:#b5bfe2;background-color:rgba(0,0,0,0);align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--catppuccin-frappe .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--catppuccin-frappe details.admonition.is-details>.admonition-header{list-style:none}html.theme--catppuccin-frappe details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--catppuccin-frappe details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--catppuccin-frappe .admonition-body{color:#c6d0f5;padding:0.5rem .75rem}html.theme--catppuccin-frappe .admonition-body pre{background-color:#292c3c}html.theme--catppuccin-frappe .admonition-body code{background-color:#292c3c}html.theme--catppuccin-frappe .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:2px solid #626880;border-radius:4px;box-shadow:none;max-width:100%}html.theme--catppuccin-frappe .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#292c3c;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #626880;overflow:auto}html.theme--catppuccin-frappe .docstring>header code{background-color:transparent}html.theme--catppuccin-frappe .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--catppuccin-frappe .docstring>header .docstring-binding{margin-right:0.3em}html.theme--catppuccin-frappe .docstring>header .docstring-category{margin-left:0.3em}html.theme--catppuccin-frappe .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #626880}html.theme--catppuccin-frappe .docstring>section:last-child{border-bottom:none}html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--catppuccin-frappe .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-frappe .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-frappe .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--catppuccin-frappe .documenter-example-output{background-color:#303446}html.theme--catppuccin-frappe .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:#292c3c;color:#c6d0f5;border-bottom:3px solid rgba(0,0,0,0);padding:10px 35px;text-align:center;font-size:15px}html.theme--catppuccin-frappe .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--catppuccin-frappe .outdated-warning-overlay a{color:#8caaee}html.theme--catppuccin-frappe .outdated-warning-overlay a:hover{color:#99d1db}html.theme--catppuccin-frappe .content pre{border:2px solid #626880;border-radius:4px}html.theme--catppuccin-frappe .content code{font-weight:inherit}html.theme--catppuccin-frappe .content a code{color:#8caaee}html.theme--catppuccin-frappe .content a:hover code{color:#99d1db}html.theme--catppuccin-frappe .content h1 code,html.theme--catppuccin-frappe .content h2 code,html.theme--catppuccin-frappe .content h3 code,html.theme--catppuccin-frappe .content h4 code,html.theme--catppuccin-frappe .content h5 code,html.theme--catppuccin-frappe .content h6 code{color:#c6d0f5}html.theme--catppuccin-frappe .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--catppuccin-frappe .content blockquote>ul:first-child,html.theme--catppuccin-frappe .content blockquote>ol:first-child,html.theme--catppuccin-frappe .content .admonition-body>ul:first-child,html.theme--catppuccin-frappe .content .admonition-body>ol:first-child{margin-top:0}html.theme--catppuccin-frappe pre,html.theme--catppuccin-frappe code{font-variant-ligatures:no-contextual}html.theme--catppuccin-frappe .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--catppuccin-frappe .breadcrumb a.is-disabled,html.theme--catppuccin-frappe .breadcrumb a.is-disabled:hover{color:#b0bef1}html.theme--catppuccin-frappe .hljs{background:initial !important}html.theme--catppuccin-frappe .katex .katex-mathml{top:0;right:0}html.theme--catppuccin-frappe .katex-display,html.theme--catppuccin-frappe mjx-container,html.theme--catppuccin-frappe .MathJax_Display{margin:0.5em 0 !important}html.theme--catppuccin-frappe html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--catppuccin-frappe li.no-marker{list-style:none}html.theme--catppuccin-frappe #documenter .docs-main>article{overflow-wrap:break-word}html.theme--catppuccin-frappe #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe #documenter .docs-main{width:100%}html.theme--catppuccin-frappe #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--catppuccin-frappe #documenter .docs-main>header,html.theme--catppuccin-frappe #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar{background-color:#303446;border-bottom:1px solid #626880;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--catppuccin-frappe #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe #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--catppuccin-frappe #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--catppuccin-frappe #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--catppuccin-frappe #documenter .docs-main section.footnotes{border-top:1px solid #626880}html.theme--catppuccin-frappe #documenter .docs-main section.footnotes li .tag:first-child,html.theme--catppuccin-frappe #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--catppuccin-frappe #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--catppuccin-frappe .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--catppuccin-frappe #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #626880;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--catppuccin-frappe #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--catppuccin-frappe #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--catppuccin-frappe #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--catppuccin-frappe #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--catppuccin-frappe #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--catppuccin-frappe #documenter .docs-sidebar{display:flex;flex-direction:column;color:#c6d0f5;background-color:#292c3c;border-right:1px solid #626880;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--catppuccin-frappe #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--catppuccin-frappe #documenter .docs-sidebar{left:0;top:0}}html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--catppuccin-frappe #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--catppuccin-frappe #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-package-name a,html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-package-name a:hover{color:#c6d0f5}html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #626880;display:none;padding:0.5rem}html.theme--catppuccin-frappe #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #626880;padding-bottom:1.5rem}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #626880}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--catppuccin-frappe #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--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#c6d0f5;background:#292c3c}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#c6d0f5;background-color:#313548}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #626880;border-bottom:1px solid #626880;background-color:#232634}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#232634;color:#c6d0f5}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#313548;color:#c6d0f5}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #626880}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--catppuccin-frappe #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--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3a3e54}html.theme--catppuccin-frappe #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4a506c}}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-frappe #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-frappe #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3a3e54}html.theme--catppuccin-frappe #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4a506c}}html.theme--catppuccin-frappe 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--catppuccin-frappe .search-min-width-50{min-width:50%}html.theme--catppuccin-frappe .search-min-height-100{min-height:100%}html.theme--catppuccin-frappe .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--catppuccin-frappe .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-frappe .search-result-link:hover,html.theme--catppuccin-frappe .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--catppuccin-frappe .search-result-link .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-frappe .property-search-result-badge,html.theme--catppuccin-frappe .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--catppuccin-frappe .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link:hover .search-filter,html.theme--catppuccin-frappe .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--catppuccin-frappe .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--catppuccin-frappe .search-filter:hover,html.theme--catppuccin-frappe .search-filter:focus{color:#333}html.theme--catppuccin-frappe .search-filter-selected{color:#414559;background-color:#babbf1}html.theme--catppuccin-frappe .search-filter-selected:hover,html.theme--catppuccin-frappe .search-filter-selected:focus{color:#414559}html.theme--catppuccin-frappe .search-result-highlight{background-color:#ffdd57;color:black}html.theme--catppuccin-frappe .search-divider{border-bottom:1px solid #626880}html.theme--catppuccin-frappe .search-result-title{width:85%;color:#f5f5f5}html.theme--catppuccin-frappe .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--catppuccin-frappe #search-modal .modal-card-body::-webkit-scrollbar,html.theme--catppuccin-frappe #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--catppuccin-frappe #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--catppuccin-frappe #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--catppuccin-frappe #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--catppuccin-frappe #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--catppuccin-frappe .w-100{width:100%}html.theme--catppuccin-frappe .gap-2{gap:0.5rem}html.theme--catppuccin-frappe .gap-4{gap:1rem}html.theme--catppuccin-frappe .gap-8{gap:2rem}html.theme--catppuccin-frappe{background-color:#303446;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--catppuccin-frappe a{transition:all 200ms ease}html.theme--catppuccin-frappe .label{color:#c6d0f5}html.theme--catppuccin-frappe .button,html.theme--catppuccin-frappe .control.has-icons-left .icon,html.theme--catppuccin-frappe .control.has-icons-right .icon,html.theme--catppuccin-frappe .input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe .pagination-ellipsis,html.theme--catppuccin-frappe .pagination-link,html.theme--catppuccin-frappe .pagination-next,html.theme--catppuccin-frappe .pagination-previous,html.theme--catppuccin-frappe .select,html.theme--catppuccin-frappe .select select,html.theme--catppuccin-frappe .textarea{height:2.5em;color:#c6d0f5}html.theme--catppuccin-frappe .input,html.theme--catppuccin-frappe #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-frappe .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em;color:#c6d0f5}html.theme--catppuccin-frappe .select:after,html.theme--catppuccin-frappe .select select{border-width:1px}html.theme--catppuccin-frappe .menu-list a{transition:all 300ms ease}html.theme--catppuccin-frappe .modal-card-foot,html.theme--catppuccin-frappe .modal-card-head{border-color:#626880}html.theme--catppuccin-frappe .navbar{border-radius:.4em}html.theme--catppuccin-frappe .navbar.is-transparent{background:none}html.theme--catppuccin-frappe .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-frappe .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#8caaee}@media screen and (max-width: 1055px){html.theme--catppuccin-frappe .navbar .navbar-menu{background-color:#8caaee;border-radius:0 0 .4em .4em}}html.theme--catppuccin-frappe .docstring>section>a.docs-sourcelink:not(body){color:#414559}html.theme--catppuccin-frappe .tag.is-link:not(body),html.theme--catppuccin-frappe .docstring>section>a.is-link.docs-sourcelink:not(body),html.theme--catppuccin-frappe .content kbd.is-link:not(body){color:#414559}html.theme--catppuccin-frappe .ansi span.sgr1{font-weight:bolder}html.theme--catppuccin-frappe .ansi span.sgr2{font-weight:lighter}html.theme--catppuccin-frappe .ansi span.sgr3{font-style:italic}html.theme--catppuccin-frappe .ansi span.sgr4{text-decoration:underline}html.theme--catppuccin-frappe .ansi span.sgr7{color:#303446;background-color:#c6d0f5}html.theme--catppuccin-frappe .ansi span.sgr8{color:transparent}html.theme--catppuccin-frappe .ansi span.sgr8 span{color:transparent}html.theme--catppuccin-frappe .ansi span.sgr9{text-decoration:line-through}html.theme--catppuccin-frappe .ansi span.sgr30{color:#51576d}html.theme--catppuccin-frappe .ansi span.sgr31{color:#e78284}html.theme--catppuccin-frappe .ansi span.sgr32{color:#a6d189}html.theme--catppuccin-frappe .ansi span.sgr33{color:#e5c890}html.theme--catppuccin-frappe .ansi span.sgr34{color:#8caaee}html.theme--catppuccin-frappe .ansi span.sgr35{color:#f4b8e4}html.theme--catppuccin-frappe .ansi span.sgr36{color:#81c8be}html.theme--catppuccin-frappe .ansi span.sgr37{color:#b5bfe2}html.theme--catppuccin-frappe .ansi span.sgr40{background-color:#51576d}html.theme--catppuccin-frappe .ansi span.sgr41{background-color:#e78284}html.theme--catppuccin-frappe .ansi span.sgr42{background-color:#a6d189}html.theme--catppuccin-frappe .ansi span.sgr43{background-color:#e5c890}html.theme--catppuccin-frappe .ansi span.sgr44{background-color:#8caaee}html.theme--catppuccin-frappe .ansi span.sgr45{background-color:#f4b8e4}html.theme--catppuccin-frappe .ansi span.sgr46{background-color:#81c8be}html.theme--catppuccin-frappe .ansi span.sgr47{background-color:#b5bfe2}html.theme--catppuccin-frappe .ansi span.sgr90{color:#626880}html.theme--catppuccin-frappe .ansi span.sgr91{color:#e78284}html.theme--catppuccin-frappe .ansi span.sgr92{color:#a6d189}html.theme--catppuccin-frappe .ansi span.sgr93{color:#e5c890}html.theme--catppuccin-frappe .ansi span.sgr94{color:#8caaee}html.theme--catppuccin-frappe .ansi span.sgr95{color:#f4b8e4}html.theme--catppuccin-frappe .ansi span.sgr96{color:#81c8be}html.theme--catppuccin-frappe .ansi span.sgr97{color:#a5adce}html.theme--catppuccin-frappe .ansi span.sgr100{background-color:#626880}html.theme--catppuccin-frappe .ansi span.sgr101{background-color:#e78284}html.theme--catppuccin-frappe .ansi span.sgr102{background-color:#a6d189}html.theme--catppuccin-frappe .ansi span.sgr103{background-color:#e5c890}html.theme--catppuccin-frappe .ansi span.sgr104{background-color:#8caaee}html.theme--catppuccin-frappe .ansi span.sgr105{background-color:#f4b8e4}html.theme--catppuccin-frappe .ansi span.sgr106{background-color:#81c8be}html.theme--catppuccin-frappe .ansi span.sgr107{background-color:#a5adce}html.theme--catppuccin-frappe code.language-julia-repl>span.hljs-meta{color:#a6d189;font-weight:bolder}html.theme--catppuccin-frappe code .hljs{color:#c6d0f5;background:#303446}html.theme--catppuccin-frappe code .hljs-keyword{color:#ca9ee6}html.theme--catppuccin-frappe code .hljs-built_in{color:#e78284}html.theme--catppuccin-frappe code .hljs-type{color:#e5c890}html.theme--catppuccin-frappe code .hljs-literal{color:#ef9f76}html.theme--catppuccin-frappe code .hljs-number{color:#ef9f76}html.theme--catppuccin-frappe code .hljs-operator{color:#81c8be}html.theme--catppuccin-frappe code .hljs-punctuation{color:#b5bfe2}html.theme--catppuccin-frappe code .hljs-property{color:#81c8be}html.theme--catppuccin-frappe code .hljs-regexp{color:#f4b8e4}html.theme--catppuccin-frappe code .hljs-string{color:#a6d189}html.theme--catppuccin-frappe code .hljs-char.escape_{color:#a6d189}html.theme--catppuccin-frappe code .hljs-subst{color:#a5adce}html.theme--catppuccin-frappe code .hljs-symbol{color:#eebebe}html.theme--catppuccin-frappe code .hljs-variable{color:#ca9ee6}html.theme--catppuccin-frappe code .hljs-variable.language_{color:#ca9ee6}html.theme--catppuccin-frappe code .hljs-variable.constant_{color:#ef9f76}html.theme--catppuccin-frappe code .hljs-title{color:#8caaee}html.theme--catppuccin-frappe code .hljs-title.class_{color:#e5c890}html.theme--catppuccin-frappe code .hljs-title.function_{color:#8caaee}html.theme--catppuccin-frappe code .hljs-params{color:#c6d0f5}html.theme--catppuccin-frappe code .hljs-comment{color:#626880}html.theme--catppuccin-frappe code .hljs-doctag{color:#e78284}html.theme--catppuccin-frappe code .hljs-meta{color:#ef9f76}html.theme--catppuccin-frappe code .hljs-section{color:#8caaee}html.theme--catppuccin-frappe code .hljs-tag{color:#a5adce}html.theme--catppuccin-frappe code .hljs-name{color:#ca9ee6}html.theme--catppuccin-frappe code .hljs-attr{color:#8caaee}html.theme--catppuccin-frappe code .hljs-attribute{color:#a6d189}html.theme--catppuccin-frappe code .hljs-bullet{color:#81c8be}html.theme--catppuccin-frappe code .hljs-code{color:#a6d189}html.theme--catppuccin-frappe code .hljs-emphasis{color:#e78284;font-style:italic}html.theme--catppuccin-frappe code .hljs-strong{color:#e78284;font-weight:bold}html.theme--catppuccin-frappe code .hljs-formula{color:#81c8be}html.theme--catppuccin-frappe code .hljs-link{color:#85c1dc;font-style:italic}html.theme--catppuccin-frappe code .hljs-quote{color:#a6d189;font-style:italic}html.theme--catppuccin-frappe code .hljs-selector-tag{color:#e5c890}html.theme--catppuccin-frappe code .hljs-selector-id{color:#8caaee}html.theme--catppuccin-frappe code .hljs-selector-class{color:#81c8be}html.theme--catppuccin-frappe code .hljs-selector-attr{color:#ca9ee6}html.theme--catppuccin-frappe code .hljs-selector-pseudo{color:#81c8be}html.theme--catppuccin-frappe code .hljs-template-tag{color:#eebebe}html.theme--catppuccin-frappe code .hljs-template-variable{color:#eebebe}html.theme--catppuccin-frappe code .hljs-addition{color:#a6d189;background:rgba(166,227,161,0.15)}html.theme--catppuccin-frappe code .hljs-deletion{color:#e78284;background:rgba(243,139,168,0.15)}html.theme--catppuccin-frappe .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-frappe .search-result-link:hover,html.theme--catppuccin-frappe .search-result-link:focus{background-color:#414559}html.theme--catppuccin-frappe .search-result-link .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-frappe .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link:hover .search-filter,html.theme--catppuccin-frappe .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-frappe .search-result-link:focus .search-filter{color:#414559 !important;background-color:#babbf1 !important}html.theme--catppuccin-frappe .search-result-title{color:#c6d0f5}html.theme--catppuccin-frappe .search-result-highlight{background-color:#e78284;color:#292c3c}html.theme--catppuccin-frappe .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--catppuccin-frappe .w-100{width:100%}html.theme--catppuccin-frappe .gap-2{gap:0.5rem}html.theme--catppuccin-frappe .gap-4{gap:1rem} diff --git a/previews/PR563/assets/themes/catppuccin-latte.css b/previews/PR563/assets/themes/catppuccin-latte.css new file mode 100644 index 00000000..63160d34 --- /dev/null +++ b/previews/PR563/assets/themes/catppuccin-latte.css @@ -0,0 +1 @@ +html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte .pagination-ellipsis,html.theme--catppuccin-latte .file-cta,html.theme--catppuccin-latte .file-name,html.theme--catppuccin-latte .select select,html.theme--catppuccin-latte .textarea,html.theme--catppuccin-latte .input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte .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--catppuccin-latte .pagination-previous:focus,html.theme--catppuccin-latte .pagination-next:focus,html.theme--catppuccin-latte .pagination-link:focus,html.theme--catppuccin-latte .pagination-ellipsis:focus,html.theme--catppuccin-latte .file-cta:focus,html.theme--catppuccin-latte .file-name:focus,html.theme--catppuccin-latte .select select:focus,html.theme--catppuccin-latte .textarea:focus,html.theme--catppuccin-latte .input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-latte .button:focus,html.theme--catppuccin-latte .is-focused.pagination-previous,html.theme--catppuccin-latte .is-focused.pagination-next,html.theme--catppuccin-latte .is-focused.pagination-link,html.theme--catppuccin-latte .is-focused.pagination-ellipsis,html.theme--catppuccin-latte .is-focused.file-cta,html.theme--catppuccin-latte .is-focused.file-name,html.theme--catppuccin-latte .select select.is-focused,html.theme--catppuccin-latte .is-focused.textarea,html.theme--catppuccin-latte .is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-focused.button,html.theme--catppuccin-latte .pagination-previous:active,html.theme--catppuccin-latte .pagination-next:active,html.theme--catppuccin-latte .pagination-link:active,html.theme--catppuccin-latte .pagination-ellipsis:active,html.theme--catppuccin-latte .file-cta:active,html.theme--catppuccin-latte .file-name:active,html.theme--catppuccin-latte .select select:active,html.theme--catppuccin-latte .textarea:active,html.theme--catppuccin-latte .input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-latte .button:active,html.theme--catppuccin-latte .is-active.pagination-previous,html.theme--catppuccin-latte .is-active.pagination-next,html.theme--catppuccin-latte .is-active.pagination-link,html.theme--catppuccin-latte .is-active.pagination-ellipsis,html.theme--catppuccin-latte .is-active.file-cta,html.theme--catppuccin-latte .is-active.file-name,html.theme--catppuccin-latte .select select.is-active,html.theme--catppuccin-latte .is-active.textarea,html.theme--catppuccin-latte .is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-latte .is-active.button{outline:none}html.theme--catppuccin-latte .pagination-previous[disabled],html.theme--catppuccin-latte .pagination-next[disabled],html.theme--catppuccin-latte .pagination-link[disabled],html.theme--catppuccin-latte .pagination-ellipsis[disabled],html.theme--catppuccin-latte .file-cta[disabled],html.theme--catppuccin-latte .file-name[disabled],html.theme--catppuccin-latte .select select[disabled],html.theme--catppuccin-latte .textarea[disabled],html.theme--catppuccin-latte .input[disabled],html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--catppuccin-latte .button[disabled],fieldset[disabled] html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--catppuccin-latte .pagination-ellipsis,html.theme--catppuccin-latte fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--catppuccin-latte .file-cta,html.theme--catppuccin-latte fieldset[disabled] .file-cta,fieldset[disabled] html.theme--catppuccin-latte .file-name,html.theme--catppuccin-latte fieldset[disabled] .file-name,fieldset[disabled] html.theme--catppuccin-latte .select select,fieldset[disabled] html.theme--catppuccin-latte .textarea,fieldset[disabled] html.theme--catppuccin-latte .input,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte fieldset[disabled] .select select,html.theme--catppuccin-latte .select fieldset[disabled] select,html.theme--catppuccin-latte fieldset[disabled] .textarea,html.theme--catppuccin-latte fieldset[disabled] .input,html.theme--catppuccin-latte fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--catppuccin-latte .button,html.theme--catppuccin-latte fieldset[disabled] .button{cursor:not-allowed}html.theme--catppuccin-latte .tabs,html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte .pagination-ellipsis,html.theme--catppuccin-latte .breadcrumb,html.theme--catppuccin-latte .file,html.theme--catppuccin-latte .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--catppuccin-latte .navbar-link:not(.is-arrowless)::after,html.theme--catppuccin-latte .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--catppuccin-latte .admonition:not(:last-child),html.theme--catppuccin-latte .tabs:not(:last-child),html.theme--catppuccin-latte .pagination:not(:last-child),html.theme--catppuccin-latte .message:not(:last-child),html.theme--catppuccin-latte .level:not(:last-child),html.theme--catppuccin-latte .breadcrumb:not(:last-child),html.theme--catppuccin-latte .block:not(:last-child),html.theme--catppuccin-latte .title:not(:last-child),html.theme--catppuccin-latte .subtitle:not(:last-child),html.theme--catppuccin-latte .table-container:not(:last-child),html.theme--catppuccin-latte .table:not(:last-child),html.theme--catppuccin-latte .progress:not(:last-child),html.theme--catppuccin-latte .notification:not(:last-child),html.theme--catppuccin-latte .content:not(:last-child),html.theme--catppuccin-latte .box:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-latte .modal-close,html.theme--catppuccin-latte .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--catppuccin-latte .modal-close::before,html.theme--catppuccin-latte .delete::before,html.theme--catppuccin-latte .modal-close::after,html.theme--catppuccin-latte .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--catppuccin-latte .modal-close::before,html.theme--catppuccin-latte .delete::before{height:2px;width:50%}html.theme--catppuccin-latte .modal-close::after,html.theme--catppuccin-latte .delete::after{height:50%;width:2px}html.theme--catppuccin-latte .modal-close:hover,html.theme--catppuccin-latte .delete:hover,html.theme--catppuccin-latte .modal-close:focus,html.theme--catppuccin-latte .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--catppuccin-latte .modal-close:active,html.theme--catppuccin-latte .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--catppuccin-latte .is-small.modal-close,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--catppuccin-latte .is-small.delete,html.theme--catppuccin-latte #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--catppuccin-latte .is-medium.modal-close,html.theme--catppuccin-latte .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--catppuccin-latte .is-large.modal-close,html.theme--catppuccin-latte .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--catppuccin-latte .control.is-loading::after,html.theme--catppuccin-latte .select.is-loading::after,html.theme--catppuccin-latte .loader,html.theme--catppuccin-latte .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #8c8fa1;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--catppuccin-latte .hero-video,html.theme--catppuccin-latte .modal-background,html.theme--catppuccin-latte .modal,html.theme--catppuccin-latte .image.is-square img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-latte .image.is-square .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-latte .image.is-1by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-latte .image.is-1by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-latte .image.is-5by4 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-latte .image.is-5by4 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-latte .image.is-4by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-latte .image.is-4by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-latte .image.is-3by2 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-latte .image.is-3by2 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-latte .image.is-5by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-latte .image.is-5by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-latte .image.is-16by9 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-latte .image.is-16by9 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-latte .image.is-2by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-latte .image.is-2by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-latte .image.is-3by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-latte .image.is-3by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-latte .image.is-4by5 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-latte .image.is-4by5 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-latte .image.is-3by4 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-latte .image.is-3by4 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-latte .image.is-2by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-latte .image.is-2by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-latte .image.is-3by5 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-latte .image.is-3by5 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-latte .image.is-9by16 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-latte .image.is-9by16 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-latte .image.is-1by2 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-latte .image.is-1by2 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-latte .image.is-1by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-latte .image.is-1by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--catppuccin-latte .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:#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:#ccd0da !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#aeb5c5 !important}.has-background-dark{background-color:#ccd0da !important}.has-text-primary{color:#1e66f5 !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#0a4ed6 !important}.has-background-primary{background-color:#1e66f5 !important}.has-text-primary-light{color:#ebf2fe !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#bbd1fc !important}.has-background-primary-light{background-color:#ebf2fe !important}.has-text-primary-dark{color:#0a52e1 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#286df5 !important}.has-background-primary-dark{background-color:#0a52e1 !important}.has-text-link{color:#1e66f5 !important}a.has-text-link:hover,a.has-text-link:focus{color:#0a4ed6 !important}.has-background-link{background-color:#1e66f5 !important}.has-text-link-light{color:#ebf2fe !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#bbd1fc !important}.has-background-link-light{background-color:#ebf2fe !important}.has-text-link-dark{color:#0a52e1 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#286df5 !important}.has-background-link-dark{background-color:#0a52e1 !important}.has-text-info{color:#179299 !important}a.has-text-info:hover,a.has-text-info:focus{color:#10686d !important}.has-background-info{background-color:#179299 !important}.has-text-info-light{color:#edfcfc !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#c1f3f6 !important}.has-background-info-light{background-color:#edfcfc !important}.has-text-info-dark{color:#1cb2ba !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#2ad5df !important}.has-background-info-dark{background-color:#1cb2ba !important}.has-text-success{color:#40a02b !important}a.has-text-success:hover,a.has-text-success:focus{color:#307820 !important}.has-background-success{background-color:#40a02b !important}.has-text-success-light{color:#f1fbef !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#cef0c7 !important}.has-background-success-light{background-color:#f1fbef !important}.has-text-success-dark{color:#40a12b !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#50c936 !important}.has-background-success-dark{background-color:#40a12b !important}.has-text-warning{color:#df8e1d !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#b27117 !important}.has-background-warning{background-color:#df8e1d !important}.has-text-warning-light{color:#fdf6ed !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#f7e0c0 !important}.has-background-warning-light{background-color:#fdf6ed !important}.has-text-warning-dark{color:#9e6515 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#cb811a !important}.has-background-warning-dark{background-color:#9e6515 !important}.has-text-danger{color:#d20f39 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a20c2c !important}.has-background-danger{background-color:#d20f39 !important}.has-text-danger-light{color:#feecf0 !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fabcca !important}.has-background-danger-light{background-color:#feecf0 !important}.has-text-danger-dark{color:#e9113f !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f13c63 !important}.has-background-danger-dark{background-color:#e9113f !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:#ccd0da !important}.has-background-grey-darker{background-color:#ccd0da !important}.has-text-grey-dark{color:#bcc0cc !important}.has-background-grey-dark{background-color:#bcc0cc !important}.has-text-grey{color:#acb0be !important}.has-background-grey{background-color:#acb0be !important}.has-text-grey-light{color:#9ca0b0 !important}.has-background-grey-light{background-color:#9ca0b0 !important}.has-text-grey-lighter{color:#8c8fa1 !important}.has-background-grey-lighter{background-color:#8c8fa1 !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,html.theme--catppuccin-latte .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--catppuccin-latte html{background-color:#eff1f5;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--catppuccin-latte article,html.theme--catppuccin-latte aside,html.theme--catppuccin-latte figure,html.theme--catppuccin-latte footer,html.theme--catppuccin-latte header,html.theme--catppuccin-latte hgroup,html.theme--catppuccin-latte section{display:block}html.theme--catppuccin-latte body,html.theme--catppuccin-latte button,html.theme--catppuccin-latte input,html.theme--catppuccin-latte optgroup,html.theme--catppuccin-latte select,html.theme--catppuccin-latte textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--catppuccin-latte code,html.theme--catppuccin-latte 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--catppuccin-latte body{color:#4c4f69;font-size:1em;font-weight:400;line-height:1.5}html.theme--catppuccin-latte a{color:#1e66f5;cursor:pointer;text-decoration:none}html.theme--catppuccin-latte a strong{color:currentColor}html.theme--catppuccin-latte a:hover{color:#04a5e5}html.theme--catppuccin-latte code{background-color:#e6e9ef;color:#4c4f69;font-size:.875em;font-weight:normal;padding:.1em}html.theme--catppuccin-latte hr{background-color:#e6e9ef;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--catppuccin-latte img{height:auto;max-width:100%}html.theme--catppuccin-latte input[type="checkbox"],html.theme--catppuccin-latte input[type="radio"]{vertical-align:baseline}html.theme--catppuccin-latte small{font-size:.875em}html.theme--catppuccin-latte span{font-style:inherit;font-weight:inherit}html.theme--catppuccin-latte strong{color:#41445a;font-weight:700}html.theme--catppuccin-latte fieldset{border:none}html.theme--catppuccin-latte pre{-webkit-overflow-scrolling:touch;background-color:#e6e9ef;color:#4c4f69;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--catppuccin-latte pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--catppuccin-latte table td,html.theme--catppuccin-latte table th{vertical-align:top}html.theme--catppuccin-latte table td:not([align]),html.theme--catppuccin-latte table th:not([align]){text-align:inherit}html.theme--catppuccin-latte table th{color:#41445a}html.theme--catppuccin-latte .box{background-color:#bcc0cc;border-radius:8px;box-shadow:none;color:#4c4f69;display:block;padding:1.25rem}html.theme--catppuccin-latte a.box:hover,html.theme--catppuccin-latte a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #1e66f5}html.theme--catppuccin-latte a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1e66f5}html.theme--catppuccin-latte .button{background-color:#e6e9ef;border-color:#fff;border-width:1px;color:#1e66f5;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--catppuccin-latte .button strong{color:inherit}html.theme--catppuccin-latte .button .icon,html.theme--catppuccin-latte .button .icon.is-small,html.theme--catppuccin-latte .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--catppuccin-latte .button .icon.is-medium,html.theme--catppuccin-latte .button .icon.is-large{height:1.5em;width:1.5em}html.theme--catppuccin-latte .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--catppuccin-latte .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-latte .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-latte .button:hover,html.theme--catppuccin-latte .button.is-hovered{border-color:#9ca0b0;color:#41445a}html.theme--catppuccin-latte .button:focus,html.theme--catppuccin-latte .button.is-focused{border-color:#9ca0b0;color:#0b57ef}html.theme--catppuccin-latte .button:focus:not(:active),html.theme--catppuccin-latte .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .button:active,html.theme--catppuccin-latte .button.is-active{border-color:#bcc0cc;color:#41445a}html.theme--catppuccin-latte .button.is-text{background-color:transparent;border-color:transparent;color:#4c4f69;text-decoration:underline}html.theme--catppuccin-latte .button.is-text:hover,html.theme--catppuccin-latte .button.is-text.is-hovered,html.theme--catppuccin-latte .button.is-text:focus,html.theme--catppuccin-latte .button.is-text.is-focused{background-color:#e6e9ef;color:#41445a}html.theme--catppuccin-latte .button.is-text:active,html.theme--catppuccin-latte .button.is-text.is-active{background-color:#d6dbe5;color:#41445a}html.theme--catppuccin-latte .button.is-text[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--catppuccin-latte .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#1e66f5;text-decoration:none}html.theme--catppuccin-latte .button.is-ghost:hover,html.theme--catppuccin-latte .button.is-ghost.is-hovered{color:#1e66f5;text-decoration:underline}html.theme--catppuccin-latte .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white:hover,html.theme--catppuccin-latte .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white:focus,html.theme--catppuccin-latte .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white:focus:not(:active),html.theme--catppuccin-latte .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-latte .button.is-white:active,html.theme--catppuccin-latte .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--catppuccin-latte .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .button.is-white.is-inverted:hover,html.theme--catppuccin-latte .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--catppuccin-latte .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-latte .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-white.is-outlined:hover,html.theme--catppuccin-latte .button.is-white.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-white.is-outlined:focus,html.theme--catppuccin-latte .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-white.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-white.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-latte .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-black:hover,html.theme--catppuccin-latte .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-black:focus,html.theme--catppuccin-latte .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-black:focus:not(:active),html.theme--catppuccin-latte .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-latte .button.is-black:active,html.theme--catppuccin-latte .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-black[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--catppuccin-latte .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black.is-inverted:hover,html.theme--catppuccin-latte .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black.is-outlined:hover,html.theme--catppuccin-latte .button.is-black.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-black.is-outlined:focus,html.theme--catppuccin-latte .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-latte .button.is-black.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-black.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light:hover,html.theme--catppuccin-latte .button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light:focus,html.theme--catppuccin-latte .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light:focus:not(:active),html.theme--catppuccin-latte .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-latte .button.is-light:active,html.theme--catppuccin-latte .button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}html.theme--catppuccin-latte .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-latte .button.is-light.is-inverted:hover,html.theme--catppuccin-latte .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-latte .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--catppuccin-latte .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}html.theme--catppuccin-latte .button.is-light.is-outlined:hover,html.theme--catppuccin-latte .button.is-light.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-light.is-outlined:focus,html.theme--catppuccin-latte .button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-latte .button.is-light.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-light.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .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--catppuccin-latte .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-latte .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--catppuccin-latte .button.is-light.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-latte .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .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--catppuccin-latte .button.is-dark,html.theme--catppuccin-latte .content kbd.button{background-color:#ccd0da;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark:hover,html.theme--catppuccin-latte .content kbd.button:hover,html.theme--catppuccin-latte .button.is-dark.is-hovered,html.theme--catppuccin-latte .content kbd.button.is-hovered{background-color:#c5c9d5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark:focus,html.theme--catppuccin-latte .content kbd.button:focus,html.theme--catppuccin-latte .button.is-dark.is-focused,html.theme--catppuccin-latte .content kbd.button.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark:focus:not(:active),html.theme--catppuccin-latte .content kbd.button:focus:not(:active),html.theme--catppuccin-latte .button.is-dark.is-focused:not(:active),html.theme--catppuccin-latte .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(204,208,218,0.25)}html.theme--catppuccin-latte .button.is-dark:active,html.theme--catppuccin-latte .content kbd.button:active,html.theme--catppuccin-latte .button.is-dark.is-active,html.theme--catppuccin-latte .content kbd.button.is-active{background-color:#bdc2cf;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark[disabled],html.theme--catppuccin-latte .content kbd.button[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-dark,fieldset[disabled] html.theme--catppuccin-latte .content kbd.button{background-color:#ccd0da;border-color:#ccd0da;box-shadow:none}html.theme--catppuccin-latte .button.is-dark.is-inverted,html.theme--catppuccin-latte .content kbd.button.is-inverted{background-color:rgba(0,0,0,0.7);color:#ccd0da}html.theme--catppuccin-latte .button.is-dark.is-inverted:hover,html.theme--catppuccin-latte .content kbd.button.is-inverted:hover,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-hovered,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark.is-inverted[disabled],html.theme--catppuccin-latte .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-dark.is-inverted,fieldset[disabled] html.theme--catppuccin-latte .content kbd.button.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ccd0da}html.theme--catppuccin-latte .button.is-dark.is-loading::after,html.theme--catppuccin-latte .content kbd.button.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-latte .button.is-dark.is-outlined,html.theme--catppuccin-latte .content kbd.button.is-outlined{background-color:transparent;border-color:#ccd0da;color:#ccd0da}html.theme--catppuccin-latte .button.is-dark.is-outlined:hover,html.theme--catppuccin-latte .content kbd.button.is-outlined:hover,html.theme--catppuccin-latte .button.is-dark.is-outlined.is-hovered,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-dark.is-outlined:focus,html.theme--catppuccin-latte .content kbd.button.is-outlined:focus,html.theme--catppuccin-latte .button.is-dark.is-outlined.is-focused,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-focused{background-color:#ccd0da;border-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark.is-outlined.is-loading::after,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #ccd0da #ccd0da !important}html.theme--catppuccin-latte .button.is-dark.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-dark.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .content kbd.button.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-latte .content kbd.button.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--catppuccin-latte .button.is-dark.is-outlined[disabled],html.theme--catppuccin-latte .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-dark.is-outlined,fieldset[disabled] html.theme--catppuccin-latte .content kbd.button.is-outlined{background-color:transparent;border-color:#ccd0da;box-shadow:none;color:#ccd0da}html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ccd0da}html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ccd0da #ccd0da !important}html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined[disabled],html.theme--catppuccin-latte .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-latte .content kbd.button.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--catppuccin-latte .button.is-primary,html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink{background-color:#1e66f5;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-primary:hover,html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink:hover,html.theme--catppuccin-latte .button.is-primary.is-hovered,html.theme--catppuccin-latte .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#125ef4;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-primary:focus,html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink:focus,html.theme--catppuccin-latte .button.is-primary.is-focused,html.theme--catppuccin-latte .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-primary:focus:not(:active),html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--catppuccin-latte .button.is-primary.is-focused:not(:active),html.theme--catppuccin-latte .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .button.is-primary:active,html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink:active,html.theme--catppuccin-latte .button.is-primary.is-active,html.theme--catppuccin-latte .docstring>section>a.button.is-active.docs-sourcelink{background-color:#0b57ef;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-primary[disabled],html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-primary,fieldset[disabled] html.theme--catppuccin-latte .docstring>section>a.button.docs-sourcelink{background-color:#1e66f5;border-color:#1e66f5;box-shadow:none}html.theme--catppuccin-latte .button.is-primary.is-inverted,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .button.is-primary.is-inverted:hover,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-hovered,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-primary.is-inverted[disabled],html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-primary.is-inverted,fieldset[disabled] html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#1e66f5}html.theme--catppuccin-latte .button.is-primary.is-loading::after,html.theme--catppuccin-latte .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-primary.is-outlined,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#1e66f5;color:#1e66f5}html.theme--catppuccin-latte .button.is-primary.is-outlined:hover,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-latte .button.is-primary.is-outlined.is-hovered,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-latte .button.is-primary.is-outlined:focus,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-latte .button.is-primary.is-outlined.is-focused,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#1e66f5;border-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .button.is-primary.is-outlined.is-loading::after,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #1e66f5 #1e66f5 !important}html.theme--catppuccin-latte .button.is-primary.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-latte .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-latte .button.is-primary.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-latte .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-primary.is-outlined[disabled],html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-primary.is-outlined,fieldset[disabled] html.theme--catppuccin-latte .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#1e66f5;box-shadow:none;color:#1e66f5}html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #1e66f5 #1e66f5 !important}html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined[disabled],html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-latte .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-primary.is-light,html.theme--catppuccin-latte .docstring>section>a.button.is-light.docs-sourcelink{background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .button.is-primary.is-light:hover,html.theme--catppuccin-latte .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--catppuccin-latte .button.is-primary.is-light.is-hovered,html.theme--catppuccin-latte .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#dfe9fe;border-color:transparent;color:#0a52e1}html.theme--catppuccin-latte .button.is-primary.is-light:active,html.theme--catppuccin-latte .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--catppuccin-latte .button.is-primary.is-light.is-active,html.theme--catppuccin-latte .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d3e1fd;border-color:transparent;color:#0a52e1}html.theme--catppuccin-latte .button.is-link{background-color:#1e66f5;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-link:hover,html.theme--catppuccin-latte .button.is-link.is-hovered{background-color:#125ef4;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-link:focus,html.theme--catppuccin-latte .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-link:focus:not(:active),html.theme--catppuccin-latte .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .button.is-link:active,html.theme--catppuccin-latte .button.is-link.is-active{background-color:#0b57ef;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-link[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-link{background-color:#1e66f5;border-color:#1e66f5;box-shadow:none}html.theme--catppuccin-latte .button.is-link.is-inverted{background-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .button.is-link.is-inverted:hover,html.theme--catppuccin-latte .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1e66f5}html.theme--catppuccin-latte .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-link.is-outlined{background-color:transparent;border-color:#1e66f5;color:#1e66f5}html.theme--catppuccin-latte .button.is-link.is-outlined:hover,html.theme--catppuccin-latte .button.is-link.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-link.is-outlined:focus,html.theme--catppuccin-latte .button.is-link.is-outlined.is-focused{background-color:#1e66f5;border-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1e66f5 #1e66f5 !important}html.theme--catppuccin-latte .button.is-link.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-link.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-link.is-outlined{background-color:transparent;border-color:#1e66f5;box-shadow:none;color:#1e66f5}html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1e66f5 #1e66f5 !important}html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-link.is-light{background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .button.is-link.is-light:hover,html.theme--catppuccin-latte .button.is-link.is-light.is-hovered{background-color:#dfe9fe;border-color:transparent;color:#0a52e1}html.theme--catppuccin-latte .button.is-link.is-light:active,html.theme--catppuccin-latte .button.is-link.is-light.is-active{background-color:#d3e1fd;border-color:transparent;color:#0a52e1}html.theme--catppuccin-latte .button.is-info{background-color:#179299;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-info:hover,html.theme--catppuccin-latte .button.is-info.is-hovered{background-color:#15878e;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-info:focus,html.theme--catppuccin-latte .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-info:focus:not(:active),html.theme--catppuccin-latte .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(23,146,153,0.25)}html.theme--catppuccin-latte .button.is-info:active,html.theme--catppuccin-latte .button.is-info.is-active{background-color:#147d83;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-info[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-info{background-color:#179299;border-color:#179299;box-shadow:none}html.theme--catppuccin-latte .button.is-info.is-inverted{background-color:#fff;color:#179299}html.theme--catppuccin-latte .button.is-info.is-inverted:hover,html.theme--catppuccin-latte .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#179299}html.theme--catppuccin-latte .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-info.is-outlined{background-color:transparent;border-color:#179299;color:#179299}html.theme--catppuccin-latte .button.is-info.is-outlined:hover,html.theme--catppuccin-latte .button.is-info.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-info.is-outlined:focus,html.theme--catppuccin-latte .button.is-info.is-outlined.is-focused{background-color:#179299;border-color:#179299;color:#fff}html.theme--catppuccin-latte .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #179299 #179299 !important}html.theme--catppuccin-latte .button.is-info.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-info.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-info.is-outlined{background-color:transparent;border-color:#179299;box-shadow:none;color:#179299}html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#179299}html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #179299 #179299 !important}html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-info.is-light{background-color:#edfcfc;color:#1cb2ba}html.theme--catppuccin-latte .button.is-info.is-light:hover,html.theme--catppuccin-latte .button.is-info.is-light.is-hovered{background-color:#e2f9fb;border-color:transparent;color:#1cb2ba}html.theme--catppuccin-latte .button.is-info.is-light:active,html.theme--catppuccin-latte .button.is-info.is-light.is-active{background-color:#d7f7f9;border-color:transparent;color:#1cb2ba}html.theme--catppuccin-latte .button.is-success{background-color:#40a02b;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-success:hover,html.theme--catppuccin-latte .button.is-success.is-hovered{background-color:#3c9628;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-success:focus,html.theme--catppuccin-latte .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-success:focus:not(:active),html.theme--catppuccin-latte .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(64,160,43,0.25)}html.theme--catppuccin-latte .button.is-success:active,html.theme--catppuccin-latte .button.is-success.is-active{background-color:#388c26;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-success[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-success{background-color:#40a02b;border-color:#40a02b;box-shadow:none}html.theme--catppuccin-latte .button.is-success.is-inverted{background-color:#fff;color:#40a02b}html.theme--catppuccin-latte .button.is-success.is-inverted:hover,html.theme--catppuccin-latte .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#40a02b}html.theme--catppuccin-latte .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-success.is-outlined{background-color:transparent;border-color:#40a02b;color:#40a02b}html.theme--catppuccin-latte .button.is-success.is-outlined:hover,html.theme--catppuccin-latte .button.is-success.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-success.is-outlined:focus,html.theme--catppuccin-latte .button.is-success.is-outlined.is-focused{background-color:#40a02b;border-color:#40a02b;color:#fff}html.theme--catppuccin-latte .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #40a02b #40a02b !important}html.theme--catppuccin-latte .button.is-success.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-success.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-success.is-outlined{background-color:transparent;border-color:#40a02b;box-shadow:none;color:#40a02b}html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#40a02b}html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #40a02b #40a02b !important}html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-success.is-light{background-color:#f1fbef;color:#40a12b}html.theme--catppuccin-latte .button.is-success.is-light:hover,html.theme--catppuccin-latte .button.is-success.is-light.is-hovered{background-color:#e8f8e5;border-color:transparent;color:#40a12b}html.theme--catppuccin-latte .button.is-success.is-light:active,html.theme--catppuccin-latte .button.is-success.is-light.is-active{background-color:#e0f5db;border-color:transparent;color:#40a12b}html.theme--catppuccin-latte .button.is-warning{background-color:#df8e1d;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-warning:hover,html.theme--catppuccin-latte .button.is-warning.is-hovered{background-color:#d4871c;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-warning:focus,html.theme--catppuccin-latte .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-warning:focus:not(:active),html.theme--catppuccin-latte .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(223,142,29,0.25)}html.theme--catppuccin-latte .button.is-warning:active,html.theme--catppuccin-latte .button.is-warning.is-active{background-color:#c8801a;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-warning[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-warning{background-color:#df8e1d;border-color:#df8e1d;box-shadow:none}html.theme--catppuccin-latte .button.is-warning.is-inverted{background-color:#fff;color:#df8e1d}html.theme--catppuccin-latte .button.is-warning.is-inverted:hover,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#df8e1d}html.theme--catppuccin-latte .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-warning.is-outlined{background-color:transparent;border-color:#df8e1d;color:#df8e1d}html.theme--catppuccin-latte .button.is-warning.is-outlined:hover,html.theme--catppuccin-latte .button.is-warning.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-warning.is-outlined:focus,html.theme--catppuccin-latte .button.is-warning.is-outlined.is-focused{background-color:#df8e1d;border-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #df8e1d #df8e1d !important}html.theme--catppuccin-latte .button.is-warning.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-warning.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-warning.is-outlined{background-color:transparent;border-color:#df8e1d;box-shadow:none;color:#df8e1d}html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#df8e1d}html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #df8e1d #df8e1d !important}html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-warning.is-light{background-color:#fdf6ed;color:#9e6515}html.theme--catppuccin-latte .button.is-warning.is-light:hover,html.theme--catppuccin-latte .button.is-warning.is-light.is-hovered{background-color:#fbf1e2;border-color:transparent;color:#9e6515}html.theme--catppuccin-latte .button.is-warning.is-light:active,html.theme--catppuccin-latte .button.is-warning.is-light.is-active{background-color:#faebd6;border-color:transparent;color:#9e6515}html.theme--catppuccin-latte .button.is-danger{background-color:#d20f39;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-danger:hover,html.theme--catppuccin-latte .button.is-danger.is-hovered{background-color:#c60e36;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-danger:focus,html.theme--catppuccin-latte .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-danger:focus:not(:active),html.theme--catppuccin-latte .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(210,15,57,0.25)}html.theme--catppuccin-latte .button.is-danger:active,html.theme--catppuccin-latte .button.is-danger.is-active{background-color:#ba0d33;border-color:transparent;color:#fff}html.theme--catppuccin-latte .button.is-danger[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-danger{background-color:#d20f39;border-color:#d20f39;box-shadow:none}html.theme--catppuccin-latte .button.is-danger.is-inverted{background-color:#fff;color:#d20f39}html.theme--catppuccin-latte .button.is-danger.is-inverted:hover,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-latte .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#d20f39}html.theme--catppuccin-latte .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-danger.is-outlined{background-color:transparent;border-color:#d20f39;color:#d20f39}html.theme--catppuccin-latte .button.is-danger.is-outlined:hover,html.theme--catppuccin-latte .button.is-danger.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-danger.is-outlined:focus,html.theme--catppuccin-latte .button.is-danger.is-outlined.is-focused{background-color:#d20f39;border-color:#d20f39;color:#fff}html.theme--catppuccin-latte .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #d20f39 #d20f39 !important}html.theme--catppuccin-latte .button.is-danger.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-danger.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-latte .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-danger.is-outlined{background-color:transparent;border-color:#d20f39;box-shadow:none;color:#d20f39}html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined:hover,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined:focus,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#d20f39}html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #d20f39 #d20f39 !important}html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-latte .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-latte .button.is-danger.is-light{background-color:#feecf0;color:#e9113f}html.theme--catppuccin-latte .button.is-danger.is-light:hover,html.theme--catppuccin-latte .button.is-danger.is-light.is-hovered{background-color:#fde0e6;border-color:transparent;color:#e9113f}html.theme--catppuccin-latte .button.is-danger.is-light:active,html.theme--catppuccin-latte .button.is-danger.is-light.is-active{background-color:#fcd4dd;border-color:transparent;color:#e9113f}html.theme--catppuccin-latte .button.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--catppuccin-latte .button.is-small:not(.is-rounded),html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--catppuccin-latte .button.is-normal{font-size:1rem}html.theme--catppuccin-latte .button.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .button.is-large{font-size:1.5rem}html.theme--catppuccin-latte .button[disabled],fieldset[disabled] html.theme--catppuccin-latte .button{background-color:#9ca0b0;border-color:#acb0be;box-shadow:none;opacity:.5}html.theme--catppuccin-latte .button.is-fullwidth{display:flex;width:100%}html.theme--catppuccin-latte .button.is-loading{color:transparent !important;pointer-events:none}html.theme--catppuccin-latte .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--catppuccin-latte .button.is-static{background-color:#e6e9ef;border-color:#acb0be;color:#8c8fa1;box-shadow:none;pointer-events:none}html.theme--catppuccin-latte .button.is-rounded,html.theme--catppuccin-latte #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--catppuccin-latte .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-latte .buttons .button{margin-bottom:0.5rem}html.theme--catppuccin-latte .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--catppuccin-latte .buttons:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-latte .buttons:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-latte .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--catppuccin-latte .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--catppuccin-latte .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--catppuccin-latte .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--catppuccin-latte .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-latte .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--catppuccin-latte .buttons.has-addons .button:last-child{margin-right:0}html.theme--catppuccin-latte .buttons.has-addons .button:hover,html.theme--catppuccin-latte .buttons.has-addons .button.is-hovered{z-index:2}html.theme--catppuccin-latte .buttons.has-addons .button:focus,html.theme--catppuccin-latte .buttons.has-addons .button.is-focused,html.theme--catppuccin-latte .buttons.has-addons .button:active,html.theme--catppuccin-latte .buttons.has-addons .button.is-active,html.theme--catppuccin-latte .buttons.has-addons .button.is-selected{z-index:3}html.theme--catppuccin-latte .buttons.has-addons .button:focus:hover,html.theme--catppuccin-latte .buttons.has-addons .button.is-focused:hover,html.theme--catppuccin-latte .buttons.has-addons .button:active:hover,html.theme--catppuccin-latte .buttons.has-addons .button.is-active:hover,html.theme--catppuccin-latte .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--catppuccin-latte .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .buttons.is-centered{justify-content:center}html.theme--catppuccin-latte .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--catppuccin-latte .buttons.is-right{justify-content:flex-end}html.theme--catppuccin-latte .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--catppuccin-latte .button.is-responsive.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--catppuccin-latte .button.is-responsive,html.theme--catppuccin-latte .button.is-responsive.is-normal{font-size:.65625rem}html.theme--catppuccin-latte .button.is-responsive.is-medium{font-size:.75rem}html.theme--catppuccin-latte .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .button.is-responsive.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--catppuccin-latte .button.is-responsive,html.theme--catppuccin-latte .button.is-responsive.is-normal{font-size:.75rem}html.theme--catppuccin-latte .button.is-responsive.is-medium{font-size:1rem}html.theme--catppuccin-latte .button.is-responsive.is-large{font-size:1.25rem}}html.theme--catppuccin-latte .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--catppuccin-latte .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--catppuccin-latte .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--catppuccin-latte .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--catppuccin-latte .content li+li{margin-top:0.25em}html.theme--catppuccin-latte .content p:not(:last-child),html.theme--catppuccin-latte .content dl:not(:last-child),html.theme--catppuccin-latte .content ol:not(:last-child),html.theme--catppuccin-latte .content ul:not(:last-child),html.theme--catppuccin-latte .content blockquote:not(:last-child),html.theme--catppuccin-latte .content pre:not(:last-child),html.theme--catppuccin-latte .content table:not(:last-child){margin-bottom:1em}html.theme--catppuccin-latte .content h1,html.theme--catppuccin-latte .content h2,html.theme--catppuccin-latte .content h3,html.theme--catppuccin-latte .content h4,html.theme--catppuccin-latte .content h5,html.theme--catppuccin-latte .content h6{color:#4c4f69;font-weight:600;line-height:1.125}html.theme--catppuccin-latte .content h1{font-size:2em;margin-bottom:0.5em}html.theme--catppuccin-latte .content h1:not(:first-child){margin-top:1em}html.theme--catppuccin-latte .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--catppuccin-latte .content h2:not(:first-child){margin-top:1.1428em}html.theme--catppuccin-latte .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--catppuccin-latte .content h3:not(:first-child){margin-top:1.3333em}html.theme--catppuccin-latte .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--catppuccin-latte .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--catppuccin-latte .content h6{font-size:1em;margin-bottom:1em}html.theme--catppuccin-latte .content blockquote{background-color:#e6e9ef;border-left:5px solid #acb0be;padding:1.25em 1.5em}html.theme--catppuccin-latte .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-latte .content ol:not([type]){list-style-type:decimal}html.theme--catppuccin-latte .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--catppuccin-latte .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--catppuccin-latte .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--catppuccin-latte .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--catppuccin-latte .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-latte .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--catppuccin-latte .content ul ul ul{list-style-type:square}html.theme--catppuccin-latte .content dd{margin-left:2em}html.theme--catppuccin-latte .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--catppuccin-latte .content figure:not(:first-child){margin-top:2em}html.theme--catppuccin-latte .content figure:not(:last-child){margin-bottom:2em}html.theme--catppuccin-latte .content figure img{display:inline-block}html.theme--catppuccin-latte .content figure figcaption{font-style:italic}html.theme--catppuccin-latte .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--catppuccin-latte .content sup,html.theme--catppuccin-latte .content sub{font-size:75%}html.theme--catppuccin-latte .content table{width:100%}html.theme--catppuccin-latte .content table td,html.theme--catppuccin-latte .content table th{border:1px solid #acb0be;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-latte .content table th{color:#41445a}html.theme--catppuccin-latte .content table th:not([align]){text-align:inherit}html.theme--catppuccin-latte .content table thead td,html.theme--catppuccin-latte .content table thead th{border-width:0 0 2px;color:#41445a}html.theme--catppuccin-latte .content table tfoot td,html.theme--catppuccin-latte .content table tfoot th{border-width:2px 0 0;color:#41445a}html.theme--catppuccin-latte .content table tbody tr:last-child td,html.theme--catppuccin-latte .content table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-latte .content .tabs li+li{margin-top:0}html.theme--catppuccin-latte .content.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--catppuccin-latte .content.is-normal{font-size:1rem}html.theme--catppuccin-latte .content.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .content.is-large{font-size:1.5rem}html.theme--catppuccin-latte .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--catppuccin-latte .icon.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--catppuccin-latte .icon.is-medium{height:2rem;width:2rem}html.theme--catppuccin-latte .icon.is-large{height:3rem;width:3rem}html.theme--catppuccin-latte .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--catppuccin-latte .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--catppuccin-latte .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--catppuccin-latte .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--catppuccin-latte div.icon-text{display:flex}html.theme--catppuccin-latte .image,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--catppuccin-latte .image img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--catppuccin-latte .image img.is-rounded,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--catppuccin-latte .image.is-fullwidth,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--catppuccin-latte .image.is-square img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-latte .image.is-square .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-latte .image.is-1by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-latte .image.is-1by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-latte .image.is-5by4 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-latte .image.is-5by4 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-latte .image.is-4by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-latte .image.is-4by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-latte .image.is-3by2 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-latte .image.is-3by2 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-latte .image.is-5by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-latte .image.is-5by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-latte .image.is-16by9 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-latte .image.is-16by9 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-latte .image.is-2by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-latte .image.is-2by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-latte .image.is-3by1 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-latte .image.is-3by1 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-latte .image.is-4by5 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-latte .image.is-4by5 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-latte .image.is-3by4 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-latte .image.is-3by4 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-latte .image.is-2by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-latte .image.is-2by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-latte .image.is-3by5 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-latte .image.is-3by5 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-latte .image.is-9by16 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-latte .image.is-9by16 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-latte .image.is-1by2 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-latte .image.is-1by2 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-latte .image.is-1by3 img,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-latte .image.is-1by3 .has-ratio,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--catppuccin-latte .image.is-square,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--catppuccin-latte .image.is-1by1,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--catppuccin-latte .image.is-5by4,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--catppuccin-latte .image.is-4by3,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--catppuccin-latte .image.is-3by2,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--catppuccin-latte .image.is-5by3,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--catppuccin-latte .image.is-16by9,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--catppuccin-latte .image.is-2by1,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--catppuccin-latte .image.is-3by1,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--catppuccin-latte .image.is-4by5,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--catppuccin-latte .image.is-3by4,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--catppuccin-latte .image.is-2by3,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--catppuccin-latte .image.is-3by5,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--catppuccin-latte .image.is-9by16,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--catppuccin-latte .image.is-1by2,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--catppuccin-latte .image.is-1by3,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--catppuccin-latte .image.is-16x16,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--catppuccin-latte .image.is-24x24,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--catppuccin-latte .image.is-32x32,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--catppuccin-latte .image.is-48x48,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--catppuccin-latte .image.is-64x64,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--catppuccin-latte .image.is-96x96,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--catppuccin-latte .image.is-128x128,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--catppuccin-latte .notification{background-color:#e6e9ef;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--catppuccin-latte .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-latte .notification strong{color:currentColor}html.theme--catppuccin-latte .notification code,html.theme--catppuccin-latte .notification pre{background:#fff}html.theme--catppuccin-latte .notification pre code{background:transparent}html.theme--catppuccin-latte .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--catppuccin-latte .notification .title,html.theme--catppuccin-latte .notification .subtitle,html.theme--catppuccin-latte .notification .content{color:currentColor}html.theme--catppuccin-latte .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .notification.is-dark,html.theme--catppuccin-latte .content kbd.notification{background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .notification.is-primary,html.theme--catppuccin-latte .docstring>section>a.notification.docs-sourcelink{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .notification.is-primary.is-light,html.theme--catppuccin-latte .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .notification.is-link{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .notification.is-link.is-light{background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .notification.is-info{background-color:#179299;color:#fff}html.theme--catppuccin-latte .notification.is-info.is-light{background-color:#edfcfc;color:#1cb2ba}html.theme--catppuccin-latte .notification.is-success{background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .notification.is-success.is-light{background-color:#f1fbef;color:#40a12b}html.theme--catppuccin-latte .notification.is-warning{background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .notification.is-warning.is-light{background-color:#fdf6ed;color:#9e6515}html.theme--catppuccin-latte .notification.is-danger{background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .notification.is-danger.is-light{background-color:#feecf0;color:#e9113f}html.theme--catppuccin-latte .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--catppuccin-latte .progress::-webkit-progress-bar{background-color:#bcc0cc}html.theme--catppuccin-latte .progress::-webkit-progress-value{background-color:#8c8fa1}html.theme--catppuccin-latte .progress::-moz-progress-bar{background-color:#8c8fa1}html.theme--catppuccin-latte .progress::-ms-fill{background-color:#8c8fa1;border:none}html.theme--catppuccin-latte .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--catppuccin-latte .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--catppuccin-latte .progress.is-white::-ms-fill{background-color:#fff}html.theme--catppuccin-latte .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--catppuccin-latte .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--catppuccin-latte .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--catppuccin-latte .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-light::-webkit-progress-value{background-color:#f5f5f5}html.theme--catppuccin-latte .progress.is-light::-moz-progress-bar{background-color:#f5f5f5}html.theme--catppuccin-latte .progress.is-light::-ms-fill{background-color:#f5f5f5}html.theme--catppuccin-latte .progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-dark::-webkit-progress-value,html.theme--catppuccin-latte .content kbd.progress::-webkit-progress-value{background-color:#ccd0da}html.theme--catppuccin-latte .progress.is-dark::-moz-progress-bar,html.theme--catppuccin-latte .content kbd.progress::-moz-progress-bar{background-color:#ccd0da}html.theme--catppuccin-latte .progress.is-dark::-ms-fill,html.theme--catppuccin-latte .content kbd.progress::-ms-fill{background-color:#ccd0da}html.theme--catppuccin-latte .progress.is-dark:indeterminate,html.theme--catppuccin-latte .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #ccd0da 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-primary::-webkit-progress-value,html.theme--catppuccin-latte .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-primary::-moz-progress-bar,html.theme--catppuccin-latte .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-primary::-ms-fill,html.theme--catppuccin-latte .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-primary:indeterminate,html.theme--catppuccin-latte .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #1e66f5 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-link::-webkit-progress-value{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-link::-moz-progress-bar{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-link::-ms-fill{background-color:#1e66f5}html.theme--catppuccin-latte .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1e66f5 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-info::-webkit-progress-value{background-color:#179299}html.theme--catppuccin-latte .progress.is-info::-moz-progress-bar{background-color:#179299}html.theme--catppuccin-latte .progress.is-info::-ms-fill{background-color:#179299}html.theme--catppuccin-latte .progress.is-info:indeterminate{background-image:linear-gradient(to right, #179299 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-success::-webkit-progress-value{background-color:#40a02b}html.theme--catppuccin-latte .progress.is-success::-moz-progress-bar{background-color:#40a02b}html.theme--catppuccin-latte .progress.is-success::-ms-fill{background-color:#40a02b}html.theme--catppuccin-latte .progress.is-success:indeterminate{background-image:linear-gradient(to right, #40a02b 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-warning::-webkit-progress-value{background-color:#df8e1d}html.theme--catppuccin-latte .progress.is-warning::-moz-progress-bar{background-color:#df8e1d}html.theme--catppuccin-latte .progress.is-warning::-ms-fill{background-color:#df8e1d}html.theme--catppuccin-latte .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #df8e1d 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress.is-danger::-webkit-progress-value{background-color:#d20f39}html.theme--catppuccin-latte .progress.is-danger::-moz-progress-bar{background-color:#d20f39}html.theme--catppuccin-latte .progress.is-danger::-ms-fill{background-color:#d20f39}html.theme--catppuccin-latte .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #d20f39 30%, #bcc0cc 30%)}html.theme--catppuccin-latte .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#bcc0cc;background-image:linear-gradient(to right, #4c4f69 30%, #bcc0cc 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--catppuccin-latte .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--catppuccin-latte .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--catppuccin-latte .progress:indeterminate::-ms-fill{animation-name:none}html.theme--catppuccin-latte .progress.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--catppuccin-latte .progress.is-medium{height:1.25rem}html.theme--catppuccin-latte .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--catppuccin-latte .table{background-color:#bcc0cc;color:#4c4f69}html.theme--catppuccin-latte .table td,html.theme--catppuccin-latte .table th{border:1px solid #acb0be;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-latte .table td.is-white,html.theme--catppuccin-latte .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .table td.is-black,html.theme--catppuccin-latte .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .table td.is-light,html.theme--catppuccin-latte .table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .table td.is-dark,html.theme--catppuccin-latte .table th.is-dark{background-color:#ccd0da;border-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .table td.is-primary,html.theme--catppuccin-latte .table th.is-primary{background-color:#1e66f5;border-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .table td.is-link,html.theme--catppuccin-latte .table th.is-link{background-color:#1e66f5;border-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .table td.is-info,html.theme--catppuccin-latte .table th.is-info{background-color:#179299;border-color:#179299;color:#fff}html.theme--catppuccin-latte .table td.is-success,html.theme--catppuccin-latte .table th.is-success{background-color:#40a02b;border-color:#40a02b;color:#fff}html.theme--catppuccin-latte .table td.is-warning,html.theme--catppuccin-latte .table th.is-warning{background-color:#df8e1d;border-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .table td.is-danger,html.theme--catppuccin-latte .table th.is-danger{background-color:#d20f39;border-color:#d20f39;color:#fff}html.theme--catppuccin-latte .table td.is-narrow,html.theme--catppuccin-latte .table th.is-narrow{white-space:nowrap;width:1%}html.theme--catppuccin-latte .table td.is-selected,html.theme--catppuccin-latte .table th.is-selected{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .table td.is-selected a,html.theme--catppuccin-latte .table td.is-selected strong,html.theme--catppuccin-latte .table th.is-selected a,html.theme--catppuccin-latte .table th.is-selected strong{color:currentColor}html.theme--catppuccin-latte .table td.is-vcentered,html.theme--catppuccin-latte .table th.is-vcentered{vertical-align:middle}html.theme--catppuccin-latte .table th{color:#41445a}html.theme--catppuccin-latte .table th:not([align]){text-align:left}html.theme--catppuccin-latte .table tr.is-selected{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .table tr.is-selected a,html.theme--catppuccin-latte .table tr.is-selected strong{color:currentColor}html.theme--catppuccin-latte .table tr.is-selected td,html.theme--catppuccin-latte .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--catppuccin-latte .table thead{background-color:rgba(0,0,0,0)}html.theme--catppuccin-latte .table thead td,html.theme--catppuccin-latte .table thead th{border-width:0 0 2px;color:#41445a}html.theme--catppuccin-latte .table tfoot{background-color:rgba(0,0,0,0)}html.theme--catppuccin-latte .table tfoot td,html.theme--catppuccin-latte .table tfoot th{border-width:2px 0 0;color:#41445a}html.theme--catppuccin-latte .table tbody{background-color:rgba(0,0,0,0)}html.theme--catppuccin-latte .table tbody tr:last-child td,html.theme--catppuccin-latte .table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-latte .table.is-bordered td,html.theme--catppuccin-latte .table.is-bordered th{border-width:1px}html.theme--catppuccin-latte .table.is-bordered tr:last-child td,html.theme--catppuccin-latte .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--catppuccin-latte .table.is-fullwidth{width:100%}html.theme--catppuccin-latte .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#ccd0da}html.theme--catppuccin-latte .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#ccd0da}html.theme--catppuccin-latte .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#d2d5de}html.theme--catppuccin-latte .table.is-narrow td,html.theme--catppuccin-latte .table.is-narrow th{padding:0.25em 0.5em}html.theme--catppuccin-latte .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#ccd0da}html.theme--catppuccin-latte .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--catppuccin-latte .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-latte .tags .tag,html.theme--catppuccin-latte .tags .content kbd,html.theme--catppuccin-latte .content .tags kbd,html.theme--catppuccin-latte .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--catppuccin-latte .tags .tag:not(:last-child),html.theme--catppuccin-latte .tags .content kbd:not(:last-child),html.theme--catppuccin-latte .content .tags kbd:not(:last-child),html.theme--catppuccin-latte .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--catppuccin-latte .tags:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-latte .tags:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-latte .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--catppuccin-latte .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-latte .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-latte .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--catppuccin-latte .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--catppuccin-latte .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-latte .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-latte .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--catppuccin-latte .tags.is-centered{justify-content:center}html.theme--catppuccin-latte .tags.is-centered .tag,html.theme--catppuccin-latte .tags.is-centered .content kbd,html.theme--catppuccin-latte .content .tags.is-centered kbd,html.theme--catppuccin-latte .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--catppuccin-latte .tags.is-right{justify-content:flex-end}html.theme--catppuccin-latte .tags.is-right .tag:not(:first-child),html.theme--catppuccin-latte .tags.is-right .content kbd:not(:first-child),html.theme--catppuccin-latte .content .tags.is-right kbd:not(:first-child),html.theme--catppuccin-latte .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--catppuccin-latte .tags.is-right .tag:not(:last-child),html.theme--catppuccin-latte .tags.is-right .content kbd:not(:last-child),html.theme--catppuccin-latte .content .tags.is-right kbd:not(:last-child),html.theme--catppuccin-latte .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--catppuccin-latte .tags.has-addons .tag,html.theme--catppuccin-latte .tags.has-addons .content kbd,html.theme--catppuccin-latte .content .tags.has-addons kbd,html.theme--catppuccin-latte .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--catppuccin-latte .tags.has-addons .tag:not(:first-child),html.theme--catppuccin-latte .tags.has-addons .content kbd:not(:first-child),html.theme--catppuccin-latte .content .tags.has-addons kbd:not(:first-child),html.theme--catppuccin-latte .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--catppuccin-latte .tags.has-addons .tag:not(:last-child),html.theme--catppuccin-latte .tags.has-addons .content kbd:not(:last-child),html.theme--catppuccin-latte .content .tags.has-addons kbd:not(:last-child),html.theme--catppuccin-latte .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--catppuccin-latte .tag:not(body),html.theme--catppuccin-latte .content kbd:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#e6e9ef;border-radius:.4em;color:#4c4f69;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--catppuccin-latte .tag:not(body) .delete,html.theme--catppuccin-latte .content kbd:not(body) .delete,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--catppuccin-latte .tag.is-white:not(body),html.theme--catppuccin-latte .content kbd.is-white:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .tag.is-black:not(body),html.theme--catppuccin-latte .content kbd.is-black:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .tag.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .tag.is-dark:not(body),html.theme--catppuccin-latte .content kbd:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--catppuccin-latte .content .docstring>section>kbd:not(body){background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .tag.is-primary:not(body),html.theme--catppuccin-latte .content kbd.is-primary:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body){background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .tag.is-primary.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-primary.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .tag.is-link:not(body),html.theme--catppuccin-latte .content kbd.is-link:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .tag.is-link.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-link.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#ebf2fe;color:#0a52e1}html.theme--catppuccin-latte .tag.is-info:not(body),html.theme--catppuccin-latte .content kbd.is-info:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#179299;color:#fff}html.theme--catppuccin-latte .tag.is-info.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-info.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#edfcfc;color:#1cb2ba}html.theme--catppuccin-latte .tag.is-success:not(body),html.theme--catppuccin-latte .content kbd.is-success:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .tag.is-success.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-success.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#f1fbef;color:#40a12b}html.theme--catppuccin-latte .tag.is-warning:not(body),html.theme--catppuccin-latte .content kbd.is-warning:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .tag.is-warning.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-warning.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fdf6ed;color:#9e6515}html.theme--catppuccin-latte .tag.is-danger:not(body),html.theme--catppuccin-latte .content kbd.is-danger:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .tag.is-danger.is-light:not(body),html.theme--catppuccin-latte .content kbd.is-danger.is-light:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#feecf0;color:#e9113f}html.theme--catppuccin-latte .tag.is-normal:not(body),html.theme--catppuccin-latte .content kbd.is-normal:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--catppuccin-latte .tag.is-medium:not(body),html.theme--catppuccin-latte .content kbd.is-medium:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--catppuccin-latte .tag.is-large:not(body),html.theme--catppuccin-latte .content kbd.is-large:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--catppuccin-latte .tag:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-latte .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--catppuccin-latte .tag:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-latte .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--catppuccin-latte .tag:not(body) .icon:first-child:last-child,html.theme--catppuccin-latte .content kbd:not(body) .icon:first-child:last-child,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--catppuccin-latte .tag.is-delete:not(body),html.theme--catppuccin-latte .content kbd.is-delete:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--catppuccin-latte .tag.is-delete:not(body)::before,html.theme--catppuccin-latte .content kbd.is-delete:not(body)::before,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--catppuccin-latte .tag.is-delete:not(body)::after,html.theme--catppuccin-latte .content kbd.is-delete:not(body)::after,html.theme--catppuccin-latte .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--catppuccin-latte .tag.is-delete:not(body)::before,html.theme--catppuccin-latte .content kbd.is-delete:not(body)::before,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--catppuccin-latte .tag.is-delete:not(body)::after,html.theme--catppuccin-latte .content kbd.is-delete:not(body)::after,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--catppuccin-latte .tag.is-delete:not(body):hover,html.theme--catppuccin-latte .content kbd.is-delete:not(body):hover,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--catppuccin-latte .tag.is-delete:not(body):focus,html.theme--catppuccin-latte .content kbd.is-delete:not(body):focus,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#d6dbe5}html.theme--catppuccin-latte .tag.is-delete:not(body):active,html.theme--catppuccin-latte .content kbd.is-delete:not(body):active,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#c7cedb}html.theme--catppuccin-latte .tag.is-rounded:not(body),html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--catppuccin-latte .content kbd.is-rounded:not(body),html.theme--catppuccin-latte #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--catppuccin-latte a.tag:hover,html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--catppuccin-latte .title,html.theme--catppuccin-latte .subtitle{word-break:break-word}html.theme--catppuccin-latte .title em,html.theme--catppuccin-latte .title span,html.theme--catppuccin-latte .subtitle em,html.theme--catppuccin-latte .subtitle span{font-weight:inherit}html.theme--catppuccin-latte .title sub,html.theme--catppuccin-latte .subtitle sub{font-size:.75em}html.theme--catppuccin-latte .title sup,html.theme--catppuccin-latte .subtitle sup{font-size:.75em}html.theme--catppuccin-latte .title .tag,html.theme--catppuccin-latte .title .content kbd,html.theme--catppuccin-latte .content .title kbd,html.theme--catppuccin-latte .title .docstring>section>a.docs-sourcelink,html.theme--catppuccin-latte .subtitle .tag,html.theme--catppuccin-latte .subtitle .content kbd,html.theme--catppuccin-latte .content .subtitle kbd,html.theme--catppuccin-latte .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--catppuccin-latte .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--catppuccin-latte .title strong{color:inherit;font-weight:inherit}html.theme--catppuccin-latte .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--catppuccin-latte .title.is-1{font-size:3rem}html.theme--catppuccin-latte .title.is-2{font-size:2.5rem}html.theme--catppuccin-latte .title.is-3{font-size:2rem}html.theme--catppuccin-latte .title.is-4{font-size:1.5rem}html.theme--catppuccin-latte .title.is-5{font-size:1.25rem}html.theme--catppuccin-latte .title.is-6{font-size:1rem}html.theme--catppuccin-latte .title.is-7{font-size:.75rem}html.theme--catppuccin-latte .subtitle{color:#9ca0b0;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--catppuccin-latte .subtitle strong{color:#9ca0b0;font-weight:600}html.theme--catppuccin-latte .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--catppuccin-latte .subtitle.is-1{font-size:3rem}html.theme--catppuccin-latte .subtitle.is-2{font-size:2.5rem}html.theme--catppuccin-latte .subtitle.is-3{font-size:2rem}html.theme--catppuccin-latte .subtitle.is-4{font-size:1.5rem}html.theme--catppuccin-latte .subtitle.is-5{font-size:1.25rem}html.theme--catppuccin-latte .subtitle.is-6{font-size:1rem}html.theme--catppuccin-latte .subtitle.is-7{font-size:.75rem}html.theme--catppuccin-latte .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--catppuccin-latte .number{align-items:center;background-color:#e6e9ef;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--catppuccin-latte .select select,html.theme--catppuccin-latte .textarea,html.theme--catppuccin-latte .input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input{background-color:#eff1f5;border-color:#acb0be;border-radius:.4em;color:#8c8fa1}html.theme--catppuccin-latte .select select::-moz-placeholder,html.theme--catppuccin-latte .textarea::-moz-placeholder,html.theme--catppuccin-latte .input::-moz-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--catppuccin-latte .select select::-webkit-input-placeholder,html.theme--catppuccin-latte .textarea::-webkit-input-placeholder,html.theme--catppuccin-latte .input::-webkit-input-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--catppuccin-latte .select select:-moz-placeholder,html.theme--catppuccin-latte .textarea:-moz-placeholder,html.theme--catppuccin-latte .input:-moz-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--catppuccin-latte .select select:-ms-input-placeholder,html.theme--catppuccin-latte .textarea:-ms-input-placeholder,html.theme--catppuccin-latte .input:-ms-input-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--catppuccin-latte .select select:hover,html.theme--catppuccin-latte .textarea:hover,html.theme--catppuccin-latte .input:hover,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:hover,html.theme--catppuccin-latte .select select.is-hovered,html.theme--catppuccin-latte .is-hovered.textarea,html.theme--catppuccin-latte .is-hovered.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#9ca0b0}html.theme--catppuccin-latte .select select:focus,html.theme--catppuccin-latte .textarea:focus,html.theme--catppuccin-latte .input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-latte .select select.is-focused,html.theme--catppuccin-latte .is-focused.textarea,html.theme--catppuccin-latte .is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .select select:active,html.theme--catppuccin-latte .textarea:active,html.theme--catppuccin-latte .input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-latte .select select.is-active,html.theme--catppuccin-latte .is-active.textarea,html.theme--catppuccin-latte .is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1e66f5;box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .select select[disabled],html.theme--catppuccin-latte .textarea[disabled],html.theme--catppuccin-latte .input[disabled],html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--catppuccin-latte .select select,fieldset[disabled] html.theme--catppuccin-latte .textarea,fieldset[disabled] html.theme--catppuccin-latte .input,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input{background-color:#9ca0b0;border-color:#e6e9ef;box-shadow:none;color:#616587}html.theme--catppuccin-latte .select select[disabled]::-moz-placeholder,html.theme--catppuccin-latte .textarea[disabled]::-moz-placeholder,html.theme--catppuccin-latte .input[disabled]::-moz-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .select select::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .textarea::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .input::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(97,101,135,0.3)}html.theme--catppuccin-latte .select select[disabled]::-webkit-input-placeholder,html.theme--catppuccin-latte .textarea[disabled]::-webkit-input-placeholder,html.theme--catppuccin-latte .input[disabled]::-webkit-input-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .input::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(97,101,135,0.3)}html.theme--catppuccin-latte .select select[disabled]:-moz-placeholder,html.theme--catppuccin-latte .textarea[disabled]:-moz-placeholder,html.theme--catppuccin-latte .input[disabled]:-moz-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .select select:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .textarea:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte .input:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(97,101,135,0.3)}html.theme--catppuccin-latte .select select[disabled]:-ms-input-placeholder,html.theme--catppuccin-latte .textarea[disabled]:-ms-input-placeholder,html.theme--catppuccin-latte .input[disabled]:-ms-input-placeholder,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .select select:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte .input:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(97,101,135,0.3)}html.theme--catppuccin-latte .textarea,html.theme--catppuccin-latte .input,html.theme--catppuccin-latte #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--catppuccin-latte .textarea[readonly],html.theme--catppuccin-latte .input[readonly],html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--catppuccin-latte .is-white.textarea,html.theme--catppuccin-latte .is-white.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--catppuccin-latte .is-white.textarea:focus,html.theme--catppuccin-latte .is-white.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--catppuccin-latte .is-white.is-focused.textarea,html.theme--catppuccin-latte .is-white.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-white.textarea:active,html.theme--catppuccin-latte .is-white.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--catppuccin-latte .is-white.is-active.textarea,html.theme--catppuccin-latte .is-white.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-latte .is-black.textarea,html.theme--catppuccin-latte .is-black.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--catppuccin-latte .is-black.textarea:focus,html.theme--catppuccin-latte .is-black.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--catppuccin-latte .is-black.is-focused.textarea,html.theme--catppuccin-latte .is-black.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-black.textarea:active,html.theme--catppuccin-latte .is-black.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--catppuccin-latte .is-black.is-active.textarea,html.theme--catppuccin-latte .is-black.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-latte .is-light.textarea,html.theme--catppuccin-latte .is-light.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}html.theme--catppuccin-latte .is-light.textarea:focus,html.theme--catppuccin-latte .is-light.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--catppuccin-latte .is-light.is-focused.textarea,html.theme--catppuccin-latte .is-light.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-light.textarea:active,html.theme--catppuccin-latte .is-light.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--catppuccin-latte .is-light.is-active.textarea,html.theme--catppuccin-latte .is-light.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-latte .is-dark.textarea,html.theme--catppuccin-latte .content kbd.textarea,html.theme--catppuccin-latte .is-dark.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--catppuccin-latte .content kbd.input{border-color:#ccd0da}html.theme--catppuccin-latte .is-dark.textarea:focus,html.theme--catppuccin-latte .content kbd.textarea:focus,html.theme--catppuccin-latte .is-dark.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--catppuccin-latte .content kbd.input:focus,html.theme--catppuccin-latte .is-dark.is-focused.textarea,html.theme--catppuccin-latte .content kbd.is-focused.textarea,html.theme--catppuccin-latte .is-dark.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .content kbd.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-dark.textarea:active,html.theme--catppuccin-latte .content kbd.textarea:active,html.theme--catppuccin-latte .is-dark.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--catppuccin-latte .content kbd.input:active,html.theme--catppuccin-latte .is-dark.is-active.textarea,html.theme--catppuccin-latte .content kbd.is-active.textarea,html.theme--catppuccin-latte .is-dark.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-latte .content kbd.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(204,208,218,0.25)}html.theme--catppuccin-latte .is-primary.textarea,html.theme--catppuccin-latte .docstring>section>a.textarea.docs-sourcelink,html.theme--catppuccin-latte .is-primary.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--catppuccin-latte .docstring>section>a.input.docs-sourcelink{border-color:#1e66f5}html.theme--catppuccin-latte .is-primary.textarea:focus,html.theme--catppuccin-latte .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--catppuccin-latte .is-primary.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--catppuccin-latte .docstring>section>a.input.docs-sourcelink:focus,html.theme--catppuccin-latte .is-primary.is-focused.textarea,html.theme--catppuccin-latte .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--catppuccin-latte .is-primary.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--catppuccin-latte .is-primary.textarea:active,html.theme--catppuccin-latte .docstring>section>a.textarea.docs-sourcelink:active,html.theme--catppuccin-latte .is-primary.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--catppuccin-latte .docstring>section>a.input.docs-sourcelink:active,html.theme--catppuccin-latte .is-primary.is-active.textarea,html.theme--catppuccin-latte .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--catppuccin-latte .is-primary.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-latte .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .is-link.textarea,html.theme--catppuccin-latte .is-link.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1e66f5}html.theme--catppuccin-latte .is-link.textarea:focus,html.theme--catppuccin-latte .is-link.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--catppuccin-latte .is-link.is-focused.textarea,html.theme--catppuccin-latte .is-link.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-link.textarea:active,html.theme--catppuccin-latte .is-link.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--catppuccin-latte .is-link.is-active.textarea,html.theme--catppuccin-latte .is-link.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .is-info.textarea,html.theme--catppuccin-latte .is-info.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#179299}html.theme--catppuccin-latte .is-info.textarea:focus,html.theme--catppuccin-latte .is-info.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--catppuccin-latte .is-info.is-focused.textarea,html.theme--catppuccin-latte .is-info.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-info.textarea:active,html.theme--catppuccin-latte .is-info.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--catppuccin-latte .is-info.is-active.textarea,html.theme--catppuccin-latte .is-info.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(23,146,153,0.25)}html.theme--catppuccin-latte .is-success.textarea,html.theme--catppuccin-latte .is-success.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#40a02b}html.theme--catppuccin-latte .is-success.textarea:focus,html.theme--catppuccin-latte .is-success.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--catppuccin-latte .is-success.is-focused.textarea,html.theme--catppuccin-latte .is-success.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-success.textarea:active,html.theme--catppuccin-latte .is-success.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--catppuccin-latte .is-success.is-active.textarea,html.theme--catppuccin-latte .is-success.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(64,160,43,0.25)}html.theme--catppuccin-latte .is-warning.textarea,html.theme--catppuccin-latte .is-warning.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#df8e1d}html.theme--catppuccin-latte .is-warning.textarea:focus,html.theme--catppuccin-latte .is-warning.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--catppuccin-latte .is-warning.is-focused.textarea,html.theme--catppuccin-latte .is-warning.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-warning.textarea:active,html.theme--catppuccin-latte .is-warning.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--catppuccin-latte .is-warning.is-active.textarea,html.theme--catppuccin-latte .is-warning.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(223,142,29,0.25)}html.theme--catppuccin-latte .is-danger.textarea,html.theme--catppuccin-latte .is-danger.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#d20f39}html.theme--catppuccin-latte .is-danger.textarea:focus,html.theme--catppuccin-latte .is-danger.input:focus,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--catppuccin-latte .is-danger.is-focused.textarea,html.theme--catppuccin-latte .is-danger.is-focused.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-latte .is-danger.textarea:active,html.theme--catppuccin-latte .is-danger.input:active,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--catppuccin-latte .is-danger.is-active.textarea,html.theme--catppuccin-latte .is-danger.is-active.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(210,15,57,0.25)}html.theme--catppuccin-latte .is-small.textarea,html.theme--catppuccin-latte .is-small.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--catppuccin-latte .is-medium.textarea,html.theme--catppuccin-latte .is-medium.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .is-large.textarea,html.theme--catppuccin-latte .is-large.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--catppuccin-latte .is-fullwidth.textarea,html.theme--catppuccin-latte .is-fullwidth.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--catppuccin-latte .is-inline.textarea,html.theme--catppuccin-latte .is-inline.input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--catppuccin-latte .input.is-rounded,html.theme--catppuccin-latte #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--catppuccin-latte .input.is-static,html.theme--catppuccin-latte #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--catppuccin-latte .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--catppuccin-latte .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--catppuccin-latte .textarea[rows]{height:initial}html.theme--catppuccin-latte .textarea.has-fixed-size{resize:none}html.theme--catppuccin-latte .radio,html.theme--catppuccin-latte .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--catppuccin-latte .radio input,html.theme--catppuccin-latte .checkbox input{cursor:pointer}html.theme--catppuccin-latte .radio:hover,html.theme--catppuccin-latte .checkbox:hover{color:#04a5e5}html.theme--catppuccin-latte .radio[disabled],html.theme--catppuccin-latte .checkbox[disabled],fieldset[disabled] html.theme--catppuccin-latte .radio,fieldset[disabled] html.theme--catppuccin-latte .checkbox,html.theme--catppuccin-latte .radio input[disabled],html.theme--catppuccin-latte .checkbox input[disabled]{color:#616587;cursor:not-allowed}html.theme--catppuccin-latte .radio+.radio{margin-left:.5em}html.theme--catppuccin-latte .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--catppuccin-latte .select:not(.is-multiple){height:2.5em}html.theme--catppuccin-latte .select:not(.is-multiple):not(.is-loading)::after{border-color:#1e66f5;right:1.125em;z-index:4}html.theme--catppuccin-latte .select.is-rounded select,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--catppuccin-latte .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--catppuccin-latte .select select::-ms-expand{display:none}html.theme--catppuccin-latte .select select[disabled]:hover,fieldset[disabled] html.theme--catppuccin-latte .select select:hover{border-color:#e6e9ef}html.theme--catppuccin-latte .select select:not([multiple]){padding-right:2.5em}html.theme--catppuccin-latte .select select[multiple]{height:auto;padding:0}html.theme--catppuccin-latte .select select[multiple] option{padding:0.5em 1em}html.theme--catppuccin-latte .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#04a5e5}html.theme--catppuccin-latte .select.is-white:not(:hover)::after{border-color:#fff}html.theme--catppuccin-latte .select.is-white select{border-color:#fff}html.theme--catppuccin-latte .select.is-white select:hover,html.theme--catppuccin-latte .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--catppuccin-latte .select.is-white select:focus,html.theme--catppuccin-latte .select.is-white select.is-focused,html.theme--catppuccin-latte .select.is-white select:active,html.theme--catppuccin-latte .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-latte .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--catppuccin-latte .select.is-black select{border-color:#0a0a0a}html.theme--catppuccin-latte .select.is-black select:hover,html.theme--catppuccin-latte .select.is-black select.is-hovered{border-color:#000}html.theme--catppuccin-latte .select.is-black select:focus,html.theme--catppuccin-latte .select.is-black select.is-focused,html.theme--catppuccin-latte .select.is-black select:active,html.theme--catppuccin-latte .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-latte .select.is-light:not(:hover)::after{border-color:#f5f5f5}html.theme--catppuccin-latte .select.is-light select{border-color:#f5f5f5}html.theme--catppuccin-latte .select.is-light select:hover,html.theme--catppuccin-latte .select.is-light select.is-hovered{border-color:#e8e8e8}html.theme--catppuccin-latte .select.is-light select:focus,html.theme--catppuccin-latte .select.is-light select.is-focused,html.theme--catppuccin-latte .select.is-light select:active,html.theme--catppuccin-latte .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-latte .select.is-dark:not(:hover)::after,html.theme--catppuccin-latte .content kbd.select:not(:hover)::after{border-color:#ccd0da}html.theme--catppuccin-latte .select.is-dark select,html.theme--catppuccin-latte .content kbd.select select{border-color:#ccd0da}html.theme--catppuccin-latte .select.is-dark select:hover,html.theme--catppuccin-latte .content kbd.select select:hover,html.theme--catppuccin-latte .select.is-dark select.is-hovered,html.theme--catppuccin-latte .content kbd.select select.is-hovered{border-color:#bdc2cf}html.theme--catppuccin-latte .select.is-dark select:focus,html.theme--catppuccin-latte .content kbd.select select:focus,html.theme--catppuccin-latte .select.is-dark select.is-focused,html.theme--catppuccin-latte .content kbd.select select.is-focused,html.theme--catppuccin-latte .select.is-dark select:active,html.theme--catppuccin-latte .content kbd.select select:active,html.theme--catppuccin-latte .select.is-dark select.is-active,html.theme--catppuccin-latte .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(204,208,218,0.25)}html.theme--catppuccin-latte .select.is-primary:not(:hover)::after,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#1e66f5}html.theme--catppuccin-latte .select.is-primary select,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select{border-color:#1e66f5}html.theme--catppuccin-latte .select.is-primary select:hover,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select:hover,html.theme--catppuccin-latte .select.is-primary select.is-hovered,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#0b57ef}html.theme--catppuccin-latte .select.is-primary select:focus,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select:focus,html.theme--catppuccin-latte .select.is-primary select.is-focused,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--catppuccin-latte .select.is-primary select:active,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select:active,html.theme--catppuccin-latte .select.is-primary select.is-active,html.theme--catppuccin-latte .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .select.is-link:not(:hover)::after{border-color:#1e66f5}html.theme--catppuccin-latte .select.is-link select{border-color:#1e66f5}html.theme--catppuccin-latte .select.is-link select:hover,html.theme--catppuccin-latte .select.is-link select.is-hovered{border-color:#0b57ef}html.theme--catppuccin-latte .select.is-link select:focus,html.theme--catppuccin-latte .select.is-link select.is-focused,html.theme--catppuccin-latte .select.is-link select:active,html.theme--catppuccin-latte .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(30,102,245,0.25)}html.theme--catppuccin-latte .select.is-info:not(:hover)::after{border-color:#179299}html.theme--catppuccin-latte .select.is-info select{border-color:#179299}html.theme--catppuccin-latte .select.is-info select:hover,html.theme--catppuccin-latte .select.is-info select.is-hovered{border-color:#147d83}html.theme--catppuccin-latte .select.is-info select:focus,html.theme--catppuccin-latte .select.is-info select.is-focused,html.theme--catppuccin-latte .select.is-info select:active,html.theme--catppuccin-latte .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(23,146,153,0.25)}html.theme--catppuccin-latte .select.is-success:not(:hover)::after{border-color:#40a02b}html.theme--catppuccin-latte .select.is-success select{border-color:#40a02b}html.theme--catppuccin-latte .select.is-success select:hover,html.theme--catppuccin-latte .select.is-success select.is-hovered{border-color:#388c26}html.theme--catppuccin-latte .select.is-success select:focus,html.theme--catppuccin-latte .select.is-success select.is-focused,html.theme--catppuccin-latte .select.is-success select:active,html.theme--catppuccin-latte .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(64,160,43,0.25)}html.theme--catppuccin-latte .select.is-warning:not(:hover)::after{border-color:#df8e1d}html.theme--catppuccin-latte .select.is-warning select{border-color:#df8e1d}html.theme--catppuccin-latte .select.is-warning select:hover,html.theme--catppuccin-latte .select.is-warning select.is-hovered{border-color:#c8801a}html.theme--catppuccin-latte .select.is-warning select:focus,html.theme--catppuccin-latte .select.is-warning select.is-focused,html.theme--catppuccin-latte .select.is-warning select:active,html.theme--catppuccin-latte .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(223,142,29,0.25)}html.theme--catppuccin-latte .select.is-danger:not(:hover)::after{border-color:#d20f39}html.theme--catppuccin-latte .select.is-danger select{border-color:#d20f39}html.theme--catppuccin-latte .select.is-danger select:hover,html.theme--catppuccin-latte .select.is-danger select.is-hovered{border-color:#ba0d33}html.theme--catppuccin-latte .select.is-danger select:focus,html.theme--catppuccin-latte .select.is-danger select.is-focused,html.theme--catppuccin-latte .select.is-danger select:active,html.theme--catppuccin-latte .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(210,15,57,0.25)}html.theme--catppuccin-latte .select.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--catppuccin-latte .select.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .select.is-large{font-size:1.5rem}html.theme--catppuccin-latte .select.is-disabled::after{border-color:#616587 !important;opacity:0.5}html.theme--catppuccin-latte .select.is-fullwidth{width:100%}html.theme--catppuccin-latte .select.is-fullwidth select{width:100%}html.theme--catppuccin-latte .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--catppuccin-latte .select.is-loading.is-small:after,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-latte .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-latte .select.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-latte .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--catppuccin-latte .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .file.is-white:hover .file-cta,html.theme--catppuccin-latte .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .file.is-white:focus .file-cta,html.theme--catppuccin-latte .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--catppuccin-latte .file.is-white:active .file-cta,html.theme--catppuccin-latte .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-latte .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-black:hover .file-cta,html.theme--catppuccin-latte .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-black:focus .file-cta,html.theme--catppuccin-latte .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--catppuccin-latte .file.is-black:active .file-cta,html.theme--catppuccin-latte .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-light:hover .file-cta,html.theme--catppuccin-latte .file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-light:focus .file-cta,html.theme--catppuccin-latte .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)}html.theme--catppuccin-latte .file.is-light:active .file-cta,html.theme--catppuccin-latte .file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-dark .file-cta,html.theme--catppuccin-latte .content kbd.file .file-cta{background-color:#ccd0da;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-dark:hover .file-cta,html.theme--catppuccin-latte .content kbd.file:hover .file-cta,html.theme--catppuccin-latte .file.is-dark.is-hovered .file-cta,html.theme--catppuccin-latte .content kbd.file.is-hovered .file-cta{background-color:#c5c9d5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-dark:focus .file-cta,html.theme--catppuccin-latte .content kbd.file:focus .file-cta,html.theme--catppuccin-latte .file.is-dark.is-focused .file-cta,html.theme--catppuccin-latte .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(204,208,218,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-dark:active .file-cta,html.theme--catppuccin-latte .content kbd.file:active .file-cta,html.theme--catppuccin-latte .file.is-dark.is-active .file-cta,html.theme--catppuccin-latte .content kbd.file.is-active .file-cta{background-color:#bdc2cf;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .file.is-primary .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#1e66f5;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-primary:hover .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--catppuccin-latte .file.is-primary.is-hovered .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#125ef4;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-primary:focus .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--catppuccin-latte .file.is-primary.is-focused .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(30,102,245,0.25);color:#fff}html.theme--catppuccin-latte .file.is-primary:active .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--catppuccin-latte .file.is-primary.is-active .file-cta,html.theme--catppuccin-latte .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#0b57ef;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-link .file-cta{background-color:#1e66f5;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-link:hover .file-cta,html.theme--catppuccin-latte .file.is-link.is-hovered .file-cta{background-color:#125ef4;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-link:focus .file-cta,html.theme--catppuccin-latte .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(30,102,245,0.25);color:#fff}html.theme--catppuccin-latte .file.is-link:active .file-cta,html.theme--catppuccin-latte .file.is-link.is-active .file-cta{background-color:#0b57ef;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-info .file-cta{background-color:#179299;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-info:hover .file-cta,html.theme--catppuccin-latte .file.is-info.is-hovered .file-cta{background-color:#15878e;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-info:focus .file-cta,html.theme--catppuccin-latte .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(23,146,153,0.25);color:#fff}html.theme--catppuccin-latte .file.is-info:active .file-cta,html.theme--catppuccin-latte .file.is-info.is-active .file-cta{background-color:#147d83;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-success .file-cta{background-color:#40a02b;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-success:hover .file-cta,html.theme--catppuccin-latte .file.is-success.is-hovered .file-cta{background-color:#3c9628;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-success:focus .file-cta,html.theme--catppuccin-latte .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(64,160,43,0.25);color:#fff}html.theme--catppuccin-latte .file.is-success:active .file-cta,html.theme--catppuccin-latte .file.is-success.is-active .file-cta{background-color:#388c26;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-warning .file-cta{background-color:#df8e1d;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-warning:hover .file-cta,html.theme--catppuccin-latte .file.is-warning.is-hovered .file-cta{background-color:#d4871c;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-warning:focus .file-cta,html.theme--catppuccin-latte .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(223,142,29,0.25);color:#fff}html.theme--catppuccin-latte .file.is-warning:active .file-cta,html.theme--catppuccin-latte .file.is-warning.is-active .file-cta{background-color:#c8801a;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-danger .file-cta{background-color:#d20f39;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-danger:hover .file-cta,html.theme--catppuccin-latte .file.is-danger.is-hovered .file-cta{background-color:#c60e36;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-danger:focus .file-cta,html.theme--catppuccin-latte .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(210,15,57,0.25);color:#fff}html.theme--catppuccin-latte .file.is-danger:active .file-cta,html.theme--catppuccin-latte .file.is-danger.is-active .file-cta{background-color:#ba0d33;border-color:transparent;color:#fff}html.theme--catppuccin-latte .file.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--catppuccin-latte .file.is-normal{font-size:1rem}html.theme--catppuccin-latte .file.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .file.is-medium .file-icon .fa{font-size:21px}html.theme--catppuccin-latte .file.is-large{font-size:1.5rem}html.theme--catppuccin-latte .file.is-large .file-icon .fa{font-size:28px}html.theme--catppuccin-latte .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-latte .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-latte .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--catppuccin-latte .file.has-name.is-empty .file-name{display:none}html.theme--catppuccin-latte .file.is-boxed .file-label{flex-direction:column}html.theme--catppuccin-latte .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--catppuccin-latte .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--catppuccin-latte .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--catppuccin-latte .file.is-boxed .file-icon .fa{font-size:21px}html.theme--catppuccin-latte .file.is-boxed.is-small .file-icon .fa,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--catppuccin-latte .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--catppuccin-latte .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--catppuccin-latte .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--catppuccin-latte .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--catppuccin-latte .file.is-centered{justify-content:center}html.theme--catppuccin-latte .file.is-fullwidth .file-label{width:100%}html.theme--catppuccin-latte .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--catppuccin-latte .file.is-right{justify-content:flex-end}html.theme--catppuccin-latte .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--catppuccin-latte .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--catppuccin-latte .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--catppuccin-latte .file-label:hover .file-cta{background-color:#c5c9d5;color:#41445a}html.theme--catppuccin-latte .file-label:hover .file-name{border-color:#a5a9b8}html.theme--catppuccin-latte .file-label:active .file-cta{background-color:#bdc2cf;color:#41445a}html.theme--catppuccin-latte .file-label:active .file-name{border-color:#9ea2b3}html.theme--catppuccin-latte .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--catppuccin-latte .file-cta,html.theme--catppuccin-latte .file-name{border-color:#acb0be;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--catppuccin-latte .file-cta{background-color:#ccd0da;color:#4c4f69}html.theme--catppuccin-latte .file-name{border-color:#acb0be;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--catppuccin-latte .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--catppuccin-latte .file-icon .fa{font-size:14px}html.theme--catppuccin-latte .label{color:#41445a;display:block;font-size:1rem;font-weight:700}html.theme--catppuccin-latte .label:not(:last-child){margin-bottom:0.5em}html.theme--catppuccin-latte .label.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--catppuccin-latte .label.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .label.is-large{font-size:1.5rem}html.theme--catppuccin-latte .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--catppuccin-latte .help.is-white{color:#fff}html.theme--catppuccin-latte .help.is-black{color:#0a0a0a}html.theme--catppuccin-latte .help.is-light{color:#f5f5f5}html.theme--catppuccin-latte .help.is-dark,html.theme--catppuccin-latte .content kbd.help{color:#ccd0da}html.theme--catppuccin-latte .help.is-primary,html.theme--catppuccin-latte .docstring>section>a.help.docs-sourcelink{color:#1e66f5}html.theme--catppuccin-latte .help.is-link{color:#1e66f5}html.theme--catppuccin-latte .help.is-info{color:#179299}html.theme--catppuccin-latte .help.is-success{color:#40a02b}html.theme--catppuccin-latte .help.is-warning{color:#df8e1d}html.theme--catppuccin-latte .help.is-danger{color:#d20f39}html.theme--catppuccin-latte .field:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-latte .field.has-addons{display:flex;justify-content:flex-start}html.theme--catppuccin-latte .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--catppuccin-latte .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--catppuccin-latte .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--catppuccin-latte .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--catppuccin-latte .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--catppuccin-latte .field.has-addons .control:first-child:not(:only-child) .button,html.theme--catppuccin-latte .field.has-addons .control:first-child:not(:only-child) .input,html.theme--catppuccin-latte .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-latte .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-latte .field.has-addons .control:last-child:not(:only-child) .button,html.theme--catppuccin-latte .field.has-addons .control:last-child:not(:only-child) .input,html.theme--catppuccin-latte .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-latte .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-latte .field.has-addons .control .button:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .input:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .select select:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--catppuccin-latte .field.has-addons .control .button:not([disabled]):focus,html.theme--catppuccin-latte .field.has-addons .control .button.is-focused:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .button:not([disabled]):active,html.theme--catppuccin-latte .field.has-addons .control .button.is-active:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .input:not([disabled]):focus,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-latte .field.has-addons .control .input.is-focused:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .input:not([disabled]):active,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--catppuccin-latte .field.has-addons .control .input.is-active:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .select select:not([disabled]):focus,html.theme--catppuccin-latte .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--catppuccin-latte .field.has-addons .control .select select:not([disabled]):active,html.theme--catppuccin-latte .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--catppuccin-latte .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--catppuccin-latte .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .button:not([disabled]):active:hover,html.theme--catppuccin-latte .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-latte .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .input:not([disabled]):active:hover,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-latte .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-latte #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--catppuccin-latte .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--catppuccin-latte .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--catppuccin-latte .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--catppuccin-latte .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .field.has-addons.has-addons-centered{justify-content:center}html.theme--catppuccin-latte .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--catppuccin-latte .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--catppuccin-latte .field.is-grouped{display:flex;justify-content:flex-start}html.theme--catppuccin-latte .field.is-grouped>.control{flex-shrink:0}html.theme--catppuccin-latte .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-latte .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--catppuccin-latte .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--catppuccin-latte .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--catppuccin-latte .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--catppuccin-latte .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-latte .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--catppuccin-latte .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .field.is-horizontal{display:flex}}html.theme--catppuccin-latte .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-latte .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--catppuccin-latte .field-label.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--catppuccin-latte .field-label.is-normal{padding-top:0.375em}html.theme--catppuccin-latte .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--catppuccin-latte .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--catppuccin-latte .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--catppuccin-latte .field-body .field{margin-bottom:0}html.theme--catppuccin-latte .field-body>.field{flex-shrink:1}html.theme--catppuccin-latte .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--catppuccin-latte .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-latte .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--catppuccin-latte .control.has-icons-left .input:focus~.icon,html.theme--catppuccin-latte .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--catppuccin-latte .control.has-icons-left .select:focus~.icon,html.theme--catppuccin-latte .control.has-icons-right .input:focus~.icon,html.theme--catppuccin-latte .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--catppuccin-latte .control.has-icons-right .select:focus~.icon{color:#ccd0da}html.theme--catppuccin-latte .control.has-icons-left .input.is-small~.icon,html.theme--catppuccin-latte .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--catppuccin-latte .control.has-icons-left .select.is-small~.icon,html.theme--catppuccin-latte .control.has-icons-right .input.is-small~.icon,html.theme--catppuccin-latte .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--catppuccin-latte .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--catppuccin-latte .control.has-icons-left .input.is-medium~.icon,html.theme--catppuccin-latte .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--catppuccin-latte .control.has-icons-left .select.is-medium~.icon,html.theme--catppuccin-latte .control.has-icons-right .input.is-medium~.icon,html.theme--catppuccin-latte .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--catppuccin-latte .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--catppuccin-latte .control.has-icons-left .input.is-large~.icon,html.theme--catppuccin-latte .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--catppuccin-latte .control.has-icons-left .select.is-large~.icon,html.theme--catppuccin-latte .control.has-icons-right .input.is-large~.icon,html.theme--catppuccin-latte .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--catppuccin-latte .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--catppuccin-latte .control.has-icons-left .icon,html.theme--catppuccin-latte .control.has-icons-right .icon{color:#acb0be;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--catppuccin-latte .control.has-icons-left .input,html.theme--catppuccin-latte .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--catppuccin-latte .control.has-icons-left .select select{padding-left:2.5em}html.theme--catppuccin-latte .control.has-icons-left .icon.is-left{left:0}html.theme--catppuccin-latte .control.has-icons-right .input,html.theme--catppuccin-latte .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--catppuccin-latte .control.has-icons-right .select select{padding-right:2.5em}html.theme--catppuccin-latte .control.has-icons-right .icon.is-right{right:0}html.theme--catppuccin-latte .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--catppuccin-latte .control.is-loading.is-small:after,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-latte .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-latte .control.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-latte .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--catppuccin-latte .breadcrumb a{align-items:center;color:#1e66f5;display:flex;justify-content:center;padding:0 .75em}html.theme--catppuccin-latte .breadcrumb a:hover{color:#04a5e5}html.theme--catppuccin-latte .breadcrumb li{align-items:center;display:flex}html.theme--catppuccin-latte .breadcrumb li:first-child a{padding-left:0}html.theme--catppuccin-latte .breadcrumb li.is-active a{color:#41445a;cursor:default;pointer-events:none}html.theme--catppuccin-latte .breadcrumb li+li::before{color:#9ca0b0;content:"\0002f"}html.theme--catppuccin-latte .breadcrumb ul,html.theme--catppuccin-latte .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-latte .breadcrumb .icon:first-child{margin-right:.5em}html.theme--catppuccin-latte .breadcrumb .icon:last-child{margin-left:.5em}html.theme--catppuccin-latte .breadcrumb.is-centered ol,html.theme--catppuccin-latte .breadcrumb.is-centered ul{justify-content:center}html.theme--catppuccin-latte .breadcrumb.is-right ol,html.theme--catppuccin-latte .breadcrumb.is-right ul{justify-content:flex-end}html.theme--catppuccin-latte .breadcrumb.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--catppuccin-latte .breadcrumb.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .breadcrumb.is-large{font-size:1.5rem}html.theme--catppuccin-latte .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--catppuccin-latte .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--catppuccin-latte .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--catppuccin-latte .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--catppuccin-latte .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#4c4f69;max-width:100%;position:relative}html.theme--catppuccin-latte .card-footer:first-child,html.theme--catppuccin-latte .card-content:first-child,html.theme--catppuccin-latte .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-latte .card-footer:last-child,html.theme--catppuccin-latte .card-content:last-child,html.theme--catppuccin-latte .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-latte .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--catppuccin-latte .card-header-title{align-items:center;color:#41445a;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--catppuccin-latte .card-header-title.is-centered{justify-content:center}html.theme--catppuccin-latte .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--catppuccin-latte .card-image{display:block;position:relative}html.theme--catppuccin-latte .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-latte .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-latte .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--catppuccin-latte .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--catppuccin-latte .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--catppuccin-latte .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--catppuccin-latte .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-latte .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--catppuccin-latte .dropdown.is-active .dropdown-menu,html.theme--catppuccin-latte .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--catppuccin-latte .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--catppuccin-latte .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--catppuccin-latte .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--catppuccin-latte .dropdown-content{background-color:#e6e9ef;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--catppuccin-latte .dropdown-item{color:#4c4f69;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--catppuccin-latte a.dropdown-item,html.theme--catppuccin-latte button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--catppuccin-latte a.dropdown-item:hover,html.theme--catppuccin-latte button.dropdown-item:hover{background-color:#e6e9ef;color:#0a0a0a}html.theme--catppuccin-latte a.dropdown-item.is-active,html.theme--catppuccin-latte button.dropdown-item.is-active{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--catppuccin-latte .level{align-items:center;justify-content:space-between}html.theme--catppuccin-latte .level code{border-radius:.4em}html.theme--catppuccin-latte .level img{display:inline-block;vertical-align:top}html.theme--catppuccin-latte .level.is-mobile{display:flex}html.theme--catppuccin-latte .level.is-mobile .level-left,html.theme--catppuccin-latte .level.is-mobile .level-right{display:flex}html.theme--catppuccin-latte .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--catppuccin-latte .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-latte .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .level{display:flex}html.theme--catppuccin-latte .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--catppuccin-latte .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--catppuccin-latte .level-item .title,html.theme--catppuccin-latte .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--catppuccin-latte .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--catppuccin-latte .level-left,html.theme--catppuccin-latte .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-latte .level-left .level-item.is-flexible,html.theme--catppuccin-latte .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .level-left .level-item:not(:last-child),html.theme--catppuccin-latte .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-latte .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--catppuccin-latte .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .level-left{display:flex}}html.theme--catppuccin-latte .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .level-right{display:flex}}html.theme--catppuccin-latte .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--catppuccin-latte .media .content:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-latte .media .media{border-top:1px solid rgba(172,176,190,0.5);display:flex;padding-top:.75rem}html.theme--catppuccin-latte .media .media .content:not(:last-child),html.theme--catppuccin-latte .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--catppuccin-latte .media .media .media{padding-top:.5rem}html.theme--catppuccin-latte .media .media .media+.media{margin-top:.5rem}html.theme--catppuccin-latte .media+.media{border-top:1px solid rgba(172,176,190,0.5);margin-top:1rem;padding-top:1rem}html.theme--catppuccin-latte .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--catppuccin-latte .media-left,html.theme--catppuccin-latte .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-latte .media-left{margin-right:1rem}html.theme--catppuccin-latte .media-right{margin-left:1rem}html.theme--catppuccin-latte .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-latte .media-content{overflow-x:auto}}html.theme--catppuccin-latte .menu{font-size:1rem}html.theme--catppuccin-latte .menu.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--catppuccin-latte .menu.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .menu.is-large{font-size:1.5rem}html.theme--catppuccin-latte .menu-list{line-height:1.25}html.theme--catppuccin-latte .menu-list a{border-radius:3px;color:#4c4f69;display:block;padding:0.5em 0.75em}html.theme--catppuccin-latte .menu-list a:hover{background-color:#e6e9ef;color:#41445a}html.theme--catppuccin-latte .menu-list a.is-active{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .menu-list li ul{border-left:1px solid #acb0be;margin:.75em;padding-left:.75em}html.theme--catppuccin-latte .menu-label{color:#616587;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--catppuccin-latte .menu-label:not(:first-child){margin-top:1em}html.theme--catppuccin-latte .menu-label:not(:last-child){margin-bottom:1em}html.theme--catppuccin-latte .message{background-color:#e6e9ef;border-radius:.4em;font-size:1rem}html.theme--catppuccin-latte .message strong{color:currentColor}html.theme--catppuccin-latte .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-latte .message.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--catppuccin-latte .message.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .message.is-large{font-size:1.5rem}html.theme--catppuccin-latte .message.is-white{background-color:#fff}html.theme--catppuccin-latte .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .message.is-white .message-body{border-color:#fff}html.theme--catppuccin-latte .message.is-black{background-color:#fafafa}html.theme--catppuccin-latte .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .message.is-black .message-body{border-color:#0a0a0a}html.theme--catppuccin-latte .message.is-light{background-color:#fafafa}html.theme--catppuccin-latte .message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .message.is-light .message-body{border-color:#f5f5f5}html.theme--catppuccin-latte .message.is-dark,html.theme--catppuccin-latte .content kbd.message{background-color:#f9fafb}html.theme--catppuccin-latte .message.is-dark .message-header,html.theme--catppuccin-latte .content kbd.message .message-header{background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .message.is-dark .message-body,html.theme--catppuccin-latte .content kbd.message .message-body{border-color:#ccd0da}html.theme--catppuccin-latte .message.is-primary,html.theme--catppuccin-latte .docstring>section>a.message.docs-sourcelink{background-color:#ebf2fe}html.theme--catppuccin-latte .message.is-primary .message-header,html.theme--catppuccin-latte .docstring>section>a.message.docs-sourcelink .message-header{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .message.is-primary .message-body,html.theme--catppuccin-latte .docstring>section>a.message.docs-sourcelink .message-body{border-color:#1e66f5;color:#0a52e1}html.theme--catppuccin-latte .message.is-link{background-color:#ebf2fe}html.theme--catppuccin-latte .message.is-link .message-header{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .message.is-link .message-body{border-color:#1e66f5;color:#0a52e1}html.theme--catppuccin-latte .message.is-info{background-color:#edfcfc}html.theme--catppuccin-latte .message.is-info .message-header{background-color:#179299;color:#fff}html.theme--catppuccin-latte .message.is-info .message-body{border-color:#179299;color:#1cb2ba}html.theme--catppuccin-latte .message.is-success{background-color:#f1fbef}html.theme--catppuccin-latte .message.is-success .message-header{background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .message.is-success .message-body{border-color:#40a02b;color:#40a12b}html.theme--catppuccin-latte .message.is-warning{background-color:#fdf6ed}html.theme--catppuccin-latte .message.is-warning .message-header{background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .message.is-warning .message-body{border-color:#df8e1d;color:#9e6515}html.theme--catppuccin-latte .message.is-danger{background-color:#feecf0}html.theme--catppuccin-latte .message.is-danger .message-header{background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .message.is-danger .message-body{border-color:#d20f39;color:#e9113f}html.theme--catppuccin-latte .message-header{align-items:center;background-color:#4c4f69;border-radius:.4em .4em 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--catppuccin-latte .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--catppuccin-latte .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--catppuccin-latte .message-body{border-color:#acb0be;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#4c4f69;padding:1.25em 1.5em}html.theme--catppuccin-latte .message-body code,html.theme--catppuccin-latte .message-body pre{background-color:#fff}html.theme--catppuccin-latte .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--catppuccin-latte .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--catppuccin-latte .modal.is-active{display:flex}html.theme--catppuccin-latte .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--catppuccin-latte .modal-content,html.theme--catppuccin-latte .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--catppuccin-latte .modal-content,html.theme--catppuccin-latte .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--catppuccin-latte .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--catppuccin-latte .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--catppuccin-latte .modal-card-head,html.theme--catppuccin-latte .modal-card-foot{align-items:center;background-color:#e6e9ef;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--catppuccin-latte .modal-card-head{border-bottom:1px solid #acb0be;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--catppuccin-latte .modal-card-title{color:#4c4f69;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--catppuccin-latte .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #acb0be}html.theme--catppuccin-latte .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--catppuccin-latte .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#eff1f5;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--catppuccin-latte .navbar{background-color:#1e66f5;min-height:4rem;position:relative;z-index:30}html.theme--catppuccin-latte .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-white .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-white .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-white .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-white .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-white .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-white .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-latte .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--catppuccin-latte .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-black .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-black .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-black .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-black .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-black .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-black .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--catppuccin-latte .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--catppuccin-latte .navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-light .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-light .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-light .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-light .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-light .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-light .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-latte .navbar.is-dark,html.theme--catppuccin-latte .content kbd.navbar{background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-brand>.navbar-item,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#bdc2cf;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--catppuccin-latte .content kbd.navbar .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-burger,html.theme--catppuccin-latte .content kbd.navbar .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-dark .navbar-start>.navbar-item,html.theme--catppuccin-latte .content kbd.navbar .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-dark .navbar-start .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-dark .navbar-end>.navbar-item,html.theme--catppuccin-latte .content kbd.navbar .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-dark .navbar-end .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#bdc2cf;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-start .navbar-link::after,html.theme--catppuccin-latte .content kbd.navbar .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-dark .navbar-end .navbar-link::after,html.theme--catppuccin-latte .content kbd.navbar .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-latte .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#bdc2cf;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-latte .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#ccd0da;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-latte .navbar.is-primary,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-brand>.navbar-item,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-burger,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-primary .navbar-start>.navbar-item,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-primary .navbar-start .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-primary .navbar-end>.navbar-item,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-primary .navbar-end .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-start .navbar-link::after,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-primary .navbar-end .navbar-link::after,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1e66f5;color:#fff}}html.theme--catppuccin-latte .navbar.is-link{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-link .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-link .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-link .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-link .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-link .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-link .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1e66f5;color:#fff}}html.theme--catppuccin-latte .navbar.is-info{background-color:#179299;color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#147d83;color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-info .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-info .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-info .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-info .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-info .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-info .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#147d83;color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#147d83;color:#fff}html.theme--catppuccin-latte .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#179299;color:#fff}}html.theme--catppuccin-latte .navbar.is-success{background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#388c26;color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-success .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-success .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-success .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-success .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-success .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-success .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#388c26;color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#388c26;color:#fff}html.theme--catppuccin-latte .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#40a02b;color:#fff}}html.theme--catppuccin-latte .navbar.is-warning{background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#c8801a;color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-warning .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-warning .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-warning .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#c8801a;color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c8801a;color:#fff}html.theme--catppuccin-latte .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#df8e1d;color:#fff}}html.theme--catppuccin-latte .navbar.is-danger{background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-brand>.navbar-item,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#ba0d33;color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar.is-danger .navbar-start>.navbar-item,html.theme--catppuccin-latte .navbar.is-danger .navbar-start .navbar-link,html.theme--catppuccin-latte .navbar.is-danger .navbar-end>.navbar-item,html.theme--catppuccin-latte .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--catppuccin-latte .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#ba0d33;color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-start .navbar-link::after,html.theme--catppuccin-latte .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ba0d33;color:#fff}html.theme--catppuccin-latte .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#d20f39;color:#fff}}html.theme--catppuccin-latte .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--catppuccin-latte .navbar.has-shadow{box-shadow:0 2px 0 0 #e6e9ef}html.theme--catppuccin-latte .navbar.is-fixed-bottom,html.theme--catppuccin-latte .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-latte .navbar.is-fixed-bottom{bottom:0}html.theme--catppuccin-latte .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #e6e9ef}html.theme--catppuccin-latte .navbar.is-fixed-top{top:0}html.theme--catppuccin-latte html.has-navbar-fixed-top,html.theme--catppuccin-latte body.has-navbar-fixed-top{padding-top:4rem}html.theme--catppuccin-latte html.has-navbar-fixed-bottom,html.theme--catppuccin-latte body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--catppuccin-latte .navbar-brand,html.theme--catppuccin-latte .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--catppuccin-latte .navbar-brand a.navbar-item:focus,html.theme--catppuccin-latte .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--catppuccin-latte .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--catppuccin-latte .navbar-burger{color:#4c4f69;-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--catppuccin-latte .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--catppuccin-latte .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--catppuccin-latte .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--catppuccin-latte .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--catppuccin-latte .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--catppuccin-latte .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--catppuccin-latte .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--catppuccin-latte .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--catppuccin-latte .navbar-menu{display:none}html.theme--catppuccin-latte .navbar-item,html.theme--catppuccin-latte .navbar-link{color:#4c4f69;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--catppuccin-latte .navbar-item .icon:only-child,html.theme--catppuccin-latte .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--catppuccin-latte a.navbar-item,html.theme--catppuccin-latte .navbar-link{cursor:pointer}html.theme--catppuccin-latte a.navbar-item:focus,html.theme--catppuccin-latte a.navbar-item:focus-within,html.theme--catppuccin-latte a.navbar-item:hover,html.theme--catppuccin-latte a.navbar-item.is-active,html.theme--catppuccin-latte .navbar-link:focus,html.theme--catppuccin-latte .navbar-link:focus-within,html.theme--catppuccin-latte .navbar-link:hover,html.theme--catppuccin-latte .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1e66f5}html.theme--catppuccin-latte .navbar-item{flex-grow:0;flex-shrink:0}html.theme--catppuccin-latte .navbar-item img{max-height:1.75rem}html.theme--catppuccin-latte .navbar-item.has-dropdown{padding:0}html.theme--catppuccin-latte .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--catppuccin-latte .navbar-item.is-tab:focus,html.theme--catppuccin-latte .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1e66f5}html.theme--catppuccin-latte .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1e66f5;border-bottom-style:solid;border-bottom-width:3px;color:#1e66f5;padding-bottom:calc(0.5rem - 3px)}html.theme--catppuccin-latte .navbar-content{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--catppuccin-latte .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--catppuccin-latte .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--catppuccin-latte .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--catppuccin-latte .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--catppuccin-latte .navbar>.container{display:block}html.theme--catppuccin-latte .navbar-brand .navbar-item,html.theme--catppuccin-latte .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--catppuccin-latte .navbar-link::after{display:none}html.theme--catppuccin-latte .navbar-menu{background-color:#1e66f5;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--catppuccin-latte .navbar-menu.is-active{display:block}html.theme--catppuccin-latte .navbar.is-fixed-bottom-touch,html.theme--catppuccin-latte .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-latte .navbar.is-fixed-bottom-touch{bottom:0}html.theme--catppuccin-latte .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-latte .navbar.is-fixed-top-touch{top:0}html.theme--catppuccin-latte .navbar.is-fixed-top .navbar-menu,html.theme--catppuccin-latte .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--catppuccin-latte html.has-navbar-fixed-top-touch,html.theme--catppuccin-latte body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--catppuccin-latte html.has-navbar-fixed-bottom-touch,html.theme--catppuccin-latte body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .navbar,html.theme--catppuccin-latte .navbar-menu,html.theme--catppuccin-latte .navbar-start,html.theme--catppuccin-latte .navbar-end{align-items:stretch;display:flex}html.theme--catppuccin-latte .navbar{min-height:4rem}html.theme--catppuccin-latte .navbar.is-spaced{padding:1rem 2rem}html.theme--catppuccin-latte .navbar.is-spaced .navbar-start,html.theme--catppuccin-latte .navbar.is-spaced .navbar-end{align-items:center}html.theme--catppuccin-latte .navbar.is-spaced a.navbar-item,html.theme--catppuccin-latte .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--catppuccin-latte .navbar.is-transparent a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-transparent a.navbar-item:hover,html.theme--catppuccin-latte .navbar.is-transparent a.navbar-item.is-active,html.theme--catppuccin-latte .navbar.is-transparent .navbar-link:focus,html.theme--catppuccin-latte .navbar.is-transparent .navbar-link:hover,html.theme--catppuccin-latte .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--catppuccin-latte .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-latte .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--catppuccin-latte .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--catppuccin-latte .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--catppuccin-latte .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-latte .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#8c8fa1}html.theme--catppuccin-latte .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1e66f5}html.theme--catppuccin-latte .navbar-burger{display:none}html.theme--catppuccin-latte .navbar-item,html.theme--catppuccin-latte .navbar-link{align-items:center;display:flex}html.theme--catppuccin-latte .navbar-item.has-dropdown{align-items:stretch}html.theme--catppuccin-latte .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--catppuccin-latte .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--catppuccin-latte .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--catppuccin-latte .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-latte .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-latte .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-latte .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--catppuccin-latte .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--catppuccin-latte .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--catppuccin-latte .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--catppuccin-latte .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--catppuccin-latte .navbar-dropdown{background-color:#1e66f5;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--catppuccin-latte .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--catppuccin-latte .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--catppuccin-latte .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-latte .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#8c8fa1}html.theme--catppuccin-latte .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1e66f5}.navbar.is-spaced html.theme--catppuccin-latte .navbar-dropdown,html.theme--catppuccin-latte .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--catppuccin-latte .navbar-dropdown.is-right{left:auto;right:0}html.theme--catppuccin-latte .navbar-divider{display:block}html.theme--catppuccin-latte .navbar>.container .navbar-brand,html.theme--catppuccin-latte .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--catppuccin-latte .navbar>.container .navbar-menu,html.theme--catppuccin-latte .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--catppuccin-latte .navbar.is-fixed-bottom-desktop,html.theme--catppuccin-latte .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-latte .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--catppuccin-latte .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-latte .navbar.is-fixed-top-desktop{top:0}html.theme--catppuccin-latte html.has-navbar-fixed-top-desktop,html.theme--catppuccin-latte body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--catppuccin-latte html.has-navbar-fixed-bottom-desktop,html.theme--catppuccin-latte body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--catppuccin-latte html.has-spaced-navbar-fixed-top,html.theme--catppuccin-latte body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--catppuccin-latte html.has-spaced-navbar-fixed-bottom,html.theme--catppuccin-latte body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--catppuccin-latte a.navbar-item.is-active,html.theme--catppuccin-latte .navbar-link.is-active{color:#1e66f5}html.theme--catppuccin-latte a.navbar-item.is-active:not(:focus):not(:hover),html.theme--catppuccin-latte .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--catppuccin-latte .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-latte .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-latte .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--catppuccin-latte .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--catppuccin-latte .pagination{font-size:1rem;margin:-.25rem}html.theme--catppuccin-latte .pagination.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--catppuccin-latte .pagination.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .pagination.is-large{font-size:1.5rem}html.theme--catppuccin-latte .pagination.is-rounded .pagination-previous,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--catppuccin-latte .pagination.is-rounded .pagination-next,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--catppuccin-latte .pagination.is-rounded .pagination-link,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--catppuccin-latte .pagination,html.theme--catppuccin-latte .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-link{border-color:#acb0be;color:#1e66f5;min-width:2.5em}html.theme--catppuccin-latte .pagination-previous:hover,html.theme--catppuccin-latte .pagination-next:hover,html.theme--catppuccin-latte .pagination-link:hover{border-color:#9ca0b0;color:#04a5e5}html.theme--catppuccin-latte .pagination-previous:focus,html.theme--catppuccin-latte .pagination-next:focus,html.theme--catppuccin-latte .pagination-link:focus{border-color:#9ca0b0}html.theme--catppuccin-latte .pagination-previous:active,html.theme--catppuccin-latte .pagination-next:active,html.theme--catppuccin-latte .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--catppuccin-latte .pagination-previous[disabled],html.theme--catppuccin-latte .pagination-previous.is-disabled,html.theme--catppuccin-latte .pagination-next[disabled],html.theme--catppuccin-latte .pagination-next.is-disabled,html.theme--catppuccin-latte .pagination-link[disabled],html.theme--catppuccin-latte .pagination-link.is-disabled{background-color:#acb0be;border-color:#acb0be;box-shadow:none;color:#616587;opacity:0.5}html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--catppuccin-latte .pagination-link.is-current{background-color:#1e66f5;border-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .pagination-ellipsis{color:#9ca0b0;pointer-events:none}html.theme--catppuccin-latte .pagination-list{flex-wrap:wrap}html.theme--catppuccin-latte .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--catppuccin-latte .pagination{flex-wrap:wrap}html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--catppuccin-latte .pagination-previous{order:2}html.theme--catppuccin-latte .pagination-next{order:3}html.theme--catppuccin-latte .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--catppuccin-latte .pagination.is-centered .pagination-previous{order:1}html.theme--catppuccin-latte .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--catppuccin-latte .pagination.is-centered .pagination-next{order:3}html.theme--catppuccin-latte .pagination.is-right .pagination-previous{order:1}html.theme--catppuccin-latte .pagination.is-right .pagination-next{order:2}html.theme--catppuccin-latte .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--catppuccin-latte .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--catppuccin-latte .panel:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-latte .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--catppuccin-latte .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--catppuccin-latte .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--catppuccin-latte .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--catppuccin-latte .panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}html.theme--catppuccin-latte .panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}html.theme--catppuccin-latte .panel.is-dark .panel-heading,html.theme--catppuccin-latte .content kbd.panel .panel-heading{background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .panel.is-dark .panel-tabs a.is-active,html.theme--catppuccin-latte .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#ccd0da}html.theme--catppuccin-latte .panel.is-dark .panel-block.is-active .panel-icon,html.theme--catppuccin-latte .content kbd.panel .panel-block.is-active .panel-icon{color:#ccd0da}html.theme--catppuccin-latte .panel.is-primary .panel-heading,html.theme--catppuccin-latte .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .panel.is-primary .panel-tabs a.is-active,html.theme--catppuccin-latte .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#1e66f5}html.theme--catppuccin-latte .panel.is-primary .panel-block.is-active .panel-icon,html.theme--catppuccin-latte .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#1e66f5}html.theme--catppuccin-latte .panel.is-link .panel-heading{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1e66f5}html.theme--catppuccin-latte .panel.is-link .panel-block.is-active .panel-icon{color:#1e66f5}html.theme--catppuccin-latte .panel.is-info .panel-heading{background-color:#179299;color:#fff}html.theme--catppuccin-latte .panel.is-info .panel-tabs a.is-active{border-bottom-color:#179299}html.theme--catppuccin-latte .panel.is-info .panel-block.is-active .panel-icon{color:#179299}html.theme--catppuccin-latte .panel.is-success .panel-heading{background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .panel.is-success .panel-tabs a.is-active{border-bottom-color:#40a02b}html.theme--catppuccin-latte .panel.is-success .panel-block.is-active .panel-icon{color:#40a02b}html.theme--catppuccin-latte .panel.is-warning .panel-heading{background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#df8e1d}html.theme--catppuccin-latte .panel.is-warning .panel-block.is-active .panel-icon{color:#df8e1d}html.theme--catppuccin-latte .panel.is-danger .panel-heading{background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#d20f39}html.theme--catppuccin-latte .panel.is-danger .panel-block.is-active .panel-icon{color:#d20f39}html.theme--catppuccin-latte .panel-tabs:not(:last-child),html.theme--catppuccin-latte .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--catppuccin-latte .panel-heading{background-color:#bcc0cc;border-radius:8px 8px 0 0;color:#41445a;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--catppuccin-latte .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--catppuccin-latte .panel-tabs a{border-bottom:1px solid #acb0be;margin-bottom:-1px;padding:0.5em}html.theme--catppuccin-latte .panel-tabs a.is-active{border-bottom-color:#bcc0cc;color:#0b57ef}html.theme--catppuccin-latte .panel-list a{color:#4c4f69}html.theme--catppuccin-latte .panel-list a:hover{color:#1e66f5}html.theme--catppuccin-latte .panel-block{align-items:center;color:#41445a;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--catppuccin-latte .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--catppuccin-latte .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--catppuccin-latte .panel-block.is-wrapped{flex-wrap:wrap}html.theme--catppuccin-latte .panel-block.is-active{border-left-color:#1e66f5;color:#0b57ef}html.theme--catppuccin-latte .panel-block.is-active .panel-icon{color:#1e66f5}html.theme--catppuccin-latte .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--catppuccin-latte a.panel-block,html.theme--catppuccin-latte label.panel-block{cursor:pointer}html.theme--catppuccin-latte a.panel-block:hover,html.theme--catppuccin-latte label.panel-block:hover{background-color:#e6e9ef}html.theme--catppuccin-latte .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#616587;margin-right:.75em}html.theme--catppuccin-latte .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--catppuccin-latte .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--catppuccin-latte .tabs a{align-items:center;border-bottom-color:#acb0be;border-bottom-style:solid;border-bottom-width:1px;color:#4c4f69;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--catppuccin-latte .tabs a:hover{border-bottom-color:#41445a;color:#41445a}html.theme--catppuccin-latte .tabs li{display:block}html.theme--catppuccin-latte .tabs li.is-active a{border-bottom-color:#1e66f5;color:#1e66f5}html.theme--catppuccin-latte .tabs ul{align-items:center;border-bottom-color:#acb0be;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--catppuccin-latte .tabs ul.is-left{padding-right:0.75em}html.theme--catppuccin-latte .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--catppuccin-latte .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--catppuccin-latte .tabs .icon:first-child{margin-right:.5em}html.theme--catppuccin-latte .tabs .icon:last-child{margin-left:.5em}html.theme--catppuccin-latte .tabs.is-centered ul{justify-content:center}html.theme--catppuccin-latte .tabs.is-right ul{justify-content:flex-end}html.theme--catppuccin-latte .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--catppuccin-latte .tabs.is-boxed a:hover{background-color:#e6e9ef;border-bottom-color:#acb0be}html.theme--catppuccin-latte .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#acb0be;border-bottom-color:rgba(0,0,0,0) !important}html.theme--catppuccin-latte .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--catppuccin-latte .tabs.is-toggle a{border-color:#acb0be;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--catppuccin-latte .tabs.is-toggle a:hover{background-color:#e6e9ef;border-color:#9ca0b0;z-index:2}html.theme--catppuccin-latte .tabs.is-toggle li+li{margin-left:-1px}html.theme--catppuccin-latte .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--catppuccin-latte .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--catppuccin-latte .tabs.is-toggle li.is-active a{background-color:#1e66f5;border-color:#1e66f5;color:#fff;z-index:1}html.theme--catppuccin-latte .tabs.is-toggle ul{border-bottom:none}html.theme--catppuccin-latte .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--catppuccin-latte .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--catppuccin-latte .tabs.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--catppuccin-latte .tabs.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .tabs.is-large{font-size:1.5rem}html.theme--catppuccin-latte .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--catppuccin-latte .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--catppuccin-latte .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-latte .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--catppuccin-latte .column.is-narrow-mobile{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full-mobile{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half-mobile{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half-mobile{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--catppuccin-latte .column.is-0-mobile{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0-mobile{margin-left:0%}html.theme--catppuccin-latte .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3-mobile{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3-mobile{margin-left:25%}html.theme--catppuccin-latte .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6-mobile{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6-mobile{margin-left:50%}html.theme--catppuccin-latte .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9-mobile{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9-mobile{margin-left:75%}html.theme--catppuccin-latte .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12-mobile{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .column.is-narrow,html.theme--catppuccin-latte .column.is-narrow-tablet{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full,html.theme--catppuccin-latte .column.is-full-tablet{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters,html.theme--catppuccin-latte .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds,html.theme--catppuccin-latte .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half,html.theme--catppuccin-latte .column.is-half-tablet{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third,html.theme--catppuccin-latte .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter,html.theme--catppuccin-latte .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth,html.theme--catppuccin-latte .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths,html.theme--catppuccin-latte .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths,html.theme--catppuccin-latte .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths,html.theme--catppuccin-latte .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters,html.theme--catppuccin-latte .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds,html.theme--catppuccin-latte .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half,html.theme--catppuccin-latte .column.is-offset-half-tablet{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third,html.theme--catppuccin-latte .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter,html.theme--catppuccin-latte .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth,html.theme--catppuccin-latte .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths,html.theme--catppuccin-latte .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths,html.theme--catppuccin-latte .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths,html.theme--catppuccin-latte .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--catppuccin-latte .column.is-0,html.theme--catppuccin-latte .column.is-0-tablet{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0,html.theme--catppuccin-latte .column.is-offset-0-tablet{margin-left:0%}html.theme--catppuccin-latte .column.is-1,html.theme--catppuccin-latte .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1,html.theme--catppuccin-latte .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2,html.theme--catppuccin-latte .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2,html.theme--catppuccin-latte .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3,html.theme--catppuccin-latte .column.is-3-tablet{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3,html.theme--catppuccin-latte .column.is-offset-3-tablet{margin-left:25%}html.theme--catppuccin-latte .column.is-4,html.theme--catppuccin-latte .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4,html.theme--catppuccin-latte .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5,html.theme--catppuccin-latte .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5,html.theme--catppuccin-latte .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6,html.theme--catppuccin-latte .column.is-6-tablet{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6,html.theme--catppuccin-latte .column.is-offset-6-tablet{margin-left:50%}html.theme--catppuccin-latte .column.is-7,html.theme--catppuccin-latte .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7,html.theme--catppuccin-latte .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8,html.theme--catppuccin-latte .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8,html.theme--catppuccin-latte .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9,html.theme--catppuccin-latte .column.is-9-tablet{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9,html.theme--catppuccin-latte .column.is-offset-9-tablet{margin-left:75%}html.theme--catppuccin-latte .column.is-10,html.theme--catppuccin-latte .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10,html.theme--catppuccin-latte .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11,html.theme--catppuccin-latte .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11,html.theme--catppuccin-latte .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12,html.theme--catppuccin-latte .column.is-12-tablet{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12,html.theme--catppuccin-latte .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .column.is-narrow-touch{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full-touch{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters-touch{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half-touch{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter-touch{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth-touch{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths-touch{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths-touch{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths-touch{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half-touch{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--catppuccin-latte .column.is-0-touch{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0-touch{margin-left:0%}html.theme--catppuccin-latte .column.is-1-touch{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2-touch{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3-touch{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3-touch{margin-left:25%}html.theme--catppuccin-latte .column.is-4-touch{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5-touch{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6-touch{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6-touch{margin-left:50%}html.theme--catppuccin-latte .column.is-7-touch{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8-touch{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9-touch{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9-touch{margin-left:75%}html.theme--catppuccin-latte .column.is-10-touch{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11-touch{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12-touch{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .column.is-narrow-desktop{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full-desktop{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half-desktop{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half-desktop{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--catppuccin-latte .column.is-0-desktop{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0-desktop{margin-left:0%}html.theme--catppuccin-latte .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3-desktop{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3-desktop{margin-left:25%}html.theme--catppuccin-latte .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6-desktop{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6-desktop{margin-left:50%}html.theme--catppuccin-latte .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9-desktop{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9-desktop{margin-left:75%}html.theme--catppuccin-latte .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12-desktop{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .column.is-narrow-widescreen{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full-widescreen{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half-widescreen{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half-widescreen{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--catppuccin-latte .column.is-0-widescreen{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0-widescreen{margin-left:0%}html.theme--catppuccin-latte .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3-widescreen{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3-widescreen{margin-left:25%}html.theme--catppuccin-latte .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6-widescreen{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6-widescreen{margin-left:50%}html.theme--catppuccin-latte .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9-widescreen{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9-widescreen{margin-left:75%}html.theme--catppuccin-latte .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12-widescreen{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .column.is-narrow-fullhd{flex:none;width:unset}html.theme--catppuccin-latte .column.is-full-fullhd{flex:none;width:100%}html.theme--catppuccin-latte .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--catppuccin-latte .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--catppuccin-latte .column.is-half-fullhd{flex:none;width:50%}html.theme--catppuccin-latte .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--catppuccin-latte .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--catppuccin-latte .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--catppuccin-latte .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--catppuccin-latte .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--catppuccin-latte .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--catppuccin-latte .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--catppuccin-latte .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--catppuccin-latte .column.is-offset-half-fullhd{margin-left:50%}html.theme--catppuccin-latte .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--catppuccin-latte .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--catppuccin-latte .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--catppuccin-latte .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--catppuccin-latte .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--catppuccin-latte .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--catppuccin-latte .column.is-0-fullhd{flex:none;width:0%}html.theme--catppuccin-latte .column.is-offset-0-fullhd{margin-left:0%}html.theme--catppuccin-latte .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--catppuccin-latte .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--catppuccin-latte .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--catppuccin-latte .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--catppuccin-latte .column.is-3-fullhd{flex:none;width:25%}html.theme--catppuccin-latte .column.is-offset-3-fullhd{margin-left:25%}html.theme--catppuccin-latte .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--catppuccin-latte .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--catppuccin-latte .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--catppuccin-latte .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--catppuccin-latte .column.is-6-fullhd{flex:none;width:50%}html.theme--catppuccin-latte .column.is-offset-6-fullhd{margin-left:50%}html.theme--catppuccin-latte .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--catppuccin-latte .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--catppuccin-latte .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--catppuccin-latte .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--catppuccin-latte .column.is-9-fullhd{flex:none;width:75%}html.theme--catppuccin-latte .column.is-offset-9-fullhd{margin-left:75%}html.theme--catppuccin-latte .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--catppuccin-latte .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--catppuccin-latte .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--catppuccin-latte .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--catppuccin-latte .column.is-12-fullhd{flex:none;width:100%}html.theme--catppuccin-latte .column.is-offset-12-fullhd{margin-left:100%}}html.theme--catppuccin-latte .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-latte .columns:last-child{margin-bottom:-.75rem}html.theme--catppuccin-latte .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--catppuccin-latte .columns.is-centered{justify-content:center}html.theme--catppuccin-latte .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--catppuccin-latte .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--catppuccin-latte .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-latte .columns.is-gapless:last-child{margin-bottom:0}html.theme--catppuccin-latte .columns.is-mobile{display:flex}html.theme--catppuccin-latte .columns.is-multiline{flex-wrap:wrap}html.theme--catppuccin-latte .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-desktop{display:flex}}html.theme--catppuccin-latte .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--catppuccin-latte .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--catppuccin-latte .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--catppuccin-latte .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--catppuccin-latte .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--catppuccin-latte .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--catppuccin-latte .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--catppuccin-latte .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--catppuccin-latte .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--catppuccin-latte .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--catppuccin-latte .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-latte .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-latte .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-latte .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-latte .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--catppuccin-latte .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--catppuccin-latte .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-latte .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--catppuccin-latte .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-latte .tile.is-child{margin:0 !important}html.theme--catppuccin-latte .tile.is-parent{padding:.75rem}html.theme--catppuccin-latte .tile.is-vertical{flex-direction:column}html.theme--catppuccin-latte .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .tile:not(.is-child){display:flex}html.theme--catppuccin-latte .tile.is-1{flex:none;width:8.33333337%}html.theme--catppuccin-latte .tile.is-2{flex:none;width:16.66666674%}html.theme--catppuccin-latte .tile.is-3{flex:none;width:25%}html.theme--catppuccin-latte .tile.is-4{flex:none;width:33.33333337%}html.theme--catppuccin-latte .tile.is-5{flex:none;width:41.66666674%}html.theme--catppuccin-latte .tile.is-6{flex:none;width:50%}html.theme--catppuccin-latte .tile.is-7{flex:none;width:58.33333337%}html.theme--catppuccin-latte .tile.is-8{flex:none;width:66.66666674%}html.theme--catppuccin-latte .tile.is-9{flex:none;width:75%}html.theme--catppuccin-latte .tile.is-10{flex:none;width:83.33333337%}html.theme--catppuccin-latte .tile.is-11{flex:none;width:91.66666674%}html.theme--catppuccin-latte .tile.is-12{flex:none;width:100%}}html.theme--catppuccin-latte .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--catppuccin-latte .hero .navbar{background:none}html.theme--catppuccin-latte .hero .tabs ul{border-bottom:none}html.theme--catppuccin-latte .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-white strong{color:inherit}html.theme--catppuccin-latte .hero.is-white .title{color:#0a0a0a}html.theme--catppuccin-latte .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--catppuccin-latte .hero.is-white .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-white .navbar-menu{background-color:#fff}}html.theme--catppuccin-latte .hero.is-white .navbar-item,html.theme--catppuccin-latte .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--catppuccin-latte .hero.is-white a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-white a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-white .navbar-link:hover,html.theme--catppuccin-latte .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-latte .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--catppuccin-latte .hero.is-white .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--catppuccin-latte .hero.is-white .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--catppuccin-latte .hero.is-white .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-white .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-white .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--catppuccin-latte .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-latte .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-black strong{color:inherit}html.theme--catppuccin-latte .hero.is-black .title{color:#fff}html.theme--catppuccin-latte .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-black .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--catppuccin-latte .hero.is-black .navbar-item,html.theme--catppuccin-latte .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-black a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-black a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-black .navbar-link:hover,html.theme--catppuccin-latte .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-latte .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-black .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--catppuccin-latte .hero.is-black .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-black .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-black .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-black .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-latte .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--catppuccin-latte .hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-light strong{color:inherit}html.theme--catppuccin-latte .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-latte .hero.is-light .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-light .navbar-menu{background-color:#f5f5f5}}html.theme--catppuccin-latte .hero.is-light .navbar-item,html.theme--catppuccin-latte .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-light a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-light a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-light .navbar-link:hover,html.theme--catppuccin-latte .hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-latte .hero.is-light .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}html.theme--catppuccin-latte .hero.is-light .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-light .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-light .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-light .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .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}html.theme--catppuccin-latte .hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}html.theme--catppuccin-latte .hero.is-dark,html.theme--catppuccin-latte .content kbd.hero{background-color:#ccd0da;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-dark strong,html.theme--catppuccin-latte .content kbd.hero strong{color:inherit}html.theme--catppuccin-latte .hero.is-dark .title,html.theme--catppuccin-latte .content kbd.hero .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-dark .subtitle,html.theme--catppuccin-latte .content kbd.hero .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-latte .hero.is-dark .subtitle a:not(.button),html.theme--catppuccin-latte .content kbd.hero .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-dark .subtitle strong,html.theme--catppuccin-latte .content kbd.hero .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-dark .navbar-menu,html.theme--catppuccin-latte .content kbd.hero .navbar-menu{background-color:#ccd0da}}html.theme--catppuccin-latte .hero.is-dark .navbar-item,html.theme--catppuccin-latte .content kbd.hero .navbar-item,html.theme--catppuccin-latte .hero.is-dark .navbar-link,html.theme--catppuccin-latte .content kbd.hero .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-dark a.navbar-item:hover,html.theme--catppuccin-latte .content kbd.hero a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-dark a.navbar-item.is-active,html.theme--catppuccin-latte .content kbd.hero a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-dark .navbar-link:hover,html.theme--catppuccin-latte .content kbd.hero .navbar-link:hover,html.theme--catppuccin-latte .hero.is-dark .navbar-link.is-active,html.theme--catppuccin-latte .content kbd.hero .navbar-link.is-active{background-color:#bdc2cf;color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-dark .tabs a,html.theme--catppuccin-latte .content kbd.hero .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-latte .hero.is-dark .tabs a:hover,html.theme--catppuccin-latte .content kbd.hero .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-dark .tabs li.is-active a,html.theme--catppuccin-latte .content kbd.hero .tabs li.is-active a{color:#ccd0da !important;opacity:1}html.theme--catppuccin-latte .hero.is-dark .tabs.is-boxed a,html.theme--catppuccin-latte .content kbd.hero .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-dark .tabs.is-toggle a,html.theme--catppuccin-latte .content kbd.hero .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-latte .hero.is-dark .tabs.is-boxed a:hover,html.theme--catppuccin-latte .content kbd.hero .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-dark .tabs.is-toggle a:hover,html.theme--catppuccin-latte .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-dark .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:#ccd0da}html.theme--catppuccin-latte .hero.is-dark.is-bold,html.theme--catppuccin-latte .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #a7b8cc 0%, #ccd0da 71%, #d9dbe6 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-dark.is-bold .navbar-menu,html.theme--catppuccin-latte .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a7b8cc 0%, #ccd0da 71%, #d9dbe6 100%)}}html.theme--catppuccin-latte .hero.is-primary,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-primary strong,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--catppuccin-latte .hero.is-primary .title,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--catppuccin-latte .hero.is-primary .subtitle,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-primary .subtitle a:not(.button),html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-primary .subtitle strong,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-primary .navbar-menu,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#1e66f5}}html.theme--catppuccin-latte .hero.is-primary .navbar-item,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--catppuccin-latte .hero.is-primary .navbar-link,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-primary a.navbar-item:hover,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-primary a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-primary .navbar-link:hover,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--catppuccin-latte .hero.is-primary .navbar-link.is-active,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .hero.is-primary .tabs a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-primary .tabs a:hover,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-primary .tabs li.is-active a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#1e66f5 !important;opacity:1}html.theme--catppuccin-latte .hero.is-primary .tabs.is-boxed a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-primary .tabs.is-toggle a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-primary .tabs.is-boxed a:hover,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-primary .tabs.is-toggle a:hover,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .hero.is-primary.is-bold,html.theme--catppuccin-latte .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #0070e0 0%, #1e66f5 71%, #3153fb 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-primary.is-bold .navbar-menu,html.theme--catppuccin-latte .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #0070e0 0%, #1e66f5 71%, #3153fb 100%)}}html.theme--catppuccin-latte .hero.is-link{background-color:#1e66f5;color:#fff}html.theme--catppuccin-latte .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-link strong{color:inherit}html.theme--catppuccin-latte .hero.is-link .title{color:#fff}html.theme--catppuccin-latte .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-link .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-link .navbar-menu{background-color:#1e66f5}}html.theme--catppuccin-latte .hero.is-link .navbar-item,html.theme--catppuccin-latte .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-link a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-link a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-link .navbar-link:hover,html.theme--catppuccin-latte .hero.is-link .navbar-link.is-active{background-color:#0b57ef;color:#fff}html.theme--catppuccin-latte .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-link .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-link .tabs li.is-active a{color:#1e66f5 !important;opacity:1}html.theme--catppuccin-latte .hero.is-link .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-link .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-link .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-link .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1e66f5}html.theme--catppuccin-latte .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0070e0 0%, #1e66f5 71%, #3153fb 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0070e0 0%, #1e66f5 71%, #3153fb 100%)}}html.theme--catppuccin-latte .hero.is-info{background-color:#179299;color:#fff}html.theme--catppuccin-latte .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-info strong{color:inherit}html.theme--catppuccin-latte .hero.is-info .title{color:#fff}html.theme--catppuccin-latte .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-info .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-info .navbar-menu{background-color:#179299}}html.theme--catppuccin-latte .hero.is-info .navbar-item,html.theme--catppuccin-latte .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-info a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-info a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-info .navbar-link:hover,html.theme--catppuccin-latte .hero.is-info .navbar-link.is-active{background-color:#147d83;color:#fff}html.theme--catppuccin-latte .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-info .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-info .tabs li.is-active a{color:#179299 !important;opacity:1}html.theme--catppuccin-latte .hero.is-info .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-info .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-info .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-info .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#179299}html.theme--catppuccin-latte .hero.is-info.is-bold{background-image:linear-gradient(141deg, #0a7367 0%, #179299 71%, #1591b4 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0a7367 0%, #179299 71%, #1591b4 100%)}}html.theme--catppuccin-latte .hero.is-success{background-color:#40a02b;color:#fff}html.theme--catppuccin-latte .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-success strong{color:inherit}html.theme--catppuccin-latte .hero.is-success .title{color:#fff}html.theme--catppuccin-latte .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-success .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-success .navbar-menu{background-color:#40a02b}}html.theme--catppuccin-latte .hero.is-success .navbar-item,html.theme--catppuccin-latte .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-success a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-success a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-success .navbar-link:hover,html.theme--catppuccin-latte .hero.is-success .navbar-link.is-active{background-color:#388c26;color:#fff}html.theme--catppuccin-latte .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-success .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-success .tabs li.is-active a{color:#40a02b !important;opacity:1}html.theme--catppuccin-latte .hero.is-success .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-success .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-success .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-success .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#40a02b}html.theme--catppuccin-latte .hero.is-success.is-bold{background-image:linear-gradient(141deg, #3c7f19 0%, #40a02b 71%, #2dba2b 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #3c7f19 0%, #40a02b 71%, #2dba2b 100%)}}html.theme--catppuccin-latte .hero.is-warning{background-color:#df8e1d;color:#fff}html.theme--catppuccin-latte .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-warning strong{color:inherit}html.theme--catppuccin-latte .hero.is-warning .title{color:#fff}html.theme--catppuccin-latte .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-warning .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-warning .navbar-menu{background-color:#df8e1d}}html.theme--catppuccin-latte .hero.is-warning .navbar-item,html.theme--catppuccin-latte .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-warning a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-warning a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-warning .navbar-link:hover,html.theme--catppuccin-latte .hero.is-warning .navbar-link.is-active{background-color:#c8801a;color:#fff}html.theme--catppuccin-latte .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-warning .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-warning .tabs li.is-active a{color:#df8e1d !important;opacity:1}html.theme--catppuccin-latte .hero.is-warning .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-warning .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#df8e1d}html.theme--catppuccin-latte .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #bc560d 0%, #df8e1d 71%, #eaba2b 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #bc560d 0%, #df8e1d 71%, #eaba2b 100%)}}html.theme--catppuccin-latte .hero.is-danger{background-color:#d20f39;color:#fff}html.theme--catppuccin-latte .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-latte .hero.is-danger strong{color:inherit}html.theme--catppuccin-latte .hero.is-danger .title{color:#fff}html.theme--catppuccin-latte .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-latte .hero.is-danger .subtitle a:not(.button),html.theme--catppuccin-latte .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .hero.is-danger .navbar-menu{background-color:#d20f39}}html.theme--catppuccin-latte .hero.is-danger .navbar-item,html.theme--catppuccin-latte .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-latte .hero.is-danger a.navbar-item:hover,html.theme--catppuccin-latte .hero.is-danger a.navbar-item.is-active,html.theme--catppuccin-latte .hero.is-danger .navbar-link:hover,html.theme--catppuccin-latte .hero.is-danger .navbar-link.is-active{background-color:#ba0d33;color:#fff}html.theme--catppuccin-latte .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-latte .hero.is-danger .tabs a:hover{opacity:1}html.theme--catppuccin-latte .hero.is-danger .tabs li.is-active a{color:#d20f39 !important;opacity:1}html.theme--catppuccin-latte .hero.is-danger .tabs.is-boxed a,html.theme--catppuccin-latte .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--catppuccin-latte .hero.is-danger .tabs.is-boxed a:hover,html.theme--catppuccin-latte .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-latte .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--catppuccin-latte .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-latte .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--catppuccin-latte .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#d20f39}html.theme--catppuccin-latte .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #ab0343 0%, #d20f39 71%, #f00a16 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ab0343 0%, #d20f39 71%, #f00a16 100%)}}html.theme--catppuccin-latte .hero.is-small .hero-body,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--catppuccin-latte .hero.is-halfheight .hero-body,html.theme--catppuccin-latte .hero.is-fullheight .hero-body,html.theme--catppuccin-latte .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--catppuccin-latte .hero.is-halfheight .hero-body>.container,html.theme--catppuccin-latte .hero.is-fullheight .hero-body>.container,html.theme--catppuccin-latte .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--catppuccin-latte .hero.is-halfheight{min-height:50vh}html.theme--catppuccin-latte .hero.is-fullheight{min-height:100vh}html.theme--catppuccin-latte .hero-video{overflow:hidden}html.theme--catppuccin-latte .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--catppuccin-latte .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero-video{display:none}}html.theme--catppuccin-latte .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-latte .hero-buttons .button{display:flex}html.theme--catppuccin-latte .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .hero-buttons{display:flex;justify-content:center}html.theme--catppuccin-latte .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--catppuccin-latte .hero-head,html.theme--catppuccin-latte .hero-foot{flex-grow:0;flex-shrink:0}html.theme--catppuccin-latte .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-latte .hero-body{padding:3rem 3rem}}html.theme--catppuccin-latte .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--catppuccin-latte .section{padding:3rem 3rem}html.theme--catppuccin-latte .section.is-medium{padding:9rem 4.5rem}html.theme--catppuccin-latte .section.is-large{padding:18rem 6rem}}html.theme--catppuccin-latte .footer{background-color:#e6e9ef;padding:3rem 1.5rem 6rem}html.theme--catppuccin-latte h1 .docs-heading-anchor,html.theme--catppuccin-latte h1 .docs-heading-anchor:hover,html.theme--catppuccin-latte h1 .docs-heading-anchor:visited,html.theme--catppuccin-latte h2 .docs-heading-anchor,html.theme--catppuccin-latte h2 .docs-heading-anchor:hover,html.theme--catppuccin-latte h2 .docs-heading-anchor:visited,html.theme--catppuccin-latte h3 .docs-heading-anchor,html.theme--catppuccin-latte h3 .docs-heading-anchor:hover,html.theme--catppuccin-latte h3 .docs-heading-anchor:visited,html.theme--catppuccin-latte h4 .docs-heading-anchor,html.theme--catppuccin-latte h4 .docs-heading-anchor:hover,html.theme--catppuccin-latte h4 .docs-heading-anchor:visited,html.theme--catppuccin-latte h5 .docs-heading-anchor,html.theme--catppuccin-latte h5 .docs-heading-anchor:hover,html.theme--catppuccin-latte h5 .docs-heading-anchor:visited,html.theme--catppuccin-latte h6 .docs-heading-anchor,html.theme--catppuccin-latte h6 .docs-heading-anchor:hover,html.theme--catppuccin-latte h6 .docs-heading-anchor:visited{color:#4c4f69}html.theme--catppuccin-latte h1 .docs-heading-anchor-permalink,html.theme--catppuccin-latte h2 .docs-heading-anchor-permalink,html.theme--catppuccin-latte h3 .docs-heading-anchor-permalink,html.theme--catppuccin-latte h4 .docs-heading-anchor-permalink,html.theme--catppuccin-latte h5 .docs-heading-anchor-permalink,html.theme--catppuccin-latte h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--catppuccin-latte h1 .docs-heading-anchor-permalink::before,html.theme--catppuccin-latte h2 .docs-heading-anchor-permalink::before,html.theme--catppuccin-latte h3 .docs-heading-anchor-permalink::before,html.theme--catppuccin-latte h4 .docs-heading-anchor-permalink::before,html.theme--catppuccin-latte h5 .docs-heading-anchor-permalink::before,html.theme--catppuccin-latte h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--catppuccin-latte h1:hover .docs-heading-anchor-permalink,html.theme--catppuccin-latte h2:hover .docs-heading-anchor-permalink,html.theme--catppuccin-latte h3:hover .docs-heading-anchor-permalink,html.theme--catppuccin-latte h4:hover .docs-heading-anchor-permalink,html.theme--catppuccin-latte h5:hover .docs-heading-anchor-permalink,html.theme--catppuccin-latte h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--catppuccin-latte .docs-dark-only{display:none !important}html.theme--catppuccin-latte pre{position:relative;overflow:hidden}html.theme--catppuccin-latte pre code,html.theme--catppuccin-latte pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--catppuccin-latte pre code:first-of-type,html.theme--catppuccin-latte pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--catppuccin-latte pre code:last-of-type,html.theme--catppuccin-latte pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--catppuccin-latte 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:#4c4f69;cursor:pointer;text-align:center}html.theme--catppuccin-latte pre .copy-button:focus,html.theme--catppuccin-latte pre .copy-button:hover{opacity:1;background:rgba(76,79,105,0.1);color:#1e66f5}html.theme--catppuccin-latte pre .copy-button.success{color:#40a02b;opacity:1}html.theme--catppuccin-latte pre .copy-button.error{color:#d20f39;opacity:1}html.theme--catppuccin-latte pre:hover .copy-button{opacity:1}html.theme--catppuccin-latte .admonition{background-color:#e6e9ef;border-style:solid;border-width:2px;border-color:#5c5f77;border-radius:4px;font-size:1rem}html.theme--catppuccin-latte .admonition strong{color:currentColor}html.theme--catppuccin-latte .admonition.is-small,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--catppuccin-latte .admonition.is-medium{font-size:1.25rem}html.theme--catppuccin-latte .admonition.is-large{font-size:1.5rem}html.theme--catppuccin-latte .admonition.is-default{background-color:#e6e9ef;border-color:#5c5f77}html.theme--catppuccin-latte .admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#5c5f77}html.theme--catppuccin-latte .admonition.is-default>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-info{background-color:#e6e9ef;border-color:#179299}html.theme--catppuccin-latte .admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#179299}html.theme--catppuccin-latte .admonition.is-info>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-success{background-color:#e6e9ef;border-color:#40a02b}html.theme--catppuccin-latte .admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#40a02b}html.theme--catppuccin-latte .admonition.is-success>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-warning{background-color:#e6e9ef;border-color:#df8e1d}html.theme--catppuccin-latte .admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#df8e1d}html.theme--catppuccin-latte .admonition.is-warning>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-danger{background-color:#e6e9ef;border-color:#d20f39}html.theme--catppuccin-latte .admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#d20f39}html.theme--catppuccin-latte .admonition.is-danger>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-compat{background-color:#e6e9ef;border-color:#04a5e5}html.theme--catppuccin-latte .admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#04a5e5}html.theme--catppuccin-latte .admonition.is-compat>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition.is-todo{background-color:#e6e9ef;border-color:#8839ef}html.theme--catppuccin-latte .admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#8839ef}html.theme--catppuccin-latte .admonition.is-todo>.admonition-body{color:#4c4f69}html.theme--catppuccin-latte .admonition-header{color:#5c5f77;background-color:rgba(0,0,0,0);align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--catppuccin-latte .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--catppuccin-latte details.admonition.is-details>.admonition-header{list-style:none}html.theme--catppuccin-latte details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--catppuccin-latte details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--catppuccin-latte .admonition-body{color:#4c4f69;padding:0.5rem .75rem}html.theme--catppuccin-latte .admonition-body pre{background-color:#e6e9ef}html.theme--catppuccin-latte .admonition-body code{background-color:#e6e9ef}html.theme--catppuccin-latte .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:2px solid #acb0be;border-radius:4px;box-shadow:none;max-width:100%}html.theme--catppuccin-latte .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#e6e9ef;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #acb0be;overflow:auto}html.theme--catppuccin-latte .docstring>header code{background-color:transparent}html.theme--catppuccin-latte .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--catppuccin-latte .docstring>header .docstring-binding{margin-right:0.3em}html.theme--catppuccin-latte .docstring>header .docstring-category{margin-left:0.3em}html.theme--catppuccin-latte .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #acb0be}html.theme--catppuccin-latte .docstring>section:last-child{border-bottom:none}html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--catppuccin-latte .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-latte .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-latte .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--catppuccin-latte .documenter-example-output{background-color:#eff1f5}html.theme--catppuccin-latte .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:#e6e9ef;color:#4c4f69;border-bottom:3px solid rgba(0,0,0,0);padding:10px 35px;text-align:center;font-size:15px}html.theme--catppuccin-latte .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--catppuccin-latte .outdated-warning-overlay a{color:#1e66f5}html.theme--catppuccin-latte .outdated-warning-overlay a:hover{color:#04a5e5}html.theme--catppuccin-latte .content pre{border:2px solid #acb0be;border-radius:4px}html.theme--catppuccin-latte .content code{font-weight:inherit}html.theme--catppuccin-latte .content a code{color:#1e66f5}html.theme--catppuccin-latte .content a:hover code{color:#04a5e5}html.theme--catppuccin-latte .content h1 code,html.theme--catppuccin-latte .content h2 code,html.theme--catppuccin-latte .content h3 code,html.theme--catppuccin-latte .content h4 code,html.theme--catppuccin-latte .content h5 code,html.theme--catppuccin-latte .content h6 code{color:#4c4f69}html.theme--catppuccin-latte .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--catppuccin-latte .content blockquote>ul:first-child,html.theme--catppuccin-latte .content blockquote>ol:first-child,html.theme--catppuccin-latte .content .admonition-body>ul:first-child,html.theme--catppuccin-latte .content .admonition-body>ol:first-child{margin-top:0}html.theme--catppuccin-latte pre,html.theme--catppuccin-latte code{font-variant-ligatures:no-contextual}html.theme--catppuccin-latte .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--catppuccin-latte .breadcrumb a.is-disabled,html.theme--catppuccin-latte .breadcrumb a.is-disabled:hover{color:#41445a}html.theme--catppuccin-latte .hljs{background:initial !important}html.theme--catppuccin-latte .katex .katex-mathml{top:0;right:0}html.theme--catppuccin-latte .katex-display,html.theme--catppuccin-latte mjx-container,html.theme--catppuccin-latte .MathJax_Display{margin:0.5em 0 !important}html.theme--catppuccin-latte html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--catppuccin-latte li.no-marker{list-style:none}html.theme--catppuccin-latte #documenter .docs-main>article{overflow-wrap:break-word}html.theme--catppuccin-latte #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--catppuccin-latte #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte #documenter .docs-main{width:100%}html.theme--catppuccin-latte #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--catppuccin-latte #documenter .docs-main>header,html.theme--catppuccin-latte #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar{background-color:#eff1f5;border-bottom:1px solid #acb0be;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--catppuccin-latte #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--catppuccin-latte #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--catppuccin-latte #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--catppuccin-latte #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--catppuccin-latte #documenter .docs-main section.footnotes{border-top:1px solid #acb0be}html.theme--catppuccin-latte #documenter .docs-main section.footnotes li .tag:first-child,html.theme--catppuccin-latte #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--catppuccin-latte #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--catppuccin-latte .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--catppuccin-latte #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #acb0be;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--catppuccin-latte #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--catppuccin-latte #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--catppuccin-latte #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--catppuccin-latte #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--catppuccin-latte #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--catppuccin-latte #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--catppuccin-latte #documenter .docs-sidebar{display:flex;flex-direction:column;color:#4c4f69;background-color:#e6e9ef;border-right:1px solid #acb0be;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--catppuccin-latte #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--catppuccin-latte #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--catppuccin-latte #documenter .docs-sidebar{left:0;top:0}}html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--catppuccin-latte #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--catppuccin-latte #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--catppuccin-latte #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--catppuccin-latte #documenter .docs-sidebar .docs-package-name a,html.theme--catppuccin-latte #documenter .docs-sidebar .docs-package-name a:hover{color:#4c4f69}html.theme--catppuccin-latte #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #acb0be;display:none;padding:0.5rem}html.theme--catppuccin-latte #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #acb0be;padding-bottom:1.5rem}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #acb0be}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--catppuccin-latte #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--catppuccin-latte #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#4c4f69;background:#e6e9ef}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#4c4f69;background-color:#f2f4f7}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #acb0be;border-bottom:1px solid #acb0be;background-color:#dce0e8}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#dce0e8;color:#4c4f69}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#f2f4f7;color:#4c4f69}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #acb0be}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--catppuccin-latte #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--catppuccin-latte #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#fff}html.theme--catppuccin-latte #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#fff}}@media screen and (max-width: 1055px){html.theme--catppuccin-latte #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-latte #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-latte #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#fff}html.theme--catppuccin-latte #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#fff}}html.theme--catppuccin-latte 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--catppuccin-latte .search-min-width-50{min-width:50%}html.theme--catppuccin-latte .search-min-height-100{min-height:100%}html.theme--catppuccin-latte .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--catppuccin-latte .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-latte .search-result-link:hover,html.theme--catppuccin-latte .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--catppuccin-latte .search-result-link .property-search-result-badge,html.theme--catppuccin-latte .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-latte .property-search-result-badge,html.theme--catppuccin-latte .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--catppuccin-latte .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-latte .search-result-link:hover .search-filter,html.theme--catppuccin-latte .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-latte .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--catppuccin-latte .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--catppuccin-latte .search-filter:hover,html.theme--catppuccin-latte .search-filter:focus{color:#333}html.theme--catppuccin-latte .search-filter-selected{color:#ccd0da;background-color:#7287fd}html.theme--catppuccin-latte .search-filter-selected:hover,html.theme--catppuccin-latte .search-filter-selected:focus{color:#ccd0da}html.theme--catppuccin-latte .search-result-highlight{background-color:#ffdd57;color:black}html.theme--catppuccin-latte .search-divider{border-bottom:1px solid #acb0be}html.theme--catppuccin-latte .search-result-title{width:85%;color:#f5f5f5}html.theme--catppuccin-latte .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--catppuccin-latte #search-modal .modal-card-body::-webkit-scrollbar,html.theme--catppuccin-latte #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--catppuccin-latte #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--catppuccin-latte #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--catppuccin-latte #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--catppuccin-latte #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--catppuccin-latte .w-100{width:100%}html.theme--catppuccin-latte .gap-2{gap:0.5rem}html.theme--catppuccin-latte .gap-4{gap:1rem}html.theme--catppuccin-latte .gap-8{gap:2rem}html.theme--catppuccin-latte{background-color:#eff1f5;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--catppuccin-latte a{transition:all 200ms ease}html.theme--catppuccin-latte .label{color:#4c4f69}html.theme--catppuccin-latte .button,html.theme--catppuccin-latte .control.has-icons-left .icon,html.theme--catppuccin-latte .control.has-icons-right .icon,html.theme--catppuccin-latte .input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte .pagination-ellipsis,html.theme--catppuccin-latte .pagination-link,html.theme--catppuccin-latte .pagination-next,html.theme--catppuccin-latte .pagination-previous,html.theme--catppuccin-latte .select,html.theme--catppuccin-latte .select select,html.theme--catppuccin-latte .textarea{height:2.5em;color:#4c4f69}html.theme--catppuccin-latte .input,html.theme--catppuccin-latte #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-latte .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em;color:#4c4f69}html.theme--catppuccin-latte .select:after,html.theme--catppuccin-latte .select select{border-width:1px}html.theme--catppuccin-latte .menu-list a{transition:all 300ms ease}html.theme--catppuccin-latte .modal-card-foot,html.theme--catppuccin-latte .modal-card-head{border-color:#acb0be}html.theme--catppuccin-latte .navbar{border-radius:.4em}html.theme--catppuccin-latte .navbar.is-transparent{background:none}html.theme--catppuccin-latte .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-latte .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1e66f5}@media screen and (max-width: 1055px){html.theme--catppuccin-latte .navbar .navbar-menu{background-color:#1e66f5;border-radius:0 0 .4em .4em}}html.theme--catppuccin-latte .docstring>section>a.docs-sourcelink:not(body){color:#ccd0da}html.theme--catppuccin-latte .tag.is-link:not(body),html.theme--catppuccin-latte .docstring>section>a.is-link.docs-sourcelink:not(body),html.theme--catppuccin-latte .content kbd.is-link:not(body){color:#ccd0da}html.theme--catppuccin-latte .ansi span.sgr1{font-weight:bolder}html.theme--catppuccin-latte .ansi span.sgr2{font-weight:lighter}html.theme--catppuccin-latte .ansi span.sgr3{font-style:italic}html.theme--catppuccin-latte .ansi span.sgr4{text-decoration:underline}html.theme--catppuccin-latte .ansi span.sgr7{color:#eff1f5;background-color:#4c4f69}html.theme--catppuccin-latte .ansi span.sgr8{color:transparent}html.theme--catppuccin-latte .ansi span.sgr8 span{color:transparent}html.theme--catppuccin-latte .ansi span.sgr9{text-decoration:line-through}html.theme--catppuccin-latte .ansi span.sgr30{color:#5c5f77}html.theme--catppuccin-latte .ansi span.sgr31{color:#d20f39}html.theme--catppuccin-latte .ansi span.sgr32{color:#40a02b}html.theme--catppuccin-latte .ansi span.sgr33{color:#df8e1d}html.theme--catppuccin-latte .ansi span.sgr34{color:#1e66f5}html.theme--catppuccin-latte .ansi span.sgr35{color:#ea76cb}html.theme--catppuccin-latte .ansi span.sgr36{color:#179299}html.theme--catppuccin-latte .ansi span.sgr37{color:#acb0be}html.theme--catppuccin-latte .ansi span.sgr40{background-color:#5c5f77}html.theme--catppuccin-latte .ansi span.sgr41{background-color:#d20f39}html.theme--catppuccin-latte .ansi span.sgr42{background-color:#40a02b}html.theme--catppuccin-latte .ansi span.sgr43{background-color:#df8e1d}html.theme--catppuccin-latte .ansi span.sgr44{background-color:#1e66f5}html.theme--catppuccin-latte .ansi span.sgr45{background-color:#ea76cb}html.theme--catppuccin-latte .ansi span.sgr46{background-color:#179299}html.theme--catppuccin-latte .ansi span.sgr47{background-color:#acb0be}html.theme--catppuccin-latte .ansi span.sgr90{color:#6c6f85}html.theme--catppuccin-latte .ansi span.sgr91{color:#d20f39}html.theme--catppuccin-latte .ansi span.sgr92{color:#40a02b}html.theme--catppuccin-latte .ansi span.sgr93{color:#df8e1d}html.theme--catppuccin-latte .ansi span.sgr94{color:#1e66f5}html.theme--catppuccin-latte .ansi span.sgr95{color:#ea76cb}html.theme--catppuccin-latte .ansi span.sgr96{color:#179299}html.theme--catppuccin-latte .ansi span.sgr97{color:#bcc0cc}html.theme--catppuccin-latte .ansi span.sgr100{background-color:#6c6f85}html.theme--catppuccin-latte .ansi span.sgr101{background-color:#d20f39}html.theme--catppuccin-latte .ansi span.sgr102{background-color:#40a02b}html.theme--catppuccin-latte .ansi span.sgr103{background-color:#df8e1d}html.theme--catppuccin-latte .ansi span.sgr104{background-color:#1e66f5}html.theme--catppuccin-latte .ansi span.sgr105{background-color:#ea76cb}html.theme--catppuccin-latte .ansi span.sgr106{background-color:#179299}html.theme--catppuccin-latte .ansi span.sgr107{background-color:#bcc0cc}html.theme--catppuccin-latte code.language-julia-repl>span.hljs-meta{color:#40a02b;font-weight:bolder}html.theme--catppuccin-latte code .hljs{color:#4c4f69;background:#eff1f5}html.theme--catppuccin-latte code .hljs-keyword{color:#8839ef}html.theme--catppuccin-latte code .hljs-built_in{color:#d20f39}html.theme--catppuccin-latte code .hljs-type{color:#df8e1d}html.theme--catppuccin-latte code .hljs-literal{color:#fe640b}html.theme--catppuccin-latte code .hljs-number{color:#fe640b}html.theme--catppuccin-latte code .hljs-operator{color:#179299}html.theme--catppuccin-latte code .hljs-punctuation{color:#5c5f77}html.theme--catppuccin-latte code .hljs-property{color:#179299}html.theme--catppuccin-latte code .hljs-regexp{color:#ea76cb}html.theme--catppuccin-latte code .hljs-string{color:#40a02b}html.theme--catppuccin-latte code .hljs-char.escape_{color:#40a02b}html.theme--catppuccin-latte code .hljs-subst{color:#6c6f85}html.theme--catppuccin-latte code .hljs-symbol{color:#dd7878}html.theme--catppuccin-latte code .hljs-variable{color:#8839ef}html.theme--catppuccin-latte code .hljs-variable.language_{color:#8839ef}html.theme--catppuccin-latte code .hljs-variable.constant_{color:#fe640b}html.theme--catppuccin-latte code .hljs-title{color:#1e66f5}html.theme--catppuccin-latte code .hljs-title.class_{color:#df8e1d}html.theme--catppuccin-latte code .hljs-title.function_{color:#1e66f5}html.theme--catppuccin-latte code .hljs-params{color:#4c4f69}html.theme--catppuccin-latte code .hljs-comment{color:#acb0be}html.theme--catppuccin-latte code .hljs-doctag{color:#d20f39}html.theme--catppuccin-latte code .hljs-meta{color:#fe640b}html.theme--catppuccin-latte code .hljs-section{color:#1e66f5}html.theme--catppuccin-latte code .hljs-tag{color:#6c6f85}html.theme--catppuccin-latte code .hljs-name{color:#8839ef}html.theme--catppuccin-latte code .hljs-attr{color:#1e66f5}html.theme--catppuccin-latte code .hljs-attribute{color:#40a02b}html.theme--catppuccin-latte code .hljs-bullet{color:#179299}html.theme--catppuccin-latte code .hljs-code{color:#40a02b}html.theme--catppuccin-latte code .hljs-emphasis{color:#d20f39;font-style:italic}html.theme--catppuccin-latte code .hljs-strong{color:#d20f39;font-weight:bold}html.theme--catppuccin-latte code .hljs-formula{color:#179299}html.theme--catppuccin-latte code .hljs-link{color:#209fb5;font-style:italic}html.theme--catppuccin-latte code .hljs-quote{color:#40a02b;font-style:italic}html.theme--catppuccin-latte code .hljs-selector-tag{color:#df8e1d}html.theme--catppuccin-latte code .hljs-selector-id{color:#1e66f5}html.theme--catppuccin-latte code .hljs-selector-class{color:#179299}html.theme--catppuccin-latte code .hljs-selector-attr{color:#8839ef}html.theme--catppuccin-latte code .hljs-selector-pseudo{color:#179299}html.theme--catppuccin-latte code .hljs-template-tag{color:#dd7878}html.theme--catppuccin-latte code .hljs-template-variable{color:#dd7878}html.theme--catppuccin-latte code .hljs-addition{color:#40a02b;background:rgba(166,227,161,0.15)}html.theme--catppuccin-latte code .hljs-deletion{color:#d20f39;background:rgba(243,139,168,0.15)}html.theme--catppuccin-latte .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-latte .search-result-link:hover,html.theme--catppuccin-latte .search-result-link:focus{background-color:#ccd0da}html.theme--catppuccin-latte .search-result-link .property-search-result-badge,html.theme--catppuccin-latte .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-latte .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-latte .search-result-link:hover .search-filter,html.theme--catppuccin-latte .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-latte .search-result-link:focus .search-filter{color:#ccd0da !important;background-color:#7287fd !important}html.theme--catppuccin-latte .search-result-title{color:#4c4f69}html.theme--catppuccin-latte .search-result-highlight{background-color:#d20f39;color:#e6e9ef}html.theme--catppuccin-latte .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--catppuccin-latte .w-100{width:100%}html.theme--catppuccin-latte .gap-2{gap:0.5rem}html.theme--catppuccin-latte .gap-4{gap:1rem} diff --git a/previews/PR563/assets/themes/catppuccin-macchiato.css b/previews/PR563/assets/themes/catppuccin-macchiato.css new file mode 100644 index 00000000..a9cf9c57 --- /dev/null +++ b/previews/PR563/assets/themes/catppuccin-macchiato.css @@ -0,0 +1 @@ +html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato .pagination-ellipsis,html.theme--catppuccin-macchiato .file-cta,html.theme--catppuccin-macchiato .file-name,html.theme--catppuccin-macchiato .select select,html.theme--catppuccin-macchiato .textarea,html.theme--catppuccin-macchiato .input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .pagination-previous:focus,html.theme--catppuccin-macchiato .pagination-next:focus,html.theme--catppuccin-macchiato .pagination-link:focus,html.theme--catppuccin-macchiato .pagination-ellipsis:focus,html.theme--catppuccin-macchiato .file-cta:focus,html.theme--catppuccin-macchiato .file-name:focus,html.theme--catppuccin-macchiato .select select:focus,html.theme--catppuccin-macchiato .textarea:focus,html.theme--catppuccin-macchiato .input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-macchiato .button:focus,html.theme--catppuccin-macchiato .is-focused.pagination-previous,html.theme--catppuccin-macchiato .is-focused.pagination-next,html.theme--catppuccin-macchiato .is-focused.pagination-link,html.theme--catppuccin-macchiato .is-focused.pagination-ellipsis,html.theme--catppuccin-macchiato .is-focused.file-cta,html.theme--catppuccin-macchiato .is-focused.file-name,html.theme--catppuccin-macchiato .select select.is-focused,html.theme--catppuccin-macchiato .is-focused.textarea,html.theme--catppuccin-macchiato .is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-focused.button,html.theme--catppuccin-macchiato .pagination-previous:active,html.theme--catppuccin-macchiato .pagination-next:active,html.theme--catppuccin-macchiato .pagination-link:active,html.theme--catppuccin-macchiato .pagination-ellipsis:active,html.theme--catppuccin-macchiato .file-cta:active,html.theme--catppuccin-macchiato .file-name:active,html.theme--catppuccin-macchiato .select select:active,html.theme--catppuccin-macchiato .textarea:active,html.theme--catppuccin-macchiato .input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-macchiato .button:active,html.theme--catppuccin-macchiato .is-active.pagination-previous,html.theme--catppuccin-macchiato .is-active.pagination-next,html.theme--catppuccin-macchiato .is-active.pagination-link,html.theme--catppuccin-macchiato .is-active.pagination-ellipsis,html.theme--catppuccin-macchiato .is-active.file-cta,html.theme--catppuccin-macchiato .is-active.file-name,html.theme--catppuccin-macchiato .select select.is-active,html.theme--catppuccin-macchiato .is-active.textarea,html.theme--catppuccin-macchiato .is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-macchiato .is-active.button{outline:none}html.theme--catppuccin-macchiato .pagination-previous[disabled],html.theme--catppuccin-macchiato .pagination-next[disabled],html.theme--catppuccin-macchiato .pagination-link[disabled],html.theme--catppuccin-macchiato .pagination-ellipsis[disabled],html.theme--catppuccin-macchiato .file-cta[disabled],html.theme--catppuccin-macchiato .file-name[disabled],html.theme--catppuccin-macchiato .select select[disabled],html.theme--catppuccin-macchiato .textarea[disabled],html.theme--catppuccin-macchiato .input[disabled],html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--catppuccin-macchiato .button[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--catppuccin-macchiato .pagination-ellipsis,html.theme--catppuccin-macchiato fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--catppuccin-macchiato .file-cta,html.theme--catppuccin-macchiato fieldset[disabled] .file-cta,fieldset[disabled] html.theme--catppuccin-macchiato .file-name,html.theme--catppuccin-macchiato fieldset[disabled] .file-name,fieldset[disabled] html.theme--catppuccin-macchiato .select select,fieldset[disabled] html.theme--catppuccin-macchiato .textarea,fieldset[disabled] html.theme--catppuccin-macchiato .input,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato fieldset[disabled] .select select,html.theme--catppuccin-macchiato .select fieldset[disabled] select,html.theme--catppuccin-macchiato fieldset[disabled] .textarea,html.theme--catppuccin-macchiato fieldset[disabled] .input,html.theme--catppuccin-macchiato fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--catppuccin-macchiato .button,html.theme--catppuccin-macchiato fieldset[disabled] .button{cursor:not-allowed}html.theme--catppuccin-macchiato .tabs,html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato .pagination-ellipsis,html.theme--catppuccin-macchiato .breadcrumb,html.theme--catppuccin-macchiato .file,html.theme--catppuccin-macchiato .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--catppuccin-macchiato .navbar-link:not(.is-arrowless)::after,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .admonition:not(:last-child),html.theme--catppuccin-macchiato .tabs:not(:last-child),html.theme--catppuccin-macchiato .pagination:not(:last-child),html.theme--catppuccin-macchiato .message:not(:last-child),html.theme--catppuccin-macchiato .level:not(:last-child),html.theme--catppuccin-macchiato .breadcrumb:not(:last-child),html.theme--catppuccin-macchiato .block:not(:last-child),html.theme--catppuccin-macchiato .title:not(:last-child),html.theme--catppuccin-macchiato .subtitle:not(:last-child),html.theme--catppuccin-macchiato .table-container:not(:last-child),html.theme--catppuccin-macchiato .table:not(:last-child),html.theme--catppuccin-macchiato .progress:not(:last-child),html.theme--catppuccin-macchiato .notification:not(:last-child),html.theme--catppuccin-macchiato .content:not(:last-child),html.theme--catppuccin-macchiato .box:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-macchiato .modal-close,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .modal-close::before,html.theme--catppuccin-macchiato .delete::before,html.theme--catppuccin-macchiato .modal-close::after,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .modal-close::before,html.theme--catppuccin-macchiato .delete::before{height:2px;width:50%}html.theme--catppuccin-macchiato .modal-close::after,html.theme--catppuccin-macchiato .delete::after{height:50%;width:2px}html.theme--catppuccin-macchiato .modal-close:hover,html.theme--catppuccin-macchiato .delete:hover,html.theme--catppuccin-macchiato .modal-close:focus,html.theme--catppuccin-macchiato .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--catppuccin-macchiato .modal-close:active,html.theme--catppuccin-macchiato .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--catppuccin-macchiato .is-small.modal-close,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--catppuccin-macchiato .is-small.delete,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .is-medium.modal-close,html.theme--catppuccin-macchiato .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--catppuccin-macchiato .is-large.modal-close,html.theme--catppuccin-macchiato .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--catppuccin-macchiato .control.is-loading::after,html.theme--catppuccin-macchiato .select.is-loading::after,html.theme--catppuccin-macchiato .loader,html.theme--catppuccin-macchiato .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #8087a2;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--catppuccin-macchiato .hero-video,html.theme--catppuccin-macchiato .modal-background,html.theme--catppuccin-macchiato .modal,html.theme--catppuccin-macchiato .image.is-square img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-macchiato .image.is-square .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-macchiato .image.is-1by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-macchiato .image.is-1by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-5by4 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-macchiato .image.is-5by4 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-macchiato .image.is-4by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-macchiato .image.is-4by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by2 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-macchiato .image.is-3by2 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-macchiato .image.is-5by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-macchiato .image.is-5by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-16by9 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-macchiato .image.is-16by9 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-macchiato .image.is-2by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-macchiato .image.is-2by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-macchiato .image.is-3by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-4by5 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-macchiato .image.is-4by5 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by4 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-macchiato .image.is-3by4 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-macchiato .image.is-2by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-macchiato .image.is-2by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by5 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-macchiato .image.is-3by5 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-macchiato .image.is-9by16 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-macchiato .image.is-9by16 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-macchiato .image.is-1by2 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-macchiato .image.is-1by2 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-macchiato .image.is-1by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-macchiato .image.is-1by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--catppuccin-macchiato .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:#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:#363a4f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#212431 !important}.has-background-dark{background-color:#363a4f !important}.has-text-primary{color:#8aadf4 !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#5b8cf0 !important}.has-background-primary{background-color:#8aadf4 !important}.has-text-primary-light{color:#ecf2fd !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#bed1f9 !important}.has-background-primary-light{background-color:#ecf2fd !important}.has-text-primary-dark{color:#0e3b95 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#124dc4 !important}.has-background-primary-dark{background-color:#0e3b95 !important}.has-text-link{color:#8aadf4 !important}a.has-text-link:hover,a.has-text-link:focus{color:#5b8cf0 !important}.has-background-link{background-color:#8aadf4 !important}.has-text-link-light{color:#ecf2fd !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#bed1f9 !important}.has-background-link-light{background-color:#ecf2fd !important}.has-text-link-dark{color:#0e3b95 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#124dc4 !important}.has-background-link-dark{background-color:#0e3b95 !important}.has-text-info{color:#8bd5ca !important}a.has-text-info:hover,a.has-text-info:focus{color:#66c7b9 !important}.has-background-info{background-color:#8bd5ca !important}.has-text-info-light{color:#f0faf8 !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#cbece7 !important}.has-background-info-light{background-color:#f0faf8 !important}.has-text-info-dark{color:#276d62 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#359284 !important}.has-background-info-dark{background-color:#276d62 !important}.has-text-success{color:#a6da95 !important}a.has-text-success:hover,a.has-text-success:focus{color:#86cd6f !important}.has-background-success{background-color:#a6da95 !important}.has-text-success-light{color:#f2faf0 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#d3edca !important}.has-background-success-light{background-color:#f2faf0 !important}.has-text-success-dark{color:#386e26 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#4b9333 !important}.has-background-success-dark{background-color:#386e26 !important}.has-text-warning{color:#eed49f !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#e6c174 !important}.has-background-warning{background-color:#eed49f !important}.has-text-warning-light{color:#fcf7ee !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#f4e4c2 !important}.has-background-warning-light{background-color:#fcf7ee !important}.has-text-warning-dark{color:#7e5c16 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#a97b1e !important}.has-background-warning-dark{background-color:#7e5c16 !important}.has-text-danger{color:#ed8796 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#e65b6f !important}.has-background-danger{background-color:#ed8796 !important}.has-text-danger-light{color:#fcedef !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#f6c1c9 !important}.has-background-danger-light{background-color:#fcedef !important}.has-text-danger-dark{color:#971729 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#c31d36 !important}.has-background-danger-dark{background-color:#971729 !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:#363a4f !important}.has-background-grey-darker{background-color:#363a4f !important}.has-text-grey-dark{color:#494d64 !important}.has-background-grey-dark{background-color:#494d64 !important}.has-text-grey{color:#5b6078 !important}.has-background-grey{background-color:#5b6078 !important}.has-text-grey-light{color:#6e738d !important}.has-background-grey-light{background-color:#6e738d !important}.has-text-grey-lighter{color:#8087a2 !important}.has-background-grey-lighter{background-color:#8087a2 !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,html.theme--catppuccin-macchiato .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--catppuccin-macchiato html{background-color:#24273a;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--catppuccin-macchiato article,html.theme--catppuccin-macchiato aside,html.theme--catppuccin-macchiato figure,html.theme--catppuccin-macchiato footer,html.theme--catppuccin-macchiato header,html.theme--catppuccin-macchiato hgroup,html.theme--catppuccin-macchiato section{display:block}html.theme--catppuccin-macchiato body,html.theme--catppuccin-macchiato button,html.theme--catppuccin-macchiato input,html.theme--catppuccin-macchiato optgroup,html.theme--catppuccin-macchiato select,html.theme--catppuccin-macchiato textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--catppuccin-macchiato code,html.theme--catppuccin-macchiato 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--catppuccin-macchiato body{color:#cad3f5;font-size:1em;font-weight:400;line-height:1.5}html.theme--catppuccin-macchiato a{color:#8aadf4;cursor:pointer;text-decoration:none}html.theme--catppuccin-macchiato a strong{color:currentColor}html.theme--catppuccin-macchiato a:hover{color:#91d7e3}html.theme--catppuccin-macchiato code{background-color:#1e2030;color:#cad3f5;font-size:.875em;font-weight:normal;padding:.1em}html.theme--catppuccin-macchiato hr{background-color:#1e2030;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--catppuccin-macchiato img{height:auto;max-width:100%}html.theme--catppuccin-macchiato input[type="checkbox"],html.theme--catppuccin-macchiato input[type="radio"]{vertical-align:baseline}html.theme--catppuccin-macchiato small{font-size:.875em}html.theme--catppuccin-macchiato span{font-style:inherit;font-weight:inherit}html.theme--catppuccin-macchiato strong{color:#b5c1f1;font-weight:700}html.theme--catppuccin-macchiato fieldset{border:none}html.theme--catppuccin-macchiato pre{-webkit-overflow-scrolling:touch;background-color:#1e2030;color:#cad3f5;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--catppuccin-macchiato pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--catppuccin-macchiato table td,html.theme--catppuccin-macchiato table th{vertical-align:top}html.theme--catppuccin-macchiato table td:not([align]),html.theme--catppuccin-macchiato table th:not([align]){text-align:inherit}html.theme--catppuccin-macchiato table th{color:#b5c1f1}html.theme--catppuccin-macchiato .box{background-color:#494d64;border-radius:8px;box-shadow:none;color:#cad3f5;display:block;padding:1.25rem}html.theme--catppuccin-macchiato a.box:hover,html.theme--catppuccin-macchiato a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #8aadf4}html.theme--catppuccin-macchiato a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #8aadf4}html.theme--catppuccin-macchiato .button{background-color:#1e2030;border-color:#3b3f5f;border-width:1px;color:#8aadf4;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--catppuccin-macchiato .button strong{color:inherit}html.theme--catppuccin-macchiato .button .icon,html.theme--catppuccin-macchiato .button .icon.is-small,html.theme--catppuccin-macchiato .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--catppuccin-macchiato .button .icon.is-medium,html.theme--catppuccin-macchiato .button .icon.is-large{height:1.5em;width:1.5em}html.theme--catppuccin-macchiato .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--catppuccin-macchiato .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-macchiato .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-macchiato .button:hover,html.theme--catppuccin-macchiato .button.is-hovered{border-color:#6e738d;color:#b5c1f1}html.theme--catppuccin-macchiato .button:focus,html.theme--catppuccin-macchiato .button.is-focused{border-color:#6e738d;color:#739df2}html.theme--catppuccin-macchiato .button:focus:not(:active),html.theme--catppuccin-macchiato .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .button:active,html.theme--catppuccin-macchiato .button.is-active{border-color:#494d64;color:#b5c1f1}html.theme--catppuccin-macchiato .button.is-text{background-color:transparent;border-color:transparent;color:#cad3f5;text-decoration:underline}html.theme--catppuccin-macchiato .button.is-text:hover,html.theme--catppuccin-macchiato .button.is-text.is-hovered,html.theme--catppuccin-macchiato .button.is-text:focus,html.theme--catppuccin-macchiato .button.is-text.is-focused{background-color:#1e2030;color:#b5c1f1}html.theme--catppuccin-macchiato .button.is-text:active,html.theme--catppuccin-macchiato .button.is-text.is-active{background-color:#141620;color:#b5c1f1}html.theme--catppuccin-macchiato .button.is-text[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--catppuccin-macchiato .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#8aadf4;text-decoration:none}html.theme--catppuccin-macchiato .button.is-ghost:hover,html.theme--catppuccin-macchiato .button.is-ghost.is-hovered{color:#8aadf4;text-decoration:underline}html.theme--catppuccin-macchiato .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white:hover,html.theme--catppuccin-macchiato .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white:focus,html.theme--catppuccin-macchiato .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white:focus:not(:active),html.theme--catppuccin-macchiato .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-macchiato .button.is-white:active,html.theme--catppuccin-macchiato .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--catppuccin-macchiato .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .button.is-white.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--catppuccin-macchiato .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-macchiato .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-white.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-white.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-macchiato .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-black:hover,html.theme--catppuccin-macchiato .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-black:focus,html.theme--catppuccin-macchiato .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-black:focus:not(:active),html.theme--catppuccin-macchiato .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-macchiato .button.is-black:active,html.theme--catppuccin-macchiato .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-black[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--catppuccin-macchiato .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-macchiato .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-black.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light:hover,html.theme--catppuccin-macchiato .button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light:focus,html.theme--catppuccin-macchiato .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light:focus:not(:active),html.theme--catppuccin-macchiato .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-macchiato .button.is-light:active,html.theme--catppuccin-macchiato .button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}html.theme--catppuccin-macchiato .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-macchiato .button.is-light.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}html.theme--catppuccin-macchiato .button.is-light.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-light.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-light.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .button.is-light.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-macchiato .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .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--catppuccin-macchiato .button.is-dark,html.theme--catppuccin-macchiato .content kbd.button{background-color:#363a4f;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-dark:hover,html.theme--catppuccin-macchiato .content kbd.button:hover,html.theme--catppuccin-macchiato .button.is-dark.is-hovered,html.theme--catppuccin-macchiato .content kbd.button.is-hovered{background-color:#313447;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-dark:focus,html.theme--catppuccin-macchiato .content kbd.button:focus,html.theme--catppuccin-macchiato .button.is-dark.is-focused,html.theme--catppuccin-macchiato .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-dark:focus:not(:active),html.theme--catppuccin-macchiato .content kbd.button:focus:not(:active),html.theme--catppuccin-macchiato .button.is-dark.is-focused:not(:active),html.theme--catppuccin-macchiato .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,58,79,0.25)}html.theme--catppuccin-macchiato .button.is-dark:active,html.theme--catppuccin-macchiato .content kbd.button:active,html.theme--catppuccin-macchiato .button.is-dark.is-active,html.theme--catppuccin-macchiato .content kbd.button.is-active{background-color:#2c2f40;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-dark[disabled],html.theme--catppuccin-macchiato .content kbd.button[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-dark,fieldset[disabled] html.theme--catppuccin-macchiato .content kbd.button{background-color:#363a4f;border-color:#363a4f;box-shadow:none}html.theme--catppuccin-macchiato .button.is-dark.is-inverted,html.theme--catppuccin-macchiato .content kbd.button.is-inverted{background-color:#fff;color:#363a4f}html.theme--catppuccin-macchiato .button.is-dark.is-inverted:hover,html.theme--catppuccin-macchiato .content kbd.button.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-hovered,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-macchiato .button.is-dark.is-inverted[disabled],html.theme--catppuccin-macchiato .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-dark.is-inverted,fieldset[disabled] html.theme--catppuccin-macchiato .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363a4f}html.theme--catppuccin-macchiato .button.is-dark.is-loading::after,html.theme--catppuccin-macchiato .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-dark.is-outlined,html.theme--catppuccin-macchiato .content kbd.button.is-outlined{background-color:transparent;border-color:#363a4f;color:#363a4f}html.theme--catppuccin-macchiato .button.is-dark.is-outlined:hover,html.theme--catppuccin-macchiato .content kbd.button.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-hovered,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-dark.is-outlined:focus,html.theme--catppuccin-macchiato .content kbd.button.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-focused,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-focused{background-color:#363a4f;border-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-loading::after,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363a4f #363a4f !important}html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-macchiato .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-dark.is-outlined[disabled],html.theme--catppuccin-macchiato .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-dark.is-outlined,fieldset[disabled] html.theme--catppuccin-macchiato .content kbd.button.is-outlined{background-color:transparent;border-color:#363a4f;box-shadow:none;color:#363a4f}html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#363a4f}html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363a4f #363a4f !important}html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined[disabled],html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-macchiato .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink{background-color:#8aadf4;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-primary:hover,html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink:hover,html.theme--catppuccin-macchiato .button.is-primary.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#7ea5f3;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-primary:focus,html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink:focus,html.theme--catppuccin-macchiato .button.is-primary.is-focused,html.theme--catppuccin-macchiato .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-primary:focus:not(:active),html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--catppuccin-macchiato .button.is-primary.is-focused:not(:active),html.theme--catppuccin-macchiato .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .button.is-primary:active,html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink:active,html.theme--catppuccin-macchiato .button.is-primary.is-active,html.theme--catppuccin-macchiato .docstring>section>a.button.is-active.docs-sourcelink{background-color:#739df2;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-primary[disabled],html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-primary,fieldset[disabled] html.theme--catppuccin-macchiato .docstring>section>a.button.docs-sourcelink{background-color:#8aadf4;border-color:#8aadf4;box-shadow:none}html.theme--catppuccin-macchiato .button.is-primary.is-inverted,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-primary.is-inverted:hover,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--catppuccin-macchiato .button.is-primary.is-inverted[disabled],html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-primary.is-inverted,fieldset[disabled] html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-primary.is-loading::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-primary.is-outlined,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#8aadf4;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-primary.is-outlined:hover,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-macchiato .button.is-primary.is-outlined:focus,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-focused,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#8aadf4;border-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-loading::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #8aadf4 #8aadf4 !important}html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-macchiato .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-primary.is-outlined[disabled],html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-primary.is-outlined,fieldset[disabled] html.theme--catppuccin-macchiato .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#8aadf4;box-shadow:none;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #8aadf4 #8aadf4 !important}html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined[disabled],html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-macchiato .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-primary.is-light,html.theme--catppuccin-macchiato .docstring>section>a.button.is-light.docs-sourcelink{background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-primary.is-light:hover,html.theme--catppuccin-macchiato .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--catppuccin-macchiato .button.is-primary.is-light.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e1eafc;border-color:transparent;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-primary.is-light:active,html.theme--catppuccin-macchiato .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--catppuccin-macchiato .button.is-primary.is-light.is-active,html.theme--catppuccin-macchiato .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d5e2fb;border-color:transparent;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-link{background-color:#8aadf4;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-link:hover,html.theme--catppuccin-macchiato .button.is-link.is-hovered{background-color:#7ea5f3;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-link:focus,html.theme--catppuccin-macchiato .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-link:focus:not(:active),html.theme--catppuccin-macchiato .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .button.is-link:active,html.theme--catppuccin-macchiato .button.is-link.is-active{background-color:#739df2;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-link[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-link{background-color:#8aadf4;border-color:#8aadf4;box-shadow:none}html.theme--catppuccin-macchiato .button.is-link.is-inverted{background-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-link.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-macchiato .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-link.is-outlined{background-color:transparent;border-color:#8aadf4;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-link.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-link.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-focused{background-color:#8aadf4;border-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #8aadf4 #8aadf4 !important}html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-link.is-outlined{background-color:transparent;border-color:#8aadf4;box-shadow:none;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #8aadf4 #8aadf4 !important}html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-link.is-light{background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-link.is-light:hover,html.theme--catppuccin-macchiato .button.is-link.is-light.is-hovered{background-color:#e1eafc;border-color:transparent;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-link.is-light:active,html.theme--catppuccin-macchiato .button.is-link.is-light.is-active{background-color:#d5e2fb;border-color:transparent;color:#0e3b95}html.theme--catppuccin-macchiato .button.is-info{background-color:#8bd5ca;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info:hover,html.theme--catppuccin-macchiato .button.is-info.is-hovered{background-color:#82d2c6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info:focus,html.theme--catppuccin-macchiato .button.is-info.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info:focus:not(:active),html.theme--catppuccin-macchiato .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(139,213,202,0.25)}html.theme--catppuccin-macchiato .button.is-info:active,html.theme--catppuccin-macchiato .button.is-info.is-active{background-color:#78cec1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-info{background-color:#8bd5ca;border-color:#8bd5ca;box-shadow:none}html.theme--catppuccin-macchiato .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);color:#8bd5ca}html.theme--catppuccin-macchiato .button.is-info.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#8bd5ca}html.theme--catppuccin-macchiato .button.is-info.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-macchiato .button.is-info.is-outlined{background-color:transparent;border-color:#8bd5ca;color:#8bd5ca}html.theme--catppuccin-macchiato .button.is-info.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-info.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-focused{background-color:#8bd5ca;border-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #8bd5ca #8bd5ca !important}html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-info.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-info.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--catppuccin-macchiato .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-info.is-outlined{background-color:transparent;border-color:#8bd5ca;box-shadow:none;color:#8bd5ca}html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#8bd5ca}html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #8bd5ca #8bd5ca !important}html.theme--catppuccin-macchiato .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-info.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--catppuccin-macchiato .button.is-info.is-light{background-color:#f0faf8;color:#276d62}html.theme--catppuccin-macchiato .button.is-info.is-light:hover,html.theme--catppuccin-macchiato .button.is-info.is-light.is-hovered{background-color:#e7f6f4;border-color:transparent;color:#276d62}html.theme--catppuccin-macchiato .button.is-info.is-light:active,html.theme--catppuccin-macchiato .button.is-info.is-light.is-active{background-color:#ddf3f0;border-color:transparent;color:#276d62}html.theme--catppuccin-macchiato .button.is-success{background-color:#a6da95;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success:hover,html.theme--catppuccin-macchiato .button.is-success.is-hovered{background-color:#9ed78c;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success:focus,html.theme--catppuccin-macchiato .button.is-success.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success:focus:not(:active),html.theme--catppuccin-macchiato .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(166,218,149,0.25)}html.theme--catppuccin-macchiato .button.is-success:active,html.theme--catppuccin-macchiato .button.is-success.is-active{background-color:#96d382;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-success{background-color:#a6da95;border-color:#a6da95;box-shadow:none}html.theme--catppuccin-macchiato .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);color:#a6da95}html.theme--catppuccin-macchiato .button.is-success.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#a6da95}html.theme--catppuccin-macchiato .button.is-success.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-macchiato .button.is-success.is-outlined{background-color:transparent;border-color:#a6da95;color:#a6da95}html.theme--catppuccin-macchiato .button.is-success.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-success.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-focused{background-color:#a6da95;border-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #a6da95 #a6da95 !important}html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-success.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-success.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--catppuccin-macchiato .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-success.is-outlined{background-color:transparent;border-color:#a6da95;box-shadow:none;color:#a6da95}html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#a6da95}html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #a6da95 #a6da95 !important}html.theme--catppuccin-macchiato .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-success.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--catppuccin-macchiato .button.is-success.is-light{background-color:#f2faf0;color:#386e26}html.theme--catppuccin-macchiato .button.is-success.is-light:hover,html.theme--catppuccin-macchiato .button.is-success.is-light.is-hovered{background-color:#eaf6e6;border-color:transparent;color:#386e26}html.theme--catppuccin-macchiato .button.is-success.is-light:active,html.theme--catppuccin-macchiato .button.is-success.is-light.is-active{background-color:#e2f3dd;border-color:transparent;color:#386e26}html.theme--catppuccin-macchiato .button.is-warning{background-color:#eed49f;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning:hover,html.theme--catppuccin-macchiato .button.is-warning.is-hovered{background-color:#eccf94;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning:focus,html.theme--catppuccin-macchiato .button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning:focus:not(:active),html.theme--catppuccin-macchiato .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(238,212,159,0.25)}html.theme--catppuccin-macchiato .button.is-warning:active,html.theme--catppuccin-macchiato .button.is-warning.is-active{background-color:#eaca89;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-warning{background-color:#eed49f;border-color:#eed49f;box-shadow:none}html.theme--catppuccin-macchiato .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#eed49f}html.theme--catppuccin-macchiato .button.is-warning.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#eed49f}html.theme--catppuccin-macchiato .button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-macchiato .button.is-warning.is-outlined{background-color:transparent;border-color:#eed49f;color:#eed49f}html.theme--catppuccin-macchiato .button.is-warning.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-warning.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-focused{background-color:#eed49f;border-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #eed49f #eed49f !important}html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-warning.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .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}html.theme--catppuccin-macchiato .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-warning.is-outlined{background-color:transparent;border-color:#eed49f;box-shadow:none;color:#eed49f}html.theme--catppuccin-macchiato .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)}html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#eed49f}html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #eed49f #eed49f !important}html.theme--catppuccin-macchiato .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .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)}html.theme--catppuccin-macchiato .button.is-warning.is-light{background-color:#fcf7ee;color:#7e5c16}html.theme--catppuccin-macchiato .button.is-warning.is-light:hover,html.theme--catppuccin-macchiato .button.is-warning.is-light.is-hovered{background-color:#faf2e3;border-color:transparent;color:#7e5c16}html.theme--catppuccin-macchiato .button.is-warning.is-light:active,html.theme--catppuccin-macchiato .button.is-warning.is-light.is-active{background-color:#f8eed8;border-color:transparent;color:#7e5c16}html.theme--catppuccin-macchiato .button.is-danger{background-color:#ed8796;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-danger:hover,html.theme--catppuccin-macchiato .button.is-danger.is-hovered{background-color:#eb7c8c;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-danger:focus,html.theme--catppuccin-macchiato .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-danger:focus:not(:active),html.theme--catppuccin-macchiato .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(237,135,150,0.25)}html.theme--catppuccin-macchiato .button.is-danger:active,html.theme--catppuccin-macchiato .button.is-danger.is-active{background-color:#ea7183;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .button.is-danger[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-danger{background-color:#ed8796;border-color:#ed8796;box-shadow:none}html.theme--catppuccin-macchiato .button.is-danger.is-inverted{background-color:#fff;color:#ed8796}html.theme--catppuccin-macchiato .button.is-danger.is-inverted:hover,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-macchiato .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ed8796}html.theme--catppuccin-macchiato .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-danger.is-outlined{background-color:transparent;border-color:#ed8796;color:#ed8796}html.theme--catppuccin-macchiato .button.is-danger.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-danger.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-focused{background-color:#ed8796;border-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #ed8796 #ed8796 !important}html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-macchiato .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-danger.is-outlined{background-color:transparent;border-color:#ed8796;box-shadow:none;color:#ed8796}html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined:hover,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined:focus,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ed8796}html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ed8796 #ed8796 !important}html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-macchiato .button.is-danger.is-light{background-color:#fcedef;color:#971729}html.theme--catppuccin-macchiato .button.is-danger.is-light:hover,html.theme--catppuccin-macchiato .button.is-danger.is-light.is-hovered{background-color:#fbe2e6;border-color:transparent;color:#971729}html.theme--catppuccin-macchiato .button.is-danger.is-light:active,html.theme--catppuccin-macchiato .button.is-danger.is-light.is-active{background-color:#f9d7dc;border-color:transparent;color:#971729}html.theme--catppuccin-macchiato .button.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--catppuccin-macchiato .button.is-small:not(.is-rounded),html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--catppuccin-macchiato .button.is-normal{font-size:1rem}html.theme--catppuccin-macchiato .button.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .button.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .button[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .button{background-color:#6e738d;border-color:#5b6078;box-shadow:none;opacity:.5}html.theme--catppuccin-macchiato .button.is-fullwidth{display:flex;width:100%}html.theme--catppuccin-macchiato .button.is-loading{color:transparent !important;pointer-events:none}html.theme--catppuccin-macchiato .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--catppuccin-macchiato .button.is-static{background-color:#1e2030;border-color:#5b6078;color:#8087a2;box-shadow:none;pointer-events:none}html.theme--catppuccin-macchiato .button.is-rounded,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-macchiato .buttons .button{margin-bottom:0.5rem}html.theme--catppuccin-macchiato .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--catppuccin-macchiato .buttons:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-macchiato .buttons:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-macchiato .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--catppuccin-macchiato .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--catppuccin-macchiato .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--catppuccin-macchiato .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--catppuccin-macchiato .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-macchiato .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--catppuccin-macchiato .buttons.has-addons .button:last-child{margin-right:0}html.theme--catppuccin-macchiato .buttons.has-addons .button:hover,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-hovered{z-index:2}html.theme--catppuccin-macchiato .buttons.has-addons .button:focus,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-focused,html.theme--catppuccin-macchiato .buttons.has-addons .button:active,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-active,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-selected{z-index:3}html.theme--catppuccin-macchiato .buttons.has-addons .button:focus:hover,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-focused:hover,html.theme--catppuccin-macchiato .buttons.has-addons .button:active:hover,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-active:hover,html.theme--catppuccin-macchiato .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--catppuccin-macchiato .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .buttons.is-centered{justify-content:center}html.theme--catppuccin-macchiato .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--catppuccin-macchiato .buttons.is-right{justify-content:flex-end}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .button.is-responsive.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--catppuccin-macchiato .button.is-responsive,html.theme--catppuccin-macchiato .button.is-responsive.is-normal{font-size:.65625rem}html.theme--catppuccin-macchiato .button.is-responsive.is-medium{font-size:.75rem}html.theme--catppuccin-macchiato .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .button.is-responsive.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--catppuccin-macchiato .button.is-responsive,html.theme--catppuccin-macchiato .button.is-responsive.is-normal{font-size:.75rem}html.theme--catppuccin-macchiato .button.is-responsive.is-medium{font-size:1rem}html.theme--catppuccin-macchiato .button.is-responsive.is-large{font-size:1.25rem}}html.theme--catppuccin-macchiato .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--catppuccin-macchiato .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--catppuccin-macchiato .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--catppuccin-macchiato .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--catppuccin-macchiato .content li+li{margin-top:0.25em}html.theme--catppuccin-macchiato .content p:not(:last-child),html.theme--catppuccin-macchiato .content dl:not(:last-child),html.theme--catppuccin-macchiato .content ol:not(:last-child),html.theme--catppuccin-macchiato .content ul:not(:last-child),html.theme--catppuccin-macchiato .content blockquote:not(:last-child),html.theme--catppuccin-macchiato .content pre:not(:last-child),html.theme--catppuccin-macchiato .content table:not(:last-child){margin-bottom:1em}html.theme--catppuccin-macchiato .content h1,html.theme--catppuccin-macchiato .content h2,html.theme--catppuccin-macchiato .content h3,html.theme--catppuccin-macchiato .content h4,html.theme--catppuccin-macchiato .content h5,html.theme--catppuccin-macchiato .content h6{color:#cad3f5;font-weight:600;line-height:1.125}html.theme--catppuccin-macchiato .content h1{font-size:2em;margin-bottom:0.5em}html.theme--catppuccin-macchiato .content h1:not(:first-child){margin-top:1em}html.theme--catppuccin-macchiato .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--catppuccin-macchiato .content h2:not(:first-child){margin-top:1.1428em}html.theme--catppuccin-macchiato .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--catppuccin-macchiato .content h3:not(:first-child){margin-top:1.3333em}html.theme--catppuccin-macchiato .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--catppuccin-macchiato .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--catppuccin-macchiato .content h6{font-size:1em;margin-bottom:1em}html.theme--catppuccin-macchiato .content blockquote{background-color:#1e2030;border-left:5px solid #5b6078;padding:1.25em 1.5em}html.theme--catppuccin-macchiato .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-macchiato .content ol:not([type]){list-style-type:decimal}html.theme--catppuccin-macchiato .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--catppuccin-macchiato .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--catppuccin-macchiato .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--catppuccin-macchiato .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--catppuccin-macchiato .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-macchiato .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--catppuccin-macchiato .content ul ul ul{list-style-type:square}html.theme--catppuccin-macchiato .content dd{margin-left:2em}html.theme--catppuccin-macchiato .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--catppuccin-macchiato .content figure:not(:first-child){margin-top:2em}html.theme--catppuccin-macchiato .content figure:not(:last-child){margin-bottom:2em}html.theme--catppuccin-macchiato .content figure img{display:inline-block}html.theme--catppuccin-macchiato .content figure figcaption{font-style:italic}html.theme--catppuccin-macchiato .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--catppuccin-macchiato .content sup,html.theme--catppuccin-macchiato .content sub{font-size:75%}html.theme--catppuccin-macchiato .content table{width:100%}html.theme--catppuccin-macchiato .content table td,html.theme--catppuccin-macchiato .content table th{border:1px solid #5b6078;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-macchiato .content table th{color:#b5c1f1}html.theme--catppuccin-macchiato .content table th:not([align]){text-align:inherit}html.theme--catppuccin-macchiato .content table thead td,html.theme--catppuccin-macchiato .content table thead th{border-width:0 0 2px;color:#b5c1f1}html.theme--catppuccin-macchiato .content table tfoot td,html.theme--catppuccin-macchiato .content table tfoot th{border-width:2px 0 0;color:#b5c1f1}html.theme--catppuccin-macchiato .content table tbody tr:last-child td,html.theme--catppuccin-macchiato .content table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-macchiato .content .tabs li+li{margin-top:0}html.theme--catppuccin-macchiato .content.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--catppuccin-macchiato .content.is-normal{font-size:1rem}html.theme--catppuccin-macchiato .content.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .content.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--catppuccin-macchiato .icon.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--catppuccin-macchiato .icon.is-medium{height:2rem;width:2rem}html.theme--catppuccin-macchiato .icon.is-large{height:3rem;width:3rem}html.theme--catppuccin-macchiato .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--catppuccin-macchiato .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--catppuccin-macchiato .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--catppuccin-macchiato .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--catppuccin-macchiato div.icon-text{display:flex}html.theme--catppuccin-macchiato .image,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--catppuccin-macchiato .image img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--catppuccin-macchiato .image img.is-rounded,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--catppuccin-macchiato .image.is-fullwidth,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--catppuccin-macchiato .image.is-square img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-macchiato .image.is-square .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-macchiato .image.is-1by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-macchiato .image.is-1by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-5by4 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-macchiato .image.is-5by4 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-macchiato .image.is-4by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-macchiato .image.is-4by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by2 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-macchiato .image.is-3by2 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-macchiato .image.is-5by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-macchiato .image.is-5by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-16by9 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-macchiato .image.is-16by9 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-macchiato .image.is-2by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-macchiato .image.is-2by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by1 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-macchiato .image.is-3by1 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-macchiato .image.is-4by5 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-macchiato .image.is-4by5 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by4 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-macchiato .image.is-3by4 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-macchiato .image.is-2by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-macchiato .image.is-2by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-macchiato .image.is-3by5 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-macchiato .image.is-3by5 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-macchiato .image.is-9by16 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-macchiato .image.is-9by16 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-macchiato .image.is-1by2 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-macchiato .image.is-1by2 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-macchiato .image.is-1by3 img,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-macchiato .image.is-1by3 .has-ratio,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--catppuccin-macchiato .image.is-square,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--catppuccin-macchiato .image.is-1by1,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--catppuccin-macchiato .image.is-5by4,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--catppuccin-macchiato .image.is-4by3,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--catppuccin-macchiato .image.is-3by2,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--catppuccin-macchiato .image.is-5by3,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--catppuccin-macchiato .image.is-16by9,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--catppuccin-macchiato .image.is-2by1,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--catppuccin-macchiato .image.is-3by1,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--catppuccin-macchiato .image.is-4by5,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--catppuccin-macchiato .image.is-3by4,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--catppuccin-macchiato .image.is-2by3,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--catppuccin-macchiato .image.is-3by5,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--catppuccin-macchiato .image.is-9by16,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--catppuccin-macchiato .image.is-1by2,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--catppuccin-macchiato .image.is-1by3,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--catppuccin-macchiato .image.is-16x16,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--catppuccin-macchiato .image.is-24x24,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--catppuccin-macchiato .image.is-32x32,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--catppuccin-macchiato .image.is-48x48,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--catppuccin-macchiato .image.is-64x64,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--catppuccin-macchiato .image.is-96x96,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--catppuccin-macchiato .image.is-128x128,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--catppuccin-macchiato .notification{background-color:#1e2030;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--catppuccin-macchiato .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-macchiato .notification strong{color:currentColor}html.theme--catppuccin-macchiato .notification code,html.theme--catppuccin-macchiato .notification pre{background:#fff}html.theme--catppuccin-macchiato .notification pre code{background:transparent}html.theme--catppuccin-macchiato .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--catppuccin-macchiato .notification .title,html.theme--catppuccin-macchiato .notification .subtitle,html.theme--catppuccin-macchiato .notification .content{color:currentColor}html.theme--catppuccin-macchiato .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .notification.is-dark,html.theme--catppuccin-macchiato .content kbd.notification{background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .notification.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.notification.docs-sourcelink{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .notification.is-primary.is-light,html.theme--catppuccin-macchiato .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .notification.is-link{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .notification.is-link.is-light{background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .notification.is-info{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .notification.is-info.is-light{background-color:#f0faf8;color:#276d62}html.theme--catppuccin-macchiato .notification.is-success{background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .notification.is-success.is-light{background-color:#f2faf0;color:#386e26}html.theme--catppuccin-macchiato .notification.is-warning{background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .notification.is-warning.is-light{background-color:#fcf7ee;color:#7e5c16}html.theme--catppuccin-macchiato .notification.is-danger{background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .notification.is-danger.is-light{background-color:#fcedef;color:#971729}html.theme--catppuccin-macchiato .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--catppuccin-macchiato .progress::-webkit-progress-bar{background-color:#494d64}html.theme--catppuccin-macchiato .progress::-webkit-progress-value{background-color:#8087a2}html.theme--catppuccin-macchiato .progress::-moz-progress-bar{background-color:#8087a2}html.theme--catppuccin-macchiato .progress::-ms-fill{background-color:#8087a2;border:none}html.theme--catppuccin-macchiato .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--catppuccin-macchiato .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--catppuccin-macchiato .progress.is-white::-ms-fill{background-color:#fff}html.theme--catppuccin-macchiato .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--catppuccin-macchiato .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--catppuccin-macchiato .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--catppuccin-macchiato .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-light::-webkit-progress-value{background-color:#f5f5f5}html.theme--catppuccin-macchiato .progress.is-light::-moz-progress-bar{background-color:#f5f5f5}html.theme--catppuccin-macchiato .progress.is-light::-ms-fill{background-color:#f5f5f5}html.theme--catppuccin-macchiato .progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-dark::-webkit-progress-value,html.theme--catppuccin-macchiato .content kbd.progress::-webkit-progress-value{background-color:#363a4f}html.theme--catppuccin-macchiato .progress.is-dark::-moz-progress-bar,html.theme--catppuccin-macchiato .content kbd.progress::-moz-progress-bar{background-color:#363a4f}html.theme--catppuccin-macchiato .progress.is-dark::-ms-fill,html.theme--catppuccin-macchiato .content kbd.progress::-ms-fill{background-color:#363a4f}html.theme--catppuccin-macchiato .progress.is-dark:indeterminate,html.theme--catppuccin-macchiato .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363a4f 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-primary::-webkit-progress-value,html.theme--catppuccin-macchiato .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-primary::-moz-progress-bar,html.theme--catppuccin-macchiato .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-primary::-ms-fill,html.theme--catppuccin-macchiato .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-primary:indeterminate,html.theme--catppuccin-macchiato .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #8aadf4 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-link::-webkit-progress-value{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-link::-moz-progress-bar{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-link::-ms-fill{background-color:#8aadf4}html.theme--catppuccin-macchiato .progress.is-link:indeterminate{background-image:linear-gradient(to right, #8aadf4 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-info::-webkit-progress-value{background-color:#8bd5ca}html.theme--catppuccin-macchiato .progress.is-info::-moz-progress-bar{background-color:#8bd5ca}html.theme--catppuccin-macchiato .progress.is-info::-ms-fill{background-color:#8bd5ca}html.theme--catppuccin-macchiato .progress.is-info:indeterminate{background-image:linear-gradient(to right, #8bd5ca 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-success::-webkit-progress-value{background-color:#a6da95}html.theme--catppuccin-macchiato .progress.is-success::-moz-progress-bar{background-color:#a6da95}html.theme--catppuccin-macchiato .progress.is-success::-ms-fill{background-color:#a6da95}html.theme--catppuccin-macchiato .progress.is-success:indeterminate{background-image:linear-gradient(to right, #a6da95 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-warning::-webkit-progress-value{background-color:#eed49f}html.theme--catppuccin-macchiato .progress.is-warning::-moz-progress-bar{background-color:#eed49f}html.theme--catppuccin-macchiato .progress.is-warning::-ms-fill{background-color:#eed49f}html.theme--catppuccin-macchiato .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #eed49f 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress.is-danger::-webkit-progress-value{background-color:#ed8796}html.theme--catppuccin-macchiato .progress.is-danger::-moz-progress-bar{background-color:#ed8796}html.theme--catppuccin-macchiato .progress.is-danger::-ms-fill{background-color:#ed8796}html.theme--catppuccin-macchiato .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #ed8796 30%, #494d64 30%)}html.theme--catppuccin-macchiato .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#494d64;background-image:linear-gradient(to right, #cad3f5 30%, #494d64 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--catppuccin-macchiato .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--catppuccin-macchiato .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--catppuccin-macchiato .progress:indeterminate::-ms-fill{animation-name:none}html.theme--catppuccin-macchiato .progress.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--catppuccin-macchiato .progress.is-medium{height:1.25rem}html.theme--catppuccin-macchiato .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--catppuccin-macchiato .table{background-color:#494d64;color:#cad3f5}html.theme--catppuccin-macchiato .table td,html.theme--catppuccin-macchiato .table th{border:1px solid #5b6078;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-macchiato .table td.is-white,html.theme--catppuccin-macchiato .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .table td.is-black,html.theme--catppuccin-macchiato .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .table td.is-light,html.theme--catppuccin-macchiato .table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .table td.is-dark,html.theme--catppuccin-macchiato .table th.is-dark{background-color:#363a4f;border-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .table td.is-primary,html.theme--catppuccin-macchiato .table th.is-primary{background-color:#8aadf4;border-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .table td.is-link,html.theme--catppuccin-macchiato .table th.is-link{background-color:#8aadf4;border-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .table td.is-info,html.theme--catppuccin-macchiato .table th.is-info{background-color:#8bd5ca;border-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .table td.is-success,html.theme--catppuccin-macchiato .table th.is-success{background-color:#a6da95;border-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .table td.is-warning,html.theme--catppuccin-macchiato .table th.is-warning{background-color:#eed49f;border-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .table td.is-danger,html.theme--catppuccin-macchiato .table th.is-danger{background-color:#ed8796;border-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .table td.is-narrow,html.theme--catppuccin-macchiato .table th.is-narrow{white-space:nowrap;width:1%}html.theme--catppuccin-macchiato .table td.is-selected,html.theme--catppuccin-macchiato .table th.is-selected{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .table td.is-selected a,html.theme--catppuccin-macchiato .table td.is-selected strong,html.theme--catppuccin-macchiato .table th.is-selected a,html.theme--catppuccin-macchiato .table th.is-selected strong{color:currentColor}html.theme--catppuccin-macchiato .table td.is-vcentered,html.theme--catppuccin-macchiato .table th.is-vcentered{vertical-align:middle}html.theme--catppuccin-macchiato .table th{color:#b5c1f1}html.theme--catppuccin-macchiato .table th:not([align]){text-align:left}html.theme--catppuccin-macchiato .table tr.is-selected{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .table tr.is-selected a,html.theme--catppuccin-macchiato .table tr.is-selected strong{color:currentColor}html.theme--catppuccin-macchiato .table tr.is-selected td,html.theme--catppuccin-macchiato .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--catppuccin-macchiato .table thead{background-color:rgba(0,0,0,0)}html.theme--catppuccin-macchiato .table thead td,html.theme--catppuccin-macchiato .table thead th{border-width:0 0 2px;color:#b5c1f1}html.theme--catppuccin-macchiato .table tfoot{background-color:rgba(0,0,0,0)}html.theme--catppuccin-macchiato .table tfoot td,html.theme--catppuccin-macchiato .table tfoot th{border-width:2px 0 0;color:#b5c1f1}html.theme--catppuccin-macchiato .table tbody{background-color:rgba(0,0,0,0)}html.theme--catppuccin-macchiato .table tbody tr:last-child td,html.theme--catppuccin-macchiato .table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-macchiato .table.is-bordered td,html.theme--catppuccin-macchiato .table.is-bordered th{border-width:1px}html.theme--catppuccin-macchiato .table.is-bordered tr:last-child td,html.theme--catppuccin-macchiato .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--catppuccin-macchiato .table.is-fullwidth{width:100%}html.theme--catppuccin-macchiato .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#363a4f}html.theme--catppuccin-macchiato .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#363a4f}html.theme--catppuccin-macchiato .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#3a3e55}html.theme--catppuccin-macchiato .table.is-narrow td,html.theme--catppuccin-macchiato .table.is-narrow th{padding:0.25em 0.5em}html.theme--catppuccin-macchiato .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#363a4f}html.theme--catppuccin-macchiato .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--catppuccin-macchiato .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-macchiato .tags .tag,html.theme--catppuccin-macchiato .tags .content kbd,html.theme--catppuccin-macchiato .content .tags kbd,html.theme--catppuccin-macchiato .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--catppuccin-macchiato .tags .tag:not(:last-child),html.theme--catppuccin-macchiato .tags .content kbd:not(:last-child),html.theme--catppuccin-macchiato .content .tags kbd:not(:last-child),html.theme--catppuccin-macchiato .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--catppuccin-macchiato .tags:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-macchiato .tags:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-macchiato .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--catppuccin-macchiato .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-macchiato .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-macchiato .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--catppuccin-macchiato .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--catppuccin-macchiato .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-macchiato .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-macchiato .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--catppuccin-macchiato .tags.is-centered{justify-content:center}html.theme--catppuccin-macchiato .tags.is-centered .tag,html.theme--catppuccin-macchiato .tags.is-centered .content kbd,html.theme--catppuccin-macchiato .content .tags.is-centered kbd,html.theme--catppuccin-macchiato .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--catppuccin-macchiato .tags.is-right{justify-content:flex-end}html.theme--catppuccin-macchiato .tags.is-right .tag:not(:first-child),html.theme--catppuccin-macchiato .tags.is-right .content kbd:not(:first-child),html.theme--catppuccin-macchiato .content .tags.is-right kbd:not(:first-child),html.theme--catppuccin-macchiato .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--catppuccin-macchiato .tags.is-right .tag:not(:last-child),html.theme--catppuccin-macchiato .tags.is-right .content kbd:not(:last-child),html.theme--catppuccin-macchiato .content .tags.is-right kbd:not(:last-child),html.theme--catppuccin-macchiato .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--catppuccin-macchiato .tags.has-addons .tag,html.theme--catppuccin-macchiato .tags.has-addons .content kbd,html.theme--catppuccin-macchiato .content .tags.has-addons kbd,html.theme--catppuccin-macchiato .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--catppuccin-macchiato .tags.has-addons .tag:not(:first-child),html.theme--catppuccin-macchiato .tags.has-addons .content kbd:not(:first-child),html.theme--catppuccin-macchiato .content .tags.has-addons kbd:not(:first-child),html.theme--catppuccin-macchiato .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--catppuccin-macchiato .tags.has-addons .tag:not(:last-child),html.theme--catppuccin-macchiato .tags.has-addons .content kbd:not(:last-child),html.theme--catppuccin-macchiato .content .tags.has-addons kbd:not(:last-child),html.theme--catppuccin-macchiato .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--catppuccin-macchiato .tag:not(body),html.theme--catppuccin-macchiato .content kbd:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#1e2030;border-radius:.4em;color:#cad3f5;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--catppuccin-macchiato .tag:not(body) .delete,html.theme--catppuccin-macchiato .content kbd:not(body) .delete,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--catppuccin-macchiato .tag.is-white:not(body),html.theme--catppuccin-macchiato .content kbd.is-white:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .tag.is-black:not(body),html.theme--catppuccin-macchiato .content kbd.is-black:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .tag.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .tag.is-dark:not(body),html.theme--catppuccin-macchiato .content kbd:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--catppuccin-macchiato .content .docstring>section>kbd:not(body){background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .tag.is-primary:not(body),html.theme--catppuccin-macchiato .content kbd.is-primary:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body){background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .tag.is-primary.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-primary.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .tag.is-link:not(body),html.theme--catppuccin-macchiato .content kbd.is-link:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .tag.is-link.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-link.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#ecf2fd;color:#0e3b95}html.theme--catppuccin-macchiato .tag.is-info:not(body),html.theme--catppuccin-macchiato .content kbd.is-info:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .tag.is-info.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-info.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#f0faf8;color:#276d62}html.theme--catppuccin-macchiato .tag.is-success:not(body),html.theme--catppuccin-macchiato .content kbd.is-success:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .tag.is-success.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-success.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#f2faf0;color:#386e26}html.theme--catppuccin-macchiato .tag.is-warning:not(body),html.theme--catppuccin-macchiato .content kbd.is-warning:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .tag.is-warning.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-warning.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fcf7ee;color:#7e5c16}html.theme--catppuccin-macchiato .tag.is-danger:not(body),html.theme--catppuccin-macchiato .content kbd.is-danger:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .tag.is-danger.is-light:not(body),html.theme--catppuccin-macchiato .content kbd.is-danger.is-light:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fcedef;color:#971729}html.theme--catppuccin-macchiato .tag.is-normal:not(body),html.theme--catppuccin-macchiato .content kbd.is-normal:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--catppuccin-macchiato .tag.is-medium:not(body),html.theme--catppuccin-macchiato .content kbd.is-medium:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--catppuccin-macchiato .tag.is-large:not(body),html.theme--catppuccin-macchiato .content kbd.is-large:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--catppuccin-macchiato .tag:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-macchiato .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--catppuccin-macchiato .tag:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-macchiato .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--catppuccin-macchiato .tag:not(body) .icon:first-child:last-child,html.theme--catppuccin-macchiato .content kbd:not(body) .icon:first-child:last-child,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--catppuccin-macchiato .tag.is-delete:not(body),html.theme--catppuccin-macchiato .content kbd.is-delete:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--catppuccin-macchiato .tag.is-delete:not(body)::before,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body)::before,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--catppuccin-macchiato .tag.is-delete:not(body)::after,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body)::after,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .tag.is-delete:not(body)::before,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body)::before,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--catppuccin-macchiato .tag.is-delete:not(body)::after,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body)::after,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--catppuccin-macchiato .tag.is-delete:not(body):hover,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body):hover,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--catppuccin-macchiato .tag.is-delete:not(body):focus,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body):focus,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#141620}html.theme--catppuccin-macchiato .tag.is-delete:not(body):active,html.theme--catppuccin-macchiato .content kbd.is-delete:not(body):active,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#0a0b11}html.theme--catppuccin-macchiato .tag.is-rounded:not(body),html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--catppuccin-macchiato .content kbd.is-rounded:not(body),html.theme--catppuccin-macchiato #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--catppuccin-macchiato a.tag:hover,html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--catppuccin-macchiato .title,html.theme--catppuccin-macchiato .subtitle{word-break:break-word}html.theme--catppuccin-macchiato .title em,html.theme--catppuccin-macchiato .title span,html.theme--catppuccin-macchiato .subtitle em,html.theme--catppuccin-macchiato .subtitle span{font-weight:inherit}html.theme--catppuccin-macchiato .title sub,html.theme--catppuccin-macchiato .subtitle sub{font-size:.75em}html.theme--catppuccin-macchiato .title sup,html.theme--catppuccin-macchiato .subtitle sup{font-size:.75em}html.theme--catppuccin-macchiato .title .tag,html.theme--catppuccin-macchiato .title .content kbd,html.theme--catppuccin-macchiato .content .title kbd,html.theme--catppuccin-macchiato .title .docstring>section>a.docs-sourcelink,html.theme--catppuccin-macchiato .subtitle .tag,html.theme--catppuccin-macchiato .subtitle .content kbd,html.theme--catppuccin-macchiato .content .subtitle kbd,html.theme--catppuccin-macchiato .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--catppuccin-macchiato .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--catppuccin-macchiato .title strong{color:inherit;font-weight:inherit}html.theme--catppuccin-macchiato .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--catppuccin-macchiato .title.is-1{font-size:3rem}html.theme--catppuccin-macchiato .title.is-2{font-size:2.5rem}html.theme--catppuccin-macchiato .title.is-3{font-size:2rem}html.theme--catppuccin-macchiato .title.is-4{font-size:1.5rem}html.theme--catppuccin-macchiato .title.is-5{font-size:1.25rem}html.theme--catppuccin-macchiato .title.is-6{font-size:1rem}html.theme--catppuccin-macchiato .title.is-7{font-size:.75rem}html.theme--catppuccin-macchiato .subtitle{color:#6e738d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--catppuccin-macchiato .subtitle strong{color:#6e738d;font-weight:600}html.theme--catppuccin-macchiato .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--catppuccin-macchiato .subtitle.is-1{font-size:3rem}html.theme--catppuccin-macchiato .subtitle.is-2{font-size:2.5rem}html.theme--catppuccin-macchiato .subtitle.is-3{font-size:2rem}html.theme--catppuccin-macchiato .subtitle.is-4{font-size:1.5rem}html.theme--catppuccin-macchiato .subtitle.is-5{font-size:1.25rem}html.theme--catppuccin-macchiato .subtitle.is-6{font-size:1rem}html.theme--catppuccin-macchiato .subtitle.is-7{font-size:.75rem}html.theme--catppuccin-macchiato .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--catppuccin-macchiato .number{align-items:center;background-color:#1e2030;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--catppuccin-macchiato .select select,html.theme--catppuccin-macchiato .textarea,html.theme--catppuccin-macchiato .input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input{background-color:#24273a;border-color:#5b6078;border-radius:.4em;color:#8087a2}html.theme--catppuccin-macchiato .select select::-moz-placeholder,html.theme--catppuccin-macchiato .textarea::-moz-placeholder,html.theme--catppuccin-macchiato .input::-moz-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--catppuccin-macchiato .select select::-webkit-input-placeholder,html.theme--catppuccin-macchiato .textarea::-webkit-input-placeholder,html.theme--catppuccin-macchiato .input::-webkit-input-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--catppuccin-macchiato .select select:-moz-placeholder,html.theme--catppuccin-macchiato .textarea:-moz-placeholder,html.theme--catppuccin-macchiato .input:-moz-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--catppuccin-macchiato .select select:-ms-input-placeholder,html.theme--catppuccin-macchiato .textarea:-ms-input-placeholder,html.theme--catppuccin-macchiato .input:-ms-input-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--catppuccin-macchiato .select select:hover,html.theme--catppuccin-macchiato .textarea:hover,html.theme--catppuccin-macchiato .input:hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:hover,html.theme--catppuccin-macchiato .select select.is-hovered,html.theme--catppuccin-macchiato .is-hovered.textarea,html.theme--catppuccin-macchiato .is-hovered.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#6e738d}html.theme--catppuccin-macchiato .select select:focus,html.theme--catppuccin-macchiato .textarea:focus,html.theme--catppuccin-macchiato .input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-macchiato .select select.is-focused,html.theme--catppuccin-macchiato .is-focused.textarea,html.theme--catppuccin-macchiato .is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .select select:active,html.theme--catppuccin-macchiato .textarea:active,html.theme--catppuccin-macchiato .input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-macchiato .select select.is-active,html.theme--catppuccin-macchiato .is-active.textarea,html.theme--catppuccin-macchiato .is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#8aadf4;box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .select select[disabled],html.theme--catppuccin-macchiato .textarea[disabled],html.theme--catppuccin-macchiato .input[disabled],html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .select select,fieldset[disabled] html.theme--catppuccin-macchiato .textarea,fieldset[disabled] html.theme--catppuccin-macchiato .input,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input{background-color:#6e738d;border-color:#1e2030;box-shadow:none;color:#f5f7fd}html.theme--catppuccin-macchiato .select select[disabled]::-moz-placeholder,html.theme--catppuccin-macchiato .textarea[disabled]::-moz-placeholder,html.theme--catppuccin-macchiato .input[disabled]::-moz-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .select select::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .textarea::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .input::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(245,247,253,0.3)}html.theme--catppuccin-macchiato .select select[disabled]::-webkit-input-placeholder,html.theme--catppuccin-macchiato .textarea[disabled]::-webkit-input-placeholder,html.theme--catppuccin-macchiato .input[disabled]::-webkit-input-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .input::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(245,247,253,0.3)}html.theme--catppuccin-macchiato .select select[disabled]:-moz-placeholder,html.theme--catppuccin-macchiato .textarea[disabled]:-moz-placeholder,html.theme--catppuccin-macchiato .input[disabled]:-moz-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .select select:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .textarea:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .input:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(245,247,253,0.3)}html.theme--catppuccin-macchiato .select select[disabled]:-ms-input-placeholder,html.theme--catppuccin-macchiato .textarea[disabled]:-ms-input-placeholder,html.theme--catppuccin-macchiato .input[disabled]:-ms-input-placeholder,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .select select:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato .input:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(245,247,253,0.3)}html.theme--catppuccin-macchiato .textarea,html.theme--catppuccin-macchiato .input,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .textarea[readonly],html.theme--catppuccin-macchiato .input[readonly],html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--catppuccin-macchiato .is-white.textarea,html.theme--catppuccin-macchiato .is-white.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--catppuccin-macchiato .is-white.textarea:focus,html.theme--catppuccin-macchiato .is-white.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--catppuccin-macchiato .is-white.is-focused.textarea,html.theme--catppuccin-macchiato .is-white.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-white.textarea:active,html.theme--catppuccin-macchiato .is-white.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--catppuccin-macchiato .is-white.is-active.textarea,html.theme--catppuccin-macchiato .is-white.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-macchiato .is-black.textarea,html.theme--catppuccin-macchiato .is-black.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--catppuccin-macchiato .is-black.textarea:focus,html.theme--catppuccin-macchiato .is-black.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--catppuccin-macchiato .is-black.is-focused.textarea,html.theme--catppuccin-macchiato .is-black.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-black.textarea:active,html.theme--catppuccin-macchiato .is-black.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--catppuccin-macchiato .is-black.is-active.textarea,html.theme--catppuccin-macchiato .is-black.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-macchiato .is-light.textarea,html.theme--catppuccin-macchiato .is-light.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}html.theme--catppuccin-macchiato .is-light.textarea:focus,html.theme--catppuccin-macchiato .is-light.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--catppuccin-macchiato .is-light.is-focused.textarea,html.theme--catppuccin-macchiato .is-light.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-light.textarea:active,html.theme--catppuccin-macchiato .is-light.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--catppuccin-macchiato .is-light.is-active.textarea,html.theme--catppuccin-macchiato .is-light.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-macchiato .is-dark.textarea,html.theme--catppuccin-macchiato .content kbd.textarea,html.theme--catppuccin-macchiato .is-dark.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--catppuccin-macchiato .content kbd.input{border-color:#363a4f}html.theme--catppuccin-macchiato .is-dark.textarea:focus,html.theme--catppuccin-macchiato .content kbd.textarea:focus,html.theme--catppuccin-macchiato .is-dark.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--catppuccin-macchiato .content kbd.input:focus,html.theme--catppuccin-macchiato .is-dark.is-focused.textarea,html.theme--catppuccin-macchiato .content kbd.is-focused.textarea,html.theme--catppuccin-macchiato .is-dark.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .content kbd.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-dark.textarea:active,html.theme--catppuccin-macchiato .content kbd.textarea:active,html.theme--catppuccin-macchiato .is-dark.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--catppuccin-macchiato .content kbd.input:active,html.theme--catppuccin-macchiato .is-dark.is-active.textarea,html.theme--catppuccin-macchiato .content kbd.is-active.textarea,html.theme--catppuccin-macchiato .is-dark.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-macchiato .content kbd.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,58,79,0.25)}html.theme--catppuccin-macchiato .is-primary.textarea,html.theme--catppuccin-macchiato .docstring>section>a.textarea.docs-sourcelink,html.theme--catppuccin-macchiato .is-primary.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.input.docs-sourcelink{border-color:#8aadf4}html.theme--catppuccin-macchiato .is-primary.textarea:focus,html.theme--catppuccin-macchiato .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--catppuccin-macchiato .is-primary.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--catppuccin-macchiato .docstring>section>a.input.docs-sourcelink:focus,html.theme--catppuccin-macchiato .is-primary.is-focused.textarea,html.theme--catppuccin-macchiato .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--catppuccin-macchiato .is-primary.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--catppuccin-macchiato .is-primary.textarea:active,html.theme--catppuccin-macchiato .docstring>section>a.textarea.docs-sourcelink:active,html.theme--catppuccin-macchiato .is-primary.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--catppuccin-macchiato .docstring>section>a.input.docs-sourcelink:active,html.theme--catppuccin-macchiato .is-primary.is-active.textarea,html.theme--catppuccin-macchiato .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--catppuccin-macchiato .is-primary.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-macchiato .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .is-link.textarea,html.theme--catppuccin-macchiato .is-link.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#8aadf4}html.theme--catppuccin-macchiato .is-link.textarea:focus,html.theme--catppuccin-macchiato .is-link.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--catppuccin-macchiato .is-link.is-focused.textarea,html.theme--catppuccin-macchiato .is-link.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-link.textarea:active,html.theme--catppuccin-macchiato .is-link.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--catppuccin-macchiato .is-link.is-active.textarea,html.theme--catppuccin-macchiato .is-link.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .is-info.textarea,html.theme--catppuccin-macchiato .is-info.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#8bd5ca}html.theme--catppuccin-macchiato .is-info.textarea:focus,html.theme--catppuccin-macchiato .is-info.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--catppuccin-macchiato .is-info.is-focused.textarea,html.theme--catppuccin-macchiato .is-info.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-info.textarea:active,html.theme--catppuccin-macchiato .is-info.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--catppuccin-macchiato .is-info.is-active.textarea,html.theme--catppuccin-macchiato .is-info.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(139,213,202,0.25)}html.theme--catppuccin-macchiato .is-success.textarea,html.theme--catppuccin-macchiato .is-success.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#a6da95}html.theme--catppuccin-macchiato .is-success.textarea:focus,html.theme--catppuccin-macchiato .is-success.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--catppuccin-macchiato .is-success.is-focused.textarea,html.theme--catppuccin-macchiato .is-success.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-success.textarea:active,html.theme--catppuccin-macchiato .is-success.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--catppuccin-macchiato .is-success.is-active.textarea,html.theme--catppuccin-macchiato .is-success.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(166,218,149,0.25)}html.theme--catppuccin-macchiato .is-warning.textarea,html.theme--catppuccin-macchiato .is-warning.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#eed49f}html.theme--catppuccin-macchiato .is-warning.textarea:focus,html.theme--catppuccin-macchiato .is-warning.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--catppuccin-macchiato .is-warning.is-focused.textarea,html.theme--catppuccin-macchiato .is-warning.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-warning.textarea:active,html.theme--catppuccin-macchiato .is-warning.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--catppuccin-macchiato .is-warning.is-active.textarea,html.theme--catppuccin-macchiato .is-warning.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(238,212,159,0.25)}html.theme--catppuccin-macchiato .is-danger.textarea,html.theme--catppuccin-macchiato .is-danger.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#ed8796}html.theme--catppuccin-macchiato .is-danger.textarea:focus,html.theme--catppuccin-macchiato .is-danger.input:focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--catppuccin-macchiato .is-danger.is-focused.textarea,html.theme--catppuccin-macchiato .is-danger.is-focused.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-macchiato .is-danger.textarea:active,html.theme--catppuccin-macchiato .is-danger.input:active,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--catppuccin-macchiato .is-danger.is-active.textarea,html.theme--catppuccin-macchiato .is-danger.is-active.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(237,135,150,0.25)}html.theme--catppuccin-macchiato .is-small.textarea,html.theme--catppuccin-macchiato .is-small.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--catppuccin-macchiato .is-medium.textarea,html.theme--catppuccin-macchiato .is-medium.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .is-large.textarea,html.theme--catppuccin-macchiato .is-large.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .is-fullwidth.textarea,html.theme--catppuccin-macchiato .is-fullwidth.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--catppuccin-macchiato .is-inline.textarea,html.theme--catppuccin-macchiato .is-inline.input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--catppuccin-macchiato .input.is-rounded,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .input.is-static,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--catppuccin-macchiato .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--catppuccin-macchiato .textarea[rows]{height:initial}html.theme--catppuccin-macchiato .textarea.has-fixed-size{resize:none}html.theme--catppuccin-macchiato .radio,html.theme--catppuccin-macchiato .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--catppuccin-macchiato .radio input,html.theme--catppuccin-macchiato .checkbox input{cursor:pointer}html.theme--catppuccin-macchiato .radio:hover,html.theme--catppuccin-macchiato .checkbox:hover{color:#91d7e3}html.theme--catppuccin-macchiato .radio[disabled],html.theme--catppuccin-macchiato .checkbox[disabled],fieldset[disabled] html.theme--catppuccin-macchiato .radio,fieldset[disabled] html.theme--catppuccin-macchiato .checkbox,html.theme--catppuccin-macchiato .radio input[disabled],html.theme--catppuccin-macchiato .checkbox input[disabled]{color:#f5f7fd;cursor:not-allowed}html.theme--catppuccin-macchiato .radio+.radio{margin-left:.5em}html.theme--catppuccin-macchiato .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--catppuccin-macchiato .select:not(.is-multiple){height:2.5em}html.theme--catppuccin-macchiato .select:not(.is-multiple):not(.is-loading)::after{border-color:#8aadf4;right:1.125em;z-index:4}html.theme--catppuccin-macchiato .select.is-rounded select,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--catppuccin-macchiato .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--catppuccin-macchiato .select select::-ms-expand{display:none}html.theme--catppuccin-macchiato .select select[disabled]:hover,fieldset[disabled] html.theme--catppuccin-macchiato .select select:hover{border-color:#1e2030}html.theme--catppuccin-macchiato .select select:not([multiple]){padding-right:2.5em}html.theme--catppuccin-macchiato .select select[multiple]{height:auto;padding:0}html.theme--catppuccin-macchiato .select select[multiple] option{padding:0.5em 1em}html.theme--catppuccin-macchiato .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#91d7e3}html.theme--catppuccin-macchiato .select.is-white:not(:hover)::after{border-color:#fff}html.theme--catppuccin-macchiato .select.is-white select{border-color:#fff}html.theme--catppuccin-macchiato .select.is-white select:hover,html.theme--catppuccin-macchiato .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--catppuccin-macchiato .select.is-white select:focus,html.theme--catppuccin-macchiato .select.is-white select.is-focused,html.theme--catppuccin-macchiato .select.is-white select:active,html.theme--catppuccin-macchiato .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-macchiato .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--catppuccin-macchiato .select.is-black select{border-color:#0a0a0a}html.theme--catppuccin-macchiato .select.is-black select:hover,html.theme--catppuccin-macchiato .select.is-black select.is-hovered{border-color:#000}html.theme--catppuccin-macchiato .select.is-black select:focus,html.theme--catppuccin-macchiato .select.is-black select.is-focused,html.theme--catppuccin-macchiato .select.is-black select:active,html.theme--catppuccin-macchiato .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-macchiato .select.is-light:not(:hover)::after{border-color:#f5f5f5}html.theme--catppuccin-macchiato .select.is-light select{border-color:#f5f5f5}html.theme--catppuccin-macchiato .select.is-light select:hover,html.theme--catppuccin-macchiato .select.is-light select.is-hovered{border-color:#e8e8e8}html.theme--catppuccin-macchiato .select.is-light select:focus,html.theme--catppuccin-macchiato .select.is-light select.is-focused,html.theme--catppuccin-macchiato .select.is-light select:active,html.theme--catppuccin-macchiato .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-macchiato .select.is-dark:not(:hover)::after,html.theme--catppuccin-macchiato .content kbd.select:not(:hover)::after{border-color:#363a4f}html.theme--catppuccin-macchiato .select.is-dark select,html.theme--catppuccin-macchiato .content kbd.select select{border-color:#363a4f}html.theme--catppuccin-macchiato .select.is-dark select:hover,html.theme--catppuccin-macchiato .content kbd.select select:hover,html.theme--catppuccin-macchiato .select.is-dark select.is-hovered,html.theme--catppuccin-macchiato .content kbd.select select.is-hovered{border-color:#2c2f40}html.theme--catppuccin-macchiato .select.is-dark select:focus,html.theme--catppuccin-macchiato .content kbd.select select:focus,html.theme--catppuccin-macchiato .select.is-dark select.is-focused,html.theme--catppuccin-macchiato .content kbd.select select.is-focused,html.theme--catppuccin-macchiato .select.is-dark select:active,html.theme--catppuccin-macchiato .content kbd.select select:active,html.theme--catppuccin-macchiato .select.is-dark select.is-active,html.theme--catppuccin-macchiato .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,58,79,0.25)}html.theme--catppuccin-macchiato .select.is-primary:not(:hover)::after,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#8aadf4}html.theme--catppuccin-macchiato .select.is-primary select,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select{border-color:#8aadf4}html.theme--catppuccin-macchiato .select.is-primary select:hover,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select:hover,html.theme--catppuccin-macchiato .select.is-primary select.is-hovered,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#739df2}html.theme--catppuccin-macchiato .select.is-primary select:focus,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select:focus,html.theme--catppuccin-macchiato .select.is-primary select.is-focused,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--catppuccin-macchiato .select.is-primary select:active,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select:active,html.theme--catppuccin-macchiato .select.is-primary select.is-active,html.theme--catppuccin-macchiato .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .select.is-link:not(:hover)::after{border-color:#8aadf4}html.theme--catppuccin-macchiato .select.is-link select{border-color:#8aadf4}html.theme--catppuccin-macchiato .select.is-link select:hover,html.theme--catppuccin-macchiato .select.is-link select.is-hovered{border-color:#739df2}html.theme--catppuccin-macchiato .select.is-link select:focus,html.theme--catppuccin-macchiato .select.is-link select.is-focused,html.theme--catppuccin-macchiato .select.is-link select:active,html.theme--catppuccin-macchiato .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(138,173,244,0.25)}html.theme--catppuccin-macchiato .select.is-info:not(:hover)::after{border-color:#8bd5ca}html.theme--catppuccin-macchiato .select.is-info select{border-color:#8bd5ca}html.theme--catppuccin-macchiato .select.is-info select:hover,html.theme--catppuccin-macchiato .select.is-info select.is-hovered{border-color:#78cec1}html.theme--catppuccin-macchiato .select.is-info select:focus,html.theme--catppuccin-macchiato .select.is-info select.is-focused,html.theme--catppuccin-macchiato .select.is-info select:active,html.theme--catppuccin-macchiato .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(139,213,202,0.25)}html.theme--catppuccin-macchiato .select.is-success:not(:hover)::after{border-color:#a6da95}html.theme--catppuccin-macchiato .select.is-success select{border-color:#a6da95}html.theme--catppuccin-macchiato .select.is-success select:hover,html.theme--catppuccin-macchiato .select.is-success select.is-hovered{border-color:#96d382}html.theme--catppuccin-macchiato .select.is-success select:focus,html.theme--catppuccin-macchiato .select.is-success select.is-focused,html.theme--catppuccin-macchiato .select.is-success select:active,html.theme--catppuccin-macchiato .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(166,218,149,0.25)}html.theme--catppuccin-macchiato .select.is-warning:not(:hover)::after{border-color:#eed49f}html.theme--catppuccin-macchiato .select.is-warning select{border-color:#eed49f}html.theme--catppuccin-macchiato .select.is-warning select:hover,html.theme--catppuccin-macchiato .select.is-warning select.is-hovered{border-color:#eaca89}html.theme--catppuccin-macchiato .select.is-warning select:focus,html.theme--catppuccin-macchiato .select.is-warning select.is-focused,html.theme--catppuccin-macchiato .select.is-warning select:active,html.theme--catppuccin-macchiato .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(238,212,159,0.25)}html.theme--catppuccin-macchiato .select.is-danger:not(:hover)::after{border-color:#ed8796}html.theme--catppuccin-macchiato .select.is-danger select{border-color:#ed8796}html.theme--catppuccin-macchiato .select.is-danger select:hover,html.theme--catppuccin-macchiato .select.is-danger select.is-hovered{border-color:#ea7183}html.theme--catppuccin-macchiato .select.is-danger select:focus,html.theme--catppuccin-macchiato .select.is-danger select.is-focused,html.theme--catppuccin-macchiato .select.is-danger select:active,html.theme--catppuccin-macchiato .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(237,135,150,0.25)}html.theme--catppuccin-macchiato .select.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--catppuccin-macchiato .select.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .select.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .select.is-disabled::after{border-color:#f5f7fd !important;opacity:0.5}html.theme--catppuccin-macchiato .select.is-fullwidth{width:100%}html.theme--catppuccin-macchiato .select.is-fullwidth select{width:100%}html.theme--catppuccin-macchiato .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--catppuccin-macchiato .select.is-loading.is-small:after,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-macchiato .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-macchiato .select.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-macchiato .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--catppuccin-macchiato .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .file.is-white:hover .file-cta,html.theme--catppuccin-macchiato .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .file.is-white:focus .file-cta,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .file.is-white:active .file-cta,html.theme--catppuccin-macchiato .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-macchiato .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-black:hover .file-cta,html.theme--catppuccin-macchiato .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-black:focus .file-cta,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .file.is-black:active .file-cta,html.theme--catppuccin-macchiato .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-light:hover .file-cta,html.theme--catppuccin-macchiato .file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-light:focus .file-cta,html.theme--catppuccin-macchiato .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)}html.theme--catppuccin-macchiato .file.is-light:active .file-cta,html.theme--catppuccin-macchiato .file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-dark .file-cta,html.theme--catppuccin-macchiato .content kbd.file .file-cta{background-color:#363a4f;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-dark:hover .file-cta,html.theme--catppuccin-macchiato .content kbd.file:hover .file-cta,html.theme--catppuccin-macchiato .file.is-dark.is-hovered .file-cta,html.theme--catppuccin-macchiato .content kbd.file.is-hovered .file-cta{background-color:#313447;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-dark:focus .file-cta,html.theme--catppuccin-macchiato .content kbd.file:focus .file-cta,html.theme--catppuccin-macchiato .file.is-dark.is-focused .file-cta,html.theme--catppuccin-macchiato .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,58,79,0.25);color:#fff}html.theme--catppuccin-macchiato .file.is-dark:active .file-cta,html.theme--catppuccin-macchiato .content kbd.file:active .file-cta,html.theme--catppuccin-macchiato .file.is-dark.is-active .file-cta,html.theme--catppuccin-macchiato .content kbd.file.is-active .file-cta{background-color:#2c2f40;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-primary .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#8aadf4;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-primary:hover .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--catppuccin-macchiato .file.is-primary.is-hovered .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#7ea5f3;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-primary:focus .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--catppuccin-macchiato .file.is-primary.is-focused .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(138,173,244,0.25);color:#fff}html.theme--catppuccin-macchiato .file.is-primary:active .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--catppuccin-macchiato .file.is-primary.is-active .file-cta,html.theme--catppuccin-macchiato .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#739df2;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-link .file-cta{background-color:#8aadf4;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-link:hover .file-cta,html.theme--catppuccin-macchiato .file.is-link.is-hovered .file-cta{background-color:#7ea5f3;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-link:focus .file-cta,html.theme--catppuccin-macchiato .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(138,173,244,0.25);color:#fff}html.theme--catppuccin-macchiato .file.is-link:active .file-cta,html.theme--catppuccin-macchiato .file.is-link.is-active .file-cta{background-color:#739df2;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-info .file-cta{background-color:#8bd5ca;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-info:hover .file-cta,html.theme--catppuccin-macchiato .file.is-info.is-hovered .file-cta{background-color:#82d2c6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-info:focus .file-cta,html.theme--catppuccin-macchiato .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(139,213,202,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-info:active .file-cta,html.theme--catppuccin-macchiato .file.is-info.is-active .file-cta{background-color:#78cec1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-success .file-cta{background-color:#a6da95;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-success:hover .file-cta,html.theme--catppuccin-macchiato .file.is-success.is-hovered .file-cta{background-color:#9ed78c;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-success:focus .file-cta,html.theme--catppuccin-macchiato .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(166,218,149,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-success:active .file-cta,html.theme--catppuccin-macchiato .file.is-success.is-active .file-cta{background-color:#96d382;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-warning .file-cta{background-color:#eed49f;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-warning:hover .file-cta,html.theme--catppuccin-macchiato .file.is-warning.is-hovered .file-cta{background-color:#eccf94;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-warning:focus .file-cta,html.theme--catppuccin-macchiato .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(238,212,159,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-warning:active .file-cta,html.theme--catppuccin-macchiato .file.is-warning.is-active .file-cta{background-color:#eaca89;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .file.is-danger .file-cta{background-color:#ed8796;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-danger:hover .file-cta,html.theme--catppuccin-macchiato .file.is-danger.is-hovered .file-cta{background-color:#eb7c8c;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-danger:focus .file-cta,html.theme--catppuccin-macchiato .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(237,135,150,0.25);color:#fff}html.theme--catppuccin-macchiato .file.is-danger:active .file-cta,html.theme--catppuccin-macchiato .file.is-danger.is-active .file-cta{background-color:#ea7183;border-color:transparent;color:#fff}html.theme--catppuccin-macchiato .file.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--catppuccin-macchiato .file.is-normal{font-size:1rem}html.theme--catppuccin-macchiato .file.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .file.is-medium .file-icon .fa{font-size:21px}html.theme--catppuccin-macchiato .file.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .file.is-large .file-icon .fa{font-size:28px}html.theme--catppuccin-macchiato .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-macchiato .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-macchiato .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--catppuccin-macchiato .file.has-name.is-empty .file-name{display:none}html.theme--catppuccin-macchiato .file.is-boxed .file-label{flex-direction:column}html.theme--catppuccin-macchiato .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--catppuccin-macchiato .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--catppuccin-macchiato .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--catppuccin-macchiato .file.is-boxed .file-icon .fa{font-size:21px}html.theme--catppuccin-macchiato .file.is-boxed.is-small .file-icon .fa,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--catppuccin-macchiato .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--catppuccin-macchiato .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--catppuccin-macchiato .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--catppuccin-macchiato .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--catppuccin-macchiato .file.is-centered{justify-content:center}html.theme--catppuccin-macchiato .file.is-fullwidth .file-label{width:100%}html.theme--catppuccin-macchiato .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--catppuccin-macchiato .file.is-right{justify-content:flex-end}html.theme--catppuccin-macchiato .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--catppuccin-macchiato .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--catppuccin-macchiato .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--catppuccin-macchiato .file-label:hover .file-cta{background-color:#313447;color:#b5c1f1}html.theme--catppuccin-macchiato .file-label:hover .file-name{border-color:#565a71}html.theme--catppuccin-macchiato .file-label:active .file-cta{background-color:#2c2f40;color:#b5c1f1}html.theme--catppuccin-macchiato .file-label:active .file-name{border-color:#505469}html.theme--catppuccin-macchiato .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--catppuccin-macchiato .file-cta,html.theme--catppuccin-macchiato .file-name{border-color:#5b6078;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--catppuccin-macchiato .file-cta{background-color:#363a4f;color:#cad3f5}html.theme--catppuccin-macchiato .file-name{border-color:#5b6078;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--catppuccin-macchiato .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--catppuccin-macchiato .file-icon .fa{font-size:14px}html.theme--catppuccin-macchiato .label{color:#b5c1f1;display:block;font-size:1rem;font-weight:700}html.theme--catppuccin-macchiato .label:not(:last-child){margin-bottom:0.5em}html.theme--catppuccin-macchiato .label.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--catppuccin-macchiato .label.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .label.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--catppuccin-macchiato .help.is-white{color:#fff}html.theme--catppuccin-macchiato .help.is-black{color:#0a0a0a}html.theme--catppuccin-macchiato .help.is-light{color:#f5f5f5}html.theme--catppuccin-macchiato .help.is-dark,html.theme--catppuccin-macchiato .content kbd.help{color:#363a4f}html.theme--catppuccin-macchiato .help.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.help.docs-sourcelink{color:#8aadf4}html.theme--catppuccin-macchiato .help.is-link{color:#8aadf4}html.theme--catppuccin-macchiato .help.is-info{color:#8bd5ca}html.theme--catppuccin-macchiato .help.is-success{color:#a6da95}html.theme--catppuccin-macchiato .help.is-warning{color:#eed49f}html.theme--catppuccin-macchiato .help.is-danger{color:#ed8796}html.theme--catppuccin-macchiato .field:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-macchiato .field.has-addons{display:flex;justify-content:flex-start}html.theme--catppuccin-macchiato .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--catppuccin-macchiato .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--catppuccin-macchiato .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--catppuccin-macchiato .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--catppuccin-macchiato .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--catppuccin-macchiato .field.has-addons .control:first-child:not(:only-child) .button,html.theme--catppuccin-macchiato .field.has-addons .control:first-child:not(:only-child) .input,html.theme--catppuccin-macchiato .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-macchiato .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-macchiato .field.has-addons .control:last-child:not(:only-child) .button,html.theme--catppuccin-macchiato .field.has-addons .control:last-child:not(:only-child) .input,html.theme--catppuccin-macchiato .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-macchiato .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-macchiato .field.has-addons .control .button:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .input:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .select select:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--catppuccin-macchiato .field.has-addons .control .button:not([disabled]):focus,html.theme--catppuccin-macchiato .field.has-addons .control .button.is-focused:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .button:not([disabled]):active,html.theme--catppuccin-macchiato .field.has-addons .control .button.is-active:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .input:not([disabled]):focus,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-macchiato .field.has-addons .control .input.is-focused:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .input:not([disabled]):active,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--catppuccin-macchiato .field.has-addons .control .input.is-active:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .select select:not([disabled]):focus,html.theme--catppuccin-macchiato .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--catppuccin-macchiato .field.has-addons .control .select select:not([disabled]):active,html.theme--catppuccin-macchiato .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--catppuccin-macchiato .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--catppuccin-macchiato .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .button:not([disabled]):active:hover,html.theme--catppuccin-macchiato .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-macchiato .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .input:not([disabled]):active:hover,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-macchiato .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--catppuccin-macchiato .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--catppuccin-macchiato .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--catppuccin-macchiato .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--catppuccin-macchiato .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .field.has-addons.has-addons-centered{justify-content:center}html.theme--catppuccin-macchiato .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--catppuccin-macchiato .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--catppuccin-macchiato .field.is-grouped{display:flex;justify-content:flex-start}html.theme--catppuccin-macchiato .field.is-grouped>.control{flex-shrink:0}html.theme--catppuccin-macchiato .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-macchiato .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--catppuccin-macchiato .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .field.is-horizontal{display:flex}}html.theme--catppuccin-macchiato .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--catppuccin-macchiato .field-label.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--catppuccin-macchiato .field-label.is-normal{padding-top:0.375em}html.theme--catppuccin-macchiato .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--catppuccin-macchiato .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--catppuccin-macchiato .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--catppuccin-macchiato .field-body .field{margin-bottom:0}html.theme--catppuccin-macchiato .field-body>.field{flex-shrink:1}html.theme--catppuccin-macchiato .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--catppuccin-macchiato .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-macchiato .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--catppuccin-macchiato .control.has-icons-left .input:focus~.icon,html.theme--catppuccin-macchiato .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--catppuccin-macchiato .control.has-icons-left .select:focus~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .input:focus~.icon,html.theme--catppuccin-macchiato .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .select:focus~.icon{color:#363a4f}html.theme--catppuccin-macchiato .control.has-icons-left .input.is-small~.icon,html.theme--catppuccin-macchiato .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--catppuccin-macchiato .control.has-icons-left .select.is-small~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .input.is-small~.icon,html.theme--catppuccin-macchiato .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--catppuccin-macchiato .control.has-icons-left .input.is-medium~.icon,html.theme--catppuccin-macchiato .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--catppuccin-macchiato .control.has-icons-left .select.is-medium~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .input.is-medium~.icon,html.theme--catppuccin-macchiato .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--catppuccin-macchiato .control.has-icons-left .input.is-large~.icon,html.theme--catppuccin-macchiato .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--catppuccin-macchiato .control.has-icons-left .select.is-large~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .input.is-large~.icon,html.theme--catppuccin-macchiato .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--catppuccin-macchiato .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--catppuccin-macchiato .control.has-icons-left .icon,html.theme--catppuccin-macchiato .control.has-icons-right .icon{color:#5b6078;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--catppuccin-macchiato .control.has-icons-left .input,html.theme--catppuccin-macchiato .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--catppuccin-macchiato .control.has-icons-left .select select{padding-left:2.5em}html.theme--catppuccin-macchiato .control.has-icons-left .icon.is-left{left:0}html.theme--catppuccin-macchiato .control.has-icons-right .input,html.theme--catppuccin-macchiato .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--catppuccin-macchiato .control.has-icons-right .select select{padding-right:2.5em}html.theme--catppuccin-macchiato .control.has-icons-right .icon.is-right{right:0}html.theme--catppuccin-macchiato .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--catppuccin-macchiato .control.is-loading.is-small:after,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-macchiato .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-macchiato .control.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-macchiato .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--catppuccin-macchiato .breadcrumb a{align-items:center;color:#8aadf4;display:flex;justify-content:center;padding:0 .75em}html.theme--catppuccin-macchiato .breadcrumb a:hover{color:#91d7e3}html.theme--catppuccin-macchiato .breadcrumb li{align-items:center;display:flex}html.theme--catppuccin-macchiato .breadcrumb li:first-child a{padding-left:0}html.theme--catppuccin-macchiato .breadcrumb li.is-active a{color:#b5c1f1;cursor:default;pointer-events:none}html.theme--catppuccin-macchiato .breadcrumb li+li::before{color:#6e738d;content:"\0002f"}html.theme--catppuccin-macchiato .breadcrumb ul,html.theme--catppuccin-macchiato .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-macchiato .breadcrumb .icon:first-child{margin-right:.5em}html.theme--catppuccin-macchiato .breadcrumb .icon:last-child{margin-left:.5em}html.theme--catppuccin-macchiato .breadcrumb.is-centered ol,html.theme--catppuccin-macchiato .breadcrumb.is-centered ul{justify-content:center}html.theme--catppuccin-macchiato .breadcrumb.is-right ol,html.theme--catppuccin-macchiato .breadcrumb.is-right ul{justify-content:flex-end}html.theme--catppuccin-macchiato .breadcrumb.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--catppuccin-macchiato .breadcrumb.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .breadcrumb.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--catppuccin-macchiato .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--catppuccin-macchiato .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--catppuccin-macchiato .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--catppuccin-macchiato .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#cad3f5;max-width:100%;position:relative}html.theme--catppuccin-macchiato .card-footer:first-child,html.theme--catppuccin-macchiato .card-content:first-child,html.theme--catppuccin-macchiato .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-macchiato .card-footer:last-child,html.theme--catppuccin-macchiato .card-content:last-child,html.theme--catppuccin-macchiato .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .card-header-title{align-items:center;color:#b5c1f1;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--catppuccin-macchiato .card-header-title.is-centered{justify-content:center}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .card-image{display:block;position:relative}html.theme--catppuccin-macchiato .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-macchiato .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-macchiato .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--catppuccin-macchiato .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--catppuccin-macchiato .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--catppuccin-macchiato .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--catppuccin-macchiato .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-macchiato .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--catppuccin-macchiato .dropdown.is-active .dropdown-menu,html.theme--catppuccin-macchiato .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--catppuccin-macchiato .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--catppuccin-macchiato .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--catppuccin-macchiato .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--catppuccin-macchiato .dropdown-content{background-color:#1e2030;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--catppuccin-macchiato .dropdown-item{color:#cad3f5;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--catppuccin-macchiato a.dropdown-item,html.theme--catppuccin-macchiato button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--catppuccin-macchiato a.dropdown-item:hover,html.theme--catppuccin-macchiato button.dropdown-item:hover{background-color:#1e2030;color:#0a0a0a}html.theme--catppuccin-macchiato a.dropdown-item.is-active,html.theme--catppuccin-macchiato button.dropdown-item.is-active{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--catppuccin-macchiato .level{align-items:center;justify-content:space-between}html.theme--catppuccin-macchiato .level code{border-radius:.4em}html.theme--catppuccin-macchiato .level img{display:inline-block;vertical-align:top}html.theme--catppuccin-macchiato .level.is-mobile{display:flex}html.theme--catppuccin-macchiato .level.is-mobile .level-left,html.theme--catppuccin-macchiato .level.is-mobile .level-right{display:flex}html.theme--catppuccin-macchiato .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--catppuccin-macchiato .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-macchiato .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .level{display:flex}html.theme--catppuccin-macchiato .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--catppuccin-macchiato .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--catppuccin-macchiato .level-item .title,html.theme--catppuccin-macchiato .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--catppuccin-macchiato .level-left,html.theme--catppuccin-macchiato .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-macchiato .level-left .level-item.is-flexible,html.theme--catppuccin-macchiato .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .level-left .level-item:not(:last-child),html.theme--catppuccin-macchiato .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-macchiato .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .level-left{display:flex}}html.theme--catppuccin-macchiato .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .level-right{display:flex}}html.theme--catppuccin-macchiato .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--catppuccin-macchiato .media .content:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-macchiato .media .media{border-top:1px solid rgba(91,96,120,0.5);display:flex;padding-top:.75rem}html.theme--catppuccin-macchiato .media .media .content:not(:last-child),html.theme--catppuccin-macchiato .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--catppuccin-macchiato .media .media .media{padding-top:.5rem}html.theme--catppuccin-macchiato .media .media .media+.media{margin-top:.5rem}html.theme--catppuccin-macchiato .media+.media{border-top:1px solid rgba(91,96,120,0.5);margin-top:1rem;padding-top:1rem}html.theme--catppuccin-macchiato .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--catppuccin-macchiato .media-left,html.theme--catppuccin-macchiato .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-macchiato .media-left{margin-right:1rem}html.theme--catppuccin-macchiato .media-right{margin-left:1rem}html.theme--catppuccin-macchiato .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .media-content{overflow-x:auto}}html.theme--catppuccin-macchiato .menu{font-size:1rem}html.theme--catppuccin-macchiato .menu.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--catppuccin-macchiato .menu.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .menu.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .menu-list{line-height:1.25}html.theme--catppuccin-macchiato .menu-list a{border-radius:3px;color:#cad3f5;display:block;padding:0.5em 0.75em}html.theme--catppuccin-macchiato .menu-list a:hover{background-color:#1e2030;color:#b5c1f1}html.theme--catppuccin-macchiato .menu-list a.is-active{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .menu-list li ul{border-left:1px solid #5b6078;margin:.75em;padding-left:.75em}html.theme--catppuccin-macchiato .menu-label{color:#f5f7fd;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--catppuccin-macchiato .menu-label:not(:first-child){margin-top:1em}html.theme--catppuccin-macchiato .menu-label:not(:last-child){margin-bottom:1em}html.theme--catppuccin-macchiato .message{background-color:#1e2030;border-radius:.4em;font-size:1rem}html.theme--catppuccin-macchiato .message strong{color:currentColor}html.theme--catppuccin-macchiato .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-macchiato .message.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--catppuccin-macchiato .message.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .message.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .message.is-white{background-color:#fff}html.theme--catppuccin-macchiato .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .message.is-white .message-body{border-color:#fff}html.theme--catppuccin-macchiato .message.is-black{background-color:#fafafa}html.theme--catppuccin-macchiato .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .message.is-black .message-body{border-color:#0a0a0a}html.theme--catppuccin-macchiato .message.is-light{background-color:#fafafa}html.theme--catppuccin-macchiato .message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .message.is-light .message-body{border-color:#f5f5f5}html.theme--catppuccin-macchiato .message.is-dark,html.theme--catppuccin-macchiato .content kbd.message{background-color:#f9f9fb}html.theme--catppuccin-macchiato .message.is-dark .message-header,html.theme--catppuccin-macchiato .content kbd.message .message-header{background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .message.is-dark .message-body,html.theme--catppuccin-macchiato .content kbd.message .message-body{border-color:#363a4f}html.theme--catppuccin-macchiato .message.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.message.docs-sourcelink{background-color:#ecf2fd}html.theme--catppuccin-macchiato .message.is-primary .message-header,html.theme--catppuccin-macchiato .docstring>section>a.message.docs-sourcelink .message-header{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .message.is-primary .message-body,html.theme--catppuccin-macchiato .docstring>section>a.message.docs-sourcelink .message-body{border-color:#8aadf4;color:#0e3b95}html.theme--catppuccin-macchiato .message.is-link{background-color:#ecf2fd}html.theme--catppuccin-macchiato .message.is-link .message-header{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .message.is-link .message-body{border-color:#8aadf4;color:#0e3b95}html.theme--catppuccin-macchiato .message.is-info{background-color:#f0faf8}html.theme--catppuccin-macchiato .message.is-info .message-header{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .message.is-info .message-body{border-color:#8bd5ca;color:#276d62}html.theme--catppuccin-macchiato .message.is-success{background-color:#f2faf0}html.theme--catppuccin-macchiato .message.is-success .message-header{background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .message.is-success .message-body{border-color:#a6da95;color:#386e26}html.theme--catppuccin-macchiato .message.is-warning{background-color:#fcf7ee}html.theme--catppuccin-macchiato .message.is-warning .message-header{background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .message.is-warning .message-body{border-color:#eed49f;color:#7e5c16}html.theme--catppuccin-macchiato .message.is-danger{background-color:#fcedef}html.theme--catppuccin-macchiato .message.is-danger .message-header{background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .message.is-danger .message-body{border-color:#ed8796;color:#971729}html.theme--catppuccin-macchiato .message-header{align-items:center;background-color:#cad3f5;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--catppuccin-macchiato .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--catppuccin-macchiato .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--catppuccin-macchiato .message-body{border-color:#5b6078;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#cad3f5;padding:1.25em 1.5em}html.theme--catppuccin-macchiato .message-body code,html.theme--catppuccin-macchiato .message-body pre{background-color:#fff}html.theme--catppuccin-macchiato .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--catppuccin-macchiato .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--catppuccin-macchiato .modal.is-active{display:flex}html.theme--catppuccin-macchiato .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--catppuccin-macchiato .modal-content,html.theme--catppuccin-macchiato .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--catppuccin-macchiato .modal-content,html.theme--catppuccin-macchiato .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--catppuccin-macchiato .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--catppuccin-macchiato .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--catppuccin-macchiato .modal-card-head,html.theme--catppuccin-macchiato .modal-card-foot{align-items:center;background-color:#1e2030;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--catppuccin-macchiato .modal-card-head{border-bottom:1px solid #5b6078;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--catppuccin-macchiato .modal-card-title{color:#cad3f5;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--catppuccin-macchiato .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5b6078}html.theme--catppuccin-macchiato .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--catppuccin-macchiato .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#24273a;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--catppuccin-macchiato .navbar{background-color:#8aadf4;min-height:4rem;position:relative;z-index:30}html.theme--catppuccin-macchiato .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-white .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-macchiato .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--catppuccin-macchiato .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-black .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--catppuccin-macchiato .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--catppuccin-macchiato .navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-light .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-macchiato .navbar.is-dark,html.theme--catppuccin-macchiato .content kbd.navbar{background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#2c2f40;color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-burger,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#2c2f40;color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-end .navbar-link::after,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2c2f40;color:#fff}html.theme--catppuccin-macchiato .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-macchiato .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363a4f;color:#fff}}html.theme--catppuccin-macchiato .navbar.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-burger,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-end .navbar-link::after,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#8aadf4;color:#fff}}html.theme--catppuccin-macchiato .navbar.is-link{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-link .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#8aadf4;color:#fff}}html.theme--catppuccin-macchiato .navbar.is-info{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#78cec1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-info .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#78cec1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-info .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#78cec1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-macchiato .navbar.is-success{background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#96d382;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-success .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#96d382;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-success .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#96d382;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#a6da95;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-macchiato .navbar.is-warning{background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#eaca89;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#eaca89;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#eaca89;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#eed49f;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-macchiato .navbar.is-danger{background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#ea7183;color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start .navbar-link,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end>.navbar-item,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#ea7183;color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-start .navbar-link::after,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ea7183;color:#fff}html.theme--catppuccin-macchiato .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#ed8796;color:#fff}}html.theme--catppuccin-macchiato .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--catppuccin-macchiato .navbar.has-shadow{box-shadow:0 2px 0 0 #1e2030}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom,html.theme--catppuccin-macchiato .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom{bottom:0}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #1e2030}html.theme--catppuccin-macchiato .navbar.is-fixed-top{top:0}html.theme--catppuccin-macchiato html.has-navbar-fixed-top,html.theme--catppuccin-macchiato body.has-navbar-fixed-top{padding-top:4rem}html.theme--catppuccin-macchiato html.has-navbar-fixed-bottom,html.theme--catppuccin-macchiato body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--catppuccin-macchiato .navbar-brand,html.theme--catppuccin-macchiato .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--catppuccin-macchiato .navbar-brand a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--catppuccin-macchiato .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--catppuccin-macchiato .navbar-burger{color:#cad3f5;-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--catppuccin-macchiato .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--catppuccin-macchiato .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--catppuccin-macchiato .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--catppuccin-macchiato .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--catppuccin-macchiato .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--catppuccin-macchiato .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--catppuccin-macchiato .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--catppuccin-macchiato .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--catppuccin-macchiato .navbar-menu{display:none}html.theme--catppuccin-macchiato .navbar-item,html.theme--catppuccin-macchiato .navbar-link{color:#cad3f5;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--catppuccin-macchiato .navbar-item .icon:only-child,html.theme--catppuccin-macchiato .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--catppuccin-macchiato a.navbar-item,html.theme--catppuccin-macchiato .navbar-link{cursor:pointer}html.theme--catppuccin-macchiato a.navbar-item:focus,html.theme--catppuccin-macchiato a.navbar-item:focus-within,html.theme--catppuccin-macchiato a.navbar-item:hover,html.theme--catppuccin-macchiato a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar-link:focus,html.theme--catppuccin-macchiato .navbar-link:focus-within,html.theme--catppuccin-macchiato .navbar-link:hover,html.theme--catppuccin-macchiato .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#8aadf4}html.theme--catppuccin-macchiato .navbar-item{flex-grow:0;flex-shrink:0}html.theme--catppuccin-macchiato .navbar-item img{max-height:1.75rem}html.theme--catppuccin-macchiato .navbar-item.has-dropdown{padding:0}html.theme--catppuccin-macchiato .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--catppuccin-macchiato .navbar-item.is-tab:focus,html.theme--catppuccin-macchiato .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#8aadf4}html.theme--catppuccin-macchiato .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#8aadf4;border-bottom-style:solid;border-bottom-width:3px;color:#8aadf4;padding-bottom:calc(0.5rem - 3px)}html.theme--catppuccin-macchiato .navbar-content{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--catppuccin-macchiato .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--catppuccin-macchiato .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--catppuccin-macchiato .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .navbar>.container{display:block}html.theme--catppuccin-macchiato .navbar-brand .navbar-item,html.theme--catppuccin-macchiato .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--catppuccin-macchiato .navbar-link::after{display:none}html.theme--catppuccin-macchiato .navbar-menu{background-color:#8aadf4;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--catppuccin-macchiato .navbar-menu.is-active{display:block}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-touch,html.theme--catppuccin-macchiato .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-touch{bottom:0}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .navbar.is-fixed-top-touch{top:0}html.theme--catppuccin-macchiato .navbar.is-fixed-top .navbar-menu,html.theme--catppuccin-macchiato .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--catppuccin-macchiato html.has-navbar-fixed-top-touch,html.theme--catppuccin-macchiato body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--catppuccin-macchiato html.has-navbar-fixed-bottom-touch,html.theme--catppuccin-macchiato body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .navbar,html.theme--catppuccin-macchiato .navbar-menu,html.theme--catppuccin-macchiato .navbar-start,html.theme--catppuccin-macchiato .navbar-end{align-items:stretch;display:flex}html.theme--catppuccin-macchiato .navbar{min-height:4rem}html.theme--catppuccin-macchiato .navbar.is-spaced{padding:1rem 2rem}html.theme--catppuccin-macchiato .navbar.is-spaced .navbar-start,html.theme--catppuccin-macchiato .navbar.is-spaced .navbar-end{align-items:center}html.theme--catppuccin-macchiato .navbar.is-spaced a.navbar-item,html.theme--catppuccin-macchiato .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--catppuccin-macchiato .navbar.is-transparent a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-transparent a.navbar-item:hover,html.theme--catppuccin-macchiato .navbar.is-transparent a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-link:focus,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-link:hover,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#8087a2}html.theme--catppuccin-macchiato .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#8aadf4}html.theme--catppuccin-macchiato .navbar-burger{display:none}html.theme--catppuccin-macchiato .navbar-item,html.theme--catppuccin-macchiato .navbar-link{align-items:center;display:flex}html.theme--catppuccin-macchiato .navbar-item.has-dropdown{align-items:stretch}html.theme--catppuccin-macchiato .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--catppuccin-macchiato .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-macchiato .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--catppuccin-macchiato .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--catppuccin-macchiato .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--catppuccin-macchiato .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--catppuccin-macchiato .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--catppuccin-macchiato .navbar-dropdown{background-color:#8aadf4;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--catppuccin-macchiato .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--catppuccin-macchiato .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--catppuccin-macchiato .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-macchiato .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#8087a2}html.theme--catppuccin-macchiato .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#8aadf4}.navbar.is-spaced html.theme--catppuccin-macchiato .navbar-dropdown,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .navbar-dropdown.is-right{left:auto;right:0}html.theme--catppuccin-macchiato .navbar-divider{display:block}html.theme--catppuccin-macchiato .navbar>.container .navbar-brand,html.theme--catppuccin-macchiato .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--catppuccin-macchiato .navbar>.container .navbar-menu,html.theme--catppuccin-macchiato .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-desktop,html.theme--catppuccin-macchiato .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--catppuccin-macchiato .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .navbar.is-fixed-top-desktop{top:0}html.theme--catppuccin-macchiato html.has-navbar-fixed-top-desktop,html.theme--catppuccin-macchiato body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--catppuccin-macchiato html.has-navbar-fixed-bottom-desktop,html.theme--catppuccin-macchiato body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--catppuccin-macchiato html.has-spaced-navbar-fixed-top,html.theme--catppuccin-macchiato body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--catppuccin-macchiato html.has-spaced-navbar-fixed-bottom,html.theme--catppuccin-macchiato body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--catppuccin-macchiato a.navbar-item.is-active,html.theme--catppuccin-macchiato .navbar-link.is-active{color:#8aadf4}html.theme--catppuccin-macchiato a.navbar-item.is-active:not(:focus):not(:hover),html.theme--catppuccin-macchiato .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--catppuccin-macchiato .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-macchiato .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-macchiato .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--catppuccin-macchiato .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--catppuccin-macchiato .pagination{font-size:1rem;margin:-.25rem}html.theme--catppuccin-macchiato .pagination.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--catppuccin-macchiato .pagination.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .pagination.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .pagination.is-rounded .pagination-previous,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--catppuccin-macchiato .pagination.is-rounded .pagination-next,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--catppuccin-macchiato .pagination.is-rounded .pagination-link,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--catppuccin-macchiato .pagination,html.theme--catppuccin-macchiato .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-link{border-color:#5b6078;color:#8aadf4;min-width:2.5em}html.theme--catppuccin-macchiato .pagination-previous:hover,html.theme--catppuccin-macchiato .pagination-next:hover,html.theme--catppuccin-macchiato .pagination-link:hover{border-color:#6e738d;color:#91d7e3}html.theme--catppuccin-macchiato .pagination-previous:focus,html.theme--catppuccin-macchiato .pagination-next:focus,html.theme--catppuccin-macchiato .pagination-link:focus{border-color:#6e738d}html.theme--catppuccin-macchiato .pagination-previous:active,html.theme--catppuccin-macchiato .pagination-next:active,html.theme--catppuccin-macchiato .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--catppuccin-macchiato .pagination-previous[disabled],html.theme--catppuccin-macchiato .pagination-previous.is-disabled,html.theme--catppuccin-macchiato .pagination-next[disabled],html.theme--catppuccin-macchiato .pagination-next.is-disabled,html.theme--catppuccin-macchiato .pagination-link[disabled],html.theme--catppuccin-macchiato .pagination-link.is-disabled{background-color:#5b6078;border-color:#5b6078;box-shadow:none;color:#f5f7fd;opacity:0.5}html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--catppuccin-macchiato .pagination-link.is-current{background-color:#8aadf4;border-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .pagination-ellipsis{color:#6e738d;pointer-events:none}html.theme--catppuccin-macchiato .pagination-list{flex-wrap:wrap}html.theme--catppuccin-macchiato .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .pagination{flex-wrap:wrap}html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--catppuccin-macchiato .pagination-previous{order:2}html.theme--catppuccin-macchiato .pagination-next{order:3}html.theme--catppuccin-macchiato .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--catppuccin-macchiato .pagination.is-centered .pagination-previous{order:1}html.theme--catppuccin-macchiato .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--catppuccin-macchiato .pagination.is-centered .pagination-next{order:3}html.theme--catppuccin-macchiato .pagination.is-right .pagination-previous{order:1}html.theme--catppuccin-macchiato .pagination.is-right .pagination-next{order:2}html.theme--catppuccin-macchiato .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--catppuccin-macchiato .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--catppuccin-macchiato .panel:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-macchiato .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--catppuccin-macchiato .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--catppuccin-macchiato .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--catppuccin-macchiato .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--catppuccin-macchiato .panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}html.theme--catppuccin-macchiato .panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}html.theme--catppuccin-macchiato .panel.is-dark .panel-heading,html.theme--catppuccin-macchiato .content kbd.panel .panel-heading{background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .panel.is-dark .panel-tabs a.is-active,html.theme--catppuccin-macchiato .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363a4f}html.theme--catppuccin-macchiato .panel.is-dark .panel-block.is-active .panel-icon,html.theme--catppuccin-macchiato .content kbd.panel .panel-block.is-active .panel-icon{color:#363a4f}html.theme--catppuccin-macchiato .panel.is-primary .panel-heading,html.theme--catppuccin-macchiato .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .panel.is-primary .panel-tabs a.is-active,html.theme--catppuccin-macchiato .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#8aadf4}html.theme--catppuccin-macchiato .panel.is-primary .panel-block.is-active .panel-icon,html.theme--catppuccin-macchiato .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#8aadf4}html.theme--catppuccin-macchiato .panel.is-link .panel-heading{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .panel.is-link .panel-tabs a.is-active{border-bottom-color:#8aadf4}html.theme--catppuccin-macchiato .panel.is-link .panel-block.is-active .panel-icon{color:#8aadf4}html.theme--catppuccin-macchiato .panel.is-info .panel-heading{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .panel.is-info .panel-tabs a.is-active{border-bottom-color:#8bd5ca}html.theme--catppuccin-macchiato .panel.is-info .panel-block.is-active .panel-icon{color:#8bd5ca}html.theme--catppuccin-macchiato .panel.is-success .panel-heading{background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .panel.is-success .panel-tabs a.is-active{border-bottom-color:#a6da95}html.theme--catppuccin-macchiato .panel.is-success .panel-block.is-active .panel-icon{color:#a6da95}html.theme--catppuccin-macchiato .panel.is-warning .panel-heading{background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#eed49f}html.theme--catppuccin-macchiato .panel.is-warning .panel-block.is-active .panel-icon{color:#eed49f}html.theme--catppuccin-macchiato .panel.is-danger .panel-heading{background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#ed8796}html.theme--catppuccin-macchiato .panel.is-danger .panel-block.is-active .panel-icon{color:#ed8796}html.theme--catppuccin-macchiato .panel-tabs:not(:last-child),html.theme--catppuccin-macchiato .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--catppuccin-macchiato .panel-heading{background-color:#494d64;border-radius:8px 8px 0 0;color:#b5c1f1;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--catppuccin-macchiato .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--catppuccin-macchiato .panel-tabs a{border-bottom:1px solid #5b6078;margin-bottom:-1px;padding:0.5em}html.theme--catppuccin-macchiato .panel-tabs a.is-active{border-bottom-color:#494d64;color:#739df2}html.theme--catppuccin-macchiato .panel-list a{color:#cad3f5}html.theme--catppuccin-macchiato .panel-list a:hover{color:#8aadf4}html.theme--catppuccin-macchiato .panel-block{align-items:center;color:#b5c1f1;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--catppuccin-macchiato .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--catppuccin-macchiato .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--catppuccin-macchiato .panel-block.is-wrapped{flex-wrap:wrap}html.theme--catppuccin-macchiato .panel-block.is-active{border-left-color:#8aadf4;color:#739df2}html.theme--catppuccin-macchiato .panel-block.is-active .panel-icon{color:#8aadf4}html.theme--catppuccin-macchiato .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--catppuccin-macchiato a.panel-block,html.theme--catppuccin-macchiato label.panel-block{cursor:pointer}html.theme--catppuccin-macchiato a.panel-block:hover,html.theme--catppuccin-macchiato label.panel-block:hover{background-color:#1e2030}html.theme--catppuccin-macchiato .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#f5f7fd;margin-right:.75em}html.theme--catppuccin-macchiato .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .tabs a{align-items:center;border-bottom-color:#5b6078;border-bottom-style:solid;border-bottom-width:1px;color:#cad3f5;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--catppuccin-macchiato .tabs a:hover{border-bottom-color:#b5c1f1;color:#b5c1f1}html.theme--catppuccin-macchiato .tabs li{display:block}html.theme--catppuccin-macchiato .tabs li.is-active a{border-bottom-color:#8aadf4;color:#8aadf4}html.theme--catppuccin-macchiato .tabs ul{align-items:center;border-bottom-color:#5b6078;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--catppuccin-macchiato .tabs ul.is-left{padding-right:0.75em}html.theme--catppuccin-macchiato .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--catppuccin-macchiato .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--catppuccin-macchiato .tabs .icon:first-child{margin-right:.5em}html.theme--catppuccin-macchiato .tabs .icon:last-child{margin-left:.5em}html.theme--catppuccin-macchiato .tabs.is-centered ul{justify-content:center}html.theme--catppuccin-macchiato .tabs.is-right ul{justify-content:flex-end}html.theme--catppuccin-macchiato .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--catppuccin-macchiato .tabs.is-boxed a:hover{background-color:#1e2030;border-bottom-color:#5b6078}html.theme--catppuccin-macchiato .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5b6078;border-bottom-color:rgba(0,0,0,0) !important}html.theme--catppuccin-macchiato .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--catppuccin-macchiato .tabs.is-toggle a{border-color:#5b6078;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--catppuccin-macchiato .tabs.is-toggle a:hover{background-color:#1e2030;border-color:#6e738d;z-index:2}html.theme--catppuccin-macchiato .tabs.is-toggle li+li{margin-left:-1px}html.theme--catppuccin-macchiato .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--catppuccin-macchiato .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--catppuccin-macchiato .tabs.is-toggle li.is-active a{background-color:#8aadf4;border-color:#8aadf4;color:#fff;z-index:1}html.theme--catppuccin-macchiato .tabs.is-toggle ul{border-bottom:none}html.theme--catppuccin-macchiato .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--catppuccin-macchiato .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--catppuccin-macchiato .tabs.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--catppuccin-macchiato .tabs.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .tabs.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-macchiato .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .column.is-narrow-mobile{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full-mobile{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half-mobile{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half-mobile{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0-mobile{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0-mobile{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3-mobile{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3-mobile{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6-mobile{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6-mobile{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9-mobile{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9-mobile{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12-mobile{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .column.is-narrow,html.theme--catppuccin-macchiato .column.is-narrow-tablet{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full,html.theme--catppuccin-macchiato .column.is-full-tablet{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters,html.theme--catppuccin-macchiato .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds,html.theme--catppuccin-macchiato .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half,html.theme--catppuccin-macchiato .column.is-half-tablet{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third,html.theme--catppuccin-macchiato .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter,html.theme--catppuccin-macchiato .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth,html.theme--catppuccin-macchiato .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths,html.theme--catppuccin-macchiato .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths,html.theme--catppuccin-macchiato .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths,html.theme--catppuccin-macchiato .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters,html.theme--catppuccin-macchiato .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds,html.theme--catppuccin-macchiato .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half,html.theme--catppuccin-macchiato .column.is-offset-half-tablet{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third,html.theme--catppuccin-macchiato .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter,html.theme--catppuccin-macchiato .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth,html.theme--catppuccin-macchiato .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths,html.theme--catppuccin-macchiato .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths,html.theme--catppuccin-macchiato .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths,html.theme--catppuccin-macchiato .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0,html.theme--catppuccin-macchiato .column.is-0-tablet{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0,html.theme--catppuccin-macchiato .column.is-offset-0-tablet{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1,html.theme--catppuccin-macchiato .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1,html.theme--catppuccin-macchiato .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2,html.theme--catppuccin-macchiato .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2,html.theme--catppuccin-macchiato .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3,html.theme--catppuccin-macchiato .column.is-3-tablet{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3,html.theme--catppuccin-macchiato .column.is-offset-3-tablet{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4,html.theme--catppuccin-macchiato .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4,html.theme--catppuccin-macchiato .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5,html.theme--catppuccin-macchiato .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5,html.theme--catppuccin-macchiato .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6,html.theme--catppuccin-macchiato .column.is-6-tablet{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6,html.theme--catppuccin-macchiato .column.is-offset-6-tablet{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7,html.theme--catppuccin-macchiato .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7,html.theme--catppuccin-macchiato .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8,html.theme--catppuccin-macchiato .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8,html.theme--catppuccin-macchiato .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9,html.theme--catppuccin-macchiato .column.is-9-tablet{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9,html.theme--catppuccin-macchiato .column.is-offset-9-tablet{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10,html.theme--catppuccin-macchiato .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10,html.theme--catppuccin-macchiato .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11,html.theme--catppuccin-macchiato .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11,html.theme--catppuccin-macchiato .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12,html.theme--catppuccin-macchiato .column.is-12-tablet{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12,html.theme--catppuccin-macchiato .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .column.is-narrow-touch{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full-touch{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters-touch{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half-touch{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter-touch{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth-touch{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths-touch{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths-touch{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths-touch{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half-touch{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0-touch{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0-touch{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1-touch{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2-touch{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3-touch{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3-touch{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4-touch{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5-touch{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6-touch{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6-touch{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7-touch{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8-touch{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9-touch{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9-touch{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10-touch{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11-touch{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12-touch{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .column.is-narrow-desktop{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full-desktop{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half-desktop{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half-desktop{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0-desktop{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0-desktop{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3-desktop{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3-desktop{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6-desktop{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6-desktop{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9-desktop{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9-desktop{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12-desktop{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .column.is-narrow-widescreen{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full-widescreen{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half-widescreen{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half-widescreen{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0-widescreen{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0-widescreen{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3-widescreen{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3-widescreen{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6-widescreen{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6-widescreen{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9-widescreen{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9-widescreen{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12-widescreen{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .column.is-narrow-fullhd{flex:none;width:unset}html.theme--catppuccin-macchiato .column.is-full-fullhd{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--catppuccin-macchiato .column.is-half-fullhd{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--catppuccin-macchiato .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--catppuccin-macchiato .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--catppuccin-macchiato .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--catppuccin-macchiato .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--catppuccin-macchiato .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--catppuccin-macchiato .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--catppuccin-macchiato .column.is-offset-half-fullhd{margin-left:50%}html.theme--catppuccin-macchiato .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--catppuccin-macchiato .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--catppuccin-macchiato .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--catppuccin-macchiato .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--catppuccin-macchiato .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--catppuccin-macchiato .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--catppuccin-macchiato .column.is-0-fullhd{flex:none;width:0%}html.theme--catppuccin-macchiato .column.is-offset-0-fullhd{margin-left:0%}html.theme--catppuccin-macchiato .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--catppuccin-macchiato .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--catppuccin-macchiato .column.is-3-fullhd{flex:none;width:25%}html.theme--catppuccin-macchiato .column.is-offset-3-fullhd{margin-left:25%}html.theme--catppuccin-macchiato .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--catppuccin-macchiato .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--catppuccin-macchiato .column.is-6-fullhd{flex:none;width:50%}html.theme--catppuccin-macchiato .column.is-offset-6-fullhd{margin-left:50%}html.theme--catppuccin-macchiato .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--catppuccin-macchiato .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--catppuccin-macchiato .column.is-9-fullhd{flex:none;width:75%}html.theme--catppuccin-macchiato .column.is-offset-9-fullhd{margin-left:75%}html.theme--catppuccin-macchiato .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--catppuccin-macchiato .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--catppuccin-macchiato .column.is-12-fullhd{flex:none;width:100%}html.theme--catppuccin-macchiato .column.is-offset-12-fullhd{margin-left:100%}}html.theme--catppuccin-macchiato .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-macchiato .columns:last-child{margin-bottom:-.75rem}html.theme--catppuccin-macchiato .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--catppuccin-macchiato .columns.is-centered{justify-content:center}html.theme--catppuccin-macchiato .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--catppuccin-macchiato .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--catppuccin-macchiato .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-macchiato .columns.is-gapless:last-child{margin-bottom:0}html.theme--catppuccin-macchiato .columns.is-mobile{display:flex}html.theme--catppuccin-macchiato .columns.is-multiline{flex-wrap:wrap}html.theme--catppuccin-macchiato .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-desktop{display:flex}}html.theme--catppuccin-macchiato .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--catppuccin-macchiato .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--catppuccin-macchiato .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--catppuccin-macchiato .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-macchiato .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--catppuccin-macchiato .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--catppuccin-macchiato .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-macchiato .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--catppuccin-macchiato .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-macchiato .tile.is-child{margin:0 !important}html.theme--catppuccin-macchiato .tile.is-parent{padding:.75rem}html.theme--catppuccin-macchiato .tile.is-vertical{flex-direction:column}html.theme--catppuccin-macchiato .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .tile:not(.is-child){display:flex}html.theme--catppuccin-macchiato .tile.is-1{flex:none;width:8.33333337%}html.theme--catppuccin-macchiato .tile.is-2{flex:none;width:16.66666674%}html.theme--catppuccin-macchiato .tile.is-3{flex:none;width:25%}html.theme--catppuccin-macchiato .tile.is-4{flex:none;width:33.33333337%}html.theme--catppuccin-macchiato .tile.is-5{flex:none;width:41.66666674%}html.theme--catppuccin-macchiato .tile.is-6{flex:none;width:50%}html.theme--catppuccin-macchiato .tile.is-7{flex:none;width:58.33333337%}html.theme--catppuccin-macchiato .tile.is-8{flex:none;width:66.66666674%}html.theme--catppuccin-macchiato .tile.is-9{flex:none;width:75%}html.theme--catppuccin-macchiato .tile.is-10{flex:none;width:83.33333337%}html.theme--catppuccin-macchiato .tile.is-11{flex:none;width:91.66666674%}html.theme--catppuccin-macchiato .tile.is-12{flex:none;width:100%}}html.theme--catppuccin-macchiato .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--catppuccin-macchiato .hero .navbar{background:none}html.theme--catppuccin-macchiato .hero .tabs ul{border-bottom:none}html.theme--catppuccin-macchiato .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-white strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-white .title{color:#0a0a0a}html.theme--catppuccin-macchiato .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--catppuccin-macchiato .hero.is-white .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-white .navbar-menu{background-color:#fff}}html.theme--catppuccin-macchiato .hero.is-white .navbar-item,html.theme--catppuccin-macchiato .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--catppuccin-macchiato .hero.is-white a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-white a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-white .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-macchiato .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-white .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-white .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--catppuccin-macchiato .hero.is-white .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-white .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-white .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--catppuccin-macchiato .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-macchiato .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-black strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-black .title{color:#fff}html.theme--catppuccin-macchiato .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-macchiato .hero.is-black .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--catppuccin-macchiato .hero.is-black .navbar-item,html.theme--catppuccin-macchiato .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-macchiato .hero.is-black a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-black a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-black .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-macchiato .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-black .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-black .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--catppuccin-macchiato .hero.is-black .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-black .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-black .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-macchiato .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--catppuccin-macchiato .hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-light strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-macchiato .hero.is-light .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-light .navbar-menu{background-color:#f5f5f5}}html.theme--catppuccin-macchiato .hero.is-light .navbar-item,html.theme--catppuccin-macchiato .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-light a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-light a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-light .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-macchiato .hero.is-light .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-light .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-light .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-light .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-light .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .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}html.theme--catppuccin-macchiato .hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}html.theme--catppuccin-macchiato .hero.is-dark,html.theme--catppuccin-macchiato .content kbd.hero{background-color:#363a4f;color:#fff}html.theme--catppuccin-macchiato .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-dark strong,html.theme--catppuccin-macchiato .content kbd.hero strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-dark .title,html.theme--catppuccin-macchiato .content kbd.hero .title{color:#fff}html.theme--catppuccin-macchiato .hero.is-dark .subtitle,html.theme--catppuccin-macchiato .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-macchiato .hero.is-dark .subtitle a:not(.button),html.theme--catppuccin-macchiato .content kbd.hero .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-dark .subtitle strong,html.theme--catppuccin-macchiato .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-dark .navbar-menu,html.theme--catppuccin-macchiato .content kbd.hero .navbar-menu{background-color:#363a4f}}html.theme--catppuccin-macchiato .hero.is-dark .navbar-item,html.theme--catppuccin-macchiato .content kbd.hero .navbar-item,html.theme--catppuccin-macchiato .hero.is-dark .navbar-link,html.theme--catppuccin-macchiato .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-macchiato .hero.is-dark a.navbar-item:hover,html.theme--catppuccin-macchiato .content kbd.hero a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-dark a.navbar-item.is-active,html.theme--catppuccin-macchiato .content kbd.hero a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-dark .navbar-link:hover,html.theme--catppuccin-macchiato .content kbd.hero .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-dark .navbar-link.is-active,html.theme--catppuccin-macchiato .content kbd.hero .navbar-link.is-active{background-color:#2c2f40;color:#fff}html.theme--catppuccin-macchiato .hero.is-dark .tabs a,html.theme--catppuccin-macchiato .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-dark .tabs a:hover,html.theme--catppuccin-macchiato .content kbd.hero .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-dark .tabs li.is-active a,html.theme--catppuccin-macchiato .content kbd.hero .tabs li.is-active a{color:#363a4f !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-boxed a,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-toggle a,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-toggle a:hover,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363a4f}html.theme--catppuccin-macchiato .hero.is-dark.is-bold,html.theme--catppuccin-macchiato .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1d2535 0%, #363a4f 71%, #3d3c62 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-dark.is-bold .navbar-menu,html.theme--catppuccin-macchiato .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1d2535 0%, #363a4f 71%, #3d3c62 100%)}}html.theme--catppuccin-macchiato .hero.is-primary,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-primary strong,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-primary .title,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--catppuccin-macchiato .hero.is-primary .subtitle,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-macchiato .hero.is-primary .subtitle a:not(.button),html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-primary .subtitle strong,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-primary .navbar-menu,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#8aadf4}}html.theme--catppuccin-macchiato .hero.is-primary .navbar-item,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--catppuccin-macchiato .hero.is-primary .navbar-link,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-macchiato .hero.is-primary a.navbar-item:hover,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-primary a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-primary .navbar-link:hover,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-primary .navbar-link.is-active,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .hero.is-primary .tabs a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-primary .tabs a:hover,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-primary .tabs li.is-active a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#8aadf4 !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-boxed a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-toggle a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-toggle a:hover,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .hero.is-primary.is-bold,html.theme--catppuccin-macchiato .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #52a5f9 0%, #8aadf4 71%, #9fadf9 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-primary.is-bold .navbar-menu,html.theme--catppuccin-macchiato .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #52a5f9 0%, #8aadf4 71%, #9fadf9 100%)}}html.theme--catppuccin-macchiato .hero.is-link{background-color:#8aadf4;color:#fff}html.theme--catppuccin-macchiato .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-link strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-link .title{color:#fff}html.theme--catppuccin-macchiato .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-macchiato .hero.is-link .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-link .navbar-menu{background-color:#8aadf4}}html.theme--catppuccin-macchiato .hero.is-link .navbar-item,html.theme--catppuccin-macchiato .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-macchiato .hero.is-link a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-link a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-link .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-link .navbar-link.is-active{background-color:#739df2;color:#fff}html.theme--catppuccin-macchiato .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-link .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-link .tabs li.is-active a{color:#8aadf4 !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-link .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--catppuccin-macchiato .hero.is-link .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-link .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-link .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#8aadf4}html.theme--catppuccin-macchiato .hero.is-link.is-bold{background-image:linear-gradient(141deg, #52a5f9 0%, #8aadf4 71%, #9fadf9 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #52a5f9 0%, #8aadf4 71%, #9fadf9 100%)}}html.theme--catppuccin-macchiato .hero.is-info{background-color:#8bd5ca;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-info strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-info .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-info .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-macchiato .hero.is-info .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-info .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-info .navbar-menu{background-color:#8bd5ca}}html.theme--catppuccin-macchiato .hero.is-info .navbar-item,html.theme--catppuccin-macchiato .hero.is-info .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-info a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-info a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-info .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-info .navbar-link.is-active{background-color:#78cec1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-info .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-macchiato .hero.is-info .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-info .tabs li.is-active a{color:#8bd5ca !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-info .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-info .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-info .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-info .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-info .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-info .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:#8bd5ca}html.theme--catppuccin-macchiato .hero.is-info.is-bold{background-image:linear-gradient(141deg, #5bd2ac 0%, #8bd5ca 71%, #9adedf 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #5bd2ac 0%, #8bd5ca 71%, #9adedf 100%)}}html.theme--catppuccin-macchiato .hero.is-success{background-color:#a6da95;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-success strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-success .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-success .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-macchiato .hero.is-success .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-success .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-success .navbar-menu{background-color:#a6da95}}html.theme--catppuccin-macchiato .hero.is-success .navbar-item,html.theme--catppuccin-macchiato .hero.is-success .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-success a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-success a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-success .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-success .navbar-link.is-active{background-color:#96d382;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-success .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-macchiato .hero.is-success .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-success .tabs li.is-active a{color:#a6da95 !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-success .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-success .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-success .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-success .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-success .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-success .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:#a6da95}html.theme--catppuccin-macchiato .hero.is-success.is-bold{background-image:linear-gradient(141deg, #94d765 0%, #a6da95 71%, #aae4a5 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #94d765 0%, #a6da95 71%, #aae4a5 100%)}}html.theme--catppuccin-macchiato .hero.is-warning{background-color:#eed49f;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-warning strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-warning .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-macchiato .hero.is-warning .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-warning .navbar-menu{background-color:#eed49f}}html.theme--catppuccin-macchiato .hero.is-warning .navbar-item,html.theme--catppuccin-macchiato .hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-warning a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-warning a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-warning .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-warning .navbar-link.is-active{background-color:#eaca89;color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-macchiato .hero.is-warning .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-warning .tabs li.is-active a{color:#eed49f !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .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:#eed49f}html.theme--catppuccin-macchiato .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #efae6b 0%, #eed49f 71%, #f4e9b2 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #efae6b 0%, #eed49f 71%, #f4e9b2 100%)}}html.theme--catppuccin-macchiato .hero.is-danger{background-color:#ed8796;color:#fff}html.theme--catppuccin-macchiato .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-macchiato .hero.is-danger strong{color:inherit}html.theme--catppuccin-macchiato .hero.is-danger .title{color:#fff}html.theme--catppuccin-macchiato .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-macchiato .hero.is-danger .subtitle a:not(.button),html.theme--catppuccin-macchiato .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .hero.is-danger .navbar-menu{background-color:#ed8796}}html.theme--catppuccin-macchiato .hero.is-danger .navbar-item,html.theme--catppuccin-macchiato .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-macchiato .hero.is-danger a.navbar-item:hover,html.theme--catppuccin-macchiato .hero.is-danger a.navbar-item.is-active,html.theme--catppuccin-macchiato .hero.is-danger .navbar-link:hover,html.theme--catppuccin-macchiato .hero.is-danger .navbar-link.is-active{background-color:#ea7183;color:#fff}html.theme--catppuccin-macchiato .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-macchiato .hero.is-danger .tabs a:hover{opacity:1}html.theme--catppuccin-macchiato .hero.is-danger .tabs li.is-active a{color:#ed8796 !important;opacity:1}html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-boxed a,html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-boxed a:hover,html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--catppuccin-macchiato .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ed8796}html.theme--catppuccin-macchiato .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #f05183 0%, #ed8796 71%, #f39c9a 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #f05183 0%, #ed8796 71%, #f39c9a 100%)}}html.theme--catppuccin-macchiato .hero.is-small .hero-body,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--catppuccin-macchiato .hero.is-halfheight .hero-body,html.theme--catppuccin-macchiato .hero.is-fullheight .hero-body,html.theme--catppuccin-macchiato .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--catppuccin-macchiato .hero.is-halfheight .hero-body>.container,html.theme--catppuccin-macchiato .hero.is-fullheight .hero-body>.container,html.theme--catppuccin-macchiato .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--catppuccin-macchiato .hero.is-halfheight{min-height:50vh}html.theme--catppuccin-macchiato .hero.is-fullheight{min-height:100vh}html.theme--catppuccin-macchiato .hero-video{overflow:hidden}html.theme--catppuccin-macchiato .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--catppuccin-macchiato .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero-video{display:none}}html.theme--catppuccin-macchiato .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-macchiato .hero-buttons .button{display:flex}html.theme--catppuccin-macchiato .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .hero-buttons{display:flex;justify-content:center}html.theme--catppuccin-macchiato .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--catppuccin-macchiato .hero-head,html.theme--catppuccin-macchiato .hero-foot{flex-grow:0;flex-shrink:0}html.theme--catppuccin-macchiato .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-macchiato .hero-body{padding:3rem 3rem}}html.theme--catppuccin-macchiato .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato .section{padding:3rem 3rem}html.theme--catppuccin-macchiato .section.is-medium{padding:9rem 4.5rem}html.theme--catppuccin-macchiato .section.is-large{padding:18rem 6rem}}html.theme--catppuccin-macchiato .footer{background-color:#1e2030;padding:3rem 1.5rem 6rem}html.theme--catppuccin-macchiato h1 .docs-heading-anchor,html.theme--catppuccin-macchiato h1 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h1 .docs-heading-anchor:visited,html.theme--catppuccin-macchiato h2 .docs-heading-anchor,html.theme--catppuccin-macchiato h2 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h2 .docs-heading-anchor:visited,html.theme--catppuccin-macchiato h3 .docs-heading-anchor,html.theme--catppuccin-macchiato h3 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h3 .docs-heading-anchor:visited,html.theme--catppuccin-macchiato h4 .docs-heading-anchor,html.theme--catppuccin-macchiato h4 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h4 .docs-heading-anchor:visited,html.theme--catppuccin-macchiato h5 .docs-heading-anchor,html.theme--catppuccin-macchiato h5 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h5 .docs-heading-anchor:visited,html.theme--catppuccin-macchiato h6 .docs-heading-anchor,html.theme--catppuccin-macchiato h6 .docs-heading-anchor:hover,html.theme--catppuccin-macchiato h6 .docs-heading-anchor:visited{color:#cad3f5}html.theme--catppuccin-macchiato h1 .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h2 .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h3 .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h4 .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h5 .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--catppuccin-macchiato h1 .docs-heading-anchor-permalink::before,html.theme--catppuccin-macchiato h2 .docs-heading-anchor-permalink::before,html.theme--catppuccin-macchiato h3 .docs-heading-anchor-permalink::before,html.theme--catppuccin-macchiato h4 .docs-heading-anchor-permalink::before,html.theme--catppuccin-macchiato h5 .docs-heading-anchor-permalink::before,html.theme--catppuccin-macchiato h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--catppuccin-macchiato h1:hover .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h2:hover .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h3:hover .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h4:hover .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h5:hover .docs-heading-anchor-permalink,html.theme--catppuccin-macchiato h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--catppuccin-macchiato .docs-light-only{display:none !important}html.theme--catppuccin-macchiato pre{position:relative;overflow:hidden}html.theme--catppuccin-macchiato pre code,html.theme--catppuccin-macchiato pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--catppuccin-macchiato pre code:first-of-type,html.theme--catppuccin-macchiato pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--catppuccin-macchiato pre code:last-of-type,html.theme--catppuccin-macchiato pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--catppuccin-macchiato 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:#cad3f5;cursor:pointer;text-align:center}html.theme--catppuccin-macchiato pre .copy-button:focus,html.theme--catppuccin-macchiato pre .copy-button:hover{opacity:1;background:rgba(202,211,245,0.1);color:#8aadf4}html.theme--catppuccin-macchiato pre .copy-button.success{color:#a6da95;opacity:1}html.theme--catppuccin-macchiato pre .copy-button.error{color:#ed8796;opacity:1}html.theme--catppuccin-macchiato pre:hover .copy-button{opacity:1}html.theme--catppuccin-macchiato .admonition{background-color:#1e2030;border-style:solid;border-width:2px;border-color:#b8c0e0;border-radius:4px;font-size:1rem}html.theme--catppuccin-macchiato .admonition strong{color:currentColor}html.theme--catppuccin-macchiato .admonition.is-small,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--catppuccin-macchiato .admonition.is-medium{font-size:1.25rem}html.theme--catppuccin-macchiato .admonition.is-large{font-size:1.5rem}html.theme--catppuccin-macchiato .admonition.is-default{background-color:#1e2030;border-color:#b8c0e0}html.theme--catppuccin-macchiato .admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#b8c0e0}html.theme--catppuccin-macchiato .admonition.is-default>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-info{background-color:#1e2030;border-color:#8bd5ca}html.theme--catppuccin-macchiato .admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#8bd5ca}html.theme--catppuccin-macchiato .admonition.is-info>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-success{background-color:#1e2030;border-color:#a6da95}html.theme--catppuccin-macchiato .admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#a6da95}html.theme--catppuccin-macchiato .admonition.is-success>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-warning{background-color:#1e2030;border-color:#eed49f}html.theme--catppuccin-macchiato .admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#eed49f}html.theme--catppuccin-macchiato .admonition.is-warning>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-danger{background-color:#1e2030;border-color:#ed8796}html.theme--catppuccin-macchiato .admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#ed8796}html.theme--catppuccin-macchiato .admonition.is-danger>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-compat{background-color:#1e2030;border-color:#91d7e3}html.theme--catppuccin-macchiato .admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#91d7e3}html.theme--catppuccin-macchiato .admonition.is-compat>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition.is-todo{background-color:#1e2030;border-color:#c6a0f6}html.theme--catppuccin-macchiato .admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#c6a0f6}html.theme--catppuccin-macchiato .admonition.is-todo>.admonition-body{color:#cad3f5}html.theme--catppuccin-macchiato .admonition-header{color:#b8c0e0;background-color:rgba(0,0,0,0);align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--catppuccin-macchiato .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--catppuccin-macchiato details.admonition.is-details>.admonition-header{list-style:none}html.theme--catppuccin-macchiato details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--catppuccin-macchiato details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--catppuccin-macchiato .admonition-body{color:#cad3f5;padding:0.5rem .75rem}html.theme--catppuccin-macchiato .admonition-body pre{background-color:#1e2030}html.theme--catppuccin-macchiato .admonition-body code{background-color:#1e2030}html.theme--catppuccin-macchiato .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:2px solid #5b6078;border-radius:4px;box-shadow:none;max-width:100%}html.theme--catppuccin-macchiato .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#1e2030;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5b6078;overflow:auto}html.theme--catppuccin-macchiato .docstring>header code{background-color:transparent}html.theme--catppuccin-macchiato .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--catppuccin-macchiato .docstring>header .docstring-binding{margin-right:0.3em}html.theme--catppuccin-macchiato .docstring>header .docstring-category{margin-left:0.3em}html.theme--catppuccin-macchiato .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5b6078}html.theme--catppuccin-macchiato .docstring>section:last-child{border-bottom:none}html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--catppuccin-macchiato .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-macchiato .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-macchiato .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--catppuccin-macchiato .documenter-example-output{background-color:#24273a}html.theme--catppuccin-macchiato .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:#1e2030;color:#cad3f5;border-bottom:3px solid rgba(0,0,0,0);padding:10px 35px;text-align:center;font-size:15px}html.theme--catppuccin-macchiato .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--catppuccin-macchiato .outdated-warning-overlay a{color:#8aadf4}html.theme--catppuccin-macchiato .outdated-warning-overlay a:hover{color:#91d7e3}html.theme--catppuccin-macchiato .content pre{border:2px solid #5b6078;border-radius:4px}html.theme--catppuccin-macchiato .content code{font-weight:inherit}html.theme--catppuccin-macchiato .content a code{color:#8aadf4}html.theme--catppuccin-macchiato .content a:hover code{color:#91d7e3}html.theme--catppuccin-macchiato .content h1 code,html.theme--catppuccin-macchiato .content h2 code,html.theme--catppuccin-macchiato .content h3 code,html.theme--catppuccin-macchiato .content h4 code,html.theme--catppuccin-macchiato .content h5 code,html.theme--catppuccin-macchiato .content h6 code{color:#cad3f5}html.theme--catppuccin-macchiato .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--catppuccin-macchiato .content blockquote>ul:first-child,html.theme--catppuccin-macchiato .content blockquote>ol:first-child,html.theme--catppuccin-macchiato .content .admonition-body>ul:first-child,html.theme--catppuccin-macchiato .content .admonition-body>ol:first-child{margin-top:0}html.theme--catppuccin-macchiato pre,html.theme--catppuccin-macchiato code{font-variant-ligatures:no-contextual}html.theme--catppuccin-macchiato .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--catppuccin-macchiato .breadcrumb a.is-disabled,html.theme--catppuccin-macchiato .breadcrumb a.is-disabled:hover{color:#b5c1f1}html.theme--catppuccin-macchiato .hljs{background:initial !important}html.theme--catppuccin-macchiato .katex .katex-mathml{top:0;right:0}html.theme--catppuccin-macchiato .katex-display,html.theme--catppuccin-macchiato mjx-container,html.theme--catppuccin-macchiato .MathJax_Display{margin:0.5em 0 !important}html.theme--catppuccin-macchiato html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--catppuccin-macchiato li.no-marker{list-style:none}html.theme--catppuccin-macchiato #documenter .docs-main>article{overflow-wrap:break-word}html.theme--catppuccin-macchiato #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato #documenter .docs-main{width:100%}html.theme--catppuccin-macchiato #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--catppuccin-macchiato #documenter .docs-main>header,html.theme--catppuccin-macchiato #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar{background-color:#24273a;border-bottom:1px solid #5b6078;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--catppuccin-macchiato #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato #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--catppuccin-macchiato #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--catppuccin-macchiato #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--catppuccin-macchiato #documenter .docs-main section.footnotes{border-top:1px solid #5b6078}html.theme--catppuccin-macchiato #documenter .docs-main section.footnotes li .tag:first-child,html.theme--catppuccin-macchiato #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--catppuccin-macchiato #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--catppuccin-macchiato .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5b6078;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--catppuccin-macchiato #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--catppuccin-macchiato #documenter .docs-sidebar{display:flex;flex-direction:column;color:#cad3f5;background-color:#1e2030;border-right:1px solid #5b6078;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--catppuccin-macchiato #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--catppuccin-macchiato #documenter .docs-sidebar{left:0;top:0}}html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--catppuccin-macchiato #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--catppuccin-macchiato #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-package-name a,html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-package-name a:hover{color:#cad3f5}html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5b6078;display:none;padding:0.5rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5b6078;padding-bottom:1.5rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #5b6078}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--catppuccin-macchiato #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--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#cad3f5;background:#1e2030}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#cad3f5;background-color:#26283d}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5b6078;border-bottom:1px solid #5b6078;background-color:#181926}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#181926;color:#cad3f5}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#26283d;color:#cad3f5}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5b6078}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--catppuccin-macchiato #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--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#2e3149}html.theme--catppuccin-macchiato #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#3d4162}}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-macchiato #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-macchiato #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#2e3149}html.theme--catppuccin-macchiato #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#3d4162}}html.theme--catppuccin-macchiato 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--catppuccin-macchiato .search-min-width-50{min-width:50%}html.theme--catppuccin-macchiato .search-min-height-100{min-height:100%}html.theme--catppuccin-macchiato .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--catppuccin-macchiato .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-macchiato .search-result-link:hover,html.theme--catppuccin-macchiato .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--catppuccin-macchiato .search-result-link .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-macchiato .property-search-result-badge,html.theme--catppuccin-macchiato .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--catppuccin-macchiato .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link:hover .search-filter,html.theme--catppuccin-macchiato .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--catppuccin-macchiato .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--catppuccin-macchiato .search-filter:hover,html.theme--catppuccin-macchiato .search-filter:focus{color:#333}html.theme--catppuccin-macchiato .search-filter-selected{color:#363a4f;background-color:#b7bdf8}html.theme--catppuccin-macchiato .search-filter-selected:hover,html.theme--catppuccin-macchiato .search-filter-selected:focus{color:#363a4f}html.theme--catppuccin-macchiato .search-result-highlight{background-color:#ffdd57;color:black}html.theme--catppuccin-macchiato .search-divider{border-bottom:1px solid #5b6078}html.theme--catppuccin-macchiato .search-result-title{width:85%;color:#f5f5f5}html.theme--catppuccin-macchiato .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--catppuccin-macchiato #search-modal .modal-card-body::-webkit-scrollbar,html.theme--catppuccin-macchiato #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--catppuccin-macchiato #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--catppuccin-macchiato #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--catppuccin-macchiato #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--catppuccin-macchiato #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--catppuccin-macchiato .w-100{width:100%}html.theme--catppuccin-macchiato .gap-2{gap:0.5rem}html.theme--catppuccin-macchiato .gap-4{gap:1rem}html.theme--catppuccin-macchiato .gap-8{gap:2rem}html.theme--catppuccin-macchiato{background-color:#24273a;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--catppuccin-macchiato a{transition:all 200ms ease}html.theme--catppuccin-macchiato .label{color:#cad3f5}html.theme--catppuccin-macchiato .button,html.theme--catppuccin-macchiato .control.has-icons-left .icon,html.theme--catppuccin-macchiato .control.has-icons-right .icon,html.theme--catppuccin-macchiato .input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato .pagination-ellipsis,html.theme--catppuccin-macchiato .pagination-link,html.theme--catppuccin-macchiato .pagination-next,html.theme--catppuccin-macchiato .pagination-previous,html.theme--catppuccin-macchiato .select,html.theme--catppuccin-macchiato .select select,html.theme--catppuccin-macchiato .textarea{height:2.5em;color:#cad3f5}html.theme--catppuccin-macchiato .input,html.theme--catppuccin-macchiato #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-macchiato .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em;color:#cad3f5}html.theme--catppuccin-macchiato .select:after,html.theme--catppuccin-macchiato .select select{border-width:1px}html.theme--catppuccin-macchiato .menu-list a{transition:all 300ms ease}html.theme--catppuccin-macchiato .modal-card-foot,html.theme--catppuccin-macchiato .modal-card-head{border-color:#5b6078}html.theme--catppuccin-macchiato .navbar{border-radius:.4em}html.theme--catppuccin-macchiato .navbar.is-transparent{background:none}html.theme--catppuccin-macchiato .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-macchiato .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#8aadf4}@media screen and (max-width: 1055px){html.theme--catppuccin-macchiato .navbar .navbar-menu{background-color:#8aadf4;border-radius:0 0 .4em .4em}}html.theme--catppuccin-macchiato .docstring>section>a.docs-sourcelink:not(body){color:#363a4f}html.theme--catppuccin-macchiato .tag.is-link:not(body),html.theme--catppuccin-macchiato .docstring>section>a.is-link.docs-sourcelink:not(body),html.theme--catppuccin-macchiato .content kbd.is-link:not(body){color:#363a4f}html.theme--catppuccin-macchiato .ansi span.sgr1{font-weight:bolder}html.theme--catppuccin-macchiato .ansi span.sgr2{font-weight:lighter}html.theme--catppuccin-macchiato .ansi span.sgr3{font-style:italic}html.theme--catppuccin-macchiato .ansi span.sgr4{text-decoration:underline}html.theme--catppuccin-macchiato .ansi span.sgr7{color:#24273a;background-color:#cad3f5}html.theme--catppuccin-macchiato .ansi span.sgr8{color:transparent}html.theme--catppuccin-macchiato .ansi span.sgr8 span{color:transparent}html.theme--catppuccin-macchiato .ansi span.sgr9{text-decoration:line-through}html.theme--catppuccin-macchiato .ansi span.sgr30{color:#494d64}html.theme--catppuccin-macchiato .ansi span.sgr31{color:#ed8796}html.theme--catppuccin-macchiato .ansi span.sgr32{color:#a6da95}html.theme--catppuccin-macchiato .ansi span.sgr33{color:#eed49f}html.theme--catppuccin-macchiato .ansi span.sgr34{color:#8aadf4}html.theme--catppuccin-macchiato .ansi span.sgr35{color:#f5bde6}html.theme--catppuccin-macchiato .ansi span.sgr36{color:#8bd5ca}html.theme--catppuccin-macchiato .ansi span.sgr37{color:#b8c0e0}html.theme--catppuccin-macchiato .ansi span.sgr40{background-color:#494d64}html.theme--catppuccin-macchiato .ansi span.sgr41{background-color:#ed8796}html.theme--catppuccin-macchiato .ansi span.sgr42{background-color:#a6da95}html.theme--catppuccin-macchiato .ansi span.sgr43{background-color:#eed49f}html.theme--catppuccin-macchiato .ansi span.sgr44{background-color:#8aadf4}html.theme--catppuccin-macchiato .ansi span.sgr45{background-color:#f5bde6}html.theme--catppuccin-macchiato .ansi span.sgr46{background-color:#8bd5ca}html.theme--catppuccin-macchiato .ansi span.sgr47{background-color:#b8c0e0}html.theme--catppuccin-macchiato .ansi span.sgr90{color:#5b6078}html.theme--catppuccin-macchiato .ansi span.sgr91{color:#ed8796}html.theme--catppuccin-macchiato .ansi span.sgr92{color:#a6da95}html.theme--catppuccin-macchiato .ansi span.sgr93{color:#eed49f}html.theme--catppuccin-macchiato .ansi span.sgr94{color:#8aadf4}html.theme--catppuccin-macchiato .ansi span.sgr95{color:#f5bde6}html.theme--catppuccin-macchiato .ansi span.sgr96{color:#8bd5ca}html.theme--catppuccin-macchiato .ansi span.sgr97{color:#a5adcb}html.theme--catppuccin-macchiato .ansi span.sgr100{background-color:#5b6078}html.theme--catppuccin-macchiato .ansi span.sgr101{background-color:#ed8796}html.theme--catppuccin-macchiato .ansi span.sgr102{background-color:#a6da95}html.theme--catppuccin-macchiato .ansi span.sgr103{background-color:#eed49f}html.theme--catppuccin-macchiato .ansi span.sgr104{background-color:#8aadf4}html.theme--catppuccin-macchiato .ansi span.sgr105{background-color:#f5bde6}html.theme--catppuccin-macchiato .ansi span.sgr106{background-color:#8bd5ca}html.theme--catppuccin-macchiato .ansi span.sgr107{background-color:#a5adcb}html.theme--catppuccin-macchiato code.language-julia-repl>span.hljs-meta{color:#a6da95;font-weight:bolder}html.theme--catppuccin-macchiato code .hljs{color:#cad3f5;background:#24273a}html.theme--catppuccin-macchiato code .hljs-keyword{color:#c6a0f6}html.theme--catppuccin-macchiato code .hljs-built_in{color:#ed8796}html.theme--catppuccin-macchiato code .hljs-type{color:#eed49f}html.theme--catppuccin-macchiato code .hljs-literal{color:#f5a97f}html.theme--catppuccin-macchiato code .hljs-number{color:#f5a97f}html.theme--catppuccin-macchiato code .hljs-operator{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-punctuation{color:#b8c0e0}html.theme--catppuccin-macchiato code .hljs-property{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-regexp{color:#f5bde6}html.theme--catppuccin-macchiato code .hljs-string{color:#a6da95}html.theme--catppuccin-macchiato code .hljs-char.escape_{color:#a6da95}html.theme--catppuccin-macchiato code .hljs-subst{color:#a5adcb}html.theme--catppuccin-macchiato code .hljs-symbol{color:#f0c6c6}html.theme--catppuccin-macchiato code .hljs-variable{color:#c6a0f6}html.theme--catppuccin-macchiato code .hljs-variable.language_{color:#c6a0f6}html.theme--catppuccin-macchiato code .hljs-variable.constant_{color:#f5a97f}html.theme--catppuccin-macchiato code .hljs-title{color:#8aadf4}html.theme--catppuccin-macchiato code .hljs-title.class_{color:#eed49f}html.theme--catppuccin-macchiato code .hljs-title.function_{color:#8aadf4}html.theme--catppuccin-macchiato code .hljs-params{color:#cad3f5}html.theme--catppuccin-macchiato code .hljs-comment{color:#5b6078}html.theme--catppuccin-macchiato code .hljs-doctag{color:#ed8796}html.theme--catppuccin-macchiato code .hljs-meta{color:#f5a97f}html.theme--catppuccin-macchiato code .hljs-section{color:#8aadf4}html.theme--catppuccin-macchiato code .hljs-tag{color:#a5adcb}html.theme--catppuccin-macchiato code .hljs-name{color:#c6a0f6}html.theme--catppuccin-macchiato code .hljs-attr{color:#8aadf4}html.theme--catppuccin-macchiato code .hljs-attribute{color:#a6da95}html.theme--catppuccin-macchiato code .hljs-bullet{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-code{color:#a6da95}html.theme--catppuccin-macchiato code .hljs-emphasis{color:#ed8796;font-style:italic}html.theme--catppuccin-macchiato code .hljs-strong{color:#ed8796;font-weight:bold}html.theme--catppuccin-macchiato code .hljs-formula{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-link{color:#7dc4e4;font-style:italic}html.theme--catppuccin-macchiato code .hljs-quote{color:#a6da95;font-style:italic}html.theme--catppuccin-macchiato code .hljs-selector-tag{color:#eed49f}html.theme--catppuccin-macchiato code .hljs-selector-id{color:#8aadf4}html.theme--catppuccin-macchiato code .hljs-selector-class{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-selector-attr{color:#c6a0f6}html.theme--catppuccin-macchiato code .hljs-selector-pseudo{color:#8bd5ca}html.theme--catppuccin-macchiato code .hljs-template-tag{color:#f0c6c6}html.theme--catppuccin-macchiato code .hljs-template-variable{color:#f0c6c6}html.theme--catppuccin-macchiato code .hljs-addition{color:#a6da95;background:rgba(166,227,161,0.15)}html.theme--catppuccin-macchiato code .hljs-deletion{color:#ed8796;background:rgba(243,139,168,0.15)}html.theme--catppuccin-macchiato .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-macchiato .search-result-link:hover,html.theme--catppuccin-macchiato .search-result-link:focus{background-color:#363a4f}html.theme--catppuccin-macchiato .search-result-link .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-macchiato .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link:hover .search-filter,html.theme--catppuccin-macchiato .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-macchiato .search-result-link:focus .search-filter{color:#363a4f !important;background-color:#b7bdf8 !important}html.theme--catppuccin-macchiato .search-result-title{color:#cad3f5}html.theme--catppuccin-macchiato .search-result-highlight{background-color:#ed8796;color:#1e2030}html.theme--catppuccin-macchiato .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--catppuccin-macchiato .w-100{width:100%}html.theme--catppuccin-macchiato .gap-2{gap:0.5rem}html.theme--catppuccin-macchiato .gap-4{gap:1rem} diff --git a/previews/PR563/assets/themes/catppuccin-mocha.css b/previews/PR563/assets/themes/catppuccin-mocha.css new file mode 100644 index 00000000..8b826525 --- /dev/null +++ b/previews/PR563/assets/themes/catppuccin-mocha.css @@ -0,0 +1 @@ +html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha .pagination-ellipsis,html.theme--catppuccin-mocha .file-cta,html.theme--catppuccin-mocha .file-name,html.theme--catppuccin-mocha .select select,html.theme--catppuccin-mocha .textarea,html.theme--catppuccin-mocha .input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha .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--catppuccin-mocha .pagination-previous:focus,html.theme--catppuccin-mocha .pagination-next:focus,html.theme--catppuccin-mocha .pagination-link:focus,html.theme--catppuccin-mocha .pagination-ellipsis:focus,html.theme--catppuccin-mocha .file-cta:focus,html.theme--catppuccin-mocha .file-name:focus,html.theme--catppuccin-mocha .select select:focus,html.theme--catppuccin-mocha .textarea:focus,html.theme--catppuccin-mocha .input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-mocha .button:focus,html.theme--catppuccin-mocha .is-focused.pagination-previous,html.theme--catppuccin-mocha .is-focused.pagination-next,html.theme--catppuccin-mocha .is-focused.pagination-link,html.theme--catppuccin-mocha .is-focused.pagination-ellipsis,html.theme--catppuccin-mocha .is-focused.file-cta,html.theme--catppuccin-mocha .is-focused.file-name,html.theme--catppuccin-mocha .select select.is-focused,html.theme--catppuccin-mocha .is-focused.textarea,html.theme--catppuccin-mocha .is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-focused.button,html.theme--catppuccin-mocha .pagination-previous:active,html.theme--catppuccin-mocha .pagination-next:active,html.theme--catppuccin-mocha .pagination-link:active,html.theme--catppuccin-mocha .pagination-ellipsis:active,html.theme--catppuccin-mocha .file-cta:active,html.theme--catppuccin-mocha .file-name:active,html.theme--catppuccin-mocha .select select:active,html.theme--catppuccin-mocha .textarea:active,html.theme--catppuccin-mocha .input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-mocha .button:active,html.theme--catppuccin-mocha .is-active.pagination-previous,html.theme--catppuccin-mocha .is-active.pagination-next,html.theme--catppuccin-mocha .is-active.pagination-link,html.theme--catppuccin-mocha .is-active.pagination-ellipsis,html.theme--catppuccin-mocha .is-active.file-cta,html.theme--catppuccin-mocha .is-active.file-name,html.theme--catppuccin-mocha .select select.is-active,html.theme--catppuccin-mocha .is-active.textarea,html.theme--catppuccin-mocha .is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-mocha .is-active.button{outline:none}html.theme--catppuccin-mocha .pagination-previous[disabled],html.theme--catppuccin-mocha .pagination-next[disabled],html.theme--catppuccin-mocha .pagination-link[disabled],html.theme--catppuccin-mocha .pagination-ellipsis[disabled],html.theme--catppuccin-mocha .file-cta[disabled],html.theme--catppuccin-mocha .file-name[disabled],html.theme--catppuccin-mocha .select select[disabled],html.theme--catppuccin-mocha .textarea[disabled],html.theme--catppuccin-mocha .input[disabled],html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--catppuccin-mocha .button[disabled],fieldset[disabled] html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--catppuccin-mocha .pagination-ellipsis,html.theme--catppuccin-mocha fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--catppuccin-mocha .file-cta,html.theme--catppuccin-mocha fieldset[disabled] .file-cta,fieldset[disabled] html.theme--catppuccin-mocha .file-name,html.theme--catppuccin-mocha fieldset[disabled] .file-name,fieldset[disabled] html.theme--catppuccin-mocha .select select,fieldset[disabled] html.theme--catppuccin-mocha .textarea,fieldset[disabled] html.theme--catppuccin-mocha .input,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha fieldset[disabled] .select select,html.theme--catppuccin-mocha .select fieldset[disabled] select,html.theme--catppuccin-mocha fieldset[disabled] .textarea,html.theme--catppuccin-mocha fieldset[disabled] .input,html.theme--catppuccin-mocha fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--catppuccin-mocha .button,html.theme--catppuccin-mocha fieldset[disabled] .button{cursor:not-allowed}html.theme--catppuccin-mocha .tabs,html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha .pagination-ellipsis,html.theme--catppuccin-mocha .breadcrumb,html.theme--catppuccin-mocha .file,html.theme--catppuccin-mocha .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--catppuccin-mocha .navbar-link:not(.is-arrowless)::after,html.theme--catppuccin-mocha .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--catppuccin-mocha .admonition:not(:last-child),html.theme--catppuccin-mocha .tabs:not(:last-child),html.theme--catppuccin-mocha .pagination:not(:last-child),html.theme--catppuccin-mocha .message:not(:last-child),html.theme--catppuccin-mocha .level:not(:last-child),html.theme--catppuccin-mocha .breadcrumb:not(:last-child),html.theme--catppuccin-mocha .block:not(:last-child),html.theme--catppuccin-mocha .title:not(:last-child),html.theme--catppuccin-mocha .subtitle:not(:last-child),html.theme--catppuccin-mocha .table-container:not(:last-child),html.theme--catppuccin-mocha .table:not(:last-child),html.theme--catppuccin-mocha .progress:not(:last-child),html.theme--catppuccin-mocha .notification:not(:last-child),html.theme--catppuccin-mocha .content:not(:last-child),html.theme--catppuccin-mocha .box:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-mocha .modal-close,html.theme--catppuccin-mocha .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--catppuccin-mocha .modal-close::before,html.theme--catppuccin-mocha .delete::before,html.theme--catppuccin-mocha .modal-close::after,html.theme--catppuccin-mocha .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--catppuccin-mocha .modal-close::before,html.theme--catppuccin-mocha .delete::before{height:2px;width:50%}html.theme--catppuccin-mocha .modal-close::after,html.theme--catppuccin-mocha .delete::after{height:50%;width:2px}html.theme--catppuccin-mocha .modal-close:hover,html.theme--catppuccin-mocha .delete:hover,html.theme--catppuccin-mocha .modal-close:focus,html.theme--catppuccin-mocha .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--catppuccin-mocha .modal-close:active,html.theme--catppuccin-mocha .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--catppuccin-mocha .is-small.modal-close,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--catppuccin-mocha .is-small.delete,html.theme--catppuccin-mocha #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--catppuccin-mocha .is-medium.modal-close,html.theme--catppuccin-mocha .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--catppuccin-mocha .is-large.modal-close,html.theme--catppuccin-mocha .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--catppuccin-mocha .control.is-loading::after,html.theme--catppuccin-mocha .select.is-loading::after,html.theme--catppuccin-mocha .loader,html.theme--catppuccin-mocha .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #7f849c;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--catppuccin-mocha .hero-video,html.theme--catppuccin-mocha .modal-background,html.theme--catppuccin-mocha .modal,html.theme--catppuccin-mocha .image.is-square img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-mocha .image.is-square .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-mocha .image.is-1by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-mocha .image.is-1by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-mocha .image.is-5by4 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-mocha .image.is-5by4 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-mocha .image.is-4by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-mocha .image.is-4by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-mocha .image.is-3by2 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-mocha .image.is-3by2 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-mocha .image.is-5by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-mocha .image.is-5by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-mocha .image.is-16by9 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-mocha .image.is-16by9 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-mocha .image.is-2by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-mocha .image.is-2by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-mocha .image.is-3by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-mocha .image.is-3by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-mocha .image.is-4by5 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-mocha .image.is-4by5 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-mocha .image.is-3by4 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-mocha .image.is-3by4 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-mocha .image.is-2by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-mocha .image.is-2by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-mocha .image.is-3by5 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-mocha .image.is-3by5 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-mocha .image.is-9by16 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-mocha .image.is-9by16 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-mocha .image.is-1by2 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-mocha .image.is-1by2 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-mocha .image.is-1by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-mocha .image.is-1by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--catppuccin-mocha .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:#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:#313244 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c26 !important}.has-background-dark{background-color:#313244 !important}.has-text-primary{color:#89b4fa !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#5895f8 !important}.has-background-primary{background-color:#89b4fa !important}.has-text-primary-light{color:#ebf3fe !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#bbd3fc !important}.has-background-primary-light{background-color:#ebf3fe !important}.has-text-primary-dark{color:#063c93 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#0850c4 !important}.has-background-primary-dark{background-color:#063c93 !important}.has-text-link{color:#89b4fa !important}a.has-text-link:hover,a.has-text-link:focus{color:#5895f8 !important}.has-background-link{background-color:#89b4fa !important}.has-text-link-light{color:#ebf3fe !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#bbd3fc !important}.has-background-link-light{background-color:#ebf3fe !important}.has-text-link-dark{color:#063c93 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#0850c4 !important}.has-background-link-dark{background-color:#063c93 !important}.has-text-info{color:#94e2d5 !important}a.has-text-info:hover,a.has-text-info:focus{color:#6cd7c5 !important}.has-background-info{background-color:#94e2d5 !important}.has-text-info-light{color:#effbf9 !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#c7f0e9 !important}.has-background-info-light{background-color:#effbf9 !important}.has-text-info-dark{color:#207466 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#2a9c89 !important}.has-background-info-dark{background-color:#207466 !important}.has-text-success{color:#a6e3a1 !important}a.has-text-success:hover,a.has-text-success:focus{color:#81d77a !important}.has-background-success{background-color:#a6e3a1 !important}.has-text-success-light{color:#f0faef !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#cbefc8 !important}.has-background-success-light{background-color:#f0faef !important}.has-text-success-dark{color:#287222 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#36992e !important}.has-background-success-dark{background-color:#287222 !important}.has-text-warning{color:#f9e2af !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#f5d180 !important}.has-background-warning{background-color:#f9e2af !important}.has-text-warning-light{color:#fef8ec !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fae7bd !important}.has-background-warning-light{background-color:#fef8ec !important}.has-text-warning-dark{color:#8a620a !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#b9840e !important}.has-background-warning-dark{background-color:#8a620a !important}.has-text-danger{color:#f38ba8 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#ee5d85 !important}.has-background-danger{background-color:#f38ba8 !important}.has-text-danger-light{color:#fdedf1 !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#f8bece !important}.has-background-danger-light{background-color:#fdedf1 !important}.has-text-danger-dark{color:#991036 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#c71546 !important}.has-background-danger-dark{background-color:#991036 !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:#313244 !important}.has-background-grey-darker{background-color:#313244 !important}.has-text-grey-dark{color:#45475a !important}.has-background-grey-dark{background-color:#45475a !important}.has-text-grey{color:#585b70 !important}.has-background-grey{background-color:#585b70 !important}.has-text-grey-light{color:#6c7086 !important}.has-background-grey-light{background-color:#6c7086 !important}.has-text-grey-lighter{color:#7f849c !important}.has-background-grey-lighter{background-color:#7f849c !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,html.theme--catppuccin-mocha .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--catppuccin-mocha html{background-color:#1e1e2e;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--catppuccin-mocha article,html.theme--catppuccin-mocha aside,html.theme--catppuccin-mocha figure,html.theme--catppuccin-mocha footer,html.theme--catppuccin-mocha header,html.theme--catppuccin-mocha hgroup,html.theme--catppuccin-mocha section{display:block}html.theme--catppuccin-mocha body,html.theme--catppuccin-mocha button,html.theme--catppuccin-mocha input,html.theme--catppuccin-mocha optgroup,html.theme--catppuccin-mocha select,html.theme--catppuccin-mocha textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--catppuccin-mocha code,html.theme--catppuccin-mocha 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--catppuccin-mocha body{color:#cdd6f4;font-size:1em;font-weight:400;line-height:1.5}html.theme--catppuccin-mocha a{color:#89b4fa;cursor:pointer;text-decoration:none}html.theme--catppuccin-mocha a strong{color:currentColor}html.theme--catppuccin-mocha a:hover{color:#89dceb}html.theme--catppuccin-mocha code{background-color:#181825;color:#cdd6f4;font-size:.875em;font-weight:normal;padding:.1em}html.theme--catppuccin-mocha hr{background-color:#181825;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--catppuccin-mocha img{height:auto;max-width:100%}html.theme--catppuccin-mocha input[type="checkbox"],html.theme--catppuccin-mocha input[type="radio"]{vertical-align:baseline}html.theme--catppuccin-mocha small{font-size:.875em}html.theme--catppuccin-mocha span{font-style:inherit;font-weight:inherit}html.theme--catppuccin-mocha strong{color:#b8c5ef;font-weight:700}html.theme--catppuccin-mocha fieldset{border:none}html.theme--catppuccin-mocha pre{-webkit-overflow-scrolling:touch;background-color:#181825;color:#cdd6f4;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--catppuccin-mocha pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--catppuccin-mocha table td,html.theme--catppuccin-mocha table th{vertical-align:top}html.theme--catppuccin-mocha table td:not([align]),html.theme--catppuccin-mocha table th:not([align]){text-align:inherit}html.theme--catppuccin-mocha table th{color:#b8c5ef}html.theme--catppuccin-mocha .box{background-color:#45475a;border-radius:8px;box-shadow:none;color:#cdd6f4;display:block;padding:1.25rem}html.theme--catppuccin-mocha a.box:hover,html.theme--catppuccin-mocha a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #89b4fa}html.theme--catppuccin-mocha a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #89b4fa}html.theme--catppuccin-mocha .button{background-color:#181825;border-color:#363653;border-width:1px;color:#89b4fa;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--catppuccin-mocha .button strong{color:inherit}html.theme--catppuccin-mocha .button .icon,html.theme--catppuccin-mocha .button .icon.is-small,html.theme--catppuccin-mocha .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--catppuccin-mocha .button .icon.is-medium,html.theme--catppuccin-mocha .button .icon.is-large{height:1.5em;width:1.5em}html.theme--catppuccin-mocha .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--catppuccin-mocha .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-mocha .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--catppuccin-mocha .button:hover,html.theme--catppuccin-mocha .button.is-hovered{border-color:#6c7086;color:#b8c5ef}html.theme--catppuccin-mocha .button:focus,html.theme--catppuccin-mocha .button.is-focused{border-color:#6c7086;color:#71a4f9}html.theme--catppuccin-mocha .button:focus:not(:active),html.theme--catppuccin-mocha .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .button:active,html.theme--catppuccin-mocha .button.is-active{border-color:#45475a;color:#b8c5ef}html.theme--catppuccin-mocha .button.is-text{background-color:transparent;border-color:transparent;color:#cdd6f4;text-decoration:underline}html.theme--catppuccin-mocha .button.is-text:hover,html.theme--catppuccin-mocha .button.is-text.is-hovered,html.theme--catppuccin-mocha .button.is-text:focus,html.theme--catppuccin-mocha .button.is-text.is-focused{background-color:#181825;color:#b8c5ef}html.theme--catppuccin-mocha .button.is-text:active,html.theme--catppuccin-mocha .button.is-text.is-active{background-color:#0e0e16;color:#b8c5ef}html.theme--catppuccin-mocha .button.is-text[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--catppuccin-mocha .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#89b4fa;text-decoration:none}html.theme--catppuccin-mocha .button.is-ghost:hover,html.theme--catppuccin-mocha .button.is-ghost.is-hovered{color:#89b4fa;text-decoration:underline}html.theme--catppuccin-mocha .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white:hover,html.theme--catppuccin-mocha .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white:focus,html.theme--catppuccin-mocha .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white:focus:not(:active),html.theme--catppuccin-mocha .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-mocha .button.is-white:active,html.theme--catppuccin-mocha .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--catppuccin-mocha .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .button.is-white.is-inverted:hover,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--catppuccin-mocha .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-mocha .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-white.is-outlined:hover,html.theme--catppuccin-mocha .button.is-white.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-white.is-outlined:focus,html.theme--catppuccin-mocha .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-white.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-white.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-mocha .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-black:hover,html.theme--catppuccin-mocha .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-black:focus,html.theme--catppuccin-mocha .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-black:focus:not(:active),html.theme--catppuccin-mocha .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-mocha .button.is-black:active,html.theme--catppuccin-mocha .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-black[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--catppuccin-mocha .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black.is-inverted:hover,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-mocha .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black.is-outlined:hover,html.theme--catppuccin-mocha .button.is-black.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-black.is-outlined:focus,html.theme--catppuccin-mocha .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-mocha .button.is-black.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-black.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light:hover,html.theme--catppuccin-mocha .button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light:focus,html.theme--catppuccin-mocha .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light:focus:not(:active),html.theme--catppuccin-mocha .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-mocha .button.is-light:active,html.theme--catppuccin-mocha .button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}html.theme--catppuccin-mocha .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-mocha .button.is-light.is-inverted:hover,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-mocha .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--catppuccin-mocha .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}html.theme--catppuccin-mocha .button.is-light.is-outlined:hover,html.theme--catppuccin-mocha .button.is-light.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-light.is-outlined:focus,html.theme--catppuccin-mocha .button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-mocha .button.is-light.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-light.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .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--catppuccin-mocha .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}html.theme--catppuccin-mocha .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--catppuccin-mocha .button.is-light.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}html.theme--catppuccin-mocha .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .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--catppuccin-mocha .button.is-dark,html.theme--catppuccin-mocha .content kbd.button{background-color:#313244;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-dark:hover,html.theme--catppuccin-mocha .content kbd.button:hover,html.theme--catppuccin-mocha .button.is-dark.is-hovered,html.theme--catppuccin-mocha .content kbd.button.is-hovered{background-color:#2c2d3d;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-dark:focus,html.theme--catppuccin-mocha .content kbd.button:focus,html.theme--catppuccin-mocha .button.is-dark.is-focused,html.theme--catppuccin-mocha .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-dark:focus:not(:active),html.theme--catppuccin-mocha .content kbd.button:focus:not(:active),html.theme--catppuccin-mocha .button.is-dark.is-focused:not(:active),html.theme--catppuccin-mocha .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(49,50,68,0.25)}html.theme--catppuccin-mocha .button.is-dark:active,html.theme--catppuccin-mocha .content kbd.button:active,html.theme--catppuccin-mocha .button.is-dark.is-active,html.theme--catppuccin-mocha .content kbd.button.is-active{background-color:#262735;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-dark[disabled],html.theme--catppuccin-mocha .content kbd.button[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-dark,fieldset[disabled] html.theme--catppuccin-mocha .content kbd.button{background-color:#313244;border-color:#313244;box-shadow:none}html.theme--catppuccin-mocha .button.is-dark.is-inverted,html.theme--catppuccin-mocha .content kbd.button.is-inverted{background-color:#fff;color:#313244}html.theme--catppuccin-mocha .button.is-dark.is-inverted:hover,html.theme--catppuccin-mocha .content kbd.button.is-inverted:hover,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-hovered,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-mocha .button.is-dark.is-inverted[disabled],html.theme--catppuccin-mocha .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-dark.is-inverted,fieldset[disabled] html.theme--catppuccin-mocha .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#313244}html.theme--catppuccin-mocha .button.is-dark.is-loading::after,html.theme--catppuccin-mocha .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-dark.is-outlined,html.theme--catppuccin-mocha .content kbd.button.is-outlined{background-color:transparent;border-color:#313244;color:#313244}html.theme--catppuccin-mocha .button.is-dark.is-outlined:hover,html.theme--catppuccin-mocha .content kbd.button.is-outlined:hover,html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-hovered,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-dark.is-outlined:focus,html.theme--catppuccin-mocha .content kbd.button.is-outlined:focus,html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-focused,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-focused{background-color:#313244;border-color:#313244;color:#fff}html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-loading::after,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #313244 #313244 !important}html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-mocha .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-dark.is-outlined[disabled],html.theme--catppuccin-mocha .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-dark.is-outlined,fieldset[disabled] html.theme--catppuccin-mocha .content kbd.button.is-outlined{background-color:transparent;border-color:#313244;box-shadow:none;color:#313244}html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#313244}html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #313244 #313244 !important}html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined[disabled],html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-mocha .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-primary,html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink{background-color:#89b4fa;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-primary:hover,html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink:hover,html.theme--catppuccin-mocha .button.is-primary.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#7dacf9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-primary:focus,html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink:focus,html.theme--catppuccin-mocha .button.is-primary.is-focused,html.theme--catppuccin-mocha .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-primary:focus:not(:active),html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--catppuccin-mocha .button.is-primary.is-focused:not(:active),html.theme--catppuccin-mocha .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .button.is-primary:active,html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink:active,html.theme--catppuccin-mocha .button.is-primary.is-active,html.theme--catppuccin-mocha .docstring>section>a.button.is-active.docs-sourcelink{background-color:#71a4f9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-primary[disabled],html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-primary,fieldset[disabled] html.theme--catppuccin-mocha .docstring>section>a.button.docs-sourcelink{background-color:#89b4fa;border-color:#89b4fa;box-shadow:none}html.theme--catppuccin-mocha .button.is-primary.is-inverted,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .button.is-primary.is-inverted:hover,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--catppuccin-mocha .button.is-primary.is-inverted[disabled],html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-primary.is-inverted,fieldset[disabled] html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#89b4fa}html.theme--catppuccin-mocha .button.is-primary.is-loading::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-primary.is-outlined,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#89b4fa;color:#89b4fa}html.theme--catppuccin-mocha .button.is-primary.is-outlined:hover,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-mocha .button.is-primary.is-outlined:focus,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-focused,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#89b4fa;border-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-loading::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #89b4fa #89b4fa !important}html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-mocha .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-primary.is-outlined[disabled],html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-primary.is-outlined,fieldset[disabled] html.theme--catppuccin-mocha .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#89b4fa;box-shadow:none;color:#89b4fa}html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #89b4fa #89b4fa !important}html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined[disabled],html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--catppuccin-mocha .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-primary.is-light,html.theme--catppuccin-mocha .docstring>section>a.button.is-light.docs-sourcelink{background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .button.is-primary.is-light:hover,html.theme--catppuccin-mocha .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--catppuccin-mocha .button.is-primary.is-light.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#dfebfe;border-color:transparent;color:#063c93}html.theme--catppuccin-mocha .button.is-primary.is-light:active,html.theme--catppuccin-mocha .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--catppuccin-mocha .button.is-primary.is-light.is-active,html.theme--catppuccin-mocha .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d3e3fd;border-color:transparent;color:#063c93}html.theme--catppuccin-mocha .button.is-link{background-color:#89b4fa;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-link:hover,html.theme--catppuccin-mocha .button.is-link.is-hovered{background-color:#7dacf9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-link:focus,html.theme--catppuccin-mocha .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-link:focus:not(:active),html.theme--catppuccin-mocha .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .button.is-link:active,html.theme--catppuccin-mocha .button.is-link.is-active{background-color:#71a4f9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-link[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-link{background-color:#89b4fa;border-color:#89b4fa;box-shadow:none}html.theme--catppuccin-mocha .button.is-link.is-inverted{background-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .button.is-link.is-inverted:hover,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-mocha .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#89b4fa}html.theme--catppuccin-mocha .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-link.is-outlined{background-color:transparent;border-color:#89b4fa;color:#89b4fa}html.theme--catppuccin-mocha .button.is-link.is-outlined:hover,html.theme--catppuccin-mocha .button.is-link.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-link.is-outlined:focus,html.theme--catppuccin-mocha .button.is-link.is-outlined.is-focused{background-color:#89b4fa;border-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #89b4fa #89b4fa !important}html.theme--catppuccin-mocha .button.is-link.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-link.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-link.is-outlined{background-color:transparent;border-color:#89b4fa;box-shadow:none;color:#89b4fa}html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #89b4fa #89b4fa !important}html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-link.is-light{background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .button.is-link.is-light:hover,html.theme--catppuccin-mocha .button.is-link.is-light.is-hovered{background-color:#dfebfe;border-color:transparent;color:#063c93}html.theme--catppuccin-mocha .button.is-link.is-light:active,html.theme--catppuccin-mocha .button.is-link.is-light.is-active{background-color:#d3e3fd;border-color:transparent;color:#063c93}html.theme--catppuccin-mocha .button.is-info{background-color:#94e2d5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info:hover,html.theme--catppuccin-mocha .button.is-info.is-hovered{background-color:#8adfd1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info:focus,html.theme--catppuccin-mocha .button.is-info.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info:focus:not(:active),html.theme--catppuccin-mocha .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(148,226,213,0.25)}html.theme--catppuccin-mocha .button.is-info:active,html.theme--catppuccin-mocha .button.is-info.is-active{background-color:#80ddcd;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-info{background-color:#94e2d5;border-color:#94e2d5;box-shadow:none}html.theme--catppuccin-mocha .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);color:#94e2d5}html.theme--catppuccin-mocha .button.is-info.is-inverted:hover,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-info.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#94e2d5}html.theme--catppuccin-mocha .button.is-info.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-mocha .button.is-info.is-outlined{background-color:transparent;border-color:#94e2d5;color:#94e2d5}html.theme--catppuccin-mocha .button.is-info.is-outlined:hover,html.theme--catppuccin-mocha .button.is-info.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-info.is-outlined:focus,html.theme--catppuccin-mocha .button.is-info.is-outlined.is-focused{background-color:#94e2d5;border-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #94e2d5 #94e2d5 !important}html.theme--catppuccin-mocha .button.is-info.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-info.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-info.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--catppuccin-mocha .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-info.is-outlined{background-color:transparent;border-color:#94e2d5;box-shadow:none;color:#94e2d5}html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#94e2d5}html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #94e2d5 #94e2d5 !important}html.theme--catppuccin-mocha .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-info.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--catppuccin-mocha .button.is-info.is-light{background-color:#effbf9;color:#207466}html.theme--catppuccin-mocha .button.is-info.is-light:hover,html.theme--catppuccin-mocha .button.is-info.is-light.is-hovered{background-color:#e5f8f5;border-color:transparent;color:#207466}html.theme--catppuccin-mocha .button.is-info.is-light:active,html.theme--catppuccin-mocha .button.is-info.is-light.is-active{background-color:#dbf5f1;border-color:transparent;color:#207466}html.theme--catppuccin-mocha .button.is-success{background-color:#a6e3a1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success:hover,html.theme--catppuccin-mocha .button.is-success.is-hovered{background-color:#9de097;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success:focus,html.theme--catppuccin-mocha .button.is-success.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success:focus:not(:active),html.theme--catppuccin-mocha .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(166,227,161,0.25)}html.theme--catppuccin-mocha .button.is-success:active,html.theme--catppuccin-mocha .button.is-success.is-active{background-color:#93dd8d;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-success{background-color:#a6e3a1;border-color:#a6e3a1;box-shadow:none}html.theme--catppuccin-mocha .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);color:#a6e3a1}html.theme--catppuccin-mocha .button.is-success.is-inverted:hover,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-success.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#a6e3a1}html.theme--catppuccin-mocha .button.is-success.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-mocha .button.is-success.is-outlined{background-color:transparent;border-color:#a6e3a1;color:#a6e3a1}html.theme--catppuccin-mocha .button.is-success.is-outlined:hover,html.theme--catppuccin-mocha .button.is-success.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-success.is-outlined:focus,html.theme--catppuccin-mocha .button.is-success.is-outlined.is-focused{background-color:#a6e3a1;border-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #a6e3a1 #a6e3a1 !important}html.theme--catppuccin-mocha .button.is-success.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-success.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-success.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--catppuccin-mocha .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-success.is-outlined{background-color:transparent;border-color:#a6e3a1;box-shadow:none;color:#a6e3a1}html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#a6e3a1}html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #a6e3a1 #a6e3a1 !important}html.theme--catppuccin-mocha .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-success.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--catppuccin-mocha .button.is-success.is-light{background-color:#f0faef;color:#287222}html.theme--catppuccin-mocha .button.is-success.is-light:hover,html.theme--catppuccin-mocha .button.is-success.is-light.is-hovered{background-color:#e7f7e5;border-color:transparent;color:#287222}html.theme--catppuccin-mocha .button.is-success.is-light:active,html.theme--catppuccin-mocha .button.is-success.is-light.is-active{background-color:#def4dc;border-color:transparent;color:#287222}html.theme--catppuccin-mocha .button.is-warning{background-color:#f9e2af;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning:hover,html.theme--catppuccin-mocha .button.is-warning.is-hovered{background-color:#f8dea3;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning:focus,html.theme--catppuccin-mocha .button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning:focus:not(:active),html.theme--catppuccin-mocha .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(249,226,175,0.25)}html.theme--catppuccin-mocha .button.is-warning:active,html.theme--catppuccin-mocha .button.is-warning.is-active{background-color:#f7d997;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-warning{background-color:#f9e2af;border-color:#f9e2af;box-shadow:none}html.theme--catppuccin-mocha .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#f9e2af}html.theme--catppuccin-mocha .button.is-warning.is-inverted:hover,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f9e2af}html.theme--catppuccin-mocha .button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--catppuccin-mocha .button.is-warning.is-outlined{background-color:transparent;border-color:#f9e2af;color:#f9e2af}html.theme--catppuccin-mocha .button.is-warning.is-outlined:hover,html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-warning.is-outlined:focus,html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-focused{background-color:#f9e2af;border-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #f9e2af #f9e2af !important}html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-warning.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .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}html.theme--catppuccin-mocha .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-warning.is-outlined{background-color:transparent;border-color:#f9e2af;box-shadow:none;color:#f9e2af}html.theme--catppuccin-mocha .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)}html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f9e2af}html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f9e2af #f9e2af !important}html.theme--catppuccin-mocha .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .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)}html.theme--catppuccin-mocha .button.is-warning.is-light{background-color:#fef8ec;color:#8a620a}html.theme--catppuccin-mocha .button.is-warning.is-light:hover,html.theme--catppuccin-mocha .button.is-warning.is-light.is-hovered{background-color:#fdf4e0;border-color:transparent;color:#8a620a}html.theme--catppuccin-mocha .button.is-warning.is-light:active,html.theme--catppuccin-mocha .button.is-warning.is-light.is-active{background-color:#fcf0d4;border-color:transparent;color:#8a620a}html.theme--catppuccin-mocha .button.is-danger{background-color:#f38ba8;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-danger:hover,html.theme--catppuccin-mocha .button.is-danger.is-hovered{background-color:#f27f9f;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-danger:focus,html.theme--catppuccin-mocha .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-danger:focus:not(:active),html.theme--catppuccin-mocha .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(243,139,168,0.25)}html.theme--catppuccin-mocha .button.is-danger:active,html.theme--catppuccin-mocha .button.is-danger.is-active{background-color:#f17497;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .button.is-danger[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-danger{background-color:#f38ba8;border-color:#f38ba8;box-shadow:none}html.theme--catppuccin-mocha .button.is-danger.is-inverted{background-color:#fff;color:#f38ba8}html.theme--catppuccin-mocha .button.is-danger.is-inverted:hover,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--catppuccin-mocha .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#f38ba8}html.theme--catppuccin-mocha .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-danger.is-outlined{background-color:transparent;border-color:#f38ba8;color:#f38ba8}html.theme--catppuccin-mocha .button.is-danger.is-outlined:hover,html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-danger.is-outlined:focus,html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-focused{background-color:#f38ba8;border-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #f38ba8 #f38ba8 !important}html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--catppuccin-mocha .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-danger.is-outlined{background-color:transparent;border-color:#f38ba8;box-shadow:none;color:#f38ba8}html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined:hover,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined:focus,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#f38ba8}html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f38ba8 #f38ba8 !important}html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--catppuccin-mocha .button.is-danger.is-light{background-color:#fdedf1;color:#991036}html.theme--catppuccin-mocha .button.is-danger.is-light:hover,html.theme--catppuccin-mocha .button.is-danger.is-light.is-hovered{background-color:#fce1e8;border-color:transparent;color:#991036}html.theme--catppuccin-mocha .button.is-danger.is-light:active,html.theme--catppuccin-mocha .button.is-danger.is-light.is-active{background-color:#fbd5e0;border-color:transparent;color:#991036}html.theme--catppuccin-mocha .button.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--catppuccin-mocha .button.is-small:not(.is-rounded),html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--catppuccin-mocha .button.is-normal{font-size:1rem}html.theme--catppuccin-mocha .button.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .button.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .button[disabled],fieldset[disabled] html.theme--catppuccin-mocha .button{background-color:#6c7086;border-color:#585b70;box-shadow:none;opacity:.5}html.theme--catppuccin-mocha .button.is-fullwidth{display:flex;width:100%}html.theme--catppuccin-mocha .button.is-loading{color:transparent !important;pointer-events:none}html.theme--catppuccin-mocha .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--catppuccin-mocha .button.is-static{background-color:#181825;border-color:#585b70;color:#7f849c;box-shadow:none;pointer-events:none}html.theme--catppuccin-mocha .button.is-rounded,html.theme--catppuccin-mocha #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--catppuccin-mocha .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-mocha .buttons .button{margin-bottom:0.5rem}html.theme--catppuccin-mocha .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--catppuccin-mocha .buttons:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-mocha .buttons:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-mocha .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--catppuccin-mocha .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--catppuccin-mocha .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--catppuccin-mocha .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--catppuccin-mocha .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-mocha .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--catppuccin-mocha .buttons.has-addons .button:last-child{margin-right:0}html.theme--catppuccin-mocha .buttons.has-addons .button:hover,html.theme--catppuccin-mocha .buttons.has-addons .button.is-hovered{z-index:2}html.theme--catppuccin-mocha .buttons.has-addons .button:focus,html.theme--catppuccin-mocha .buttons.has-addons .button.is-focused,html.theme--catppuccin-mocha .buttons.has-addons .button:active,html.theme--catppuccin-mocha .buttons.has-addons .button.is-active,html.theme--catppuccin-mocha .buttons.has-addons .button.is-selected{z-index:3}html.theme--catppuccin-mocha .buttons.has-addons .button:focus:hover,html.theme--catppuccin-mocha .buttons.has-addons .button.is-focused:hover,html.theme--catppuccin-mocha .buttons.has-addons .button:active:hover,html.theme--catppuccin-mocha .buttons.has-addons .button.is-active:hover,html.theme--catppuccin-mocha .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--catppuccin-mocha .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .buttons.is-centered{justify-content:center}html.theme--catppuccin-mocha .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--catppuccin-mocha .buttons.is-right{justify-content:flex-end}html.theme--catppuccin-mocha .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--catppuccin-mocha .button.is-responsive.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--catppuccin-mocha .button.is-responsive,html.theme--catppuccin-mocha .button.is-responsive.is-normal{font-size:.65625rem}html.theme--catppuccin-mocha .button.is-responsive.is-medium{font-size:.75rem}html.theme--catppuccin-mocha .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .button.is-responsive.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--catppuccin-mocha .button.is-responsive,html.theme--catppuccin-mocha .button.is-responsive.is-normal{font-size:.75rem}html.theme--catppuccin-mocha .button.is-responsive.is-medium{font-size:1rem}html.theme--catppuccin-mocha .button.is-responsive.is-large{font-size:1.25rem}}html.theme--catppuccin-mocha .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--catppuccin-mocha .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--catppuccin-mocha .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--catppuccin-mocha .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--catppuccin-mocha .content li+li{margin-top:0.25em}html.theme--catppuccin-mocha .content p:not(:last-child),html.theme--catppuccin-mocha .content dl:not(:last-child),html.theme--catppuccin-mocha .content ol:not(:last-child),html.theme--catppuccin-mocha .content ul:not(:last-child),html.theme--catppuccin-mocha .content blockquote:not(:last-child),html.theme--catppuccin-mocha .content pre:not(:last-child),html.theme--catppuccin-mocha .content table:not(:last-child){margin-bottom:1em}html.theme--catppuccin-mocha .content h1,html.theme--catppuccin-mocha .content h2,html.theme--catppuccin-mocha .content h3,html.theme--catppuccin-mocha .content h4,html.theme--catppuccin-mocha .content h5,html.theme--catppuccin-mocha .content h6{color:#cdd6f4;font-weight:600;line-height:1.125}html.theme--catppuccin-mocha .content h1{font-size:2em;margin-bottom:0.5em}html.theme--catppuccin-mocha .content h1:not(:first-child){margin-top:1em}html.theme--catppuccin-mocha .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--catppuccin-mocha .content h2:not(:first-child){margin-top:1.1428em}html.theme--catppuccin-mocha .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--catppuccin-mocha .content h3:not(:first-child){margin-top:1.3333em}html.theme--catppuccin-mocha .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--catppuccin-mocha .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--catppuccin-mocha .content h6{font-size:1em;margin-bottom:1em}html.theme--catppuccin-mocha .content blockquote{background-color:#181825;border-left:5px solid #585b70;padding:1.25em 1.5em}html.theme--catppuccin-mocha .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-mocha .content ol:not([type]){list-style-type:decimal}html.theme--catppuccin-mocha .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--catppuccin-mocha .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--catppuccin-mocha .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--catppuccin-mocha .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--catppuccin-mocha .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--catppuccin-mocha .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--catppuccin-mocha .content ul ul ul{list-style-type:square}html.theme--catppuccin-mocha .content dd{margin-left:2em}html.theme--catppuccin-mocha .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--catppuccin-mocha .content figure:not(:first-child){margin-top:2em}html.theme--catppuccin-mocha .content figure:not(:last-child){margin-bottom:2em}html.theme--catppuccin-mocha .content figure img{display:inline-block}html.theme--catppuccin-mocha .content figure figcaption{font-style:italic}html.theme--catppuccin-mocha .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--catppuccin-mocha .content sup,html.theme--catppuccin-mocha .content sub{font-size:75%}html.theme--catppuccin-mocha .content table{width:100%}html.theme--catppuccin-mocha .content table td,html.theme--catppuccin-mocha .content table th{border:1px solid #585b70;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-mocha .content table th{color:#b8c5ef}html.theme--catppuccin-mocha .content table th:not([align]){text-align:inherit}html.theme--catppuccin-mocha .content table thead td,html.theme--catppuccin-mocha .content table thead th{border-width:0 0 2px;color:#b8c5ef}html.theme--catppuccin-mocha .content table tfoot td,html.theme--catppuccin-mocha .content table tfoot th{border-width:2px 0 0;color:#b8c5ef}html.theme--catppuccin-mocha .content table tbody tr:last-child td,html.theme--catppuccin-mocha .content table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-mocha .content .tabs li+li{margin-top:0}html.theme--catppuccin-mocha .content.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--catppuccin-mocha .content.is-normal{font-size:1rem}html.theme--catppuccin-mocha .content.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .content.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--catppuccin-mocha .icon.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--catppuccin-mocha .icon.is-medium{height:2rem;width:2rem}html.theme--catppuccin-mocha .icon.is-large{height:3rem;width:3rem}html.theme--catppuccin-mocha .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--catppuccin-mocha .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--catppuccin-mocha .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--catppuccin-mocha .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--catppuccin-mocha div.icon-text{display:flex}html.theme--catppuccin-mocha .image,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--catppuccin-mocha .image img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--catppuccin-mocha .image img.is-rounded,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--catppuccin-mocha .image.is-fullwidth,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--catppuccin-mocha .image.is-square img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--catppuccin-mocha .image.is-square .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--catppuccin-mocha .image.is-1by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--catppuccin-mocha .image.is-1by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--catppuccin-mocha .image.is-5by4 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--catppuccin-mocha .image.is-5by4 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--catppuccin-mocha .image.is-4by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--catppuccin-mocha .image.is-4by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--catppuccin-mocha .image.is-3by2 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--catppuccin-mocha .image.is-3by2 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--catppuccin-mocha .image.is-5by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--catppuccin-mocha .image.is-5by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--catppuccin-mocha .image.is-16by9 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--catppuccin-mocha .image.is-16by9 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--catppuccin-mocha .image.is-2by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--catppuccin-mocha .image.is-2by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--catppuccin-mocha .image.is-3by1 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--catppuccin-mocha .image.is-3by1 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--catppuccin-mocha .image.is-4by5 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--catppuccin-mocha .image.is-4by5 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--catppuccin-mocha .image.is-3by4 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--catppuccin-mocha .image.is-3by4 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--catppuccin-mocha .image.is-2by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--catppuccin-mocha .image.is-2by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--catppuccin-mocha .image.is-3by5 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--catppuccin-mocha .image.is-3by5 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--catppuccin-mocha .image.is-9by16 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--catppuccin-mocha .image.is-9by16 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--catppuccin-mocha .image.is-1by2 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--catppuccin-mocha .image.is-1by2 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--catppuccin-mocha .image.is-1by3 img,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--catppuccin-mocha .image.is-1by3 .has-ratio,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--catppuccin-mocha .image.is-square,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--catppuccin-mocha .image.is-1by1,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--catppuccin-mocha .image.is-5by4,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--catppuccin-mocha .image.is-4by3,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--catppuccin-mocha .image.is-3by2,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--catppuccin-mocha .image.is-5by3,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--catppuccin-mocha .image.is-16by9,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--catppuccin-mocha .image.is-2by1,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--catppuccin-mocha .image.is-3by1,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--catppuccin-mocha .image.is-4by5,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--catppuccin-mocha .image.is-3by4,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--catppuccin-mocha .image.is-2by3,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--catppuccin-mocha .image.is-3by5,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--catppuccin-mocha .image.is-9by16,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--catppuccin-mocha .image.is-1by2,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--catppuccin-mocha .image.is-1by3,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--catppuccin-mocha .image.is-16x16,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--catppuccin-mocha .image.is-24x24,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--catppuccin-mocha .image.is-32x32,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--catppuccin-mocha .image.is-48x48,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--catppuccin-mocha .image.is-64x64,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--catppuccin-mocha .image.is-96x96,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--catppuccin-mocha .image.is-128x128,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--catppuccin-mocha .notification{background-color:#181825;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--catppuccin-mocha .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-mocha .notification strong{color:currentColor}html.theme--catppuccin-mocha .notification code,html.theme--catppuccin-mocha .notification pre{background:#fff}html.theme--catppuccin-mocha .notification pre code{background:transparent}html.theme--catppuccin-mocha .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--catppuccin-mocha .notification .title,html.theme--catppuccin-mocha .notification .subtitle,html.theme--catppuccin-mocha .notification .content{color:currentColor}html.theme--catppuccin-mocha .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .notification.is-dark,html.theme--catppuccin-mocha .content kbd.notification{background-color:#313244;color:#fff}html.theme--catppuccin-mocha .notification.is-primary,html.theme--catppuccin-mocha .docstring>section>a.notification.docs-sourcelink{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .notification.is-primary.is-light,html.theme--catppuccin-mocha .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .notification.is-link{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .notification.is-link.is-light{background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .notification.is-info{background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .notification.is-info.is-light{background-color:#effbf9;color:#207466}html.theme--catppuccin-mocha .notification.is-success{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .notification.is-success.is-light{background-color:#f0faef;color:#287222}html.theme--catppuccin-mocha .notification.is-warning{background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .notification.is-warning.is-light{background-color:#fef8ec;color:#8a620a}html.theme--catppuccin-mocha .notification.is-danger{background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .notification.is-danger.is-light{background-color:#fdedf1;color:#991036}html.theme--catppuccin-mocha .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--catppuccin-mocha .progress::-webkit-progress-bar{background-color:#45475a}html.theme--catppuccin-mocha .progress::-webkit-progress-value{background-color:#7f849c}html.theme--catppuccin-mocha .progress::-moz-progress-bar{background-color:#7f849c}html.theme--catppuccin-mocha .progress::-ms-fill{background-color:#7f849c;border:none}html.theme--catppuccin-mocha .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--catppuccin-mocha .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--catppuccin-mocha .progress.is-white::-ms-fill{background-color:#fff}html.theme--catppuccin-mocha .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--catppuccin-mocha .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--catppuccin-mocha .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--catppuccin-mocha .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-light::-webkit-progress-value{background-color:#f5f5f5}html.theme--catppuccin-mocha .progress.is-light::-moz-progress-bar{background-color:#f5f5f5}html.theme--catppuccin-mocha .progress.is-light::-ms-fill{background-color:#f5f5f5}html.theme--catppuccin-mocha .progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-dark::-webkit-progress-value,html.theme--catppuccin-mocha .content kbd.progress::-webkit-progress-value{background-color:#313244}html.theme--catppuccin-mocha .progress.is-dark::-moz-progress-bar,html.theme--catppuccin-mocha .content kbd.progress::-moz-progress-bar{background-color:#313244}html.theme--catppuccin-mocha .progress.is-dark::-ms-fill,html.theme--catppuccin-mocha .content kbd.progress::-ms-fill{background-color:#313244}html.theme--catppuccin-mocha .progress.is-dark:indeterminate,html.theme--catppuccin-mocha .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #313244 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-primary::-webkit-progress-value,html.theme--catppuccin-mocha .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-primary::-moz-progress-bar,html.theme--catppuccin-mocha .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-primary::-ms-fill,html.theme--catppuccin-mocha .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-primary:indeterminate,html.theme--catppuccin-mocha .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #89b4fa 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-link::-webkit-progress-value{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-link::-moz-progress-bar{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-link::-ms-fill{background-color:#89b4fa}html.theme--catppuccin-mocha .progress.is-link:indeterminate{background-image:linear-gradient(to right, #89b4fa 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-info::-webkit-progress-value{background-color:#94e2d5}html.theme--catppuccin-mocha .progress.is-info::-moz-progress-bar{background-color:#94e2d5}html.theme--catppuccin-mocha .progress.is-info::-ms-fill{background-color:#94e2d5}html.theme--catppuccin-mocha .progress.is-info:indeterminate{background-image:linear-gradient(to right, #94e2d5 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-success::-webkit-progress-value{background-color:#a6e3a1}html.theme--catppuccin-mocha .progress.is-success::-moz-progress-bar{background-color:#a6e3a1}html.theme--catppuccin-mocha .progress.is-success::-ms-fill{background-color:#a6e3a1}html.theme--catppuccin-mocha .progress.is-success:indeterminate{background-image:linear-gradient(to right, #a6e3a1 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-warning::-webkit-progress-value{background-color:#f9e2af}html.theme--catppuccin-mocha .progress.is-warning::-moz-progress-bar{background-color:#f9e2af}html.theme--catppuccin-mocha .progress.is-warning::-ms-fill{background-color:#f9e2af}html.theme--catppuccin-mocha .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #f9e2af 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress.is-danger::-webkit-progress-value{background-color:#f38ba8}html.theme--catppuccin-mocha .progress.is-danger::-moz-progress-bar{background-color:#f38ba8}html.theme--catppuccin-mocha .progress.is-danger::-ms-fill{background-color:#f38ba8}html.theme--catppuccin-mocha .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #f38ba8 30%, #45475a 30%)}html.theme--catppuccin-mocha .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#45475a;background-image:linear-gradient(to right, #cdd6f4 30%, #45475a 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--catppuccin-mocha .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--catppuccin-mocha .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--catppuccin-mocha .progress:indeterminate::-ms-fill{animation-name:none}html.theme--catppuccin-mocha .progress.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--catppuccin-mocha .progress.is-medium{height:1.25rem}html.theme--catppuccin-mocha .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--catppuccin-mocha .table{background-color:#45475a;color:#cdd6f4}html.theme--catppuccin-mocha .table td,html.theme--catppuccin-mocha .table th{border:1px solid #585b70;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--catppuccin-mocha .table td.is-white,html.theme--catppuccin-mocha .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .table td.is-black,html.theme--catppuccin-mocha .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .table td.is-light,html.theme--catppuccin-mocha .table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .table td.is-dark,html.theme--catppuccin-mocha .table th.is-dark{background-color:#313244;border-color:#313244;color:#fff}html.theme--catppuccin-mocha .table td.is-primary,html.theme--catppuccin-mocha .table th.is-primary{background-color:#89b4fa;border-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .table td.is-link,html.theme--catppuccin-mocha .table th.is-link{background-color:#89b4fa;border-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .table td.is-info,html.theme--catppuccin-mocha .table th.is-info{background-color:#94e2d5;border-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .table td.is-success,html.theme--catppuccin-mocha .table th.is-success{background-color:#a6e3a1;border-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .table td.is-warning,html.theme--catppuccin-mocha .table th.is-warning{background-color:#f9e2af;border-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .table td.is-danger,html.theme--catppuccin-mocha .table th.is-danger{background-color:#f38ba8;border-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .table td.is-narrow,html.theme--catppuccin-mocha .table th.is-narrow{white-space:nowrap;width:1%}html.theme--catppuccin-mocha .table td.is-selected,html.theme--catppuccin-mocha .table th.is-selected{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .table td.is-selected a,html.theme--catppuccin-mocha .table td.is-selected strong,html.theme--catppuccin-mocha .table th.is-selected a,html.theme--catppuccin-mocha .table th.is-selected strong{color:currentColor}html.theme--catppuccin-mocha .table td.is-vcentered,html.theme--catppuccin-mocha .table th.is-vcentered{vertical-align:middle}html.theme--catppuccin-mocha .table th{color:#b8c5ef}html.theme--catppuccin-mocha .table th:not([align]){text-align:left}html.theme--catppuccin-mocha .table tr.is-selected{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .table tr.is-selected a,html.theme--catppuccin-mocha .table tr.is-selected strong{color:currentColor}html.theme--catppuccin-mocha .table tr.is-selected td,html.theme--catppuccin-mocha .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--catppuccin-mocha .table thead{background-color:rgba(0,0,0,0)}html.theme--catppuccin-mocha .table thead td,html.theme--catppuccin-mocha .table thead th{border-width:0 0 2px;color:#b8c5ef}html.theme--catppuccin-mocha .table tfoot{background-color:rgba(0,0,0,0)}html.theme--catppuccin-mocha .table tfoot td,html.theme--catppuccin-mocha .table tfoot th{border-width:2px 0 0;color:#b8c5ef}html.theme--catppuccin-mocha .table tbody{background-color:rgba(0,0,0,0)}html.theme--catppuccin-mocha .table tbody tr:last-child td,html.theme--catppuccin-mocha .table tbody tr:last-child th{border-bottom-width:0}html.theme--catppuccin-mocha .table.is-bordered td,html.theme--catppuccin-mocha .table.is-bordered th{border-width:1px}html.theme--catppuccin-mocha .table.is-bordered tr:last-child td,html.theme--catppuccin-mocha .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--catppuccin-mocha .table.is-fullwidth{width:100%}html.theme--catppuccin-mocha .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#313244}html.theme--catppuccin-mocha .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#313244}html.theme--catppuccin-mocha .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#35364a}html.theme--catppuccin-mocha .table.is-narrow td,html.theme--catppuccin-mocha .table.is-narrow th{padding:0.25em 0.5em}html.theme--catppuccin-mocha .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#313244}html.theme--catppuccin-mocha .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--catppuccin-mocha .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-mocha .tags .tag,html.theme--catppuccin-mocha .tags .content kbd,html.theme--catppuccin-mocha .content .tags kbd,html.theme--catppuccin-mocha .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--catppuccin-mocha .tags .tag:not(:last-child),html.theme--catppuccin-mocha .tags .content kbd:not(:last-child),html.theme--catppuccin-mocha .content .tags kbd:not(:last-child),html.theme--catppuccin-mocha .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--catppuccin-mocha .tags:last-child{margin-bottom:-0.5rem}html.theme--catppuccin-mocha .tags:not(:last-child){margin-bottom:1rem}html.theme--catppuccin-mocha .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--catppuccin-mocha .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-mocha .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--catppuccin-mocha .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--catppuccin-mocha .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--catppuccin-mocha .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-mocha .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--catppuccin-mocha .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--catppuccin-mocha .tags.is-centered{justify-content:center}html.theme--catppuccin-mocha .tags.is-centered .tag,html.theme--catppuccin-mocha .tags.is-centered .content kbd,html.theme--catppuccin-mocha .content .tags.is-centered kbd,html.theme--catppuccin-mocha .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--catppuccin-mocha .tags.is-right{justify-content:flex-end}html.theme--catppuccin-mocha .tags.is-right .tag:not(:first-child),html.theme--catppuccin-mocha .tags.is-right .content kbd:not(:first-child),html.theme--catppuccin-mocha .content .tags.is-right kbd:not(:first-child),html.theme--catppuccin-mocha .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--catppuccin-mocha .tags.is-right .tag:not(:last-child),html.theme--catppuccin-mocha .tags.is-right .content kbd:not(:last-child),html.theme--catppuccin-mocha .content .tags.is-right kbd:not(:last-child),html.theme--catppuccin-mocha .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--catppuccin-mocha .tags.has-addons .tag,html.theme--catppuccin-mocha .tags.has-addons .content kbd,html.theme--catppuccin-mocha .content .tags.has-addons kbd,html.theme--catppuccin-mocha .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--catppuccin-mocha .tags.has-addons .tag:not(:first-child),html.theme--catppuccin-mocha .tags.has-addons .content kbd:not(:first-child),html.theme--catppuccin-mocha .content .tags.has-addons kbd:not(:first-child),html.theme--catppuccin-mocha .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--catppuccin-mocha .tags.has-addons .tag:not(:last-child),html.theme--catppuccin-mocha .tags.has-addons .content kbd:not(:last-child),html.theme--catppuccin-mocha .content .tags.has-addons kbd:not(:last-child),html.theme--catppuccin-mocha .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--catppuccin-mocha .tag:not(body),html.theme--catppuccin-mocha .content kbd:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#181825;border-radius:.4em;color:#cdd6f4;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--catppuccin-mocha .tag:not(body) .delete,html.theme--catppuccin-mocha .content kbd:not(body) .delete,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--catppuccin-mocha .tag.is-white:not(body),html.theme--catppuccin-mocha .content kbd.is-white:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .tag.is-black:not(body),html.theme--catppuccin-mocha .content kbd.is-black:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .tag.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .tag.is-dark:not(body),html.theme--catppuccin-mocha .content kbd:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--catppuccin-mocha .content .docstring>section>kbd:not(body){background-color:#313244;color:#fff}html.theme--catppuccin-mocha .tag.is-primary:not(body),html.theme--catppuccin-mocha .content kbd.is-primary:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body){background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .tag.is-primary.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-primary.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .tag.is-link:not(body),html.theme--catppuccin-mocha .content kbd.is-link:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .tag.is-link.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-link.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#ebf3fe;color:#063c93}html.theme--catppuccin-mocha .tag.is-info:not(body),html.theme--catppuccin-mocha .content kbd.is-info:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .tag.is-info.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-info.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#effbf9;color:#207466}html.theme--catppuccin-mocha .tag.is-success:not(body),html.theme--catppuccin-mocha .content kbd.is-success:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .tag.is-success.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-success.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#f0faef;color:#287222}html.theme--catppuccin-mocha .tag.is-warning:not(body),html.theme--catppuccin-mocha .content kbd.is-warning:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .tag.is-warning.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-warning.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fef8ec;color:#8a620a}html.theme--catppuccin-mocha .tag.is-danger:not(body),html.theme--catppuccin-mocha .content kbd.is-danger:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .tag.is-danger.is-light:not(body),html.theme--catppuccin-mocha .content kbd.is-danger.is-light:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdedf1;color:#991036}html.theme--catppuccin-mocha .tag.is-normal:not(body),html.theme--catppuccin-mocha .content kbd.is-normal:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--catppuccin-mocha .tag.is-medium:not(body),html.theme--catppuccin-mocha .content kbd.is-medium:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--catppuccin-mocha .tag.is-large:not(body),html.theme--catppuccin-mocha .content kbd.is-large:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--catppuccin-mocha .tag:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-mocha .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--catppuccin-mocha .tag:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-mocha .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--catppuccin-mocha .tag:not(body) .icon:first-child:last-child,html.theme--catppuccin-mocha .content kbd:not(body) .icon:first-child:last-child,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--catppuccin-mocha .tag.is-delete:not(body),html.theme--catppuccin-mocha .content kbd.is-delete:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--catppuccin-mocha .tag.is-delete:not(body)::before,html.theme--catppuccin-mocha .content kbd.is-delete:not(body)::before,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--catppuccin-mocha .tag.is-delete:not(body)::after,html.theme--catppuccin-mocha .content kbd.is-delete:not(body)::after,html.theme--catppuccin-mocha .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--catppuccin-mocha .tag.is-delete:not(body)::before,html.theme--catppuccin-mocha .content kbd.is-delete:not(body)::before,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--catppuccin-mocha .tag.is-delete:not(body)::after,html.theme--catppuccin-mocha .content kbd.is-delete:not(body)::after,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--catppuccin-mocha .tag.is-delete:not(body):hover,html.theme--catppuccin-mocha .content kbd.is-delete:not(body):hover,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--catppuccin-mocha .tag.is-delete:not(body):focus,html.theme--catppuccin-mocha .content kbd.is-delete:not(body):focus,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#0e0e16}html.theme--catppuccin-mocha .tag.is-delete:not(body):active,html.theme--catppuccin-mocha .content kbd.is-delete:not(body):active,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#040406}html.theme--catppuccin-mocha .tag.is-rounded:not(body),html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--catppuccin-mocha .content kbd.is-rounded:not(body),html.theme--catppuccin-mocha #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--catppuccin-mocha a.tag:hover,html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--catppuccin-mocha .title,html.theme--catppuccin-mocha .subtitle{word-break:break-word}html.theme--catppuccin-mocha .title em,html.theme--catppuccin-mocha .title span,html.theme--catppuccin-mocha .subtitle em,html.theme--catppuccin-mocha .subtitle span{font-weight:inherit}html.theme--catppuccin-mocha .title sub,html.theme--catppuccin-mocha .subtitle sub{font-size:.75em}html.theme--catppuccin-mocha .title sup,html.theme--catppuccin-mocha .subtitle sup{font-size:.75em}html.theme--catppuccin-mocha .title .tag,html.theme--catppuccin-mocha .title .content kbd,html.theme--catppuccin-mocha .content .title kbd,html.theme--catppuccin-mocha .title .docstring>section>a.docs-sourcelink,html.theme--catppuccin-mocha .subtitle .tag,html.theme--catppuccin-mocha .subtitle .content kbd,html.theme--catppuccin-mocha .content .subtitle kbd,html.theme--catppuccin-mocha .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--catppuccin-mocha .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--catppuccin-mocha .title strong{color:inherit;font-weight:inherit}html.theme--catppuccin-mocha .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--catppuccin-mocha .title.is-1{font-size:3rem}html.theme--catppuccin-mocha .title.is-2{font-size:2.5rem}html.theme--catppuccin-mocha .title.is-3{font-size:2rem}html.theme--catppuccin-mocha .title.is-4{font-size:1.5rem}html.theme--catppuccin-mocha .title.is-5{font-size:1.25rem}html.theme--catppuccin-mocha .title.is-6{font-size:1rem}html.theme--catppuccin-mocha .title.is-7{font-size:.75rem}html.theme--catppuccin-mocha .subtitle{color:#6c7086;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--catppuccin-mocha .subtitle strong{color:#6c7086;font-weight:600}html.theme--catppuccin-mocha .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--catppuccin-mocha .subtitle.is-1{font-size:3rem}html.theme--catppuccin-mocha .subtitle.is-2{font-size:2.5rem}html.theme--catppuccin-mocha .subtitle.is-3{font-size:2rem}html.theme--catppuccin-mocha .subtitle.is-4{font-size:1.5rem}html.theme--catppuccin-mocha .subtitle.is-5{font-size:1.25rem}html.theme--catppuccin-mocha .subtitle.is-6{font-size:1rem}html.theme--catppuccin-mocha .subtitle.is-7{font-size:.75rem}html.theme--catppuccin-mocha .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--catppuccin-mocha .number{align-items:center;background-color:#181825;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--catppuccin-mocha .select select,html.theme--catppuccin-mocha .textarea,html.theme--catppuccin-mocha .input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input{background-color:#1e1e2e;border-color:#585b70;border-radius:.4em;color:#7f849c}html.theme--catppuccin-mocha .select select::-moz-placeholder,html.theme--catppuccin-mocha .textarea::-moz-placeholder,html.theme--catppuccin-mocha .input::-moz-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--catppuccin-mocha .select select::-webkit-input-placeholder,html.theme--catppuccin-mocha .textarea::-webkit-input-placeholder,html.theme--catppuccin-mocha .input::-webkit-input-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--catppuccin-mocha .select select:-moz-placeholder,html.theme--catppuccin-mocha .textarea:-moz-placeholder,html.theme--catppuccin-mocha .input:-moz-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--catppuccin-mocha .select select:-ms-input-placeholder,html.theme--catppuccin-mocha .textarea:-ms-input-placeholder,html.theme--catppuccin-mocha .input:-ms-input-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--catppuccin-mocha .select select:hover,html.theme--catppuccin-mocha .textarea:hover,html.theme--catppuccin-mocha .input:hover,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:hover,html.theme--catppuccin-mocha .select select.is-hovered,html.theme--catppuccin-mocha .is-hovered.textarea,html.theme--catppuccin-mocha .is-hovered.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#6c7086}html.theme--catppuccin-mocha .select select:focus,html.theme--catppuccin-mocha .textarea:focus,html.theme--catppuccin-mocha .input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:focus,html.theme--catppuccin-mocha .select select.is-focused,html.theme--catppuccin-mocha .is-focused.textarea,html.theme--catppuccin-mocha .is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .select select:active,html.theme--catppuccin-mocha .textarea:active,html.theme--catppuccin-mocha .input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:active,html.theme--catppuccin-mocha .select select.is-active,html.theme--catppuccin-mocha .is-active.textarea,html.theme--catppuccin-mocha .is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#89b4fa;box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .select select[disabled],html.theme--catppuccin-mocha .textarea[disabled],html.theme--catppuccin-mocha .input[disabled],html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--catppuccin-mocha .select select,fieldset[disabled] html.theme--catppuccin-mocha .textarea,fieldset[disabled] html.theme--catppuccin-mocha .input,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input{background-color:#6c7086;border-color:#181825;box-shadow:none;color:#f7f8fd}html.theme--catppuccin-mocha .select select[disabled]::-moz-placeholder,html.theme--catppuccin-mocha .textarea[disabled]::-moz-placeholder,html.theme--catppuccin-mocha .input[disabled]::-moz-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .select select::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .textarea::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .input::-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(247,248,253,0.3)}html.theme--catppuccin-mocha .select select[disabled]::-webkit-input-placeholder,html.theme--catppuccin-mocha .textarea[disabled]::-webkit-input-placeholder,html.theme--catppuccin-mocha .input[disabled]::-webkit-input-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .input::-webkit-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(247,248,253,0.3)}html.theme--catppuccin-mocha .select select[disabled]:-moz-placeholder,html.theme--catppuccin-mocha .textarea[disabled]:-moz-placeholder,html.theme--catppuccin-mocha .input[disabled]:-moz-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .select select:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .textarea:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .input:-moz-placeholder,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(247,248,253,0.3)}html.theme--catppuccin-mocha .select select[disabled]:-ms-input-placeholder,html.theme--catppuccin-mocha .textarea[disabled]:-ms-input-placeholder,html.theme--catppuccin-mocha .input[disabled]:-ms-input-placeholder,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .select select:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha .input:-ms-input-placeholder,fieldset[disabled] html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(247,248,253,0.3)}html.theme--catppuccin-mocha .textarea,html.theme--catppuccin-mocha .input,html.theme--catppuccin-mocha #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--catppuccin-mocha .textarea[readonly],html.theme--catppuccin-mocha .input[readonly],html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--catppuccin-mocha .is-white.textarea,html.theme--catppuccin-mocha .is-white.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--catppuccin-mocha .is-white.textarea:focus,html.theme--catppuccin-mocha .is-white.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--catppuccin-mocha .is-white.is-focused.textarea,html.theme--catppuccin-mocha .is-white.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-white.textarea:active,html.theme--catppuccin-mocha .is-white.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--catppuccin-mocha .is-white.is-active.textarea,html.theme--catppuccin-mocha .is-white.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-mocha .is-black.textarea,html.theme--catppuccin-mocha .is-black.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--catppuccin-mocha .is-black.textarea:focus,html.theme--catppuccin-mocha .is-black.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--catppuccin-mocha .is-black.is-focused.textarea,html.theme--catppuccin-mocha .is-black.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-black.textarea:active,html.theme--catppuccin-mocha .is-black.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--catppuccin-mocha .is-black.is-active.textarea,html.theme--catppuccin-mocha .is-black.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-mocha .is-light.textarea,html.theme--catppuccin-mocha .is-light.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}html.theme--catppuccin-mocha .is-light.textarea:focus,html.theme--catppuccin-mocha .is-light.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--catppuccin-mocha .is-light.is-focused.textarea,html.theme--catppuccin-mocha .is-light.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-light.textarea:active,html.theme--catppuccin-mocha .is-light.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--catppuccin-mocha .is-light.is-active.textarea,html.theme--catppuccin-mocha .is-light.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-mocha .is-dark.textarea,html.theme--catppuccin-mocha .content kbd.textarea,html.theme--catppuccin-mocha .is-dark.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--catppuccin-mocha .content kbd.input{border-color:#313244}html.theme--catppuccin-mocha .is-dark.textarea:focus,html.theme--catppuccin-mocha .content kbd.textarea:focus,html.theme--catppuccin-mocha .is-dark.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--catppuccin-mocha .content kbd.input:focus,html.theme--catppuccin-mocha .is-dark.is-focused.textarea,html.theme--catppuccin-mocha .content kbd.is-focused.textarea,html.theme--catppuccin-mocha .is-dark.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .content kbd.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-dark.textarea:active,html.theme--catppuccin-mocha .content kbd.textarea:active,html.theme--catppuccin-mocha .is-dark.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--catppuccin-mocha .content kbd.input:active,html.theme--catppuccin-mocha .is-dark.is-active.textarea,html.theme--catppuccin-mocha .content kbd.is-active.textarea,html.theme--catppuccin-mocha .is-dark.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-mocha .content kbd.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(49,50,68,0.25)}html.theme--catppuccin-mocha .is-primary.textarea,html.theme--catppuccin-mocha .docstring>section>a.textarea.docs-sourcelink,html.theme--catppuccin-mocha .is-primary.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--catppuccin-mocha .docstring>section>a.input.docs-sourcelink{border-color:#89b4fa}html.theme--catppuccin-mocha .is-primary.textarea:focus,html.theme--catppuccin-mocha .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--catppuccin-mocha .is-primary.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--catppuccin-mocha .docstring>section>a.input.docs-sourcelink:focus,html.theme--catppuccin-mocha .is-primary.is-focused.textarea,html.theme--catppuccin-mocha .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--catppuccin-mocha .is-primary.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--catppuccin-mocha .is-primary.textarea:active,html.theme--catppuccin-mocha .docstring>section>a.textarea.docs-sourcelink:active,html.theme--catppuccin-mocha .is-primary.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--catppuccin-mocha .docstring>section>a.input.docs-sourcelink:active,html.theme--catppuccin-mocha .is-primary.is-active.textarea,html.theme--catppuccin-mocha .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--catppuccin-mocha .is-primary.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--catppuccin-mocha .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .is-link.textarea,html.theme--catppuccin-mocha .is-link.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#89b4fa}html.theme--catppuccin-mocha .is-link.textarea:focus,html.theme--catppuccin-mocha .is-link.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--catppuccin-mocha .is-link.is-focused.textarea,html.theme--catppuccin-mocha .is-link.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-link.textarea:active,html.theme--catppuccin-mocha .is-link.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--catppuccin-mocha .is-link.is-active.textarea,html.theme--catppuccin-mocha .is-link.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .is-info.textarea,html.theme--catppuccin-mocha .is-info.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#94e2d5}html.theme--catppuccin-mocha .is-info.textarea:focus,html.theme--catppuccin-mocha .is-info.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--catppuccin-mocha .is-info.is-focused.textarea,html.theme--catppuccin-mocha .is-info.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-info.textarea:active,html.theme--catppuccin-mocha .is-info.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--catppuccin-mocha .is-info.is-active.textarea,html.theme--catppuccin-mocha .is-info.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(148,226,213,0.25)}html.theme--catppuccin-mocha .is-success.textarea,html.theme--catppuccin-mocha .is-success.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#a6e3a1}html.theme--catppuccin-mocha .is-success.textarea:focus,html.theme--catppuccin-mocha .is-success.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--catppuccin-mocha .is-success.is-focused.textarea,html.theme--catppuccin-mocha .is-success.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-success.textarea:active,html.theme--catppuccin-mocha .is-success.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--catppuccin-mocha .is-success.is-active.textarea,html.theme--catppuccin-mocha .is-success.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(166,227,161,0.25)}html.theme--catppuccin-mocha .is-warning.textarea,html.theme--catppuccin-mocha .is-warning.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#f9e2af}html.theme--catppuccin-mocha .is-warning.textarea:focus,html.theme--catppuccin-mocha .is-warning.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--catppuccin-mocha .is-warning.is-focused.textarea,html.theme--catppuccin-mocha .is-warning.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-warning.textarea:active,html.theme--catppuccin-mocha .is-warning.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--catppuccin-mocha .is-warning.is-active.textarea,html.theme--catppuccin-mocha .is-warning.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(249,226,175,0.25)}html.theme--catppuccin-mocha .is-danger.textarea,html.theme--catppuccin-mocha .is-danger.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#f38ba8}html.theme--catppuccin-mocha .is-danger.textarea:focus,html.theme--catppuccin-mocha .is-danger.input:focus,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--catppuccin-mocha .is-danger.is-focused.textarea,html.theme--catppuccin-mocha .is-danger.is-focused.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--catppuccin-mocha .is-danger.textarea:active,html.theme--catppuccin-mocha .is-danger.input:active,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--catppuccin-mocha .is-danger.is-active.textarea,html.theme--catppuccin-mocha .is-danger.is-active.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(243,139,168,0.25)}html.theme--catppuccin-mocha .is-small.textarea,html.theme--catppuccin-mocha .is-small.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--catppuccin-mocha .is-medium.textarea,html.theme--catppuccin-mocha .is-medium.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .is-large.textarea,html.theme--catppuccin-mocha .is-large.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .is-fullwidth.textarea,html.theme--catppuccin-mocha .is-fullwidth.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--catppuccin-mocha .is-inline.textarea,html.theme--catppuccin-mocha .is-inline.input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--catppuccin-mocha .input.is-rounded,html.theme--catppuccin-mocha #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--catppuccin-mocha .input.is-static,html.theme--catppuccin-mocha #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--catppuccin-mocha .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--catppuccin-mocha .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--catppuccin-mocha .textarea[rows]{height:initial}html.theme--catppuccin-mocha .textarea.has-fixed-size{resize:none}html.theme--catppuccin-mocha .radio,html.theme--catppuccin-mocha .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--catppuccin-mocha .radio input,html.theme--catppuccin-mocha .checkbox input{cursor:pointer}html.theme--catppuccin-mocha .radio:hover,html.theme--catppuccin-mocha .checkbox:hover{color:#89dceb}html.theme--catppuccin-mocha .radio[disabled],html.theme--catppuccin-mocha .checkbox[disabled],fieldset[disabled] html.theme--catppuccin-mocha .radio,fieldset[disabled] html.theme--catppuccin-mocha .checkbox,html.theme--catppuccin-mocha .radio input[disabled],html.theme--catppuccin-mocha .checkbox input[disabled]{color:#f7f8fd;cursor:not-allowed}html.theme--catppuccin-mocha .radio+.radio{margin-left:.5em}html.theme--catppuccin-mocha .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--catppuccin-mocha .select:not(.is-multiple){height:2.5em}html.theme--catppuccin-mocha .select:not(.is-multiple):not(.is-loading)::after{border-color:#89b4fa;right:1.125em;z-index:4}html.theme--catppuccin-mocha .select.is-rounded select,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--catppuccin-mocha .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--catppuccin-mocha .select select::-ms-expand{display:none}html.theme--catppuccin-mocha .select select[disabled]:hover,fieldset[disabled] html.theme--catppuccin-mocha .select select:hover{border-color:#181825}html.theme--catppuccin-mocha .select select:not([multiple]){padding-right:2.5em}html.theme--catppuccin-mocha .select select[multiple]{height:auto;padding:0}html.theme--catppuccin-mocha .select select[multiple] option{padding:0.5em 1em}html.theme--catppuccin-mocha .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#89dceb}html.theme--catppuccin-mocha .select.is-white:not(:hover)::after{border-color:#fff}html.theme--catppuccin-mocha .select.is-white select{border-color:#fff}html.theme--catppuccin-mocha .select.is-white select:hover,html.theme--catppuccin-mocha .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--catppuccin-mocha .select.is-white select:focus,html.theme--catppuccin-mocha .select.is-white select.is-focused,html.theme--catppuccin-mocha .select.is-white select:active,html.theme--catppuccin-mocha .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--catppuccin-mocha .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--catppuccin-mocha .select.is-black select{border-color:#0a0a0a}html.theme--catppuccin-mocha .select.is-black select:hover,html.theme--catppuccin-mocha .select.is-black select.is-hovered{border-color:#000}html.theme--catppuccin-mocha .select.is-black select:focus,html.theme--catppuccin-mocha .select.is-black select.is-focused,html.theme--catppuccin-mocha .select.is-black select:active,html.theme--catppuccin-mocha .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--catppuccin-mocha .select.is-light:not(:hover)::after{border-color:#f5f5f5}html.theme--catppuccin-mocha .select.is-light select{border-color:#f5f5f5}html.theme--catppuccin-mocha .select.is-light select:hover,html.theme--catppuccin-mocha .select.is-light select.is-hovered{border-color:#e8e8e8}html.theme--catppuccin-mocha .select.is-light select:focus,html.theme--catppuccin-mocha .select.is-light select.is-focused,html.theme--catppuccin-mocha .select.is-light select:active,html.theme--catppuccin-mocha .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}html.theme--catppuccin-mocha .select.is-dark:not(:hover)::after,html.theme--catppuccin-mocha .content kbd.select:not(:hover)::after{border-color:#313244}html.theme--catppuccin-mocha .select.is-dark select,html.theme--catppuccin-mocha .content kbd.select select{border-color:#313244}html.theme--catppuccin-mocha .select.is-dark select:hover,html.theme--catppuccin-mocha .content kbd.select select:hover,html.theme--catppuccin-mocha .select.is-dark select.is-hovered,html.theme--catppuccin-mocha .content kbd.select select.is-hovered{border-color:#262735}html.theme--catppuccin-mocha .select.is-dark select:focus,html.theme--catppuccin-mocha .content kbd.select select:focus,html.theme--catppuccin-mocha .select.is-dark select.is-focused,html.theme--catppuccin-mocha .content kbd.select select.is-focused,html.theme--catppuccin-mocha .select.is-dark select:active,html.theme--catppuccin-mocha .content kbd.select select:active,html.theme--catppuccin-mocha .select.is-dark select.is-active,html.theme--catppuccin-mocha .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(49,50,68,0.25)}html.theme--catppuccin-mocha .select.is-primary:not(:hover)::after,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#89b4fa}html.theme--catppuccin-mocha .select.is-primary select,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select{border-color:#89b4fa}html.theme--catppuccin-mocha .select.is-primary select:hover,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select:hover,html.theme--catppuccin-mocha .select.is-primary select.is-hovered,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#71a4f9}html.theme--catppuccin-mocha .select.is-primary select:focus,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select:focus,html.theme--catppuccin-mocha .select.is-primary select.is-focused,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--catppuccin-mocha .select.is-primary select:active,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select:active,html.theme--catppuccin-mocha .select.is-primary select.is-active,html.theme--catppuccin-mocha .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .select.is-link:not(:hover)::after{border-color:#89b4fa}html.theme--catppuccin-mocha .select.is-link select{border-color:#89b4fa}html.theme--catppuccin-mocha .select.is-link select:hover,html.theme--catppuccin-mocha .select.is-link select.is-hovered{border-color:#71a4f9}html.theme--catppuccin-mocha .select.is-link select:focus,html.theme--catppuccin-mocha .select.is-link select.is-focused,html.theme--catppuccin-mocha .select.is-link select:active,html.theme--catppuccin-mocha .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(137,180,250,0.25)}html.theme--catppuccin-mocha .select.is-info:not(:hover)::after{border-color:#94e2d5}html.theme--catppuccin-mocha .select.is-info select{border-color:#94e2d5}html.theme--catppuccin-mocha .select.is-info select:hover,html.theme--catppuccin-mocha .select.is-info select.is-hovered{border-color:#80ddcd}html.theme--catppuccin-mocha .select.is-info select:focus,html.theme--catppuccin-mocha .select.is-info select.is-focused,html.theme--catppuccin-mocha .select.is-info select:active,html.theme--catppuccin-mocha .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(148,226,213,0.25)}html.theme--catppuccin-mocha .select.is-success:not(:hover)::after{border-color:#a6e3a1}html.theme--catppuccin-mocha .select.is-success select{border-color:#a6e3a1}html.theme--catppuccin-mocha .select.is-success select:hover,html.theme--catppuccin-mocha .select.is-success select.is-hovered{border-color:#93dd8d}html.theme--catppuccin-mocha .select.is-success select:focus,html.theme--catppuccin-mocha .select.is-success select.is-focused,html.theme--catppuccin-mocha .select.is-success select:active,html.theme--catppuccin-mocha .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(166,227,161,0.25)}html.theme--catppuccin-mocha .select.is-warning:not(:hover)::after{border-color:#f9e2af}html.theme--catppuccin-mocha .select.is-warning select{border-color:#f9e2af}html.theme--catppuccin-mocha .select.is-warning select:hover,html.theme--catppuccin-mocha .select.is-warning select.is-hovered{border-color:#f7d997}html.theme--catppuccin-mocha .select.is-warning select:focus,html.theme--catppuccin-mocha .select.is-warning select.is-focused,html.theme--catppuccin-mocha .select.is-warning select:active,html.theme--catppuccin-mocha .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(249,226,175,0.25)}html.theme--catppuccin-mocha .select.is-danger:not(:hover)::after{border-color:#f38ba8}html.theme--catppuccin-mocha .select.is-danger select{border-color:#f38ba8}html.theme--catppuccin-mocha .select.is-danger select:hover,html.theme--catppuccin-mocha .select.is-danger select.is-hovered{border-color:#f17497}html.theme--catppuccin-mocha .select.is-danger select:focus,html.theme--catppuccin-mocha .select.is-danger select.is-focused,html.theme--catppuccin-mocha .select.is-danger select:active,html.theme--catppuccin-mocha .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(243,139,168,0.25)}html.theme--catppuccin-mocha .select.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--catppuccin-mocha .select.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .select.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .select.is-disabled::after{border-color:#f7f8fd !important;opacity:0.5}html.theme--catppuccin-mocha .select.is-fullwidth{width:100%}html.theme--catppuccin-mocha .select.is-fullwidth select{width:100%}html.theme--catppuccin-mocha .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--catppuccin-mocha .select.is-loading.is-small:after,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-mocha .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-mocha .select.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-mocha .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--catppuccin-mocha .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .file.is-white:hover .file-cta,html.theme--catppuccin-mocha .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .file.is-white:focus .file-cta,html.theme--catppuccin-mocha .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--catppuccin-mocha .file.is-white:active .file-cta,html.theme--catppuccin-mocha .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--catppuccin-mocha .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-black:hover .file-cta,html.theme--catppuccin-mocha .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-black:focus .file-cta,html.theme--catppuccin-mocha .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--catppuccin-mocha .file.is-black:active .file-cta,html.theme--catppuccin-mocha .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-light:hover .file-cta,html.theme--catppuccin-mocha .file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-light:focus .file-cta,html.theme--catppuccin-mocha .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)}html.theme--catppuccin-mocha .file.is-light:active .file-cta,html.theme--catppuccin-mocha .file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-dark .file-cta,html.theme--catppuccin-mocha .content kbd.file .file-cta{background-color:#313244;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-dark:hover .file-cta,html.theme--catppuccin-mocha .content kbd.file:hover .file-cta,html.theme--catppuccin-mocha .file.is-dark.is-hovered .file-cta,html.theme--catppuccin-mocha .content kbd.file.is-hovered .file-cta{background-color:#2c2d3d;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-dark:focus .file-cta,html.theme--catppuccin-mocha .content kbd.file:focus .file-cta,html.theme--catppuccin-mocha .file.is-dark.is-focused .file-cta,html.theme--catppuccin-mocha .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(49,50,68,0.25);color:#fff}html.theme--catppuccin-mocha .file.is-dark:active .file-cta,html.theme--catppuccin-mocha .content kbd.file:active .file-cta,html.theme--catppuccin-mocha .file.is-dark.is-active .file-cta,html.theme--catppuccin-mocha .content kbd.file.is-active .file-cta{background-color:#262735;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-primary .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#89b4fa;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-primary:hover .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--catppuccin-mocha .file.is-primary.is-hovered .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#7dacf9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-primary:focus .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--catppuccin-mocha .file.is-primary.is-focused .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(137,180,250,0.25);color:#fff}html.theme--catppuccin-mocha .file.is-primary:active .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--catppuccin-mocha .file.is-primary.is-active .file-cta,html.theme--catppuccin-mocha .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#71a4f9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-link .file-cta{background-color:#89b4fa;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-link:hover .file-cta,html.theme--catppuccin-mocha .file.is-link.is-hovered .file-cta{background-color:#7dacf9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-link:focus .file-cta,html.theme--catppuccin-mocha .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(137,180,250,0.25);color:#fff}html.theme--catppuccin-mocha .file.is-link:active .file-cta,html.theme--catppuccin-mocha .file.is-link.is-active .file-cta{background-color:#71a4f9;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-info .file-cta{background-color:#94e2d5;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-info:hover .file-cta,html.theme--catppuccin-mocha .file.is-info.is-hovered .file-cta{background-color:#8adfd1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-info:focus .file-cta,html.theme--catppuccin-mocha .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(148,226,213,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-info:active .file-cta,html.theme--catppuccin-mocha .file.is-info.is-active .file-cta{background-color:#80ddcd;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-success .file-cta{background-color:#a6e3a1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-success:hover .file-cta,html.theme--catppuccin-mocha .file.is-success.is-hovered .file-cta{background-color:#9de097;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-success:focus .file-cta,html.theme--catppuccin-mocha .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(166,227,161,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-success:active .file-cta,html.theme--catppuccin-mocha .file.is-success.is-active .file-cta{background-color:#93dd8d;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-warning .file-cta{background-color:#f9e2af;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-warning:hover .file-cta,html.theme--catppuccin-mocha .file.is-warning.is-hovered .file-cta{background-color:#f8dea3;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-warning:focus .file-cta,html.theme--catppuccin-mocha .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(249,226,175,0.25);color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-warning:active .file-cta,html.theme--catppuccin-mocha .file.is-warning.is-active .file-cta{background-color:#f7d997;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .file.is-danger .file-cta{background-color:#f38ba8;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-danger:hover .file-cta,html.theme--catppuccin-mocha .file.is-danger.is-hovered .file-cta{background-color:#f27f9f;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-danger:focus .file-cta,html.theme--catppuccin-mocha .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(243,139,168,0.25);color:#fff}html.theme--catppuccin-mocha .file.is-danger:active .file-cta,html.theme--catppuccin-mocha .file.is-danger.is-active .file-cta{background-color:#f17497;border-color:transparent;color:#fff}html.theme--catppuccin-mocha .file.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--catppuccin-mocha .file.is-normal{font-size:1rem}html.theme--catppuccin-mocha .file.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .file.is-medium .file-icon .fa{font-size:21px}html.theme--catppuccin-mocha .file.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .file.is-large .file-icon .fa{font-size:28px}html.theme--catppuccin-mocha .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-mocha .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-mocha .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--catppuccin-mocha .file.has-name.is-empty .file-name{display:none}html.theme--catppuccin-mocha .file.is-boxed .file-label{flex-direction:column}html.theme--catppuccin-mocha .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--catppuccin-mocha .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--catppuccin-mocha .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--catppuccin-mocha .file.is-boxed .file-icon .fa{font-size:21px}html.theme--catppuccin-mocha .file.is-boxed.is-small .file-icon .fa,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--catppuccin-mocha .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--catppuccin-mocha .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--catppuccin-mocha .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--catppuccin-mocha .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--catppuccin-mocha .file.is-centered{justify-content:center}html.theme--catppuccin-mocha .file.is-fullwidth .file-label{width:100%}html.theme--catppuccin-mocha .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--catppuccin-mocha .file.is-right{justify-content:flex-end}html.theme--catppuccin-mocha .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--catppuccin-mocha .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--catppuccin-mocha .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--catppuccin-mocha .file-label:hover .file-cta{background-color:#2c2d3d;color:#b8c5ef}html.theme--catppuccin-mocha .file-label:hover .file-name{border-color:#525569}html.theme--catppuccin-mocha .file-label:active .file-cta{background-color:#262735;color:#b8c5ef}html.theme--catppuccin-mocha .file-label:active .file-name{border-color:#4d4f62}html.theme--catppuccin-mocha .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--catppuccin-mocha .file-cta,html.theme--catppuccin-mocha .file-name{border-color:#585b70;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--catppuccin-mocha .file-cta{background-color:#313244;color:#cdd6f4}html.theme--catppuccin-mocha .file-name{border-color:#585b70;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--catppuccin-mocha .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--catppuccin-mocha .file-icon .fa{font-size:14px}html.theme--catppuccin-mocha .label{color:#b8c5ef;display:block;font-size:1rem;font-weight:700}html.theme--catppuccin-mocha .label:not(:last-child){margin-bottom:0.5em}html.theme--catppuccin-mocha .label.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--catppuccin-mocha .label.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .label.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--catppuccin-mocha .help.is-white{color:#fff}html.theme--catppuccin-mocha .help.is-black{color:#0a0a0a}html.theme--catppuccin-mocha .help.is-light{color:#f5f5f5}html.theme--catppuccin-mocha .help.is-dark,html.theme--catppuccin-mocha .content kbd.help{color:#313244}html.theme--catppuccin-mocha .help.is-primary,html.theme--catppuccin-mocha .docstring>section>a.help.docs-sourcelink{color:#89b4fa}html.theme--catppuccin-mocha .help.is-link{color:#89b4fa}html.theme--catppuccin-mocha .help.is-info{color:#94e2d5}html.theme--catppuccin-mocha .help.is-success{color:#a6e3a1}html.theme--catppuccin-mocha .help.is-warning{color:#f9e2af}html.theme--catppuccin-mocha .help.is-danger{color:#f38ba8}html.theme--catppuccin-mocha .field:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-mocha .field.has-addons{display:flex;justify-content:flex-start}html.theme--catppuccin-mocha .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--catppuccin-mocha .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--catppuccin-mocha .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--catppuccin-mocha .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--catppuccin-mocha .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--catppuccin-mocha .field.has-addons .control:first-child:not(:only-child) .button,html.theme--catppuccin-mocha .field.has-addons .control:first-child:not(:only-child) .input,html.theme--catppuccin-mocha .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-mocha .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--catppuccin-mocha .field.has-addons .control:last-child:not(:only-child) .button,html.theme--catppuccin-mocha .field.has-addons .control:last-child:not(:only-child) .input,html.theme--catppuccin-mocha .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--catppuccin-mocha .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--catppuccin-mocha .field.has-addons .control .button:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .input:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .select select:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--catppuccin-mocha .field.has-addons .control .button:not([disabled]):focus,html.theme--catppuccin-mocha .field.has-addons .control .button.is-focused:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .button:not([disabled]):active,html.theme--catppuccin-mocha .field.has-addons .control .button.is-active:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .input:not([disabled]):focus,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--catppuccin-mocha .field.has-addons .control .input.is-focused:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .input:not([disabled]):active,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--catppuccin-mocha .field.has-addons .control .input.is-active:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .select select:not([disabled]):focus,html.theme--catppuccin-mocha .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--catppuccin-mocha .field.has-addons .control .select select:not([disabled]):active,html.theme--catppuccin-mocha .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--catppuccin-mocha .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--catppuccin-mocha .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .button:not([disabled]):active:hover,html.theme--catppuccin-mocha .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--catppuccin-mocha .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .input:not([disabled]):active:hover,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--catppuccin-mocha .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-mocha #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--catppuccin-mocha .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--catppuccin-mocha .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--catppuccin-mocha .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--catppuccin-mocha .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .field.has-addons.has-addons-centered{justify-content:center}html.theme--catppuccin-mocha .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--catppuccin-mocha .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--catppuccin-mocha .field.is-grouped{display:flex;justify-content:flex-start}html.theme--catppuccin-mocha .field.is-grouped>.control{flex-shrink:0}html.theme--catppuccin-mocha .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-mocha .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--catppuccin-mocha .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--catppuccin-mocha .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .field.is-horizontal{display:flex}}html.theme--catppuccin-mocha .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--catppuccin-mocha .field-label.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--catppuccin-mocha .field-label.is-normal{padding-top:0.375em}html.theme--catppuccin-mocha .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--catppuccin-mocha .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--catppuccin-mocha .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--catppuccin-mocha .field-body .field{margin-bottom:0}html.theme--catppuccin-mocha .field-body>.field{flex-shrink:1}html.theme--catppuccin-mocha .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--catppuccin-mocha .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-mocha .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--catppuccin-mocha .control.has-icons-left .input:focus~.icon,html.theme--catppuccin-mocha .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--catppuccin-mocha .control.has-icons-left .select:focus~.icon,html.theme--catppuccin-mocha .control.has-icons-right .input:focus~.icon,html.theme--catppuccin-mocha .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--catppuccin-mocha .control.has-icons-right .select:focus~.icon{color:#313244}html.theme--catppuccin-mocha .control.has-icons-left .input.is-small~.icon,html.theme--catppuccin-mocha .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--catppuccin-mocha .control.has-icons-left .select.is-small~.icon,html.theme--catppuccin-mocha .control.has-icons-right .input.is-small~.icon,html.theme--catppuccin-mocha .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--catppuccin-mocha .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--catppuccin-mocha .control.has-icons-left .input.is-medium~.icon,html.theme--catppuccin-mocha .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--catppuccin-mocha .control.has-icons-left .select.is-medium~.icon,html.theme--catppuccin-mocha .control.has-icons-right .input.is-medium~.icon,html.theme--catppuccin-mocha .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--catppuccin-mocha .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--catppuccin-mocha .control.has-icons-left .input.is-large~.icon,html.theme--catppuccin-mocha .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--catppuccin-mocha .control.has-icons-left .select.is-large~.icon,html.theme--catppuccin-mocha .control.has-icons-right .input.is-large~.icon,html.theme--catppuccin-mocha .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--catppuccin-mocha .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--catppuccin-mocha .control.has-icons-left .icon,html.theme--catppuccin-mocha .control.has-icons-right .icon{color:#585b70;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--catppuccin-mocha .control.has-icons-left .input,html.theme--catppuccin-mocha .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--catppuccin-mocha .control.has-icons-left .select select{padding-left:2.5em}html.theme--catppuccin-mocha .control.has-icons-left .icon.is-left{left:0}html.theme--catppuccin-mocha .control.has-icons-right .input,html.theme--catppuccin-mocha .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--catppuccin-mocha .control.has-icons-right .select select{padding-right:2.5em}html.theme--catppuccin-mocha .control.has-icons-right .icon.is-right{right:0}html.theme--catppuccin-mocha .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--catppuccin-mocha .control.is-loading.is-small:after,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--catppuccin-mocha .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--catppuccin-mocha .control.is-loading.is-large:after{font-size:1.5rem}html.theme--catppuccin-mocha .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--catppuccin-mocha .breadcrumb a{align-items:center;color:#89b4fa;display:flex;justify-content:center;padding:0 .75em}html.theme--catppuccin-mocha .breadcrumb a:hover{color:#89dceb}html.theme--catppuccin-mocha .breadcrumb li{align-items:center;display:flex}html.theme--catppuccin-mocha .breadcrumb li:first-child a{padding-left:0}html.theme--catppuccin-mocha .breadcrumb li.is-active a{color:#b8c5ef;cursor:default;pointer-events:none}html.theme--catppuccin-mocha .breadcrumb li+li::before{color:#6c7086;content:"\0002f"}html.theme--catppuccin-mocha .breadcrumb ul,html.theme--catppuccin-mocha .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--catppuccin-mocha .breadcrumb .icon:first-child{margin-right:.5em}html.theme--catppuccin-mocha .breadcrumb .icon:last-child{margin-left:.5em}html.theme--catppuccin-mocha .breadcrumb.is-centered ol,html.theme--catppuccin-mocha .breadcrumb.is-centered ul{justify-content:center}html.theme--catppuccin-mocha .breadcrumb.is-right ol,html.theme--catppuccin-mocha .breadcrumb.is-right ul{justify-content:flex-end}html.theme--catppuccin-mocha .breadcrumb.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--catppuccin-mocha .breadcrumb.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .breadcrumb.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--catppuccin-mocha .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--catppuccin-mocha .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--catppuccin-mocha .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--catppuccin-mocha .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#cdd6f4;max-width:100%;position:relative}html.theme--catppuccin-mocha .card-footer:first-child,html.theme--catppuccin-mocha .card-content:first-child,html.theme--catppuccin-mocha .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-mocha .card-footer:last-child,html.theme--catppuccin-mocha .card-content:last-child,html.theme--catppuccin-mocha .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-mocha .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--catppuccin-mocha .card-header-title{align-items:center;color:#b8c5ef;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--catppuccin-mocha .card-header-title.is-centered{justify-content:center}html.theme--catppuccin-mocha .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--catppuccin-mocha .card-image{display:block;position:relative}html.theme--catppuccin-mocha .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--catppuccin-mocha .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--catppuccin-mocha .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--catppuccin-mocha .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--catppuccin-mocha .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--catppuccin-mocha .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--catppuccin-mocha .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-mocha .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--catppuccin-mocha .dropdown.is-active .dropdown-menu,html.theme--catppuccin-mocha .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--catppuccin-mocha .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--catppuccin-mocha .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--catppuccin-mocha .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--catppuccin-mocha .dropdown-content{background-color:#181825;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--catppuccin-mocha .dropdown-item{color:#cdd6f4;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--catppuccin-mocha a.dropdown-item,html.theme--catppuccin-mocha button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--catppuccin-mocha a.dropdown-item:hover,html.theme--catppuccin-mocha button.dropdown-item:hover{background-color:#181825;color:#0a0a0a}html.theme--catppuccin-mocha a.dropdown-item.is-active,html.theme--catppuccin-mocha button.dropdown-item.is-active{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--catppuccin-mocha .level{align-items:center;justify-content:space-between}html.theme--catppuccin-mocha .level code{border-radius:.4em}html.theme--catppuccin-mocha .level img{display:inline-block;vertical-align:top}html.theme--catppuccin-mocha .level.is-mobile{display:flex}html.theme--catppuccin-mocha .level.is-mobile .level-left,html.theme--catppuccin-mocha .level.is-mobile .level-right{display:flex}html.theme--catppuccin-mocha .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--catppuccin-mocha .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--catppuccin-mocha .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .level{display:flex}html.theme--catppuccin-mocha .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--catppuccin-mocha .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--catppuccin-mocha .level-item .title,html.theme--catppuccin-mocha .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--catppuccin-mocha .level-left,html.theme--catppuccin-mocha .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-mocha .level-left .level-item.is-flexible,html.theme--catppuccin-mocha .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .level-left .level-item:not(:last-child),html.theme--catppuccin-mocha .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--catppuccin-mocha .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .level-left{display:flex}}html.theme--catppuccin-mocha .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .level-right{display:flex}}html.theme--catppuccin-mocha .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--catppuccin-mocha .media .content:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-mocha .media .media{border-top:1px solid rgba(88,91,112,0.5);display:flex;padding-top:.75rem}html.theme--catppuccin-mocha .media .media .content:not(:last-child),html.theme--catppuccin-mocha .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--catppuccin-mocha .media .media .media{padding-top:.5rem}html.theme--catppuccin-mocha .media .media .media+.media{margin-top:.5rem}html.theme--catppuccin-mocha .media+.media{border-top:1px solid rgba(88,91,112,0.5);margin-top:1rem;padding-top:1rem}html.theme--catppuccin-mocha .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--catppuccin-mocha .media-left,html.theme--catppuccin-mocha .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--catppuccin-mocha .media-left{margin-right:1rem}html.theme--catppuccin-mocha .media-right{margin-left:1rem}html.theme--catppuccin-mocha .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .media-content{overflow-x:auto}}html.theme--catppuccin-mocha .menu{font-size:1rem}html.theme--catppuccin-mocha .menu.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--catppuccin-mocha .menu.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .menu.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .menu-list{line-height:1.25}html.theme--catppuccin-mocha .menu-list a{border-radius:3px;color:#cdd6f4;display:block;padding:0.5em 0.75em}html.theme--catppuccin-mocha .menu-list a:hover{background-color:#181825;color:#b8c5ef}html.theme--catppuccin-mocha .menu-list a.is-active{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .menu-list li ul{border-left:1px solid #585b70;margin:.75em;padding-left:.75em}html.theme--catppuccin-mocha .menu-label{color:#f7f8fd;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--catppuccin-mocha .menu-label:not(:first-child){margin-top:1em}html.theme--catppuccin-mocha .menu-label:not(:last-child){margin-bottom:1em}html.theme--catppuccin-mocha .message{background-color:#181825;border-radius:.4em;font-size:1rem}html.theme--catppuccin-mocha .message strong{color:currentColor}html.theme--catppuccin-mocha .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--catppuccin-mocha .message.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--catppuccin-mocha .message.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .message.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .message.is-white{background-color:#fff}html.theme--catppuccin-mocha .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .message.is-white .message-body{border-color:#fff}html.theme--catppuccin-mocha .message.is-black{background-color:#fafafa}html.theme--catppuccin-mocha .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .message.is-black .message-body{border-color:#0a0a0a}html.theme--catppuccin-mocha .message.is-light{background-color:#fafafa}html.theme--catppuccin-mocha .message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .message.is-light .message-body{border-color:#f5f5f5}html.theme--catppuccin-mocha .message.is-dark,html.theme--catppuccin-mocha .content kbd.message{background-color:#f9f9fb}html.theme--catppuccin-mocha .message.is-dark .message-header,html.theme--catppuccin-mocha .content kbd.message .message-header{background-color:#313244;color:#fff}html.theme--catppuccin-mocha .message.is-dark .message-body,html.theme--catppuccin-mocha .content kbd.message .message-body{border-color:#313244}html.theme--catppuccin-mocha .message.is-primary,html.theme--catppuccin-mocha .docstring>section>a.message.docs-sourcelink{background-color:#ebf3fe}html.theme--catppuccin-mocha .message.is-primary .message-header,html.theme--catppuccin-mocha .docstring>section>a.message.docs-sourcelink .message-header{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .message.is-primary .message-body,html.theme--catppuccin-mocha .docstring>section>a.message.docs-sourcelink .message-body{border-color:#89b4fa;color:#063c93}html.theme--catppuccin-mocha .message.is-link{background-color:#ebf3fe}html.theme--catppuccin-mocha .message.is-link .message-header{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .message.is-link .message-body{border-color:#89b4fa;color:#063c93}html.theme--catppuccin-mocha .message.is-info{background-color:#effbf9}html.theme--catppuccin-mocha .message.is-info .message-header{background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .message.is-info .message-body{border-color:#94e2d5;color:#207466}html.theme--catppuccin-mocha .message.is-success{background-color:#f0faef}html.theme--catppuccin-mocha .message.is-success .message-header{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .message.is-success .message-body{border-color:#a6e3a1;color:#287222}html.theme--catppuccin-mocha .message.is-warning{background-color:#fef8ec}html.theme--catppuccin-mocha .message.is-warning .message-header{background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .message.is-warning .message-body{border-color:#f9e2af;color:#8a620a}html.theme--catppuccin-mocha .message.is-danger{background-color:#fdedf1}html.theme--catppuccin-mocha .message.is-danger .message-header{background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .message.is-danger .message-body{border-color:#f38ba8;color:#991036}html.theme--catppuccin-mocha .message-header{align-items:center;background-color:#cdd6f4;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--catppuccin-mocha .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--catppuccin-mocha .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--catppuccin-mocha .message-body{border-color:#585b70;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#cdd6f4;padding:1.25em 1.5em}html.theme--catppuccin-mocha .message-body code,html.theme--catppuccin-mocha .message-body pre{background-color:#fff}html.theme--catppuccin-mocha .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--catppuccin-mocha .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--catppuccin-mocha .modal.is-active{display:flex}html.theme--catppuccin-mocha .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--catppuccin-mocha .modal-content,html.theme--catppuccin-mocha .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--catppuccin-mocha .modal-content,html.theme--catppuccin-mocha .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--catppuccin-mocha .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--catppuccin-mocha .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--catppuccin-mocha .modal-card-head,html.theme--catppuccin-mocha .modal-card-foot{align-items:center;background-color:#181825;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--catppuccin-mocha .modal-card-head{border-bottom:1px solid #585b70;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--catppuccin-mocha .modal-card-title{color:#cdd6f4;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--catppuccin-mocha .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #585b70}html.theme--catppuccin-mocha .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--catppuccin-mocha .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#1e1e2e;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--catppuccin-mocha .navbar{background-color:#89b4fa;min-height:4rem;position:relative;z-index:30}html.theme--catppuccin-mocha .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-white .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-white .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-white .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-white .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-white .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-white .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-mocha .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--catppuccin-mocha .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-black .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-black .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-black .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-black .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-black .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-black .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--catppuccin-mocha .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--catppuccin-mocha .navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-light .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-light .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-light .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-light .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-light .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-light .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-mocha .navbar.is-dark,html.theme--catppuccin-mocha .content kbd.navbar{background-color:#313244;color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#262735;color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--catppuccin-mocha .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-burger,html.theme--catppuccin-mocha .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-dark .navbar-start>.navbar-item,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end>.navbar-item,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#262735;color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .content kbd.navbar .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-dark .navbar-end .navbar-link::after,html.theme--catppuccin-mocha .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-mocha .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#262735;color:#fff}html.theme--catppuccin-mocha .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-mocha .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#313244;color:#fff}}html.theme--catppuccin-mocha .navbar.is-primary,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-burger,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-primary .navbar-start>.navbar-item,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end>.navbar-item,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-primary .navbar-end .navbar-link::after,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#89b4fa;color:#fff}}html.theme--catppuccin-mocha .navbar.is-link{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-link .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-link .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-link .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-link .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-link .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-link .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#89b4fa;color:#fff}}html.theme--catppuccin-mocha .navbar.is-info{background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#80ddcd;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-info .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-info .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-info .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-info .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-info .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-info .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-info .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#80ddcd;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-info .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#80ddcd;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#94e2d5;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-mocha .navbar.is-success{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#93dd8d;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-success .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-success .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-success .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-success .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-success .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-success .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-success .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#93dd8d;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-success .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#93dd8d;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-mocha .navbar.is-warning{background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#f7d997;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-warning .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#f7d997;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f7d997;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#f9e2af;color:rgba(0,0,0,0.7)}}html.theme--catppuccin-mocha .navbar.is-danger{background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand>.navbar-item,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#f17497;color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar.is-danger .navbar-start>.navbar-item,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start .navbar-link,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end>.navbar-item,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#f17497;color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-start .navbar-link::after,html.theme--catppuccin-mocha .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f17497;color:#fff}html.theme--catppuccin-mocha .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#f38ba8;color:#fff}}html.theme--catppuccin-mocha .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--catppuccin-mocha .navbar.has-shadow{box-shadow:0 2px 0 0 #181825}html.theme--catppuccin-mocha .navbar.is-fixed-bottom,html.theme--catppuccin-mocha .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-mocha .navbar.is-fixed-bottom{bottom:0}html.theme--catppuccin-mocha .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #181825}html.theme--catppuccin-mocha .navbar.is-fixed-top{top:0}html.theme--catppuccin-mocha html.has-navbar-fixed-top,html.theme--catppuccin-mocha body.has-navbar-fixed-top{padding-top:4rem}html.theme--catppuccin-mocha html.has-navbar-fixed-bottom,html.theme--catppuccin-mocha body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--catppuccin-mocha .navbar-brand,html.theme--catppuccin-mocha .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--catppuccin-mocha .navbar-brand a.navbar-item:focus,html.theme--catppuccin-mocha .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--catppuccin-mocha .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--catppuccin-mocha .navbar-burger{color:#cdd6f4;-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--catppuccin-mocha .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--catppuccin-mocha .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--catppuccin-mocha .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--catppuccin-mocha .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--catppuccin-mocha .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--catppuccin-mocha .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--catppuccin-mocha .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--catppuccin-mocha .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--catppuccin-mocha .navbar-menu{display:none}html.theme--catppuccin-mocha .navbar-item,html.theme--catppuccin-mocha .navbar-link{color:#cdd6f4;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--catppuccin-mocha .navbar-item .icon:only-child,html.theme--catppuccin-mocha .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--catppuccin-mocha a.navbar-item,html.theme--catppuccin-mocha .navbar-link{cursor:pointer}html.theme--catppuccin-mocha a.navbar-item:focus,html.theme--catppuccin-mocha a.navbar-item:focus-within,html.theme--catppuccin-mocha a.navbar-item:hover,html.theme--catppuccin-mocha a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar-link:focus,html.theme--catppuccin-mocha .navbar-link:focus-within,html.theme--catppuccin-mocha .navbar-link:hover,html.theme--catppuccin-mocha .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#89b4fa}html.theme--catppuccin-mocha .navbar-item{flex-grow:0;flex-shrink:0}html.theme--catppuccin-mocha .navbar-item img{max-height:1.75rem}html.theme--catppuccin-mocha .navbar-item.has-dropdown{padding:0}html.theme--catppuccin-mocha .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--catppuccin-mocha .navbar-item.is-tab:focus,html.theme--catppuccin-mocha .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#89b4fa}html.theme--catppuccin-mocha .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#89b4fa;border-bottom-style:solid;border-bottom-width:3px;color:#89b4fa;padding-bottom:calc(0.5rem - 3px)}html.theme--catppuccin-mocha .navbar-content{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--catppuccin-mocha .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--catppuccin-mocha .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--catppuccin-mocha .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--catppuccin-mocha .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--catppuccin-mocha .navbar>.container{display:block}html.theme--catppuccin-mocha .navbar-brand .navbar-item,html.theme--catppuccin-mocha .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--catppuccin-mocha .navbar-link::after{display:none}html.theme--catppuccin-mocha .navbar-menu{background-color:#89b4fa;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--catppuccin-mocha .navbar-menu.is-active{display:block}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-touch,html.theme--catppuccin-mocha .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-touch{bottom:0}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .navbar.is-fixed-top-touch{top:0}html.theme--catppuccin-mocha .navbar.is-fixed-top .navbar-menu,html.theme--catppuccin-mocha .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--catppuccin-mocha html.has-navbar-fixed-top-touch,html.theme--catppuccin-mocha body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--catppuccin-mocha html.has-navbar-fixed-bottom-touch,html.theme--catppuccin-mocha body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .navbar,html.theme--catppuccin-mocha .navbar-menu,html.theme--catppuccin-mocha .navbar-start,html.theme--catppuccin-mocha .navbar-end{align-items:stretch;display:flex}html.theme--catppuccin-mocha .navbar{min-height:4rem}html.theme--catppuccin-mocha .navbar.is-spaced{padding:1rem 2rem}html.theme--catppuccin-mocha .navbar.is-spaced .navbar-start,html.theme--catppuccin-mocha .navbar.is-spaced .navbar-end{align-items:center}html.theme--catppuccin-mocha .navbar.is-spaced a.navbar-item,html.theme--catppuccin-mocha .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--catppuccin-mocha .navbar.is-transparent a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-transparent a.navbar-item:hover,html.theme--catppuccin-mocha .navbar.is-transparent a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-link:focus,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-link:hover,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--catppuccin-mocha .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--catppuccin-mocha .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-mocha .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#7f849c}html.theme--catppuccin-mocha .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#89b4fa}html.theme--catppuccin-mocha .navbar-burger{display:none}html.theme--catppuccin-mocha .navbar-item,html.theme--catppuccin-mocha .navbar-link{align-items:center;display:flex}html.theme--catppuccin-mocha .navbar-item.has-dropdown{align-items:stretch}html.theme--catppuccin-mocha .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--catppuccin-mocha .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--catppuccin-mocha .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--catppuccin-mocha .navbar-item.is-active .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--catppuccin-mocha .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--catppuccin-mocha .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--catppuccin-mocha .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--catppuccin-mocha .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--catppuccin-mocha .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--catppuccin-mocha .navbar-dropdown{background-color:#89b4fa;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--catppuccin-mocha .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--catppuccin-mocha .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--catppuccin-mocha .navbar-dropdown a.navbar-item:focus,html.theme--catppuccin-mocha .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#7f849c}html.theme--catppuccin-mocha .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#89b4fa}.navbar.is-spaced html.theme--catppuccin-mocha .navbar-dropdown,html.theme--catppuccin-mocha .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--catppuccin-mocha .navbar-dropdown.is-right{left:auto;right:0}html.theme--catppuccin-mocha .navbar-divider{display:block}html.theme--catppuccin-mocha .navbar>.container .navbar-brand,html.theme--catppuccin-mocha .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--catppuccin-mocha .navbar>.container .navbar-menu,html.theme--catppuccin-mocha .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-desktop,html.theme--catppuccin-mocha .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--catppuccin-mocha .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .navbar.is-fixed-top-desktop{top:0}html.theme--catppuccin-mocha html.has-navbar-fixed-top-desktop,html.theme--catppuccin-mocha body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--catppuccin-mocha html.has-navbar-fixed-bottom-desktop,html.theme--catppuccin-mocha body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--catppuccin-mocha html.has-spaced-navbar-fixed-top,html.theme--catppuccin-mocha body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--catppuccin-mocha html.has-spaced-navbar-fixed-bottom,html.theme--catppuccin-mocha body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--catppuccin-mocha a.navbar-item.is-active,html.theme--catppuccin-mocha .navbar-link.is-active{color:#89b4fa}html.theme--catppuccin-mocha a.navbar-item.is-active:not(:focus):not(:hover),html.theme--catppuccin-mocha .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--catppuccin-mocha .navbar-item.has-dropdown:focus .navbar-link,html.theme--catppuccin-mocha .navbar-item.has-dropdown:hover .navbar-link,html.theme--catppuccin-mocha .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--catppuccin-mocha .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--catppuccin-mocha .pagination{font-size:1rem;margin:-.25rem}html.theme--catppuccin-mocha .pagination.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--catppuccin-mocha .pagination.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .pagination.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .pagination.is-rounded .pagination-previous,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--catppuccin-mocha .pagination.is-rounded .pagination-next,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--catppuccin-mocha .pagination.is-rounded .pagination-link,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--catppuccin-mocha .pagination,html.theme--catppuccin-mocha .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-link{border-color:#585b70;color:#89b4fa;min-width:2.5em}html.theme--catppuccin-mocha .pagination-previous:hover,html.theme--catppuccin-mocha .pagination-next:hover,html.theme--catppuccin-mocha .pagination-link:hover{border-color:#6c7086;color:#89dceb}html.theme--catppuccin-mocha .pagination-previous:focus,html.theme--catppuccin-mocha .pagination-next:focus,html.theme--catppuccin-mocha .pagination-link:focus{border-color:#6c7086}html.theme--catppuccin-mocha .pagination-previous:active,html.theme--catppuccin-mocha .pagination-next:active,html.theme--catppuccin-mocha .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--catppuccin-mocha .pagination-previous[disabled],html.theme--catppuccin-mocha .pagination-previous.is-disabled,html.theme--catppuccin-mocha .pagination-next[disabled],html.theme--catppuccin-mocha .pagination-next.is-disabled,html.theme--catppuccin-mocha .pagination-link[disabled],html.theme--catppuccin-mocha .pagination-link.is-disabled{background-color:#585b70;border-color:#585b70;box-shadow:none;color:#f7f8fd;opacity:0.5}html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--catppuccin-mocha .pagination-link.is-current{background-color:#89b4fa;border-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .pagination-ellipsis{color:#6c7086;pointer-events:none}html.theme--catppuccin-mocha .pagination-list{flex-wrap:wrap}html.theme--catppuccin-mocha .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .pagination{flex-wrap:wrap}html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--catppuccin-mocha .pagination-previous{order:2}html.theme--catppuccin-mocha .pagination-next{order:3}html.theme--catppuccin-mocha .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--catppuccin-mocha .pagination.is-centered .pagination-previous{order:1}html.theme--catppuccin-mocha .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--catppuccin-mocha .pagination.is-centered .pagination-next{order:3}html.theme--catppuccin-mocha .pagination.is-right .pagination-previous{order:1}html.theme--catppuccin-mocha .pagination.is-right .pagination-next{order:2}html.theme--catppuccin-mocha .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--catppuccin-mocha .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--catppuccin-mocha .panel:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-mocha .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--catppuccin-mocha .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--catppuccin-mocha .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--catppuccin-mocha .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--catppuccin-mocha .panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}html.theme--catppuccin-mocha .panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}html.theme--catppuccin-mocha .panel.is-dark .panel-heading,html.theme--catppuccin-mocha .content kbd.panel .panel-heading{background-color:#313244;color:#fff}html.theme--catppuccin-mocha .panel.is-dark .panel-tabs a.is-active,html.theme--catppuccin-mocha .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#313244}html.theme--catppuccin-mocha .panel.is-dark .panel-block.is-active .panel-icon,html.theme--catppuccin-mocha .content kbd.panel .panel-block.is-active .panel-icon{color:#313244}html.theme--catppuccin-mocha .panel.is-primary .panel-heading,html.theme--catppuccin-mocha .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .panel.is-primary .panel-tabs a.is-active,html.theme--catppuccin-mocha .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#89b4fa}html.theme--catppuccin-mocha .panel.is-primary .panel-block.is-active .panel-icon,html.theme--catppuccin-mocha .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#89b4fa}html.theme--catppuccin-mocha .panel.is-link .panel-heading{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .panel.is-link .panel-tabs a.is-active{border-bottom-color:#89b4fa}html.theme--catppuccin-mocha .panel.is-link .panel-block.is-active .panel-icon{color:#89b4fa}html.theme--catppuccin-mocha .panel.is-info .panel-heading{background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .panel.is-info .panel-tabs a.is-active{border-bottom-color:#94e2d5}html.theme--catppuccin-mocha .panel.is-info .panel-block.is-active .panel-icon{color:#94e2d5}html.theme--catppuccin-mocha .panel.is-success .panel-heading{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .panel.is-success .panel-tabs a.is-active{border-bottom-color:#a6e3a1}html.theme--catppuccin-mocha .panel.is-success .panel-block.is-active .panel-icon{color:#a6e3a1}html.theme--catppuccin-mocha .panel.is-warning .panel-heading{background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#f9e2af}html.theme--catppuccin-mocha .panel.is-warning .panel-block.is-active .panel-icon{color:#f9e2af}html.theme--catppuccin-mocha .panel.is-danger .panel-heading{background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#f38ba8}html.theme--catppuccin-mocha .panel.is-danger .panel-block.is-active .panel-icon{color:#f38ba8}html.theme--catppuccin-mocha .panel-tabs:not(:last-child),html.theme--catppuccin-mocha .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--catppuccin-mocha .panel-heading{background-color:#45475a;border-radius:8px 8px 0 0;color:#b8c5ef;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--catppuccin-mocha .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--catppuccin-mocha .panel-tabs a{border-bottom:1px solid #585b70;margin-bottom:-1px;padding:0.5em}html.theme--catppuccin-mocha .panel-tabs a.is-active{border-bottom-color:#45475a;color:#71a4f9}html.theme--catppuccin-mocha .panel-list a{color:#cdd6f4}html.theme--catppuccin-mocha .panel-list a:hover{color:#89b4fa}html.theme--catppuccin-mocha .panel-block{align-items:center;color:#b8c5ef;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--catppuccin-mocha .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--catppuccin-mocha .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--catppuccin-mocha .panel-block.is-wrapped{flex-wrap:wrap}html.theme--catppuccin-mocha .panel-block.is-active{border-left-color:#89b4fa;color:#71a4f9}html.theme--catppuccin-mocha .panel-block.is-active .panel-icon{color:#89b4fa}html.theme--catppuccin-mocha .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--catppuccin-mocha a.panel-block,html.theme--catppuccin-mocha label.panel-block{cursor:pointer}html.theme--catppuccin-mocha a.panel-block:hover,html.theme--catppuccin-mocha label.panel-block:hover{background-color:#181825}html.theme--catppuccin-mocha .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#f7f8fd;margin-right:.75em}html.theme--catppuccin-mocha .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--catppuccin-mocha .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--catppuccin-mocha .tabs a{align-items:center;border-bottom-color:#585b70;border-bottom-style:solid;border-bottom-width:1px;color:#cdd6f4;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--catppuccin-mocha .tabs a:hover{border-bottom-color:#b8c5ef;color:#b8c5ef}html.theme--catppuccin-mocha .tabs li{display:block}html.theme--catppuccin-mocha .tabs li.is-active a{border-bottom-color:#89b4fa;color:#89b4fa}html.theme--catppuccin-mocha .tabs ul{align-items:center;border-bottom-color:#585b70;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--catppuccin-mocha .tabs ul.is-left{padding-right:0.75em}html.theme--catppuccin-mocha .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--catppuccin-mocha .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--catppuccin-mocha .tabs .icon:first-child{margin-right:.5em}html.theme--catppuccin-mocha .tabs .icon:last-child{margin-left:.5em}html.theme--catppuccin-mocha .tabs.is-centered ul{justify-content:center}html.theme--catppuccin-mocha .tabs.is-right ul{justify-content:flex-end}html.theme--catppuccin-mocha .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--catppuccin-mocha .tabs.is-boxed a:hover{background-color:#181825;border-bottom-color:#585b70}html.theme--catppuccin-mocha .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#585b70;border-bottom-color:rgba(0,0,0,0) !important}html.theme--catppuccin-mocha .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--catppuccin-mocha .tabs.is-toggle a{border-color:#585b70;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--catppuccin-mocha .tabs.is-toggle a:hover{background-color:#181825;border-color:#6c7086;z-index:2}html.theme--catppuccin-mocha .tabs.is-toggle li+li{margin-left:-1px}html.theme--catppuccin-mocha .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--catppuccin-mocha .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--catppuccin-mocha .tabs.is-toggle li.is-active a{background-color:#89b4fa;border-color:#89b4fa;color:#fff;z-index:1}html.theme--catppuccin-mocha .tabs.is-toggle ul{border-bottom:none}html.theme--catppuccin-mocha .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--catppuccin-mocha .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--catppuccin-mocha .tabs.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--catppuccin-mocha .tabs.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .tabs.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--catppuccin-mocha .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .column.is-narrow-mobile{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full-mobile{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half-mobile{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half-mobile{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--catppuccin-mocha .column.is-0-mobile{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0-mobile{margin-left:0%}html.theme--catppuccin-mocha .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3-mobile{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3-mobile{margin-left:25%}html.theme--catppuccin-mocha .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6-mobile{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6-mobile{margin-left:50%}html.theme--catppuccin-mocha .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9-mobile{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9-mobile{margin-left:75%}html.theme--catppuccin-mocha .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12-mobile{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .column.is-narrow,html.theme--catppuccin-mocha .column.is-narrow-tablet{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full,html.theme--catppuccin-mocha .column.is-full-tablet{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters,html.theme--catppuccin-mocha .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds,html.theme--catppuccin-mocha .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half,html.theme--catppuccin-mocha .column.is-half-tablet{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third,html.theme--catppuccin-mocha .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter,html.theme--catppuccin-mocha .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth,html.theme--catppuccin-mocha .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths,html.theme--catppuccin-mocha .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths,html.theme--catppuccin-mocha .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths,html.theme--catppuccin-mocha .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters,html.theme--catppuccin-mocha .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds,html.theme--catppuccin-mocha .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half,html.theme--catppuccin-mocha .column.is-offset-half-tablet{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third,html.theme--catppuccin-mocha .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter,html.theme--catppuccin-mocha .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth,html.theme--catppuccin-mocha .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths,html.theme--catppuccin-mocha .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths,html.theme--catppuccin-mocha .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths,html.theme--catppuccin-mocha .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--catppuccin-mocha .column.is-0,html.theme--catppuccin-mocha .column.is-0-tablet{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0,html.theme--catppuccin-mocha .column.is-offset-0-tablet{margin-left:0%}html.theme--catppuccin-mocha .column.is-1,html.theme--catppuccin-mocha .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1,html.theme--catppuccin-mocha .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2,html.theme--catppuccin-mocha .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2,html.theme--catppuccin-mocha .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3,html.theme--catppuccin-mocha .column.is-3-tablet{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3,html.theme--catppuccin-mocha .column.is-offset-3-tablet{margin-left:25%}html.theme--catppuccin-mocha .column.is-4,html.theme--catppuccin-mocha .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4,html.theme--catppuccin-mocha .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5,html.theme--catppuccin-mocha .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5,html.theme--catppuccin-mocha .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6,html.theme--catppuccin-mocha .column.is-6-tablet{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6,html.theme--catppuccin-mocha .column.is-offset-6-tablet{margin-left:50%}html.theme--catppuccin-mocha .column.is-7,html.theme--catppuccin-mocha .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7,html.theme--catppuccin-mocha .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8,html.theme--catppuccin-mocha .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8,html.theme--catppuccin-mocha .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9,html.theme--catppuccin-mocha .column.is-9-tablet{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9,html.theme--catppuccin-mocha .column.is-offset-9-tablet{margin-left:75%}html.theme--catppuccin-mocha .column.is-10,html.theme--catppuccin-mocha .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10,html.theme--catppuccin-mocha .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11,html.theme--catppuccin-mocha .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11,html.theme--catppuccin-mocha .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12,html.theme--catppuccin-mocha .column.is-12-tablet{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12,html.theme--catppuccin-mocha .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .column.is-narrow-touch{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full-touch{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters-touch{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half-touch{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter-touch{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth-touch{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths-touch{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths-touch{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths-touch{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half-touch{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--catppuccin-mocha .column.is-0-touch{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0-touch{margin-left:0%}html.theme--catppuccin-mocha .column.is-1-touch{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2-touch{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3-touch{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3-touch{margin-left:25%}html.theme--catppuccin-mocha .column.is-4-touch{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5-touch{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6-touch{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6-touch{margin-left:50%}html.theme--catppuccin-mocha .column.is-7-touch{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8-touch{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9-touch{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9-touch{margin-left:75%}html.theme--catppuccin-mocha .column.is-10-touch{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11-touch{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12-touch{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .column.is-narrow-desktop{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full-desktop{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half-desktop{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half-desktop{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--catppuccin-mocha .column.is-0-desktop{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0-desktop{margin-left:0%}html.theme--catppuccin-mocha .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3-desktop{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3-desktop{margin-left:25%}html.theme--catppuccin-mocha .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6-desktop{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6-desktop{margin-left:50%}html.theme--catppuccin-mocha .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9-desktop{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9-desktop{margin-left:75%}html.theme--catppuccin-mocha .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12-desktop{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .column.is-narrow-widescreen{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full-widescreen{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half-widescreen{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half-widescreen{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--catppuccin-mocha .column.is-0-widescreen{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0-widescreen{margin-left:0%}html.theme--catppuccin-mocha .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3-widescreen{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3-widescreen{margin-left:25%}html.theme--catppuccin-mocha .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6-widescreen{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6-widescreen{margin-left:50%}html.theme--catppuccin-mocha .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9-widescreen{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9-widescreen{margin-left:75%}html.theme--catppuccin-mocha .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12-widescreen{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .column.is-narrow-fullhd{flex:none;width:unset}html.theme--catppuccin-mocha .column.is-full-fullhd{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--catppuccin-mocha .column.is-half-fullhd{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--catppuccin-mocha .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--catppuccin-mocha .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--catppuccin-mocha .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--catppuccin-mocha .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--catppuccin-mocha .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--catppuccin-mocha .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--catppuccin-mocha .column.is-offset-half-fullhd{margin-left:50%}html.theme--catppuccin-mocha .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--catppuccin-mocha .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--catppuccin-mocha .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--catppuccin-mocha .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--catppuccin-mocha .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--catppuccin-mocha .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--catppuccin-mocha .column.is-0-fullhd{flex:none;width:0%}html.theme--catppuccin-mocha .column.is-offset-0-fullhd{margin-left:0%}html.theme--catppuccin-mocha .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--catppuccin-mocha .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--catppuccin-mocha .column.is-3-fullhd{flex:none;width:25%}html.theme--catppuccin-mocha .column.is-offset-3-fullhd{margin-left:25%}html.theme--catppuccin-mocha .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--catppuccin-mocha .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--catppuccin-mocha .column.is-6-fullhd{flex:none;width:50%}html.theme--catppuccin-mocha .column.is-offset-6-fullhd{margin-left:50%}html.theme--catppuccin-mocha .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--catppuccin-mocha .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--catppuccin-mocha .column.is-9-fullhd{flex:none;width:75%}html.theme--catppuccin-mocha .column.is-offset-9-fullhd{margin-left:75%}html.theme--catppuccin-mocha .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--catppuccin-mocha .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--catppuccin-mocha .column.is-12-fullhd{flex:none;width:100%}html.theme--catppuccin-mocha .column.is-offset-12-fullhd{margin-left:100%}}html.theme--catppuccin-mocha .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-mocha .columns:last-child{margin-bottom:-.75rem}html.theme--catppuccin-mocha .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--catppuccin-mocha .columns.is-centered{justify-content:center}html.theme--catppuccin-mocha .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--catppuccin-mocha .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--catppuccin-mocha .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--catppuccin-mocha .columns.is-gapless:last-child{margin-bottom:0}html.theme--catppuccin-mocha .columns.is-mobile{display:flex}html.theme--catppuccin-mocha .columns.is-multiline{flex-wrap:wrap}html.theme--catppuccin-mocha .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-desktop{display:flex}}html.theme--catppuccin-mocha .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--catppuccin-mocha .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--catppuccin-mocha .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--catppuccin-mocha .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--catppuccin-mocha .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--catppuccin-mocha .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--catppuccin-mocha .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--catppuccin-mocha .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--catppuccin-mocha .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--catppuccin-mocha .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--catppuccin-mocha .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--catppuccin-mocha .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--catppuccin-mocha .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--catppuccin-mocha .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--catppuccin-mocha .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--catppuccin-mocha .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--catppuccin-mocha .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--catppuccin-mocha .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--catppuccin-mocha .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--catppuccin-mocha .tile.is-child{margin:0 !important}html.theme--catppuccin-mocha .tile.is-parent{padding:.75rem}html.theme--catppuccin-mocha .tile.is-vertical{flex-direction:column}html.theme--catppuccin-mocha .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .tile:not(.is-child){display:flex}html.theme--catppuccin-mocha .tile.is-1{flex:none;width:8.33333337%}html.theme--catppuccin-mocha .tile.is-2{flex:none;width:16.66666674%}html.theme--catppuccin-mocha .tile.is-3{flex:none;width:25%}html.theme--catppuccin-mocha .tile.is-4{flex:none;width:33.33333337%}html.theme--catppuccin-mocha .tile.is-5{flex:none;width:41.66666674%}html.theme--catppuccin-mocha .tile.is-6{flex:none;width:50%}html.theme--catppuccin-mocha .tile.is-7{flex:none;width:58.33333337%}html.theme--catppuccin-mocha .tile.is-8{flex:none;width:66.66666674%}html.theme--catppuccin-mocha .tile.is-9{flex:none;width:75%}html.theme--catppuccin-mocha .tile.is-10{flex:none;width:83.33333337%}html.theme--catppuccin-mocha .tile.is-11{flex:none;width:91.66666674%}html.theme--catppuccin-mocha .tile.is-12{flex:none;width:100%}}html.theme--catppuccin-mocha .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--catppuccin-mocha .hero .navbar{background:none}html.theme--catppuccin-mocha .hero .tabs ul{border-bottom:none}html.theme--catppuccin-mocha .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-white strong{color:inherit}html.theme--catppuccin-mocha .hero.is-white .title{color:#0a0a0a}html.theme--catppuccin-mocha .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--catppuccin-mocha .hero.is-white .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-white .navbar-menu{background-color:#fff}}html.theme--catppuccin-mocha .hero.is-white .navbar-item,html.theme--catppuccin-mocha .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--catppuccin-mocha .hero.is-white a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-white a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-white .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--catppuccin-mocha .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--catppuccin-mocha .hero.is-white .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--catppuccin-mocha .hero.is-white .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--catppuccin-mocha .hero.is-white .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-white .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-white .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--catppuccin-mocha .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--catppuccin-mocha .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-black strong{color:inherit}html.theme--catppuccin-mocha .hero.is-black .title{color:#fff}html.theme--catppuccin-mocha .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-mocha .hero.is-black .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--catppuccin-mocha .hero.is-black .navbar-item,html.theme--catppuccin-mocha .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-mocha .hero.is-black a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-black a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-black .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--catppuccin-mocha .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-mocha .hero.is-black .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--catppuccin-mocha .hero.is-black .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--catppuccin-mocha .hero.is-black .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-black .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-black .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--catppuccin-mocha .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--catppuccin-mocha .hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-light strong{color:inherit}html.theme--catppuccin-mocha .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-mocha .hero.is-light .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-light .navbar-menu{background-color:#f5f5f5}}html.theme--catppuccin-mocha .hero.is-light .navbar-item,html.theme--catppuccin-mocha .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-light a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-light a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-light .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-mocha .hero.is-light .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}html.theme--catppuccin-mocha .hero.is-light .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-light .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-light .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-light .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .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}html.theme--catppuccin-mocha .hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}html.theme--catppuccin-mocha .hero.is-dark,html.theme--catppuccin-mocha .content kbd.hero{background-color:#313244;color:#fff}html.theme--catppuccin-mocha .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-dark strong,html.theme--catppuccin-mocha .content kbd.hero strong{color:inherit}html.theme--catppuccin-mocha .hero.is-dark .title,html.theme--catppuccin-mocha .content kbd.hero .title{color:#fff}html.theme--catppuccin-mocha .hero.is-dark .subtitle,html.theme--catppuccin-mocha .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-mocha .hero.is-dark .subtitle a:not(.button),html.theme--catppuccin-mocha .content kbd.hero .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-dark .subtitle strong,html.theme--catppuccin-mocha .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-dark .navbar-menu,html.theme--catppuccin-mocha .content kbd.hero .navbar-menu{background-color:#313244}}html.theme--catppuccin-mocha .hero.is-dark .navbar-item,html.theme--catppuccin-mocha .content kbd.hero .navbar-item,html.theme--catppuccin-mocha .hero.is-dark .navbar-link,html.theme--catppuccin-mocha .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-mocha .hero.is-dark a.navbar-item:hover,html.theme--catppuccin-mocha .content kbd.hero a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-dark a.navbar-item.is-active,html.theme--catppuccin-mocha .content kbd.hero a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-dark .navbar-link:hover,html.theme--catppuccin-mocha .content kbd.hero .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-dark .navbar-link.is-active,html.theme--catppuccin-mocha .content kbd.hero .navbar-link.is-active{background-color:#262735;color:#fff}html.theme--catppuccin-mocha .hero.is-dark .tabs a,html.theme--catppuccin-mocha .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-mocha .hero.is-dark .tabs a:hover,html.theme--catppuccin-mocha .content kbd.hero .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-dark .tabs li.is-active a,html.theme--catppuccin-mocha .content kbd.hero .tabs li.is-active a{color:#313244 !important;opacity:1}html.theme--catppuccin-mocha .hero.is-dark .tabs.is-boxed a,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-dark .tabs.is-toggle a,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--catppuccin-mocha .hero.is-dark .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-dark .tabs.is-toggle a:hover,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#313244}html.theme--catppuccin-mocha .hero.is-dark.is-bold,html.theme--catppuccin-mocha .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #181c2a 0%, #313244 71%, #3c3856 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-dark.is-bold .navbar-menu,html.theme--catppuccin-mocha .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #181c2a 0%, #313244 71%, #3c3856 100%)}}html.theme--catppuccin-mocha .hero.is-primary,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-primary strong,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--catppuccin-mocha .hero.is-primary .title,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--catppuccin-mocha .hero.is-primary .subtitle,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-mocha .hero.is-primary .subtitle a:not(.button),html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-primary .subtitle strong,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-primary .navbar-menu,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#89b4fa}}html.theme--catppuccin-mocha .hero.is-primary .navbar-item,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--catppuccin-mocha .hero.is-primary .navbar-link,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-mocha .hero.is-primary a.navbar-item:hover,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-primary a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-primary .navbar-link:hover,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-primary .navbar-link.is-active,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .hero.is-primary .tabs a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-mocha .hero.is-primary .tabs a:hover,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-primary .tabs li.is-active a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#89b4fa !important;opacity:1}html.theme--catppuccin-mocha .hero.is-primary .tabs.is-boxed a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-primary .tabs.is-toggle a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--catppuccin-mocha .hero.is-primary .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-primary .tabs.is-toggle a:hover,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .hero.is-primary.is-bold,html.theme--catppuccin-mocha .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #51b0ff 0%, #89b4fa 71%, #9fb3fd 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-primary.is-bold .navbar-menu,html.theme--catppuccin-mocha .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #51b0ff 0%, #89b4fa 71%, #9fb3fd 100%)}}html.theme--catppuccin-mocha .hero.is-link{background-color:#89b4fa;color:#fff}html.theme--catppuccin-mocha .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-link strong{color:inherit}html.theme--catppuccin-mocha .hero.is-link .title{color:#fff}html.theme--catppuccin-mocha .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-mocha .hero.is-link .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-link .navbar-menu{background-color:#89b4fa}}html.theme--catppuccin-mocha .hero.is-link .navbar-item,html.theme--catppuccin-mocha .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-mocha .hero.is-link a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-link a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-link .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-link .navbar-link.is-active{background-color:#71a4f9;color:#fff}html.theme--catppuccin-mocha .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-mocha .hero.is-link .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-link .tabs li.is-active a{color:#89b4fa !important;opacity:1}html.theme--catppuccin-mocha .hero.is-link .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--catppuccin-mocha .hero.is-link .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-link .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-link .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#89b4fa}html.theme--catppuccin-mocha .hero.is-link.is-bold{background-image:linear-gradient(141deg, #51b0ff 0%, #89b4fa 71%, #9fb3fd 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #51b0ff 0%, #89b4fa 71%, #9fb3fd 100%)}}html.theme--catppuccin-mocha .hero.is-info{background-color:#94e2d5;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-info strong{color:inherit}html.theme--catppuccin-mocha .hero.is-info .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-info .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-mocha .hero.is-info .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-info .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-info .navbar-menu{background-color:#94e2d5}}html.theme--catppuccin-mocha .hero.is-info .navbar-item,html.theme--catppuccin-mocha .hero.is-info .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-info a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-info a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-info .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-info .navbar-link.is-active{background-color:#80ddcd;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-info .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-mocha .hero.is-info .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-info .tabs li.is-active a{color:#94e2d5 !important;opacity:1}html.theme--catppuccin-mocha .hero.is-info .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-info .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-info .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-info .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-info .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-info .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:#94e2d5}html.theme--catppuccin-mocha .hero.is-info.is-bold{background-image:linear-gradient(141deg, #63e0b6 0%, #94e2d5 71%, #a5eaea 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #63e0b6 0%, #94e2d5 71%, #a5eaea 100%)}}html.theme--catppuccin-mocha .hero.is-success{background-color:#a6e3a1;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-success strong{color:inherit}html.theme--catppuccin-mocha .hero.is-success .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-success .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-mocha .hero.is-success .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-success .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-success .navbar-menu{background-color:#a6e3a1}}html.theme--catppuccin-mocha .hero.is-success .navbar-item,html.theme--catppuccin-mocha .hero.is-success .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-success a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-success a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-success .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-success .navbar-link.is-active{background-color:#93dd8d;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-success .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-mocha .hero.is-success .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-success .tabs li.is-active a{color:#a6e3a1 !important;opacity:1}html.theme--catppuccin-mocha .hero.is-success .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-success .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-success .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-success .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-success .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-success .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:#a6e3a1}html.theme--catppuccin-mocha .hero.is-success.is-bold{background-image:linear-gradient(141deg, #8ce071 0%, #a6e3a1 71%, #b2ebb7 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #8ce071 0%, #a6e3a1 71%, #b2ebb7 100%)}}html.theme--catppuccin-mocha .hero.is-warning{background-color:#f9e2af;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-warning strong{color:inherit}html.theme--catppuccin-mocha .hero.is-warning .title{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}html.theme--catppuccin-mocha .hero.is-warning .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-warning .navbar-menu{background-color:#f9e2af}}html.theme--catppuccin-mocha .hero.is-warning .navbar-item,html.theme--catppuccin-mocha .hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-warning a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-warning a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-warning .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-warning .navbar-link.is-active{background-color:#f7d997;color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--catppuccin-mocha .hero.is-warning .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-warning .tabs li.is-active a{color:#f9e2af !important;opacity:1}html.theme--catppuccin-mocha .hero.is-warning .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--catppuccin-mocha .hero.is-warning .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .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:#f9e2af}html.theme--catppuccin-mocha .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #fcbd79 0%, #f9e2af 71%, #fcf4c5 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #fcbd79 0%, #f9e2af 71%, #fcf4c5 100%)}}html.theme--catppuccin-mocha .hero.is-danger{background-color:#f38ba8;color:#fff}html.theme--catppuccin-mocha .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--catppuccin-mocha .hero.is-danger strong{color:inherit}html.theme--catppuccin-mocha .hero.is-danger .title{color:#fff}html.theme--catppuccin-mocha .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--catppuccin-mocha .hero.is-danger .subtitle a:not(.button),html.theme--catppuccin-mocha .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .hero.is-danger .navbar-menu{background-color:#f38ba8}}html.theme--catppuccin-mocha .hero.is-danger .navbar-item,html.theme--catppuccin-mocha .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--catppuccin-mocha .hero.is-danger a.navbar-item:hover,html.theme--catppuccin-mocha .hero.is-danger a.navbar-item.is-active,html.theme--catppuccin-mocha .hero.is-danger .navbar-link:hover,html.theme--catppuccin-mocha .hero.is-danger .navbar-link.is-active{background-color:#f17497;color:#fff}html.theme--catppuccin-mocha .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--catppuccin-mocha .hero.is-danger .tabs a:hover{opacity:1}html.theme--catppuccin-mocha .hero.is-danger .tabs li.is-active a{color:#f38ba8 !important;opacity:1}html.theme--catppuccin-mocha .hero.is-danger .tabs.is-boxed a,html.theme--catppuccin-mocha .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--catppuccin-mocha .hero.is-danger .tabs.is-boxed a:hover,html.theme--catppuccin-mocha .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--catppuccin-mocha .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--catppuccin-mocha .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--catppuccin-mocha .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--catppuccin-mocha .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#f38ba8}html.theme--catppuccin-mocha .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #f7549d 0%, #f38ba8 71%, #f8a0a9 100%)}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #f7549d 0%, #f38ba8 71%, #f8a0a9 100%)}}html.theme--catppuccin-mocha .hero.is-small .hero-body,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--catppuccin-mocha .hero.is-halfheight .hero-body,html.theme--catppuccin-mocha .hero.is-fullheight .hero-body,html.theme--catppuccin-mocha .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--catppuccin-mocha .hero.is-halfheight .hero-body>.container,html.theme--catppuccin-mocha .hero.is-fullheight .hero-body>.container,html.theme--catppuccin-mocha .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--catppuccin-mocha .hero.is-halfheight{min-height:50vh}html.theme--catppuccin-mocha .hero.is-fullheight{min-height:100vh}html.theme--catppuccin-mocha .hero-video{overflow:hidden}html.theme--catppuccin-mocha .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--catppuccin-mocha .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero-video{display:none}}html.theme--catppuccin-mocha .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--catppuccin-mocha .hero-buttons .button{display:flex}html.theme--catppuccin-mocha .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .hero-buttons{display:flex;justify-content:center}html.theme--catppuccin-mocha .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--catppuccin-mocha .hero-head,html.theme--catppuccin-mocha .hero-foot{flex-grow:0;flex-shrink:0}html.theme--catppuccin-mocha .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--catppuccin-mocha .hero-body{padding:3rem 3rem}}html.theme--catppuccin-mocha .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha .section{padding:3rem 3rem}html.theme--catppuccin-mocha .section.is-medium{padding:9rem 4.5rem}html.theme--catppuccin-mocha .section.is-large{padding:18rem 6rem}}html.theme--catppuccin-mocha .footer{background-color:#181825;padding:3rem 1.5rem 6rem}html.theme--catppuccin-mocha h1 .docs-heading-anchor,html.theme--catppuccin-mocha h1 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h1 .docs-heading-anchor:visited,html.theme--catppuccin-mocha h2 .docs-heading-anchor,html.theme--catppuccin-mocha h2 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h2 .docs-heading-anchor:visited,html.theme--catppuccin-mocha h3 .docs-heading-anchor,html.theme--catppuccin-mocha h3 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h3 .docs-heading-anchor:visited,html.theme--catppuccin-mocha h4 .docs-heading-anchor,html.theme--catppuccin-mocha h4 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h4 .docs-heading-anchor:visited,html.theme--catppuccin-mocha h5 .docs-heading-anchor,html.theme--catppuccin-mocha h5 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h5 .docs-heading-anchor:visited,html.theme--catppuccin-mocha h6 .docs-heading-anchor,html.theme--catppuccin-mocha h6 .docs-heading-anchor:hover,html.theme--catppuccin-mocha h6 .docs-heading-anchor:visited{color:#cdd6f4}html.theme--catppuccin-mocha h1 .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h2 .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h3 .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h4 .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h5 .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--catppuccin-mocha h1 .docs-heading-anchor-permalink::before,html.theme--catppuccin-mocha h2 .docs-heading-anchor-permalink::before,html.theme--catppuccin-mocha h3 .docs-heading-anchor-permalink::before,html.theme--catppuccin-mocha h4 .docs-heading-anchor-permalink::before,html.theme--catppuccin-mocha h5 .docs-heading-anchor-permalink::before,html.theme--catppuccin-mocha h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--catppuccin-mocha h1:hover .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h2:hover .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h3:hover .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h4:hover .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h5:hover .docs-heading-anchor-permalink,html.theme--catppuccin-mocha h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--catppuccin-mocha .docs-light-only{display:none !important}html.theme--catppuccin-mocha pre{position:relative;overflow:hidden}html.theme--catppuccin-mocha pre code,html.theme--catppuccin-mocha pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--catppuccin-mocha pre code:first-of-type,html.theme--catppuccin-mocha pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--catppuccin-mocha pre code:last-of-type,html.theme--catppuccin-mocha pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--catppuccin-mocha 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:#cdd6f4;cursor:pointer;text-align:center}html.theme--catppuccin-mocha pre .copy-button:focus,html.theme--catppuccin-mocha pre .copy-button:hover{opacity:1;background:rgba(205,214,244,0.1);color:#89b4fa}html.theme--catppuccin-mocha pre .copy-button.success{color:#a6e3a1;opacity:1}html.theme--catppuccin-mocha pre .copy-button.error{color:#f38ba8;opacity:1}html.theme--catppuccin-mocha pre:hover .copy-button{opacity:1}html.theme--catppuccin-mocha .admonition{background-color:#181825;border-style:solid;border-width:2px;border-color:#bac2de;border-radius:4px;font-size:1rem}html.theme--catppuccin-mocha .admonition strong{color:currentColor}html.theme--catppuccin-mocha .admonition.is-small,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--catppuccin-mocha .admonition.is-medium{font-size:1.25rem}html.theme--catppuccin-mocha .admonition.is-large{font-size:1.5rem}html.theme--catppuccin-mocha .admonition.is-default{background-color:#181825;border-color:#bac2de}html.theme--catppuccin-mocha .admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#bac2de}html.theme--catppuccin-mocha .admonition.is-default>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-info{background-color:#181825;border-color:#94e2d5}html.theme--catppuccin-mocha .admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#94e2d5}html.theme--catppuccin-mocha .admonition.is-info>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-success{background-color:#181825;border-color:#a6e3a1}html.theme--catppuccin-mocha .admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#a6e3a1}html.theme--catppuccin-mocha .admonition.is-success>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-warning{background-color:#181825;border-color:#f9e2af}html.theme--catppuccin-mocha .admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#f9e2af}html.theme--catppuccin-mocha .admonition.is-warning>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-danger{background-color:#181825;border-color:#f38ba8}html.theme--catppuccin-mocha .admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#f38ba8}html.theme--catppuccin-mocha .admonition.is-danger>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-compat{background-color:#181825;border-color:#89dceb}html.theme--catppuccin-mocha .admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#89dceb}html.theme--catppuccin-mocha .admonition.is-compat>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition.is-todo{background-color:#181825;border-color:#cba6f7}html.theme--catppuccin-mocha .admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#cba6f7}html.theme--catppuccin-mocha .admonition.is-todo>.admonition-body{color:#cdd6f4}html.theme--catppuccin-mocha .admonition-header{color:#bac2de;background-color:rgba(0,0,0,0);align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--catppuccin-mocha .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--catppuccin-mocha details.admonition.is-details>.admonition-header{list-style:none}html.theme--catppuccin-mocha details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--catppuccin-mocha details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--catppuccin-mocha .admonition-body{color:#cdd6f4;padding:0.5rem .75rem}html.theme--catppuccin-mocha .admonition-body pre{background-color:#181825}html.theme--catppuccin-mocha .admonition-body code{background-color:#181825}html.theme--catppuccin-mocha .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:2px solid #585b70;border-radius:4px;box-shadow:none;max-width:100%}html.theme--catppuccin-mocha .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#181825;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #585b70;overflow:auto}html.theme--catppuccin-mocha .docstring>header code{background-color:transparent}html.theme--catppuccin-mocha .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--catppuccin-mocha .docstring>header .docstring-binding{margin-right:0.3em}html.theme--catppuccin-mocha .docstring>header .docstring-category{margin-left:0.3em}html.theme--catppuccin-mocha .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #585b70}html.theme--catppuccin-mocha .docstring>section:last-child{border-bottom:none}html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--catppuccin-mocha .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-mocha .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--catppuccin-mocha .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--catppuccin-mocha .documenter-example-output{background-color:#1e1e2e}html.theme--catppuccin-mocha .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:#181825;color:#cdd6f4;border-bottom:3px solid rgba(0,0,0,0);padding:10px 35px;text-align:center;font-size:15px}html.theme--catppuccin-mocha .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--catppuccin-mocha .outdated-warning-overlay a{color:#89b4fa}html.theme--catppuccin-mocha .outdated-warning-overlay a:hover{color:#89dceb}html.theme--catppuccin-mocha .content pre{border:2px solid #585b70;border-radius:4px}html.theme--catppuccin-mocha .content code{font-weight:inherit}html.theme--catppuccin-mocha .content a code{color:#89b4fa}html.theme--catppuccin-mocha .content a:hover code{color:#89dceb}html.theme--catppuccin-mocha .content h1 code,html.theme--catppuccin-mocha .content h2 code,html.theme--catppuccin-mocha .content h3 code,html.theme--catppuccin-mocha .content h4 code,html.theme--catppuccin-mocha .content h5 code,html.theme--catppuccin-mocha .content h6 code{color:#cdd6f4}html.theme--catppuccin-mocha .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--catppuccin-mocha .content blockquote>ul:first-child,html.theme--catppuccin-mocha .content blockquote>ol:first-child,html.theme--catppuccin-mocha .content .admonition-body>ul:first-child,html.theme--catppuccin-mocha .content .admonition-body>ol:first-child{margin-top:0}html.theme--catppuccin-mocha pre,html.theme--catppuccin-mocha code{font-variant-ligatures:no-contextual}html.theme--catppuccin-mocha .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--catppuccin-mocha .breadcrumb a.is-disabled,html.theme--catppuccin-mocha .breadcrumb a.is-disabled:hover{color:#b8c5ef}html.theme--catppuccin-mocha .hljs{background:initial !important}html.theme--catppuccin-mocha .katex .katex-mathml{top:0;right:0}html.theme--catppuccin-mocha .katex-display,html.theme--catppuccin-mocha mjx-container,html.theme--catppuccin-mocha .MathJax_Display{margin:0.5em 0 !important}html.theme--catppuccin-mocha html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--catppuccin-mocha li.no-marker{list-style:none}html.theme--catppuccin-mocha #documenter .docs-main>article{overflow-wrap:break-word}html.theme--catppuccin-mocha #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha #documenter .docs-main{width:100%}html.theme--catppuccin-mocha #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--catppuccin-mocha #documenter .docs-main>header,html.theme--catppuccin-mocha #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar{background-color:#1e1e2e;border-bottom:1px solid #585b70;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1;overflow-x:hidden}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--catppuccin-mocha #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha #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--catppuccin-mocha #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--catppuccin-mocha #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--catppuccin-mocha #documenter .docs-main section.footnotes{border-top:1px solid #585b70}html.theme--catppuccin-mocha #documenter .docs-main section.footnotes li .tag:first-child,html.theme--catppuccin-mocha #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--catppuccin-mocha #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--catppuccin-mocha .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--catppuccin-mocha #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #585b70;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--catppuccin-mocha #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--catppuccin-mocha #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--catppuccin-mocha #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--catppuccin-mocha #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--catppuccin-mocha #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--catppuccin-mocha #documenter .docs-sidebar{display:flex;flex-direction:column;color:#cdd6f4;background-color:#181825;border-right:1px solid #585b70;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--catppuccin-mocha #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--catppuccin-mocha #documenter .docs-sidebar{left:0;top:0}}html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--catppuccin-mocha #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--catppuccin-mocha #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-package-name a,html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-package-name a:hover{color:#cdd6f4}html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #585b70;display:none;padding:0.5rem}html.theme--catppuccin-mocha #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #585b70;padding-bottom:1.5rem}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #585b70}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--catppuccin-mocha #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--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#cdd6f4;background:#181825}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#cdd6f4;background-color:#202031}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #585b70;border-bottom:1px solid #585b70;background-color:#11111b}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#11111b;color:#cdd6f4}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#202031;color:#cdd6f4}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #585b70}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--catppuccin-mocha #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--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#28283e}html.theme--catppuccin-mocha #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#383856}}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--catppuccin-mocha #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--catppuccin-mocha #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#28283e}html.theme--catppuccin-mocha #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#383856}}html.theme--catppuccin-mocha 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--catppuccin-mocha .search-min-width-50{min-width:50%}html.theme--catppuccin-mocha .search-min-height-100{min-height:100%}html.theme--catppuccin-mocha .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--catppuccin-mocha .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-mocha .search-result-link:hover,html.theme--catppuccin-mocha .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--catppuccin-mocha .search-result-link .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-mocha .property-search-result-badge,html.theme--catppuccin-mocha .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--catppuccin-mocha .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link:hover .search-filter,html.theme--catppuccin-mocha .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--catppuccin-mocha .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--catppuccin-mocha .search-filter:hover,html.theme--catppuccin-mocha .search-filter:focus{color:#333}html.theme--catppuccin-mocha .search-filter-selected{color:#313244;background-color:#b4befe}html.theme--catppuccin-mocha .search-filter-selected:hover,html.theme--catppuccin-mocha .search-filter-selected:focus{color:#313244}html.theme--catppuccin-mocha .search-result-highlight{background-color:#ffdd57;color:black}html.theme--catppuccin-mocha .search-divider{border-bottom:1px solid #585b70}html.theme--catppuccin-mocha .search-result-title{width:85%;color:#f5f5f5}html.theme--catppuccin-mocha .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--catppuccin-mocha #search-modal .modal-card-body::-webkit-scrollbar,html.theme--catppuccin-mocha #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--catppuccin-mocha #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--catppuccin-mocha #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--catppuccin-mocha #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--catppuccin-mocha #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--catppuccin-mocha .w-100{width:100%}html.theme--catppuccin-mocha .gap-2{gap:0.5rem}html.theme--catppuccin-mocha .gap-4{gap:1rem}html.theme--catppuccin-mocha .gap-8{gap:2rem}html.theme--catppuccin-mocha{background-color:#1e1e2e;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--catppuccin-mocha a{transition:all 200ms ease}html.theme--catppuccin-mocha .label{color:#cdd6f4}html.theme--catppuccin-mocha .button,html.theme--catppuccin-mocha .control.has-icons-left .icon,html.theme--catppuccin-mocha .control.has-icons-right .icon,html.theme--catppuccin-mocha .input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha .pagination-ellipsis,html.theme--catppuccin-mocha .pagination-link,html.theme--catppuccin-mocha .pagination-next,html.theme--catppuccin-mocha .pagination-previous,html.theme--catppuccin-mocha .select,html.theme--catppuccin-mocha .select select,html.theme--catppuccin-mocha .textarea{height:2.5em;color:#cdd6f4}html.theme--catppuccin-mocha .input,html.theme--catppuccin-mocha #documenter .docs-sidebar form.docs-search>input,html.theme--catppuccin-mocha .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em;color:#cdd6f4}html.theme--catppuccin-mocha .select:after,html.theme--catppuccin-mocha .select select{border-width:1px}html.theme--catppuccin-mocha .menu-list a{transition:all 300ms ease}html.theme--catppuccin-mocha .modal-card-foot,html.theme--catppuccin-mocha .modal-card-head{border-color:#585b70}html.theme--catppuccin-mocha .navbar{border-radius:.4em}html.theme--catppuccin-mocha .navbar.is-transparent{background:none}html.theme--catppuccin-mocha .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--catppuccin-mocha .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#89b4fa}@media screen and (max-width: 1055px){html.theme--catppuccin-mocha .navbar .navbar-menu{background-color:#89b4fa;border-radius:0 0 .4em .4em}}html.theme--catppuccin-mocha .docstring>section>a.docs-sourcelink:not(body){color:#313244}html.theme--catppuccin-mocha .tag.is-link:not(body),html.theme--catppuccin-mocha .docstring>section>a.is-link.docs-sourcelink:not(body),html.theme--catppuccin-mocha .content kbd.is-link:not(body){color:#313244}html.theme--catppuccin-mocha .ansi span.sgr1{font-weight:bolder}html.theme--catppuccin-mocha .ansi span.sgr2{font-weight:lighter}html.theme--catppuccin-mocha .ansi span.sgr3{font-style:italic}html.theme--catppuccin-mocha .ansi span.sgr4{text-decoration:underline}html.theme--catppuccin-mocha .ansi span.sgr7{color:#1e1e2e;background-color:#cdd6f4}html.theme--catppuccin-mocha .ansi span.sgr8{color:transparent}html.theme--catppuccin-mocha .ansi span.sgr8 span{color:transparent}html.theme--catppuccin-mocha .ansi span.sgr9{text-decoration:line-through}html.theme--catppuccin-mocha .ansi span.sgr30{color:#45475a}html.theme--catppuccin-mocha .ansi span.sgr31{color:#f38ba8}html.theme--catppuccin-mocha .ansi span.sgr32{color:#a6e3a1}html.theme--catppuccin-mocha .ansi span.sgr33{color:#f9e2af}html.theme--catppuccin-mocha .ansi span.sgr34{color:#89b4fa}html.theme--catppuccin-mocha .ansi span.sgr35{color:#f5c2e7}html.theme--catppuccin-mocha .ansi span.sgr36{color:#94e2d5}html.theme--catppuccin-mocha .ansi span.sgr37{color:#bac2de}html.theme--catppuccin-mocha .ansi span.sgr40{background-color:#45475a}html.theme--catppuccin-mocha .ansi span.sgr41{background-color:#f38ba8}html.theme--catppuccin-mocha .ansi span.sgr42{background-color:#a6e3a1}html.theme--catppuccin-mocha .ansi span.sgr43{background-color:#f9e2af}html.theme--catppuccin-mocha .ansi span.sgr44{background-color:#89b4fa}html.theme--catppuccin-mocha .ansi span.sgr45{background-color:#f5c2e7}html.theme--catppuccin-mocha .ansi span.sgr46{background-color:#94e2d5}html.theme--catppuccin-mocha .ansi span.sgr47{background-color:#bac2de}html.theme--catppuccin-mocha .ansi span.sgr90{color:#585b70}html.theme--catppuccin-mocha .ansi span.sgr91{color:#f38ba8}html.theme--catppuccin-mocha .ansi span.sgr92{color:#a6e3a1}html.theme--catppuccin-mocha .ansi span.sgr93{color:#f9e2af}html.theme--catppuccin-mocha .ansi span.sgr94{color:#89b4fa}html.theme--catppuccin-mocha .ansi span.sgr95{color:#f5c2e7}html.theme--catppuccin-mocha .ansi span.sgr96{color:#94e2d5}html.theme--catppuccin-mocha .ansi span.sgr97{color:#a6adc8}html.theme--catppuccin-mocha .ansi span.sgr100{background-color:#585b70}html.theme--catppuccin-mocha .ansi span.sgr101{background-color:#f38ba8}html.theme--catppuccin-mocha .ansi span.sgr102{background-color:#a6e3a1}html.theme--catppuccin-mocha .ansi span.sgr103{background-color:#f9e2af}html.theme--catppuccin-mocha .ansi span.sgr104{background-color:#89b4fa}html.theme--catppuccin-mocha .ansi span.sgr105{background-color:#f5c2e7}html.theme--catppuccin-mocha .ansi span.sgr106{background-color:#94e2d5}html.theme--catppuccin-mocha .ansi span.sgr107{background-color:#a6adc8}html.theme--catppuccin-mocha code.language-julia-repl>span.hljs-meta{color:#a6e3a1;font-weight:bolder}html.theme--catppuccin-mocha code .hljs{color:#cdd6f4;background:#1e1e2e}html.theme--catppuccin-mocha code .hljs-keyword{color:#cba6f7}html.theme--catppuccin-mocha code .hljs-built_in{color:#f38ba8}html.theme--catppuccin-mocha code .hljs-type{color:#f9e2af}html.theme--catppuccin-mocha code .hljs-literal{color:#fab387}html.theme--catppuccin-mocha code .hljs-number{color:#fab387}html.theme--catppuccin-mocha code .hljs-operator{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-punctuation{color:#bac2de}html.theme--catppuccin-mocha code .hljs-property{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-regexp{color:#f5c2e7}html.theme--catppuccin-mocha code .hljs-string{color:#a6e3a1}html.theme--catppuccin-mocha code .hljs-char.escape_{color:#a6e3a1}html.theme--catppuccin-mocha code .hljs-subst{color:#a6adc8}html.theme--catppuccin-mocha code .hljs-symbol{color:#f2cdcd}html.theme--catppuccin-mocha code .hljs-variable{color:#cba6f7}html.theme--catppuccin-mocha code .hljs-variable.language_{color:#cba6f7}html.theme--catppuccin-mocha code .hljs-variable.constant_{color:#fab387}html.theme--catppuccin-mocha code .hljs-title{color:#89b4fa}html.theme--catppuccin-mocha code .hljs-title.class_{color:#f9e2af}html.theme--catppuccin-mocha code .hljs-title.function_{color:#89b4fa}html.theme--catppuccin-mocha code .hljs-params{color:#cdd6f4}html.theme--catppuccin-mocha code .hljs-comment{color:#585b70}html.theme--catppuccin-mocha code .hljs-doctag{color:#f38ba8}html.theme--catppuccin-mocha code .hljs-meta{color:#fab387}html.theme--catppuccin-mocha code .hljs-section{color:#89b4fa}html.theme--catppuccin-mocha code .hljs-tag{color:#a6adc8}html.theme--catppuccin-mocha code .hljs-name{color:#cba6f7}html.theme--catppuccin-mocha code .hljs-attr{color:#89b4fa}html.theme--catppuccin-mocha code .hljs-attribute{color:#a6e3a1}html.theme--catppuccin-mocha code .hljs-bullet{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-code{color:#a6e3a1}html.theme--catppuccin-mocha code .hljs-emphasis{color:#f38ba8;font-style:italic}html.theme--catppuccin-mocha code .hljs-strong{color:#f38ba8;font-weight:bold}html.theme--catppuccin-mocha code .hljs-formula{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-link{color:#74c7ec;font-style:italic}html.theme--catppuccin-mocha code .hljs-quote{color:#a6e3a1;font-style:italic}html.theme--catppuccin-mocha code .hljs-selector-tag{color:#f9e2af}html.theme--catppuccin-mocha code .hljs-selector-id{color:#89b4fa}html.theme--catppuccin-mocha code .hljs-selector-class{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-selector-attr{color:#cba6f7}html.theme--catppuccin-mocha code .hljs-selector-pseudo{color:#94e2d5}html.theme--catppuccin-mocha code .hljs-template-tag{color:#f2cdcd}html.theme--catppuccin-mocha code .hljs-template-variable{color:#f2cdcd}html.theme--catppuccin-mocha code .hljs-addition{color:#a6e3a1;background:rgba(166,227,161,0.15)}html.theme--catppuccin-mocha code .hljs-deletion{color:#f38ba8;background:rgba(243,139,168,0.15)}html.theme--catppuccin-mocha .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--catppuccin-mocha .search-result-link:hover,html.theme--catppuccin-mocha .search-result-link:focus{background-color:#313244}html.theme--catppuccin-mocha .search-result-link .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link .search-filter{transition:all 300ms}html.theme--catppuccin-mocha .search-result-link:hover .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link:hover .search-filter,html.theme--catppuccin-mocha .search-result-link:focus .property-search-result-badge,html.theme--catppuccin-mocha .search-result-link:focus .search-filter{color:#313244 !important;background-color:#b4befe !important}html.theme--catppuccin-mocha .search-result-title{color:#cdd6f4}html.theme--catppuccin-mocha .search-result-highlight{background-color:#f38ba8;color:#181825}html.theme--catppuccin-mocha .search-divider{border-bottom:1px solid #5e6d6f50}html.theme--catppuccin-mocha .w-100{width:100%}html.theme--catppuccin-mocha .gap-2{gap:0.5rem}html.theme--catppuccin-mocha .gap-4{gap:1rem} diff --git a/previews/PR563/assets/themes/documenter-dark.css b/previews/PR563/assets/themes/documenter-dark.css new file mode 100644 index 00000000..c41c82f2 --- /dev/null +++ b/previews/PR563/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:#3c5dcd !important}a.has-text-info:hover,a.has-text-info:focus{color:#2c48aa !important}.has-background-info{background-color:#3c5dcd !important}.has-text-info-light{color:#eff2fb !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#c6d0f0 !important}.has-background-info-light{background-color:#eff2fb !important}.has-text-info-dark{color:#3253c3 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#5571d3 !important}.has-background-info-dark{background-color:#3253c3 !important}.has-text-success{color:#259a12 !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a6c0d !important}.has-background-success{background-color:#259a12 !important}.has-text-success-light{color:#effded !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c7f8bf !important}.has-background-success-light{background-color:#effded !important}.has-text-success-dark{color:#2ec016 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#3fe524 !important}.has-background-success-dark{background-color:#2ec016 !important}.has-text-warning{color:#f4c72f !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#e4b30c !important}.has-background-warning{background-color:#f4c72f !important}.has-text-warning-light{color:#fefaec !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fbedbb !important}.has-background-warning-light{background-color:#fefaec !important}.has-text-warning-dark{color:#8c6e07 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#bd940a !important}.has-background-warning-dark{background-color:#8c6e07 !important}.has-text-danger{color:#cb3c33 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a23029 !important}.has-background-danger{background-color:#cb3c33 !important}.has-text-danger-light{color:#fbefef !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#f1c8c6 !important}.has-background-danger-light{background-color:#fbefef !important}.has-text-danger-dark{color:#c03930 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#d35850 !important}.has-background-danger-dark{background-color:#c03930 !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:#3c5dcd;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#3355c9;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(60,93,205,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#3151bf;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#3c5dcd;border-color:#3c5dcd;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#3c5dcd}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:#3c5dcd}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:#3c5dcd;color:#3c5dcd}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:#3c5dcd;border-color:#3c5dcd;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3c5dcd #3c5dcd !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:#3c5dcd;box-shadow:none;color:#3c5dcd}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:#3c5dcd}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 #3c5dcd #3c5dcd !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:#eff2fb;color:#3253c3}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#e5e9f8;border-color:transparent;color:#3253c3}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#dae1f6;border-color:transparent;color:#3253c3}html.theme--documenter-dark .button.is-success{background-color:#259a12;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#228f11;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(37,154,18,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#20830f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#259a12;border-color:#259a12;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#259a12}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:#259a12}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:#259a12;color:#259a12}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:#259a12;border-color:#259a12;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #259a12 #259a12 !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:#259a12;box-shadow:none;color:#259a12}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:#259a12}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 #259a12 #259a12 !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:#effded;color:#2ec016}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#e5fce1;border-color:transparent;color:#2ec016}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#dbfad6;border-color:transparent;color:#2ec016}html.theme--documenter-dark .button.is-warning{background-color:#f4c72f;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#f3c423;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}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(244,199,47,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#f3c017;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#f4c72f;border-color:#f4c72f;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#f4c72f}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f4c72f}html.theme--documenter-dark .button.is-warning.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-warning.is-outlined{background-color:transparent;border-color:#f4c72f;color:#f4c72f}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:#f4c72f;border-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #f4c72f #f4c72f !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 rgba(0,0,0,0.7) rgba(0,0,0,0.7) !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:#f4c72f;box-shadow:none;color:#f4c72f}html.theme--documenter-dark .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)}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:rgba(0,0,0,0.7);color:#f4c72f}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 #f4c72f #f4c72f !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:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-warning.is-light{background-color:#fefaec;color:#8c6e07}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fdf7e0;border-color:transparent;color:#8c6e07}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fdf3d3;border-color:transparent;color:#8c6e07}html.theme--documenter-dark .button.is-danger{background-color:#cb3c33;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#c13930;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(203,60,51,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#b7362e;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#cb3c33;border-color:#cb3c33;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#cb3c33}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:#cb3c33}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:#cb3c33;color:#cb3c33}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:#cb3c33;border-color:#cb3c33;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #cb3c33 #cb3c33 !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:#cb3c33;box-shadow:none;color:#cb3c33}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:#cb3c33}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 #cb3c33 #cb3c33 !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:#fbefef;color:#c03930}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#f8e6e5;border-color:transparent;color:#c03930}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#f6dcda;border-color:transparent;color:#c03930}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:#3c5dcd;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#eff2fb;color:#3253c3}html.theme--documenter-dark .notification.is-success{background-color:#259a12;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#effded;color:#2ec016}html.theme--documenter-dark .notification.is-warning{background-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fefaec;color:#8c6e07}html.theme--documenter-dark .notification.is-danger{background-color:#cb3c33;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fbefef;color:#c03930}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:#3c5dcd}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#3c5dcd}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#3c5dcd}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #3c5dcd 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#259a12}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#259a12}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#259a12}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #259a12 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#f4c72f}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#f4c72f}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#f4c72f}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #f4c72f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#cb3c33}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#cb3c33}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#cb3c33}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #cb3c33 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:#3c5dcd;border-color:#3c5dcd;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#259a12;border-color:#259a12;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#f4c72f;border-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#cb3c33;border-color:#cb3c33;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:#3c5dcd;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:#eff2fb;color:#3253c3}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:#259a12;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:#effded;color:#2ec016}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:#f4c72f;color:rgba(0,0,0,0.7)}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:#fefaec;color:#8c6e07}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:#cb3c33;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:#fbefef;color:#c03930}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:#3c5dcd}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(60,93,205,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:#259a12}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(37,154,18,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:#f4c72f}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(244,199,47,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:#cb3c33}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(203,60,51,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:#3c5dcd}html.theme--documenter-dark .select.is-info select{border-color:#3c5dcd}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#3151bf}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(60,93,205,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#259a12}html.theme--documenter-dark .select.is-success select{border-color:#259a12}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#20830f}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(37,154,18,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#f4c72f}html.theme--documenter-dark .select.is-warning select{border-color:#f4c72f}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#f3c017}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(244,199,47,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#cb3c33}html.theme--documenter-dark .select.is-danger select{border-color:#cb3c33}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#b7362e}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(203,60,51,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:#3c5dcd;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:#3355c9;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(60,93,205,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:#3151bf;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#259a12;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:#228f11;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(37,154,18,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:#20830f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#f4c72f;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#f3c423;border-color:transparent;color:rgba(0,0,0,0.7)}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(244,199,47,0.25);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#f3c017;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#cb3c33;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:#c13930;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(203,60,51,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:#b7362e;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:#3c5dcd}html.theme--documenter-dark .help.is-success{color:#259a12}html.theme--documenter-dark .help.is-warning{color:#f4c72f}html.theme--documenter-dark .help.is-danger{color:#cb3c33}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:#eff2fb}html.theme--documenter-dark .message.is-info .message-header{background-color:#3c5dcd;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#3c5dcd;color:#3253c3}html.theme--documenter-dark .message.is-success{background-color:#effded}html.theme--documenter-dark .message.is-success .message-header{background-color:#259a12;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#259a12;color:#2ec016}html.theme--documenter-dark .message.is-warning{background-color:#fefaec}html.theme--documenter-dark .message.is-warning .message-header{background-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-warning .message-body{border-color:#f4c72f;color:#8c6e07}html.theme--documenter-dark .message.is-danger{background-color:#fbefef}html.theme--documenter-dark .message.is-danger .message-header{background-color:#cb3c33;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#cb3c33;color:#c03930}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:#3c5dcd;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:#3151bf;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:#3151bf;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:#3151bf;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3c5dcd;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#259a12;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:#20830f;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:#20830f;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:#20830f;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#259a12;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}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:#f3c017;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@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:rgba(0,0,0,0.7)}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:#f3c017;color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}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:#f3c017;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#f4c72f;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-danger{background-color:#cb3c33;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:#b7362e;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:#b7362e;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:#b7362e;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#cb3c33;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:#3c5dcd;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#3c5dcd}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#3c5dcd}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#259a12;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#259a12}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#259a12}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#f4c72f;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#f4c72f}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#f4c72f}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#cb3c33;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#cb3c33}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#cb3c33}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:#3c5dcd;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:#3c5dcd}}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:#3151bf;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:#3c5dcd !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:#3c5dcd}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #215bb5 0%, #3c5dcd 71%, #4b53d8 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #215bb5 0%, #3c5dcd 71%, #4b53d8 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#259a12;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:#259a12}}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:#20830f;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:#259a12 !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:#259a12}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #287207 0%, #259a12 71%, #10b614 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #287207 0%, #259a12 71%, #10b614 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#f4c72f;color:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#f4c72f}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(0,0,0,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:#f3c017;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-warning .tabs a{color:rgba(0,0,0,0.7);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:#f4c72f !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:rgba(0,0,0,0.7)}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:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#f4c72f}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #f09100 0%, #f4c72f 71%, #faef42 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #f09100 0%, #f4c72f 71%, #faef42 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#cb3c33;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:#cb3c33}}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:#b7362e;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:#cb3c33 !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:#cb3c33}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #ac1f2e 0%, #cb3c33 71%, #d66341 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ac1f2e 0%, #cb3c33 71%, #d66341 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:#5a76d5}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:#3c5dcd;box-shadow:0 0 0 2px rgba(60,93,205,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#2dbc16}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:#259a12;box-shadow:0 0 0 2px rgba(37,154,18,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#f6d153}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:#f4c72f;box-shadow:0 0 0 2px rgba(244,199,47,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#d35951}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:#cb3c33;box-shadow:0 0 0 2px rgba(203,60,51,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:rgba(0,0,0,0.7);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:2px;border-color:#dbdee0;border-radius:4px;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:#dbdee0}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#3c5dcd}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#3c5dcd}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#259a12}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#259a12}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#f4c72f}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#f4c72f}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#cb3c33}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#cb3c33}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#3489da}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#3489da}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-todo{background-color:#282f2f;border-color:#9558b2}html.theme--documenter-dark .admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#9558b2}html.theme--documenter-dark .admonition.is-todo>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#dbdee0;background-color:rgba(0,0,0,0);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:2px solid #5e6d6f;border-radius:4px;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 rgba(0,0,0,0);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:2px solid #5e6d6f;border-radius:4px}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content a:hover code{color:#1dd2af}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 .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/PR563/assets/themes/documenter-light.css b/previews/PR563/assets/themes/documenter-light.css new file mode 100644 index 00000000..e000447e --- /dev/null +++ b/previews/PR563/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:#3c5dcd !important}a.has-text-info:hover,a.has-text-info:focus{color:#2c48aa !important}.has-background-info{background-color:#3c5dcd !important}.has-text-info-light{color:#eff2fb !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#c6d0f0 !important}.has-background-info-light{background-color:#eff2fb !important}.has-text-info-dark{color:#3253c3 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#5571d3 !important}.has-background-info-dark{background-color:#3253c3 !important}.has-text-success{color:#259a12 !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a6c0d !important}.has-background-success{background-color:#259a12 !important}.has-text-success-light{color:#effded !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c7f8bf !important}.has-background-success-light{background-color:#effded !important}.has-text-success-dark{color:#2ec016 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#3fe524 !important}.has-background-success-dark{background-color:#2ec016 !important}.has-text-warning{color:#a98800 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#765f00 !important}.has-background-warning{background-color:#a98800 !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:#cca400 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffcd00 !important}.has-background-warning-dark{background-color:#cca400 !important}.has-text-danger{color:#cb3c33 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a23029 !important}.has-background-danger{background-color:#cb3c33 !important}.has-text-danger-light{color:#fbefef !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#f1c8c6 !important}.has-background-danger-light{background-color:#fbefef !important}.has-text-danger-dark{color:#c03930 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#d35850 !important}.has-background-danger-dark{background-color:#c03930 !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:#3c5dcd;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#3355c9;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(60,93,205,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#3151bf;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#3c5dcd;border-color:#3c5dcd;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#3c5dcd}.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:#3c5dcd}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#3c5dcd;color:#3c5dcd}.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:#3c5dcd;border-color:#3c5dcd;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #3c5dcd #3c5dcd !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:#3c5dcd;box-shadow:none;color:#3c5dcd}.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:#3c5dcd}.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 #3c5dcd #3c5dcd !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:#eff2fb;color:#3253c3}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e5e9f8;border-color:transparent;color:#3253c3}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#dae1f6;border-color:transparent;color:#3253c3}.button.is-success{background-color:#259a12;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#228f11;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(37,154,18,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#20830f;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#259a12;border-color:#259a12;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#259a12}.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:#259a12}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#259a12;color:#259a12}.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:#259a12;border-color:#259a12;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #259a12 #259a12 !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:#259a12;box-shadow:none;color:#259a12}.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:#259a12}.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 #259a12 #259a12 !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:#effded;color:#2ec016}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e5fce1;border-color:transparent;color:#2ec016}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#dbfad6;border-color:transparent;color:#2ec016}.button.is-warning{background-color:#a98800;border-color:transparent;color:#fff}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#9c7d00;border-color:transparent;color:#fff}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:#fff}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(169,136,0,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#8f7300;border-color:transparent;color:#fff}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#a98800;border-color:#a98800;box-shadow:none}.button.is-warning.is-inverted{background-color:#fff;color:#a98800}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#a98800}.button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#a98800;color:#a98800}.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:#a98800;border-color:#a98800;color:#fff}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #a98800 #a98800 !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 #fff #fff !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#a98800;box-shadow:none;color:#a98800}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.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:#fff;color:#a98800}.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 #a98800 #a98800 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning.is-light{background-color:#fffbeb;color:#cca400}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff9de;border-color:transparent;color:#cca400}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#cca400}.button.is-danger{background-color:#cb3c33;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#c13930;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(203,60,51,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#b7362e;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#cb3c33;border-color:#cb3c33;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#cb3c33}.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:#cb3c33}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#cb3c33;color:#cb3c33}.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:#cb3c33;border-color:#cb3c33;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #cb3c33 #cb3c33 !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:#cb3c33;box-shadow:none;color:#cb3c33}.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:#cb3c33}.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 #cb3c33 #cb3c33 !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:#fbefef;color:#c03930}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#f8e6e5;border-color:transparent;color:#c03930}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#f6dcda;border-color:transparent;color:#c03930}.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:#3c5dcd;color:#fff}.notification.is-info.is-light{background-color:#eff2fb;color:#3253c3}.notification.is-success{background-color:#259a12;color:#fff}.notification.is-success.is-light{background-color:#effded;color:#2ec016}.notification.is-warning{background-color:#a98800;color:#fff}.notification.is-warning.is-light{background-color:#fffbeb;color:#cca400}.notification.is-danger{background-color:#cb3c33;color:#fff}.notification.is-danger.is-light{background-color:#fbefef;color:#c03930}.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:#3c5dcd}.progress.is-info::-moz-progress-bar{background-color:#3c5dcd}.progress.is-info::-ms-fill{background-color:#3c5dcd}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #3c5dcd 30%, #ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#259a12}.progress.is-success::-moz-progress-bar{background-color:#259a12}.progress.is-success::-ms-fill{background-color:#259a12}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #259a12 30%, #ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#a98800}.progress.is-warning::-moz-progress-bar{background-color:#a98800}.progress.is-warning::-ms-fill{background-color:#a98800}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #a98800 30%, #ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#cb3c33}.progress.is-danger::-moz-progress-bar{background-color:#cb3c33}.progress.is-danger::-ms-fill{background-color:#cb3c33}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #cb3c33 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:#3c5dcd;border-color:#3c5dcd;color:#fff}.table td.is-success,.table th.is-success{background-color:#259a12;border-color:#259a12;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#a98800;border-color:#a98800;color:#fff}.table td.is-danger,.table th.is-danger{background-color:#cb3c33;border-color:#cb3c33;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:#3c5dcd;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:#eff2fb;color:#3253c3}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#259a12;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:#effded;color:#2ec016}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#a98800;color:#fff}.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:#cca400}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#cb3c33;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:#fbefef;color:#c03930}.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:#3c5dcd}.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(60,93,205,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#259a12}.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(37,154,18,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#a98800}.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(169,136,0,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#cb3c33}.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(203,60,51,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:#3c5dcd}.select.is-info select{border-color:#3c5dcd}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#3151bf}.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(60,93,205,0.25)}.select.is-success:not(:hover)::after{border-color:#259a12}.select.is-success select{border-color:#259a12}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#20830f}.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(37,154,18,0.25)}.select.is-warning:not(:hover)::after{border-color:#a98800}.select.is-warning select{border-color:#a98800}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#8f7300}.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(169,136,0,0.25)}.select.is-danger:not(:hover)::after{border-color:#cb3c33}.select.is-danger select{border-color:#cb3c33}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#b7362e}.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(203,60,51,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:#3c5dcd;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#3355c9;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(60,93,205,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#3151bf;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#259a12;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#228f11;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(37,154,18,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#20830f;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#a98800;border-color:transparent;color:#fff}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#9c7d00;border-color:transparent;color:#fff}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(169,136,0,0.25);color:#fff}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#8f7300;border-color:transparent;color:#fff}.file.is-danger .file-cta{background-color:#cb3c33;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#c13930;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(203,60,51,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#b7362e;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:#3c5dcd}.help.is-success{color:#259a12}.help.is-warning{color:#a98800}.help.is-danger{color:#cb3c33}.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:#eff2fb}.message.is-info .message-header{background-color:#3c5dcd;color:#fff}.message.is-info .message-body{border-color:#3c5dcd;color:#3253c3}.message.is-success{background-color:#effded}.message.is-success .message-header{background-color:#259a12;color:#fff}.message.is-success .message-body{border-color:#259a12;color:#2ec016}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#a98800;color:#fff}.message.is-warning .message-body{border-color:#a98800;color:#cca400}.message.is-danger{background-color:#fbefef}.message.is-danger .message-header{background-color:#cb3c33;color:#fff}.message.is-danger .message-body{border-color:#cb3c33;color:#c03930}.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:#3c5dcd;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:#3151bf;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:#3151bf;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:#3151bf;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#3c5dcd;color:#fff}}.navbar.is-success{background-color:#259a12;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:#20830f;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:#20830f;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:#20830f;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#259a12;color:#fff}}.navbar.is-warning{background-color:#a98800;color:#fff}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:#fff}.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:#8f7300;color:#fff}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-warning .navbar-burger{color:#fff}@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:#fff}.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:#8f7300;color:#fff}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}.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:#8f7300;color:#fff}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#a98800;color:#fff}}.navbar.is-danger{background-color:#cb3c33;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:#b7362e;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:#b7362e;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:#b7362e;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#cb3c33;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:#3c5dcd;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#3c5dcd}.panel.is-info .panel-block.is-active .panel-icon{color:#3c5dcd}.panel.is-success .panel-heading{background-color:#259a12;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#259a12}.panel.is-success .panel-block.is-active .panel-icon{color:#259a12}.panel.is-warning .panel-heading{background-color:#a98800;color:#fff}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#a98800}.panel.is-warning .panel-block.is-active .panel-icon{color:#a98800}.panel.is-danger .panel-heading{background-color:#cb3c33;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#cb3c33}.panel.is-danger .panel-block.is-active .panel-icon{color:#cb3c33}.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:#3c5dcd;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:#3c5dcd}}.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:#3151bf;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:#3c5dcd !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:#3c5dcd}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #215bb5 0%, #3c5dcd 71%, #4b53d8 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #215bb5 0%, #3c5dcd 71%, #4b53d8 100%)}}.hero.is-success{background-color:#259a12;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:#259a12}}.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:#20830f;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:#259a12 !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:#259a12}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #287207 0%, #259a12 71%, #10b614 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #287207 0%, #259a12 71%, #10b614 100%)}}.hero.is-warning{background-color:#a98800;color:#fff}.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:#fff}.hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#a98800}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(255,255,255,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:#8f7300;color:#fff}.hero.is-warning .tabs a{color:#fff;opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#a98800 !important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:#fff}.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:#fff;border-color:#fff;color:#a98800}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #764b00 0%, #a98800 71%, #c2bd00 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #764b00 0%, #a98800 71%, #c2bd00 100%)}}.hero.is-danger{background-color:#cb3c33;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:#cb3c33}}.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:#b7362e;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:#cb3c33 !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:#cb3c33}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #ac1f2e 0%, #cb3c33 71%, #d66341 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ac1f2e 0%, #cb3c33 71%, #d66341 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:#f5f5f5;border-style:solid;border-width:2px;border-color:#4a4a4a;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:#f5f5f5;border-color:#4a4a4a}.admonition.is-default>.admonition-header{background-color:rgba(0,0,0,0);color:#4a4a4a}.admonition.is-default>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-info{background-color:#f5f5f5;border-color:#3c5dcd}.admonition.is-info>.admonition-header{background-color:rgba(0,0,0,0);color:#3c5dcd}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#f5f5f5;border-color:#259a12}.admonition.is-success>.admonition-header{background-color:rgba(0,0,0,0);color:#259a12}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#f5f5f5;border-color:#a98800}.admonition.is-warning>.admonition-header{background-color:rgba(0,0,0,0);color:#a98800}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#f5f5f5;border-color:#cb3c33}.admonition.is-danger>.admonition-header{background-color:rgba(0,0,0,0);color:#cb3c33}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#f5f5f5;border-color:#3489da}.admonition.is-compat>.admonition-header{background-color:rgba(0,0,0,0);color:#3489da}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-todo{background-color:#f5f5f5;border-color:#9558b2}.admonition.is-todo>.admonition-header{background-color:rgba(0,0,0,0);color:#9558b2}.admonition.is-todo>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#4a4a4a;background-color:rgba(0,0,0,0);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:2px solid #dbdbdb;border-radius:4px;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:#f5f5f5;color:rgba(0,0,0,0.7);border-bottom:3px solid rgba(0,0,0,0);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:2px solid #dbdbdb;border-radius:4px}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content a:hover code{color:#363636}.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/PR563/assets/themeswap.js b/previews/PR563/assets/themeswap.js new file mode 100644 index 00000000..9f5eebe6 --- /dev/null +++ b/previews/PR563/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/PR563/assets/warner.js b/previews/PR563/assets/warner.js new file mode 100644 index 00000000..3f6f5d00 --- /dev/null +++ b/previews/PR563/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/PR563/concepts/index.html b/previews/PR563/concepts/index.html new file mode 100644 index 00000000..ef75dc38 --- /dev/null +++ b/previews/PR563/concepts/index.html @@ -0,0 +1,2 @@ + +Concepts and Architecture · POMDPs.jl

Concepts and Architecture

POMDPs.jl aims to coordinate the development of three software components: 1) a problem, 2) a solver, 3) an experiment. Each of these components has a set of abstract types associated with it and a set of functions that allow a user to define each component's behavior in a standardized way. An outline of the architecture is shown below.

concepts

The MDP and POMDP types are associated with the problem definition. The Solver and Policy types are associated with the solver or decision-making agent. Typically, the Updater type is also associated with the solver, but a solver may sometimes be used with an updater that was implemented separately. The Simulator type is associated with the experiment.

The code components of the POMDPs.jl ecosystem relevant to problems and solvers are shown below. The arrows represent the flow of information from the problems to the solvers. The figure shows the two interfaces that form POMDPs.jl - Explicit and Generative. Details about these interfaces can be found in the section on Defining POMDPs.

interface_relationships

POMDPs and MDPs

An MDP is a mathematical framework for sequential decision making under uncertainty, and where all of the uncertainty arises from outcomes that are partially random and partially under the control of a decision maker. Mathematically, an MDP is a tuple $(S,A,T,R,\gamma)$, where $S$ is the state space, $A$ is the action space, $T$ is a transition function defining the probability of transitioning to each state given the state and action at the previous time, and $R$ is a reward function mapping every possible transition $(s,a,s')$ to a real reward value. Finally, $\gamma$ is a discount factor that defines the relative weighting of current and future rewards. For more information see a textbook such as [1]. In POMDPs.jl an MDP is represented by a concrete subtype of the MDP abstract type and a set of methods that define each of its components as described in the problem definition section.

A POMDP is a more general sequential decision making problem in which the agent is not sure what state they are in. The state is only partially observable by the decision making agent. Mathematically, a POMDP is a tuple $(S,A,T,R,O,Z,\gamma)$ where $S$, $A$, $T$, $R$, and $\gamma$ have the same meaning as in an MDP, $O$ is the agent's observation space, and $Z$ defines the probability of receiving each observation at a transition. In POMDPs.jl, a POMDP is represented by a concrete subtype of the POMDP abstract type, and the methods described in the problem definition section.

POMDPs.jl contains additional functions for defining optional problem behavior such as an initial state distribution or terminal states. More information can be found in the Defining POMDPs section.

Beliefs and Updaters

In a POMDP domain, the decision-making agent does not have complete information about the state of the problem, so the agent can only make choices based on its "belief" about the state. In the POMDP literature, the term "belief" is typically defined to mean a probability distribution over all possible states of the system. However, in practice, the agent often makes decisions based on an incomplete or lossy record of past observations that has a structure much different from a probability distribution. For example, if the agent is represented by a finite-state controller, as is the case for Monte-Carlo Value Iteration [2], the belief is the controller state, which is a node in a graph. Another example is an agent represented by a recurrent neural network. In this case, the agent's belief is the state of the network. In order to accommodate a wide variety of decision-making approaches in POMDPs.jl, we use the term "belief" to denote the set of information that the agent makes a decision on, which could be an exact state distribution, an action-observation history, a set of weighted particles, or the examples mentioned before. In code, the belief can be represented by any built-in or user-defined type.

When an action is taken and a new observation is received, the belief is updated by the belief updater. In code, a belief updater is represented by a concrete subtype of the Updater abstract type, and the update(updater, belief, action, observation) function defines how the belief is updated when a new observation is received.

Although the agent may use a specialized belief structure to make decisions, the information initially given to the agent about the state of the problem is usually most conveniently represented as a state distribution, thus the initialize_belief function is provided to convert a state distribution to a specialized belief structure that an updater can work with.

In many cases, the belief structure is closely related to the solution technique, so it will be implemented by the programmer who writes the solver. In other cases, the agent can use a variety of belief structures to make decisions, so a domain-specific updater implemented by the programmer that wrote the problem description may be appropriate. Finally, some advanced generic belief updaters such as particle filters may be implemented by a third party. The convenience function updater(policy) can be used to get a suitable default updater for a policy, however many policies can work with other updaters.

For more information on implementing a belief updater, see Defining a Belief Updater

Solvers and Policies

Sequential decision making under uncertainty involves both online and offline calculations. In the broad sense, the term "solver" as used in the node in the figure at the top of the page refers to the software package that performs the calculations at both of these times. However, the code is broken up into two pieces, the solver that performs calculations offline and the policy that performs calculations online.

In the abstract, a policy is a mapping from every belief that an agent might take to an action. A policy is represented in code by a concrete subtype of the Policy abstract type. The programmer implements action to describe what computations need to be done online. For an online solver such as POMCP, all of the decision computation occurs within action while for an offline solver like SARSOP, there is very little computation within action. See Interacting with Policies for more information.

The offline portion of the computation is carried out by the solver, which is represented by a concrete subtype of the Solver abstract type. Computations occur within the solve function. For an offline solver like SARSOP, nearly all of the decision computation occurs within this function, but for some online solvers such as POMCP, solve merely embeds the problem in the policy.

Simulators

A simulator defines a way to run one or more simulations. It is represented by a concrete subtype of the Simulator abstract type and the simulation is an implemention of simulate. Depending on the simulator, simulate may return a variety of data about the simulation, such as the discounted reward or the state history. All simulators should perform simulations consistent with the Simulation Standard.

[1] Decision Making Under Uncertainty: Theory and Application by Mykel J. Kochenderfer, MIT Press, 2015

[2] Bai, H., Hsu, D., & Lee, W. S. (2014). Integrated perception and planning in the continuous space: A POMDP approach. The International Journal of Robotics Research, 33(9), 1288-1302

diff --git a/previews/PR563/def_pomdp/index.html b/previews/PR563/def_pomdp/index.html new file mode 100644 index 00000000..df70ef46 --- /dev/null +++ b/previews/PR563/def_pomdp/index.html @@ -0,0 +1,199 @@ + +Defining POMDPs and MDPs · POMDPs.jl

Defining POMDPs and MDPs

As described in the Concepts and Architecture section, an MDP is defined by the state space, action space, transition distributions, reward function, and discount factor, $(S,A,T,R,\gamma)$. A POMDP also includes the observation space, and observation probability distributions, for a definition of $(S,A,T,R,O,Z,\gamma)$. A problem definition in POMDPs.jl consists of an implicit or explicit definition of each of these elements.

It is possible to define a (PO)MDP with a more traditional object-oriented approach in which the user defines a new type to represent the (PO)MDP and methods of interface functions to define the tuple elements. However, the QuickPOMDPs package provides a more concise way to get started, using keyword arguments instead of new types and methods. Essentially each keyword argument defines a corresponding POMDPs api function. Since the important concepts are the same for the object oriented approach and the QuickPOMDP approach, we will use the latter for this discussion.

This guide has three parts: First, it explains a very simple example (the Tiger POMDP), then uses a more complex example to illustrate the broader capabilities of the interface. Finally, some alternative ways of defining (PO)MDPs are discussed.

Note

This guide assumes that you are comfortable programming in Julia, especially familiar with various ways of defining anonymous functions. Users should consult the Julia documentation to learn more about programming in Julia.

A Basic Example: The Tiger POMDP

In the first section of this guide, we will explain a QuickPOMDP implementation of a very simple problem: the classic Tiger POMDP. In the tiger POMDP, the agent is tasked with escaping from a room. There are two doors leading out of the room. Behind one of the doors is a tiger, and behind the other is sweet, sweet freedom. If the agent opens the door and finds the tiger, it gets eaten (and receives a reward of -100). If the agent opens the other door, it escapes and receives a reward of 10. The agent can also listen. Listening gives a noisy measurement of which door the tiger is hiding behind. Listening gives the agent the correct location of the tiger 85% of the time. The agent receives a reward of -1 for listening. The complete implementation looks like this:

using QuickPOMDPs: QuickPOMDP
+using POMDPTools: Deterministic, Uniform, SparseCat
+
+m = QuickPOMDP(
+    states = ["left", "right"],
+    actions = ["left", "right", "listen"],
+    observations = ["left", "right"],
+    discount = 0.95,
+
+    transition = function (s, a)
+        if a == "listen"
+            return Deterministic(s) # tiger stays behind the same door
+        else # a door is opened
+            return Uniform(["left", "right"]) # reset
+        end
+    end,
+
+    observation = function (a, sp)
+        if a == "listen"
+            if sp == "left"
+                return SparseCat(["left", "right"], [0.85, 0.15]) # sparse categorical
+            else
+                return SparseCat(["right", "left"], [0.85, 0.15])
+            end
+        else
+            return Uniform(["left", "right"])
+        end
+    end,
+
+    reward = function (s, a)
+        if a == "listen"
+            return -1.0
+        elseif s == a # the tiger was found
+            return -100.0
+        else # the tiger was escaped
+            return 10.0
+        end
+    end,
+
+    initialstate = Uniform(["left", "right"]),
+);

The next sections explain how each of the elements of the POMDP tuple are defined in this implementation:

State, action and observation spaces

In this example, each state, action, and observation is a String. The state, action and observation spaces ($S$, $A$, and $O$), are defined with the states, actions and observations keyword arguments. In this case, they are simply Vectors containing all the elements in the space.

Transition and observation distributions

The transition and observation keyword arguments are used to define the transition distribution, $T$, and observation distribution, $Z$, respectively. These models are defined using functions that return distribution objects (more info below). The transition function takes state and action arguments and returns a distribution of the resulting next state. The observation function takes in an action and the resulting next state (sp, short for "s prime") and returns the distribution of the observation emitted at this state.

Reward function

The reward keyword argument defines $R$. It is a function that takes in a state and action and returns a number.

Discount and initial state distribution

The discount factor, $\gamma$, is defined with the discount keyword, and is simply a number between 0 and 1. The initial state distribution, b_0, is defined with the initialstate argument, and is a distribution object.

The example above shows a complete implementation of a very simple discrete-space POMDP. However, POMDPs.jl is capable of concisely expressing much more complex models with continuous and hybrid spaces. The guide below introduces a more complex example to fully explain the ways that a POMDP can be defined.

Guide to Defining POMDPs

A more complex example: A partially-observable mountain car

Mountain car is a classic problem in reinforcement learning. A car starts in a valley between two hills, and must reach the goal at the top of the hill to the right (see wikipedia for image). The actions are left and right acceleration and neutral and the state consists of the car's position and velocity. In this partially-observable version, there is a small amount of acceleration noise and observations are normally-distributed noisy measurements of the position. This problem can be implemented as follows:

import QuickPOMDPs: QuickPOMDP
+import POMDPTools: ImplicitDistribution
+import Distributions: Normal
+
+mountaincar = QuickPOMDP(
+    actions = [-1., 0., 1.],
+    obstype = Float64,
+    discount = 0.95,
+
+    transition = function (s, a)        
+        ImplicitDistribution() do rng
+            x, v = s
+            vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)
+            vp = clamp(vp, -0.07, 0.07)
+            xp = x + vp
+            return (xp, vp)
+        end
+    end,
+
+    observation = (a, sp) -> Normal(sp[1], 0.15),
+
+    reward = function (s, a, sp)
+        if sp[1] > 0.5
+            return 100.0
+        else
+            return -1.0
+        end
+    end,
+
+    initialstate = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0)),
+    isterminal = s -> s[1] > 0.5
+)

The following sections provide a detailed guide to defining the components of a POMDP using this example and the tiger pomdp further above.

State, action, and observation spaces

In POMDPs.jl, a state, action, or observation can be represented by any Julia object, for example an integer, a floating point number, a string or Symbol, or a vector. For example, in the tiger problem, the states are Strings, and in the mountaincar problem, the state is a Tuple of two floating point numbers, and the actions and observations are floating point numbers. These types are usually inferred from the space or initial state distribution definitions.

Warn

Objects representing individual states, actions, and observations should not be altered once they are created, since they may be used as dictionary keys or stored in histories. Hence it is usually best to use immutable objects such as integers or StaticArrays. If the states need to be mutable (e.g. aggregate types with vectors in them), make sure the states are not actualy mutated and that hash and == functions are implmemented (see AutoHashEquals)

The state, action, and observation spaces are defined with the states, actions, and observations Quick(PO)MDP keyword arguments. The simplest way to define these spaces is with a Vector of states, e.g. states = ["left", "right"] in the tiger problem. More complicated spaces, such as vector spaces and other continuous, uncountable, or hybrid sets can be defined with custom objects that adhere to the space interface. However it should be noted that, for many solvers, an explicit enumeration of the state and observation spaces is not needed. Instead, it is sufficient to specify the state or observation type using the statetype or obstype arguments, e.g. obstype = Float64 in the mountaincar problem.

Tip

If you are having a difficult time representing the state or observation space, it is likely that you will not be able to use a solver that requires an explicit representation. It is usually best to omit that space from the definition and try solvers to see if they work.

State- or belief-dependent action spaces

In some problems, the set of allowable actions depends on the state or belief. This can be implemented by providing a function of the state or belief to the actions argument, e.g. if you can only take the action 1 in state 1, but can take full action space 1, 2 and 3, in an MDP, you might use

# add default vlaue "s = nothing" , "actions(mdp)" won't throw error.
+actions = function (s = nothing) 
+    if s == 1
+        return [1]      #<--- return state-dep-actions
+    else
+        return [1,2,3]  #<--- return full action space here
+    end
+end

Similarly, in a POMDP, you may wish to only allow action 1 if the belief b assigns a nonzero probability to state 1. This can be accomplished with

actions = function (b)
+    if pdf(b, 1) > 0.0
+        return [1,2,3]
+    else
+        return [2,3]
+    end
+end

Transition and observation distributions

The transition and observation observation distributions are specified through functions that return distributions. A distribution object implements parts of the distribution interface, most importantly a rand function that provides a way to sample the distribution and, for explicit distributions, a pdf function that evaluates the probability mass or density of a given outcome. In most simple cases, you will be able to use a pre-defined distribution like the ones listed below, but occasionally you will define your own for more complex problems.

Tip

Since the transition and observation functions return distributions, you should not call rand within these functions (unless it is within an ImplicitDistribution sampling function (see below)).

The transition function takes in a state s and action a and returns a distribution object that defines the distribution of next states given that the current state is s and the action is a, that is $T(s' | s, a)$. Similarly the observation function takes in the action a and the next state sp and returns a distribution object defining $O(z | a, s')$.

Note

It is also possible to define the observation function in terms of the previous state s, along with a, and sp. This is necessary, for example, when the observation is a measurement of change in state, e.g. sp - s. However some solvers may use the a, sp method (and hence cannot solve problems where the observation is conditioned on $s$ and $s'$). Since providing an a, sp method automatically defines the s, a, sp method, problem writers should usually define only the a, sp method, and only define the s, a, sp method if it is necessary. Except for special performance cases, problem writers should never need to define both methods.

Commonly-used distributions

In most cases, the following pre-defined distributions found in the POMDPTools and Distributions packages will be sufficient to define models.

Deterministic

The Deterministic distribution should be used when there is no randomness in the state or observation given the state and action inputs. This commonly occurs when the new state is a deterministic function of the state and action or the state stays the same, for example when the action is "listen" in the tiger example above, the transition function returns Deterministic(s).

SparseCat

In discrete POMDPs, it is common for the state or observation to have a few possible outcomes with specified probabilities. This can be represented with a sparse categorical SparseCat distribution that takes a list of outcomes and a list of associated probabilities as arguments. For instance, in the tiger example above, when the action is "listen", there is an 85% chance of receiving the correct observation. Thus if the state is "left", the observation distribution is SparseCat(["left", "right"], [0.85, 0.15]), and SparseCat(["right", "left"], [0.85, 0.15]) if the state is "right".

Another example where SparseCat distributions are useful is in grid-world problems, where there is a high probability of transitioning along the direction of the action, a low probability of transitioning to other adjacent states, and zero probability of transitioning to any other states.

Uniform

Another common case is a uniform distribution over a space or set of outcomes. This can be represented with a Uniform object that takes a set of outcomes as an argument. For example, the initial state distribution in the tiger problem is represented with Uniform(["left", "right"]) indicating that both states are equally likely.

Distributions.jl

If the states or observations have numerical or vector values, the Distributions.jl package provides a suite of suitable distributions. For example, the observation function in the partially-observable mountain car example above,

observation = (a, sp) -> Normal(sp[1], 0.15)

returns a Normal distribution from this package with a mean that depends on the car's location (the first element of state sp) and a standard deviation of 0.15.

ImplicitDistribution

In many cases, especially when the state or observation spaces are continuous or hybrid, it is difficult or impossible to specify the probability density explicitly. Fortunately, many solvers for these problems do not require explicit density information and instead need only samples from the distribution. In this case, an "implicit distribution" or "generative model" is sufficient. In POMDPs.jl, this can be represented using an ImplicitDistribution object.

The argument to an ImplicitDistribution constructor is a function that takes a random number generator as an argument and returns a sample from the distribution. To see how this works, we'll look at an example inspired by the mountaincar initial state distribution. Samples from this distribution are position-velocity tuples where the velocity is always zero, but the position is uniformly distributed between -0.2 and 0. Consider the following code:

using StableRNGs: StableRNG
+using POMDPTools: ImplicitDistribution
+
+rng = StableRNG(1)
+
+d = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0))
+rand(rng, d)
+# output
+(-0.11703892844248372, 0.0)

Here, rng is the random number generator. When rand(rng, d) is called, the sampling function, rng -> (-0.2*rand(rng), 0.0), is called to generate a state. The sampling function uses rng to generate a random number between 0 and 1 (rand(rng)), multiplies it by -0.2 to get the position, and creates a tuple with the position and a velocity of 0.0 and returns an initial state that might be, for instance (-0.11, 0.0). Any time that a solver, belief updater, or simulator needs an initial state for the problem, it will be sampled in this way.

Note

The random number generator is a subtype of AbstractRNG. It is important to use this random number generator for all calls to rand in the sample function for reproducible results. Moreover some solvers use specialized random number generators that allow them to reduce variance. See also the What if I don't use the rng argument? FAQ.

It is also common to use Julia's do block syntax to define more complex sampling functions. For instance the transition function in the mountaincar example returns an ImplicitDistribution with a sampling function that (1) generates a new noisy velocity through a randn call, then (2) clamps the velocity, and finally (3) integrates the position with Euler's method:

transition = function (s, a)        
+    ImplicitDistribution() do rng
+        x, v = s
+        vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)
+        vp = clamp(vp, -0.07, 0.07)
+        xp = x + vp
+        return (xp, vp)
+    end
+end

Because of the nonlinear clamp operation, it would be difficult to represent this distribution explicitly.

Custom distributions

If none of the distributions above are suitable, for example if you need to represent an explicit distribution with hybrid support, it is not difficult to define your own distributions by implementing the functions in the distribution interface.

Reward functions

The reward function maps a combination of state, action, and observation arguments to the reward for a step. For instance, the reward function in the mountaincar problem,

reward = function (s, a, sp)
+    if sp[1] > 0.5
+        return 100.0
+    else
+        return -1.0
+    end
+end

takes in the previous state, s, the action, a, and the resulting state, sp and returns a large positive reward if the resulting position, sp[1], is beyond a threshold (note the coupling of the terminal reward) and a small negative reward on all other steps. If the reward in the problem is stochastic, the reward function implemented in POMDPs.jl should return the mean reward.

There are two possible reward function argument signatures that a problem-writer might consider implementing for an MDP: (s, a) and (s, a, sp). For a POMDP, there is an additional version, (s, a, sp, o). The (s, a, sp) version is useful when transition to a terminal state results in a reward, and the (s, a, sp, o) version is useful for cases when the reward is associated with an observation, such as a negative reward for the stress caused by a medical diagnostic test that indicates the possibility of a disease. Problem writers should implement the version with the fewest number of arguments possible, since the versions with more arguments are automatically provided to solvers and simulators if a version with fewer arguments is implemented.

In rare cases, it may make sense to implement two or more versions of the function, for example if a solver requires (s, a), but the user wants an observation-dependent reward to show up in simulation. It is OK to implement two methods of the reward function as long as the following relationships hold: $R(s, a) = E_{s'\sim T(s'|s,a)}[R(s, a, s')]$ and $R(s, a, s') = E_{o \sim Z(o | s, a, s')}[R(s, a, s', o)]$. That is, the versions with fewer arguments must be expectations of versions with more arguments.

Other Components

Discount factors

The discount keyword argument is simply a number between 0 and 1 used to discount rewards in the future.

Initial state distribution

The initialstate argument should be a distribution object (see above) that defines the initial state distribution (and initial belief for POMDPs).

Terminal states

The function supplied to the isterminal object defines which which states in the POMDP are terminal. The function should take a state as an argument as an argument and return true if the state is terminal and false otherwise. For example, in the mountaincar example above, isterminal = s -> s[1] > 0.5 indicates all states where the position, s[1] is greater than 0.5 are terminal.

It is assumed that the system will take no further steps once it has reached a terminal state. Since reward is assigned for taking steps, no additional award can be accumulated from a terminal state. Consequently, the most important property of terminal states is that the value of a terminal state is always zero. Many solvers leverage this property for efficiency. As in the mountaincar example

Other ways to define a (PO)MDP

Besides the Quick(PO)MDP approach above, there are several alternative ways to define (PO)MDP models:

Object-oriented

First, it is possible to create your own (PO)MDP types and implement the components of the POMDP directly as methods of POMDPs.jl interface functions. This approach can be thought of as the "low-level" way to define a POMDP, and the QuickPOMDP as merely a syntactic convenience. There are a few things that make this object-oriented approach more cumbersome than the QuickPOMDP approach, but the structure is similar. For example, the tiger QuickPOMDP shown above can be implemented as follows:

import POMDPs
+using POMDPs: POMDP
+using POMDPTools: Deterministic, Uniform, SparseCat
+
+struct TigerPOMDP <: POMDP{String, String, String}
+    p_correct::Float64
+    indices::Dict{String, Int}
+
+    TigerPOMDP(p_correct=0.85) = new(p_correct, Dict("left"=>1, "right"=>2, "listen"=>3))
+end
+
+POMDPs.states(m::TigerPOMDP) = ["left", "right"]
+POMDPs.actions(m::TigerPOMDP) = ["left", "right", "listen"]
+POMDPs.observations(m::TigerPOMDP) = ["left", "right"]
+POMDPs.discount(m::TigerPOMDP) = 0.95
+POMDPs.stateindex(m::TigerPOMDP, s) = m.indices[s]
+POMDPs.actionindex(m::TigerPOMDP, a) = m.indices[a]
+POMDPs.obsindex(m::TigerPOMDP, o) = m.indices[o]
+
+function POMDPs.transition(m::TigerPOMDP, s, a)
+    if a == "listen"
+        return Deterministic(s) # tiger stays behind the same door
+    else # a door is opened
+        return Uniform(["left", "right"]) # reset
+    end
+end
+
+function POMDPs.observation(m::TigerPOMDP, a, sp)
+    if a == "listen"
+        if sp == "left"
+            return SparseCat(["left", "right"], [m.p_correct, 1.0-m.p_correct])
+        else
+            return SparseCat(["right", "left"], [m.p_correct, 1.0-m.p_correct])
+        end
+    else
+        return Uniform(["left", "right"])
+    end
+end
+
+function POMDPs.reward(m::TigerPOMDP, s, a)
+    if a == "listen"
+        return -1.0
+    elseif s == a # the tiger was found
+        return -100.0
+    else # the tiger was escaped
+        return 10.0
+    end
+end
+
+POMDPs.initialstate(m::TigerPOMDP) = Uniform(["left", "right"])
+# output

It is easy to see that the new methods are similar to the keyword arguments in the QuickPOMDP approach, except that every function has an initial m argument that has the newly created POMDP type. There are several differences from the QuickPOMDP approach: First, the POMDP is represented by a new struct that is a subtype of POMDP{S,A,O}. The state, action, and observation types must be specified as the S, A, and O parameters of the POMDP abstract type. Second, this new struct may contain problem-specific fields, which makes it easy for others to construct POMDPs that have the same structure but different parameters. For example, in the code above, the struct has a p_correct parameter that specifies the probability of receiving a correct observation when the "listen" action is taken. The final and most cumbersome difference between this object-oriented approach and using QuickPOMDPs is that the user must implement stateindex, actionindex, and obsindex to map states, actions, and observations to appropriate indices so that data such as values can be stored and accessed efficiently in vectors.

Using a single generative function instead of separate $T$, $Z$, and $R$

In some cases, you may wish to use a simulator that generates the next state, observation, and/or reward ($s'$, $o$, and $r$) simultaneously. This is sometimes called a "generative model".

For example if you are working on an autonomous driving POMDP, the car may travel for one or more seconds in between POMDP decision steps during which it may accumulate reward and observation measurements. In this case it might be very difficult to create a reward or observation function based on $s$, $a$, and $s'$ arguments.

For situations like this, gen is an alternative to transition, observation, and reward. The gen function should take in state, action, and random number generator arguments and return a NamedTuple with keys sp (for "s-prime", the next state), o, and r. The mountaincar example above can be implemented with gen as shown below.

Note

gen is intended only for the case where two or more of the next state, observation, and reward need to be generated at the same time. If the state transition model can be separated from the reward and observation models, you should implement transition with an ImplicitDistribution instead of gen. See also the "What is the difference between transition, gen, and @gen?" FAQ.

using QuickPOMDPs: QuickPOMDP
+using POMDPTools: ImplicitDistribution
+
+mountaincar = QuickPOMDP(
+    actions = [-1., 0., 1.],
+    obstype = Float64,
+    discount = 0.95,
+
+    gen = function (s, a, rng)
+        x, v = s
+        vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)
+        vp = clamp(vp, -0.07, 0.07)
+        xp = x + vp
+        if xp > 0.5
+            r = 100.0
+        else
+            r = -1.0
+        end
+        o = xp + 0.15*randn(rng)
+        return (sp=(xp, vp), o=o, r=r)
+    end,
+
+    initialstate = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0)),
+    isterminal = s -> s[1] > 0.5
+)
Tip

gen is not tied to the QuickPOMDP approach; it can also be used in the object-oriented paradigm.

Tip

It is possible to mix and match gen with transtion, observation, and reward. For example, if the gen function returns a NamedTuple with sp and r keys, POMDPs.jl will try to use gen to generate states and rewards and the observation function to generate observations.

Note

Implementing gen instead of transition, observation, and reward will limit which solvers you can use; for example, it is impossible to use a solver that requires an explicit transition distribution

Tabular

Finally, it is sometimes convenient to define (PO)MDPs with tables that define the transition and observation probabilities and rewards. In this case, the states, actions, and observations must simply be integers.

The code below is a tabular implementation of the tiger example with the states, actions, and observations mapped to the following integers:

integerstate, action, or observation
1"left"
2"right"
3"listen"
using POMDPModels: TabularPOMDP
+
+T = zeros(2,3,2)
+T[:,:,1] = [1. 0.5 0.5; 
+            0. 0.5 0.5]
+T[:,:,2] = [0. 0.5 0.5; 
+            1. 0.5 0.5]
+
+O = zeros(2,3,2)
+O[:,:,1] = [0.85 0.5 0.5; 
+            0.15 0.5 0.5]
+O[:,:,2] = [0.15 0.5 0.5; 
+            0.85 0.5 0.5]
+
+R = [-1. -100. 10.; 
+     -1. 10. -100.]
+
+m = TabularPOMDP(T, R, O, 0.95)

Here T is a $|S| \times |A| \times |S|$ array representing the transition probabilities, with T[sp, a, s] $= T(s' | s, a)$. Similarly, O is an $|O| \times |A| \times |S|$ encoding the observation distribution with O[o, a, sp] $= Z(o | a, s')$, and R is a $|S| \times |A|$ matrix that encodes the reward function. 0.95 is the discount factor.

diff --git a/previews/PR563/def_solver/index.html b/previews/PR563/def_solver/index.html new file mode 100644 index 00000000..e4f4246c --- /dev/null +++ b/previews/PR563/def_solver/index.html @@ -0,0 +1,2 @@ + +Solvers · POMDPs.jl

Solvers

Defining a solver involves creating or using four pieces of code:

  1. A subtype of Solver that holds the parameters and configuration options for the solver.
  2. A subtype of Policy that holds all of the data needed to choose actions online.
  3. A method of solve that takes the Solver and a (PO)MDP as arguments, performs all of the offline computations for solving the problem, and returns the policy.
  4. A method of action that takes in the policy and a state or belief and returns an action.

In many cases, items 2 and 4 can be satisfied with an off-the-shelf Policy from the POMDPTools package. also contains many tools that are useful for defining solvers in a robust, concise, and readable manner.

Online and Offline Solvers

Generally, solvers can be grouped into two categories: Offline solvers that do most of their computational work before interacting with the environment, and online solvers that do their work online as each new state or observation is encountered. Although offline and online solvers both use the exact same Solver, solve, Policy, action structure, the work of defining online and offline solvers is focused on different portions.

For an offline solver, most of the implementation effort will be spent on the [solve] function, and an off-the-shelf policy from POMDPTools will typically be used.

For an online solver, the solve function typically does little or no work, but merely creates a Policy object that will carry out computation online. It is typical in POMDPs.jl to use the term "Planner" to name a Policy object for an online solver that carries out a large amount of computation ("planning") at interaction time. In this case most of the effort will be focused on implementing the action method for the "Planner" Policy type.

Examples

Solver implementation is most clearly explained through examples. The following sections contain examples of both online and offline solver definitions:

diff --git a/previews/PR563/def_updater/index.html b/previews/PR563/def_updater/index.html new file mode 100644 index 00000000..28d1ff96 --- /dev/null +++ b/previews/PR563/def_updater/index.html @@ -0,0 +1,32 @@ + +Defining a Belief Updater · POMDPs.jl

Defining a Belief Updater

In this section we list the requirements for defining a belief updater. For a description of what a belief updater is, see Concepts and Architecture - Beliefs and Updaters. Typically a belief updater will have an associated belief type, and may be closely tied to a particular policy/planner.

Defining a Belief Type

A belief object should contain all of the information needed for the next belief update and for the policy to make a decision. The belief type could be a pre-defined type such as a distribution from Distributions.jl or DiscreteBelief or SparseCat from the POMDPTools package, or it could be a custom type.

Often, but not always, the belief will represent a probability distribution. In this case, the functions in the distribution interface should be implemented if possible. Implementing these functions will make the belief usable with many of the policies and planners in the POMDPs.jl ecosystem, and will make it easy for others to convert between beliefs and to interpret what a belief means.

Histories associated with a belief

If a complete or partial record of the action-observation history leading up to a belief is available, it is often helpful to give access to this by implementing the history or currentobs functions (see the docstrings for more details). This is especially useful if a problem-writer wants to implement a belief- or observation-dependent action space. Belief type implementers need only implement history, and currentobs will automatically be provided, though sometimes it is more convenient to implement currentobs directly.

Defining an Updater

To create an updater, one should define a subtype of the Updater abstract type and implement two methods, one to create the initial belief from the problem's initial state distribution and one to perform a belief update:

Example: History Updater

One trivial type of belief would be the action-observation history, a list containing the initial state distribution and every action taken and observation received. The history contains all of the information received up to the current time, but it is not usually very useful because most policies make decisions based on a state probability distribution. Here the belief type is simply the built in Vector{Any}, so we need only create the updater and write update and initialize_belief. Normally, update would contain belief update probability calculations, but in this example, we simply append the action and observation to the history.

(Note that this example is designed for readability rather than efficiency.)

import POMDPs
+
+struct HistoryUpdater <: POMDPs.Updater end
+
+POMDPs.initialize_belief(up::HistoryUpdater, d) = Any[d]
+
+function POMDPs.update(up::HistoryUpdater, b, a, o)
+    bp = copy(b)
+    push!(bp, a)
+    push!(bp, o)
+    return bp
+end

At each step, the history starts with the original distribution, then contains all the actions and observations received up to that point. The example below shows this for the crying baby problem (observations are true/false for crying and actions are true/false for feeding).

using POMDPTools
+using POMDPModels
+using Random
+
+pomdp = BabyPOMDP()
+policy = RandomPolicy(pomdp, rng=MersenneTwister(1))
+up = HistoryUpdater()
+
+# within stepthrough initialize_belief is called on the initial state distribution of the pomdp, then update is called at each step.
+for b in stepthrough(pomdp, policy, up, "b", rng=MersenneTwister(2), max_steps=5)
+    @show b
+end
+
+# output
+
+b = Any[POMDPModels.BoolDistribution(0.0)]
+b = Any[POMDPModels.BoolDistribution(0.0), false, false]
+b = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false]
+b = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false, true, false]
+b = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false, true, false, true, false]
diff --git a/previews/PR563/example_defining_problems/index.html b/previews/PR563/example_defining_problems/index.html new file mode 100644 index 00000000..6d6dbe4a --- /dev/null +++ b/previews/PR563/example_defining_problems/index.html @@ -0,0 +1,250 @@ + +Defining a POMDP · POMDPs.jl

Defining a POMDP

As mentioned in the Defining POMDPs and MDPs section, there are various ways to define a POMDP using POMDPs.jl. In this section, we provide more examples of how to define a POMDP using the different interfaces.

There is a large variety of problems that can be expressed as MDPs and POMDPs and different solvers require different components of the POMDPs.jl interface to be defined. Therefore, these examples are not intended to cover all possible use cases. When developing a problem and you have an idea of what solver(s) you would like to use, it is recommended to use POMDPLinter to help you to determine what components of the POMDPs.jl interface need to be defined. Reference the Checking Requirements section for an example of using POMDPLinter.

CryingBaby Problem Definition

For the examples, we will use the CryingBaby problem from Algorithms for Decision Making by Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray.

Note

This crying baby problem follows the description in Algorithms for Decision Making and is different than BabyPOMDP defined in POMDPModels.jl.

From Appendix F of Algorithms for Decision Making:

The crying baby problem is a simple POMDP with two states, three actions, and two observations. Our goal is to care for a baby, and we do so by choosing at each time step whether to feed the baby, sing to the baby, or ignore the baby.

The baby becomes hungry over time. We do not directly observe whether the baby is hungry; instead, we receive a noisy observation in the form of whether the baby is crying. The state, action, and observation spaces are as follows:

\[\begin{align*} +\mathcal{S} &= \{\text{sated}, \text{hungry} \}\\ +\mathcal{A} &= \{\text{feed}, \text{sing}, \text{ignore} \} \\ +\mathcal{O} &= \{\text{crying}, \text{quiet} \} +\end{align*}\]

Feeding will always sate the baby. Ignoring the baby risks a sated baby becoming hungry, and ensures that a hungry baby remains hungry. Singing to the baby is an information-gathering action with the same transition dynamics as ignoring, but without the potential for crying when sated (not hungry) and with an increased chance of crying when hungry.

The transition dynamics are as follows:

\[\begin{align*} +& T(\text{sated} \mid \text{hungry}, \text{feed}) = 100\% \\ +& T(\text{hungry} \mid \text{hungry}, \text{sing}) = 100\% \\ +& T(\text{hungry} \mid \text{hungry}, \text{ignore}) = 100\% \\ +& T(\text{sated} \mid \text{sated}, \text{feed}) = 100\% \\ +& T(\text{hungry} \mid \text{sated}, \text{sing}) = 10\% \\ +& T(\text{hungry} \mid \text{sated}, \text{ignore}) = 10\% +\end{align*}\]

The observation dynamics are as follows:

\[\begin{align*} +& O(\text{crying} \mid \text{feed}, \text{hungry}) = 80\% \\ +& O(\text{crying} \mid \text{sing}, \text{hungry}) = 90\% \\ +& O(\text{crying} \mid \text{ignore}, \text{hungry}) = 80\% \\ +& O(\text{crying} \mid \text{feed}, \text{sated}) = 10\% \\ +& O(\text{crying} \mid \text{sing}, \text{sated}) = 0\% \\ +& O(\text{crying} \mid \text{ignore}, \text{sated}) = 10\% +\end{align*}\]

The reward function assigns $−10$ reward if the baby is hungry, independent of the action taken. The effort of feeding the baby adds a further $−5$ reward, whereas singing adds $−0.5$ reward. As baby caregivers, we seek the optimal infinite-horizon policy with discount factor $\gamma = 0.9$.

QuickPOMDP Interface

using POMDPs
+using POMDPTools
+using QuickPOMDPs
+
+quick_crying_baby_pomdp = QuickPOMDP(
+    states = [:sated, :hungry],
+    actions = [:feed, :sing, :ignore],
+    observations = [:quiet, :crying],
+    initialstate = Deterministic(:sated),
+    discount = 0.9,
+    transition = function (s, a)
+        if a == :feed
+            return Deterministic(:sated)
+        elseif s == :sated # :sated and a != :feed
+            return SparseCat([:sated, :hungry], [0.9, 0.1])
+        else # s == :hungry and a != :feed
+            return Deterministic(:hungry)
+        end
+    end,
+    observation = function (a, sp)
+        if sp == :hungry
+            if a == :sing
+                return SparseCat([:crying, :quiet], [0.9, 0.1])
+            else # a == :ignore || a == :feed
+                return SparseCat([:crying, :quiet], [0.8, 0.2])
+            end
+        else # sp = :sated
+            if a == :sing
+                return Deterministic(:quiet)
+            else # a == :ignore || a == :feed
+                return SparseCat([:crying, :quiet], [0.1, 0.9])
+            end
+            
+        end
+    end,
+    reward = function (s, a)
+        r = 0.0
+        if s == :hungry
+            r += -10.0
+        end
+        if a == :feed
+            r += -5.0
+        elseif a == :sing
+            r+= -0.5
+        end
+        return r
+    end
+)

Explicit Interface

using POMDPs
+using POMDPTools
+
+struct CryingBabyState # Alternatively, you could just use a Bool or Symbol for the state.
+    hungry::Bool
+end
+
+struct CryingBabyPOMDP <: POMDP{CryingBabyState, Symbol, Symbol}
+    p_sated_to_hungry::Float64
+    p_cry_feed_hungry::Float64
+    p_cry_sing_hungry::Float64
+    p_cry_ignore_hungry::Float64
+    p_cry_feed_sated::Float64
+    p_cry_sing_sated::Float64
+    p_cry_ignore_sated::Float64
+    reward_hungry::Float64
+    reward_feed::Float64
+    reward_sing::Float64
+    discount_factor::Float64
+end
+
+function CryingBabyPOMDP(;
+    p_sated_to_hungry=0.1,
+    p_cry_feed_hungry=0.8,
+    p_cry_sing_hungry=0.9,
+    p_cry_ignore_hungry=0.8,
+    p_cry_feed_sated=0.1,
+    p_cry_sing_sated=0.0,
+    p_cry_ignore_sated=0.1,
+    reward_hungry=-10.0,
+    reward_feed=-5.0,
+    reward_sing=-0.5,
+    discount_factor=0.9
+)
+    return CryingBabyPOMDP(p_sated_to_hungry, p_cry_feed_hungry,
+        p_cry_sing_hungry, p_cry_ignore_hungry, p_cry_feed_sated,
+        p_cry_sing_sated, p_cry_ignore_sated, reward_hungry,
+        reward_feed, reward_sing, discount_factor)
+end
+
+POMDPs.actions(::CryingBabyPOMDP) = [:feed, :sing, :ignore]
+POMDPs.states(::CryingBabyPOMDP) = [CryingBabyState(false), CryingBabyState(true)]
+POMDPs.observations(::CryingBabyPOMDP) = [:crying, :quiet]
+POMDPs.stateindex(::CryingBabyPOMDP, s::CryingBabyState) = s.hungry ? 2 : 1
+POMDPs.obsindex(::CryingBabyPOMDP, o::Symbol) = o == :crying ? 1 : 2
+POMDPs.actionindex(::CryingBabyPOMDP, a::Symbol) = a == :feed ? 1 : a == :sing ? 2 : 3
+
+function POMDPs.transition(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol)
+    if a == :feed
+        return Deterministic(CryingBabyState(false))
+    elseif s == :sated # :sated and a != :feed
+        return SparseCat([CryingBabyState(false), CryingBabyState(true)], [1 - pomdp.p_sated_to_hungry, pomdp.p_sated_to_hungry])
+    else # s == :hungry and a != :feed
+        return Deterministic(CryingBabyState(true))
+    end
+end
+
+function POMDPs.observation(pomdp::CryingBabyPOMDP, a::Symbol, sp::CryingBabyState)
+    if sp.hungry
+        if a == :sing
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_hungry, 1 - pomdp.p_cry_sing_hungry])
+        elseif a== :ignore
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_hungry, 1 - pomdp.p_cry_ignore_hungry])
+        else # a == :feed
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_hungry, 1 - pomdp.p_cry_feed_hungry])
+        end
+    else # sated
+        if a == :sing
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_sated, 1 - pomdp.p_cry_sing_sated])
+        elseif a== :ignore
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_sated, 1 - pomdp.p_cry_ignore_sated])
+        else # a == :feed
+            return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_sated, 1 - pomdp.p_cry_feed_sated])
+        end
+    end
+end
+
+function POMDPs.reward(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol)
+    r = 0.0
+    if s.hungry
+        r += pomdp.reward_hungry
+    end
+    if a == :feed
+        r += pomdp.reward_feed
+    elseif a == :sing
+        r += pomdp.reward_sing
+    end
+    return r
+end
+
+POMDPs.discount(pomdp::CryingBabyPOMDP) = pomdp.discount_factor
+
+POMDPs.initialstate(::CryingBabyPOMDP) = Deterministic(CryingBabyState(false))
+
+explicit_crying_baby_pomdp = CryingBabyPOMDP()

Generative Interface

This crying baby problem should not be implemented using the generative interface. However, this example is provided for pedagogical purposes.

using POMDPs
+using POMDPTools
+using Random
+
+struct GenCryingBabyState # Alternatively, you could just use a Bool or Symbol for the state.
+    hungry::Bool
+end
+
+struct GenCryingBabyPOMDP <: POMDP{GenCryingBabyState, Symbol, Symbol}
+    p_sated_to_hungry::Float64
+    p_cry_feed_hungry::Float64
+    p_cry_sing_hungry::Float64
+    p_cry_ignore_hungry::Float64
+    p_cry_feed_sated::Float64
+    p_cry_sing_sated::Float64
+    p_cry_ignore_sated::Float64
+    reward_hungry::Float64
+    reward_feed::Float64
+    reward_sing::Float64
+    discount_factor::Float64
+    
+    GenCryingBabyPOMDP() = new(0.1, 0.8, 0.9, 0.8, 0.1, 0.0, 0.1, -10.0, -5.0, -0.5, 0.9)    
+end
+
+function POMDPs.gen(pomdp::GenCryingBabyPOMDP, s::GenCryingBabyState, a::Symbol, rng::AbstractRNG)
+    
+    if a == :feed
+        sp = GenCryingBabyState(false)
+    else 
+        sp = rand(rng) < pomdp.p_sated_to_hungry ? GenCryingBabyState(true) : GenCryingBabyState(false)
+    end
+    
+    if sp.hungry
+        if a == :sing
+            o = rand(rng) < pomdp.p_cry_sing_hungry ? :crying : :quiet
+        elseif a== :ignore
+            o = rand(rng) < pomdp.p_cry_ignore_hungry ? :crying : :quiet
+        else # a == :feed
+            o = rand(rng) < pomdp.p_cry_feed_hungry ? :crying : :quiet
+        end
+    else # sated
+        if a == :sing
+            o = rand(rng) < pomdp.p_cry_sing_sated ? :crying : :quiet
+        elseif a== :ignore
+            o = rand(rng) < pomdp.p_cry_ignore_sated ? :crying : :quiet
+        else # a == :feed
+            o = rand(rng) < pomdp.p_cry_feed_sated ? :crying : :quiet
+        end
+    end
+    
+    r = 0.0
+    if sp.hungry
+        r += pomdp.reward_hungry
+    end
+    if a == :feed
+        r += pomdp.reward_feed
+    elseif a == :sing
+        r += pomdp.reward_sing
+    end
+    
+    return (sp=sp, o=o, r=r) 
+end
+
+POMDPs.initialstate(::GenCryingBabyPOMDP) = Deterministic(GenCryingBabyState(false))
+
+gen_crying_baby_pomdp = GenCryingBabyPOMDP()

Probability Tables

For this implementation we will use the following indexes:

  • States
    • :sated = 1
    • :hungry = 2
  • Actions
    • :feed = 1
    • :sing = 2
    • :ignore = 3
  • Observations
    • :crying = 1
    • :quiet = 2
using POMDPModels
+
+T = zeros(2, 3, 2) # |S| x |A| x |S'|, T[sp, a, s] = p(sp | a, s)
+T[:, 1, :] = [1.0 1.0; 
+              0.0 0.0]
+T[:, 2, :] = [0.9 0.0; 
+              0.1 1.0]
+T[:, 3, :] = [0.9 0.0; 
+              0.1 1.0]
+
+O = zeros(2, 3, 2) # |O| x |A| x |S'|, O[o, a, sp] = p(o | a, sp)
+O[:, 1, :] = [0.1 0.8; 
+              0.9 0.2]
+O[:, 2, :] = [0.0 0.9;
+              1.0 0.1]
+O[:, 3, :] = [0.1 0.8;
+              0.9 0.2]
+
+R = zeros(2, 3) # |S| x |A|
+R = [-5.0 -0.5 0.0;
+     -15.0 -10.5 0.0]
+     
+discount = 0.9
+
+tabular_crying_baby_pomdp = TabularPOMDP(T, R, O, discount)
diff --git a/previews/PR563/example_gridworld_mdp/index.html b/previews/PR563/example_gridworld_mdp/index.html new file mode 100644 index 00000000..f9f5e5b2 --- /dev/null +++ b/previews/PR563/example_gridworld_mdp/index.html @@ -0,0 +1,403 @@ + +GridWorld MDP Tutorial · POMDPs.jl

GridWorld MDP Tutorial

In this tutorial, we provide a simple example of how to define a Markov decision process (MDP) using the POMDPS.jl interface. We will then solve the MDP using value iteration and Monte Carlo tree search (MCTS). We will walk through constructing the MDP using the explicit interface which involves defining a new type for the MDP and then extending different components of the POMDPs.jl interface for that type.

Dependencies

We need a few modules in order to run this example. All of the models can be added by running the following command in the Julia REPL:

using Pkg
+
+Pkg.add("POMDPs")
+Pkg.add("POMDPTools")
+Pkg.add("DiscreteValueIteration")
+Pkg.add("MCTS")

If you already had the models installed, it is prudent to update them to the latest version:

Pkg.update()

Now that we have the models installed, we can load them into our workspace:

using POMDPs
+using POMDPTools
+using DiscreteValueIteration
+using MCTS

Problem Overview

In Grid World, we are trying to control an agent who has trouble moving in the desired direction. In our problem, we have four reward states within the a grid. Each position on the grid represents a state, and the positive reward states are terminal (the agent stops receiving reward after reaching them and performing an action from that state). The agent has four actions to choose from: up, down, left, right. The agent moves in the desired direction with a probability of $0.7$, and with a probability of $0.1$ in each of the remaining three directions. If the agent bumps into the outside wall, there is a penalty of $1$ (i.e. reward of $-1$). The problem has the following form:

Grid World

Defining the Grid World MDP Type

In POMDPs.jl, an MDP is defined by creating a subtype of the MDP abstract type. The types of the states and actions for the MDP are declared as parameters of the MDP type. For example, if our states and actions are both represented by integers, we can define our MDP type as follows:

struct MyMDP <: MDP{Int64, Int64} # MDP{StateType, ActionType}
+    # fields go here
+end

In our grid world problem, we will represent the states using a custom type that designates the x and y coordinate within the grid. The actions will by represented by a symbol.

GridWorldState

There are numerous ways to represent the state of the agent in a grid world. We will use a custom type that designates the x and y coordinate within the grid.

struct GridWorldState
+    x::Int64
+    y::Int64
+end

To help us later, let's extend the == for our GridWorldStat:

function Base.:(==)(s1::GridWorldState, s2::GridWorldState)
+    return s1.x == s2.x && s1.y == s2.y
+end

GridWorld Actions

Since our action is the direction the agent chooses to go (i.e. up, down, left, right), we can use a Symbol to represent it. Note that in this case, we are not defining a custom type for our action, instead we represent it directly with a symbol. Our actions will be :up, :down, :left, and :right.

GridWorldMDP

Now that we have defined our types for states and actions, we can define our MDP type. We will call it GridWorldMDP and it will be a subtype of MDP{GridWorldState, Symbol}.

struct GridWorldMDP <: MDP{GridWorldState, Symbol}
+    size_x::Int64 # x size of the grid
+    size_y::Int64 # y size of the grid
+    reward_states_values::Dict{GridWorldState, Float64} # Dictionary mapping reward states to their values
+    hit_wall_reward::Float64 # reward for hitting a wall
+    tprob::Float64 # probability of transitioning to the desired state
+    discount_factor::Float64 # discount factor
+end

We can define a constructor for our GridWorldMDP to make it easier to create instances of our MDP.

function GridWorldMDP(;
+    size_x::Int64=10,
+    size_y::Int64=10,
+    reward_states_values::Dict{GridWorldState, Float64}=Dict(
+        GridWorldState(4, 3) => -10.0,
+        GridWorldState(4, 6) => -5.0,
+        GridWorldState(9, 3) => 10.0,
+        GridWorldState(8, 8) => 3.0),
+    hit_wall_reward::Float64=-1.0,
+    tprob::Float64=0.7,
+    discount_factor::Float64=0.9)
+    return GridWorldMDP(size_x, size_y, reward_states_values, hit_wall_reward, tprob, discount_factor)
+end
Main.GridWorldMDP

To help us visualize our MDP, we can extend show for our GridWorldMDP type:

function Base.show(io::IO, mdp::GridWorldMDP)
+    println(io, "Grid World MDP")
+    println(io, "\tSize x: $(mdp.size_x)")
+    println(io, "\tSize y: $(mdp.size_y)")
+    println(io, "\tReward states:")
+    for (key, value) in mdp.reward_states_values
+        println(io, "\t\t$key => $value")
+    end
+    println(io, "\tHit wall reward: $(mdp.hit_wall_reward)")
+    println(io, "\tTransition probability: $(mdp.tprob)")
+    println(io, "\tDiscount: $(mdp.discount_factor)")
+end

Now lets create an instance of our GridWorldMDP:

mdp = GridWorldMDP()
Grid World MDP
+	Size x: 10
+	Size y: 10
+	Reward states:
+		Main.GridWorldState(9, 3) => 10.0
+		Main.GridWorldState(8, 8) => 3.0
+		Main.GridWorldState(4, 6) => -5.0
+		Main.GridWorldState(4, 3) => -10.0
+	Hit wall reward: -1.0
+	Transition probability: 0.7
+	Discount: 0.9
+
Note

In this definition of the problem, our coordinates start in the bottom left of the grid. That is GridState(1, 1) is the bottom left of the grid and GridState(10, 10) would be on the right of the grid with a grid size of 10 by 10.

Grid World State Space

The state space in an MDP represents all the states in the problem. There are two primary functionalities that we want our spaces to support. We want to be able to iterate over the state space (for Value Iteration for example), and sometimes we want to be able to sample form the state space (used in some POMDP solvers). In this notebook, we will only look at iterable state spaces.

Since we can iterate over elements of an array, and our problem is small, we can store all of our states in an array. We also have a terminal state based on the definition of our problem. We can represent that as a location outside of the grid (i.e. (-1, -1)).

function POMDPs.states(mdp::GridWorldMDP)
+    states_array = GridWorldState[]
+    for x in 1:mdp.size_x
+        for y in 1:mdp.size_y
+            push!(states_array, GridWorldState(x, y))
+        end
+    end
+    push!(states_array, GridWorldState(-1, -1)) # Adding the terminal state
+    return states_array
+end

Let's view some of the states in our state space:

@show states(mdp)[1:5]
5-element Vector{Main.GridWorldState}:
+ Main.GridWorldState(1, 1)
+ Main.GridWorldState(1, 2)
+ Main.GridWorldState(1, 3)
+ Main.GridWorldState(1, 4)
+ Main.GridWorldState(1, 5)

We also need a other functions related to the state space.

# Check if a state is the terminal state
+POMDPs.isterminal(mdp::GridWorldMDP, s::GridWorldState) = s == GridWorldState(-1, -1)
+
+# Define the initial state distribution (always start in the bottom left)
+POMDPs.initialstate(mdp::GridWorldMDP) = Deterministic(GridWorldState(1, 1))
+
+# Function that returns the index of a state in the state space
+function POMDPs.stateindex(mdp::GridWorldMDP, s::GridWorldState)
+    if isterminal(mdp, s)
+        return length(states(mdp))
+    end
+
+    @assert 1 <= s.x <= mdp.size_x "Invalid state"
+    @assert 1 <= s.y <= mdp.size_y "Invalid state"
+
+    si = (s.x - 1) * mdp.size_y + s.y
+    return si
+end

Large State Spaces

If your problem is very large we probably do not want to store all of our states in an array. We can create an iterator using indexing functions to help us out. One way of doing this is to define a function that returns a state from an index and then construct an iterator. This is an example of how we can do that for the Grid World problem.

Note

If you run this section, you will redefine the states(::GridWorldMDP) that we just defined in the previous section.

    # Define the length of the state space, number of grid locations plus the terminal state
+    Base.length(mdp::GridWorldMDP) = mdp.size_x * mdp.size_y + 1
+
+    # `states` now returns the mdp, which we will construct our iterator from
+    POMDPs.states(mdp::GridWorldMDP) = mdp
+
+    function Base.getindex(mdp::GridWorldMDP, si::Int) # Enables mdp[si]
+        @assert si <= length(mdp) "Index out of bounds"
+        @assert si > 0  "Index out of bounds"
+
+        # First check if we are in the terminal state (which we define as the last state)
+        if si == length(mdp)
+            return GridWorldState(-1, -1)
+        end
+
+        # Otherwise, we need to calculate the x and y coordinates
+        y = (si - 1) % mdp.size_y + 1
+        x = div((si - 1), mdp.size_y) + 1
+        return GridWorldState(x, y)
+    end
+
+    function Base.getindex(mdp::GridWorldMDP, si_range::UnitRange{Int}) # Enables mdp[1:5]
+        return [getindex(mdp, si) for si in si_range]
+    end
+
+    Base.firstindex(mdp::GridWorldMDP) = 1 # Enables mdp[begin]
+    Base.lastindex(mdp::GridWorldMDP) = length(mdp) # Enables mdp[end]
+
+    # We can now construct an iterator
+    function Base.iterate(mdp::GridWorldMDP, ii::Int=1)
+        if ii > length(mdp)
+            return nothing
+        end
+        s = getindex(mdp, ii)
+        return (s, ii + 1)
+    end

Similar to above, let's iterate over a few of the states in our state space:

@show states(mdp)[1:5]
+@show mdp[begin]
+@show mdp[end]
Main.GridWorldState(-1, -1)

Grid World Action Space

The action space is the set of all actions available to the agent. In the grid world problem the action space consists of up, down, left, and right. We can define the action space by implementing a new method of the actions function.

POMDPs.actions(mdp::GridWorldMDP) = [:up, :down, :left, :right]

Similar to the state space, we need a function that returns an index given an action.

function POMDPs.actionindex(mdp::GridWorldMDP, a::Symbol)
+    @assert in(a, actions(mdp)) "Invalid action"
+    return findfirst(x -> x == a, actions(mdp))
+end

Grid World Transition Function

MDPs often define the transition function as $T(s^{\prime} \mid s, a)$, which is the probability of transitioning to state $s^{\prime}$ given that we are in state $s$ and take action $a$. For the POMDPs.jl interface, we define the transition function as a distribution over the next states. That is, we want $T(\cdot \mid s, a)$ which is a function that takes in a state and an action and returns a distribution over the next states.

For our grid world example, there are only a few states to which the agent can transition and thus only a few states with nonzero probability in $T(\cdot \mid s, a)$. We can use the SparseCat distribution to represent this. The SparseCat distribution is a categorical distribution that only stores the nonzero probabilities. We can define our transition function as follows:

function POMDPs.transition(mdp::GridWorldMDP, s::GridWorldState, a::Symbol)
+    # If we are in the terminal state, we stay in the terminal state
+    if isterminal(mdp, s)
+        return SparseCat([s], [1.0])
+    end
+
+    # If we are in a positive reward state, we transition to the terminal state
+    if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] > 0
+        return SparseCat([GridWorldState(-1, -1)], [1.0])
+    end
+
+    # Probability of going in a direction other than the desired direction
+    tprob_other = (1 - mdp.tprob) / 3
+
+    new_state_up = GridWorldState(s.x, min(s.y + 1, mdp.size_y))
+    new_state_down = GridWorldState(s.x, max(s.y - 1, 1))
+    new_state_left = GridWorldState(max(s.x - 1, 1), s.y)
+    new_state_right = GridWorldState(min(s.x + 1, mdp.size_x), s.y)
+
+    new_state_vector = [new_state_up, new_state_down, new_state_left, new_state_right]
+    t_prob_vector = fill(tprob_other, 4)
+
+    if a == :up
+        t_prob_vector[1] = mdp.tprob
+    elseif a == :down
+        t_prob_vector[2] = mdp.tprob
+    elseif a == :left
+        t_prob_vector[3] = mdp.tprob
+    elseif a == :right
+        t_prob_vector[4] = mdp.tprob
+    else
+        error("Invalid action")
+    end
+
+    # Combine probabilities for states that are the same
+    for i in 1:4
+        for j in (i + 1):4
+            if new_state_vector[i] == new_state_vector[j]
+                t_prob_vector[i] += t_prob_vector[j]
+                t_prob_vector[j] = 0.0
+            end
+        end
+    end
+
+    # Remove states with zero probability
+    new_state_vector = new_state_vector[t_prob_vector .> 0]
+    t_prob_vector = t_prob_vector[t_prob_vector .> 0]
+
+    return SparseCat(new_state_vector, t_prob_vector)
+end

Let's examline a few transitions:

@show transition(mdp, GridWorldState(1, 1), :up)
                                                                         SparseCat distribution           
+                                                               ┌                                        ┐ 
+   Main.GridWorldState(1, 2) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 0.7   
+   Main.GridWorldState(1, 1) ■■■■■■■■■■ 0.2                            
+   Main.GridWorldState(2, 1) ■■■■■ 0.1                                 
+                                                               └                                        ┘ 
@show transition(mdp, GridWorldState(1, 1), :left)
                                                                         SparseCat distribution           
+                                                               ┌                                        ┐ 
+   Main.GridWorldState(1, 2) ■■■■ 0.1                                  
+   Main.GridWorldState(1, 1) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 0.8   
+   Main.GridWorldState(2, 1) ■■■■ 0.1                                  
+                                                               └                                        ┘ 
@show transition(mdp, GridWorldState(9, 3), :right)
                                                                           SparseCat distribution           
+                                                                 ┌                                        ┐ 
+   Main.GridWorldState(-1, -1) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1   
+                                                                 └                                        ┘ 
@show transition(mdp, GridWorldState(-1, -1), :down)
                                                                           SparseCat distribution           
+                                                                 ┌                                        ┐ 
+   Main.GridWorldState(-1, -1) ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 1   
+                                                                 └                                        ┘ 

Grid World Reward Function

In our problem, we have a reward function that depends on the next state as well (i.e. if we hit a wall, we stay in the same state and get a reward of $-1$). We can still construct a reward function that only depends on the current state and action by using expectation over the next state. That is, we can define our reward function as $R(s, a) = \mathbb{E}_{s^{\prime} \sim T(\cdot \mid s, a)}[R(s, a, s^{\prime})]$.

# First, let's define the reward function given the state, action, and next state
+function POMDPs.reward(mdp::GridWorldMDP, s::GridWorldState, a::Symbol, sp::GridWorldState)
+    # If we are in the terminal state, we get a reward of 0
+    if isterminal(mdp, s)
+        return 0.0
+    end
+
+    # If we are in a positive reward state, we get the reward of that state
+    # For a positive reward, we transition to the terminal state, so we don't have
+    # to worry about the next state (i.g. hitting a wall)
+    if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] > 0
+        return mdp.reward_states_values[s]
+    end
+
+    # If we are in a negative reward state, we get the reward of that state
+    # If the negative reward state is on the edge of the grid, we can also be in this state
+    # and hit a wall, so we need to check for that
+    r = 0.0
+    if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] < 0
+        r += mdp.reward_states_values[s]
+    end
+
+    # If we hit a wall, we get a reward of -1
+    if s == sp
+        r += mdp.hit_wall_reward
+    end
+
+    return r
+end
+
+# Now we can define the reward function given the state and action
+function POMDPs.reward(mdp::GridWorldMDP, s::GridWorldState, a::Symbol)
+    r = 0.0
+    for (sp, p) in transition(mdp, s, a)
+        r += p * reward(mdp, s, a, sp)
+    end
+    return r
+end

Let's examine a few rewards:

@show reward(mdp, GridWorldState(1, 1), :up)
-0.20000000000000004
@show reward(mdp, GridWorldState(1, 1), :left)
-0.7999999999999999
@show reward(mdp, GridWorldState(9, 3), :right)
10.0
@show reward(mdp, GridWorldState(-1, -1), :down)
0.0
@show reward(mdp, GridWorldState(2, 3), :up)
0.0

Grid World Remaining Functions

We are almost done! We still need to define discount. Let's first use POMDPLinter to check if we have defined all the functions we need for DiscreteValueIteration:

using POMDPLinter
+
+@show_requirements POMDPs.solve(ValueIterationSolver(), mdp)
INFO: POMDPLinter requirements for solve(::ValueIterationSolver, ::Union{MDP,POMDP}) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}):
+  [X] discount(::GridWorldMDP)
+  [✔] transition(::GridWorldMDP, ::GridWorldState, ::Symbol)
+  [✔] reward(::GridWorldMDP, ::GridWorldState, ::Symbol, ::GridWorldState)
+  [✔] stateindex(::GridWorldMDP, ::GridWorldState)
+  [✔] actionindex(::GridWorldMDP, ::Symbol)
+  [✔] actions(::GridWorldMDP, ::GridWorldState)
+  [✔] length(::GridWorldMDP)
+  [✔] length(::Array{Symbol1})
+  [✔] support(::SparseCat{Vector{Main.GridWorldState}Vector{Float64}})
+  [✔] pdf(::SparseCat{Vector{Main.GridWorldState}Vector{Float64}}, ::GridWorldState)
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::GridWorldMDP)
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::GridWorldMDP)
+Note: Missing methods are often due to incorrect importing. You must explicitly import POMDPs functions to add new methods.

As we expected, we need to define discount.

function POMDPs.discount(mdp::GridWorldMDP)
+    return mdp.discount_factor
+end

Let's check again:

@show_requirements POMDPs.solve(ValueIterationSolver(), mdp)
INFO: POMDPLinter requirements for solve(::ValueIterationSolver, ::Union{MDP,POMDP}) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}):
+  [✔] discount(::GridWorldMDP)
+  [✔] transition(::GridWorldMDP, ::GridWorldState, ::Symbol)
+  [✔] reward(::GridWorldMDP, ::GridWorldState, ::Symbol, ::GridWorldState)
+  [✔] stateindex(::GridWorldMDP, ::GridWorldState)
+  [✔] actionindex(::GridWorldMDP, ::Symbol)
+  [✔] actions(::GridWorldMDP, ::GridWorldState)
+  [✔] length(::GridWorldMDP)
+  [✔] length(::Array{Symbol1})
+  [✔] support(::SparseCat{Vector{Main.GridWorldState}Vector{Float64}})
+  [✔] pdf(::SparseCat{Vector{Main.GridWorldState}Vector{Float64}}, ::GridWorldState)
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::GridWorldMDP)
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::GridWorldMDP)

Solving the Grid World MDP (Value Iteration)

Now that we have defined our MDP, we can solve it using Value Iteration. We will use the ValueIterationSolver from the DiscreteValueIteration package. First, we construct the a Solver type which contains the solver parameters. Then we call POMDPs.solve to solve the MDP and return a policy.

# Initialize the problem (we have already done this, but just calling it again for completeness in the example)
+mdp = GridWorldMDP()
+
+# Initialize the solver with desired parameters
+solver = ValueIterationSolver(; max_iterations=100, belres=1e-3, verbose=true)
+
+# Solve for an optimal policy
+vi_policy = POMDPs.solve(solver, mdp)
[Iteration 1   ] residual:         10 | iteration runtime:      0.214 ms, (  0.000214 s total)
+[Iteration 2   ] residual:        6.3 | iteration runtime:      0.253 ms, (  0.000466 s total)
+[Iteration 3   ] residual:       4.53 | iteration runtime:      0.291 ms, (  0.000758 s total)
+[Iteration 4   ] residual:       3.21 | iteration runtime:      0.197 ms, (  0.000955 s total)
+[Iteration 5   ] residual:       2.31 | iteration runtime:      0.182 ms, (   0.00114 s total)
+[Iteration 6   ] residual:       1.62 | iteration runtime:      0.184 ms, (   0.00132 s total)
+[Iteration 7   ] residual:       1.24 | iteration runtime:      0.182 ms, (    0.0015 s total)
+[Iteration 8   ] residual:       1.06 | iteration runtime:      0.185 ms, (   0.00169 s total)
+[Iteration 9   ] residual:      0.865 | iteration runtime:      0.234 ms, (   0.00192 s total)
+[Iteration 10  ] residual:      0.657 | iteration runtime:      0.180 ms, (    0.0021 s total)
+[Iteration 11  ] residual:      0.545 | iteration runtime:      0.183 ms, (   0.00228 s total)
+[Iteration 12  ] residual:      0.455 | iteration runtime:      0.182 ms, (   0.00247 s total)
+[Iteration 13  ] residual:      0.378 | iteration runtime:      0.177 ms, (   0.00264 s total)
+[Iteration 14  ] residual:      0.306 | iteration runtime:      0.173 ms, (   0.00282 s total)
+[Iteration 15  ] residual:      0.211 | iteration runtime:      0.175 ms, (   0.00299 s total)
+[Iteration 16  ] residual:      0.132 | iteration runtime:      0.175 ms, (   0.00317 s total)
+[Iteration 17  ] residual:     0.0778 | iteration runtime:      0.177 ms, (   0.00334 s total)
+[Iteration 18  ] residual:     0.0437 | iteration runtime:      0.181 ms, (   0.00352 s total)
+[Iteration 19  ] residual:     0.0237 | iteration runtime:      0.178 ms, (    0.0037 s total)
+[Iteration 20  ] residual:     0.0125 | iteration runtime:      0.176 ms, (   0.00388 s total)
+[Iteration 21  ] residual:    0.00649 | iteration runtime:      0.177 ms, (   0.00405 s total)
+[Iteration 22  ] residual:    0.00332 | iteration runtime:      0.178 ms, (   0.00423 s total)
+[Iteration 23  ] residual:    0.00167 | iteration runtime:      0.201 ms, (   0.00443 s total)
+[Iteration 24  ] residual:   0.000834 | iteration runtime:      0.176 ms, (   0.00461 s total)

We can now use the policy to compute the optimal action for a given state:

s = GridWorldState(9, 2)
+@show action(vi_policy, s)
:up
s = GridWorldState(8, 3)
+@show action(vi_policy, s)
:right

Solving the Grid World MDP (MCTS)

Similar to the process with Value Iteration, we can solve the MDP using MCTS. We will use the MCTSSolver from the MCTS package.

# Initialize the problem (we have already done this, but just calling it again for completeness in the example)
+mdp = GridWorldMDP()
+
+# Initialize the solver with desired parameters
+solver = MCTSSolver(n_iterations=1000, depth=20, exploration_constant=10.0)
+
+# Now we construct a planner by calling POMDPs.solve. For online planners, the computation for the
+# optimal action occurs in the call to `action`.
+mcts_planner = POMDPs.solve(solver, mdp)

Similar to the value iteration policy, we can use the policy to compute the action for a given state:

s = GridWorldState(9, 2)
+@show action(mcts_planner, s)
:up
s = GridWorldState(8, 3)
+@show action(mcts_planner, s)
:right

Visualizing the Value Iteration Policy

We can visualize the value iteration policy by plotting the value function and the policy. We can use numerous plotting packages to do this, but we will use UnicodePlots for this example.

using UnicodePlots
+using Printf

Value Function as a Heatmap

We can plot the value function as a heatmap. The value function is a function over the state space, so we need to iterate over the state space and store the value at each state. We can use the value function to evaluate the value function at a given state.

# Initialize the value function array
+value_function = zeros(mdp.size_y, mdp.size_x)
+
+# Iterate over the state space and store the value at each state
+for s in states(mdp)
+    if isterminal(mdp, s)
+        continue
+    end
+    value_function[s.y, s.x] = value(vi_policy, s)
+end
+
+# Plot the value function
+heatmap(value_function;
+    title="GridWorld VI Value Function",
+    xlabel="x position",
+    ylabel="y position",
+    colormap=:inferno
+)
                 GridWorld VI Value Function     
+                 ┌──────────┐  10 
+              10 ▄▄▄▄▄▄▄▄ ┌──┐
+                 ▄▄▄▄▄▄ ▄▄
+   y position    ▄▄ ▄▄
+                 ▄▄ ▄▄
+               1 ▄▄▄▄ └──┘
+                 └──────────┘ -7  
+                  1       10      
+                  x position      
Note

Rendering of unicode plots in the documentation is not optimal. For a better image, run this locally in a REPL.

Visualizing the Value Iteration Policy

One way to visualize the policy is to plot the action that the policy takes at each state.

# Initialize the policy array
+policy_array = fill(:up, mdp.size_x, mdp.size_y)
+
+# Iterate over the state space and store the action at each state
+for s in states(mdp)
+    if isterminal(mdp, s)
+        continue
+    end
+    policy_array[s.x, s.y] = action(vi_policy, s)
+end
+
+# Let's define a mapping from symbols to unicode arrows
+arrow_map = Dict(
+    :up => " ↑ ",
+    :down => " ↓ ",
+    :left => " ← ",
+    :right => " → "
+)
+
+# Plot the policy to the terminal, with the origin in the bottom left
+@printf("        GridWorld VI Policy      \n")
+for y in mdp.size_y+1:-1:0
+    if y == mdp.size_y+1 || y == 0
+        for xi in 0:10
+            if xi == 0
+                print("   ")
+            elseif y == mdp.size_y+1
+                print("___")
+            else
+                print("---")
+            end
+        end
+    else
+        for x in 0:mdp.size_x+1
+            if x == 0
+                @printf("%2d |", y)
+            elseif x == mdp.size_x + 1
+                print("|")
+            else
+                print(arrow_map[policy_array[x, y]])
+            end
+        end
+    end
+    println()
+    if y == 0
+        for xi in 0:10
+            if xi == 0
+                print("   ")
+            else
+                print(" $xi ")
+            end
+        end
+    end
+end
        GridWorld VI Policy
+   ______________________________
+10 | →  ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓  ↓ |
+ 9 | →  →  →  →  ↓  ↓  ↓  →  ↓  ↓ |
+ 8 | →  →  →  →  →  ↓  ↓  ↑  ↓  ↓ |
+ 7 | →  →  →  →  →  →  ↓  ↓  ↓  ↓ |
+ 6 | →  ↓  ↓  →  →  →  ↓  ↓  ↓  ↓ |
+ 5 | →  →  →  →  →  →  →  ↓  ↓  ↓ |
+ 4 | →  →  →  →  →  →  →  →  ↓  ↓ |
+ 3 | →  ↓  ↓  →  →  →  →  →  ↑  ← |
+ 2 | →  →  →  →  →  →  →  →  ↑  ↑ |
+ 1 | →  →  →  →  →  →  ↑  ↑  ↑  ↑ |
+   ------------------------------
+    1  2  3  4  5  6  7  8  9  10

Seeing a Policy In Action

Another useful tool is to view the policy in action by creating a gif of a simulation. To accomplish this, we could use POMDPGifs. To use POMDPGifs, we need to extend the POMDPTools.render function to GridWorldMDP. Please reference Gallery of POMDPs.jl Problems for examples of this process.

diff --git a/previews/PR563/example_simulations/index.html b/previews/PR563/example_simulations/index.html new file mode 100644 index 00000000..69c79b87 --- /dev/null +++ b/previews/PR563/example_simulations/index.html @@ -0,0 +1,181 @@ + +Simulations Examples · POMDPs.jl

Simulations Examples

In these simulation examples, we will use the crying baby POMDPs defined in the Defining a POMDP section (i.e. quick_crying_baby_pomdp, explicit_crying_baby_pomdp, gen_crying_baby_pomdp, and tabular_crying_baby_pomdp).

Stepthrough

The stepthrough simulator provides a window into the simulation with a for-loop syntax.

Within the body of the for loop, we have access to the belief, the action, the observation, and the reward, in each step. We also calculate the sum of the rewards in this example, but note that this is not the discounted reward.

policy = RandomPolicy(quick_crying_baby_pomdp)
+r_sum = 0.0
+step = 0
+for (b, s, a, o, r) in stepthrough(quick_crying_baby_pomdp, policy, DiscreteUpdater(quick_crying_baby_pomdp), "b,s,a,o,r"; max_steps=4)
+    step += 1
+    println("Step $step")
+    println("b = sated => $(b.b[1]), hungry => $(b.b[2])")
+    @show s
+    @show a
+    @show o
+    @show r
+    r_sum += r
+    @show r_sum
+    println()
+end
Step 1
+b = sated => 1.0, hungry => 0.0
+s = :sated
+a = :feed
+o = :crying
+r = -5.0
+r_sum = -5.0
+
+Step 2
+b = sated => 1.0, hungry => 0.0
+s = :sated
+a = :sing
+o = :quiet
+r = -0.5
+r_sum = -5.5
+
+Step 3
+b = sated => 0.989010989010989, hungry => 0.010989010989010992
+s = :sated
+a = :sing
+o = :quiet
+r = -0.5
+r_sum = -6.0
+
+Step 4
+b = sated => 0.9878048780487805, hungry => 0.012195121951219514
+s = :sated
+a = :ignore
+o = :quiet
+r = 0.0
+r_sum = -6.0

Rollout Simulations

While stepthrough is a flexible and convenient tool for many user-facing demonstrations, it is often less error-prone to use the standard simulate function with a Simulator object. The simplest Simulator is the RolloutSimulator. It simply runs a simulation and returns the discounted reward.

policy = RandomPolicy(explicit_crying_baby_pomdp)
+sim = RolloutSimulator(max_steps=10)
+r_sum = simulate(sim, explicit_crying_baby_pomdp, policy)
+println("Total discounted reward: $r_sum")
Total discounted reward: -46.615977995

Recording Histories

Sometimes it is important to record the entire history of a simulation for further examination. This can be accomplished with a HistoryRecorder.

policy = RandomPolicy(tabular_crying_baby_pomdp)
+hr = HistoryRecorder(max_steps=5)
+history = simulate(hr, tabular_crying_baby_pomdp, policy, DiscreteUpdater(tabular_crying_baby_pomdp), Deterministic(1))

The history object produced by a HistoryRecorder is a SimHistory, documented in the POMDPTools simulator section Histories. The information in this object can be accessed in several ways. For example, there is a function:

discounted_reward(history)
-23.1045

Accessor functions like state_hist and action_hist can also be used to access parts of the history:

state_hist(history)
6-element Vector{Int64}:
+ 2
+ 1
+ 2
+ 2
+ 2
+ 2
collect(action_hist(history))
5-element Vector{Int64}:
+ 1
+ 2
+ 3
+ 2
+ 3

Keeping track of which states, actions, and observations belong together can be tricky (for example, since there is a starting state, and ending state, but no action is taken from the ending state, the list of actions has a different length than the list of states). It is often better to think of histories in terms of steps that include both starting and ending states.

The most powerful function for accessing the information in a SimHistory is the eachstep function which returns an iterator through named tuples representing each step in the history. The eachstep function is similar to the stepthrough function above except that it iterates through the immutable steps of a previously simulated history instead of conducting the simulation as the for loop is being carried out.

r_sum = 0.0
+step = 0
+for step_i in eachstep(sim_history, "b,s,a,o,r")
+    step += 1
+    println("Step $step")
+    println("step_i.b = sated => $(step_i.b.b[1]), hungry => $(step_i.b.b[2])")
+    @show step_i.s
+    @show step_i.a
+    @show step_i.o
+    @show step_i.r
+    r_sum += step_i.r
+    @show r_sum
+    println()
+end
+end # hide
Step 1
+step_i.b = sated => 1.0, hungry => 0.0
+step_i.s = 2
+step_i.a = 1
+step_i.o = 1
+step_i.r = -15.0
+r_sum = -15.0
+
+Step 2
+step_i.b = sated => 1.0, hungry => 0.0
+step_i.s = 1
+step_i.a = 2
+step_i.o = 1
+step_i.r = -0.5
+r_sum = -15.5
+
+Step 3
+step_i.b = sated => 0.0, hungry => 1.0
+step_i.s = 2
+step_i.a = 3
+step_i.o = 1
+step_i.r = 0.0
+r_sum = -15.5
+
+Step 4
+step_i.b = sated => 0.0, hungry => 1.0
+step_i.s = 2
+step_i.a = 2
+step_i.o = 1
+step_i.r = -10.5
+r_sum = -26.0
+
+Step 5
+step_i.b = sated => 0.0, hungry => 1.0
+step_i.s = 2
+step_i.a = 3
+step_i.o = 1
+step_i.r = 0.0
+r_sum = -26.0

Parallel Simulations

It is often useful to evaluate a policy by running many simulations. The parallel simulator is the most effective tool for this. To use the parallel simulator, first create a list of Sim objects, each of which contains all of the information needed to run a simulation. Then then run the simulations using run_parallel, which will return a DataFrame with the results.

In this example, we will compare the performance of the policies we computed in the Using Different Solvers section (i.e. sarsop_policy, pomcp_planner, and heuristic_policy). To evaluate the policies, we will run 100 simulations for each policy. We can do this by adding 100 Sim objects of each policy to the list.

using DataFrames
+using StatsBase: std
+
+# Defining paramters for the simulations
+number_of_sim_to_run = 100
+max_steps = 20
+starting_seed = 1
+
+# We will also compare against a random policy
+rand_policy = RandomPolicy(quick_crying_baby_pomdp, rng=MersenneTwister(1))
+
+# Create the list of Sim objects
+sim_list = []
+
+# Add 100 Sim objects of each policy to the list.
+for sim_number in 1:number_of_sim_to_run
+    seed = starting_seed + sim_number
+
+    # Add the SARSOP policy
+    push!(sim_list, Sim(
+        quick_crying_baby_pomdp,
+        rng=MersenneTwister(seed),
+        sarsop_policy,
+        max_steps=max_steps,
+        metadata=Dict(:policy => "sarsop", :seed => seed))
+    )
+
+    # Add the POMCP policy
+    push!(sim_list, Sim(
+        quick_crying_baby_pomdp,
+        rng=MersenneTwister(seed),
+        pomcp_planner,
+        max_steps=max_steps,
+        metadata=Dict(:policy => "pomcp", :seed => seed))
+    )
+
+    # Add the heuristic policy
+    push!(sim_list, Sim(
+        quick_crying_baby_pomdp,
+        rng=MersenneTwister(seed),
+        heuristic_policy,
+        max_steps=max_steps,
+        metadata=Dict(:policy => "heuristic", :seed => seed))
+    )
+
+    # Add the random policy
+    push!(sim_list, Sim(
+        quick_crying_baby_pomdp,
+        rng=MersenneTwister(seed),
+        rand_policy,
+        max_steps=max_steps,
+        metadata=Dict(:policy => "random", :seed => seed))
+    )
+end
+
+# Run the simulations in parallel
+data = run_parallel(sim_list)
+
+# Define a function to calculate the mean and confidence interval
+function mean_and_ci(x)
+    m = mean(x)
+    ci = 1.96 * std(x) / sqrt(length(x))  # 95% confidence interval
+    return (mean = m, ci = ci)
+end
+
+# Calculate the mean and confidence interval for each policy
+grouped_df = groupby(data, :policy)
+result = combine(grouped_df, :reward => mean_and_ci => AsTable)
4×3 DataFrame
Rowpolicymeanci
String?Float64Float64
1sarsop-15.24081.84332
2pomcp-20.15491.73457
3heuristic-16.46141.91956
4random-28.18022.5492

By default, the parallel simulator only returns the reward from each simulation, but more information can be gathered by specifying a function to analyze the Sim-history pair and record additional statistics. Reference the POMDPTools simulator section for more information (Specifying information to be recorded).

diff --git a/previews/PR563/example_solvers/index.html b/previews/PR563/example_solvers/index.html new file mode 100644 index 00000000..581b5f89 --- /dev/null +++ b/previews/PR563/example_solvers/index.html @@ -0,0 +1,155 @@ + +Using Different Solvers · POMDPs.jl

Using Different Solvers

There are various solvers implemented for use out-of-the-box. Please reference the repository README for a list of MDP Solvers and POMDP Solvers implemented and maintained by the JuliaPOMDP community. We provide a few examples of how to use a small subset of these solvers.

Checking Requirements

Before using a solver, it is prudent to ensure the problem meets the requirements of the solver. Please reference the solver documentation for detailed information about the requirements of each solver.

We can use POMDPLInter to help us determine if we have all of the required components defined for a particular solver. However, not all solvers have the requirements implemented. If/when you encounter a solver that does not have the requirements implemented, please open an issue on the solver's repository.

Let's check if we have all of the required components of our problems for the QMDP solver.

using POMDPLinter
+using QMDP
+
+qmdp_solver = QMDPSolver()
+
+println("Quick Crying Baby POMDP")
+@show_requirements POMDPs.solve(qmdp_solver, quick_crying_baby_pomdp)
+
+println("\nExplicit Crying Baby POMDP")
+@show_requirements POMDPs.solve(qmdp_solver, explicit_crying_baby_pomdp)
+
+println("\nTabular Crying Baby POMDP")
+@show_requirements POMDPs.solve(qmdp_solver, tabular_crying_baby_pomdp)
+
+println("\nGen Crying Baby POMDP")
+# We don't have an actions(::GenGryingBabyPOMDP) implemented
+try
+    @show_requirements POMDPs.solve(qmdp_solver, gen_crying_baby_pomdp)
+catch err_msg
+    println(err_msg)
+end
Quick Crying Baby POMDP
+INFO: POMDPLinter requirements for solve(::QMDP.QMDPSolver, ::POMDP) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::QMDP.QMDPSolver, ::POMDP):
+  [No additional requirements]
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}) (in solve(::QMDP.QMDPSolver, ::POMDP)):
+  [✔] discount(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol})
+  [✔] transition(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol}, ::Symbol, ::Symbol)
+  [✔] reward(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol}, ::Symbol, ::Symbol, ::Symbol)
+  [✔] stateindex(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol}, ::Symbol)
+  [✔] actionindex(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol}, ::Symbol)
+  [✔] actions(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol}, ::Symbol)
+  [✔] length(::Array{Symbol1})
+  [✔] support(::Deterministic{Symbol})
+  [✔] pdf(::Deterministic{Symbol}, ::Symbol)
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol})
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::UnderlyingMDP{QuickPOMDPs.QuickPOMDP{Base.UUID("54e69510-1213-4e1c-bdba-4786f5f43750"), Symbol, Symbol, Symbol, @NamedTuple{stateindex::Dict{Symbol, Int64}, isterminal::Bool, obsindex::Dict{Symbol, Int64}, states::Vector{Symbol}, observations::Vector{Symbol}, discount::Float64, actions::Vector{Symbol}, observation::Main.var"#2#5", actionindex::Dict{Symbol, Int64}, initialstate::Deterministic{Symbol}, transition::Main.var"#1#4", reward::Main.var"#3#6"}}SymbolSymbol})
+
+Explicit Crying Baby POMDP
+INFO: POMDPLinter requirements for solve(::QMDP.QMDPSolver, ::POMDP) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::QMDP.QMDPSolver, ::POMDP):
+  [No additional requirements]
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}) (in solve(::QMDP.QMDPSolver, ::POMDP)):
+  [✔] discount(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol})
+  [✔] transition(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState, ::Symbol)
+  [✔] reward(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState, ::Symbol, ::CryingBabyState)
+  [✔] stateindex(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState)
+  [✔] actionindex(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol}, ::Symbol)
+  [✔] actions(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState)
+  [✔] length(::Array{Main.CryingBabyState1})
+  [✔] length(::Array{Symbol1})
+  [✔] support(::Deterministic{Main.CryingBabyState})
+  [✔] pdf(::Deterministic{Main.CryingBabyState}, ::CryingBabyState)
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol})
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::UnderlyingMDP{Main.CryingBabyPOMDPMain.CryingBabyStateSymbol})
+
+Tabular Crying Baby POMDP
+INFO: POMDPLinter requirements for solve(::QMDP.QMDPSolver, ::POMDP) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::QMDP.QMDPSolver, ::POMDP):
+  [No additional requirements]
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}) (in solve(::QMDP.QMDPSolver, ::POMDP)):
+  [✔] discount(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64})
+  [✔] transition(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64}, ::Int64, ::Int64)
+  [✔] reward(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64}, ::Int64, ::Int64, ::Int64)
+  [✔] stateindex(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64}, ::Int64)
+  [✔] actionindex(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64}, ::Int64)
+  [✔] actions(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64}, ::Int64)
+  [✔] length(::UnitRange{Int64})
+  [✔] support(::DiscreteDistribution{SubArray{Float64, 1, Array{Float64, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64, Int64}, true}})
+  [✔] pdf(::DiscreteDistribution{SubArray{Float64, 1, Array{Float64, 3}, Tuple{Base.Slice{Base.OneTo{Int64}}, Int64, Int64}, true}}, ::Int64)
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64})
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::UnderlyingMDP{POMDPModels.TabularPOMDPInt64Int64})
+
+Gen Crying Baby POMDP
+INFO: POMDPLinter requirements for solve(::QMDP.QMDPSolver, ::POMDP) and dependencies. ([✔] = implemented correctly; [X] = not implemented; [?] = could not determine)
+
+For solve(::QMDP.QMDPSolver, ::POMDP):
+  [No additional requirements]
+For solve(::ValueIterationSolver, ::Union{MDP,POMDP}) (in solve(::QMDP.QMDPSolver, ::POMDP)):
+  [✔] discount(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol})
+  [✔] transition(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState, ::Symbol)
+  [✔] reward(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState, ::Symbol, ::CryingBabyState)
+  [✔] stateindex(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState)
+  [✔] actionindex(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol}, ::Symbol)
+  [✔] actions(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol}, ::CryingBabyState)
+  WARNING: Some requirements may not be shown because a MethodError was thrown.
+For ordered_states(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] states(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol})
+  WARNING: Some requirements may not be shown because a MethodError was thrown.
+For ordered_actions(::Union{MDP,POMDP}) (in solve(::ValueIterationSolver, ::Union{MDP,POMDP})):
+  [✔] actions(::UnderlyingMDP{Main.GenCryingBabyPOMDPMain.CryingBabyStateSymbol})
+  WARNING: Some requirements may not be shown because a MethodError was thrown.
+Note: Missing methods are often due to incorrect importing. You must explicitly import POMDPs functions to add new methods.
+
+Throwing the first exception (from processing solve(::ValueIterationSolver, ::Union{MDP,POMDP}) requirements):
+
+MethodError(POMDPs.actions, (Main.GenCryingBabyPOMDP(0.1, 0.8, 0.9, 0.8, 0.1, 0.0, 0.1, -10.0, -5.0, -0.5, 0.9),), 0x0000000000006943)

Offline (SARSOP)

In this example, we will use the NativeSARSOP solver. The process for generating offline polices is similar for all offline solvers. First, we define the solver with the desired parameters. Then, we call POMDPs.solve with the solver and the problem. We can query the policy using the action function.

using NativeSARSOP
+
+# Define the solver with the desired parameters
+sarsop_solver = SARSOPSolver(; max_time=10.0)
+
+# Solve the problem by calling POMDPs.solve. SARSOP will compute the policy and return an `AlphaVectorPolicy`
+sarsop_policy = POMDPs.solve(sarsop_solver, quick_crying_baby_pomdp)
+
+# We can query the policy using the `action` function
+b = initialstate(quick_crying_baby_pomdp)
+a = action(sarsop_policy, b)
+
+@show a
:ignore

Online (POMCP)

For the online solver, we will use Particle Monte Carlo Planning (POMCP). For online solvers, we first define the solver similar to offline solvers. However, when we call POMDPs.solve, we are returned an online planner. Similar to the offline solver, we can query the policy using the action function and that is when the online solver will compute the action.

using BasicPOMCP
+
+pomcp_solver = POMCPSolver(; c=5.0, tree_queries=1000, rng=MersenneTwister(1))
+pomcp_planner = POMDPs.solve(pomcp_solver, quick_crying_baby_pomdp)
+
+b = initialstate(quick_crying_baby_pomdp)
+a = action(pomcp_planner, b)
+
+@show a
:ignore

Heuristic Policy

While we often want to use a solver to compute a policy, sometimes we might want to use a heuristic policy. For example, we may want to use a heuristic policy during our rollout for online solvers or to use as a baseline. In this example, we will define a simple heuristic policy that feeds the baby if our belief of the baby being hungry is greater than 50%, otherwise we will randomly ignore or sing to the baby.

struct HeuristicFeedPolicy{P<:POMDP} <: Policy
+    pomdp::P
+end
+
+# We need to implement the action function for our policy
+function POMDPs.action(policy::HeuristicFeedPolicy, b)
+    if pdf(b, :hungry) > 0.5
+        return :feed
+    else
+        return rand([:ignore, :sing])
+    end
+end
+
+# Let's also define the default updater for our policy
+function POMDPs.updater(policy::HeuristicFeedPolicy)
+    return DiscreteUpdater(policy.pomdp)
+end
+
+heuristic_policy = HeuristicFeedPolicy(quick_crying_baby_pomdp)
+
+# Let's query the policy a few times
+b = SparseCat([:sated, :hungry], [0.1, 0.9])
+a1 =  action(heuristic_policy, b)
+
+b = SparseCat([:sated, :hungry], [0.9, 0.1])
+a2 = action(heuristic_policy, b)
+
+@show [a1, a2]
2-element Vector{Symbol}:
+ :feed
+ :sing
diff --git a/previews/PR563/examples/DroneSurveillance.gif b/previews/PR563/examples/DroneSurveillance.gif new file mode 100644 index 0000000000000000000000000000000000000000..e3f992da23d94558e873c651c6d916347f4fb524 GIT binary patch literal 267119 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 Za1&-<$_;PS5oTWuZ{H)SBnS|h{{;hN1NZ;{ literal 0 HcmV?d00001 diff --git a/previews/PR563/examples/EscapeRoomba.gif b/previews/PR563/examples/EscapeRoomba.gif new file mode 100644 index 0000000000000000000000000000000000000000..86e52f1dd164193bca3ba0ea520a74d03eaeca3f GIT binary patch literal 77830 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

se$yZ$){H=FBRf3ycs)h8zw^VH7umlm9 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 DG+YbQ literal 0 HcmV?d00001 diff --git a/previews/PR563/examples/TagPOMDP.gif b/previews/PR563/examples/TagPOMDP.gif new file mode 100644 index 0000000000000000000000000000000000000000..9c1f4cad5fc32ed83e5e57c4f063bf4fd026820c GIT binary patch literal 129043 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 B3Q+(6 literal 0 HcmV?d00001 diff --git a/previews/PR563/examples/crying_baby_examples.jl b/previews/PR563/examples/crying_baby_examples.jl new file mode 100644 index 00000000..212b6f26 --- /dev/null +++ b/previews/PR563/examples/crying_baby_examples.jl @@ -0,0 +1,230 @@ +using POMDPs +using POMDPTools +using POMDPModels +using QuickPOMDPs +using Random + +quick_crying_baby_pomdp = QuickPOMDP( + states = [:sated, :hungry], + actions = [:feed, :sing, :ignore], + observations = [:quiet, :crying], + initialstate = Deterministic(:sated), + discount = 0.9, + transition = function (s, a) + if a == :feed + return Deterministic(:sated) + elseif s == :sated # :sated and a != :feed + return SparseCat([:sated, :hungry], [0.9, 0.1]) + else # s == :hungry and a != :feed + return Deterministic(:hungry) + end + end, + observation = function (a, sp) + if sp == :hungry + if a == :sing + return SparseCat([:crying, :quiet], [0.9, 0.1]) + else # a == :ignore || a == :feed + return SparseCat([:crying, :quiet], [0.8, 0.2]) + end + else # sp = :sated + if a == :sing + return Deterministic(:quiet) + else # a == :ignore || a == :feed + return SparseCat([:crying, :quiet], [0.1, 0.9]) + end + + end + end, + reward = function (s, a) + r = 0.0 + if s == :hungry + r += -10.0 + end + if a == :feed + r += -5.0 + elseif a == :sing + r+= -0.5 + end + return r + end +) + +struct CryingBabyState + hungry::Bool +end + +struct CryingBabyPOMDP <: POMDP{CryingBabyState, Symbol, Symbol} + p_sated_to_hungry::Float64 + p_cry_feed_hungry::Float64 + p_cry_sing_hungry::Float64 + p_cry_ignore_hungry::Float64 + p_cry_feed_sated::Float64 + p_cry_sing_sated::Float64 + p_cry_ignore_sated::Float64 + reward_hungry::Float64 + reward_feed::Float64 + reward_sing::Float64 + discount_factor::Float64 +end + +function CryingBabyPOMDP(; + p_sated_to_hungry=0.1, + p_cry_feed_hungry=0.8, + p_cry_sing_hungry=0.9, + p_cry_ignore_hungry=0.8, + p_cry_feed_sated=0.1, + p_cry_sing_sated=0.0, + p_cry_ignore_sated=0.1, + reward_hungry=-10.0, + reward_feed=-5.0, + reward_sing=-0.5, + discount_factor=0.9 +) + return CryingBabyPOMDP(p_sated_to_hungry, p_cry_feed_hungry, + p_cry_sing_hungry, p_cry_ignore_hungry, p_cry_feed_sated, + p_cry_sing_sated, p_cry_ignore_sated, reward_hungry, + reward_feed, reward_sing, discount_factor) +end + +POMDPs.actions(::CryingBabyPOMDP) = [:feed, :sing, :ignore] +POMDPs.states(::CryingBabyPOMDP) = [CryingBabyState(false), CryingBabyState(true)] +POMDPs.observations(::CryingBabyPOMDP) = [:crying, :quiet] +POMDPs.stateindex(::CryingBabyPOMDP, s::CryingBabyState) = s.hungry ? 2 : 1 +POMDPs.obsindex(::CryingBabyPOMDP, o::Symbol) = o == :crying ? 1 : 2 +POMDPs.actionindex(::CryingBabyPOMDP, a::Symbol) = a == :feed ? 1 : a == :sing ? 2 : 3 + +function POMDPs.transition(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol) + if a == :feed + return Deterministic(CryingBabyState(false)) + elseif s == :sated # :sated and a != :feed + return SparseCat([CryingBabyState(false), CryingBabyState(true)], [1 - pomdp.p_sated_to_hungry, pomdp.p_sated_to_hungry]) + else # s == :hungry and a != :feed + return Deterministic(CryingBabyState(true)) + end +end + +function POMDPs.observation(pomdp::CryingBabyPOMDP, a::Symbol, sp::CryingBabyState) + if sp.hungry + if a == :sing + return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_hungry, 1 - pomdp.p_cry_sing_hungry]) + elseif a== :ignore + return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_hungry, 1 - pomdp.p_cry_ignore_hungry]) + else # a == :feed + return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_hungry, 1 - pomdp.p_cry_feed_hungry]) + end + else # sated + if a == :sing + return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_sated, 1 - pomdp.p_cry_sing_sated]) + elseif a== :ignore + return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_sated, 1 - pomdp.p_cry_ignore_sated]) + else # a == :feed + return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_sated, 1 - pomdp.p_cry_feed_sated]) + end + end +end + +function POMDPs.reward(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol) + r = 0.0 + if s.hungry + r += pomdp.reward_hungry + end + if a == :feed + r += pomdp.reward_feed + elseif a == :sing + r += pomdp.reward_sing + end + return r +end + +POMDPs.discount(pomdp::CryingBabyPOMDP) = pomdp.discount_factor + +POMDPs.initialstate(::CryingBabyPOMDP) = Deterministic(CryingBabyState(false)) + +explicit_crying_baby_pomdp = CryingBabyPOMDP() + +struct GenCryingBabyState + hungry::Bool +end + +struct GenCryingBabyPOMDP <: POMDP{CryingBabyState, Symbol, Symbol} + p_sated_to_hungry::Float64 + p_cry_feed_hungry::Float64 + p_cry_sing_hungry::Float64 + p_cry_ignore_hungry::Float64 + p_cry_feed_sated::Float64 + p_cry_sing_sated::Float64 + p_cry_ignore_sated::Float64 + reward_hungry::Float64 + reward_feed::Float64 + reward_sing::Float64 + discount_factor::Float64 + + GenCryingBabyPOMDP() = new(0.1, 0.8, 0.9, 0.8, 0.1, 0.0, 0.1, -10.0, -5.0, -0.5, 0.9) +end + +function POMDPs.gen(pomdp::GenCryingBabyPOMDP, s::CryingBabyState, a::Symbol, rng::AbstractRNG) + + if a == :feed + sp = GenCryingBabyState(false) + else + sp = rand(rng) < pomdp.p_sated_to_hungry ? GenCryingBabyState(true) : GenCryingBabyState(false) + end + + if sp.hungry + if a == :sing + o = rand(rng) < pomdp.p_cry_sing_hungry ? :crying : :quiet + elseif a== :ignore + o = rand(rng) < pomdp.p_cry_ignore_hungry ? :crying : :quiet + else # a == :feed + o = rand(rng) < pomdp.p_cry_feed_hungry ? :crying : :quiet + end + else # sated + if a == :sing + o = rand(rng) < pomdp.p_cry_sing_sated ? :crying : :quiet + elseif a== :ignore + o = rand(rng) < pomdp.p_cry_ignore_sated ? :crying : :quiet + else # a == :feed + o = rand(rng) < pomdp.p_cry_feed_sated ? :crying : :quiet + end + end + + r = 0.0 + if sp.hungry + r += pomdp.reward_hungry + end + if a == :feed + r += pomdp.reward_feed + elseif a == :sing + r += pomdp.reward_sing + end + + return (sp=sp, o=o, r=r) +end + +POMDPs.initialstate(::GenCryingBabyPOMDP) = Deterministic(GenCryingBabyState(false)) + +gen_crying_baby_pomdp = GenCryingBabyPOMDP() + +T = zeros(2, 3, 2) # |S| x |A| x |S'|, T[sp, a, s] = p(sp | a, s) +T[:, 1, :] = [1.0 1.0; + 0.0 0.0] +T[:, 2, :] = [0.9 0.0; + 0.1 1.0] +T[:, 3, :] = [0.9 0.0; + 0.1 1.0] + +O = zeros(2, 3, 2) # |O| x |A| x |S'|, O[o, a, sp] = p(o | a, sp) +O[:, 1, :] = [0.1 0.8; + 0.9 0.2] +O[:, 2, :] = [0.0 0.9; + 1.0 0.1] +O[:, 3, :] = [0.1 0.8; + 0.9 0.2] + +R = zeros(2, 3) # |S| x |A| +R = [-5.0 -0.5 0.0; + -15.0 -10.5 0.0] + +discount = 0.9 + +tabular_crying_baby_pomdp = TabularPOMDP(T, R, O, discount) diff --git a/previews/PR563/examples/crying_baby_solvers.jl b/previews/PR563/examples/crying_baby_solvers.jl new file mode 100644 index 00000000..5c1115c3 --- /dev/null +++ b/previews/PR563/examples/crying_baby_solvers.jl @@ -0,0 +1,24 @@ +using BasicPOMCP +using NativeSARSOP + +sarsop_solver = SARSOPSolver(; max_time=10.0) +sarsop_policy = POMDPs.solve(sarsop_solver, quick_crying_baby_pomdp) + +pomcp_solver = POMCPSolver(; c=5.0, tree_queries=1000, rng=MersenneTwister(1)) +pomcp_planner = POMDPs.solve(pomcp_solver, quick_crying_baby_pomdp) + +struct HeuristicFeedPolicy{P<:POMDP} <: Policy + pomdp::P +end +function POMDPs.updater(policy::HeuristicFeedPolicy) + return DiscreteUpdater(policy.pomdp) +end +function POMDPs.action(policy::HeuristicFeedPolicy, b) + if pdf(b, :hungry) > 0.5 + return :feed + else + return rand([:ignore, :sing]) + end +end + +heuristic_policy = HeuristicFeedPolicy(quick_crying_baby_pomdp) diff --git a/previews/PR563/examples/grid_world_overview.gif b/previews/PR563/examples/grid_world_overview.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf94bba1045e640fa48f6e4a1ca316704ebf774d GIT binary patch literal 8958 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 +Examples · POMDPs.jl

Examples

This section contains examples of how to use POMDPs.jl. For specific informaiton about the interface and functions used in the examples, please reference the correpsonding area in the documenation or the API Documentation.

The examples are organized by topic. The exmaples are designed to build through each step. First, we have to define a POMDP. Then we need to solve the POMDP to get a policy. Finally, we can simulate the policy to see how it performs. The examples are designed to be exeucted in order. For example, the examples in Simulations Examples assume that the POMDPs defined in the Defining a POMDP section have been defined and we have a policy we would like to simulate that we computed in the Using Different Solvers section.

The GridWorld MDP Tutorial section is a standalone example that does not require any of the other examples.

Outline

diff --git a/previews/PR563/faq/index.html b/previews/PR563/faq/index.html new file mode 100644 index 00000000..8cae22ae --- /dev/null +++ b/previews/PR563/faq/index.html @@ -0,0 +1,17 @@ + +Frequently Asked Questions (FAQ) · POMDPs.jl

Frequently Asked Questions (FAQ)

What is the difference between transition, gen, and @gen?

(See also: Using a single generative function instead of separate $T$, $Z$, and $R$)

For problem implementers

  • transition should be implemented to define the state transition distribution, either explicitly, or, if only samples from the distribution are available, with an ImplicitDistribution.
  • gen should only be implemented if your simulator can only output samples of two or more of the next state, observation, and reward at the same time, e.g. if rewards are calculated as a robot moves from the current state to the next state so it is difficult to define the reward function separately from the state transitions.
  • @gen should never be implemented or modified by the problem writer; it is only used in simulators and solvers (see below).

For solver/simulator implementers

  • @gen should be called whenever a sample of the next state, observation, and or reward is needed. It automatically combines calls to rand, transition, observation, reward, and gen, depending on what is implemented for the problem and the outputs requested by the caller without any overhead.
  • transition should be called only when you need access to the explicit transition probability distribution.
  • gen should never be called directly by a solver or simulator; it is only a tool for implementers (see above).

How do I save my policies?

We recommend using JLD2 to save the whole policy object:

using JLD2
+save("my_policy.jld2", "policy", policy)

Why is my solver producing a suboptimal policy?

There could be a number of things that are going wrong. If you have a discrete POMDP or MDP and you're using a solver that requires the explicit transition probabilities, the first thing to try is make sure that your probability masses sum up to unity. We've provide some tools in POMDPToolbox that can check this for you. If you have a POMDP called pomdp, you can run the checks by doing the following:

using POMDPTools
+@assert has_consistent_distributions(pomdp)

If this throws an error, you may need to fix your transition or observation functions.

What if I don't use the rng argument?

POMDPs.jl uses Julia's built-in random number generator system to provide for reproducible simulations. To tie into this system, the gen function, the sampling function for the ImplicitDistribution, and the rand function for custom distributions all have an rng argument that should be used to generate random numbers. However in some cases, for example when wrapping a simulator that is tied to the global random number generator or written in another language, it may be impossible or impractical to use this rng.

It is natural to wonder if ignoring this rng argument will cause problems. For many use cases, it is OK to ignore this argument - the only consequence will be that simulations will not be exactly reproducible unless the random seed is managed separately. Some algorithms, most notably DESPOT, rely on "determinized scenarios" that are implemented with a special rng. Some of the guarantees of these algorithms may not be met if the rng argument is ignored.

Why are all the solvers in separate modules?

We did not put all the solvers and support tools into POMDPs.jl, because we wanted POMDPs.jl to be a lightweight interface package. This has a number of advantages. The first is that if a user only wants to use a few solvers from the JuliaPOMDP organization, they do not have to install all the other solvers and their dependencies. The second advantage is that people who are not directly part of the JuliaPOMDP organization can write their own solvers without going into the source code of other solvers. This makes the framework easier to adopt and to extend.

How can I implement terminal actions?

Terminal actions are actions that cause the MDP to terminate without generating a new state. POMDPs.jl handles terminal conditions via the isterminal function on states, and does not directly support terminal actions. If your MDP has a terminal action, you need to implement the model functions accordingly to generate a terminal state. In both generative and explicit cases, you will need some dummy state, say spt, that can be recognized as terminal by the isterminal function. One way to do this is to give spt a state value that is out of bounds (e.g. a vector of NaNs or -1s) and then check for that in isterminal, so that this does not clash with any conventional termination conditions on the state.

If a terminal action is taken, regardless of current state, the transition function should return a distribution with only one next state, spt, with probability 1.0. In the generative case, the new state generated should be spt. The reward function or the r in generate_sr can be set according to the cost of the terminal action.

Why are there two versions of reward?

Both reward(m, s, a) and reward(m, s, a, sp) are included because of these two facts:

  1. Some non-native solvers use reward(m, s, a)
  2. Sometimes the reward depends on s and sp.

It is reasonable to implement both as long as the (s, a) version is the expectation of the (s, a, s') version (see below).

How do I implement reward(m, s, a) if the reward depends on the next state?

The solvers that require reward(m, s, a) only work on problems with finite state and action spaces. In this case, you can define reward(m, s, a) in terms of reward(m, s, a, sp) with the following code:

const rdict = Dict{Tuple{S,A}, Float64}()
+
+for s in states(m)
+  for a in actions(m)
+    r = 0.0
+    td = transition(m, s, a) # transition distribution for s, a
+    for sp in support(td)
+      r += pdf(td, sp)*reward(m, s, a, sp)
+    end
+    rdict[(s, a)] = r
+  end
+end
+
+POMDPs.reward(m, s, a) = rdict[(s, a)]

Why do I need to put type assertions pomdp::POMDP into the function signature?

Specifying the type in your function signature allows Julia to call the appropriate function when your custom type is passed into it. For example if a POMDPs.jl solver calls states on the POMDP that you passed into it, the correct states function will only get dispatched if you specified that the states function you wrote works with your POMDP type. Because Julia supports multiple-dispatch, these type assertion are a way for doing object-oriented programming in Julia.

diff --git a/previews/PR563/figures/concepts.png b/previews/PR563/figures/concepts.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8da6b7e0629e729c7e2b558d13e12026fec2ec GIT binary patch literal 30557 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 K$(J#F^*;d6^|U_# literal 0 HcmV?d00001 diff --git a/previews/PR563/figures/interface_relationships.svg b/previews/PR563/figures/interface_relationships.svg new file mode 100644 index 00000000..bafc2712 --- /dev/null +++ b/previews/PR563/figures/interface_relationships.svg @@ -0,0 +1,639 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Solvers + Problems + RLInterface.jl + Deep RL + + diff --git a/previews/PR563/figures/mdp_ddn.svg b/previews/PR563/figures/mdp_ddn.svg new file mode 100644 index 00000000..01d7e5e7 --- /dev/null +++ b/previews/PR563/figures/mdp_ddn.svg @@ -0,0 +1,748 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR563/figures/pomdp_ddn.svg b/previews/PR563/figures/pomdp_ddn.svg new file mode 100644 index 00000000..6d88e0dc --- /dev/null +++ b/previews/PR563/figures/pomdp_ddn.svg @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/previews/PR563/figures/requirements_info_gw.png b/previews/PR563/figures/requirements_info_gw.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e3a40c449c7fb7360ff98f4720a541272e223d GIT binary patch literal 90687 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 LCDY3DZgKwtb#6|O literal 0 HcmV?d00001 diff --git a/previews/PR563/figures/requirements_info_new.png b/previews/PR563/figures/requirements_info_new.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec807b65e342f8abe967abdabdeb7ccf067d2fb GIT binary patch literal 171472 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�wg~3dVu9jSMxZ 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

@S)LsagX~^(E}$p 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 +Gallery of POMDPs.jl Problems · POMDPs.jl

diff --git a/previews/PR563/get_started/index.html b/previews/PR563/get_started/index.html new file mode 100644 index 00000000..990f1349 --- /dev/null +++ b/previews/PR563/get_started/index.html @@ -0,0 +1,16 @@ + +Getting Started · POMDPs.jl

Getting Started

Before writing our own POMDP problems or solvers, let's try out some of the available solvers and problem models available in JuliaPOMDP.

Here is a short piece of code that solves the Tiger POMDP using QMDP, and evaluates the results. Note that you must have the QMDP, POMDPModels, and POMDPToolbox modules installed.

using POMDPs, QMDP, POMDPModels, POMDPTools
+
+# initialize problem and solver
+pomdp = TigerPOMDP() # from POMDPModels
+solver = QMDPSolver() # from QMDP
+
+# compute a policy
+policy = solve(solver, pomdp)
+
+#evaluate the policy
+belief_updater = updater(policy) # the default QMDP belief updater (discrete Bayesian filter)
+init_dist = initialstate(pomdp) # from POMDPModels
+hr = HistoryRecorder(max_steps=100) # from POMDPTools
+hist = simulate(hr, pomdp, policy, belief_updater, init_dist) # run 100 step simulation
+println("reward: $(discounted_reward(hist))")

The first part of the code loads the desired packages and initializes the problem and the solver. Next, we compute a POMDP policy. Lastly, we evaluate the results.

There are a few things to mention here. First, the TigerPOMDP type implements all the functions required by QMDPSolver to compute a policy. Second, each policy has a default updater (essentially a filter used to update the belief of the POMDP). To learn more about Updaters check out the Concepts and Architecture section.

diff --git a/previews/PR563/index.html b/previews/PR563/index.html new file mode 100644 index 00000000..5cff0deb --- /dev/null +++ b/previews/PR563/index.html @@ -0,0 +1,2 @@ + +POMDPs.jl · POMDPs.jl

POMDPs.jl

A Julia interface for defining, solving and simulating partially observable Markov decision processes and their fully observable counterparts.

Package and Ecosystem Features

  • General interface that can handle problems with discrete and continuous state/action/observation spaces
  • A number of popular state-of-the-art solvers implemented for use out-of-the-box
  • Tools that make it easy to define problems and simulate solutions
  • Simple integration of custom solvers into the existing interface

Available Packages

The POMDPs.jl package contains only the interface used for expressing and solving Markov decision processes (MDPs) and partially observable Markov decision processes (POMDPs). The POMDPTools package acts as a "standard library" for the POMDPs.jl interface, providing implementations of commonly-used components such as policies, belief updaters, distributions, and simulators. The list of solver and support packages maintained by the JuliaPOMDP community is available at the POMDPs.jl Readme.

Documentation Outline

Documentation comes in three forms:

  1. An explanatory guide is available in the sections outlined below.
  2. How-to examples are available throughout this documentation with specicic examples in Examples and Gallery of POMDPs.jl Problems.
  3. Reference docstrings for the entire POMDPs.jl interface are available in the API Documentation section.
Note

When updating these documents, make sure this is synced with docs/make.jl!!

Basics

Defining POMDP Models

Writing Solvers and Updaters

Analyzing Results

POMDPTools - the standard library for POMDPs.jl

Reference

diff --git a/previews/PR563/install/index.html b/previews/PR563/install/index.html new file mode 100644 index 00000000..2fe444e0 --- /dev/null +++ b/previews/PR563/install/index.html @@ -0,0 +1,3 @@ + +Installation · POMDPs.jl

Installation

If you have a running Julia distribution (Julia 0.4 or greater), you have everything you need to install POMDPs.jl. To install the package, simply run the following from the Julia REPL:

import Pkg
+Pkg.add("POMDPs") # installs the POMDPs.jl package

Some auxiliary packages and older versions of solvers may be found in the JuliaPOMDP registry. To install this registry, run:

using Pkg; pkg"registry add https://github.com/JuliaPOMDP/Registry"

Note: to use this registry, JuliaPro users must also run edit(normpath(Sys.BINDIR,"..","etc","julia","startup.jl")), comment out the line ENV["DISABLE_FALLBACK"] = "true", save the file, and restart JuliaPro as described in this issue.

diff --git a/previews/PR563/interfaces/index.html b/previews/PR563/interfaces/index.html new file mode 100644 index 00000000..52f36e98 --- /dev/null +++ b/previews/PR563/interfaces/index.html @@ -0,0 +1,2 @@ + +Spaces and Distributions · POMDPs.jl

Spaces and Distributions

Two important components of the definitions of MDPs and POMDPs are spaces, which specify the possible states, actions, and observations in a problem and distributions, which define probability distributions. In order to provide for maximum flexibility spaces and distributions may be of any type (i.e. there are no abstract base types). Solvers and simulators will interact with space and distribution types using the functions defined below.

Spaces

A space object should contain the information needed to define the set of all possible states, actions or observations. The implementation will depend on the attributes of the elements. For example, if the space is continuous, the space object may only contain the limits of the continuous range. In the case of a discrete problem, a vector containing all states is appropriate for representing a space.

The following functions may be called on a space object (Click on a function to read its documentation):

Distributions

A distribution object represents a probability distribution.

The following functions may be called on a distribution object (Click on a function to read its documentation):

You can find some useful pre-made distribution objects in Distributions.jl or POMDPTools.

  • 1Distributions should support both rand(rng::AbstractRNG, d) and rand(d). The recommended way to do this is by implmenting Base.rand(rng::AbstractRNG, s::Random.SamplerTrivial{<:YourDistribution}) from the julia rand interface.
diff --git a/previews/PR563/objects.inv b/previews/PR563/objects.inv new file mode 100644 index 0000000000000000000000000000000000000000..db87ebb425c1311caa9eb2af18584b1c514ed79a GIT binary patch literal 5841 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 b +Example: Defining an offline solver · POMDPs.jl

Example: Defining an offline solver

In this example, we will define a simple offline solver that works for both POMDPs and MDPs. In order to focus on the code structure, we will not create an algorithm that finds an optimal policy, but rather a greedy policy, that is, one that optimizes the expected immediate reward. For information on using this solver in a simulation, see Running Simulations.

We begin by creating a solver type. Since there are no adjustable parameters for the solver, it is an empty type, but for a more complex solver, parameters would usually be included as type fields.

using POMDPs
+
+struct GreedyOfflineSolver <: Solver end

Next, we define the functions that will make the solver work for both MDPs and POMDPs.

MDP Case

Finding a greedy policy for an MDP consists of determining the action that has the best reward for each state. First, we create a simple policy object that holds a greedy action for each state.

struct DictPolicy{S,A} <: Policy
+    actions::Dict{S,A}
+end
+
+POMDPs.action(p::DictPolicy, s) = p.actions[s]
Note

A POMDPTools.VectorPolicy could be used here. We include this example to show how to define a custom policy.

The solve function calculates the best greedy action for each state and saves it in a policy. To have the widest possible compatibility with POMDP models, we want to use reward(m, s, a, sp) instead of reward(m, s, a), which means we need to calculate the expectation of the reward over transitions to every possible next state.

function POMDPs.solve(::GreedyOfflineSolver, m::MDP)
+
+    best_actions = Dict{statetype(m), actiontype(m)}()
+
+    for s in states(m)
+        if !isterminal(m, s)
+            best = -Inf
+            for a in actions(m)
+                td = transition(m, s, a)
+                r = 0.0
+                for sp in support(td)
+                    r += pdf(td, sp) * reward(m, s, a, sp)
+                end
+                if r >= best
+                    best_actions[s] = a
+                    best = r
+                end
+            end
+        end
+    end
+    
+    return DictPolicy(best_actions)
+end
Note

We limited this implementation to using basic POMDPs.jl implementation functions, but tools such as POMDPTools.StateActionReward, POMDPTools.ordered_states, and POMDPTools.weighted_iterator could have been used for a more concise and efficient implementation.

We can now verify whether the policy produces the greedy action on an example from POMDPModels:

using POMDPModels
+
+gw = SimpleGridWorld(size=(2,1), rewards=Dict(GWPos(2,1)=>1.0))
+policy = solve(GreedyOfflineSolver(), gw)
+
+action(policy, GWPos(1,1))
+
+# output
+
+:right

POMDP Case

For a POMDP, the greedy solution is the action that maximizes the expected immediate reward according to the belief. Since there are an infinite number of possible beliefs, the greedy solution for every belief cannot be calculated online. However, the greedy policy can take the form of an alpha vector policy where each action has an associated alpha vector with each entry corresponding to the immediate reward from taking the action in that state.

Again, because a POMDP, may have reward(m, s, a, sp, o) instead of reward(m, s, a), we use the former and calculate the expectation over all next states and observations.

using POMDPTools: AlphaVectorPolicy
+
+function POMDPs.solve(::GreedyOfflineSolver, m::POMDP)
+
+    alphas = Vector{Float64}[]
+
+    for a in actions(m)
+        alpha = zeros(length(states(m)))
+        for s in states(m)
+            if !isterminal(m, s)
+                r = 0.0
+                td = transition(m, s, a)
+                for sp in support(td)
+                    tp = pdf(td, sp)
+                    od = observation(m, s, a, sp)
+                    for o in support(od)
+                        r += tp * pdf(od, o) * reward(m, s, a, sp, o)
+                    end
+                end
+                alpha[stateindex(m, s)] = r
+            end
+        end
+        push!(alphas, alpha)
+    end
+    
+    return AlphaVectorPolicy(m, alphas, collect(actions(m)))
+end

We can now verify that a policy created by the solver determines the correct greedy actions:

using POMDPModels
+using POMDPTools: Deterministic, Uniform
+
+tiger = TigerPOMDP()
+policy = solve(GreedyOfflineSolver(), tiger)
+
+@assert action(policy, Deterministic(TIGER_LEFT)) == TIGER_OPEN_RIGHT
+@assert action(policy, Deterministic(TIGER_RIGHT)) == TIGER_OPEN_LEFT
+@assert action(policy, Uniform(states(tiger))) == TIGER_LISTEN
diff --git a/previews/PR563/online_solver/index.html b/previews/PR563/online_solver/index.html new file mode 100644 index 00000000..2521a963 --- /dev/null +++ b/previews/PR563/online_solver/index.html @@ -0,0 +1,59 @@ + +Example: Defining an online solver · POMDPs.jl

Example: Defining an online solver

In this example, we will define a simple online solver that works for both POMDPs and MDPs. In order to focus on the code structure, we will not create an algorithm that finds an optimal policy, but rather a greedy policy, that is, one that optimizes the expected immediate reward. For information on using this solver in a simulation, see Running Simulations.

In order to handle the widest range of problems, we will use @gen to generate Mone Carlo samples to estimate the reward even if only a simulator is available. We begin by creating the necessary types and the solve function. The only solver parameter is the number of samples used to estimate the reward at each step, and the solve function does nothing more than create a planner with the appropriate (PO)MDP problem definition.

using POMDPs
+
+struct MonteCarloGreedySolver <: Solver
+    num_samples::Int
+end
+
+struct MonteCarloGreedyPlanner{M} <: Policy
+    m::M
+    num_samples::Int
+end
+
+POMDPs.solve(sol::MonteCarloGreedySolver, m) = MonteCarloGreedyPlanner(m, sol.num_samples)

Next, we define the action function where the online work takes place.

MDP Case

function POMDPs.action(p::MonteCarloGreedyPlanner{<:MDP}, s)
+    best_reward = -Inf
+    local best_action
+    for a in actions(p.m)
+        reward_sum = sum(@gen(:r)(p.m, s, a) for _ in 1:p.num_samples)
+        if reward_sum >= best_reward
+            best_reward = reward_sum
+            best_action = a
+        end
+    end
+    return best_action
+end

POMDP Case

function POMDPs.action(p::MonteCarloGreedyPlanner{<:POMDP}, b)
+    best_reward = -Inf
+    local best_action
+    for a in actions(p.m)
+        s = rand(b)
+        reward_sum = sum(@gen(:r)(p.m, s, a) for _ in 1:p.num_samples)
+        if reward_sum >= best_reward
+            best_reward = reward_sum
+            best_action = a
+        end
+    end
+    return best_action
+end
+
+# output
+

Verification

We can now verify that the online planner works in some simple cases:

using POMDPModels
+
+gw = SimpleGridWorld(size=(2,1), rewards=Dict(GWPos(2,1)=>1.0))
+solver = MonteCarloGreedySolver(1000)
+planner = solve(solver, gw)
+
+action(planner, GWPos(1,1))
+
+# output
+
+:right
using POMDPModels
+using POMDPTools: Deterministic, Uniform
+
+tiger = TigerPOMDP()
+solver = MonteCarloGreedySolver(1000)
+
+planner = solve(solver, tiger)
+
+@assert action(planner, Deterministic(TIGER_LEFT)) == TIGER_OPEN_RIGHT
+@assert action(planner, Deterministic(TIGER_RIGHT)) == TIGER_OPEN_LEFT
+# note action(planner, Uniform(states(tiger))) is not very reliable with this number of samples
diff --git a/previews/PR563/policy_interaction/index.html b/previews/PR563/policy_interaction/index.html new file mode 100644 index 00000000..e8f69ad0 --- /dev/null +++ b/previews/PR563/policy_interaction/index.html @@ -0,0 +1,2 @@ + +Interacting with Policies · POMDPs.jl

Interacting with Policies

A solution to a POMDP is a policy that maps beliefs or action-observation histories to actions. In POMDPs.jl, these are represented by Policy objects. See Solvers and Policies for more information about what a policy can represent in general.

One common task in evaluating POMDP solutions is examining the policies themselves. Since the internal representation of a policy is an esoteric implementation detail, it is best to interact with policies through the action and value interface functions. There are three relevant methods

  • action(policy, s) returns the best action (or one of the best) for the given state or belief.
  • value(policy, s) returns the expected sum of future rewards if the policy is executed.
  • value(policy, s, a) returns the "Q-value", that is, the expected sum of rewards if action a is taken on the next step and then the policy is executed.

Note that the quantities returned by these functions are what the policy/solver expects to be the case after its (usually approximate) computations; they may be far from the true value if the solution is not exactly optimal.

diff --git a/previews/PR563/run_simulation/index.html b/previews/PR563/run_simulation/index.html new file mode 100644 index 00000000..5f7929af --- /dev/null +++ b/previews/PR563/run_simulation/index.html @@ -0,0 +1,3 @@ + +Running Simulations · POMDPs.jl

Running Simulations

Running a simulation consists of two steps, creating a simulator and calling the simulate function. For example, given a POMDP or MDP model m, and a policy p, one can use the RolloutSimulator from POMDPTools to find the accumulated discounted reward from a single simulated trajectory as follows:

sim = RolloutSimulator()
+r = simulate(sim, m, p)

More inputs, such as a belief updater, initial state, initial belief, etc. may be specified as arguments to simulate. See the docstring for simulate and the appropriate "Input" sections in the Simulation Standard page for more information.

More examples can be found in the Simulations Examples section. A variety of simulators that return more information and interact in different ways can be found in POMDPTools.

diff --git a/previews/PR563/search_index.js b/previews/PR563/search_index.js new file mode 100644 index 00000000..39c14f4b --- /dev/null +++ b/previews/PR563/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"POMDPTools/model/#Model-Tools","page":"Model Tools","title":"Model Tools","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"POMDPTools contains assorted tools that are not part of the core POMDPs.jl interface for working with (PO)MDP Models.","category":"page"},{"location":"POMDPTools/model/#Interface-Extensions","page":"Model Tools","title":"Interface Extensions","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"POMDPTools contains several interface extensions that provide shortcuts and standardized ways of dealing with extra data.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"Programmers should use these functions whenever possible in case optimized implementations are available, but all of the functions have default implementations based on the core POMDPs.jl interface. Thus, if the core interface is implemented, all of these functions will also be available.","category":"page"},{"location":"POMDPTools/model/#Weighted-Iteration","page":"Model Tools","title":"Weighted Iteration","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"Many solution techniques, for example value iteration, require iteration through the support of a distribution and evaluating the probability mass for each value. In some cases, looking up the probability mass is expensive, so it is more efficient to iterate through value => probability pairs. weighted_iterator provides a standard interface for this.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"weighted_iterator","category":"page"},{"location":"POMDPTools/model/#POMDPTools.POMDPDistributions.weighted_iterator","page":"Model Tools","title":"POMDPTools.POMDPDistributions.weighted_iterator","text":"weighted_iterator(d)\n\nReturn an iterator through pairs of the values and probabilities in distribution d.\n\nThis is designed to speed up value iteration. Distributions are encouraged to provide a custom optimized implementation if possible.\n\nExample\n\njulia> d = BoolDistribution(0.7)\nBoolDistribution(0.7)\n\njulia> collect(weighted_iterator(d))\n2-element Array{Pair{Bool,Float64},1}:\n true => 0.7\n false => 0.3\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Observation-Weight","page":"Model Tools","title":"Observation Weight","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"Sometimes, e.g. in particle filtering, the relative likelihood of an observation is required in addition to a generative model, and it is often tedious to implement a custom observation distribution type. For this case, the shortcut function obs_weight is provided.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"obs_weight","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.obs_weight","page":"Model Tools","title":"POMDPTools.ModelTools.obs_weight","text":"obs_weight(pomdp, s, a, sp, o)\n\nReturn a weight proportional to the likelihood of receiving observation o from state sp (and a and s if they are present).\n\nThis is a useful shortcut for particle filtering so that the observation distribution does not have to be represented.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Ordered-Spaces","page":"Model Tools","title":"Ordered Spaces","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"It is often useful to have a list of states, actions, or observations ordered consistently with the respective index function from POMDPs.jl. Since the POMDPs.jl interface does not demand that spaces be ordered consistently with index, the states, actions, and observations functions are not sufficient. Thus POMDPModelTools provides ordered_actions, ordered_states, and ordered_observations to provide this capability.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"ordered_actions\nordered_states\nordered_observations","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.ordered_actions","page":"Model Tools","title":"POMDPTools.ModelTools.ordered_actions","text":"ordered_actions(mdp)\n\nReturn an AbstractVector of actions ordered according to actionindex(mdp, a).\n\nordered_actions(mdp) will always return an AbstractVector{A} v containing all of the actions in actions(mdp) in the order such that actionindex(mdp, v[i]) == i. You may wish to override this for your problem for efficiency.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.ordered_states","page":"Model Tools","title":"POMDPTools.ModelTools.ordered_states","text":"ordered_states(mdp)\n\nReturn an AbstractVector of states ordered according to stateindex(mdp, a).\n\nordered_states(mdp) will always return a AbstractVector{A} v containing all of the states in states(mdp) in the order such that stateindex(mdp, v[i]) == i. You may wish to override this for your problem for efficiency.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.ordered_observations","page":"Model Tools","title":"POMDPTools.ModelTools.ordered_observations","text":"ordered_observations(pomdp)\n\nReturn an AbstractVector of observations ordered according to obsindex(pomdp, a).\n\nordered_observations(mdp) will always return a AbstractVector{A} v containing all of the observations in observations(pomdp) in the order such that obsindex(pomdp, v[i]) == i. You may wish to override this for your problem for efficiency.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Info-Interface","page":"Model Tools","title":"Info Interface","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"It is often the case that useful information besides the belief, state, action, etc is generated by a function in POMDPs.jl. This information can be useful for debugging or understanding the behavior of a solver, updater, or problem. The info interface provides a standard way for problems, policies, solvers or updaters to output this information. The recording simulators from POMDPTools automatically record this information.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"To specify info from policies, solvers, or updaters, implement the following functions:","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"action_info\nsolve_info\nupdate_info","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.action_info","page":"Model Tools","title":"POMDPTools.ModelTools.action_info","text":"a, ai = action_info(policy, x)\n\nReturn a tuple containing the action determined by policy 'p' at state or belief 'x' and information (usually a NamedTuple, Dict or nothing) from the calculation of that action.\n\nBy default, returns nothing as info.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.solve_info","page":"Model Tools","title":"POMDPTools.ModelTools.solve_info","text":"policy, si = solve_info(solver, problem)\n\nReturn a tuple containing the policy determined by a solver and information (usually a NamedTuple, Dict or nothing) from the calculation of that policy.\n\nBy default, returns nothing as info.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.update_info","page":"Model Tools","title":"POMDPTools.ModelTools.update_info","text":"bp, i = update_info(updater, b, a, o)\n\nReturn a tuple containing the new belief and information (usually a NamedTuple, Dict or nothing) from the belief update.\n\nBy default, returns nothing as info.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Model-Transformations","page":"Model Tools","title":"Model Transformations","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"POMDPTools contains several tools for transforming problems into other classes so that they can be used by different solvers.","category":"page"},{"location":"POMDPTools/model/#Linear-Algebra-Representations","page":"Model Tools","title":"Linear Algebra Representations","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"For some algorithms, such as value iteration, it is convenient to use vectors that contain the reward for every state, and matrices that contain the transition probabilities. These can be constructed with the following functions:","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"transition_matrices\nreward_vectors","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.transition_matrices","page":"Model Tools","title":"POMDPTools.ModelTools.transition_matrices","text":"transition_matrices(p::SparseTabularProblem)\n\nAccessor function for the transition model of a sparse tabular problem. It returns a list of sparse matrices for each action of the problem.\n\n\n\n\n\ntransition_matrices(m::Union{MDP,POMDP})\ntransition_matrices(m; sparse=true)\n\nConstruct transition matrices for (PO)MDP m.\n\nThe returned object is an associative object (usually a Dict), where the keys are actions. Each value in this object is an AbstractMatrix where the row corresponds to the state index of s and the column corresponds to the state index of s'. The entry in the matrix is the probability of transitioning from state s to state s'.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.reward_vectors","page":"Model Tools","title":"POMDPTools.ModelTools.reward_vectors","text":"reward_vectors(m::Union{MDP, POMDP})\n\nConstruct reward vectors for (PO)MDP m.\n\nThe returned object is an associative object (usually a Dict), where the keys are actions. Each value in this object is an AbstractVector where the index corresponds to the state index of s and the entry is the reward for that state.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Sparse-Tabular-MDPs-and-POMDPs","page":"Model Tools","title":"Sparse Tabular MDPs and POMDPs","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"The SparseTabularMDP and SparseTabularPOMDP represents discrete problems defined using the explicit interface. The transition and observation models are represented using sparse matrices. Solver writers can leverage these data structures to write efficient vectorized code. A problem writer can define its problem using the explicit interface and it can be automatically converted to a sparse tabular representation by calling the constructors SparseTabularMDP(::MDP) or SparseTabularPOMDP(::POMDP). See the following docs to know more about the matrix representation and how to access the fields of the SparseTabular objects:","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"SparseTabularMDP\nSparseTabularPOMDP\ntransition_matrix\nreward_vector\nobservation_matrix\nreward_matrix\nobservation_matrices","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.SparseTabularMDP","page":"Model Tools","title":"POMDPTools.ModelTools.SparseTabularMDP","text":"SparseTabularMDP\n\nAn MDP object where states and actions are integers and the transition is represented by a list of sparse matrices. This data structure can be useful to exploit in vectorized algorithm (e.g. see SparseValueIterationSolver). The recommended way to access the transition and reward matrices is through the provided accessor functions: transition_matrix and reward_vector.\n\nFields\n\nT::Vector{SparseMatrixCSC{Float64, Int64}} The transition model is represented as a vector of sparse matrices (one for each action). T[a][s, sp] the probability of transition from s to sp taking action a.\nR::Array{Float64, 2} The reward is represented as a matrix where the rows are states and the columns actions: R[s, a] is the reward of taking action a in sate s.\ninitial_probs::SparseVector{Float64, Int64} Specifies the initial state distribution\nterminal_states::Set{Int64} Stores the terminal states\ndiscount::Float64 The discount factor\n\nConstructors\n\nSparseTabularMDP(mdp::MDP) : One can provide the matrices to the default constructor or one can construct a SparseTabularMDP from any discrete state MDP defined using the explicit interface. \n\nNote that constructing the transition and reward matrices requires to iterate over all the states and can take a while. To learn more information about how to define an MDP with the explicit interface please visit https://juliapomdp.github.io/POMDPs.jl/latest/explicit/ .\n\nSparseTabularMDP(smdp::SparseTabularMDP; transition, reward, discount) : This constructor returns a new sparse MDP that is a copy of the original smdp except for the field specified by the keyword arguments.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.SparseTabularPOMDP","page":"Model Tools","title":"POMDPTools.ModelTools.SparseTabularPOMDP","text":"SparseTabularPOMDP\n\nA POMDP object where states and actions are integers and the transition and observation distributions are represented by lists of sparse matrices. This data structure can be useful to exploit in vectorized algorithms to gain performance (e.g. see SparseValueIterationSolver). The recommended way to access the transition, reward, and observation matrices is through the provided accessor functions: transition_matrix, reward_vector, observation_matrix.\n\nFields\n\nT::Vector{SparseMatrixCSC{Float64, Int64}} The transition model is represented as a vector of sparse matrices (one for each action). T[a][s, sp] the probability of transition from s to sp taking action a.\nR::Array{Float64, 2} The reward is represented as a matrix where the rows are states and the columns actions: R[s, a] is the reward of taking action a in sate s.\nO::Vector{SparseMatrixCSC{Float64, Int64}} The observation model is represented as a vector of sparse matrices (one for each action). O[a][sp, o] is the probability of observing o from state sp after having taken action a.\ninitial_probs::SparseVector{Float64, Int64} Specifies the initial state distribution\nterminal_states::Set{Int64} Stores the terminal states\ndiscount::Float64 The discount factor\n\nConstructors\n\nSparseTabularPOMDP(pomdp::POMDP) : One can provide the matrices to the default constructor or one can construct a SparseTabularPOMDP from any discrete state MDP defined using the explicit interface. \n\nNote that constructing the transition and reward matrices requires to iterate over all the states and can take a while. To learn more information about how to define an MDP with the explicit interface please visit https://juliapomdp.github.io/POMDPs.jl/latest/explicit/ .\n\nSparseTabularPOMDP(spomdp::SparseTabularMDP; transition, reward, observation, discount) : This constructor returns a new sparse POMDP that is a copy of the original smdp except for the field specified by the keyword arguments.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.transition_matrix","page":"Model Tools","title":"POMDPTools.ModelTools.transition_matrix","text":"transition_matrix(p::SparseTabularProblem, a)\n\nAccessor function for the transition model of a sparse tabular problem. It returns a sparse matrix containing the transition probabilities when taking action a: T[s, sp] = Pr(sp | s, a).\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.reward_vector","page":"Model Tools","title":"POMDPTools.ModelTools.reward_vector","text":"reward_vector(p::SparseTabularProblem, a)\n\nAccessor function for the reward function of a sparse tabular problem. It returns a vector containing the reward for all the states when taking action a: R(s, a). The length of the return vector is equal to the number of states.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.observation_matrix","page":"Model Tools","title":"POMDPTools.ModelTools.observation_matrix","text":"observation_matrix(p::SparseTabularPOMDP, a::Int64)\n\nAccessor function for the observation model of a sparse tabular POMDP. It returns a sparse matrix containing the observation probabilities when having taken action a: O[sp, o] = Pr(o | sp, a).\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.reward_matrix","page":"Model Tools","title":"POMDPTools.ModelTools.reward_matrix","text":"reward_matrix(p::SparseTabularProblem)\n\nAccessor function for the reward matrix R[s, a] of a sparse tabular problem.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.observation_matrices","page":"Model Tools","title":"POMDPTools.ModelTools.observation_matrices","text":"observation_matrices(p::SparseTabularPOMDP)\n\nAccessor function for the observation model of a sparse tabular POMDP. It returns a list of sparse matrices for each action of the problem.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/model/#Fully-Observable-POMDP","page":"Model Tools","title":"Fully Observable POMDP","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"FullyObservablePOMDP","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.FullyObservablePOMDP","page":"Model Tools","title":"POMDPTools.ModelTools.FullyObservablePOMDP","text":"FullyObservablePOMDP(mdp)\n\nTurn MDP mdp into a POMDP where the observations are the states of the MDP.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#Generative-Belief-MDP","page":"Model Tools","title":"Generative Belief MDP","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"Every POMDP is an MDP on the belief space GenerativeBeliefMDP creates a generative model for that MDP.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"warning: Warning\nThe reward generated by the GenerativeBeliefMDP is the reward for a single state sampled from the belief; it is not the expected reward for that belief transition (though, in expectation, they are equivalent of course). Implementing the model with the expected reward requires a custom implementation because belief updaters do not typically deal with reward.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"GenerativeBeliefMDP","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.GenerativeBeliefMDP","page":"Model Tools","title":"POMDPTools.ModelTools.GenerativeBeliefMDP","text":"GenerativeBeliefMDP(pomdp, updater)\nGenerativeBeliefMDP(pomdp, updater; terminal_behavior=TerminalStateTerminalBehavior())\n\nCreate a generative model of the belief MDP corresponding to POMDP pomdp with belief updates performed by updater. Each step is performed by sampling a state from the current belief, generating an observation from that state and action, and then using updater to update the belief.\n\nA belief is considered terminal when all POMDP states in the support with nonzero probability are terminal.\n\nThe default behavior when a terminal POMDP state is sampled from the belief is to transition to terminalstate. This can be controlled by the terminal_behavior keyword argument. Using terminal_behavior=ContinueTerminalBehavior(pomdp, updater) will cause the MDP to keep attempting a belief update even when the sampled state is terminal. This can be further customized by providing terminal_behavior with a Function or callable object that takes arguments b, s, a, rng and returns a new belief (see the implementation of ContinueTerminalBehavior for an example). You can customize behavior additionally using determine_gbmdp_state_type.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#Example","page":"Model Tools","title":"Example","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"using POMDPs\nusing POMDPModels\nusing POMDPTools\n\npomdp = BabyPOMDP()\nupdater = DiscreteUpdater(pomdp)\n\nbelief_mdp = GenerativeBeliefMDP(pomdp, updater)\n@show statetype(belief_mdp) # POMDPModels.BoolDistribution\n\nfor (a, r, sp) in stepthrough(belief_mdp, RandomPolicy(belief_mdp), \"a,r,sp\", max_steps=5)\n @show a, r, sp\nend\n\n# output\nstatetype(belief_mdp) = DiscreteBelief{POMDPModels.BabyPOMDP, Bool}Bool}\n(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))\n(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))\n(a, r, sp) = (true, -5.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [1.0, 0.0]))\n(a, r, sp) = (false, 0.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [0.9759036144578314, 0.02409638554216867]))\n(a, r, sp) = (false, 0.0, DiscreteBelief{POMDPModels.BabyPOMDP, Bool}(POMDPModels.BabyPOMDP(-5.0, -10.0, 0.1, 0.8, 0.1, 0.9), Bool[0, 1], [0.9701315984030756, 0.029868401596924433]))","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"DocTestSetup = nothing","category":"page"},{"location":"POMDPTools/model/#Underlying-MDP","page":"Model Tools","title":"Underlying MDP","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"UnderlyingMDP","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.UnderlyingMDP","page":"Model Tools","title":"POMDPTools.ModelTools.UnderlyingMDP","text":"UnderlyingMDP(m::POMDP)\n\nTransform POMDP m into an MDP where the states are fully observed.\n\nUnderlyingMDP(m::MDP)\n\nReturn m\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#State-Action-Reward-Model","page":"Model Tools","title":"State Action Reward Model","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"StateActionReward","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.StateActionReward","page":"Model Tools","title":"POMDPTools.ModelTools.StateActionReward","text":"StateActionReward(m::Union{MDP,POMDP})\n\nRobustly create a reward function that depends only on the state and action.\n\nIf reward(m, s, a) is implemented, that will be used, otherwise the mean of reward(m, s, a, sp) for MDPs or reward(m, s, a, sp, o) for POMDPs will be used.\n\nExample\n\nusing POMDPs\nusing POMDPModels\nusing POMDPTools\n\nm = BabyPOMDP()\n\nrm = StateActionReward(m)\n\nrm(true, true)\n\n# output\n\n-15.0\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#Utility-Types","page":"Model Tools","title":"Utility Types","text":"","category":"section"},{"location":"POMDPTools/model/#Terminal-State","page":"Model Tools","title":"Terminal State","text":"","category":"section"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"TerminalState and its singleton instance terminalstate are available to use for a terminal state in concert with another state type. It has the appropriate type promotion logic to make its use with other types friendly, similar to nothing and missing.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"note: Note\nNOTE: This is NOT a replacement for the standard POMDPs.jl isterminal function, though isterminal is implemented for the type. It is merely a convenient type to use for terminal states.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"warning: Warning\nWARNING: Early tests (August 2018) suggest that the Julia 1.0 compiler will not be able to efficiently implement union splitting in cases as complex as POMDPs, so using a Union for the state type of a problem can currently have a large overhead.","category":"page"},{"location":"POMDPTools/model/","page":"Model Tools","title":"Model Tools","text":"TerminalState\nterminalstate","category":"page"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.TerminalState","page":"Model Tools","title":"POMDPTools.ModelTools.TerminalState","text":"TerminalState\n\nA type with no fields whose singleton instance terminalstate is used to represent a terminal state with no additional information.\n\nThis type has the appropriate promotion logic implemented to function like Missing when added to arrays, etc.\n\nNote that terminal states NEED NOT be of type TerminalState. You can define any state to be terminal by implementing the appropriate isterminal method. Solvers and simulators SHOULD NOT check for this type, but should instead check using isterminal. \n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/model/#POMDPTools.ModelTools.terminalstate","page":"Model Tools","title":"POMDPTools.ModelTools.terminalstate","text":"terminalstate\n\nThe singleton instance of type TerminalState representing a terminal state.\n\n\n\n\n\n","category":"constant"},{"location":"policy_interaction/#Interacting-with-Policies","page":"Interacting with Policies","title":"Interacting with Policies","text":"","category":"section"},{"location":"policy_interaction/","page":"Interacting with Policies","title":"Interacting with Policies","text":"A solution to a POMDP is a policy that maps beliefs or action-observation histories to actions. In POMDPs.jl, these are represented by Policy objects. See Solvers and Policies for more information about what a policy can represent in general.","category":"page"},{"location":"policy_interaction/","page":"Interacting with Policies","title":"Interacting with Policies","text":"One common task in evaluating POMDP solutions is examining the policies themselves. Since the internal representation of a policy is an esoteric implementation detail, it is best to interact with policies through the action and value interface functions. There are three relevant methods","category":"page"},{"location":"policy_interaction/","page":"Interacting with Policies","title":"Interacting with Policies","text":"action(policy, s) returns the best action (or one of the best) for the given state or belief.\nvalue(policy, s) returns the expected sum of future rewards if the policy is executed.\nvalue(policy, s, a) returns the \"Q-value\", that is, the expected sum of rewards if action a is taken on the next step and then the policy is executed.","category":"page"},{"location":"policy_interaction/","page":"Interacting with Policies","title":"Interacting with Policies","text":"Note that the quantities returned by these functions are what the policy/solver expects to be the case after its (usually approximate) computations; they may be far from the true value if the solution is not exactly optimal.","category":"page"},{"location":"install/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"install/","page":"Installation","title":"Installation","text":"If you have a running Julia distribution (Julia 0.4 or greater), you have everything you need to install POMDPs.jl. To install the package, simply run the following from the Julia REPL:","category":"page"},{"location":"install/","page":"Installation","title":"Installation","text":"import Pkg\nPkg.add(\"POMDPs\") # installs the POMDPs.jl package","category":"page"},{"location":"install/","page":"Installation","title":"Installation","text":"Some auxiliary packages and older versions of solvers may be found in the JuliaPOMDP registry. To install this registry, run:","category":"page"},{"location":"install/","page":"Installation","title":"Installation","text":"using Pkg; pkg\"registry add https://github.com/JuliaPOMDP/Registry\"","category":"page"},{"location":"install/","page":"Installation","title":"Installation","text":"Note: to use this registry, JuliaPro users must also run edit(normpath(Sys.BINDIR,\"..\",\"etc\",\"julia\",\"startup.jl\")), comment out the line ENV[\"DISABLE_FALLBACK\"] = \"true\", save the file, and restart JuliaPro as described in this issue.","category":"page"},{"location":"POMDPTools/visualization/#Visualization","page":"Visualization","title":"Visualization","text":"","category":"section"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"POMDPTools contains a basic visualization interface consisting of the render function.","category":"page"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"Problem writers should implement a method of this function so that their problem can be visualized in a variety of contexts including jupyter notebooks, web browsers, or saved as images or animations.","category":"page"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"render","category":"page"},{"location":"POMDPTools/visualization/#POMDPTools.ModelTools.render","page":"Visualization","title":"POMDPTools.ModelTools.render","text":"render(m::Union{MDP,POMDP}, step::NamedTuple)\n\nReturn a renderable representation of the step in problem m.\n\nThe renderable representation may be anything that has show(io, mime, x) methods. It could be a plot, svg, Compose.jl context, Cairo context, or image.\n\nArguments\n\nstep is a NamedTuple that contains the states, action, etc. corresponding to one transition in a simulation. It may have the following fields:\n\nt: the time step index\ns: the state at the beginning of the step\na: the action\nsp: the state at the end of the step (s')\nr: the reward for the step\no: the observation\nb: the belief at the \nbp: the belief at the end of the step\ni: info from the model when the state transition was calculated\nai: info from the policy decision\nui: info from the belief update\n\nKeyword arguments are reserved for the problem implementer and can be used to control appearance, etc.\n\nImportant Notes\n\nstep may not contain all of the elements listed above, so render should check for them and render only what is available\no typically corresponds to sp, so it is often clearer for POMDPs to render sp rather than s.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"Sometimes it is important to have control over how the problem is rendered with different mimetypes. One way to handle this is to have render return a custom type, e.g.","category":"page"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"struct MyProblemVisualization\n mdp::MyProblem\n step::NamedTuple\nend\n\nPOMDPTools.render(mdp, step) = MyProblemVisualization(mdp, step)","category":"page"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"and then implement custom show methods, e.g.","category":"page"},{"location":"POMDPTools/visualization/","page":"Visualization","title":"Visualization","text":"show(io::IO, mime::MIME\"text/html\", v::MyProblemVisualization)","category":"page"},{"location":"def_pomdp/#defining_pomdps","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"As described in the Concepts and Architecture section, an MDP is defined by the state space, action space, transition distributions, reward function, and discount factor, (SATRgamma). A POMDP also includes the observation space, and observation probability distributions, for a definition of (SATROZgamma). A problem definition in POMDPs.jl consists of an implicit or explicit definition of each of these elements.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"It is possible to define a (PO)MDP with a more traditional object-oriented approach in which the user defines a new type to represent the (PO)MDP and methods of interface functions to define the tuple elements. However, the QuickPOMDPs package provides a more concise way to get started, using keyword arguments instead of new types and methods. Essentially each keyword argument defines a corresponding POMDPs api function. Since the important concepts are the same for the object oriented approach and the QuickPOMDP approach, we will use the latter for this discussion.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"This guide has three parts: First, it explains a very simple example (the Tiger POMDP), then uses a more complex example to illustrate the broader capabilities of the interface. Finally, some alternative ways of defining (PO)MDPs are discussed.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"note: Note\nThis guide assumes that you are comfortable programming in Julia, especially familiar with various ways of defining anonymous functions. Users should consult the Julia documentation to learn more about programming in Julia.","category":"page"},{"location":"def_pomdp/#tiger","page":"Defining POMDPs and MDPs","title":"A Basic Example: The Tiger POMDP","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In the first section of this guide, we will explain a QuickPOMDP implementation of a very simple problem: the classic Tiger POMDP. In the tiger POMDP, the agent is tasked with escaping from a room. There are two doors leading out of the room. Behind one of the doors is a tiger, and behind the other is sweet, sweet freedom. If the agent opens the door and finds the tiger, it gets eaten (and receives a reward of -100). If the agent opens the other door, it escapes and receives a reward of 10. The agent can also listen. Listening gives a noisy measurement of which door the tiger is hiding behind. Listening gives the agent the correct location of the tiger 85% of the time. The agent receives a reward of -1 for listening. The complete implementation looks like this:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"using QuickPOMDPs: QuickPOMDP\nusing POMDPTools: Deterministic, Uniform, SparseCat\n\nm = QuickPOMDP(\n states = [\"left\", \"right\"],\n actions = [\"left\", \"right\", \"listen\"],\n observations = [\"left\", \"right\"],\n discount = 0.95,\n\n transition = function (s, a)\n if a == \"listen\"\n return Deterministic(s) # tiger stays behind the same door\n else # a door is opened\n return Uniform([\"left\", \"right\"]) # reset\n end\n end,\n\n observation = function (a, sp)\n if a == \"listen\"\n if sp == \"left\"\n return SparseCat([\"left\", \"right\"], [0.85, 0.15]) # sparse categorical\n else\n return SparseCat([\"right\", \"left\"], [0.85, 0.15])\n end\n else\n return Uniform([\"left\", \"right\"])\n end\n end,\n\n reward = function (s, a)\n if a == \"listen\"\n return -1.0\n elseif s == a # the tiger was found\n return -100.0\n else # the tiger was escaped\n return 10.0\n end\n end,\n\n initialstate = Uniform([\"left\", \"right\"]),\n);","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The next sections explain how each of the elements of the POMDP tuple are defined in this implementation:","category":"page"},{"location":"def_pomdp/#State,-action-and-observation-spaces","page":"Defining POMDPs and MDPs","title":"State, action and observation spaces","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In this example, each state, action, and observation is a String. The state, action and observation spaces (S, A, and O), are defined with the states, actions and observations keyword arguments. In this case, they are simply Vectors containing all the elements in the space.","category":"page"},{"location":"def_pomdp/#Transition-and-observation-distributions","page":"Defining POMDPs and MDPs","title":"Transition and observation distributions","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The transition and observation keyword arguments are used to define the transition distribution, T, and observation distribution, Z, respectively. These models are defined using functions that return distribution objects (more info below). The transition function takes state and action arguments and returns a distribution of the resulting next state. The observation function takes in an action and the resulting next state (sp, short for \"s prime\") and returns the distribution of the observation emitted at this state.","category":"page"},{"location":"def_pomdp/#Reward-function","page":"Defining POMDPs and MDPs","title":"Reward function","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The reward keyword argument defines R. It is a function that takes in a state and action and returns a number.","category":"page"},{"location":"def_pomdp/#Discount-and-initial-state-distribution","page":"Defining POMDPs and MDPs","title":"Discount and initial state distribution","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The discount factor, gamma, is defined with the discount keyword, and is simply a number between 0 and 1. The initial state distribution, b_0, is defined with the initialstate argument, and is a distribution object.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The example above shows a complete implementation of a very simple discrete-space POMDP. However, POMDPs.jl is capable of concisely expressing much more complex models with continuous and hybrid spaces. The guide below introduces a more complex example to fully explain the ways that a POMDP can be defined.","category":"page"},{"location":"def_pomdp/#Guide-to-Defining-POMDPs","page":"Defining POMDPs and MDPs","title":"Guide to Defining POMDPs","text":"","category":"section"},{"location":"def_pomdp/#po-mountaincar","page":"Defining POMDPs and MDPs","title":"A more complex example: A partially-observable mountain car","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Mountain car is a classic problem in reinforcement learning. A car starts in a valley between two hills, and must reach the goal at the top of the hill to the right (see wikipedia for image). The actions are left and right acceleration and neutral and the state consists of the car's position and velocity. In this partially-observable version, there is a small amount of acceleration noise and observations are normally-distributed noisy measurements of the position. This problem can be implemented as follows:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"import QuickPOMDPs: QuickPOMDP\nimport POMDPTools: ImplicitDistribution\nimport Distributions: Normal\n\nmountaincar = QuickPOMDP(\n actions = [-1., 0., 1.],\n obstype = Float64,\n discount = 0.95,\n\n transition = function (s, a) \n ImplicitDistribution() do rng\n x, v = s\n vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)\n vp = clamp(vp, -0.07, 0.07)\n xp = x + vp\n return (xp, vp)\n end\n end,\n\n observation = (a, sp) -> Normal(sp[1], 0.15),\n\n reward = function (s, a, sp)\n if sp[1] > 0.5\n return 100.0\n else\n return -1.0\n end\n end,\n\n initialstate = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0)),\n isterminal = s -> s[1] > 0.5\n)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The following sections provide a detailed guide to defining the components of a POMDP using this example and the tiger pomdp further above.","category":"page"},{"location":"def_pomdp/#space_representation","page":"Defining POMDPs and MDPs","title":"State, action, and observation spaces","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In POMDPs.jl, a state, action, or observation can be represented by any Julia object, for example an integer, a floating point number, a string or Symbol, or a vector. For example, in the tiger problem, the states are Strings, and in the mountaincar problem, the state is a Tuple of two floating point numbers, and the actions and observations are floating point numbers. These types are usually inferred from the space or initial state distribution definitions.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"warn: Warn\nObjects representing individual states, actions, and observations should not be altered once they are created, since they may be used as dictionary keys or stored in histories. Hence it is usually best to use immutable objects such as integers or StaticArrays. If the states need to be mutable (e.g. aggregate types with vectors in them), make sure the states are not actualy mutated and that hash and == functions are implmemented (see AutoHashEquals)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The state, action, and observation spaces are defined with the states, actions, and observations Quick(PO)MDP keyword arguments. The simplest way to define these spaces is with a Vector of states, e.g. states = [\"left\", \"right\"] in the tiger problem. More complicated spaces, such as vector spaces and other continuous, uncountable, or hybrid sets can be defined with custom objects that adhere to the space interface. However it should be noted that, for many solvers, an explicit enumeration of the state and observation spaces is not needed. Instead, it is sufficient to specify the state or observation type using the statetype or obstype arguments, e.g. obstype = Float64 in the mountaincar problem.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"tip: Tip\nIf you are having a difficult time representing the state or observation space, it is likely that you will not be able to use a solver that requires an explicit representation. It is usually best to omit that space from the definition and try solvers to see if they work.","category":"page"},{"location":"def_pomdp/#state-dep-action","page":"Defining POMDPs and MDPs","title":"State- or belief-dependent action spaces","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In some problems, the set of allowable actions depends on the state or belief. This can be implemented by providing a function of the state or belief to the actions argument, e.g. if you can only take the action 1 in state 1, but can take full action space 1, 2 and 3, in an MDP, you might use","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"# add default vlaue \"s = nothing\" , \"actions(mdp)\" won't throw error.\nactions = function (s = nothing) \n if s == 1\n return [1] #<--- return state-dep-actions\n else\n return [1,2,3] #<--- return full action space here\n end\nend","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Similarly, in a POMDP, you may wish to only allow action 1 if the belief b assigns a nonzero probability to state 1. This can be accomplished with","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"actions = function (b)\n if pdf(b, 1) > 0.0\n return [1,2,3]\n else\n return [2,3]\n end\nend","category":"page"},{"location":"def_pomdp/#Transition-and-observation-distributions-2","page":"Defining POMDPs and MDPs","title":"Transition and observation distributions","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The transition and observation observation distributions are specified through functions that return distributions. A distribution object implements parts of the distribution interface, most importantly a rand function that provides a way to sample the distribution and, for explicit distributions, a pdf function that evaluates the probability mass or density of a given outcome. In most simple cases, you will be able to use a pre-defined distribution like the ones listed below, but occasionally you will define your own for more complex problems.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"tip: Tip\nSince the transition and observation functions return distributions, you should not call rand within these functions (unless it is within an ImplicitDistribution sampling function (see below)).","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The transition function takes in a state s and action a and returns a distribution object that defines the distribution of next states given that the current state is s and the action is a, that is T(s s a). Similarly the observation function takes in the action a and the next state sp and returns a distribution object defining O(z a s).","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"note: Note\nIt is also possible to define the observation function in terms of the previous state s, along with a, and sp. This is necessary, for example, when the observation is a measurement of change in state, e.g. sp - s. However some solvers may use the a, sp method (and hence cannot solve problems where the observation is conditioned on s and s). Since providing an a, sp method automatically defines the s, a, sp method, problem writers should usually define only the a, sp method, and only define the s, a, sp method if it is necessary. Except for special performance cases, problem writers should never need to define both methods.","category":"page"},{"location":"def_pomdp/#Commonly-used-distributions","page":"Defining POMDPs and MDPs","title":"Commonly-used distributions","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In most cases, the following pre-defined distributions found in the POMDPTools and Distributions packages will be sufficient to define models.","category":"page"},{"location":"def_pomdp/#Deterministic","page":"Defining POMDPs and MDPs","title":"Deterministic","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The Deterministic distribution should be used when there is no randomness in the state or observation given the state and action inputs. This commonly occurs when the new state is a deterministic function of the state and action or the state stays the same, for example when the action is \"listen\" in the tiger example above, the transition function returns Deterministic(s).","category":"page"},{"location":"def_pomdp/#SparseCat","page":"Defining POMDPs and MDPs","title":"SparseCat","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In discrete POMDPs, it is common for the state or observation to have a few possible outcomes with specified probabilities. This can be represented with a sparse categorical SparseCat distribution that takes a list of outcomes and a list of associated probabilities as arguments. For instance, in the tiger example above, when the action is \"listen\", there is an 85% chance of receiving the correct observation. Thus if the state is \"left\", the observation distribution is SparseCat([\"left\", \"right\"], [0.85, 0.15]), and SparseCat([\"right\", \"left\"], [0.85, 0.15]) if the state is \"right\".","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Another example where SparseCat distributions are useful is in grid-world problems, where there is a high probability of transitioning along the direction of the action, a low probability of transitioning to other adjacent states, and zero probability of transitioning to any other states.","category":"page"},{"location":"def_pomdp/#Uniform","page":"Defining POMDPs and MDPs","title":"Uniform","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Another common case is a uniform distribution over a space or set of outcomes. This can be represented with a Uniform object that takes a set of outcomes as an argument. For example, the initial state distribution in the tiger problem is represented with Uniform([\"left\", \"right\"]) indicating that both states are equally likely.","category":"page"},{"location":"def_pomdp/#Distributions.jl","page":"Defining POMDPs and MDPs","title":"Distributions.jl","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"If the states or observations have numerical or vector values, the Distributions.jl package provides a suite of suitable distributions. For example, the observation function in the partially-observable mountain car example above,","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"observation = (a, sp) -> Normal(sp[1], 0.15)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"returns a Normal distribution from this package with a mean that depends on the car's location (the first element of state sp) and a standard deviation of 0.15.","category":"page"},{"location":"def_pomdp/#implicit_distribution_section","page":"Defining POMDPs and MDPs","title":"ImplicitDistribution","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In many cases, especially when the state or observation spaces are continuous or hybrid, it is difficult or impossible to specify the probability density explicitly. Fortunately, many solvers for these problems do not require explicit density information and instead need only samples from the distribution. In this case, an \"implicit distribution\" or \"generative model\" is sufficient. In POMDPs.jl, this can be represented using an ImplicitDistribution object.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The argument to an ImplicitDistribution constructor is a function that takes a random number generator as an argument and returns a sample from the distribution. To see how this works, we'll look at an example inspired by the mountaincar initial state distribution. Samples from this distribution are position-velocity tuples where the velocity is always zero, but the position is uniformly distributed between -0.2 and 0. Consider the following code:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"using StableRNGs: StableRNG\nusing POMDPTools: ImplicitDistribution\n\nrng = StableRNG(1)\n\nd = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0))\nrand(rng, d)\n# output\n(-0.11703892844248372, 0.0)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Here, rng is the random number generator. When rand(rng, d) is called, the sampling function, rng -> (-0.2*rand(rng), 0.0), is called to generate a state. The sampling function uses rng to generate a random number between 0 and 1 (rand(rng)), multiplies it by -0.2 to get the position, and creates a tuple with the position and a velocity of 0.0 and returns an initial state that might be, for instance (-0.11, 0.0). Any time that a solver, belief updater, or simulator needs an initial state for the problem, it will be sampled in this way.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"note: Note\nThe random number generator is a subtype of AbstractRNG. It is important to use this random number generator for all calls to rand in the sample function for reproducible results. Moreover some solvers use specialized random number generators that allow them to reduce variance. See also the What if I don't use the rng argument? FAQ.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"It is also common to use Julia's do block syntax to define more complex sampling functions. For instance the transition function in the mountaincar example returns an ImplicitDistribution with a sampling function that (1) generates a new noisy velocity through a randn call, then (2) clamps the velocity, and finally (3) integrates the position with Euler's method:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"transition = function (s, a) \n ImplicitDistribution() do rng\n x, v = s\n vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)\n vp = clamp(vp, -0.07, 0.07)\n xp = x + vp\n return (xp, vp)\n end\nend","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Because of the nonlinear clamp operation, it would be difficult to represent this distribution explicitly.","category":"page"},{"location":"def_pomdp/#Custom-distributions","page":"Defining POMDPs and MDPs","title":"Custom distributions","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"If none of the distributions above are suitable, for example if you need to represent an explicit distribution with hybrid support, it is not difficult to define your own distributions by implementing the functions in the distribution interface.","category":"page"},{"location":"def_pomdp/#Reward-functions","page":"Defining POMDPs and MDPs","title":"Reward functions","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The reward function maps a combination of state, action, and observation arguments to the reward for a step. For instance, the reward function in the mountaincar problem,","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"reward = function (s, a, sp)\n if sp[1] > 0.5\n return 100.0\n else\n return -1.0\n end\nend","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"takes in the previous state, s, the action, a, and the resulting state, sp and returns a large positive reward if the resulting position, sp[1], is beyond a threshold (note the coupling of the terminal reward) and a small negative reward on all other steps. If the reward in the problem is stochastic, the reward function implemented in POMDPs.jl should return the mean reward.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"There are two possible reward function argument signatures that a problem-writer might consider implementing for an MDP: (s, a) and (s, a, sp). For a POMDP, there is an additional version, (s, a, sp, o). The (s, a, sp) version is useful when transition to a terminal state results in a reward, and the (s, a, sp, o) version is useful for cases when the reward is associated with an observation, such as a negative reward for the stress caused by a medical diagnostic test that indicates the possibility of a disease. Problem writers should implement the version with the fewest number of arguments possible, since the versions with more arguments are automatically provided to solvers and simulators if a version with fewer arguments is implemented.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In rare cases, it may make sense to implement two or more versions of the function, for example if a solver requires (s, a), but the user wants an observation-dependent reward to show up in simulation. It is OK to implement two methods of the reward function as long as the following relationships hold: R(s a) = E_ssim T(ssa)R(s a s) and R(s a s) = E_o sim Z(o s a s)R(s a s o). That is, the versions with fewer arguments must be expectations of versions with more arguments.","category":"page"},{"location":"def_pomdp/#Other-Components","page":"Defining POMDPs and MDPs","title":"Other Components","text":"","category":"section"},{"location":"def_pomdp/#Discount-factors","page":"Defining POMDPs and MDPs","title":"Discount factors","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The discount keyword argument is simply a number between 0 and 1 used to discount rewards in the future.","category":"page"},{"location":"def_pomdp/#Initial-state-distribution","page":"Defining POMDPs and MDPs","title":"Initial state distribution","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The initialstate argument should be a distribution object (see above) that defines the initial state distribution (and initial belief for POMDPs).","category":"page"},{"location":"def_pomdp/#Terminal-states","page":"Defining POMDPs and MDPs","title":"Terminal states","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The function supplied to the isterminal object defines which which states in the POMDP are terminal. The function should take a state as an argument as an argument and return true if the state is terminal and false otherwise. For example, in the mountaincar example above, isterminal = s -> s[1] > 0.5 indicates all states where the position, s[1] is greater than 0.5 are terminal.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"It is assumed that the system will take no further steps once it has reached a terminal state. Since reward is assigned for taking steps, no additional award can be accumulated from a terminal state. Consequently, the most important property of terminal states is that the value of a terminal state is always zero. Many solvers leverage this property for efficiency. As in the mountaincar example","category":"page"},{"location":"def_pomdp/#Other-ways-to-define-a-(PO)MDP","page":"Defining POMDPs and MDPs","title":"Other ways to define a (PO)MDP","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Besides the Quick(PO)MDP approach above, there are several alternative ways to define (PO)MDP models:","category":"page"},{"location":"def_pomdp/#Object-oriented","page":"Defining POMDPs and MDPs","title":"Object-oriented","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"First, it is possible to create your own (PO)MDP types and implement the components of the POMDP directly as methods of POMDPs.jl interface functions. This approach can be thought of as the \"low-level\" way to define a POMDP, and the QuickPOMDP as merely a syntactic convenience. There are a few things that make this object-oriented approach more cumbersome than the QuickPOMDP approach, but the structure is similar. For example, the tiger QuickPOMDP shown above can be implemented as follows:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"import POMDPs\nusing POMDPs: POMDP\nusing POMDPTools: Deterministic, Uniform, SparseCat\n\nstruct TigerPOMDP <: POMDP{String, String, String}\n p_correct::Float64\n indices::Dict{String, Int}\n\n TigerPOMDP(p_correct=0.85) = new(p_correct, Dict(\"left\"=>1, \"right\"=>2, \"listen\"=>3))\nend\n\nPOMDPs.states(m::TigerPOMDP) = [\"left\", \"right\"]\nPOMDPs.actions(m::TigerPOMDP) = [\"left\", \"right\", \"listen\"]\nPOMDPs.observations(m::TigerPOMDP) = [\"left\", \"right\"]\nPOMDPs.discount(m::TigerPOMDP) = 0.95\nPOMDPs.stateindex(m::TigerPOMDP, s) = m.indices[s]\nPOMDPs.actionindex(m::TigerPOMDP, a) = m.indices[a]\nPOMDPs.obsindex(m::TigerPOMDP, o) = m.indices[o]\n\nfunction POMDPs.transition(m::TigerPOMDP, s, a)\n if a == \"listen\"\n return Deterministic(s) # tiger stays behind the same door\n else # a door is opened\n return Uniform([\"left\", \"right\"]) # reset\n end\nend\n\nfunction POMDPs.observation(m::TigerPOMDP, a, sp)\n if a == \"listen\"\n if sp == \"left\"\n return SparseCat([\"left\", \"right\"], [m.p_correct, 1.0-m.p_correct])\n else\n return SparseCat([\"right\", \"left\"], [m.p_correct, 1.0-m.p_correct])\n end\n else\n return Uniform([\"left\", \"right\"])\n end\nend\n\nfunction POMDPs.reward(m::TigerPOMDP, s, a)\n if a == \"listen\"\n return -1.0\n elseif s == a # the tiger was found\n return -100.0\n else # the tiger was escaped\n return 10.0\n end\nend\n\nPOMDPs.initialstate(m::TigerPOMDP) = Uniform([\"left\", \"right\"])\n# output","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"It is easy to see that the new methods are similar to the keyword arguments in the QuickPOMDP approach, except that every function has an initial m argument that has the newly created POMDP type. There are several differences from the QuickPOMDP approach: First, the POMDP is represented by a new struct that is a subtype of POMDP{S,A,O}. The state, action, and observation types must be specified as the S, A, and O parameters of the POMDP abstract type. Second, this new struct may contain problem-specific fields, which makes it easy for others to construct POMDPs that have the same structure but different parameters. For example, in the code above, the struct has a p_correct parameter that specifies the probability of receiving a correct observation when the \"listen\" action is taken. The final and most cumbersome difference between this object-oriented approach and using QuickPOMDPs is that the user must implement stateindex, actionindex, and obsindex to map states, actions, and observations to appropriate indices so that data such as values can be stored and accessed efficiently in vectors.","category":"page"},{"location":"def_pomdp/#Using-a-single-generative-function-instead-of-separate-T,-Z,-and-R","page":"Defining POMDPs and MDPs","title":"Using a single generative function instead of separate T, Z, and R","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"In some cases, you may wish to use a simulator that generates the next state, observation, and/or reward (s, o, and r) simultaneously. This is sometimes called a \"generative model\".","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"For example if you are working on an autonomous driving POMDP, the car may travel for one or more seconds in between POMDP decision steps during which it may accumulate reward and observation measurements. In this case it might be very difficult to create a reward or observation function based on s, a, and s arguments.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"For situations like this, gen is an alternative to transition, observation, and reward. The gen function should take in state, action, and random number generator arguments and return a NamedTuple with keys sp (for \"s-prime\", the next state), o, and r. The mountaincar example above can be implemented with gen as shown below.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"note: Note\ngen is intended only for the case where two or more of the next state, observation, and reward need to be generated at the same time. If the state transition model can be separated from the reward and observation models, you should implement transition with an ImplicitDistribution instead of gen. See also the \"What is the difference between transition, gen, and @gen?\" FAQ.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"using QuickPOMDPs: QuickPOMDP\nusing POMDPTools: ImplicitDistribution\n\nmountaincar = QuickPOMDP(\n actions = [-1., 0., 1.],\n obstype = Float64,\n discount = 0.95,\n\n gen = function (s, a, rng)\n x, v = s\n vp = v + a*0.001 + cos(3*x)*-0.0025 + 0.0002*randn(rng)\n vp = clamp(vp, -0.07, 0.07)\n xp = x + vp\n if xp > 0.5\n r = 100.0\n else\n r = -1.0\n end\n o = xp + 0.15*randn(rng)\n return (sp=(xp, vp), o=o, r=r)\n end,\n\n initialstate = ImplicitDistribution(rng -> (-0.2*rand(rng), 0.0)),\n isterminal = s -> s[1] > 0.5\n)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"tip: Tip\ngen is not tied to the QuickPOMDP approach; it can also be used in the object-oriented paradigm.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"tip: Tip\nIt is possible to mix and match gen with transtion, observation, and reward. For example, if the gen function returns a NamedTuple with sp and r keys, POMDPs.jl will try to use gen to generate states and rewards and the observation function to generate observations.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"note: Note\nImplementing gen instead of transition, observation, and reward will limit which solvers you can use; for example, it is impossible to use a solver that requires an explicit transition distribution","category":"page"},{"location":"def_pomdp/#Tabular","page":"Defining POMDPs and MDPs","title":"Tabular","text":"","category":"section"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Finally, it is sometimes convenient to define (PO)MDPs with tables that define the transition and observation probabilities and rewards. In this case, the states, actions, and observations must simply be integers.","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"The code below is a tabular implementation of the tiger example with the states, actions, and observations mapped to the following integers:","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"integer state, action, or observation\n1 \"left\"\n2 \"right\"\n3 \"listen\"","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"using POMDPModels: TabularPOMDP\n\nT = zeros(2,3,2)\nT[:,:,1] = [1. 0.5 0.5; \n 0. 0.5 0.5]\nT[:,:,2] = [0. 0.5 0.5; \n 1. 0.5 0.5]\n\nO = zeros(2,3,2)\nO[:,:,1] = [0.85 0.5 0.5; \n 0.15 0.5 0.5]\nO[:,:,2] = [0.15 0.5 0.5; \n 0.85 0.5 0.5]\n\nR = [-1. -100. 10.; \n -1. 10. -100.]\n\nm = TabularPOMDP(T, R, O, 0.95)","category":"page"},{"location":"def_pomdp/","page":"Defining POMDPs and MDPs","title":"Defining POMDPs and MDPs","text":"Here T is a S times A times S array representing the transition probabilities, with T[sp, a, s] = T(s s a). Similarly, O is an O times A times S encoding the observation distribution with O[o, a, sp] = Z(o a s), and R is a S times A matrix that encodes the reward function. 0.95 is the discount factor.","category":"page"},{"location":"example_defining_problems/#Defining-a-POMDP","page":"Defining a POMDP","title":"Defining a POMDP","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"As mentioned in the Defining POMDPs and MDPs section, there are various ways to define a POMDP using POMDPs.jl. In this section, we provide more examples of how to define a POMDP using the different interfaces.","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"There is a large variety of problems that can be expressed as MDPs and POMDPs and different solvers require different components of the POMDPs.jl interface to be defined. Therefore, these examples are not intended to cover all possible use cases. When developing a problem and you have an idea of what solver(s) you would like to use, it is recommended to use POMDPLinter to help you to determine what components of the POMDPs.jl interface need to be defined. Reference the Checking Requirements section for an example of using POMDPLinter.","category":"page"},{"location":"example_defining_problems/#CryingBaby-Problem-Definition","page":"Defining a POMDP","title":"CryingBaby Problem Definition","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"For the examples, we will use the CryingBaby problem from Algorithms for Decision Making by Mykel J. Kochenderfer, Tim A. Wheeler, and Kyle H. Wray.","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"note: Note\nThis crying baby problem follows the description in Algorithms for Decision Making and is different than BabyPOMDP defined in POMDPModels.jl.","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"From Appendix F of Algorithms for Decision Making:","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"The crying baby problem is a simple POMDP with two states, three actions, and two observations. Our goal is to care for a baby, and we do so by choosing at each time step whether to feed the baby, sing to the baby, or ignore the baby.The baby becomes hungry over time. We do not directly observe whether the baby is hungry; instead, we receive a noisy observation in the form of whether the baby is crying. The state, action, and observation spaces are as follows:beginalign*\nmathcalS = textsated texthungry \nmathcalA = textfeed textsing textignore \nmathcalO = textcrying textquiet \nendalign*Feeding will always sate the baby. Ignoring the baby risks a sated baby becoming hungry, and ensures that a hungry baby remains hungry. Singing to the baby is an information-gathering action with the same transition dynamics as ignoring, but without the potential for crying when sated (not hungry) and with an increased chance of crying when hungry.The transition dynamics are as follows:beginalign*\n T(textsated mid texthungry textfeed) = 100 \n T(texthungry mid texthungry textsing) = 100 \n T(texthungry mid texthungry textignore) = 100 \n T(textsated mid textsated textfeed) = 100 \n T(texthungry mid textsated textsing) = 10 \n T(texthungry mid textsated textignore) = 10\nendalign*The observation dynamics are as follows:beginalign*\n O(textcrying mid textfeed texthungry) = 80 \n O(textcrying mid textsing texthungry) = 90 \n O(textcrying mid textignore texthungry) = 80 \n O(textcrying mid textfeed textsated) = 10 \n O(textcrying mid textsing textsated) = 0 \n O(textcrying mid textignore textsated) = 10 \nendalign*The reward function assigns 10 reward if the baby is hungry, independent of the action taken. The effort of feeding the baby adds a further 5 reward, whereas singing adds 05 reward. As baby caregivers, we seek the optimal infinite-horizon policy with discount factor gamma = 09. ","category":"page"},{"location":"example_defining_problems/#quick_crying","page":"Defining a POMDP","title":"QuickPOMDP Interface","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"using POMDPs\nusing POMDPTools\nusing QuickPOMDPs\n\nquick_crying_baby_pomdp = QuickPOMDP(\n states = [:sated, :hungry],\n actions = [:feed, :sing, :ignore],\n observations = [:quiet, :crying],\n initialstate = Deterministic(:sated),\n discount = 0.9,\n transition = function (s, a)\n if a == :feed\n return Deterministic(:sated)\n elseif s == :sated # :sated and a != :feed\n return SparseCat([:sated, :hungry], [0.9, 0.1])\n else # s == :hungry and a != :feed\n return Deterministic(:hungry)\n end\n end,\n observation = function (a, sp)\n if sp == :hungry\n if a == :sing\n return SparseCat([:crying, :quiet], [0.9, 0.1])\n else # a == :ignore || a == :feed\n return SparseCat([:crying, :quiet], [0.8, 0.2])\n end\n else # sp = :sated\n if a == :sing\n return Deterministic(:quiet)\n else # a == :ignore || a == :feed\n return SparseCat([:crying, :quiet], [0.1, 0.9])\n end\n \n end\n end,\n reward = function (s, a)\n r = 0.0\n if s == :hungry\n r += -10.0\n end\n if a == :feed\n r += -5.0\n elseif a == :sing\n r+= -0.5\n end\n return r\n end\n)","category":"page"},{"location":"example_defining_problems/#explicit_crying","page":"Defining a POMDP","title":"Explicit Interface","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"using POMDPs\nusing POMDPTools\n\nstruct CryingBabyState # Alternatively, you could just use a Bool or Symbol for the state.\n hungry::Bool\nend\n\nstruct CryingBabyPOMDP <: POMDP{CryingBabyState, Symbol, Symbol}\n p_sated_to_hungry::Float64\n p_cry_feed_hungry::Float64\n p_cry_sing_hungry::Float64\n p_cry_ignore_hungry::Float64\n p_cry_feed_sated::Float64\n p_cry_sing_sated::Float64\n p_cry_ignore_sated::Float64\n reward_hungry::Float64\n reward_feed::Float64\n reward_sing::Float64\n discount_factor::Float64\nend\n\nfunction CryingBabyPOMDP(;\n p_sated_to_hungry=0.1,\n p_cry_feed_hungry=0.8,\n p_cry_sing_hungry=0.9,\n p_cry_ignore_hungry=0.8,\n p_cry_feed_sated=0.1,\n p_cry_sing_sated=0.0,\n p_cry_ignore_sated=0.1,\n reward_hungry=-10.0,\n reward_feed=-5.0,\n reward_sing=-0.5,\n discount_factor=0.9\n)\n return CryingBabyPOMDP(p_sated_to_hungry, p_cry_feed_hungry,\n p_cry_sing_hungry, p_cry_ignore_hungry, p_cry_feed_sated,\n p_cry_sing_sated, p_cry_ignore_sated, reward_hungry,\n reward_feed, reward_sing, discount_factor)\nend\n\nPOMDPs.actions(::CryingBabyPOMDP) = [:feed, :sing, :ignore]\nPOMDPs.states(::CryingBabyPOMDP) = [CryingBabyState(false), CryingBabyState(true)]\nPOMDPs.observations(::CryingBabyPOMDP) = [:crying, :quiet]\nPOMDPs.stateindex(::CryingBabyPOMDP, s::CryingBabyState) = s.hungry ? 2 : 1\nPOMDPs.obsindex(::CryingBabyPOMDP, o::Symbol) = o == :crying ? 1 : 2\nPOMDPs.actionindex(::CryingBabyPOMDP, a::Symbol) = a == :feed ? 1 : a == :sing ? 2 : 3\n\nfunction POMDPs.transition(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol)\n if a == :feed\n return Deterministic(CryingBabyState(false))\n elseif s == :sated # :sated and a != :feed\n return SparseCat([CryingBabyState(false), CryingBabyState(true)], [1 - pomdp.p_sated_to_hungry, pomdp.p_sated_to_hungry])\n else # s == :hungry and a != :feed\n return Deterministic(CryingBabyState(true))\n end\nend\n\nfunction POMDPs.observation(pomdp::CryingBabyPOMDP, a::Symbol, sp::CryingBabyState)\n if sp.hungry\n if a == :sing\n return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_hungry, 1 - pomdp.p_cry_sing_hungry])\n elseif a== :ignore\n return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_hungry, 1 - pomdp.p_cry_ignore_hungry])\n else # a == :feed\n return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_hungry, 1 - pomdp.p_cry_feed_hungry])\n end\n else # sated\n if a == :sing\n return SparseCat([:crying, :quiet], [pomdp.p_cry_sing_sated, 1 - pomdp.p_cry_sing_sated])\n elseif a== :ignore\n return SparseCat([:crying, :quiet], [pomdp.p_cry_ignore_sated, 1 - pomdp.p_cry_ignore_sated])\n else # a == :feed\n return SparseCat([:crying, :quiet], [pomdp.p_cry_feed_sated, 1 - pomdp.p_cry_feed_sated])\n end\n end\nend\n\nfunction POMDPs.reward(pomdp::CryingBabyPOMDP, s::CryingBabyState, a::Symbol)\n r = 0.0\n if s.hungry\n r += pomdp.reward_hungry\n end\n if a == :feed\n r += pomdp.reward_feed\n elseif a == :sing\n r += pomdp.reward_sing\n end\n return r\nend\n\nPOMDPs.discount(pomdp::CryingBabyPOMDP) = pomdp.discount_factor\n\nPOMDPs.initialstate(::CryingBabyPOMDP) = Deterministic(CryingBabyState(false))\n\nexplicit_crying_baby_pomdp = CryingBabyPOMDP()","category":"page"},{"location":"example_defining_problems/#gen_crying","page":"Defining a POMDP","title":"Generative Interface","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"This crying baby problem should not be implemented using the generative interface. However, this example is provided for pedagogical purposes.","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"using POMDPs\nusing POMDPTools\nusing Random\n\nstruct GenCryingBabyState # Alternatively, you could just use a Bool or Symbol for the state.\n hungry::Bool\nend\n\nstruct GenCryingBabyPOMDP <: POMDP{GenCryingBabyState, Symbol, Symbol}\n p_sated_to_hungry::Float64\n p_cry_feed_hungry::Float64\n p_cry_sing_hungry::Float64\n p_cry_ignore_hungry::Float64\n p_cry_feed_sated::Float64\n p_cry_sing_sated::Float64\n p_cry_ignore_sated::Float64\n reward_hungry::Float64\n reward_feed::Float64\n reward_sing::Float64\n discount_factor::Float64\n \n GenCryingBabyPOMDP() = new(0.1, 0.8, 0.9, 0.8, 0.1, 0.0, 0.1, -10.0, -5.0, -0.5, 0.9) \nend\n\nfunction POMDPs.gen(pomdp::GenCryingBabyPOMDP, s::GenCryingBabyState, a::Symbol, rng::AbstractRNG)\n \n if a == :feed\n sp = GenCryingBabyState(false)\n else \n sp = rand(rng) < pomdp.p_sated_to_hungry ? GenCryingBabyState(true) : GenCryingBabyState(false)\n end\n \n if sp.hungry\n if a == :sing\n o = rand(rng) < pomdp.p_cry_sing_hungry ? :crying : :quiet\n elseif a== :ignore\n o = rand(rng) < pomdp.p_cry_ignore_hungry ? :crying : :quiet\n else # a == :feed\n o = rand(rng) < pomdp.p_cry_feed_hungry ? :crying : :quiet\n end\n else # sated\n if a == :sing\n o = rand(rng) < pomdp.p_cry_sing_sated ? :crying : :quiet\n elseif a== :ignore\n o = rand(rng) < pomdp.p_cry_ignore_sated ? :crying : :quiet\n else # a == :feed\n o = rand(rng) < pomdp.p_cry_feed_sated ? :crying : :quiet\n end\n end\n \n r = 0.0\n if sp.hungry\n r += pomdp.reward_hungry\n end\n if a == :feed\n r += pomdp.reward_feed\n elseif a == :sing\n r += pomdp.reward_sing\n end\n \n return (sp=sp, o=o, r=r) \nend\n\nPOMDPs.initialstate(::GenCryingBabyPOMDP) = Deterministic(GenCryingBabyState(false))\n\ngen_crying_baby_pomdp = GenCryingBabyPOMDP()","category":"page"},{"location":"example_defining_problems/#tab_crying","page":"Defining a POMDP","title":"Probability Tables","text":"","category":"section"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"For this implementation we will use the following indexes:","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"States\n:sated = 1\n:hungry = 2\nActions\n:feed = 1\n:sing = 2\n:ignore = 3\nObservations\n:crying = 1\n:quiet = 2","category":"page"},{"location":"example_defining_problems/","page":"Defining a POMDP","title":"Defining a POMDP","text":"using POMDPModels\n\nT = zeros(2, 3, 2) # |S| x |A| x |S'|, T[sp, a, s] = p(sp | a, s)\nT[:, 1, :] = [1.0 1.0; \n 0.0 0.0]\nT[:, 2, :] = [0.9 0.0; \n 0.1 1.0]\nT[:, 3, :] = [0.9 0.0; \n 0.1 1.0]\n\nO = zeros(2, 3, 2) # |O| x |A| x |S'|, O[o, a, sp] = p(o | a, sp)\nO[:, 1, :] = [0.1 0.8; \n 0.9 0.2]\nO[:, 2, :] = [0.0 0.9;\n 1.0 0.1]\nO[:, 3, :] = [0.1 0.8;\n 0.9 0.2]\n\nR = zeros(2, 3) # |S| x |A|\nR = [-5.0 -0.5 0.0;\n -15.0 -10.5 0.0]\n \ndiscount = 0.9\n\ntabular_crying_baby_pomdp = TabularPOMDP(T, R, O, discount)","category":"page"},{"location":"concepts/#Concepts-and-Architecture","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"","category":"section"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"POMDPs.jl aims to coordinate the development of three software components: 1) a problem, 2) a solver, 3) an experiment. Each of these components has a set of abstract types associated with it and a set of functions that allow a user to define each component's behavior in a standardized way. An outline of the architecture is shown below.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"(Image: concepts)","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"The MDP and POMDP types are associated with the problem definition. The Solver and Policy types are associated with the solver or decision-making agent. Typically, the Updater type is also associated with the solver, but a solver may sometimes be used with an updater that was implemented separately. The Simulator type is associated with the experiment.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"The code components of the POMDPs.jl ecosystem relevant to problems and solvers are shown below. The arrows represent the flow of information from the problems to the solvers. The figure shows the two interfaces that form POMDPs.jl - Explicit and Generative. Details about these interfaces can be found in the section on Defining POMDPs.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"(Image: interface_relationships)","category":"page"},{"location":"concepts/#POMDPs-and-MDPs","page":"Concepts and Architecture","title":"POMDPs and MDPs","text":"","category":"section"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"An MDP is a mathematical framework for sequential decision making under uncertainty, and where all of the uncertainty arises from outcomes that are partially random and partially under the control of a decision maker. Mathematically, an MDP is a tuple (SATRgamma), where S is the state space, A is the action space, T is a transition function defining the probability of transitioning to each state given the state and action at the previous time, and R is a reward function mapping every possible transition (sas) to a real reward value. Finally, gamma is a discount factor that defines the relative weighting of current and future rewards. For more information see a textbook such as [1]. In POMDPs.jl an MDP is represented by a concrete subtype of the MDP abstract type and a set of methods that define each of its components as described in the problem definition section.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"A POMDP is a more general sequential decision making problem in which the agent is not sure what state they are in. The state is only partially observable by the decision making agent. Mathematically, a POMDP is a tuple (SATROZgamma) where S, A, T, R, and gamma have the same meaning as in an MDP, O is the agent's observation space, and Z defines the probability of receiving each observation at a transition. In POMDPs.jl, a POMDP is represented by a concrete subtype of the POMDP abstract type, and the methods described in the problem definition section.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"POMDPs.jl contains additional functions for defining optional problem behavior such as an initial state distribution or terminal states. More information can be found in the Defining POMDPs section.","category":"page"},{"location":"concepts/#Beliefs-and-Updaters","page":"Concepts and Architecture","title":"Beliefs and Updaters","text":"","category":"section"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"In a POMDP domain, the decision-making agent does not have complete information about the state of the problem, so the agent can only make choices based on its \"belief\" about the state. In the POMDP literature, the term \"belief\" is typically defined to mean a probability distribution over all possible states of the system. However, in practice, the agent often makes decisions based on an incomplete or lossy record of past observations that has a structure much different from a probability distribution. For example, if the agent is represented by a finite-state controller, as is the case for Monte-Carlo Value Iteration [2], the belief is the controller state, which is a node in a graph. Another example is an agent represented by a recurrent neural network. In this case, the agent's belief is the state of the network. In order to accommodate a wide variety of decision-making approaches in POMDPs.jl, we use the term \"belief\" to denote the set of information that the agent makes a decision on, which could be an exact state distribution, an action-observation history, a set of weighted particles, or the examples mentioned before. In code, the belief can be represented by any built-in or user-defined type.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"When an action is taken and a new observation is received, the belief is updated by the belief updater. In code, a belief updater is represented by a concrete subtype of the Updater abstract type, and the update(updater, belief, action, observation) function defines how the belief is updated when a new observation is received.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"Although the agent may use a specialized belief structure to make decisions, the information initially given to the agent about the state of the problem is usually most conveniently represented as a state distribution, thus the initialize_belief function is provided to convert a state distribution to a specialized belief structure that an updater can work with.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"In many cases, the belief structure is closely related to the solution technique, so it will be implemented by the programmer who writes the solver. In other cases, the agent can use a variety of belief structures to make decisions, so a domain-specific updater implemented by the programmer that wrote the problem description may be appropriate. Finally, some advanced generic belief updaters such as particle filters may be implemented by a third party. The convenience function updater(policy) can be used to get a suitable default updater for a policy, however many policies can work with other updaters.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"For more information on implementing a belief updater, see Defining a Belief Updater","category":"page"},{"location":"concepts/#Solvers-and-Policies","page":"Concepts and Architecture","title":"Solvers and Policies","text":"","category":"section"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"Sequential decision making under uncertainty involves both online and offline calculations. In the broad sense, the term \"solver\" as used in the node in the figure at the top of the page refers to the software package that performs the calculations at both of these times. However, the code is broken up into two pieces, the solver that performs calculations offline and the policy that performs calculations online.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"In the abstract, a policy is a mapping from every belief that an agent might take to an action. A policy is represented in code by a concrete subtype of the Policy abstract type. The programmer implements action to describe what computations need to be done online. For an online solver such as POMCP, all of the decision computation occurs within action while for an offline solver like SARSOP, there is very little computation within action. See Interacting with Policies for more information.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"The offline portion of the computation is carried out by the solver, which is represented by a concrete subtype of the Solver abstract type. Computations occur within the solve function. For an offline solver like SARSOP, nearly all of the decision computation occurs within this function, but for some online solvers such as POMCP, solve merely embeds the problem in the policy.","category":"page"},{"location":"concepts/#Simulators","page":"Concepts and Architecture","title":"Simulators","text":"","category":"section"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"A simulator defines a way to run one or more simulations. It is represented by a concrete subtype of the Simulator abstract type and the simulation is an implemention of simulate. Depending on the simulator, simulate may return a variety of data about the simulation, such as the discounted reward or the state history. All simulators should perform simulations consistent with the Simulation Standard.","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"[1] Decision Making Under Uncertainty: Theory and Application by Mykel J. Kochenderfer, MIT Press, 2015","category":"page"},{"location":"concepts/","page":"Concepts and Architecture","title":"Concepts and Architecture","text":"[2] Bai, H., Hsu, D., & Lee, W. S. (2014). Integrated perception and planning in the continuous space: A POMDP approach. The International Journal of Robotics Research, 33(9), 1288-1302","category":"page"},{"location":"example_simulations/#Simulations-Examples","page":"Simulations Examples","title":"Simulations Examples","text":"","category":"section"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"In these simulation examples, we will use the crying baby POMDPs defined in the Defining a POMDP section (i.e. quick_crying_baby_pomdp, explicit_crying_baby_pomdp, gen_crying_baby_pomdp, and tabular_crying_baby_pomdp).","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"include(\"examples/crying_baby_examples.jl\")\ninclude(\"examples/crying_baby_solvers.jl\")","category":"page"},{"location":"example_simulations/#Stepthrough","page":"Simulations Examples","title":"Stepthrough","text":"","category":"section"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"The stepthrough simulator provides a window into the simulation with a for-loop syntax.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"Within the body of the for loop, we have access to the belief, the action, the observation, and the reward, in each step. We also calculate the sum of the rewards in this example, but note that this is not the discounted reward.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"function run_step_through_simulation() # hide\npolicy = RandomPolicy(quick_crying_baby_pomdp)\nr_sum = 0.0\nstep = 0\nfor (b, s, a, o, r) in stepthrough(quick_crying_baby_pomdp, policy, DiscreteUpdater(quick_crying_baby_pomdp), \"b,s,a,o,r\"; max_steps=4)\n step += 1\n println(\"Step $step\")\n println(\"b = sated => $(b.b[1]), hungry => $(b.b[2])\")\n @show s\n @show a\n @show o\n @show r\n r_sum += r\n @show r_sum\n println() \nend\nend #hide\n\nrun_step_through_simulation() # hide","category":"page"},{"location":"example_simulations/#Rollout-Simulations","page":"Simulations Examples","title":"Rollout Simulations","text":"","category":"section"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"While stepthrough is a flexible and convenient tool for many user-facing demonstrations, it is often less error-prone to use the standard simulate function with a Simulator object. The simplest Simulator is the RolloutSimulator. It simply runs a simulation and returns the discounted reward. ","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"function run_rollout_simulation() # hide\npolicy = RandomPolicy(explicit_crying_baby_pomdp)\nsim = RolloutSimulator(max_steps=10)\nr_sum = simulate(sim, explicit_crying_baby_pomdp, policy)\nprintln(\"Total discounted reward: $r_sum\")\nend # hide\nrun_rollout_simulation() # hide","category":"page"},{"location":"example_simulations/#Recording-Histories","page":"Simulations Examples","title":"Recording Histories","text":"","category":"section"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"Sometimes it is important to record the entire history of a simulation for further examination. This can be accomplished with a HistoryRecorder.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"policy = RandomPolicy(tabular_crying_baby_pomdp)\nhr = HistoryRecorder(max_steps=5)\nhistory = simulate(hr, tabular_crying_baby_pomdp, policy, DiscreteUpdater(tabular_crying_baby_pomdp), Deterministic(1))\nnothing # hide","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"The history object produced by a HistoryRecorder is a SimHistory, documented in the POMDPTools simulator section Histories. The information in this object can be accessed in several ways. For example, there is a function:","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"discounted_reward(history)","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"Accessor functions like state_hist and action_hist can also be used to access parts of the history:","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"state_hist(history)","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"collect(action_hist(history))","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"Keeping track of which states, actions, and observations belong together can be tricky (for example, since there is a starting state, and ending state, but no action is taken from the ending state, the list of actions has a different length than the list of states). It is often better to think of histories in terms of steps that include both starting and ending states.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"The most powerful function for accessing the information in a SimHistory is the eachstep function which returns an iterator through named tuples representing each step in the history. The eachstep function is similar to the stepthrough function above except that it iterates through the immutable steps of a previously simulated history instead of conducting the simulation as the for loop is being carried out.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"function demo_eachstep(sim_history) # hide\nr_sum = 0.0\nstep = 0\nfor step_i in eachstep(sim_history, \"b,s,a,o,r\")\n step += 1\n println(\"Step $step\")\n println(\"step_i.b = sated => $(step_i.b.b[1]), hungry => $(step_i.b.b[2])\")\n @show step_i.s\n @show step_i.a\n @show step_i.o\n @show step_i.r\n r_sum += step_i.r\n @show r_sum\n println()\nend\nend # hide \ndemo_eachstep(history) # hide","category":"page"},{"location":"example_simulations/#Parallel-Simulations","page":"Simulations Examples","title":"Parallel Simulations","text":"","category":"section"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"It is often useful to evaluate a policy by running many simulations. The parallel simulator is the most effective tool for this. To use the parallel simulator, first create a list of Sim objects, each of which contains all of the information needed to run a simulation. Then then run the simulations using run_parallel, which will return a DataFrame with the results.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"In this example, we will compare the performance of the policies we computed in the Using Different Solvers section (i.e. sarsop_policy, pomcp_planner, and heuristic_policy). To evaluate the policies, we will run 100 simulations for each policy. We can do this by adding 100 Sim objects of each policy to the list.","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"using DataFrames \nusing StatsBase: std\n\n# Defining paramters for the simulations\nnumber_of_sim_to_run = 100\nmax_steps = 20\nstarting_seed = 1\n\n# We will also compare against a random policy\nrand_policy = RandomPolicy(quick_crying_baby_pomdp, rng=MersenneTwister(1))\n\n# Create the list of Sim objects\nsim_list = []\n\n# Add 100 Sim objects of each policy to the list.\nfor sim_number in 1:number_of_sim_to_run\n seed = starting_seed + sim_number\n\n # Add the SARSOP policy\n push!(sim_list, Sim(\n quick_crying_baby_pomdp, \n rng=MersenneTwister(seed),\n sarsop_policy,\n max_steps=max_steps,\n metadata=Dict(:policy => \"sarsop\", :seed => seed))\n )\n\n # Add the POMCP policy\n push!(sim_list, Sim(\n quick_crying_baby_pomdp, \n rng=MersenneTwister(seed),\n pomcp_planner, \n max_steps=max_steps,\n metadata=Dict(:policy => \"pomcp\", :seed => seed))\n )\n\n # Add the heuristic policy\n push!(sim_list, Sim(\n quick_crying_baby_pomdp, \n rng=MersenneTwister(seed),\n heuristic_policy, \n max_steps=max_steps,\n metadata=Dict(:policy => \"heuristic\", :seed => seed))\n )\n\n # Add the random policy\n push!(sim_list, Sim(\n quick_crying_baby_pomdp, \n rng=MersenneTwister(seed),\n rand_policy, \n max_steps=max_steps,\n metadata=Dict(:policy => \"random\", :seed => seed))\n )\nend\n\n# Run the simulations in parallel\ndata = run_parallel(sim_list)\n\n# Define a function to calculate the mean and confidence interval\nfunction mean_and_ci(x)\n m = mean(x)\n ci = 1.96 * std(x) / sqrt(length(x)) # 95% confidence interval\n return (mean = m, ci = ci)\nend\n\n# Calculate the mean and confidence interval for each policy\ngrouped_df = groupby(data, :policy)\nresult = combine(grouped_df, :reward => mean_and_ci => AsTable)\n","category":"page"},{"location":"example_simulations/","page":"Simulations Examples","title":"Simulations Examples","text":"By default, the parallel simulator only returns the reward from each simulation, but more information can be gathered by specifying a function to analyze the Sim-history pair and record additional statistics. Reference the POMDPTools simulator section for more information (Specifying information to be recorded).","category":"page"},{"location":"interfaces/#Spaces-and-Distributions","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"","category":"section"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"Two important components of the definitions of MDPs and POMDPs are spaces, which specify the possible states, actions, and observations in a problem and distributions, which define probability distributions. In order to provide for maximum flexibility spaces and distributions may be of any type (i.e. there are no abstract base types). Solvers and simulators will interact with space and distribution types using the functions defined below.","category":"page"},{"location":"interfaces/#space-interface","page":"Spaces and Distributions","title":"Spaces","text":"","category":"section"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"A space object should contain the information needed to define the set of all possible states, actions or observations. The implementation will depend on the attributes of the elements. For example, if the space is continuous, the space object may only contain the limits of the continuous range. In the case of a discrete problem, a vector containing all states is appropriate for representing a space.","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"The following functions may be called on a space object (Click on a function to read its documentation):","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"rand\niterate and the rest of the iteration interface for discrete spaces.","category":"page"},{"location":"interfaces/#Distributions","page":"Spaces and Distributions","title":"Distributions","text":"","category":"section"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"A distribution object represents a probability distribution.","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"The following functions may be called on a distribution object (Click on a function to read its documentation):","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"rand([rng,] d) [1]\nsupport\npdf\nmode\nmean","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"You can find some useful pre-made distribution objects in Distributions.jl or POMDPTools.","category":"page"},{"location":"interfaces/","page":"Spaces and Distributions","title":"Spaces and Distributions","text":"[1]: Distributions should support both rand(rng::AbstractRNG, d) and rand(d). The recommended way to do this is by implmenting Base.rand(rng::AbstractRNG, s::Random.SamplerTrivial{<:YourDistribution}) from the julia rand interface.","category":"page"},{"location":"POMDPTools/#pomdptools_section","page":"POMDPTools: the standard library for POMDPs.jl","title":"POMDPTools: the standard library for POMDPs.jl","text":"","category":"section"},{"location":"POMDPTools/","page":"POMDPTools: the standard library for POMDPs.jl","title":"POMDPTools: the standard library for POMDPs.jl","text":"The POMDPs.jl package does nothing more than define an interface or language for interacting with and solving (PO)MDPs; it does not contain any implementations. In practice, defining and solving POMDPs is made vastly easier if some commonly-used structures are provided. The POMDPTools package contains these implementations. Thus, the relationship between POMDPs.jl and POMDPTools is similar to the relationship between a programming language and its standard library.","category":"page"},{"location":"POMDPTools/","page":"POMDPTools: the standard library for POMDPs.jl","title":"POMDPTools: the standard library for POMDPs.jl","text":"The POMDPTools package source code is hosted in the POMDPs.jl github repository in the lib/POMDPTools directory.","category":"page"},{"location":"POMDPTools/","page":"POMDPTools: the standard library for POMDPs.jl","title":"POMDPTools: the standard library for POMDPs.jl","text":"The contents of the library are outlined below:","category":"page"},{"location":"POMDPTools/","page":"POMDPTools: the standard library for POMDPs.jl","title":"POMDPTools: the standard library for POMDPs.jl","text":"Pages = [\"distributions.md\", \"model.md\", \"visualization.md\", \"beliefs.md\", \"policies.md\", \"simulators.md\", \"common_rl.md\", \"testing.md\"]","category":"page"},{"location":"POMDPTools/policies/#Implemented-Policies","page":"Implemented Policies","title":"Implemented Policies","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"POMDPTools currently provides the following policy types:","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"a wrapper to turn a function into a Policy\nan alpha vector policy type\na random policy\na stochastic policy type\nexploration policies\na vector policy type\na wrapper to collect statistics and errors about policies","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"In addition, it provides the showpolicy function for printing policies similar to the way that matrices are printed in the repl and the evaluate function for evaluating MDP policies.","category":"page"},{"location":"POMDPTools/policies/#Function","page":"Implemented Policies","title":"Function","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Wraps a Function mapping states to actions into a Policy. ","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"FunctionPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.FunctionPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.FunctionPolicy","text":"FunctionPolicy\n\nPolicy p=FunctionPolicy(f) returns f(x) when action(p, x) is called.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"FunctionSolver","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.FunctionSolver","page":"Implemented Policies","title":"POMDPTools.Policies.FunctionSolver","text":"FunctionSolver\n\nSolver for a FunctionPolicy.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Alpha-Vector-Policy","page":"Implemented Policies","title":"Alpha Vector Policy","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Represents a policy with a set of alpha vectors (See AlphaVectorPolicy constructor docstring). In addition to finding the optimal action with action, the alpha vectors can be accessed with alphavectors or alphapairs.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Determining the estimated value and optimal action depends on calculating the dot product between alpha vectors and a belief vector. POMDPTools.Policies.beliefvec(pomdp, b) is used to create this vector and can be overridden for new belief types for efficiency.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"AlphaVectorPolicy\nalphavectors\nalphapairs\nPOMDPTools.Policies.beliefvec","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.AlphaVectorPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.AlphaVectorPolicy","text":"AlphaVectorPolicy(pomdp::POMDP, alphas, action_map)\n\nConstruct a policy from alpha vectors.\n\nArguments\n\nalphas: an |S| x (number of alpha vecs) matrix or a vector of alpha vectors.\naction_map: a vector of the actions correponding to each alpha vector\nAlphaVectorPolicy{P<:POMDP, A}\n\nRepresents a policy with a set of alpha vectors.\n\nUse action to get the best action for a belief, and alphavectors and alphapairs to \n\nFields\n\npomdp::P the POMDP problem \nn_states::Int the number of states in the POMDP\nalphas::Vector{Vector{Float64}} the list of alpha vectors\naction_map::Vector{A} a list of action corresponding to the alpha vectors\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#POMDPTools.Policies.alphavectors","page":"Implemented Policies","title":"POMDPTools.Policies.alphavectors","text":"Return the alpha vectors.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/policies/#POMDPTools.Policies.alphapairs","page":"Implemented Policies","title":"POMDPTools.Policies.alphapairs","text":"Return an iterator of alpha vector-action pairs in the policy.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/policies/#POMDPTools.Policies.beliefvec","page":"Implemented Policies","title":"POMDPTools.Policies.beliefvec","text":"POMDPTools.Policies.beliefvec(m::POMDP, n_states::Int, b)\n\nReturn a vector-like representation of the belief b suitable for calculating the dot product with the alpha vectors.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/policies/#Random-Policy","page":"Implemented Policies","title":"Random Policy","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"A policy that returns a randomly selected action using rand(rng, actions(pomdp)).","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"RandomPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.RandomPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.RandomPolicy","text":"RandomPolicy{RNG<:AbstractRNG, P<:Union{POMDP,MDP}, U<:Updater}\n\na generic policy that uses the actions function to create a list of actions and then randomly samples an action from it.\n\nConstructor:\n\n`RandomPolicy(problem::Union{POMDP,MDP};\n rng=Random.default_rng(),\n updater=NothingUpdater())`\n\nFields\n\nrng::RNG a random number generator \nprobelm::P the POMDP or MDP problem \nupdater::U a belief updater (default to NothingUpdater in the above constructor)\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"RandomSolver","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.RandomSolver","page":"Implemented Policies","title":"POMDPTools.Policies.RandomSolver","text":"solver that produces a random policy\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Stochastic-Policies","page":"Implemented Policies","title":"Stochastic Policies","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Types for representing randomized policies:","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"StochasticPolicy samples actions from an arbitrary distribution.\nUniformRandomPolicy samples actions uniformly (see RandomPolicy for a similar use)\nCategoricalTabularPolicy samples actions from a categorical distribution with weights given by a ValuePolicy.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"StochasticPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.StochasticPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.StochasticPolicy","text":"StochasticPolicy{D, RNG <: AbstractRNG}\n\nRepresents a stochastic policy. Action are sampled from an arbitrary distribution.\n\nConstructor:\n\n`StochasticPolicy(distribution; rng=Random.default_rng())`\n\nFields\n\ndistribution::D\nrng::RNG a random number generator\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"CategoricalTabularPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.CategoricalTabularPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.CategoricalTabularPolicy","text":"CategoricalTabularPolicy\n\nrepresents a stochastic policy sampling an action from a categorical distribution with weights given by a ValuePolicy\n\nconstructor:\n\nCategoricalTabularPolicy(mdp::Union{POMDP,MDP}; rng=Random.default_rng())\n\nFields\n\nstochastic::StochasticPolicy\nvalue::ValuePolicy\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Vector-Policies","page":"Implemented Policies","title":"Vector Policies","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Tabular policies including the following:","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"VectorPolicy holds a vector of actions, one for each state, ordered according to stateindex.\nValuePolicy holds a matrix of values for state-action pairs and chooses the action with the highest value at the given state","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"VectorPolicy ","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.VectorPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.VectorPolicy","text":"VectorPolicy{S,A}\n\nA generic MDP policy that consists of a vector of actions. The entry at stateindex(mdp, s) is the action that will be taken in state s.\n\nFields\n\nmdp::MDP{S,A} the MDP problem\nact::Vector{A} a vector of size |S| mapping state indices to actions\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"VectorSolver","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.VectorSolver","page":"Implemented Policies","title":"POMDPTools.Policies.VectorSolver","text":"VectorSolver{A}\n\nSolver for VectorPolicy. Doesn't do any computation - just sets the action vector.\n\nFields\n\nact::Vector{A} the action vector\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"ValuePolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.ValuePolicy","page":"Implemented Policies","title":"POMDPTools.Policies.ValuePolicy","text":" ValuePolicy{P<:Union{POMDP,MDP}, T<:AbstractMatrix{Float64}, A}\n\nA generic MDP policy that consists of a value table. The entry at stateindex(mdp, s) is the action that will be taken in state s. It is expected that the order of the actions in the value table is consistent with the order of the actions in act. If act is not explicitly set in the construction, act is ordered according to actionindex.\n\nFields\n\nmdp::P the MDP problem\nvalue_table::T the value table as a |S|x|A| matrix\nact::Vector{A} the possible actions\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Value-Dict-Policy","page":"Implemented Policies","title":"Value Dict Policy","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"ValueDictPolicy holds a dictionary of values, where the key is state-action tuple, and chooses the action with the highest value at the given state. It allows one to write solvers without enumerating state and action spaces, but actions and states must support Base.isequal() and Base.hash().","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"ValueDictPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.ValueDictPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.ValueDictPolicy","text":" ValueDictPolicy(mdp)\n\nA generic MDP policy that consists of a Dict storing Q-values for state-action pairs. If there are no entries higher than a default value, this will fall back to a default policy.\n\nKeyword Arguments\n\nvalue_table::AbstractDict the value dict, key is (s, a) Tuple.\ndefault_value::Float64 the defalut value of value_dict.\ndefault_policy::Policy the policy taken when no action has a value higher than default_value\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Exploration-Policies","page":"Implemented Policies","title":"Exploration Policies","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Exploration policies are often useful for Reinforcement Learning algorithm to choose an action that is different than the action given by the policy being learned (on_policy). ","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Exploration policies are subtype of the abstract ExplorationPolicy type and they follow the following interface: action(exploration_policy::ExplorationPolicy, on_policy::Policy, k, s). k is used to compute the value of the exploration parameter (see Schedule), and s is the current state or observation in which the agent is taking an action.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"The action method is exported by POMDPs.jl. To use exploration policies in a solver, you must use the four argument version of action where on_policy is the policy being learned (e.g. tabular policy or neural network policy).","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"This package provides two exploration policies: EpsGreedyPolicy and SoftmaxPolicy","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":" EpsGreedyPolicy\n SoftmaxPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.EpsGreedyPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.EpsGreedyPolicy","text":"EpsGreedyPolicy <: ExplorationPolicy\n\nrepresents an epsilon greedy policy, sampling a random action with a probability eps or returning an action from a given policy otherwise. The evolution of epsilon can be controlled using a schedule. This feature is useful for using those policies in reinforcement learning algorithms. \n\nConstructor:\n\nEpsGreedyPolicy(problem::Union{MDP, POMDP}, eps::Union{Function, Float64}; rng=Random.default_rng(), schedule=ConstantSchedule)\n\nIf a function is passed for eps, eps(k) is called to compute the value of epsilon when calling action(exploration_policy, on_policy, k, s).\n\nFields\n\neps::Function\nrng::AbstractRNG\nm::M POMDPs or MDPs problem\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#POMDPTools.Policies.SoftmaxPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.SoftmaxPolicy","text":"SoftmaxPolicy <: ExplorationPolicy\n\nrepresents a softmax policy, sampling a random action according to a softmax function. The softmax function converts the action values of the on policy into probabilities that are used for sampling. A temperature parameter or function can be used to make the resulting distribution more or less wide.\n\nConstructor\n\nSoftmaxPolicy(problem, temperature::Union{Function, Float64}; rng=Random.default_rng())\n\nIf a function is passed for temperature, temperature(k) is called to compute the value of the temperature when calling action(exploration_policy, on_policy, k, s)\n\nFields\n\ntemperature::Function\nrng::AbstractRNG\nactions::A an indexable list of action\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Schedule","page":"Implemented Policies","title":"Schedule","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"Exploration policies often rely on a key parameter: epsilon in epsilon-greedy and the temperature in softmax for example. Reinforcement learning algorithms often require a decay schedule for these parameters. Schedule can be passed to an exploration policy as functions. For example one can define an epsilon greedy policy with an exponential decay schedule as follow: ","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":" m # your mdp or pomdp model\n exploration_policy = EpsGreedyPolicy(m, k->0.05*0.9^(k/10))","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"POMDPTools exports a linear decay schedule object that can be used as well. ","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":" LinearDecaySchedule ","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.LinearDecaySchedule","page":"Implemented Policies","title":"POMDPTools.Policies.LinearDecaySchedule","text":"LinearDecaySchedule\n\nA schedule that linearly decreases a value from start to stop in steps steps. if the value is greater or equal to stop, it stays constant.\n\nConstructor\n\nLinearDecaySchedule(;start, stop, steps)\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Playback-Policy","page":"Implemented Policies","title":"Playback Policy","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"A policy that replays a fixed sequence of actions. When all actions are used, a backup policy is used.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"PlaybackPolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.PlaybackPolicy","page":"Implemented Policies","title":"POMDPTools.Policies.PlaybackPolicy","text":"PlaybackPolicy{A<:AbstractArray, P<:Policy, V<:AbstractArray{<:Real}}\n\na policy that applies a fixed sequence of actions until they are all used and then falls back onto a backup policy until the end of the episode.\n\nConstructor:\n\n`PlaybackPolicy(actions::AbstractArray, backup_policy::Policy; logpdfs::AbstractArray{Float64, 1} = Float64[])`\n\nFields\n\nactions::Vector{A} a vector of actions to play back\nbackup_policy::Policy the policy to use when all prescribed actions have been taken but the episode continues\nlogpdfs::Vector{Float64} the log probability (density) of actions\ni::Int64 the current action index\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Utility-Wrapper","page":"Implemented Policies","title":"Utility Wrapper","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"A wrapper for policies to collect statistics and handle errors.","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"PolicyWrapper","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.PolicyWrapper","page":"Implemented Policies","title":"POMDPTools.Policies.PolicyWrapper","text":"PolicyWrapper\n\nFlexible utility wrapper for a policy designed for collecting statistics about planning.\n\nCarries a function, a policy, and optionally a payload (that can be any type).\n\nThe function should typically be defined with the do syntax. Each time action is called on the wrapper, this function will be called.\n\nIf there is no payload, it will be called with two argments: the policy and the state/belief. If there is a payload, it will be called with three arguments: the policy, the payload, and the current state or belief. The function should return an appropriate action. The idea is that, in this function, action(policy, s) should be called, statistics from the policy/planner should be collected and saved in the payload, exceptions can be handled, and the action should be returned.\n\nConstructor\n\nPolicyWrapper(policy::Policy; payload=nothing)\n\nExample\n\nusing POMDPModels\nusing POMDPToolbox\n\nmdp = GridWorld()\npolicy = RandomPolicy(mdp)\ncounts = Dict(a=>0 for a in actions(mdp))\n\n# with a payload\nstatswrapper = PolicyWrapper(policy, payload=counts) do policy, counts, s\n a = action(policy, s)\n counts[a] += 1\n return a\nend\n\nh = simulate(HistoryRecorder(max_steps=100), mdp, statswrapper)\nfor (a, count) in payload(statswrapper)\n println(\"policy chose action $a $count of $(n_steps(h)) times.\")\nend\n\n# without a payload\nerrwrapper = PolicyWrapper(policy) do policy, s\n try\n a = action(policy, s)\n catch ex\n @warn(\"Caught error in policy; using default\")\n a = :left\n end\n return a\nend\n\nh = simulate(HistoryRecorder(max_steps=100), mdp, errwrapper)\n\nFields\n\nf::F\npolicy::P\npayload::PL\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/policies/#Pretty-Printing-Policies","page":"Implemented Policies","title":"Pretty Printing Policies","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"showpolicy","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.showpolicy","page":"Implemented Policies","title":"POMDPTools.Policies.showpolicy","text":"showpolicy([io], [mime], m::MDP, p::Policy)\nshowpolicy([io], [mime], statelist::AbstractVector, p::Policy)\nshowpolicy(...; pre=\" \")\n\nPrint the states in m or statelist and the actions from policy p corresponding to those states.\n\nFor the MDP version, if io[:limit] is true, will only print enough states to fill the display.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/policies/#Policy-Evaluation","page":"Implemented Policies","title":"Policy Evaluation","text":"","category":"section"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"The evaluate function provides a policy evaluation tool for MDPs:","category":"page"},{"location":"POMDPTools/policies/","page":"Implemented Policies","title":"Implemented Policies","text":"evaluate","category":"page"},{"location":"POMDPTools/policies/#POMDPTools.Policies.evaluate","page":"Implemented Policies","title":"POMDPTools.Policies.evaluate","text":"evaluate(m::MDP, p::Policy)\nevaluate(m::MDP, p::Policy; rewardfunction=POMDPs.reward)\n\nCalculate the value for a policy on an MDP using the approach in equation 4.2.2 of Kochenderfer, Decision Making Under Uncertainty, 2015.\n\nReturns a DiscreteValueFunction, which maps states to values.\n\nExample\n\nusing POMDPTools, POMDPModels\nm = SimpleGridWorld()\nu = evaluate(m, FunctionPolicy(x->:left))\nu([1,1]) # value of always moving left starting at state [1,1]\n\n\n\n\n\n","category":"function"},{"location":"def_updater/#Defining-a-Belief-Updater","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"","category":"section"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"In this section we list the requirements for defining a belief updater. For a description of what a belief updater is, see Concepts and Architecture - Beliefs and Updaters. Typically a belief updater will have an associated belief type, and may be closely tied to a particular policy/planner.","category":"page"},{"location":"def_updater/#Defining-a-Belief-Type","page":"Defining a Belief Updater","title":"Defining a Belief Type","text":"","category":"section"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"A belief object should contain all of the information needed for the next belief update and for the policy to make a decision. The belief type could be a pre-defined type such as a distribution from Distributions.jl or DiscreteBelief or SparseCat from the POMDPTools package, or it could be a custom type.","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"Often, but not always, the belief will represent a probability distribution. In this case, the functions in the distribution interface should be implemented if possible. Implementing these functions will make the belief usable with many of the policies and planners in the POMDPs.jl ecosystem, and will make it easy for others to convert between beliefs and to interpret what a belief means.","category":"page"},{"location":"def_updater/#Histories-associated-with-a-belief","page":"Defining a Belief Updater","title":"Histories associated with a belief","text":"","category":"section"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"If a complete or partial record of the action-observation history leading up to a belief is available, it is often helpful to give access to this by implementing the history or currentobs functions (see the docstrings for more details). This is especially useful if a problem-writer wants to implement a belief- or observation-dependent action space. Belief type implementers need only implement history, and currentobs will automatically be provided, though sometimes it is more convenient to implement currentobs directly.","category":"page"},{"location":"def_updater/#Defining-an-Updater","page":"Defining a Belief Updater","title":"Defining an Updater","text":"","category":"section"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"To create an updater, one should define a subtype of the Updater abstract type and implement two methods, one to create the initial belief from the problem's initial state distribution and one to perform a belief update:","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"initialize_belief(updater, d) creates a belief from state distribution d appropriate to use with the updater. To extract information from d, use the functions from the distribution interface.\nupdate(updater, b, a, o) returns an updated belief given belief b, action a, and observation o. One can usually expect b to be the same type returned by initialize_belief because a careful user will always call initialize_belief before update, but it would also be reasonable to implement update for b of a different type if it is desirable to handle multiple belief types.","category":"page"},{"location":"def_updater/#Example:-History-Updater","page":"Defining a Belief Updater","title":"Example: History Updater","text":"","category":"section"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"One trivial type of belief would be the action-observation history, a list containing the initial state distribution and every action taken and observation received. The history contains all of the information received up to the current time, but it is not usually very useful because most policies make decisions based on a state probability distribution. Here the belief type is simply the built in Vector{Any}, so we need only create the updater and write update and initialize_belief. Normally, update would contain belief update probability calculations, but in this example, we simply append the action and observation to the history.","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"(Note that this example is designed for readability rather than efficiency.)","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"import POMDPs\n\nstruct HistoryUpdater <: POMDPs.Updater end\n\nPOMDPs.initialize_belief(up::HistoryUpdater, d) = Any[d]\n\nfunction POMDPs.update(up::HistoryUpdater, b, a, o)\n bp = copy(b)\n push!(bp, a)\n push!(bp, o)\n return bp\nend","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"At each step, the history starts with the original distribution, then contains all the actions and observations received up to that point. The example below shows this for the crying baby problem (observations are true/false for crying and actions are true/false for feeding).","category":"page"},{"location":"def_updater/","page":"Defining a Belief Updater","title":"Defining a Belief Updater","text":"using POMDPTools\nusing POMDPModels\nusing Random\n\npomdp = BabyPOMDP()\npolicy = RandomPolicy(pomdp, rng=MersenneTwister(1))\nup = HistoryUpdater()\n\n# within stepthrough initialize_belief is called on the initial state distribution of the pomdp, then update is called at each step.\nfor b in stepthrough(pomdp, policy, up, \"b\", rng=MersenneTwister(2), max_steps=5)\n @show b\nend\n\n# output\n\nb = Any[POMDPModels.BoolDistribution(0.0)]\nb = Any[POMDPModels.BoolDistribution(0.0), false, false]\nb = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false]\nb = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false, true, false]\nb = Any[POMDPModels.BoolDistribution(0.0), false, false, false, false, true, false, true, false]","category":"page"},{"location":"faq/#Frequently-Asked-Questions-(FAQ)","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"","category":"section"},{"location":"faq/#What-is-the-difference-between-transition,-gen,-and-@gen?","page":"Frequently Asked Questions (FAQ)","title":"What is the difference between transition, gen, and @gen?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"(See also: Using a single generative function instead of separate T, Z, and R)","category":"page"},{"location":"faq/#For-problem-implementers","page":"Frequently Asked Questions (FAQ)","title":"For problem implementers","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"transition should be implemented to define the state transition distribution, either explicitly, or, if only samples from the distribution are available, with an ImplicitDistribution.\ngen should only be implemented if your simulator can only output samples of two or more of the next state, observation, and reward at the same time, e.g. if rewards are calculated as a robot moves from the current state to the next state so it is difficult to define the reward function separately from the state transitions.\n@gen should never be implemented or modified by the problem writer; it is only used in simulators and solvers (see below).","category":"page"},{"location":"faq/#For-solver/simulator-implementers","page":"Frequently Asked Questions (FAQ)","title":"For solver/simulator implementers","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"@gen should be called whenever a sample of the next state, observation, and or reward is needed. It automatically combines calls to rand, transition, observation, reward, and gen, depending on what is implemented for the problem and the outputs requested by the caller without any overhead.\ntransition should be called only when you need access to the explicit transition probability distribution.\ngen should never be called directly by a solver or simulator; it is only a tool for implementers (see above).","category":"page"},{"location":"faq/#How-do-I-save-my-policies?","page":"Frequently Asked Questions (FAQ)","title":"How do I save my policies?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"We recommend using JLD2 to save the whole policy object:","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"using JLD2\nsave(\"my_policy.jld2\", \"policy\", policy)","category":"page"},{"location":"faq/#Why-is-my-solver-producing-a-suboptimal-policy?","page":"Frequently Asked Questions (FAQ)","title":"Why is my solver producing a suboptimal policy?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"There could be a number of things that are going wrong. If you have a discrete POMDP or MDP and you're using a solver that requires the explicit transition probabilities, the first thing to try is make sure that your probability masses sum up to unity. We've provide some tools in POMDPToolbox that can check this for you. If you have a POMDP called pomdp, you can run the checks by doing the following:","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"using POMDPTools\n@assert has_consistent_distributions(pomdp)","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"If this throws an error, you may need to fix your transition or observation functions. ","category":"page"},{"location":"faq/#What-if-I-don't-use-the-rng-argument?","page":"Frequently Asked Questions (FAQ)","title":"What if I don't use the rng argument?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"POMDPs.jl uses Julia's built-in random number generator system to provide for reproducible simulations. To tie into this system, the gen function, the sampling function for the ImplicitDistribution, and the rand function for custom distributions all have an rng argument that should be used to generate random numbers. However in some cases, for example when wrapping a simulator that is tied to the global random number generator or written in another language, it may be impossible or impractical to use this rng.","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"It is natural to wonder if ignoring this rng argument will cause problems. For many use cases, it is OK to ignore this argument - the only consequence will be that simulations will not be exactly reproducible unless the random seed is managed separately. Some algorithms, most notably DESPOT, rely on \"determinized scenarios\" that are implemented with a special rng. Some of the guarantees of these algorithms may not be met if the rng argument is ignored.","category":"page"},{"location":"faq/#Why-are-all-the-solvers-in-separate-modules?","page":"Frequently Asked Questions (FAQ)","title":"Why are all the solvers in separate modules?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"We did not put all the solvers and support tools into POMDPs.jl, because we wanted POMDPs.jl to be a lightweight interface package. This has a number of advantages. The first is that if a user only wants to use a few solvers from the JuliaPOMDP organization, they do not have to install all the other solvers and their dependencies. The second advantage is that people who are not directly part of the JuliaPOMDP organization can write their own solvers without going into the source code of other solvers. This makes the framework easier to adopt and to extend.","category":"page"},{"location":"faq/#How-can-I-implement-terminal-actions?","page":"Frequently Asked Questions (FAQ)","title":"How can I implement terminal actions?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"Terminal actions are actions that cause the MDP to terminate without generating a new state. POMDPs.jl handles terminal conditions via the isterminal function on states, and does not directly support terminal actions. If your MDP has a terminal action, you need to implement the model functions accordingly to generate a terminal state. In both generative and explicit cases, you will need some dummy state, say spt, that can be recognized as terminal by the isterminal function. One way to do this is to give spt a state value that is out of bounds (e.g. a vector of NaNs or -1s) and then check for that in isterminal, so that this does not clash with any conventional termination conditions on the state.","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"If a terminal action is taken, regardless of current state, the transition function should return a distribution with only one next state, spt, with probability 1.0. In the generative case, the new state generated should be spt. The reward function or the r in generate_sr can be set according to the cost of the terminal action.","category":"page"},{"location":"faq/#Why-are-there-two-versions-of-reward?","page":"Frequently Asked Questions (FAQ)","title":"Why are there two versions of reward?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"Both reward(m, s, a) and reward(m, s, a, sp) are included because of these two facts:","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"Some non-native solvers use reward(m, s, a)\nSometimes the reward depends on s and sp.","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"It is reasonable to implement both as long as the (s, a) version is the expectation of the (s, a, s') version (see below).","category":"page"},{"location":"faq/#How-do-I-implement-reward(m,-s,-a)-if-the-reward-depends-on-the-next-state?","page":"Frequently Asked Questions (FAQ)","title":"How do I implement reward(m, s, a) if the reward depends on the next state?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"The solvers that require reward(m, s, a) only work on problems with finite state and action spaces. In this case, you can define reward(m, s, a) in terms of reward(m, s, a, sp) with the following code:","category":"page"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"const rdict = Dict{Tuple{S,A}, Float64}()\n\nfor s in states(m)\n for a in actions(m)\n r = 0.0\n td = transition(m, s, a) # transition distribution for s, a\n for sp in support(td)\n r += pdf(td, sp)*reward(m, s, a, sp)\n end\n rdict[(s, a)] = r\n end\nend\n\nPOMDPs.reward(m, s, a) = rdict[(s, a)]","category":"page"},{"location":"faq/#Why-do-I-need-to-put-type-assertions-pomdp::POMDP-into-the-function-signature?","page":"Frequently Asked Questions (FAQ)","title":"Why do I need to put type assertions pomdp::POMDP into the function signature?","text":"","category":"section"},{"location":"faq/","page":"Frequently Asked Questions (FAQ)","title":"Frequently Asked Questions (FAQ)","text":"Specifying the type in your function signature allows Julia to call the appropriate function when your custom type is passed into it. For example if a POMDPs.jl solver calls states on the POMDP that you passed into it, the correct states function will only get dispatched if you specified that the states function you wrote works with your POMDP type. Because Julia supports multiple-dispatch, these type assertion are a way for doing object-oriented programming in Julia.","category":"page"},{"location":"POMDPTools/beliefs/#Implemented-Belief-Updaters","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"","category":"section"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"POMDPTools provides the following generic belief updaters:","category":"page"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"a discrete belief updater\na k previous observation updater\na previous observation updater \na nothing updater (for when the policy does not depend on any feedback)","category":"page"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"For particle filters see ParticleFilters.jl.","category":"page"},{"location":"POMDPTools/beliefs/#Discrete-(Bayesian-Filter)","page":"Implemented Belief Updaters","title":"Discrete (Bayesian Filter)","text":"","category":"section"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"The DiscreteUpater is a default implementation of a discrete Bayesian filter. The DiscreteBelief type is provided to represent discrete beliefs for discrete state POMDPs. ","category":"page"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"A convenience function uniform_belief is provided to create a DiscreteBelief with equal probability for each state. ","category":"page"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"DiscreteBelief","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.DiscreteBelief","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.DiscreteBelief","text":"DiscreteBelief\n\nA belief specified by a probability vector.\n\nNormalization of b is assumed in some calculations (e.g. pdf), but it is only automatically enforced in update(...), and a warning is given if normalized incorrectly in DiscreteBelief(pomdp, b).\n\nConstructor\n\nDiscreteBelief(pomdp, b::Vector{Float64}; check::Bool=true)\n\nFields\n\npomdp : the POMDP problem\nstate_list : a vector of ordered states\nb : the probability vector\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"DiscreteUpdater","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.DiscreteUpdater","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.DiscreteUpdater","text":"DiscreteUpdater\n\nAn updater type to update discrete belief using the discrete Bayesian filter.\n\nConstructor\n\nDiscreteUpdater(pomdp::POMDP)\n\nFields\n\npomdp <: POMDP\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"uniform_belief(pomdp)","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.uniform_belief-Tuple{Any}","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.uniform_belief","text":" uniform_belief(pomdp)\n\nReturn a DiscreteBelief with equal probability for each state.\n\n\n\n\n\n","category":"method"},{"location":"POMDPTools/beliefs/#K-Previous-Observations","page":"Implemented Belief Updaters","title":"K Previous Observations","text":"","category":"section"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"KMarkovUpdater","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.KMarkovUpdater","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.KMarkovUpdater","text":"KMarkovUpdater\n\nUpdater that stores the k most recent observations as the belief.\n\nExample:\n\nup = KMarkovUpdater(5)\ns0 = rand(rng, initialstate(pomdp))\ninitial_observation = rand(rng, initialobs(pomdp, s0))\ninitial_obs_vec = fill(initial_observation, 5)\nhr = HistoryRecorder(rng=rng, max_steps=100)\nhist = simulate(hr, pomdp, policy, up, initial_obs_vec, s0)\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/beliefs/#Previous-Observation","page":"Implemented Belief Updaters","title":"Previous Observation","text":"","category":"section"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"PreviousObservationUpdater","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.PreviousObservationUpdater","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.PreviousObservationUpdater","text":"Updater that stores the most recent observation as the belief. If an initial distribution is provided, it will pass that as the initial belief.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/beliefs/#Nothing-Updater","page":"Implemented Belief Updaters","title":"Nothing Updater","text":"","category":"section"},{"location":"POMDPTools/beliefs/","page":"Implemented Belief Updaters","title":"Implemented Belief Updaters","text":"NothingUpdater","category":"page"},{"location":"POMDPTools/beliefs/#POMDPTools.BeliefUpdaters.NothingUpdater","page":"Implemented Belief Updaters","title":"POMDPTools.BeliefUpdaters.NothingUpdater","text":"An updater useful for when a belief is not necessary (i.e. for a random policy). update always returns nothing.\n\n\n\n\n\n","category":"type"},{"location":"api/#API-Documentation","page":"API Documentation","title":"API Documentation","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"Docstrings for POMDPs.jl interface members can be accessed through Julia's built-in documentation system or in the list below.","category":"page"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"CurrentModule = POMDPs","category":"page"},{"location":"api/#Contents","page":"API Documentation","title":"Contents","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"Pages = [\"api.md\"]","category":"page"},{"location":"api/#Index","page":"API Documentation","title":"Index","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"Pages = [\"api.md\"]","category":"page"},{"location":"api/#Types","page":"API Documentation","title":"Types","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"POMDP\nMDP\nSolver\nPolicy\nUpdater","category":"page"},{"location":"api/#POMDPs.POMDP","page":"API Documentation","title":"POMDPs.POMDP","text":"POMDP{S,A,O}\n\nAbstract base type for a partially observable Markov decision process.\n\nS: state type\nA: action type\nO: observation type\n\n\n\n\n\n","category":"type"},{"location":"api/#POMDPs.MDP","page":"API Documentation","title":"POMDPs.MDP","text":"MDP{S,A}\n\nAbstract base type for a fully observable Markov decision process.\n\nS: state type\nA: action type\n\n\n\n\n\n","category":"type"},{"location":"api/#POMDPs.Solver","page":"API Documentation","title":"POMDPs.Solver","text":"Base type for an MDP/POMDP solver\n\n\n\n\n\n","category":"type"},{"location":"api/#POMDPs.Policy","page":"API Documentation","title":"POMDPs.Policy","text":"Base type for a policy (a map from every possible belief, or more abstract policy state, to an optimal or suboptimal action)\n\n\n\n\n\n","category":"type"},{"location":"api/#POMDPs.Updater","page":"API Documentation","title":"POMDPs.Updater","text":"Abstract type for an object that defines how the belief should be updated\n\nA belief is a general construct that represents the knowledge an agent has about the state of the system. This can be a probability distribution, an action observation history or a more general representation.\n\n\n\n\n\n","category":"type"},{"location":"api/#Model-Functions","page":"API Documentation","title":"Model Functions","text":"","category":"section"},{"location":"api/#Dynamics","page":"API Documentation","title":"Dynamics","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"transition\nobservation\nreward\ngen\n@gen","category":"page"},{"location":"api/#POMDPs.transition","page":"API Documentation","title":"POMDPs.transition","text":"transition(m::POMDP, state, action)\ntransition(m::MDP, state, action)\n\nReturn the transition distribution from the current state-action pair.\n\nIf it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a generative model.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.observation","page":"API Documentation","title":"POMDPs.observation","text":"observation(m::POMDP, statep)\nobservation(m::POMDP, action, statep)\nobservation(m::POMDP, state, action, statep)\n\nReturn the observation distribution. You need only define the method with the fewest arguments needed to determine the observation distribution.\n\nIf it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a generative model.\n\nExample\n\nusing POMDPModelTools # for SparseCat\n\nstruct MyPOMDP <: POMDP{Int, Int, Int} end\n\nobservation(p::MyPOMDP, sp::Int) = SparseCat([sp-1, sp, sp+1], [0.1, 0.8, 0.1])\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.reward","page":"API Documentation","title":"POMDPs.reward","text":"reward(m::POMDP, s, a)\nreward(m::MDP, s, a)\n\nReturn the immediate reward for the s-a pair.\n\nreward(m::POMDP, s, a, sp)\nreward(m::MDP, s, a, sp)\n\nReturn the immediate reward for the s-a-s' triple\n\nreward(m::POMDP, s, a, sp, o)\n\nReturn the immediate reward for the s-a-s'-o quad\n\nFor some problems, it is easier to express reward(m, s, a, sp) or reward(m, s, a, sp, o), than reward(m, s, a), but some solvers, e.g. SARSOP, can only use reward(m, s, a). Both can be implemented for a problem, but when reward(m, s, a) is implemented, it should be consistent with reward(m, s, a, sp[, o]), that is, it should be the expected value over all destination states and observations.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.gen","page":"API Documentation","title":"POMDPs.gen","text":"gen(m::Union{MDP,POMDP}, s, a, rng::AbstractRNG)\n\nFunction for implementing the entire MDP/POMDP generative model by returning a NamedTuple.\n\ngen should only be implemented in the case where two or more of the next state, observation, and reward need to be generated at the same time. If the state transition model can be separated from the reward and observation models, you should implement transition with an ImplicitDistribution instead of gen.\n\nSolver and simulator writers should use the @gen macro to call a generative model.\n\nArguments\n\nm: an MDP or POMDP model\ns: the current state\na: the action\nrng: a random number generator (Typically a MersenneTwister)\n\nReturn\n\nThe function should return a NamedTuple. With a subset of following entries:\n\nMDP\n\nsp: the next state\nr: the reward for the step\ninfo: extra debugging information, typically in an associative container like a NamedTuple\n\nPOMDP\n\nsp: the next state\no: the observation\nr: the reward for the step\ninfo: extra debugging information, typically in an associative container like a NamedTuple\n\nSome elements can be left out. For instance if o is left out of the return, the problem-writer can also implement observation and POMDPs.jl will automatically use it when needed.\n\nExample\n\nstruct LQRMDP <: MDP{Float64, Float64} end\n\nPOMDPs.gen(m::LQRMDP, s, a, rng) = (sp = s + a + randn(rng), r = -s^2 - a^2)\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.@gen","page":"API Documentation","title":"POMDPs.@gen","text":"@gen(X)(m, s, a)\n@gen(X)(m, s, a, rng::AbstractRNG)\n\nCall the generative model for a (PO)MDP m; Sample values from several nodes in the dynamic decision network. X is one or more symbols indicating which nodes to output.\n\nSolvers and simulators should call this rather than the gen function. Problem writers should implement a method of the transition or gen function instead of altering @gen.\n\nArguments\n\nm: an MDP or POMDP model\ns: the current state\na: the action\nrng (optional): a random number generator (Typically a MersenneTwister)\n\nReturn\n\nIf X, is a symbol, return a value sample from the corresponding node. If X is several symbols, return a Tuple of values sampled from the specified nodes.\n\nExamples\n\nLet m be an MDP or POMDP, s be a state of m, a be an action of m, and rng be an AbstractRNG.\n\n@gen(:sp, :r)(m, s, a) returns a Tuple containing the next state and reward.\n@gen(:sp, :o, :r)(m, s, a, rng) returns a Tuple containing the next state, observation, and reward.\n@gen(:sp)(m, s, a, rng) returns the next state.\n\n\n\n\n\n","category":"macro"},{"location":"api/#Static-Properties","page":"API Documentation","title":"Static Properties","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"states\nactions\nobservations\nisterminal\ndiscount\ninitialstate\ninitialobs\nstateindex\nactionindex\nobsindex\nconvert_s\nconvert_a\nconvert_o","category":"page"},{"location":"api/#POMDPs.states","page":"API Documentation","title":"POMDPs.states","text":"states(problem::POMDP)\nstates(problem::MDP)\n\nReturns the complete state space of a POMDP. \n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.actions","page":"API Documentation","title":"POMDPs.actions","text":"actions(m::Union{MDP,POMDP})\n\nReturns the entire action space of a (PO)MDP.\n\n\n\nactions(m::Union{MDP,POMDP}, s)\n\nReturn the actions that can be taken from state s.\n\n\n\nactions(m::POMDP, b)\n\nReturn the actions that can be taken from belief b.\n\nTo implement an observation-dependent action space, use currentobs(b) to get the observation associated with belief b within the implementation of actions(m, b).\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.observations","page":"API Documentation","title":"POMDPs.observations","text":"observations(problem::POMDP)\n\nReturn the entire observation space.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.isterminal","page":"API Documentation","title":"POMDPs.isterminal","text":"isterminal(m::Union{MDP,POMDP}, s)\n\nCheck if state s is terminal.\n\nIf a state is terminal, no actions will be taken in it and no additional rewards will be accumulated. Thus, the value function at such a state is, by definition, zero.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.discount","page":"API Documentation","title":"POMDPs.discount","text":"discount(m::POMDP)\ndiscount(m::MDP)\n\nReturn the discount factor for the problem.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.initialstate","page":"API Documentation","title":"POMDPs.initialstate","text":"initialstate(m::Union{POMDP,MDP})\n\nReturn a distribution of initial states for (PO)MDP m.\n\nIf it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a model for sampling.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.initialobs","page":"API Documentation","title":"POMDPs.initialobs","text":"initialobs(m::POMDP, s)\n\nReturn a distribution of initial observations for POMDP m and state s.\n\nIf it is difficult to define the probability density or mass function explicitly, consider using POMDPModelTools.ImplicitDistribution to define a model for sampling.\n\nThis function is only used in cases where the policy expects an initial observation rather than an initial belief, e.g. in a reinforcement learning setting. It is not used in a standard POMDP simulation.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.stateindex","page":"API Documentation","title":"POMDPs.stateindex","text":"stateindex(problem::POMDP, s)\nstateindex(problem::MDP, s)\n\nReturn the integer index of state s. Used for discrete models only.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.actionindex","page":"API Documentation","title":"POMDPs.actionindex","text":"actionindex(problem::POMDP, a)\nactionindex(problem::MDP, a)\n\nReturn the integer index of action a. Used for discrete models only.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.obsindex","page":"API Documentation","title":"POMDPs.obsindex","text":"obsindex(problem::POMDP, o)\n\nReturn the integer index of observation o. Used for discrete models only.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.convert_s","page":"API Documentation","title":"POMDPs.convert_s","text":"convert_s(::Type{V}, s, problem::Union{MDP,POMDP}) where V<:AbstractArray\nconvert_s(::Type{S}, vec::V, problem::Union{MDP,POMDP}) where {S,V<:AbstractArray}\n\nConvert a state to vectorized form or vice versa.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.convert_a","page":"API Documentation","title":"POMDPs.convert_a","text":"convert_a(::Type{V}, a, problem::Union{MDP,POMDP}) where V<:AbstractArray\nconvert_a(::Type{A}, vec::V, problem::Union{MDP,POMDP}) where {A,V<:AbstractArray}\n\nConvert an action to vectorized form or vice versa.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.convert_o","page":"API Documentation","title":"POMDPs.convert_o","text":"convert_o(::Type{V}, o, problem::Union{MDP,POMDP}) where V<:AbstractArray\nconvert_o(::Type{O}, vec::V, problem::Union{MDP,POMDP}) where {O,V<:AbstractArray}\n\nConvert an observation to vectorized form or vice versa.\n\n\n\n\n\n","category":"function"},{"location":"api/#Type-Inference","page":"API Documentation","title":"Type Inference","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"statetype\nactiontype\nobstype","category":"page"},{"location":"api/#POMDPs.statetype","page":"API Documentation","title":"POMDPs.statetype","text":"statetype(t::Type)\nstatetype(p::Union{POMDP,MDP})\n\nReturn the state type for a problem type (the S in POMDP{S,A,O}).\n\ntype A <: POMDP{Int, Bool, Bool} end\n\nstatetype(A) # returns Int\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.actiontype","page":"API Documentation","title":"POMDPs.actiontype","text":"actiontype(t::Type)\nactiontype(p::Union{POMDP,MDP})\n\nReturn the state type for a problem type (the S in POMDP{S,A,O}).\n\ntype A <: POMDP{Bool, Int, Bool} end\n\nactiontype(A) # returns Int\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.obstype","page":"API Documentation","title":"POMDPs.obstype","text":"obstype(t::Type)\n\nReturn the state type for a problem type (the S in POMDP{S,A,O}).\n\ntype A <: POMDP{Bool, Bool, Int} end\n\nobstype(A) # returns Int\n\n\n\n\n\n","category":"function"},{"location":"api/#Distributions-and-Spaces","page":"API Documentation","title":"Distributions and Spaces","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"rand\npdf\nmode\nmean\nsupport","category":"page"},{"location":"api/#Base.rand","page":"API Documentation","title":"Base.rand","text":"rand(rng::AbstractRNG, d::Any)\n\nReturn a random element from distribution or space d.\n\nIf d is a state or transition distribution, the sample will be a state; if d is an action distribution, the sample will be an action or if d is an observation distribution, the sample will be an observation.\n\n\n\n\n\n","category":"function"},{"location":"api/#Distributions.pdf","page":"API Documentation","title":"Distributions.pdf","text":"pdf(d::Any, x::Any)\n\nEvaluate the probability density of distribution d at sample x.\n\n\n\n\n\n","category":"function"},{"location":"api/#StatsBase.mode","page":"API Documentation","title":"StatsBase.mode","text":"mode(d::Any)\n\nReturn the most likely value in a distribution d.\n\n\n\n\n\n","category":"function"},{"location":"api/#Statistics.mean","page":"API Documentation","title":"Statistics.mean","text":"mean(d::Any)\n\nReturn the mean of a distribution d.\n\n\n\n\n\n","category":"function"},{"location":"api/#Distributions.support","page":"API Documentation","title":"Distributions.support","text":"support(d::Any)\n\nReturn an iterable object containing the possible values that can be sampled from distribution d. Values with zero probability may be skipped.\n\n\n\n\n\n","category":"function"},{"location":"api/#Belief-Functions","page":"API Documentation","title":"Belief Functions","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"update\ninitialize_belief\nhistory\ncurrentobs","category":"page"},{"location":"api/#POMDPs.update","page":"API Documentation","title":"POMDPs.update","text":"update(updater::Updater, belief_old, action, observation)\n\nReturn a new instance of an updated belief given belief_old and the latest action and observation.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.initialize_belief","page":"API Documentation","title":"POMDPs.initialize_belief","text":"initialize_belief(updater::Updater,\n state_distribution::Any)\ninitialize_belief(updater::Updater, belief::Any)\n\nReturns a belief that can be updated using updater that has similar distribution to state_distribution or belief.\n\nThe conversion may be lossy. This function is also idempotent, i.e. there is a default implementation that passes the belief through when it is already the correct type: initialize_belief(updater::Updater, belief) = belief\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.history","page":"API Documentation","title":"POMDPs.history","text":"history(b)\n\nReturn the action-observation history associated with belief b.\n\nThe history should be an AbstractVector, Tuple, (or similar object that supports indexing with end) full of NamedTuples with keys :a and :o, i.e. history(b)[end][:a] should be the last action taken leading up to b, and history(b)[end][:o] should be the last observation received.\n\nIt is acceptable to return only part of the history if that is all that is available, but it should always end with the current observation. For example, it would be acceptable to return a structure containing only the last three observations in a length 3 Vector{NamedTuple{(:o,),Tuple{O}}.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.currentobs","page":"API Documentation","title":"POMDPs.currentobs","text":"currentobs(b)\n\nReturn the latest observation associated with belief b.\n\nIf a solver or updater implements history(b) for a belief type, currentobs has a default implementation.\n\n\n\n\n\n","category":"function"},{"location":"api/#Policy-and-Solver-Functions","page":"API Documentation","title":"Policy and Solver Functions","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"solve\nupdater\naction\nvalue","category":"page"},{"location":"api/#POMDPs.solve","page":"API Documentation","title":"POMDPs.solve","text":"solve(solver::Solver, problem::POMDP)\n\nSolves the POMDP using method associated with solver, and returns a policy.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.updater","page":"API Documentation","title":"POMDPs.updater","text":"updater(policy::Policy)\n\nReturns a default Updater appropriate for a belief type that policy p can use\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.action","page":"API Documentation","title":"POMDPs.action","text":"action(policy::Policy, x)\n\nReturns the action that the policy deems best for the current state or belief, x.\n\nx is a generalized information state - can be a state in an MDP, a distribution in POMDP, or another specialized policy-dependent representation of the information needed to choose an action.\n\n\n\n\n\n","category":"function"},{"location":"api/#POMDPs.value","page":"API Documentation","title":"POMDPs.value","text":"value(p::Policy, s)\nvalue(p::Policy, s, a)\n\nReturns the utility value from policy p given the state (or belief), or state-action (or belief-action) pair.\n\nThe state-action version is commonly referred to as the Q-value.\n\n\n\n\n\n","category":"function"},{"location":"api/#Simulator","page":"API Documentation","title":"Simulator","text":"","category":"section"},{"location":"api/","page":"API Documentation","title":"API Documentation","text":"Simulator\nsimulate","category":"page"},{"location":"api/#POMDPs.Simulator","page":"API Documentation","title":"POMDPs.Simulator","text":"Base type for an object defining how simulations should be carried out.\n\n\n\n\n\n","category":"type"},{"location":"api/#POMDPs.simulate","page":"API Documentation","title":"POMDPs.simulate","text":"simulate(sim::Simulator, m::POMDP, p::Policy, u::Updater=updater(p), b0=initialstate(m), s0=rand(b0))\nsimulate(sim::Simulator, m::MDP, p::Policy, s0=rand(initialstate(m)))\n\nRun a simulation using the specified policy.\n\nThe return type is flexible and depends on the simulator. Simulations should adhere to the Simulation Standard.\n\n\n\n\n\n","category":"function"},{"location":"run_simulation/#Running-Simulations","page":"Running Simulations","title":"Running Simulations","text":"","category":"section"},{"location":"run_simulation/","page":"Running Simulations","title":"Running Simulations","text":"Running a simulation consists of two steps, creating a simulator and calling the simulate function. For example, given a POMDP or MDP model m, and a policy p, one can use the RolloutSimulator from POMDPTools to find the accumulated discounted reward from a single simulated trajectory as follows:","category":"page"},{"location":"run_simulation/","page":"Running Simulations","title":"Running Simulations","text":"sim = RolloutSimulator()\nr = simulate(sim, m, p)","category":"page"},{"location":"run_simulation/","page":"Running Simulations","title":"Running Simulations","text":"More inputs, such as a belief updater, initial state, initial belief, etc. may be specified as arguments to simulate. See the docstring for simulate and the appropriate \"Input\" sections in the Simulation Standard page for more information.","category":"page"},{"location":"run_simulation/","page":"Running Simulations","title":"Running Simulations","text":"More examples can be found in the Simulations Examples section. A variety of simulators that return more information and interact in different ways can be found in POMDPTools.","category":"page"},{"location":"simulation/#Simulation-Standard","page":"Simulation Standard","title":"Simulation Standard","text":"","category":"section"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"Important note: In most cases, users need not implement their own simulators. Several simulators that are compatible with the standard in this document are implemented in POMDPTools and allow interaction from a variety of perspectives. Moreover CommonRLInterface.jl provides an OpenAI Gym style environment interface to interact with environments that is more flexible in some cases.","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"In order to maintain consistency across the POMDPs.jl ecosystem, this page defines a standard for how simulations should be conducted. All simulators should be consistent with this page, and, if solvers are attempting to find an optimal POMDP policy, they should optimize the expected value of r_total below. In particular, this page should be consulted when questions about how less-obvious concepts like terminal states are handled.","category":"page"},{"location":"simulation/#POMDP-Simulation","page":"Simulation Standard","title":"POMDP Simulation","text":"","category":"section"},{"location":"simulation/#Inputs","page":"Simulation Standard","title":"Inputs","text":"","category":"section"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"In general, POMDP simulations take up to 5 inputs (see also the simulate docstring):","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"pomdp::POMDP: pomdp model object (see POMDPs and MDPs)\npolicy::Policy: policy (see Solvers and Policies)\nup::Updater: belief updater (see Beliefs and Updaters)\nb0: initial belief (this may be updater-specific, such as an observation if the updater just returns the previous observation)\ns: initial state","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"The last three of these inputs are optional. If they are not explicitly provided, they should be inferred using the following POMDPs.jl functions:","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"up =updater(policy)\nb0 =initialstate(pomdp)\ns = rand(initialstate(pomdp))","category":"page"},{"location":"simulation/#Simulation-Loop","page":"Simulation Standard","title":"Simulation Loop","text":"","category":"section"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"The main simulation loop is shown below. Note that the isterminal check prevents any actions from being taken and reward from being collected from a terminal state.","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"Before the loop begins, initialize_belief is called to create the belief based on the initial state distribution - this is especially important when the belief is solver specific, such as the finite-state-machine used by MCVI. ","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"b = initialize_belief(up, b0)\n\nr_total = 0.0\nd = 1.0\nwhile !isterminal(pomdp, s)\n a = action(policy, b)\n s, o, r = @gen(:sp,:o,:r)(pomdp, s, a)\n r_total += d*r\n d *= discount(pomdp)\n b = update(up, b, a, o)\nend","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"In terms of the explicit interface, the @gen macro above expands to the equivalent of:","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":" sp = rand(transition(pomdp, s, a))\n o = rand(observation(pomdp, s, a, sp))\n r = reward(pomdp, s, a, sp, o)\n s = sp","category":"page"},{"location":"simulation/#MDP-Simulation","page":"Simulation Standard","title":"MDP Simulation","text":"","category":"section"},{"location":"simulation/#Inputs-2","page":"Simulation Standard","title":"Inputs","text":"","category":"section"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"In general, MDP simulations take up to 3 inputs (see also the simulate docstring):","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"mdp::MDP: mdp model object (see POMDPs and MDPs)\npolicy::Policy: policy (see Solvers and Policies)\ns: initial state","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"The last of these inputs is optional. If the initial state is not explicitly provided, it should be generated using","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"s = rand(initialstate(mdp))","category":"page"},{"location":"simulation/#Simulation-Loop-2","page":"Simulation Standard","title":"Simulation Loop","text":"","category":"section"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"The main simulation loop is shown below. Note again that the isterminal check prevents any actions from being taken and reward from being collected from a terminal state.","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"r_total = 0.0\nd = 1.0\nwhile !isterminal(mdp, s)\n a = action(policy, s)\n s, r = @gen(:sp,:r)(mdp, s, a)\n r_total += d*r\n d *= discount(mdp)\nend","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":"In terms of the explicit interface, the @gen macro above expands to the equivalent of:","category":"page"},{"location":"simulation/","page":"Simulation Standard","title":"Simulation Standard","text":" sp = rand(transition(pomdp, s, a))\n r = reward(pomdp, s, a, sp)\n s = sp","category":"page"},{"location":"POMDPTools/simulators/#Implemented-Simulators","page":"Implemented Simulators","title":"Implemented Simulators","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"POMDPTools contains a collection of POMDPs.jl simulators.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Usage examples can be found in the Simulations Examples section.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"If you are just getting started, probably the easiest way to begin is the stepthrough function. Otherwise, consult the Which Simulator Should I Use? guide below:","category":"page"},{"location":"POMDPTools/simulators/#which_simulator","page":"Implemented Simulators","title":"Which Simulator Should I Use?","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The simulators in this package provide interaction with simulations of MDP and POMDP environments from a variety of perspectives. Use these questions to choose the best simulator to suit your needs.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-run-fast-rollout-simulations-and-get-the-discounted-reward.","page":"Implemented Simulators","title":"I want to run fast rollout simulations and get the discounted reward.","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the Rollout Simulator.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-evaluate-performance-with-many-parallel-Monte-Carlo-simulations.","page":"Implemented Simulators","title":"I want to evaluate performance with many parallel Monte Carlo simulations.","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the Parallel Simulator.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-closely-examine-the-histories-of-states,-actions,-etc.-produced-by-simulations.","page":"Implemented Simulators","title":"I want to closely examine the histories of states, actions, etc. produced by simulations.","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the History Recorder.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-step-through-each-individual-step-of-a-simulation.","page":"Implemented Simulators","title":"I want to step through each individual step of a simulation.","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the stepthrough function.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-visualize-a-simulation.","page":"Implemented Simulators","title":"I want to visualize a simulation.","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the DisplaySimulator.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Also see the POMDPGifs package for creating gif animations.","category":"page"},{"location":"POMDPTools/simulators/#I-want-to-interact-with-a-MDP-or-POMDP-environment-from-the-policy's-perspective","page":"Implemented Simulators","title":"I want to interact with a MDP or POMDP environment from the policy's perspective","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Use the sim function.","category":"page"},{"location":"POMDPTools/simulators/#Stepping-through","page":"Implemented Simulators","title":"Stepping through","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The stepthrough function exposes a simulation as an iterator so that the steps can be iterated through with a for loop syntax as follows:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"pomdp = BabyPOMDP()\npolicy = RandomPolicy(pomdp)\n\nfor (s, a, o, r) in stepthrough(pomdp, policy, \"s,a,o,r\", max_steps=10)\n println(\"in state $s\")\n println(\"took action $a\")\n println(\"received observation $o and reward $r\")\nend","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"stepthrough","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.stepthrough","page":"Implemented Simulators","title":"POMDPTools.Simulators.stepthrough","text":"stepthrough(problem, policy, [spec])\nstepthrough(problem, policy, [spec], [rng=rng], [max_steps=max_steps])\nstepthrough(mdp::MDP, policy::Policy, [init_state], [spec]; [kwargs...])\nstepthrough(pomdp::POMDP, policy::Policy, [up::Updater, [initial_belief, [initial_state]]], [spec]; [kwargs...])\n\nCreate a simulation iterator. This is intended to be used with for loop syntax to output the results of each step as the simulation is being run. \n\nExample:\n\npomdp = BabyPOMDP()\npolicy = RandomPolicy(pomdp)\n\nfor (s, a, o, r) in stepthrough(pomdp, policy, \"s,a,o,r\", max_steps=10)\n println(\"in state $s\")\n println(\"took action $a\")\n println(\"received observation $o and reward $r\")\nend\n\nThe optional spec argument can be a string, tuple of symbols, or single symbol and follows the same pattern as eachstep called on a SimHistory object.\n\nUnder the hood, this function creates a StepSimulator with spec and returns a [PO]MDPSimIterator by calling simulate with all of the arguments except spec. All keyword arguments are passed to the StepSimulator constructor.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The StepSimulator contained in this file can provide the same functionality with the following syntax:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"sim = StepSimulator(\"s,a,r,sp\")\nfor (s,a,r,sp) in simulate(sim, problem, policy)\n # do something\nend","category":"page"},{"location":"POMDPTools/simulators/#Rollouts","page":"Implemented Simulators","title":"Rollouts","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"RolloutSimulator is the simplest MDP or POMDP simulator. When simulate is called, it simply simulates a single trajectory of the process and returns the discounted reward.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"rs = RolloutSimulator()\nmdp = GridWorld()\npolicy = RandomPolicy(mdp)\n\nr = simulate(rs, mdp, policy)","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"RolloutSimulator","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.RolloutSimulator","page":"Implemented Simulators","title":"POMDPTools.Simulators.RolloutSimulator","text":"RolloutSimulator(rng, max_steps)\nRolloutSimulator(; )\n\nA fast simulator that just returns the reward\n\nThe simulation will be terminated when either\n\na terminal state is reached (as determined by isterminal() or\nthe discount factor is as small as eps or\nmax_steps have been executed\n\nKeyword arguments:\n\nrng::AbstractRNG (default: Random.default_rng()) - A random number generator to use. \neps::Float64 (default: 0.0) - A small number; if γᵗ where γ is the discount factor and t is the time step becomes smaller than this, the simulation will be terminated.\nmax_steps::Int (default: typemax(Int)) - The maximum number of steps to simulate.\n\nUsage (optional arguments in brackets):\n\nro = RolloutSimulator()\nhistory = simulate(ro, pomdp, policy, [updater [, init_belief [, init_state]]])\n\nSee also: HistoryRecorder, run_parallel\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/simulators/#History-Recorder","page":"Implemented Simulators","title":"History Recorder","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"A HistoryRecorder runs a simulation and records the trajectory. It returns an AbstractVector of NamedTuples - see Histories for more info.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"hr = HistoryRecorder(max_steps=100)\npomdp = TigerPOMDP()\npolicy = RandomPolicy(pomdp)\n\nh = simulate(hr, pomdp, policy)","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"HistoryRecorder","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.HistoryRecorder","page":"Implemented Simulators","title":"POMDPTools.Simulators.HistoryRecorder","text":"A simulator that records the history for later examination\n\nThe simulation will be terminated when either\n\na terminal state is reached (as determined by isterminal() or\nthe discount factor is as small as eps or\nmax_steps have been executed\n\nKeyword Arguments: - rng: The random number generator for the simulation - capture_exception::Bool: whether to capture an exception and store it in the history, or let it go uncaught, potentially killing the script - show_progress::Bool: show a progress bar for the simulation - eps - max_steps\n\nUsage (optional arguments in brackets):\n\nhr = HistoryRecorder()\nhistory = simulate(hr, pomdp, policy, [updater [, init_belief [, init_state]]])\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/simulators/#sim-function","page":"Implemented Simulators","title":"sim()","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The sim function provides a convenient way to interact with a POMDP or MDP environment and return a history. The first argument is a function that is called at every time step and takes a state (in the case of an MDP) or an observation (in the case of a POMDP) as the argument and then returns an action. The second argument is a pomdp or mdp. It is intended to be used with Julia's do syntax as follows:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"pomdp = TigerPOMDP()\nhistory = sim(pomdp, max_steps=10) do obs\n println(\"Observation was $obs.\")\n return TIGER_OPEN_LEFT\nend","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"This allows a flexible and general way to interact with a POMDP environment without creating new Policy types.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"In the POMDP case, an updater can optionally be supplied as an additional positional argument if the policy function works with beliefs rather than directly with observations.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"sim","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.sim","page":"Implemented Simulators","title":"POMDPTools.Simulators.sim","text":"sim(polfunc::Function, mdp::MDP; [])\nsim(polfunc::Function, pomdp::POMDP; [])\n\nAlternative way of running a simulation with a function specifying how to calculate the action at each timestep.\n\nUsage\n\nsim(mdp) do s\n # code that calculates action `a` based on `s` - this is the policy\n # you can also do other things like display something\n return a\nend\n\nfor an MDP or\n\nsim(pomdp) do o\n # code that calculates 'a' based on observation `o`\n # optionally you could save 'o' in a global variable or do a belief update\n return a\nend\n\nor with a POMDP\n\nsim(pomdp, updater) do b\n # code that calculates 'a' based on belief `b`\n # `b` is calculated by `updater`\n return a\nend\n\nfor a POMDP and a belief updater.\n\nKeyword Arguments\n\nAll Versions\n\ninitialstate: the initial state for the simulation\nsimulator: keyword argument to specify any simulator to run the simulation. If nothing is specified for the simulator, a HistoryRecorder will be used as the simulator, with all keyword arguments forwarded to it, e.g.\nsim(mdp, max_steps=100, show_progress=true) do s\n # ...\nend\nwill limit the simulation to 100 steps.\n\nPOMDP version\n\ninitialobs: this will control the initial observation given to the policy function. If this is not defined, rand(initialobs(m, s)) will be used if it is available. If it is not, missing will be used.\n\nPOMDP and updater version\n\ninitialbelief: initialize_belief(updater, initialbelief) is the first belief that will be given to the policy function.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/simulators/#Histories","page":"Implemented Simulators","title":"Histories","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The results produced by HistoryRecorders and the sim function are contained in SimHistory objects.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"SimHistory","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.SimHistory","page":"Implemented Simulators","title":"POMDPTools.Simulators.SimHistory","text":"SimHistory\n\nAn (PO)MDP simulation history returned by simulate(::HistoryRecorder, ::Union{MDP,POMDP},...).\n\nThis is an AbstractVector of NamedTuples containing the states, actions, etc.\n\nExamples\n\nhist[1][:s] # returns the first state in the history\n\nhist[:a] # returns all of the actions in the history\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/simulators/#Examples","page":"Implemented Simulators","title":"Examples","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"using POMDPs, POMDPTools, POMDPModels\nhr = HistoryRecorder(max_steps=10)\nhist = simulate(hr, BabyPOMDP(), FunctionPolicy(x->true))\nstep = hist[1] # all information available about the first step\nstep[:s] # the first state\nstep[:a] # the first action","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"To see everything available in a step, use","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"keys(first(hist))","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The entire history of each variable is available by using a Symbol instead of an index, i.e.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"hist[:s]","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"will return a vector of the starting states for each step (note the difference between :s and :sp).","category":"page"},{"location":"POMDPTools/simulators/#eachstep","page":"Implemented Simulators","title":"eachstep","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The eachstep function may also be useful:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"eachstep","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.eachstep","page":"Implemented Simulators","title":"POMDPTools.Simulators.eachstep","text":"for t in eachstep(hist, [spec])\n ...\nend\n\nIterate through the steps in SimHistory hist. spec is a tuple of symbols or string that controls what is returned for each step.\n\nFor example,\n\nfor (s, a, r, sp) in eachstep(h, \"(s, a, r, sp)\") \n println(\"reward $r received when state $sp was reached after action $a was taken in state $s\")\nend\n\nreturns the start state, action, reward and destination state for each step of the simulation.\n\nAlternatively, instead of expanding the steps implicitly, the elements of the step can be accessed as fields (since each step is a NamedTuple):\n\nfor step in eachstep(h, \"(s, a, r, sp)\") \n println(\"reward $(step.r) received when state $(step.sp) was reached after action $(step.a) was taken in state $(step.s)\")\nend\n\nThe possible valid elements in the iteration specification are\n\nAny node in the (PO)MDP Dynamic Decision network (by default :s, :a, :sp, :o, :r)\nb - the initial belief in the step (for POMDPs only)\nbp - the belief after being updated based on o (for POMDPs only)\naction_info - info from the policy decision (from action_info)\nupdate_info - info from the belief update (from update_info)\nt - the timestep index\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/simulators/#Examples:","page":"Implemented Simulators","title":"Examples:","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"collect(eachstep(h, \"a,o\"))","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"will produce a vector of action-observation named tuples.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"collect(norm(sp-s) for (s,sp) in eachstep(h, \"s,sp\"))","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"will produce a vector of the distances traveled on each step (assuming the state is a Euclidean vector).","category":"page"},{"location":"POMDPTools/simulators/#Notes","page":"Implemented Simulators","title":"Notes","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The iteration specification can be specified as a tuple of symbols (e.g. (:s, :a)) instead of a string.\nFor type stability in performance-critical code, one should construct an iterator directly using HistoryIterator{typeof(h), (:a,:r)}(h) rather than eachstep(h, \"ar\").","category":"page"},{"location":"POMDPTools/simulators/#Other-Functions","page":"Implemented Simulators","title":"Other Functions","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"state_hist(h), action_hist(h), observation_hist(h) belief_hist(h), and reward_hist(h) will return vectors of the states, actions, and rewards, and undiscounted_reward(h) and discounted_reward(h) will return the total rewards collected over the trajectory. n_steps(h) returns the number of steps in the history. exception(h) and backtrace(h) can be used to hold an exception if the simulation failed to finish.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"view(h, range) (e.g. view(h, 1:n_steps(h)-4)) can be used to create a view of the history object h that only contains a certain range of steps. The object returned by view is an AbstractSimHistory that can be iterated through and manipulated just like a complete SimHistory.","category":"page"},{"location":"POMDPTools/simulators/#Parallel","page":"Implemented Simulators","title":"Parallel","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"POMDPTools contains a utility for running many Monte Carlo simulations in parallel to evaluate performance. The basic workflow involves the following steps:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Create a vector of Sim objects, each specifying how a single simulation should be run.\nUse the run_parallel or run function to run the simulations.\nAnalyze the results of the simulations contained in the DataFrame returned by run_parallel.","category":"page"},{"location":"POMDPTools/simulators/#Example","page":"Implemented Simulators","title":"Example","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"An example can be found in the Parallel Simulations section.","category":"page"},{"location":"POMDPTools/simulators/#Sim-objects","page":"Implemented Simulators","title":"Sim objects","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Each simulation should be specified by a Sim object which contains all the information needed to run a simulation, including the Simulator, POMDP or MDP, Policy, Updater, and any other ingredients.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Sim","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.Sim","page":"Implemented Simulators","title":"POMDPTools.Simulators.Sim","text":"Sim(m::MDP, p::Policy[, initialstate]; kwargs...)\nSim(m::POMDP, p::Policy[, updater[, initial_belief[, initialstate]]]; kwargs...)\n\nCreate a Sim object that contains everything needed to run and record a single simulation, including model, initial conditions, and metadata.\n\nA vector of Sim objects can be executed with run or run_parallel.\n\nKeyword Arguments\n\nrng::AbstractRNG=Random.default_rng()\nmax_steps::Int=typemax(Int)\nsimulator::Simulator=HistoryRecorder(rng=rng, max_steps=max_steps)\nmetadata::NamedTuple a named tuple (or dictionary) of metadata for the sim that will be recorded, e.g.(solver_iterations=500,)`.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/simulators/#Running-simulations","page":"Implemented Simulators","title":"Running simulations","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The simulations are actually carried out by the run and run_parallel functions.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"run_parallel","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.run_parallel","page":"Implemented Simulators","title":"POMDPTools.Simulators.run_parallel","text":"run_parallel(queue::Vector{Sim})\nrun_parallel(f::Function, queue::Vector{Sim})\n\nRun Sim objects in queue in parallel and return results as a DataFrame.\n\nBy default, the DataFrame will contain the reward for each simulation and the metadata provided to the sim.\n\nArguments\n\nqueue: List of Sim objects to be executed\nf: Function to process the results of each simulation\n\nThis function should take two arguments, (1) the Sim that was executed and (2) the result of the simulation, by default a SimHistory. It should return a named tuple that will appear in the dataframe. See Examples below.\n\nKeyword Arguments\n\nshow_progress::Bool: whether or not to show a progress meter\nprogress::ProgressMeter.Progress: determines how the progress meter is displayed\n\nExamples\n\nrun_parallel(queue) do sim, hist\n return (n_steps=n_steps(hist), reward=discounted_reward(hist))\nend\n\nwill return a dataframe with with the number of steps and the reward in it.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The run function is also provided to run simulations in serial (this is often useful for debugging). Note that the documentation below also contains a section for the builtin julia run function, even though it is not relevant here.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"run","category":"page"},{"location":"POMDPTools/simulators/#Base.run","page":"Implemented Simulators","title":"Base.run","text":"run(queue::Vector{Sim})\nrun(f::Function, queue::Vector{Sim})\n\nRun the Sim objects in queue on a single process and return the results as a dataframe.\n\nSee run_parallel for more information.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/simulators/#Specifying-information-to-be-recorded","page":"Implemented Simulators","title":"Specifying information to be recorded","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"By default, only the discounted rewards from each simulation are recorded, but arbitrary information can be recorded.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The run_parallel and run functions accept a function (normally specified via the do syntax) that takes the Sim object and history of the simulation and extracts relevant statistics as a named tuple. For example, if the desired characteristics are the number of steps in the simulation and the reward, run_parallel would be invoked as follows:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"df = run_parallel(queue) do sim::Sim, hist::SimHistory\n return (n_steps=n_steps(hist), reward=discounted_reward(hist))\nend","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"These statistics are combined into a DataFrame, with each line representing a single simulation, allowing for statistical analysis. For example,","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"mean(df[:reward]./df[:n_steps])","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"would compute the average reward per step with each simulation weighted equally regardless of length.","category":"page"},{"location":"POMDPTools/simulators/#Display","page":"Implemented Simulators","title":"Display","text":"","category":"section"},{"location":"POMDPTools/simulators/#DisplaySimulator","page":"Implemented Simulators","title":"DisplaySimulator","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The DisplaySimulator displays each step of a simulation in real time through a multimedia display such as a Jupyter notebook or ElectronDisplay. Specifically it uses POMDPTools.render and the built-in Julia display function to visualize each step.","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"Example:","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"using POMDPs\nusing POMDPModels\nusing POMDPTools\nusing ElectronDisplay\nElectronDisplay.CONFIG.single_window = true\n\nds = DisplaySimulator()\nm = SimpleGridWorld()\nsimulate(ds, m, RandomPolicy(m))","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"DisplaySimulator","category":"page"},{"location":"POMDPTools/simulators/#POMDPTools.Simulators.DisplaySimulator","page":"Implemented Simulators","title":"POMDPTools.Simulators.DisplaySimulator","text":"DisplaySimulator(;kwargs...)\n\nCreate a simulator that displays each step of a simulation.\n\nGiven a POMDP or MDP model m, this simulator roughly works like\n\nfor step in stepthrough(m, ...)\n display(render(m, step))\nend\n\nKeyword Arguments\n\ndisplay::AbstractDisplay: the display to use for the first argument to the display function. If this is nothing, display(...) will be called without an AbstractDisplay argument.\nrender_kwargs::NamedTuple: keyword arguments for POMDPTools.render(...)\nmax_fps::Number=10: maximum number of frames to be displayed per second - sleep will be used to skip extra time, so this is not designed for high precision\npredisplay::Function: function to call before every call to display(...). The only argument to this function will be the display (if it is specified) or nothing\nextra_initial::Bool=false: if true, display an extra step at the beginning with only elements t, sp, and bp for POMDPs (this can be useful to see the initial state if render displays only sp and not s).\nextra_final::Bool=true: iftrue, display an extra step at the end with only elementst,done,s, andbfor POMDPs (this can be useful to see the final state ifrenderdisplays onlysand notsp`).\nmax_steps::Integer: maximum number of steps to run for\nspec::NTuple{Symbol}: specification of what step elements to display (see eachstep)\nrng::AbstractRNG: random number generator\n\nSee the POMDPSimulators documentation for more tips about using specific displays.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/simulators/#Display-specific-tips","page":"Implemented Simulators","title":"Display-specific tips","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"The following tips may be helpful when using particular displays.","category":"page"},{"location":"POMDPTools/simulators/#Jupyter-notebooks","page":"Implemented Simulators","title":"Jupyter notebooks","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"By default, in a Jupyter notebook, the visualizations of all steps are displayed in the output box one after another. To make the output animated instead, where the image is overwritten at each step, one may use","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"DisplaySimulator(predisplay=(d)->IJulia.clear_output(true))","category":"page"},{"location":"POMDPTools/simulators/#ElectronDisplay","page":"Implemented Simulators","title":"ElectronDisplay","text":"","category":"section"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"By default, ElectronDisplay will open a new window for each new step. To prevent this, use","category":"page"},{"location":"POMDPTools/simulators/","page":"Implemented Simulators","title":"Implemented Simulators","text":"ElectronDisplay.CONFIG.single_window = true","category":"page"},{"location":"gallery/#Gallery-of-POMDPs.jl-Problems","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"A gallery of models written for POMDPs.jl with visualizations. To view these visualizations on your own machine, the code is provided below each visualization.","category":"page"},{"location":"gallery/#[EscapeRoomba](https://github.com/sisl/AA228FinalProject)","page":"Gallery of POMDPs.jl Problems","title":"EscapeRoomba","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"Originally, an optional final project for AA228 at Stanford in Fall 2018. A Roomba equipped with a LIDAR or a bump sensor needs to try to find the safe exit (green) without accidentally falling down the stairs (red).","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"(Image: EscapeRoomba)","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using Pkg\nPkg.add(url=\"https://github.com/sisl/RoombaPOMDPs.git\")","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using POMDPs\nusing POMDPTools\nusing POMDPGifs\nusing BasicPOMCP\nusing Random\nusing ParticleFilters\nusing Cairo\nusing LinearAlgebra\n\n\n# If you don't have RoombaPOMDPs installed, uncomment the following two lines\n# using Pkg\n# Pkg.add(url=\"https://github.com/sisl/RoombaPOMDPs.git\")\nusing RoombaPOMDPs\n\n# Let's only consider discrete actions\nroomba_actions = [RoombaAct(2.0, 0.0), RoombaAct(2.0, 0.7), RoombaAct(2.0, -0.7)]\n\npomdp = RoombaPOMDP(;\n sensor=Bumper(), \n mdp=RoombaMDP(; \n config=2, \n discount=0.99, \n contact_pen=-0.1,\n aspace=roomba_actions\n )\n)\n\n# Define the belief updater\nnum_particles = 20000\nv_noise_coefficient = 0.0\nom_noise_coefficient = 0.4\nresampler=LowVarianceResampler(num_particles)\nrng = MersenneTwister(1)\nbelief_updater = RoombaParticleFilter(\n pomdp, num_particles, v_noise_coefficient, \n om_noise_coefficient,resampler, rng\n)\n\n# Custom update function for the particle filter\nfunction POMDPs.update(up::RoombaParticleFilter, b::ParticleCollection, a, o)\n pm = up._particle_memory\n wm = up._weight_memory\n ps = []\n empty!(pm)\n empty!(wm)\n all_terminal = true\n for s in particles(b)\n if !isterminal(up.model, s)\n all_terminal = false\n a_pert = RoombaAct(a.v + (up.v_noise_coeff * (rand(up.rng) - 0.5)), a.omega + (up.om_noise_coeff * (rand(up.rng) - 0.5)))\n sp = @gen(:sp)(up.model, s, a_pert, up.rng)\n weight_sp = pdf(observation(up.model, sp), o)\n if weight_sp > 0.0\n push!(ps, s)\n push!(pm, sp)\n push!(wm, weight_sp)\n end\n end\n end\n \n while length(pm) < up.n_init\n a_pert = RoombaAct(a.v + (up.v_noise_coeff * (rand(up.rng) - 0.5)), a.omega + (up.om_noise_coeff * (rand(up.rng) - 0.5)))\n s = isempty(ps) ? rand(up.rng, b) : rand(up.rng, ps)\n sp = @gen(:sp)(up.model, s, a_pert, up.rng)\n weight_sp = obs_weight(up.model, s, a_pert, sp, o)\n if weight_sp > 0.0\n push!(pm, sp)\n push!(wm, weight_sp)\n end\n end\n\n # if all particles are terminal, issue an error\n if all_terminal\n error(\"Particle filter update error: all states in the particle collection were terminal.\")\n end\n \n # return ParticleFilters.ParticleCollection(deepcopy(pm))\n return ParticleFilters.resample(up.resampler,\n WeightedParticleBelief(pm, wm, sum(wm), nothing),\n up.rng)\nend\n\nsolver = POMCPSolver(; \n tree_queries=20000, \n max_depth=150, \n c = 10.0,\n rng=MersenneTwister(1)\n)\n\nplanner = solve(solver, pomdp)\n\nsim = GifSimulator(; \n filename=\"examples/EscapeRoomba.gif\", \n max_steps=100, \n rng=MersenneTwister(3), \n show_progress=false, \n fps=5)\nsaved_gif = simulate(sim, pomdp, planner, belief_updater)\n\nprintln(\"gif saved to: $(saved_gif.filename)\")","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"Pkg.rm(\"RoombaPOMDPs\")","category":"page"},{"location":"gallery/#[DroneSurveillance](https://github.com/JuliaPOMDP/DroneSurveillance.jl)","page":"Gallery of POMDPs.jl Problems","title":"DroneSurveillance","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"Drone surveillance POMDP from M. Svoreňová, M. Chmelík, K. Leahy, H. F. Eniser, K. Chatterjee, I. Černá, C. Belta, \"Temporal logic motion planning using POMDPs with parity objectives: case study paper\", International Conference on Hybrid Systems: Computation and Control (HSCC), 2015.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"In this problem, the UAV must go from one corner to the other while avoiding a ground agent. It can only detect the ground agent within its field of view (in blue).","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"(Image: DroneSurveillance)","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using POMDPs\nusing POMDPTools\nusing POMDPGifs\nusing NativeSARSOP\nusing Random\nusing DroneSurveillance\nimport Cairo, Fontconfig\n\npomdp = DroneSurveillancePOMDP() \nsolver = SARSOPSolver(; precision=0.1, max_time=10.0) \npolicy = solve(solver, pomdp) \n\nsim = GifSimulator(; filename=\"examples/DroneSurveillance.gif\", max_steps=30, rng=MersenneTwister(1), show_progress=false)\nsaved_gif = simulate(sim, pomdp, policy)\n\nprintln(\"gif saved to: $(saved_gif.filename)\")","category":"page"},{"location":"gallery/#[QuickMountainCar](https://github.com/JuliaPOMDP/QuickPOMDPs.jl)","page":"Gallery of POMDPs.jl Problems","title":"QuickMountainCar","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"An implementation of the classic Mountain Car RL problem using the QuickPOMDPs interface.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"(Image: QuickMountainCar)","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using POMDPs\nusing POMDPTools\nusing POMDPGifs\nusing Random\nusing QuickPOMDPs\nusing Compose\nimport Cairo\n\nmountaincar = QuickMDP(\n function (s, a, rng) \n x, v = s\n vp = clamp(v + a*0.001 + cos(3*x)*-0.0025, -0.07, 0.07)\n xp = x + vp\n if xp > 0.5\n r = 100.0\n else\n r = -1.0\n end\n return (sp=(xp, vp), r=r)\n end,\n actions = [-1., 0., 1.],\n initialstate = Deterministic((-0.5, 0.0)),\n discount = 0.95,\n isterminal = s -> s[1] > 0.5,\n\n render = function (step)\n cx = step.s[1]\n cy = 0.45*sin(3*cx)+0.5\n car = (context(), Compose.circle(cx, cy+0.035, 0.035), fill(\"blue\"))\n track = (context(), line([(x, 0.45*sin(3*x)+0.5) for x in -1.2:0.01:0.6]), Compose.stroke(\"black\"))\n goal = (context(), star(0.5, 1.0, -0.035, 5), fill(\"gold\"), Compose.stroke(\"black\"))\n bg = (context(), Compose.rectangle(), fill(\"white\"))\n ctx = context(0.7, 0.05, 0.6, 0.9, mirror=Mirror(0, 0, 0.5))\n return compose(context(), (ctx, car, track, goal), bg)\n end\n)\n\nenergize = FunctionPolicy(s->s[2] < 0.0 ? -1.0 : 1.0)\nsim = GifSimulator(; filename=\"examples/QuickMountainCar.gif\", max_steps=200, fps=20, rng=MersenneTwister(1), show_progress=false)\nsaved_gif = simulate(sim, mountaincar, energize)\n\nprintln(\"gif saved to: $(saved_gif.filename)\")","category":"page"},{"location":"gallery/#[RockSample](https://github.com/JuliaPOMDP/RockSample.jl)","page":"Gallery of POMDPs.jl Problems","title":"RockSample","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"The RockSample problem from T. Smith, R. Simmons, \"Heuristic Search Value Iteration for POMDPs\", Association for Uncertainty in Artificial Intelligence (UAI), 2004.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"The robot must navigate and sample good rocks (green) and then arrive at an exit area. The robot can only sense the rocks with an imperfect sensor that has performance that depends on the distance to the rock.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"(Image: RockSample)","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using POMDPs\nusing POMDPTools\nusing POMDPGifs\nusing NativeSARSOP\nusing Random\nusing RockSample \nusing Cairo \n\npomdp = RockSamplePOMDP(rocks_positions=[(2,3), (4,4), (4,2)], \n sensor_efficiency=20.0,\n discount_factor=0.95, \n good_rock_reward = 20.0)\n\nsolver = SARSOPSolver(precision=1e-3; max_time=10.0)\npolicy = solve(solver, pomdp)\n\nsim = GifSimulator(; filename=\"examples/RockSample.gif\", max_steps=30, rng=MersenneTwister(1), show_progress=false)\nsaved_gif = simulate(sim, pomdp, policy)\n\nprintln(\"gif saved to: $(saved_gif.filename)\")","category":"page"},{"location":"gallery/#[TagPOMDPProblem](https://github.com/JuliaPOMDP/TagPOMDPProblem.jl)","page":"Gallery of POMDPs.jl Problems","title":"TagPOMDPProblem","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"The Tag problem from J. Pineau, G. Gordon, and S. Thrun, \"Point-based value iteration: An anytime algorithm for POMDPs\", International Joint Conference on Artificial Intelligence (IJCAI), 2003.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"The orange agent is the pursuer and the red agent is the evader. The pursuer must \"tag\" the evader by being in the same grid cell as the evader. However, the pursuer can only see the evader if it is in the same grid cell as the evader. The evader moves stochastically \"away\" from the pursuer.","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"(Image: TagPOMDPProblem)","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using Pkg\nPkg.add(\"Plots\")\nusing Plots","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using POMDPs\nusing POMDPTools\nusing POMDPGifs\nusing NativeSARSOP\nusing Random\nusing TagPOMDPProblem\n\npomdp = TagPOMDP()\nsolver = SARSOPSolver(; max_time=20.0)\npolicy = solve(solver, pomdp)\nsim = GifSimulator(; filename=\"examples/TagPOMDP.gif\", max_steps=50, rng=MersenneTwister(1), show_progress=false)\nsaved_gif = simulate(sim, pomdp, policy)\n\nprintln(\"gif saved to: $(saved_gif.filename)\")","category":"page"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"using Pkg\nPkg.rm(\"Plots\")","category":"page"},{"location":"gallery/#Adding-New-Gallery-Examples","page":"Gallery of POMDPs.jl Problems","title":"Adding New Gallery Examples","text":"","category":"section"},{"location":"gallery/","page":"Gallery of POMDPs.jl Problems","title":"Gallery of POMDPs.jl Problems","text":"To add new examples, please submit a pull request to the POMDPs.jl repository with changes made to the gallery.md file in docs/src/. Please include the creation of a gif in the code snippet. The gif should be generated during the creation of the documentation using @eval and saved in the docs/src/examples/ directory. The gif should be named problem_name.gif where problem_name is the name of the problem. The gif can then be included using ![problem_name](examples/problem_name.gif).","category":"page"},{"location":"POMDPTools/testing/#Testing","page":"Testing","title":"Testing","text":"","category":"section"},{"location":"POMDPTools/testing/","page":"Testing","title":"Testing","text":"POMDPTools contains basic utilities for testing models and solvers.","category":"page"},{"location":"POMDPTools/testing/#Testing-(PO)MDP-Models","page":"Testing","title":"Testing (PO)MDP Models","text":"","category":"section"},{"location":"POMDPTools/testing/","page":"Testing","title":"Testing","text":"has_consistent_distributions\nhas_consistent_initial_distribution\nhas_consistent_transition_distributions\nhas_consistent_observation_distributions","category":"page"},{"location":"POMDPTools/testing/#POMDPTools.Testing.has_consistent_distributions","page":"Testing","title":"POMDPTools.Testing.has_consistent_distributions","text":"has_consistent_distributions(m::MDP; atol=0)\nhas_consistent_distributions(m::POMDP; atol=0)\n\nReturn true if no problems are found in the distributions for a discrete problem. Print information and return false if problems are found.\n\nTests whether\n\nAll probabilities are positive\nProbabilities for all distributions sum to 1\nAll items with positive probability are in the support\n\nKeyword Arguments\n\natol: absolute tolerance passed to approx for all probability checks\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/testing/#POMDPTools.Testing.has_consistent_initial_distribution","page":"Testing","title":"POMDPTools.Testing.has_consistent_initial_distribution","text":"has_consistent_initial_distribution(m; atol=0)\n\nReturn true if no problems are found with the initial state distribution for a discrete problem. Print information and return false if problems are found.\n\nSee has_consistent_distributions for information on what checks are performed.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/testing/#POMDPTools.Testing.has_consistent_transition_distributions","page":"Testing","title":"POMDPTools.Testing.has_consistent_transition_distributions","text":"has_consistent_transition_distributions(m; atol=0)\n\nReturn true if no problems are found in the transition distributions for a discrete problem. Print information and return false if problems are found.\n\nSee has_consistent_distributions for information on what checks are performed.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/testing/#POMDPTools.Testing.has_consistent_observation_distributions","page":"Testing","title":"POMDPTools.Testing.has_consistent_observation_distributions","text":"has_consistent_observation_distributions(m; atol=0)\n\nReturn true if no problems are found in the observation distributions for a discrete POMDP. Print information and return false if problems are found.\n\nSee has_consistent_distributions for information on what checks are performed.\n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/testing/#Testing-Solvers","page":"Testing","title":"Testing Solvers","text":"","category":"section"},{"location":"POMDPTools/testing/","page":"Testing","title":"Testing","text":"test_solver","category":"page"},{"location":"POMDPTools/testing/#POMDPTools.Testing.test_solver","page":"Testing","title":"POMDPTools.Testing.test_solver","text":"test_solver(solver::Solver, problem::POMDP)\ntest_solver(solver::Solver, problem::MDP)\n\nUse the solver to solve the specified problem, then run a simulation.\n\nThis is designed to illustrate how solvers are expected to function. All solvers should be able to complete this standard test with the simple models in the POMDPModels package.\n\nNote that this does NOT test the optimality of the solution, but is only a smoke test to see if the solver interacts with POMDP models as expected.\n\nTo run this with a solver called YourSolver, run\n\nusing POMDPToolbox\nusing POMDPModels\n\nsolver = YourSolver(# initialize with parameters #)\ntest_solver(solver, BabyPOMDP())\n\n\n\n\n\n","category":"function"},{"location":"offline_solver/#Example:-Defining-an-offline-solver","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"","category":"section"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"In this example, we will define a simple offline solver that works for both POMDPs and MDPs. In order to focus on the code structure, we will not create an algorithm that finds an optimal policy, but rather a greedy policy, that is, one that optimizes the expected immediate reward. For information on using this solver in a simulation, see Running Simulations.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"We begin by creating a solver type. Since there are no adjustable parameters for the solver, it is an empty type, but for a more complex solver, parameters would usually be included as type fields.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"using POMDPs\n\nstruct GreedyOfflineSolver <: Solver end","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"Next, we define the functions that will make the solver work for both MDPs and POMDPs.","category":"page"},{"location":"offline_solver/#MDP-Case","page":"Example: Defining an offline solver","title":"MDP Case","text":"","category":"section"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"Finding a greedy policy for an MDP consists of determining the action that has the best reward for each state. First, we create a simple policy object that holds a greedy action for each state.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"struct DictPolicy{S,A} <: Policy\n actions::Dict{S,A}\nend\n\nPOMDPs.action(p::DictPolicy, s) = p.actions[s]","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"note: Note\nA POMDPTools.VectorPolicy could be used here. We include this example to show how to define a custom policy.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"The solve function calculates the best greedy action for each state and saves it in a policy. To have the widest possible compatibility with POMDP models, we want to use reward(m, s, a, sp) instead of reward(m, s, a), which means we need to calculate the expectation of the reward over transitions to every possible next state.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"function POMDPs.solve(::GreedyOfflineSolver, m::MDP)\n\n best_actions = Dict{statetype(m), actiontype(m)}()\n\n for s in states(m)\n if !isterminal(m, s)\n best = -Inf\n for a in actions(m)\n td = transition(m, s, a)\n r = 0.0\n for sp in support(td)\n r += pdf(td, sp) * reward(m, s, a, sp)\n end\n if r >= best\n best_actions[s] = a\n best = r\n end\n end\n end\n end\n \n return DictPolicy(best_actions)\nend","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"note: Note\nWe limited this implementation to using basic POMDPs.jl implementation functions, but tools such as POMDPTools.StateActionReward, POMDPTools.ordered_states, and POMDPTools.weighted_iterator could have been used for a more concise and efficient implementation.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"We can now verify whether the policy produces the greedy action on an example from POMDPModels:","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"using POMDPModels\n\ngw = SimpleGridWorld(size=(2,1), rewards=Dict(GWPos(2,1)=>1.0))\npolicy = solve(GreedyOfflineSolver(), gw)\n\naction(policy, GWPos(1,1))\n\n# output\n\n:right","category":"page"},{"location":"offline_solver/#POMDP-Case","page":"Example: Defining an offline solver","title":"POMDP Case","text":"","category":"section"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"For a POMDP, the greedy solution is the action that maximizes the expected immediate reward according to the belief. Since there are an infinite number of possible beliefs, the greedy solution for every belief cannot be calculated online. However, the greedy policy can take the form of an alpha vector policy where each action has an associated alpha vector with each entry corresponding to the immediate reward from taking the action in that state.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"Again, because a POMDP, may have reward(m, s, a, sp, o) instead of reward(m, s, a), we use the former and calculate the expectation over all next states and observations.","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"using POMDPTools: AlphaVectorPolicy\n\nfunction POMDPs.solve(::GreedyOfflineSolver, m::POMDP)\n\n alphas = Vector{Float64}[]\n\n for a in actions(m)\n alpha = zeros(length(states(m)))\n for s in states(m)\n if !isterminal(m, s)\n r = 0.0\n td = transition(m, s, a)\n for sp in support(td)\n tp = pdf(td, sp)\n od = observation(m, s, a, sp)\n for o in support(od)\n r += tp * pdf(od, o) * reward(m, s, a, sp, o)\n end\n end\n alpha[stateindex(m, s)] = r\n end\n end\n push!(alphas, alpha)\n end\n \n return AlphaVectorPolicy(m, alphas, collect(actions(m)))\nend","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"We can now verify that a policy created by the solver determines the correct greedy actions:","category":"page"},{"location":"offline_solver/","page":"Example: Defining an offline solver","title":"Example: Defining an offline solver","text":"using POMDPModels\nusing POMDPTools: Deterministic, Uniform\n\ntiger = TigerPOMDP()\npolicy = solve(GreedyOfflineSolver(), tiger)\n\n@assert action(policy, Deterministic(TIGER_LEFT)) == TIGER_OPEN_RIGHT\n@assert action(policy, Deterministic(TIGER_RIGHT)) == TIGER_OPEN_LEFT\n@assert action(policy, Uniform(states(tiger))) == TIGER_LISTEN","category":"page"},{"location":"def_solver/#Solvers","page":"Solvers","title":"Solvers","text":"","category":"section"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"Defining a solver involves creating or using four pieces of code:","category":"page"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"A subtype of Solver that holds the parameters and configuration options for the solver.\nA subtype of Policy that holds all of the data needed to choose actions online.\nA method of solve that takes the Solver and a (PO)MDP as arguments, performs all of the offline computations for solving the problem, and returns the policy.\nA method of action that takes in the policy and a state or belief and returns an action.","category":"page"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"In many cases, items 2 and 4 can be satisfied with an off-the-shelf Policy from the POMDPTools package. also contains many tools that are useful for defining solvers in a robust, concise, and readable manner.","category":"page"},{"location":"def_solver/#Online-and-Offline-Solvers","page":"Solvers","title":"Online and Offline Solvers","text":"","category":"section"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"Generally, solvers can be grouped into two categories: Offline solvers that do most of their computational work before interacting with the environment, and online solvers that do their work online as each new state or observation is encountered. Although offline and online solvers both use the exact same Solver, solve, Policy, action structure, the work of defining online and offline solvers is focused on different portions.","category":"page"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"For an offline solver, most of the implementation effort will be spent on the [solve] function, and an off-the-shelf policy from POMDPTools will typically be used.","category":"page"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"For an online solver, the solve function typically does little or no work, but merely creates a Policy object that will carry out computation online. It is typical in POMDPs.jl to use the term \"Planner\" to name a Policy object for an online solver that carries out a large amount of computation (\"planning\") at interaction time. In this case most of the effort will be focused on implementing the action method for the \"Planner\" Policy type.","category":"page"},{"location":"def_solver/#Examples","page":"Solvers","title":"Examples","text":"","category":"section"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"Solver implementation is most clearly explained through examples. The following sections contain examples of both online and offline solver definitions:","category":"page"},{"location":"def_solver/","page":"Solvers","title":"Solvers","text":"Pages = [\"offline_solver.md\", \"online_solver.md\"]","category":"page"},{"location":"online_solver/#Example:-Defining-an-online-solver","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"","category":"section"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"In this example, we will define a simple online solver that works for both POMDPs and MDPs. In order to focus on the code structure, we will not create an algorithm that finds an optimal policy, but rather a greedy policy, that is, one that optimizes the expected immediate reward. For information on using this solver in a simulation, see Running Simulations.","category":"page"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"In order to handle the widest range of problems, we will use @gen to generate Mone Carlo samples to estimate the reward even if only a simulator is available. We begin by creating the necessary types and the solve function. The only solver parameter is the number of samples used to estimate the reward at each step, and the solve function does nothing more than create a planner with the appropriate (PO)MDP problem definition.","category":"page"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"using POMDPs\n\nstruct MonteCarloGreedySolver <: Solver\n num_samples::Int\nend\n\nstruct MonteCarloGreedyPlanner{M} <: Policy\n m::M\n num_samples::Int\nend\n\nPOMDPs.solve(sol::MonteCarloGreedySolver, m) = MonteCarloGreedyPlanner(m, sol.num_samples)","category":"page"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"Next, we define the action function where the online work takes place.","category":"page"},{"location":"online_solver/#MDP-Case","page":"Example: Defining an online solver","title":"MDP Case","text":"","category":"section"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"function POMDPs.action(p::MonteCarloGreedyPlanner{<:MDP}, s)\n best_reward = -Inf\n local best_action\n for a in actions(p.m)\n reward_sum = sum(@gen(:r)(p.m, s, a) for _ in 1:p.num_samples)\n if reward_sum >= best_reward\n best_reward = reward_sum\n best_action = a\n end\n end\n return best_action\nend","category":"page"},{"location":"online_solver/#POMDP-Case","page":"Example: Defining an online solver","title":"POMDP Case","text":"","category":"section"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"function POMDPs.action(p::MonteCarloGreedyPlanner{<:POMDP}, b)\n best_reward = -Inf\n local best_action\n for a in actions(p.m)\n s = rand(b)\n reward_sum = sum(@gen(:r)(p.m, s, a) for _ in 1:p.num_samples)\n if reward_sum >= best_reward\n best_reward = reward_sum\n best_action = a\n end\n end\n return best_action\nend\n\n# output\n","category":"page"},{"location":"online_solver/#Verification","page":"Example: Defining an online solver","title":"Verification","text":"","category":"section"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"We can now verify that the online planner works in some simple cases:","category":"page"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"using POMDPModels\n\ngw = SimpleGridWorld(size=(2,1), rewards=Dict(GWPos(2,1)=>1.0))\nsolver = MonteCarloGreedySolver(1000)\nplanner = solve(solver, gw)\n\naction(planner, GWPos(1,1))\n\n# output\n\n:right","category":"page"},{"location":"online_solver/","page":"Example: Defining an online solver","title":"Example: Defining an online solver","text":"using POMDPModels\nusing POMDPTools: Deterministic, Uniform\n\ntiger = TigerPOMDP()\nsolver = MonteCarloGreedySolver(1000)\n\nplanner = solve(solver, tiger)\n\n@assert action(planner, Deterministic(TIGER_LEFT)) == TIGER_OPEN_RIGHT\n@assert action(planner, Deterministic(TIGER_RIGHT)) == TIGER_OPEN_LEFT\n# note action(planner, Uniform(states(tiger))) is not very reliable with this number of samples","category":"page"},{"location":"get_started/#Getting-Started","page":"Getting Started","title":"Getting Started","text":"","category":"section"},{"location":"get_started/","page":"Getting Started","title":"Getting Started","text":"Before writing our own POMDP problems or solvers, let's try out some of the available solvers and problem models available in JuliaPOMDP.","category":"page"},{"location":"get_started/","page":"Getting Started","title":"Getting Started","text":"Here is a short piece of code that solves the Tiger POMDP using QMDP, and evaluates the results. Note that you must have the QMDP, POMDPModels, and POMDPToolbox modules installed.","category":"page"},{"location":"get_started/","page":"Getting Started","title":"Getting Started","text":"using POMDPs, QMDP, POMDPModels, POMDPTools\n\n# initialize problem and solver\npomdp = TigerPOMDP() # from POMDPModels\nsolver = QMDPSolver() # from QMDP\n\n# compute a policy\npolicy = solve(solver, pomdp)\n\n#evaluate the policy\nbelief_updater = updater(policy) # the default QMDP belief updater (discrete Bayesian filter)\ninit_dist = initialstate(pomdp) # from POMDPModels\nhr = HistoryRecorder(max_steps=100) # from POMDPTools\nhist = simulate(hr, pomdp, policy, belief_updater, init_dist) # run 100 step simulation\nprintln(\"reward: $(discounted_reward(hist))\")","category":"page"},{"location":"get_started/","page":"Getting Started","title":"Getting Started","text":"The first part of the code loads the desired packages and initializes the problem and the solver. Next, we compute a POMDP policy. Lastly, we evaluate the results.","category":"page"},{"location":"get_started/","page":"Getting Started","title":"Getting Started","text":"There are a few things to mention here. First, the TigerPOMDP type implements all the functions required by QMDPSolver to compute a policy. Second, each policy has a default updater (essentially a filter used to update the belief of the POMDP). To learn more about Updaters check out the Concepts and Architecture section.","category":"page"},{"location":"example_gridworld_mdp/#GridWorld-MDP-Tutorial","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"In this tutorial, we provide a simple example of how to define a Markov decision process (MDP) using the POMDPS.jl interface. We will then solve the MDP using value iteration and Monte Carlo tree search (MCTS). We will walk through constructing the MDP using the explicit interface which involves defining a new type for the MDP and then extending different components of the POMDPs.jl interface for that type.","category":"page"},{"location":"example_gridworld_mdp/#Dependencies","page":"GridWorld MDP Tutorial","title":"Dependencies","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We need a few modules in order to run this example. All of the models can be added by running the following command in the Julia REPL:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"using Pkg\n\nPkg.add(\"POMDPs\")\nPkg.add(\"POMDPTools\")\nPkg.add(\"DiscreteValueIteration\")\nPkg.add(\"MCTS\")","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"If you already had the models installed, it is prudent to update them to the latest version:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Pkg.update()","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Now that we have the models installed, we can load them into our workspace:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"using POMDPs\nusing POMDPTools\nusing DiscreteValueIteration\nusing MCTS","category":"page"},{"location":"example_gridworld_mdp/#Problem-Overview","page":"GridWorld MDP Tutorial","title":"Problem Overview","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"In Grid World, we are trying to control an agent who has trouble moving in the desired direction. In our problem, we have four reward states within the a grid. Each position on the grid represents a state, and the positive reward states are terminal (the agent stops receiving reward after reaching them and performing an action from that state). The agent has four actions to choose from: up, down, left, right. The agent moves in the desired direction with a probability of 07, and with a probability of 01 in each of the remaining three directions. If the agent bumps into the outside wall, there is a penalty of 1 (i.e. reward of -1). The problem has the following form:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"(Image: Grid World)","category":"page"},{"location":"example_gridworld_mdp/#Defining-the-Grid-World-MDP-Type","page":"GridWorld MDP Tutorial","title":"Defining the Grid World MDP Type","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"In POMDPs.jl, an MDP is defined by creating a subtype of the MDP abstract type. The types of the states and actions for the MDP are declared as parameters of the MDP type. For example, if our states and actions are both represented by integers, we can define our MDP type as follows:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"struct MyMDP <: MDP{Int64, Int64} # MDP{StateType, ActionType}\n # fields go here\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"In our grid world problem, we will represent the states using a custom type that designates the x and y coordinate within the grid. The actions will by represented by a symbol.","category":"page"},{"location":"example_gridworld_mdp/#GridWorldState","page":"GridWorld MDP Tutorial","title":"GridWorldState","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"There are numerous ways to represent the state of the agent in a grid world. We will use a custom type that designates the x and y coordinate within the grid. ","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"struct GridWorldState\n x::Int64\n y::Int64\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"To help us later, let's extend the == for our GridWorldStat:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function Base.:(==)(s1::GridWorldState, s2::GridWorldState)\n return s1.x == s2.x && s1.y == s2.y\nend","category":"page"},{"location":"example_gridworld_mdp/#GridWorld-Actions","page":"GridWorld MDP Tutorial","title":"GridWorld Actions","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Since our action is the direction the agent chooses to go (i.e. up, down, left, right), we can use a Symbol to represent it. Note that in this case, we are not defining a custom type for our action, instead we represent it directly with a symbol. Our actions will be :up, :down, :left, and :right.","category":"page"},{"location":"example_gridworld_mdp/#GridWorldMDP","page":"GridWorld MDP Tutorial","title":"GridWorldMDP","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Now that we have defined our types for states and actions, we can define our MDP type. We will call it GridWorldMDP and it will be a subtype of MDP{GridWorldState, Symbol}.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"struct GridWorldMDP <: MDP{GridWorldState, Symbol}\n size_x::Int64 # x size of the grid\n size_y::Int64 # y size of the grid\n reward_states_values::Dict{GridWorldState, Float64} # Dictionary mapping reward states to their values\n hit_wall_reward::Float64 # reward for hitting a wall\n tprob::Float64 # probability of transitioning to the desired state\n discount_factor::Float64 # discount factor\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We can define a constructor for our GridWorldMDP to make it easier to create instances of our MDP.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function GridWorldMDP(;\n size_x::Int64=10, \n size_y::Int64=10, \n reward_states_values::Dict{GridWorldState, Float64}=Dict(\n GridWorldState(4, 3) => -10.0, \n GridWorldState(4, 6) => -5.0, \n GridWorldState(9, 3) => 10.0,\n GridWorldState(8, 8) => 3.0),\n hit_wall_reward::Float64=-1.0,\n tprob::Float64=0.7, \n discount_factor::Float64=0.9)\n return GridWorldMDP(size_x, size_y, reward_states_values, hit_wall_reward, tprob, discount_factor)\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"To help us visualize our MDP, we can extend show for our GridWorldMDP type:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function Base.show(io::IO, mdp::GridWorldMDP)\n println(io, \"Grid World MDP\")\n println(io, \"\\tSize x: $(mdp.size_x)\")\n println(io, \"\\tSize y: $(mdp.size_y)\")\n println(io, \"\\tReward states:\")\n for (key, value) in mdp.reward_states_values\n println(io, \"\\t\\t$key => $value\")\n end\n println(io, \"\\tHit wall reward: $(mdp.hit_wall_reward)\")\n println(io, \"\\tTransition probability: $(mdp.tprob)\")\n println(io, \"\\tDiscount: $(mdp.discount_factor)\")\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Now lets create an instance of our GridWorldMDP:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"mdp = GridWorldMDP()\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"note: Note\nIn this definition of the problem, our coordinates start in the bottom left of the grid. That is GridState(1, 1) is the bottom left of the grid and GridState(10, 10) would be on the right of the grid with a grid size of 10 by 10.","category":"page"},{"location":"example_gridworld_mdp/#Grid-World-State-Space","page":"GridWorld MDP Tutorial","title":"Grid World State Space","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"The state space in an MDP represents all the states in the problem. There are two primary functionalities that we want our spaces to support. We want to be able to iterate over the state space (for Value Iteration for example), and sometimes we want to be able to sample form the state space (used in some POMDP solvers). In this notebook, we will only look at iterable state spaces.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Since we can iterate over elements of an array, and our problem is small, we can store all of our states in an array. We also have a terminal state based on the definition of our problem. We can represent that as a location outside of the grid (i.e. (-1, -1)).","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function POMDPs.states(mdp::GridWorldMDP)\n states_array = GridWorldState[]\n for x in 1:mdp.size_x\n for y in 1:mdp.size_y\n push!(states_array, GridWorldState(x, y))\n end\n end\n push!(states_array, GridWorldState(-1, -1)) # Adding the terminal state\n return states_array\nend","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Let's view some of the states in our state space:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show states(mdp)[1:5]\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We also need a other functions related to the state space. ","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# Check if a state is the terminal state\nPOMDPs.isterminal(mdp::GridWorldMDP, s::GridWorldState) = s == GridWorldState(-1, -1)\n\n# Define the initial state distribution (always start in the bottom left)\nPOMDPs.initialstate(mdp::GridWorldMDP) = Deterministic(GridWorldState(1, 1))\n\n# Function that returns the index of a state in the state space\nfunction POMDPs.stateindex(mdp::GridWorldMDP, s::GridWorldState)\n if isterminal(mdp, s)\n return length(states(mdp))\n end\n \n @assert 1 <= s.x <= mdp.size_x \"Invalid state\"\n @assert 1 <= s.y <= mdp.size_y \"Invalid state\"\n \n si = (s.x - 1) * mdp.size_y + s.y\n return si\nend\n","category":"page"},{"location":"example_gridworld_mdp/#Large-State-Spaces","page":"GridWorld MDP Tutorial","title":"Large State Spaces","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"If your problem is very large we probably do not want to store all of our states in an array. We can create an iterator using indexing functions to help us out. One way of doing this is to define a function that returns a state from an index and then construct an iterator. This is an example of how we can do that for the Grid World problem. ","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"note: Note\nIf you run this section, you will redefine the states(::GridWorldMDP) that we just defined in the previous section.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":" \n # Define the length of the state space, number of grid locations plus the terminal state\n Base.length(mdp::GridWorldMDP) = mdp.size_x * mdp.size_y + 1\n \n # `states` now returns the mdp, which we will construct our iterator from\n POMDPs.states(mdp::GridWorldMDP) = mdp\n \n function Base.getindex(mdp::GridWorldMDP, si::Int) # Enables mdp[si]\n @assert si <= length(mdp) \"Index out of bounds\"\n @assert si > 0 \"Index out of bounds\"\n \n # First check if we are in the terminal state (which we define as the last state)\n if si == length(mdp)\n return GridWorldState(-1, -1)\n end\n \n # Otherwise, we need to calculate the x and y coordinates\n y = (si - 1) % mdp.size_y + 1\n x = div((si - 1), mdp.size_y) + 1\n return GridWorldState(x, y)\n end\n \n function Base.getindex(mdp::GridWorldMDP, si_range::UnitRange{Int}) # Enables mdp[1:5]\n return [getindex(mdp, si) for si in si_range]\n end\n\n Base.firstindex(mdp::GridWorldMDP) = 1 # Enables mdp[begin]\n Base.lastindex(mdp::GridWorldMDP) = length(mdp) # Enables mdp[end]\n\n # We can now construct an iterator\n function Base.iterate(mdp::GridWorldMDP, ii::Int=1)\n if ii > length(mdp)\n return nothing\n end\n s = getindex(mdp, ii)\n return (s, ii + 1)\n end\n \n ","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Similar to above, let's iterate over a few of the states in our state space:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show states(mdp)[1:5]\n@show mdp[begin]\n@show mdp[end]\n","category":"page"},{"location":"example_gridworld_mdp/#Grid-World-Action-Space","page":"GridWorld MDP Tutorial","title":"Grid World Action Space","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"The action space is the set of all actions available to the agent. In the grid world problem the action space consists of up, down, left, and right. We can define the action space by implementing a new method of the actions function.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"POMDPs.actions(mdp::GridWorldMDP) = [:up, :down, :left, :right]","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Similar to the state space, we need a function that returns an index given an action.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function POMDPs.actionindex(mdp::GridWorldMDP, a::Symbol)\n @assert in(a, actions(mdp)) \"Invalid action\"\n return findfirst(x -> x == a, actions(mdp))\nend\n","category":"page"},{"location":"example_gridworld_mdp/#Grid-World-Transition-Function","page":"GridWorld MDP Tutorial","title":"Grid World Transition Function","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"MDPs often define the transition function as T(s^prime mid s a), which is the probability of transitioning to state s^prime given that we are in state s and take action a. For the POMDPs.jl interface, we define the transition function as a distribution over the next states. That is, we want T(cdot mid s a) which is a function that takes in a state and an action and returns a distribution over the next states.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"For our grid world example, there are only a few states to which the agent can transition and thus only a few states with nonzero probability in T(cdot mid s a). We can use the SparseCat distribution to represent this. The SparseCat distribution is a categorical distribution that only stores the nonzero probabilities. We can define our transition function as follows:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function POMDPs.transition(mdp::GridWorldMDP, s::GridWorldState, a::Symbol)\n # If we are in the terminal state, we stay in the terminal state\n if isterminal(mdp, s)\n return SparseCat([s], [1.0])\n end\n\n # If we are in a positive reward state, we transition to the terminal state\n if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] > 0\n return SparseCat([GridWorldState(-1, -1)], [1.0])\n end\n\n # Probability of going in a direction other than the desired direction\n tprob_other = (1 - mdp.tprob) / 3\n \n new_state_up = GridWorldState(s.x, min(s.y + 1, mdp.size_y))\n new_state_down = GridWorldState(s.x, max(s.y - 1, 1))\n new_state_left = GridWorldState(max(s.x - 1, 1), s.y)\n new_state_right = GridWorldState(min(s.x + 1, mdp.size_x), s.y)\n \n new_state_vector = [new_state_up, new_state_down, new_state_left, new_state_right]\n t_prob_vector = fill(tprob_other, 4)\n \n if a == :up\n t_prob_vector[1] = mdp.tprob\n elseif a == :down\n t_prob_vector[2] = mdp.tprob\n elseif a == :left\n t_prob_vector[3] = mdp.tprob\n elseif a == :right\n t_prob_vector[4] = mdp.tprob\n else\n error(\"Invalid action\")\n end\n \n # Combine probabilities for states that are the same\n for i in 1:4\n for j in (i + 1):4\n if new_state_vector[i] == new_state_vector[j]\n t_prob_vector[i] += t_prob_vector[j]\n t_prob_vector[j] = 0.0\n end\n end\n end\n \n # Remove states with zero probability\n new_state_vector = new_state_vector[t_prob_vector .> 0]\n t_prob_vector = t_prob_vector[t_prob_vector .> 0]\n \n return SparseCat(new_state_vector, t_prob_vector)\nend\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Let's examline a few transitions:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show transition(mdp, GridWorldState(1, 1), :up)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show transition(mdp, GridWorldState(1, 1), :left)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show transition(mdp, GridWorldState(9, 3), :right)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show transition(mdp, GridWorldState(-1, -1), :down)\n","category":"page"},{"location":"example_gridworld_mdp/#Grid-World-Reward-Function","page":"GridWorld MDP Tutorial","title":"Grid World Reward Function","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"In our problem, we have a reward function that depends on the next state as well (i.e. if we hit a wall, we stay in the same state and get a reward of -1). We can still construct a reward function that only depends on the current state and action by using expectation over the next state. That is, we can define our reward function as R(s a) = mathbbE_s^prime sim T(cdot mid s a)R(s a s^prime).","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# First, let's define the reward function given the state, action, and next state\nfunction POMDPs.reward(mdp::GridWorldMDP, s::GridWorldState, a::Symbol, sp::GridWorldState)\n # If we are in the terminal state, we get a reward of 0\n if isterminal(mdp, s)\n return 0.0\n end\n \n # If we are in a positive reward state, we get the reward of that state\n # For a positive reward, we transition to the terminal state, so we don't have\n # to worry about the next state (i.g. hitting a wall)\n if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] > 0\n return mdp.reward_states_values[s]\n end\n \n # If we are in a negative reward state, we get the reward of that state\n # If the negative reward state is on the edge of the grid, we can also be in this state\n # and hit a wall, so we need to check for that\n r = 0.0\n if s in keys(mdp.reward_states_values) && mdp.reward_states_values[s] < 0\n r += mdp.reward_states_values[s]\n end\n \n # If we hit a wall, we get a reward of -1\n if s == sp\n r += mdp.hit_wall_reward\n end\n \n return r\nend\n\n# Now we can define the reward function given the state and action\nfunction POMDPs.reward(mdp::GridWorldMDP, s::GridWorldState, a::Symbol)\n r = 0.0\n for (sp, p) in transition(mdp, s, a)\n r += p * reward(mdp, s, a, sp)\n end \n return r\nend\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Let's examine a few rewards:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show reward(mdp, GridWorldState(1, 1), :up)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show reward(mdp, GridWorldState(1, 1), :left)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show reward(mdp, GridWorldState(9, 3), :right)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show reward(mdp, GridWorldState(-1, -1), :down)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show reward(mdp, GridWorldState(2, 3), :up)\n","category":"page"},{"location":"example_gridworld_mdp/#Grid-World-Remaining-Functions","page":"GridWorld MDP Tutorial","title":"Grid World Remaining Functions","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We are almost done! We still need to define discount. Let's first use POMDPLinter to check if we have defined all the functions we need for DiscreteValueIteration:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"using POMDPLinter\n\n@show_requirements POMDPs.solve(ValueIterationSolver(), mdp)\nnothing # hide","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"As we expected, we need to define discount.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"function POMDPs.discount(mdp::GridWorldMDP)\n return mdp.discount_factor\nend\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Let's check again:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"@show_requirements POMDPs.solve(ValueIterationSolver(), mdp)\nnothing # hide","category":"page"},{"location":"example_gridworld_mdp/#Solving-the-Grid-World-MDP-(Value-Iteration)","page":"GridWorld MDP Tutorial","title":"Solving the Grid World MDP (Value Iteration)","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Now that we have defined our MDP, we can solve it using Value Iteration. We will use the ValueIterationSolver from the DiscreteValueIteration package. First, we construct the a Solver type which contains the solver parameters. Then we call POMDPs.solve to solve the MDP and return a policy.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# Initialize the problem (we have already done this, but just calling it again for completeness in the example)\nmdp = GridWorldMDP()\n\n# Initialize the solver with desired parameters\nsolver = ValueIterationSolver(; max_iterations=100, belres=1e-3, verbose=true)\n\n# Solve for an optimal policy\nvi_policy = POMDPs.solve(solver, mdp)\nnothing # hide\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We can now use the policy to compute the optimal action for a given state:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"s = GridWorldState(9, 2)\n@show action(vi_policy, s)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"s = GridWorldState(8, 3)\n@show action(vi_policy, s)\n","category":"page"},{"location":"example_gridworld_mdp/#Solving-the-Grid-World-MDP-(MCTS)","page":"GridWorld MDP Tutorial","title":"Solving the Grid World MDP (MCTS)","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Similar to the process with Value Iteration, we can solve the MDP using MCTS. We will use the MCTSSolver from the MCTS package.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# Initialize the problem (we have already done this, but just calling it again for completeness in the example)\nmdp = GridWorldMDP()\n\n# Initialize the solver with desired parameters \nsolver = MCTSSolver(n_iterations=1000, depth=20, exploration_constant=10.0)\n\n# Now we construct a planner by calling POMDPs.solve. For online planners, the computation for the\n# optimal action occurs in the call to `action`.\nmcts_planner = POMDPs.solve(solver, mdp)\nnothing # hide\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Similar to the value iteration policy, we can use the policy to compute the action for a given state:","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"s = GridWorldState(9, 2)\n@show action(mcts_planner, s)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"s = GridWorldState(8, 3)\n@show action(mcts_planner, s)\n","category":"page"},{"location":"example_gridworld_mdp/#Visualizing-the-Value-Iteration-Policy","page":"GridWorld MDP Tutorial","title":"Visualizing the Value Iteration Policy","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We can visualize the value iteration policy by plotting the value function and the policy. We can use numerous plotting packages to do this, but we will use UnicodePlots for this example.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"using UnicodePlots\nusing Printf","category":"page"},{"location":"example_gridworld_mdp/#Value-Function-as-a-Heatmap","page":"GridWorld MDP Tutorial","title":"Value Function as a Heatmap","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"We can plot the value function as a heatmap. The value function is a function over the state space, so we need to iterate over the state space and store the value at each state. We can use the value function to evaluate the value function at a given state.","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# Initialize the value function array\nvalue_function = zeros(mdp.size_y, mdp.size_x)\n\n# Iterate over the state space and store the value at each state\nfor s in states(mdp)\n if isterminal(mdp, s)\n continue\n end\n value_function[s.y, s.x] = value(vi_policy, s)\nend\n\n# Plot the value function\nheatmap(value_function; \n title=\"GridWorld VI Value Function\",\n xlabel=\"x position\",\n ylabel=\"y position\",\n colormap=:inferno\n)\n","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"note: Note\nRendering of unicode plots in the documentation is not optimal. For a better image, run this locally in a REPL.","category":"page"},{"location":"example_gridworld_mdp/#Visualizing-the-Value-Iteration-Policy-2","page":"GridWorld MDP Tutorial","title":"Visualizing the Value Iteration Policy","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"One way to visualize the policy is to plot the action that the policy takes at each state. ","category":"page"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"# Initialize the policy array\npolicy_array = fill(:up, mdp.size_x, mdp.size_y)\n\n# Iterate over the state space and store the action at each state\nfor s in states(mdp)\n if isterminal(mdp, s)\n continue\n end\n policy_array[s.x, s.y] = action(vi_policy, s)\nend\n\n# Let's define a mapping from symbols to unicode arrows\narrow_map = Dict(\n :up => \" ↑ \",\n :down => \" ↓ \",\n :left => \" ← \",\n :right => \" → \"\n)\n\n# Plot the policy to the terminal, with the origin in the bottom left\n@printf(\" GridWorld VI Policy \\n\")\nfor y in mdp.size_y+1:-1:0\n if y == mdp.size_y+1 || y == 0\n for xi in 0:10\n if xi == 0\n print(\" \")\n elseif y == mdp.size_y+1\n print(\"___\")\n else\n print(\"---\")\n end\n end\n else\n for x in 0:mdp.size_x+1\n if x == 0\n @printf(\"%2d |\", y)\n elseif x == mdp.size_x + 1\n print(\"|\")\n else\n print(arrow_map[policy_array[x, y]])\n end\n end\n end\n println()\n if y == 0\n for xi in 0:10\n if xi == 0\n print(\" \")\n else\n print(\" $xi \")\n end\n end\n end\nend","category":"page"},{"location":"example_gridworld_mdp/#Seeing-a-Policy-In-Action","page":"GridWorld MDP Tutorial","title":"Seeing a Policy In Action","text":"","category":"section"},{"location":"example_gridworld_mdp/","page":"GridWorld MDP Tutorial","title":"GridWorld MDP Tutorial","text":"Another useful tool is to view the policy in action by creating a gif of a simulation. To accomplish this, we could use POMDPGifs. To use POMDPGifs, we need to extend the POMDPTools.render function to GridWorldMDP. Please reference Gallery of POMDPs.jl Problems for examples of this process.","category":"page"},{"location":"example_solvers/#Using-Different-Solvers","page":"Using Different Solvers","title":"Using Different Solvers","text":"","category":"section"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"There are various solvers implemented for use out-of-the-box. Please reference the repository README for a list of MDP Solvers and POMDP Solvers implemented and maintained by the JuliaPOMDP community. We provide a few examples of how to use a small subset of these solvers.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"include(\"examples/crying_baby_examples.jl\")","category":"page"},{"location":"example_solvers/#Checking-Requirements","page":"Using Different Solvers","title":"Checking Requirements","text":"","category":"section"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"Before using a solver, it is prudent to ensure the problem meets the requirements of the solver. Please reference the solver documentation for detailed information about the requirements of each solver. ","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"We can use POMDPLInter to help us determine if we have all of the required components defined for a particular solver. However, not all solvers have the requirements implemented. If/when you encounter a solver that does not have the requirements implemented, please open an issue on the solver's repository.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"Let's check if we have all of the required components of our problems for the QMDP solver.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"using POMDPLinter\nusing QMDP\n\nqmdp_solver = QMDPSolver()\n\nprintln(\"Quick Crying Baby POMDP\")\n@show_requirements POMDPs.solve(qmdp_solver, quick_crying_baby_pomdp)\n\nprintln(\"\\nExplicit Crying Baby POMDP\")\n@show_requirements POMDPs.solve(qmdp_solver, explicit_crying_baby_pomdp)\n\nprintln(\"\\nTabular Crying Baby POMDP\")\n@show_requirements POMDPs.solve(qmdp_solver, tabular_crying_baby_pomdp)\n\nprintln(\"\\nGen Crying Baby POMDP\")\n# We don't have an actions(::GenGryingBabyPOMDP) implemented\ntry\n @show_requirements POMDPs.solve(qmdp_solver, gen_crying_baby_pomdp)\ncatch err_msg\n println(err_msg)\nend","category":"page"},{"location":"example_solvers/#Offline-(SARSOP)","page":"Using Different Solvers","title":"Offline (SARSOP)","text":"","category":"section"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"In this example, we will use the NativeSARSOP solver. The process for generating offline polices is similar for all offline solvers. First, we define the solver with the desired parameters. Then, we call POMDPs.solve with the solver and the problem. We can query the policy using the action function.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"using NativeSARSOP\n\n# Define the solver with the desired parameters\nsarsop_solver = SARSOPSolver(; max_time=10.0)\n\n# Solve the problem by calling POMDPs.solve. SARSOP will compute the policy and return an `AlphaVectorPolicy`\nsarsop_policy = POMDPs.solve(sarsop_solver, quick_crying_baby_pomdp)\n\n# We can query the policy using the `action` function\nb = initialstate(quick_crying_baby_pomdp)\na = action(sarsop_policy, b)\n\n@show a\n","category":"page"},{"location":"example_solvers/#Online-(POMCP)","page":"Using Different Solvers","title":"Online (POMCP)","text":"","category":"section"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"For the online solver, we will use Particle Monte Carlo Planning (POMCP). For online solvers, we first define the solver similar to offline solvers. However, when we call POMDPs.solve, we are returned an online planner. Similar to the offline solver, we can query the policy using the action function and that is when the online solver will compute the action.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"using BasicPOMCP\n\npomcp_solver = POMCPSolver(; c=5.0, tree_queries=1000, rng=MersenneTwister(1))\npomcp_planner = POMDPs.solve(pomcp_solver, quick_crying_baby_pomdp)\n\nb = initialstate(quick_crying_baby_pomdp)\na = action(pomcp_planner, b)\n\n@show a\n","category":"page"},{"location":"example_solvers/#Heuristic-Policy","page":"Using Different Solvers","title":"Heuristic Policy","text":"","category":"section"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"While we often want to use a solver to compute a policy, sometimes we might want to use a heuristic policy. For example, we may want to use a heuristic policy during our rollout for online solvers or to use as a baseline. In this example, we will define a simple heuristic policy that feeds the baby if our belief of the baby being hungry is greater than 50%, otherwise we will randomly ignore or sing to the baby.","category":"page"},{"location":"example_solvers/","page":"Using Different Solvers","title":"Using Different Solvers","text":"struct HeuristicFeedPolicy{P<:POMDP} <: Policy\n pomdp::P\nend\n\n# We need to implement the action function for our policy\nfunction POMDPs.action(policy::HeuristicFeedPolicy, b)\n if pdf(b, :hungry) > 0.5\n return :feed\n else\n return rand([:ignore, :sing])\n end\nend\n\n# Let's also define the default updater for our policy\nfunction POMDPs.updater(policy::HeuristicFeedPolicy)\n return DiscreteUpdater(policy.pomdp)\nend\n\nheuristic_policy = HeuristicFeedPolicy(quick_crying_baby_pomdp)\n\n# Let's query the policy a few times\nb = SparseCat([:sated, :hungry], [0.1, 0.9])\na1 = action(heuristic_policy, b)\n\nb = SparseCat([:sated, :hungry], [0.9, 0.1])\na2 = action(heuristic_policy, b)\n\n@show [a1, a2]\n","category":"page"},{"location":"examples/#examples_section","page":"Examples","title":"Examples","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"This section contains examples of how to use POMDPs.jl. For specific informaiton about the interface and functions used in the examples, please reference the correpsonding area in the documenation or the API Documentation.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"The examples are organized by topic. The exmaples are designed to build through each step. First, we have to define a POMDP. Then we need to solve the POMDP to get a policy. Finally, we can simulate the policy to see how it performs. The examples are designed to be exeucted in order. For example, the examples in Simulations Examples assume that the POMDPs defined in the Defining a POMDP section have been defined and we have a policy we would like to simulate that we computed in the Using Different Solvers section.","category":"page"},{"location":"examples/","page":"Examples","title":"Examples","text":"The GridWorld MDP Tutorial section is a standalone example that does not require any of the other examples.","category":"page"},{"location":"examples/#Outline","page":"Examples","title":"Outline","text":"","category":"section"},{"location":"examples/","page":"Examples","title":"Examples","text":"Pages = [\"example_defining_problems.md\", \"example_solvers.md\", \"example_simulations.md\", \"example_gridworld_mdp.md\"]","category":"page"},{"location":"POMDPTools/distributions/#Implemented-Distributions","page":"Implemented Distributions","title":"Implemented Distributions","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"POMDPTools contains several utility distributions to be used in the POMDPs transition and observation functions. These implement the appropriate methods of the functions in the distributions interface.","category":"page"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"This package also supplies showdistribution for pretty printing distributions as unicode bar graphs to the terminal.","category":"page"},{"location":"POMDPTools/distributions/#Sparse-Categorical-(SparseCat)","page":"Implemented Distributions","title":"Sparse Categorical (SparseCat)","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"SparseCat is a sparse categorical distribution which is specified by simply providing a list of possible values (states or observations) and the probabilities corresponding to those particular objects.","category":"page"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"Example: SparseCat([1,2,3], [0.1,0.2,0.7]) is a categorical distribution that assigns probability 0.1 to 1, 0.2 to 2, 0.7 to 3, and 0 to all other values.","category":"page"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"SparseCat","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.SparseCat","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.SparseCat","text":"SparseCat(values, probabilities)\n\nCreate a sparse categorical distribution.\n\nvalues is an iterable object containing the possible values (can be of any type) in the distribution that have nonzero probability. probabilities is an iterable object that contains the associated probabilities.\n\nThis is optimized for value iteration with a fast implementation of weighted_iterator. Both pdf and rand are order n.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#Implicit","page":"Implemented Distributions","title":"Implicit","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"In situations where a distribution object is required, but the pdf is difficult to specify and only samples are required, ImplicitDistribution provides a convenient way to package a sampling function.","category":"page"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"ImplicitDistribution","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.ImplicitDistribution","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.ImplicitDistribution","text":"ImplicitDistribution(sample_function, args...)\n\nDefine a distribution that can only be sampled from using rand, but has no explicit pdf.\n\nEach time rand(rng, d::ImplicitDistribution) is called,\n\nsample_function(args..., rng)\n\nwill be called to generate a new sample.\n\nImplicitDistribution is designed to be used with anonymous functions or the do syntax as follows:\n\nExamples\n\nImplicitDistribution(rng->rand(rng)^2)\n\nstruct MyMDP <: MDP{Float64, Int} end\n\nfunction POMDPs.transition(m::MyMDP, s, a)\n ImplicitDistribution(s, a) do s, a, rng\n return s + a + 0.001*randn(rng)\n end\nend\n\ntd = transition(MyMDP(), 1.0, 1)\nrand(td) # will return a number near 2\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#Bool-Distribution","page":"Implemented Distributions","title":"Bool Distribution","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"BoolDistribution","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.BoolDistribution","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.BoolDistribution","text":"BoolDistribution(p_true)\n\nCreate a distribution over Boolean values (true or false).\n\np_true is the probability of the true outcome; the probability of false is 1-p_true.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#Deterministic","page":"Implemented Distributions","title":"Deterministic","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"Deterministic","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.Deterministic","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.Deterministic","text":"Deterministic(value)\n\nCreate a deterministic distribution over only one value.\n\nThis is intended to be used when a distribution is required, but the outcome is deterministic. It is equivalent to a Kronecker Delta distribution.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#Uniform","page":"Implemented Distributions","title":"Uniform","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"Uniform\nUnsafeUniform","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.Uniform","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.Uniform","text":"Uniform(collection)\n\nCreate a uniform categorical distribution over a collection of objects.\n\nThe objects in the collection must be unique (this is tested on construction), and will be stored in a Set. To avoid this overhead, use UnsafeUniform.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.UnsafeUniform","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.UnsafeUniform","text":"UnsafeUniform(collection)\n\nCreate a uniform categorical distribution over a collection of objects.\n\nNo checks are performed to ensure uniqueness or check whether an object is actually in the set when evaluating the pdf.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/distributions/#Pretty-Printing","page":"Implemented Distributions","title":"Pretty Printing","text":"","category":"section"},{"location":"POMDPTools/distributions/","page":"Implemented Distributions","title":"Implemented Distributions","text":"showdistribution","category":"page"},{"location":"POMDPTools/distributions/#POMDPTools.POMDPDistributions.showdistribution","page":"Implemented Distributions","title":"POMDPTools.POMDPDistributions.showdistribution","text":"showdistribution([io], [mime], d)\n\nShow a UnicodePlots.barplot representation of a distribution.\n\nKeyword Arguments\n\ntitle::String=string(typeof(d))*\" distribution\": title for the barplot. \n\n\n\n\n\n","category":"function"},{"location":"POMDPTools/common_rl/#CommonRLInterface-Integration","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"POMDPTools provides two-way integration with the CommonRLInterface.jl package. Using the convert function, one can convert an MDP or POMDP object to a CommonRLInterface environment, or vice-versa.","category":"page"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"For example,","category":"page"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"using POMDPs\nusing POMDPTools\nusing POMDPModels\nusing CommonRLInterface\n\nenv = convert(AbstractEnv, BabyPOMDP())\n\nr = act!(env, true)\nobserve(env)","category":"page"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"converts a Crying Baby POMDP to an RL environment and acts in and observes the environment. This environment (or any other CommonRLInterface environment), can be converted to an MDP or POMDP:","category":"page"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"using BasicPOMCP\n\nm = convert(POMDP, env)\nplanner = solve(POMCPSolver(), m)\na = action(planner, initialstate(m))","category":"page"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"You can also use the constructors listed below to manually convert between the interfaces.","category":"page"},{"location":"POMDPTools/common_rl/#Environment-Wrapper-Types","page":"CommonRLInterface Integration","title":"Environment Wrapper Types","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"Since the standard reinforcement learning environment interface offers less information about the internal workings of the environment than the POMDPs.jl interface, MDPs and POMDPs created from these environments will have limited functionality. There are two types of (PO)MDP types that can wrap an environment:","category":"page"},{"location":"POMDPTools/common_rl/#Generative-model-wrappers","page":"CommonRLInterface Integration","title":"Generative model wrappers","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"If the state and setstate! CommonRLInterface functions are provided, then the environment can be wrapped in a RLEnvMDP or RLEnvPOMDP and the POMDPs.jl generative model interface will be available.","category":"page"},{"location":"POMDPTools/common_rl/#Opaque-wrappers","page":"CommonRLInterface Integration","title":"Opaque wrappers","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"If the state and setstate! are not provided, then the resulting POMDP or MDP can only be simulated. This case is represented using the OpaqueRLEnvPOMDP and OpaqueRLEnvMDP wrappers. From the POMDPs.jl perspective, the state of the opaque (PO)MDP is just an integer wrapped in an OpaqueRLEnvState. This keeps track of the \"age\" of the environment so that POMDPs.jl actions that attempt to interact with the environment at a different age are invalid.","category":"page"},{"location":"POMDPTools/common_rl/#Constructors","page":"CommonRLInterface Integration","title":"Constructors","text":"","category":"section"},{"location":"POMDPTools/common_rl/#Creating-RL-environments-from-MDPs-and-POMDPs","page":"CommonRLInterface Integration","title":"Creating RL environments from MDPs and POMDPs","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"MDPCommonRLEnv\nPOMDPCommonRLEnv","category":"page"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.MDPCommonRLEnv","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.MDPCommonRLEnv","text":"MDPCommonRLEnv(m, [s])\nMDPCommonRLEnv{RLO}(m, [s])\n\nCreate a CommonRLInterface environment from MDP m; optionally specify the state 's'.\n\nThe RLO parameter can be used to specify a type to convert the observation to. By default, this is AbstractArray. Use Any to disable conversion.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.POMDPCommonRLEnv","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.POMDPCommonRLEnv","text":"POMDPCommonRLEnv(m, [s], [o])\nPOMDPCommonRLEnv{RLO}(m, [s], [o])\n\nCreate a CommonRLInterface environment from POMDP m; optionally specify the state 's' and observation 'o'.\n\nThe RLO and RLS parameters can be used to specify types to convert the observation and state to. By default, this is AbstractArray. Use Any to disable conversion.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/common_rl/#Creating-MDPs-and-POMDPs-from-RL-environments","page":"CommonRLInterface Integration","title":"Creating MDPs and POMDPs from RL environments","text":"","category":"section"},{"location":"POMDPTools/common_rl/","page":"CommonRLInterface Integration","title":"CommonRLInterface Integration","text":"RLEnvMDP\nRLEnvPOMDP\nOpaqueRLEnvMDP\nOpaqueRLEnvPOMDP","category":"page"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.RLEnvMDP","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.RLEnvMDP","text":"RLEnvMDP(env; discount=1.0)\n\nCreate an MDP by wrapping a CommonRLInterface.AbstractEnv. state and setstate! from CommonRLInterface must be provided, and the POMDPs generative model functionality will be provided.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.RLEnvPOMDP","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.RLEnvPOMDP","text":"RLEnvPOMDP(env; discount=1.0)\n\nCreate an POMDP by wrapping a CommonRLInterface.AbstractEnv. state and setstate! from CommonRLInterface must be provided, and the POMDPs generative model functionality will be provided.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.OpaqueRLEnvMDP","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.OpaqueRLEnvMDP","text":"OpaqueRLEnvMDP(env; discount=1.0)\n\nWrap a CommonRLInterface.AbstractEnv in an MDP object. The state will be an OpaqueRLEnvState and only simulation will be supported.\n\n\n\n\n\n","category":"type"},{"location":"POMDPTools/common_rl/#POMDPTools.CommonRLIntegration.OpaqueRLEnvPOMDP","page":"CommonRLInterface Integration","title":"POMDPTools.CommonRLIntegration.OpaqueRLEnvPOMDP","text":"OpaqueRLEnvPOMDP(env; discount=1.0)\n\nWrap a CommonRLInterface.AbstractEnv in an POMDP object. The state will be an OpaqueRLEnvState and only simulation will be supported.\n\n\n\n\n\n","category":"type"},{"location":"#[POMDPs.jl](https://github.com/JuliaPOMDP/POMDPs.jl)","page":"POMDPs.jl","title":"POMDPs.jl","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"A Julia interface for defining, solving and simulating partially observable Markov decision processes and their fully observable counterparts.","category":"page"},{"location":"#Package-and-Ecosystem-Features","page":"POMDPs.jl","title":"Package and Ecosystem Features","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"General interface that can handle problems with discrete and continuous state/action/observation spaces\nA number of popular state-of-the-art solvers implemented for use out-of-the-box\nTools that make it easy to define problems and simulate solutions\nSimple integration of custom solvers into the existing interface","category":"page"},{"location":"#Available-Packages","page":"POMDPs.jl","title":"Available Packages","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"The POMDPs.jl package contains only the interface used for expressing and solving Markov decision processes (MDPs) and partially observable Markov decision processes (POMDPs). The POMDPTools package acts as a \"standard library\" for the POMDPs.jl interface, providing implementations of commonly-used components such as policies, belief updaters, distributions, and simulators. The list of solver and support packages maintained by the JuliaPOMDP community is available at the POMDPs.jl Readme.","category":"page"},{"location":"#Documentation-Outline","page":"POMDPs.jl","title":"Documentation Outline","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Documentation comes in three forms:","category":"page"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"An explanatory guide is available in the sections outlined below.\nHow-to examples are available throughout this documentation with specicic examples in Examples and Gallery of POMDPs.jl Problems.\nReference docstrings for the entire POMDPs.jl interface are available in the API Documentation section.","category":"page"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"note: Note\nWhen updating these documents, make sure this is synced with docs/make.jl!!","category":"page"},{"location":"#Basics","page":"POMDPs.jl","title":"Basics","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [\"install.md\", \"get_started.md\", \"concepts.md\"]","category":"page"},{"location":"#Defining-POMDP-Models","page":"POMDPs.jl","title":"Defining POMDP Models","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [ \"def_pomdp.md\", \"interfaces.md\"]\nDepth = 3","category":"page"},{"location":"#Writing-Solvers-and-Updaters","page":"POMDPs.jl","title":"Writing Solvers and Updaters","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [ \"def_solver.md\", \"offline_solver.md\", \"online_solver.md\", \"def_updater.md\" ]","category":"page"},{"location":"#Analyzing-Results","page":"POMDPs.jl","title":"Analyzing Results","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [ \"simulation.md\", \"run_simulation.md\", \"policy_interaction.md\" ]","category":"page"},{"location":"#Examples-and-Gallery","page":"POMDPs.jl","title":"Examples and Gallery","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [ \"examples.md\", \"example_defining_problems.md\", \"example_solvers.md\", \"example_simulations.md\", \"example_gridworld_mdp.md\", \"gallery.md\"]","category":"page"},{"location":"#POMDPTools-the-standard-library-for-POMDPs.jl","page":"POMDPs.jl","title":"POMDPTools - the standard library for POMDPs.jl","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [\"POMDPTools/index.md\", \"POMDPTools/distributions.md\", \"POMDPTools/model.md\", \"POMDPTools/visualization.md\", \"POMDPTools/beliefs.md\", \"POMDPTools/policies.md\", \"POMDPTools/simulators.md\", \"POMDPTools/common_rl.md\", \"POMDPTools/testing.md\"]","category":"page"},{"location":"#Reference","page":"POMDPs.jl","title":"Reference","text":"","category":"section"},{"location":"","page":"POMDPs.jl","title":"POMDPs.jl","text":"Pages = [\"faq.md\", \"api.md\"]","category":"page"}] +} diff --git a/previews/PR563/simulation/index.html b/previews/PR563/simulation/index.html new file mode 100644 index 00000000..6805379d --- /dev/null +++ b/previews/PR563/simulation/index.html @@ -0,0 +1,24 @@ + +Simulation Standard · POMDPs.jl

Simulation Standard

Important note: In most cases, users need not implement their own simulators. Several simulators that are compatible with the standard in this document are implemented in POMDPTools and allow interaction from a variety of perspectives. Moreover CommonRLInterface.jl provides an OpenAI Gym style environment interface to interact with environments that is more flexible in some cases.

In order to maintain consistency across the POMDPs.jl ecosystem, this page defines a standard for how simulations should be conducted. All simulators should be consistent with this page, and, if solvers are attempting to find an optimal POMDP policy, they should optimize the expected value of r_total below. In particular, this page should be consulted when questions about how less-obvious concepts like terminal states are handled.

POMDP Simulation

Inputs

In general, POMDP simulations take up to 5 inputs (see also the simulate docstring):

  • pomdp::POMDP: pomdp model object (see POMDPs and MDPs)
  • policy::Policy: policy (see Solvers and Policies)
  • up::Updater: belief updater (see Beliefs and Updaters)
  • b0: initial belief (this may be updater-specific, such as an observation if the updater just returns the previous observation)
  • s: initial state

The last three of these inputs are optional. If they are not explicitly provided, they should be inferred using the following POMDPs.jl functions:

Simulation Loop

The main simulation loop is shown below. Note that the isterminal check prevents any actions from being taken and reward from being collected from a terminal state.

Before the loop begins, initialize_belief is called to create the belief based on the initial state distribution - this is especially important when the belief is solver specific, such as the finite-state-machine used by MCVI.

b = initialize_belief(up, b0)
+
+r_total = 0.0
+d = 1.0
+while !isterminal(pomdp, s)
+    a = action(policy, b)
+    s, o, r = @gen(:sp,:o,:r)(pomdp, s, a)
+    r_total += d*r
+    d *= discount(pomdp)
+    b = update(up, b, a, o)
+end

In terms of the explicit interface, the @gen macro above expands to the equivalent of:

    sp = rand(transition(pomdp, s, a))
+    o = rand(observation(pomdp, s, a, sp))
+    r = reward(pomdp, s, a, sp, o)
+    s = sp

MDP Simulation

Inputs

In general, MDP simulations take up to 3 inputs (see also the simulate docstring):

The last of these inputs is optional. If the initial state is not explicitly provided, it should be generated using

Simulation Loop

The main simulation loop is shown below. Note again that the isterminal check prevents any actions from being taken and reward from being collected from a terminal state.

r_total = 0.0
+d = 1.0
+while !isterminal(mdp, s)
+    a = action(policy, s)
+    s, r = @gen(:sp,:r)(mdp, s, a)
+    r_total += d*r
+    d *= discount(mdp)
+end

In terms of the explicit interface, the @gen macro above expands to the equivalent of:

    sp = rand(transition(pomdp, s, a))
+    r = reward(pomdp, s, a, sp)
+    s = sp
diff --git a/previews/PR563/siteinfo.js b/previews/PR563/siteinfo.js new file mode 100644 index 00000000..af7f351b --- /dev/null +++ b/previews/PR563/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR563";

Gallery of POMDPs.jl Problems

A gallery of models written for POMDPs.jl with visualizations. To view these visualizations on your own machine, the code is provided below each visualization.

EscapeRoomba

Originally, an optional final project for AA228 at Stanford in Fall 2018. A Roomba equipped with a LIDAR or a bump sensor needs to try to find the safe exit (green) without accidentally falling down the stairs (red).

EscapeRoomba

using POMDPs
+using POMDPTools
+using POMDPGifs
+using BasicPOMCP
+using Random
+using ParticleFilters
+using Cairo
+using LinearAlgebra
+
+
+# If you don't have RoombaPOMDPs installed, uncomment the following two lines
+# using Pkg
+# Pkg.add(url="https://github.com/sisl/RoombaPOMDPs.git")
+using RoombaPOMDPs
+
+# Let's only consider discrete actions
+roomba_actions = [RoombaAct(2.0, 0.0), RoombaAct(2.0, 0.7), RoombaAct(2.0, -0.7)]
+
+pomdp = RoombaPOMDP(;
+    sensor=Bumper(),
+    mdp=RoombaMDP(;
+        config=2,
+        discount=0.99,
+        contact_pen=-0.1,
+        aspace=roomba_actions
+    )
+)
+
+# Define the belief updater
+num_particles = 20000
+v_noise_coefficient = 0.0
+om_noise_coefficient = 0.4
+resampler=LowVarianceResampler(num_particles)
+rng = MersenneTwister(1)
+belief_updater = RoombaParticleFilter(
+    pomdp, num_particles, v_noise_coefficient,
+    om_noise_coefficient,resampler, rng
+)
+
+# Custom update function for the particle filter
+function POMDPs.update(up::RoombaParticleFilter, b::ParticleCollection, a, o)
+    pm = up._particle_memory
+    wm = up._weight_memory
+    ps = []
+    empty!(pm)
+    empty!(wm)
+    all_terminal = true
+    for s in particles(b)
+        if !isterminal(up.model, s)
+            all_terminal = false
+            a_pert = RoombaAct(a.v + (up.v_noise_coeff * (rand(up.rng) - 0.5)), a.omega + (up.om_noise_coeff * (rand(up.rng) - 0.5)))
+            sp = @gen(:sp)(up.model, s, a_pert, up.rng)
+            weight_sp = pdf(observation(up.model, sp), o)
+            if weight_sp > 0.0
+                push!(ps, s)
+                push!(pm, sp)
+                push!(wm, weight_sp)
+            end
+        end
+    end
+
+    while length(pm) < up.n_init
+        a_pert = RoombaAct(a.v + (up.v_noise_coeff * (rand(up.rng) - 0.5)), a.omega + (up.om_noise_coeff * (rand(up.rng) - 0.5)))
+        s = isempty(ps) ? rand(up.rng, b) : rand(up.rng, ps)
+        sp = @gen(:sp)(up.model, s, a_pert, up.rng)
+        weight_sp = obs_weight(up.model, s, a_pert, sp, o)
+        if weight_sp > 0.0
+            push!(pm, sp)
+            push!(wm, weight_sp)
+        end
+    end
+
+    # if all particles are terminal, issue an error
+    if all_terminal
+        error("Particle filter update error: all states in the particle collection were terminal.")
+    end
+
+    # return ParticleFilters.ParticleCollection(deepcopy(pm))
+    return ParticleFilters.resample(up.resampler,
+                    WeightedParticleBelief(pm, wm, sum(wm), nothing),
+                    up.rng)
+end
+
+solver = POMCPSolver(;
+    tree_queries=20000,
+    max_depth=150,
+    c = 10.0,
+    rng=MersenneTwister(1)
+)
+
+planner = solve(solver, pomdp)
+
+sim = GifSimulator(;
+    filename="examples/EscapeRoomba.gif",
+    max_steps=100,
+    rng=MersenneTwister(3),
+    show_progress=false,
+    fps=5)
+saved_gif = simulate(sim, pomdp, planner, belief_updater)
+
+println("gif saved to: $(saved_gif.filename)")
gif saved to: examples/EscapeRoomba.gif

DroneSurveillance

Drone surveillance POMDP from M. Svoreňová, M. Chmelík, K. Leahy, H. F. Eniser, K. Chatterjee, I. Černá, C. Belta, "Temporal logic motion planning using POMDPs with parity objectives: case study paper", International Conference on Hybrid Systems: Computation and Control (HSCC), 2015.

In this problem, the UAV must go from one corner to the other while avoiding a ground agent. It can only detect the ground agent within its field of view (in blue).

DroneSurveillance

using POMDPs
+using POMDPTools
+using POMDPGifs
+using NativeSARSOP
+using Random
+using DroneSurveillance
+import Cairo, Fontconfig
+
+pomdp = DroneSurveillancePOMDP()
+solver = SARSOPSolver(; precision=0.1, max_time=10.0)
+policy = solve(solver, pomdp)
+
+sim = GifSimulator(; filename="examples/DroneSurveillance.gif", max_steps=30, rng=MersenneTwister(1), show_progress=false)
+saved_gif = simulate(sim, pomdp, policy)
+
+println("gif saved to: $(saved_gif.filename)")
gif saved to: examples/DroneSurveillance.gif

QuickMountainCar

An implementation of the classic Mountain Car RL problem using the QuickPOMDPs interface.

QuickMountainCar

using POMDPs
+using POMDPTools
+using POMDPGifs
+using Random
+using QuickPOMDPs
+using Compose
+import Cairo
+
+mountaincar = QuickMDP(
+    function (s, a, rng)
+        x, v = s
+        vp = clamp(v + a*0.001 + cos(3*x)*-0.0025, -0.07, 0.07)
+        xp = x + vp
+        if xp > 0.5
+            r = 100.0
+        else
+            r = -1.0
+        end
+        return (sp=(xp, vp), r=r)
+    end,
+    actions = [-1., 0., 1.],
+    initialstate = Deterministic((-0.5, 0.0)),
+    discount = 0.95,
+    isterminal = s -> s[1] > 0.5,
+
+    render = function (step)
+        cx = step.s[1]
+        cy = 0.45*sin(3*cx)+0.5
+        car = (context(), Compose.circle(cx, cy+0.035, 0.035), fill("blue"))
+        track = (context(), line([(x, 0.45*sin(3*x)+0.5) for x in -1.2:0.01:0.6]), Compose.stroke("black"))
+        goal = (context(), star(0.5, 1.0, -0.035, 5), fill("gold"), Compose.stroke("black"))
+        bg = (context(), Compose.rectangle(), fill("white"))
+        ctx = context(0.7, 0.05, 0.6, 0.9, mirror=Mirror(0, 0, 0.5))
+        return compose(context(), (ctx, car, track, goal), bg)
+    end
+)
+
+energize = FunctionPolicy(s->s[2] < 0.0 ? -1.0 : 1.0)
+sim = GifSimulator(; filename="examples/QuickMountainCar.gif", max_steps=200, fps=20, rng=MersenneTwister(1), show_progress=false)
+saved_gif = simulate(sim, mountaincar, energize)
+
+println("gif saved to: $(saved_gif.filename)")
gif saved to: examples/QuickMountainCar.gif

RockSample

The RockSample problem from T. Smith, R. Simmons, "Heuristic Search Value Iteration for POMDPs", Association for Uncertainty in Artificial Intelligence (UAI), 2004.

The robot must navigate and sample good rocks (green) and then arrive at an exit area. The robot can only sense the rocks with an imperfect sensor that has performance that depends on the distance to the rock.

RockSample

using POMDPs
+using POMDPTools
+using POMDPGifs
+using NativeSARSOP
+using Random
+using RockSample
+using Cairo
+
+pomdp = RockSamplePOMDP(rocks_positions=[(2,3), (4,4), (4,2)],
+                        sensor_efficiency=20.0,
+                        discount_factor=0.95,
+                        good_rock_reward = 20.0)
+
+solver = SARSOPSolver(precision=1e-3; max_time=10.0)
+policy = solve(solver, pomdp)
+
+sim = GifSimulator(; filename="examples/RockSample.gif", max_steps=30, rng=MersenneTwister(1), show_progress=false)
+saved_gif = simulate(sim, pomdp, policy)
+
+println("gif saved to: $(saved_gif.filename)")
gif saved to: examples/RockSample.gif

TagPOMDPProblem

The Tag problem from J. Pineau, G. Gordon, and S. Thrun, "Point-based value iteration: An anytime algorithm for POMDPs", International Joint Conference on Artificial Intelligence (IJCAI), 2003.

The orange agent is the pursuer and the red agent is the evader. The pursuer must "tag" the evader by being in the same grid cell as the evader. However, the pursuer can only see the evader if it is in the same grid cell as the evader. The evader moves stochastically "away" from the pursuer.

TagPOMDPProblem

using POMDPs
+using POMDPTools
+using POMDPGifs
+using NativeSARSOP
+using Random
+using TagPOMDPProblem
+
+pomdp = TagPOMDP()
+solver = SARSOPSolver(; max_time=20.0)
+policy = solve(solver, pomdp)
+sim = GifSimulator(; filename="examples/TagPOMDP.gif", max_steps=50, rng=MersenneTwister(1), show_progress=false)
+saved_gif = simulate(sim, pomdp, policy)
+
+println("gif saved to: $(saved_gif.filename)")
gif saved to: examples/TagPOMDP.gif

To add new examples, please submit a pull request to the POMDPs.jl repository with changes made to the gallery.md file in docs/src/. Please include the creation of a gif in the code snippet. The gif should be generated during the creation of the documentation using @eval and saved in the docs/src/examples/ directory. The gif should be named problem_name.gif where problem_name is the name of the problem. The gif can then be included using ![problem_name](examples/problem_name.gif).