diff --git a/previews/PR546/api/index.html b/previews/PR546/api/index.html new file mode 100644 index 000000000..6b2bb466c --- /dev/null +++ b/previews/PR546/api/index.html @@ -0,0 +1,124 @@ + +API · KernelFunctions.jl

API Library

Functions

The KernelFunctions API comprises the following four functions.

KernelFunctions.kernelmatrixFunction
kernelmatrix(κ::Kernel, x::AbstractVector)

Compute the kernel κ for each pair of inputs in x. Returns a matrix of size (length(x), length(x)) satisfying kernelmatrix(κ, x)[p, q] == κ(x[p], x[q]).

kernelmatrix(κ::Kernel, x::AbstractVector, y::AbstractVector)

Compute the kernel κ for each pair of inputs in x and y. Returns a matrix of size (length(x), length(y)) satisfying kernelmatrix(κ, x, y)[p, q] == κ(x[p], y[q]).

kernelmatrix(κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelmatrix(κ, RowVecs(X)) and kernelmatrix(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix(κ, ColVecs(X)) and kernelmatrix(κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix!Function
kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector)
+kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector, y::AbstractVector)

In-place version of kernelmatrix where pre-allocated matrix K will be overwritten with the kernel matrix.

kernelmatrix!(K::AbstractMatrix, κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix!(
+    K::AbstractMatrix,
+    κ::Kernel,
+    X::AbstractMatrix,
+    Y::AbstractMatrix;
+    obsdim,
+)

If obsdim=1, equivalent to kernelmatrix!(K, κ, RowVecs(X)) and kernelmatrix(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix!(K, κ, ColVecs(X)) and kernelmatrix(K, κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix_diagFunction
kernelmatrix_diag(κ::Kernel, x::AbstractVector)

Compute the diagonal of kernelmatrix(κ, x) efficiently.

kernelmatrix_diag(κ::Kernel, x::AbstractVector, y::AbstractVector)

Compute the diagonal of kernelmatrix(κ, x, y) efficiently. Requires that x and y are the same length.

kernelmatrix_diag(κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix_diag(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelmatrix_diag(κ, RowVecs(X)) and kernelmatrix_diag(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag(κ, ColVecs(X)) and kernelmatrix_diag(κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source
KernelFunctions.kernelmatrix_diag!Function
kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector)
+kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector, y::AbstractVector)

In place version of kernelmatrix_diag.

kernelmatrix_diag!(K::AbstractVector, κ::Kernel, X::AbstractMatrix; obsdim)
+kernelmatrix_diag!(
+    K::AbstractVector,
+    κ::Kernel,
+    X::AbstractMatrix,
+    Y::AbstractMatrix;
+    obsdim
+)

If obsdim=1, equivalent to kernelmatrix_diag!(K, κ, RowVecs(X)) and kernelmatrix_diag!(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag!(K, κ, ColVecs(X)) and kernelmatrix_diag!(K, κ, ColVecs(X), ColVecs(Y)), respectively.

See also: ColVecs, RowVecs

source

Input Types

The above API operates on collections of inputs. All collections of inputs in KernelFunctions.jl are represented as AbstractVectors. To understand this choice, please see the design notes on collections of inputs. The length of any such AbstractVector is equal to the number of inputs in the collection. For example, this means that

size(kernelmatrix(k, x)) == (length(x), length(x))

is always true, for some Kernel k, and AbstractVector x.

Univariate Inputs

If each input to your kernel is Real-valued, then any AbstractVector{<:Real} is a valid representation for a collection of inputs. More generally, it's completely fine to represent a collection of inputs of type T as, for example, a Vector{T}. However, this may not be the most efficient way to represent collection of inputs. See Vector-Valued Inputs for an example.

Vector-Valued Inputs

We recommend that collections of vector-valued inputs are stored in an AbstractMatrix{<:Real} when possible, and wrapped inside a ColVecs or RowVecs to make their interpretation clear:

KernelFunctions.ColVecsType
ColVecs(X::AbstractMatrix)

A lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each column of X represents a single vector.

That is, by writing x = ColVecs(X), you are saying "x is a vector-of-vectors, each of which has length size(X, 1). The total number of vectors is size(X, 2)."

Phrased differently, ColVecs(X) says that X should be interpreted as a vector of horizontally-concatenated column-vectors, hence the name ColVecs.

julia> X = randn(2, 5);
+
+julia> x = ColVecs(X);
+
+julia> length(x) == 5
+true
+
+julia> X[:, 3] == x[3]
+true

ColVecs is related to RowVecs via transposition:

julia> X = randn(2, 5);
+
+julia> ColVecs(X) == RowVecs(X')
+true
source
KernelFunctions.RowVecsType
RowVecs(X::AbstractMatrix)

A lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each row of X represents a single vector.

That is, by writing x = RowVecs(X), you are saying "x is a vector-of-vectors, each of which has length size(X, 2). The total number of vectors is size(X, 1)."

Phrased differently, RowVecs(X) says that X should be interpreted as a vector of vertically-concatenated row-vectors, hence the name RowVecs.

Internally, the data continues to be represented as an AbstractMatrix, so using this type does not introduce any kind of performance penalty.

julia> X = randn(5, 2);
+
+julia> x = RowVecs(X);
+
+julia> length(x) == 5
+true
+
+julia> X[3, :] == x[3]
+true

RowVecs is related to ColVecs via transposition:

julia> X = randn(5, 2);
+
+julia> RowVecs(X) == ColVecs(X')
+true
source

These types are specialised upon to ensure good performance e.g. when computing Euclidean distances between pairs of elements. The benefit of using this representation, rather than using a Vector{Vector{<:Real}}, is that optimised matrix-matrix multiplication functionality can be utilised when computing pairwise distances between inputs, which are needed for kernelmatrix computation.

Inputs for Multiple Outputs

KernelFunctions.jl views multi-output GPs as GPs on an extended input domain. For an explanation of this design choice, see the design notes on multi-output GPs.

An input to a multi-output Kernel should be a Tuple{T, Int}, whose first element specifies a location in the domain of the multi-output GP, and whose second element specifies which output the inputs corresponds to. The type of collections of inputs for multi-output GPs is therefore AbstractVector{<:Tuple{T, Int}}.

KernelFunctions.jl provides the following helper functions to reduce the cognitive load associated with working with multi-output kernels by dealing with transforming data from the formats in which it is commonly found into the format required by KernelFunctions. The intention is that users can pass their data to these functions, and use the returned values throughout their code, without having to worry further about correctly formatting their data for KernelFunctions' sake:

KernelFunctions.prepare_isotopic_multi_output_dataMethod
prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)

Utility functionality to convert a collection of N = length(x) inputs x, and a vector-of-vectors y (efficiently represented by a ColVecs) into a format suitable for use with multi-output kernels.

y[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).

For example, if outputs are initially stored in a num_outputs × N matrix:

julia> x = [1.0, 2.0, 3.0];
+
+julia> Y = [1.1 2.1 3.1; 1.2 2.2 3.2]
+2×3 Matrix{Float64}:
+ 1.1  2.1  3.1
+ 1.2  2.2  3.2
+
+julia> inputs, outputs = prepare_isotopic_multi_output_data(x, ColVecs(Y));
+
+julia> inputs
+6-element KernelFunctions.MOInputIsotopicByFeatures{Float64, Vector{Float64}, Int64}:
+ (1.0, 1)
+ (1.0, 2)
+ (2.0, 1)
+ (2.0, 2)
+ (3.0, 1)
+ (3.0, 2)
+
+julia> outputs
+6-element Vector{Float64}:
+ 1.1
+ 1.2
+ 2.1
+ 2.2
+ 3.1
+ 3.2

See also prepare_heterotopic_multi_output_data.

source
KernelFunctions.prepare_isotopic_multi_output_dataMethod
prepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)

Utility functionality to convert a collection of N = length(x) inputs x and output vectors y (efficiently represented by a RowVecs) into a format suitable for use with multi-output kernels.

y[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).

For example, if outputs are initial stored in an N × num_outputs matrix:

julia> x = [1.0, 2.0, 3.0];
+
+julia> Y = [1.1 1.2; 2.1 2.2; 3.1 3.2]
+3×2 Matrix{Float64}:
+ 1.1  1.2
+ 2.1  2.2
+ 3.1  3.2
+
+julia> inputs, outputs = prepare_isotopic_multi_output_data(x, RowVecs(Y));
+
+julia> inputs
+6-element KernelFunctions.MOInputIsotopicByOutputs{Float64, Vector{Float64}, Int64}:
+ (1.0, 1)
+ (2.0, 1)
+ (3.0, 1)
+ (1.0, 2)
+ (2.0, 2)
+ (3.0, 2)
+
+julia> outputs
+6-element Vector{Float64}:
+ 1.1
+ 2.1
+ 3.1
+ 1.2
+ 2.2
+ 3.2

See also prepare_heterotopic_multi_output_data.

source
KernelFunctions.prepare_heterotopic_multi_output_dataFunction
prepare_heterotopic_multi_output_data(
+    x::AbstractVector, y::AbstractVector{<:Real}, output_indices::AbstractVector{Int},
+)

Utility functionality to convert a collection of inputs x, observations y, and output_indices into a format suitable for use with multi-output kernels. Handles the situation in which only one (or a subset) of outputs are observed at each feature. Ensures that all arguments are compatible with one another, and returns a vector of inputs and a vector of outputs.

y[n] should be the observed value associated with output output_indices[n] at feature x[n].

julia> x = [1.0, 2.0, 3.0];
+
+julia> y = [-1.0, 0.0, 1.0];
+
+julia> output_indices = [3, 2, 1];
+
+julia> inputs, outputs = prepare_heterotopic_multi_output_data(x, y, output_indices);
+
+julia> inputs
+3-element Vector{Tuple{Float64, Int64}}:
+ (1.0, 3)
+ (2.0, 2)
+ (3.0, 1)
+
+julia> outputs
+3-element Vector{Float64}:
+ -1.0
+  0.0
+  1.0

See also prepare_isotopic_multi_output_data.

source

The input types returned by prepare_isotopic_multi_output_data can also be constructed manually:

KernelFunctions.MOInputType
MOInput(x::AbstractVector, out_dim::Integer)

A data type to accommodate modelling multi-dimensional output data. MOInput(x, out_dim) has length length(x) * out_dim.

julia> x = [1, 2, 3];
+
+julia> MOInput(x, 2)
+6-element KernelFunctions.MOInputIsotopicByOutputs{Int64, Vector{Int64}, Int64}:
+ (1, 1)
+ (2, 1)
+ (3, 1)
+ (1, 2)
+ (2, 2)
+ (3, 2)

As shown above, an MOInput represents a vector of tuples. The first length(x) elements represent the inputs for the first output, the second length(x) elements represent the inputs for the second output, etc. See Inputs for Multiple Outputs in the docs for more info.

MOInput will be deprecated in version 0.11 in favour of MOInputIsotopicByOutputs, and removed in version 0.12.

source

As with ColVecs and RowVecs for vector-valued input spaces, this type enables specialised implementations of e.g. kernelmatrix for MOInputs in some situations.

To find out more about the background, read this review of kernels for vector-valued functions.

Generic Utilities

KernelFunctions also provides miscellaneous utility functions.

KernelFunctions.nystromFunction
nystrom(k::Kernel, X::AbstractVector, S::AbstractVector{<:Integer})

Compute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k, using indices S. Returns a NystromFact struct which stores a Nystrom factorization satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source
nystrom(k::Kernel, X::AbstractVector, r::Real)

Compute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k using a sample ratio of r. Returns a NystromFact struct which stores a Nystrom factorization satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source
nystrom(k::Kernel, X::AbstractMatrix, S::AbstractVector{<:Integer}; obsdim)

If obsdim=1, equivalent to nystrom(k, RowVecs(X), S). If obsdim=2, equivalent to nystrom(k, ColVecs(X), S).

See also: ColVecs, RowVecs

source
nystrom(k::Kernel, X::AbstractMatrix, r::Real; obsdim)

If obsdim=1, equivalent to nystrom(k, RowVecs(X), r). If obsdim=2, equivalent to nystrom(k, ColVecs(X), r).

See also: ColVecs, RowVecs

source
KernelFunctions.NystromFactType
NystromFact

Type for storing a Nystrom factorization. The factorization contains two fields: W and C, two matrices satisfying:

\[\mathbf{K} \approx \mathbf{C}^{\intercal}\mathbf{W}\mathbf{C}\]

source

Conditional Utilities

To keep the dependencies of KernelFunctions lean, some functionality is only available if specific other packages are explicitly loaded (using).

Kronecker.jl

https://github.com/MichielStock/Kronecker.jl

KernelFunctions.kronecker_kernelmatrixFunction
kronecker_kernelmatrix(
+    k::Union{IndependentMOKernel,IntrinsicCoregionMOKernel}, x::MOI, y::MOI
+) where {MOI<:IsotopicMOInputsUnion}

Requires Kronecker.jl: Computes the kernelmatrix for the IndependentMOKernel and the IntrinsicCoregionMOKernel, but returns a lazy kronecker product. This object can be very efficiently inverted or decomposed. See also kernelmatrix.

source
KernelFunctions.kernelkronmatFunction
kernelkronmat(κ::Kernel, X::AbstractVector{<:Real}, dims::Int) -> KroneckerPower

Return a KroneckerPower matrix on the D-dimensional input grid constructed by $\otimes_{i=1}^D X$, where D is given by dims.

Warning

Requires Kronecker.jl and for iskroncompatible(κ) to return true.

source
kernelkronmat(κ::Kernel, X::AbstractVector{<:AbstractVector}) -> KroneckerProduct

Returns a KroneckerProduct matrix on the grid built with the collection of vectors $\{X_i\}_{i=1}^D$: $\otimes_{i=1}^D X_i$.

Warning

Requires Kronecker.jl and for iskroncompatible(κ) to return true.

source

PDMats.jl

https://github.com/JuliaStats/PDMats.jl

KernelFunctions.kernelpdmatFunction
kernelpdmat(k::Kernel, X::AbstractVector)

Compute a positive-definite matrix in the form of a PDMat matrix (see PDMats.jl), with the Cholesky decomposition precomputed. The algorithm adds a diagonal "nugget" term to the kernel matrix which is increased until positive definiteness is achieved. The algorithm gives up with an error if the nugget becomes larger than 1% of the largest value in the kernel matrix.

source
kernelpdmat(k::Kernel, X::AbstractMatrix; obsdim)

If obsdim=1, equivalent to kernelpdmat(k, RowVecs(X)). If obsdim=2, equivalent to kernelpdmat(k, ColVecs(X)).

See also: ColVecs, RowVecs

source
diff --git a/previews/PR546/assets/documenter.js b/previews/PR546/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR546/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/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.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.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.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/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([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-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-times"); + 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-times"); + }, 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($) { + +// 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($) { + +// 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($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // 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); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +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/PR546/assets/heatmap_combination.png b/previews/PR546/assets/heatmap_combination.png new file mode 100644 index 000000000..06d7a8590 Binary files /dev/null and b/previews/PR546/assets/heatmap_combination.png differ diff --git a/previews/PR546/assets/heatmap_matern.png b/previews/PR546/assets/heatmap_matern.png new file mode 100644 index 000000000..458bb8f1a Binary files /dev/null and b/previews/PR546/assets/heatmap_matern.png differ diff --git a/previews/PR546/assets/heatmap_poly.png b/previews/PR546/assets/heatmap_poly.png new file mode 100644 index 000000000..27323064a Binary files /dev/null and b/previews/PR546/assets/heatmap_poly.png differ diff --git a/previews/PR546/assets/heatmap_prodsum.png b/previews/PR546/assets/heatmap_prodsum.png new file mode 100644 index 000000000..6142ad98d Binary files /dev/null and b/previews/PR546/assets/heatmap_prodsum.png differ diff --git a/previews/PR546/assets/heatmap_sqexp.png b/previews/PR546/assets/heatmap_sqexp.png new file mode 100644 index 000000000..b9964c989 Binary files /dev/null and b/previews/PR546/assets/heatmap_sqexp.png differ diff --git a/previews/PR546/assets/search.js b/previews/PR546/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR546/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // 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 + lunr.stopWordFilter = lunr.generateStopWordFilter([ + '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' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR546/assets/themes/documenter-dark.css b/previews/PR546/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR546/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}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,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}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 .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight: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{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}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:290486px;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 .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:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}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}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !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:15px !important}.is-size-7-mobile{font-size:.85em !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:15px !important}.is-size-7-tablet{font-size:.85em !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:15px !important}.is-size-7-touch{font-size:.85em !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:15px !important}.is-size-7-desktop{font-size:.85em !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:15px !important}.is-size-7-widescreen{font-size:.85em !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:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#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-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-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-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}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}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 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:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#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:transparent;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:transparent;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:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#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:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#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%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#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:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color: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:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#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:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.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+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#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 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#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:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.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:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}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 #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);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:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.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 .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.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:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#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;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.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:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.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),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#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:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color: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{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:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.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.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.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-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.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.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#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{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{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:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.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 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;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:15px;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:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR546/assets/themes/documenter-light.css b/previews/PR546/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR546/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid 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),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#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:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#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,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:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.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}.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-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#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}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#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-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:transparent;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:transparent;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:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !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:#363636}.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 #363636 #363636 !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:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#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:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.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:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.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:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !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:#f5f5f5}.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 #f5f5f5 #f5f5f5 !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:#f5f5f5;color:#f5f5f5}.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:#f5f5f5;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:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#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 / 2));top:calc(50% - (1em / 2));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:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#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:left}.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-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#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%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#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%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.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:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#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:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#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:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#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:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#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:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.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:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#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 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#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:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.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:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.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:#f5f5f5}.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:#f5f5f5}.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:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-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:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.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:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.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;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px 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:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.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 #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.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}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.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;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#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:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#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),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#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:0.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:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.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:#f5f5f5}.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:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@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:#f5f5f5}.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:#f5f5f5}.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:#f5f5f5}.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:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color: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{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:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.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:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#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:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#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:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#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-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.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}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.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.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#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{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{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:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#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:#f5f5f5}.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:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.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:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#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 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;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 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#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}@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}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#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}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR546/assets/themeswap.js b/previews/PR546/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR546/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + 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 browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // 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 darkTheme = 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. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If 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); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR546/assets/warner.js b/previews/PR546/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR546/assets/warner.js @@ -0,0 +1,49 @@ +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/PR546/create_kernel/index.html b/previews/PR546/create_kernel/index.html new file mode 100644 index 000000000..8fe5aeb82 --- /dev/null +++ b/previews/PR546/create_kernel/index.html @@ -0,0 +1,26 @@ + +Custom Kernels · KernelFunctions.jl

    Custom Kernels

    Creating your own kernel

    KernelFunctions.jl contains the most popular kernels already but you might want to make your own!

    Here are a few ways depending on how complicated your kernel is:

    SimpleKernel for kernel functions depending on a metric

    If your kernel function is of the form k(x, y) = f(d(x, y)) where d(x, y) is a PreMetric, you can construct your custom kernel by defining kappa and metric for your kernel. Here is for example how one can define the SqExponentialKernel again:

    struct MyKernel <: KernelFunctions.SimpleKernel end
    +
    +KernelFunctions.kappa(::MyKernel, d2::Real) = exp(-d2)
    +KernelFunctions.metric(::MyKernel) = SqEuclidean()

    Kernel for more complex kernels

    If your kernel does not satisfy such a representation, all you need to do is define (k::MyKernel)(x, y) and inherit from Kernel. For example, we recreate here the NeuralNetworkKernel:

    struct MyKernel <: KernelFunctions.Kernel end
    +
    +(::MyKernel)(x, y) = asin(dot(x, y) / sqrt((1 + sum(abs2, x)) * (1 + sum(abs2, y))))

    Note that the fallback implementation of the base Kernel evaluation does not use Distances.jl and can therefore be a bit slower.

    Additional Options

    Finally there are additional functions you can define to bring in more features:

    • KernelFunctions.iskroncompatible(k::MyKernel): if your kernel factorizes in dimensions, you can declare your kernel as iskroncompatible(k) = true to use Kronecker methods.
    • KernelFunctions.dim(x::MyDataType): by default the dimension of the inputs will only be checked for vectors of type AbstractVector{<:Real}. If you want to check the dimensionality of your inputs, dispatch the dim function on your datatype. Note that 0 is the default.
    • dim is called within KernelFunctions.validate_inputs(x::MyDataType, y::MyDataType), which can instead be directly overloaded if you want to run special checks for your input types.
    • kernelmatrix(k::MyKernel, ...): you can redefine the diverse kernelmatrix functions to eventually optimize the computations.
    • Base.print(io::IO, k::MyKernel): if you want to specialize the printing of your kernel.

    KernelFunctions uses Functors.jl for specifying trainable kernel parameters in a way that is compatible with the Flux ML framework. You can use Functors.@functor if all fields of your kernel struct are trainable. Note that optimization algorithms in Flux are not compatible with scalar parameters (yet), and hence vector-valued parameters should be preferred.

    import Functors
    +
    +struct MyKernel{T} <: KernelFunctions.Kernel
    +    a::Vector{T}
    +end
    +
    +Functors.@functor MyKernel

    If only a subset of the fields are trainable, you have to specify explicitly how to (re)construct the kernel with modified parameter values by implementing Functors.functor(::Type{<:MyKernel}, x) for your kernel struct:

    import Functors
    +
    +struct MyKernel{T} <: KernelFunctions.Kernel
    +    n::Int
    +    a::Vector{T}
    +end
    +
    +function Functors.functor(::Type{<:MyKernel}, x::MyKernel)
    +    function reconstruct_mykernel(xs)
    +        # keep field `n` of the original kernel and set `a` to (possibly different) `xs.a`
    +        return MyKernel(x.n, xs.a)
    +    end
    +    return (a = x.a,), reconstruct_mykernel
    +end
    diff --git a/previews/PR546/design/index.html b/previews/PR546/design/index.html new file mode 100644 index 000000000..5ecdae783 --- /dev/null +++ b/previews/PR546/design/index.html @@ -0,0 +1,7 @@ + +Design · KernelFunctions.jl

    Design

    Why AbstractVectors Everywhere?

    To understand the advantages of using AbstractVectors everywhere to represent collections of inputs, first consider the following properties that it is desirable for a collection of inputs to satisfy.

    Unique Ordering

    There must be a clearly-defined first, second, etc element of an input collection. If this were not the case, it would not be possible to determine a unique mapping between a collection of inputs and the output of kernelmatrix, as it would not be clear what order the rows and columns of the output should appear in.

    Moreover, ordering guarantees that if you permute the collection of inputs, the ordering of the rows and columns of the kernelmatrix are correspondingly permuted.

    Generality

    There must be no restriction on the domain of the input. Collections of Reals, vectors, graphs, finite-dimensional domains, or really anything else that you fancy should be straightforwardly representable. Moreover, whichever input class is chosen should not prevent optimal performance from being obtained.

    Unambiguously-Defined Length

    Knowing the length of a collection of inputs is important. For example, a well-defined length guarantees that the size of the output of kernelmatrix, and related functions, are predictable. It also makes it possible to perform internal error-checking that ensures that e.g. there are the same number of inputs in two collections of inputs.

    AbstractMatrices Do Not Cut It

    Notably, while AbstractMatrix objects are often used to represent collections of vector-valued inputs, they do not immediately satisfy these properties as it is unclear whether a matrix of size P x Q represents a collection of P Q-dimensional inputs (each row is an input), or Q P-dimensional inputs (each column is an input).

    Moreover, they occasionally add some aesthetic inconvenience. For example, a collection of Real-valued inputs, which might be straightforwardly represented as an AbstractVector{<:Real}, must be reshaped into a matrix.

    There are two commonly used ways to partly resolve these shortcomings:

    Resolution 1: Specify a Convention

    One way that these shortcomings can be partly resolved is by specifying a convention that everyone adheres to regarding the interpretation of rows vs columns. However, opinions about the choice of convention are often surprisingly strongly held, and users regularly have to remind themselves which convention has been chosen. While this resolves the ordering problem, and in principle defines the "length" of a collection of inputs, AbstractMatrixs already have a length defined in Julia, which would generally disagree with our internal notion of length. This isn't a show-stopper, but it isn't an especially clean situation.

    There is also the opportunity for some kinds of silent bugs. For example, if an input matrix happens to be square because the number of input dimensions is the same as the number of inputs, it would be hard to know whether the correct kernelmatrix has been computed. This kind of bug seems unlikely, but it exists regardless.

    Finally, suppose that your inputs are some type T that is not simply a vector of real numbers, say a graph. In this situation, how should a collection of inputs be represented? A N x 1 or 1 x N matrix is the only obvious candidate, but the additional singular dimension seems somewhat redundant.

    Resolution 2: Always Specify An obsdim Argument

    Another way to partly resolve these problems is to not commit to a convention, and instead to propagate some additional information through the codebase that specifies how the input data is to be interpreted. For example, a kernel k that represents the sum of two other kernels might implement kernelmatrix as follows:

    function kernelmatrix(k::KernelSum, x::AbstractMatrix; obsdim=1)
    +    return kernelmatrix(k.kernels[1], x; obsdim=obsdim) +
    +        kernelmatrix(k.kernels[2], x; obsdim=obsdim)
    +end

    While this prevents this package from having to pre-specify a convention, it doesn't resolve the length issue, or the issue of representing collections of inputs which aren't immediately represented as vectors. Moreover, it complicates the internals; in contrast, consider what this function looks like with an AbstractVector:

    function kernelmatrix(k::KernelSum, x::AbstractVector)
    +    return kernelmatrix(k.kernels[1], x) + kernelmatrix(k.kernels[2], x)
    +end

    This code is clearer (less visual noise), and has removed a possible bug – if the implementer of kernelmatrix forgets to pass the obsdim kwarg into each subsequent kernelmatrix call, it's possible to get the wrong answer.

    This being said, we do support matrix-valued inputs – see Why We Have Support for Both.

    AbstractVectors

    Requiring all collections of inputs to be AbstractVectors resolves all of these problems, and ensures that the data is self-describing to the extent that KernelFunctions.jl requires.

    Firstly, the question of how to interpret the columns and rows of a matrix of inputs is resolved. Users must wrap matrices which represent collections of inputs in either a ColVecs or RowVecs, both of which have clearly defined semantics which are hard to confuse.

    By design, there is also no discrepancy between the number of inputs in the collection, and the length function – the length of a ColVecs, RowVecs, or Vector{<:Real} is equal to the number of inputs.

    There is no loss of performance.

    A collection of N Real-valued inputs can be represented by an AbstractVector{<:Real} of length N, rather than needing to use an AbstractMatrix{<:Real} of size either N x 1 or 1 x N. The same can be said for any other input type T, and new subtypes of AbstractVector can be added if particularly efficient ways exist to store collections of inputs of type T. A good example of this in practice is using Tuple{S, Int}, for some input type S, as the Inputs for Multiple Outputs.

    This approach can also lead to clearer user code. A user need only wrap their inputs in a ColVecs or RowVecs once in their code, and this specification is automatically re-used everywhere in their code. In this sense, it is straightforward to write code in such a way that there is one unique source of "truth" about the way in which a particular data set should be interpreted. Conversely, the obsdim resolution requires that the obsdim keyword argument is passed around with the data every single time that you use it.

    The benefits of the AbstractVector approach are likely most strongly felt when writing a substantial amount of code on top of KernelFunctions.jl – in the same way that using AbstractVectors inside KernelFunctions.jl removes the need for large amounts of keyword argument propagation, the same will be true of other code.

    Why We Have Support for Both

    In short: many people like matrices, and are familiar with obsdim-style keyword arguments.

    All internals are implemented using AbstractVectors though, and the obsdim interface is just a thin layer of utility functionality which sits on top of this. To avoid confusion and silent errors, we do not favour a specific convention (rows or columns) but instead it is necessary to specify the obsdim keyword argument explicitly.

    Kernels for Multiple-Outputs

    There are two equally-valid perspectives on multi-output kernels: they can either be treated as matrix-valued kernels, or standard kernels on an extended input domain. Each of these perspectives are convenient in different circumstances, but the latter greatly simplifies the incorporation of multi-output kernels in KernelFunctions.

    More concretely, let k_mat be a matrix-valued kernel, mapping pairs of inputs of type T to matrices of size P x P to describe the covariance between P outputs. Given inputs x and y of type T, and integers p and q, we can always find an equivalent standard kernel k mapping from pairs of inputs of type Tuple{T, Int} to the Reals as follows:

    k((x, p), (y, q)) = k_mat(x, y)[p, q]

    This ability to treat multi-output kernels as single-output kernels is very helpful, as it means that there is no need to introduce additional concepts into the API of KernelFunctions.jl, just additional kernels! This in turn simplifies downstream code as they don't need to "know" about the existence of multi-output kernels in addition to standard kernels. For example, GP libraries built on top of KernelFunctions.jl just need to know about Kernels, and they get multi-output kernels, and hence multi-output GPs, for free.

    Where there is the need to specialise implementations for multi-output kernels, this is done in an encapsulated manner – parts of KernelFunctions that have nothing to do with multi-output kernels know nothing about the existence of multi-output kernels.

    diff --git a/previews/PR546/examples/gaussian-process-priors/Manifest.toml b/previews/PR546/examples/gaussian-process-priors/Manifest.toml new file mode 100644 index 000000000..2e66a85a6 --- /dev/null +++ b/previews/PR546/examples/gaussian-process-priors/Manifest.toml @@ -0,0 +1,1216 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "3f5817959c36abf3cab0a72cc306a1c0e4f6e332" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "1287e3872d646eed95198457873249bd9f0caed2" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.20.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "abbbb9ec3afd783a7cbd82ef01dcd088ea051398" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "f870a3a6695b22a737c5914de0c57eb4bc746917" +repo-rev = "935cce54d1862bb49f4274c044a3aa7450a5b3bf" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.60" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "bad26f1ccd99c553886ec0725e99a509589dcd11" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.1" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/previews/PR546/examples/gaussian-process-priors/index.html b/previews/PR546/examples/gaussian-process-priors/index.html new file mode 100644 index 000000000..a36d76416 --- /dev/null +++ b/previews/PR546/examples/gaussian-process-priors/index.html @@ -0,0 +1,2867 @@ + +Gaussian process prior samples · KernelFunctions.jl

    Gaussian process prior samples

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    The kernels defined in this package can also be used to specify the covariance of a Gaussian process prior. A Gaussian process (GP) is defined by its mean function $m(\cdot)$ and its covariance function or kernel $k(\cdot, \cdot')$:

    \[ f \sim \mathcal{GP}\big(m(\cdot), k(\cdot, \cdot')\big)\]

    In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean).

    # Load required packages
    +using KernelFunctions, LinearAlgebra
    +using Plots, Plots.PlotMeasures
    +default(; lw=1.0, legendfontsize=8.0)
    +using Random: seed!
    +seed!(42); # reproducibility

    Evaluation at finite set of points

    The function values $\mathbf{f} = \{f(x_n)\}_{n=1}^N$ of the GP at a finite number $N$ of points $X = \{x_n\}_{n=1}^N$ follow a multivariate normal distribution $\mathbf{f} \sim \mathcal{MVN}(\mathbf{m}, \mathrm{K})$ with mean vector $\mathbf{m}$ and covariance matrix $\mathrm{K}$, where

    \[\begin{aligned} + \mathbf{m}_i &= m(x_i) \\ + \mathrm{K}_{i,j} &= k(x_i, x_j) +\end{aligned}\]

    with $1 \le i, j \le N$.

    We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:

    num_inputs = 101
    +xlim = (-5, 5)
    +X = range(xlim...; length=num_inputs);

    Given a kernel k, we can compute the kernel matrix as K = kernelmatrix(k, X).

    Random samples

    To sample from the multivariate normal distribution $p(\mathbf{f}) = \mathcal{MVN}(0, \mathrm{K})$, we could make use of Distributions.jl and call rand(MvNormal(K)). Alternatively, we could use the AbstractGPs.jl package and construct a GP object which we evaluate at the points of interest and from which we can then sample: rand(GP(k)(X)).

    Here, we will explicitly construct samples using the Cholesky factorization $\mathrm{L} = \operatorname{cholesky}(\mathrm{K})$, with $\mathbf{f} = \mathrm{L} \mathbf{v}$, where $\mathbf{v} \sim \mathcal{N}(0, \mathbf{I})$ is a vector of standard-normal random variables.

    We will use the same randomness $\mathbf{v}$ to generate comparable samples across different kernels.

    num_samples = 7
    +v = randn(num_inputs, num_samples);

    Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small "nugget" term on the diagonal:

    function mvn_sample(K)
    +    L = cholesky(K + 1e-6 * I)
    +    f = L.L * v
    +    return f
    +end;

    Visualization

    We now define a function that visualizes a kernel for us.

    function visualize(k::Kernel)
    +    K = kernelmatrix(k, X)
    +    f = mvn_sample(K)
    +
    +    p_kernel_2d = heatmap(
    +        X,
    +        X,
    +        K;
    +        yflip=true,
    +        colorbar=false,
    +        ylabel=string(nameof(typeof(k))),
    +        ylim=xlim,
    +        yticks=([xlim[1], 0, xlim[end]], ["\u22125", raw"$x'$", "5"]),
    +        vlim=(0, 1),
    +        title=raw"$k(x, x')$",
    +        aspect_ratio=:equal,
    +        left_margin=5mm,
    +    )
    +
    +    p_kernel_cut = plot(
    +        X,
    +        k.(X, 0.0);
    +        title=string(raw"$k(x, x_\mathrm{ref})$"),
    +        label=raw"$x_\mathrm{ref}=0.0$",
    +        legend=:topleft,
    +        foreground_color_legend=nothing,
    +    )
    +    plot!(X, k.(X, 1.5); label=raw"$x_\mathrm{ref}=1.5$")
    +
    +    p_samples = plot(X, f; c="blue", title=raw"$f(x)$", ylim=(-3, 3), label=nothing)
    +
    +    return plot(
    +        p_kernel_2d,
    +        p_kernel_cut,
    +        p_samples;
    +        layout=(1, 3),
    +        xlabel=raw"$x$",
    +        xlim=xlim,
    +        xticks=collect(xlim),
    +    )
    +end;

    We can now visualize a kernel and show samples from a Gaussian process with a given kernel:

    plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Kernel comparison

    This also allows us to compare different kernels:

    kernels = [
    +    Matern12Kernel(),
    +    Matern32Kernel(),
    +    Matern52Kernel(),
    +    SqExponentialKernel(),
    +    WhiteKernel(),
    +    ConstantKernel(),
    +    LinearKernel(),
    +    compose(PeriodicKernel(), ScaleTransform(0.2)),
    +    NeuralNetworkKernel(),
    +    GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),
    +]
    +plot(
    +    [visualize(k) for k in kernels]...;
    +    layout=(length(kernels), 1),
    +    size=(800, 220 * length(kernels) + 100),
    +)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`
    +  [31c24e10] Distributions v0.25.107
    +  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`
    +  [98b081ad] Literate v2.16.1
    +  [91a5bcdd] Plots v1.40.1
    +  [37e2e46d] LinearAlgebra
    +  [9a3f8284] Random
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.10.0
    +Commit 3120989f39b (2023-12-25 18:01 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/previews/PR546/examples/gaussian-process-priors/notebook.ipynb b/previews/PR546/examples/gaussian-process-priors/notebook.ipynb new file mode 100644 index 000000000..8aa1a7713 --- /dev/null +++ b/previews/PR546/examples/gaussian-process-priors/notebook.ipynb @@ -0,0 +1,5854 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Gaussian process prior samples\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/gaussian-process-priors/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/gaussian-process-priors/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "The kernels defined in this package can also be used to specify the\n", + "covariance of a Gaussian process prior.\n", + "A Gaussian process (GP) is defined by its mean function $m(\\cdot)$ and its covariance function or kernel $k(\\cdot, \\cdot')$:\n", + "$$\n", + " f \\sim \\mathcal{GP}\\big(m(\\cdot), k(\\cdot, \\cdot')\\big)\n", + "$$\n", + "In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean)." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "# Load required packages\n", + "using KernelFunctions, LinearAlgebra\n", + "using Plots, Plots.PlotMeasures\n", + "default(; lw=1.0, legendfontsize=8.0)\n", + "using Random: seed!\n", + "seed!(42); # reproducibility" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Evaluation at finite set of points\n", + "\n", + "The function values $\\mathbf{f} = \\{f(x_n)\\}_{n=1}^N$ of the GP at a finite number $N$ of points $X = \\{x_n\\}_{n=1}^N$ follow a multivariate normal distribution $\\mathbf{f} \\sim \\mathcal{MVN}(\\mathbf{m}, \\mathrm{K})$ with mean vector $\\mathbf{m}$ and covariance matrix $\\mathrm{K}$, where\n", + "$$\n", + "\\begin{aligned}\n", + " \\mathbf{m}_i &= m(x_i) \\\\\n", + " \\mathrm{K}_{i,j} &= k(x_i, x_j)\n", + "\\end{aligned}\n", + "$$\n", + "with $1 \\le i, j \\le N$.\n", + "\n", + "We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "num_inputs = 101\n", + "xlim = (-5, 5)\n", + "X = range(xlim...; length=num_inputs);" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "Given a kernel `k`, we can compute the kernel matrix as `K = kernelmatrix(k, X)`." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Random samples\n", + "\n", + "To sample from the multivariate normal distribution $p(\\mathbf{f}) = \\mathcal{MVN}(0, \\mathrm{K})$, we could make use of Distributions.jl and call `rand(MvNormal(K))`.\n", + "Alternatively, we could use the [AbstractGPs.jl](https://github.com/JuliaGaussianProcesses/AbstractGPs.jl) package and construct a `GP` object which we evaluate at the points of interest and from which we can then sample: `rand(GP(k)(X))`." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Here, we will explicitly construct samples using the Cholesky factorization $\\mathrm{L} = \\operatorname{cholesky}(\\mathrm{K})$,\n", + "with $\\mathbf{f} = \\mathrm{L} \\mathbf{v}$, where $\\mathbf{v} \\sim \\mathcal{N}(0, \\mathbf{I})$ is a vector of standard-normal random variables." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We will use the same randomness $\\mathbf{v}$ to generate comparable samples across different kernels." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "num_samples = 7\n", + "v = randn(num_inputs, num_samples);" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small \"nugget\" term on the diagonal:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function mvn_sample(K)\n", + " L = cholesky(K + 1e-6 * I)\n", + " f = L.L * v\n", + " return f\n", + "end;" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "## Visualization\n", + "We now define a function that visualizes a kernel for us." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function visualize(k::Kernel)\n", + " K = kernelmatrix(k, X)\n", + " f = mvn_sample(K)\n", + "\n", + " p_kernel_2d = heatmap(\n", + " X,\n", + " X,\n", + " K;\n", + " yflip=true,\n", + " colorbar=false,\n", + " ylabel=string(nameof(typeof(k))),\n", + " ylim=xlim,\n", + " yticks=([xlim[1], 0, xlim[end]], [\"\\u22125\", raw\"$x'$\", \"5\"]),\n", + " vlim=(0, 1),\n", + " title=raw\"$k(x, x')$\",\n", + " aspect_ratio=:equal,\n", + " left_margin=5mm,\n", + " )\n", + "\n", + " p_kernel_cut = plot(\n", + " X,\n", + " k.(X, 0.0);\n", + " title=string(raw\"$k(x, x_\\mathrm{ref})$\"),\n", + " label=raw\"$x_\\mathrm{ref}=0.0$\",\n", + " legend=:topleft,\n", + " foreground_color_legend=nothing,\n", + " )\n", + " plot!(X, k.(X, 1.5); label=raw\"$x_\\mathrm{ref}=1.5$\")\n", + "\n", + " p_samples = plot(X, f; c=\"blue\", title=raw\"$f(x)$\", ylim=(-3, 3), label=nothing)\n", + "\n", + " return plot(\n", + " p_kernel_2d,\n", + " p_kernel_cut,\n", + " p_samples;\n", + " layout=(1, 3),\n", + " xlabel=raw\"$x$\",\n", + " xlim=xlim,\n", + " xticks=collect(xlim),\n", + " )\n", + "end;" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "We can now visualize a kernel and show samples from\n", + "a Gaussian process with a given kernel:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=10}\nCaptured extra kwargs:\n Series{1}:\n vlim: (0, 1)\n", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "## Kernel comparison\n", + "This also allows us to compare different kernels:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=100}\nCaptured extra kwargs:\n Series{1}:\n vlim: (0, 1)\n Series{11}:\n vlim: (0, 1)\n Series{21}:\n vlim: (0, 1)\n Series{31}:\n vlim: (0, 1)\n Series{41}:\n vlim: (0, 1)\n Series{51}:\n vlim: (0, 1)\n Series{61}:\n vlim: (0, 1)\n Series{71}:\n vlim: (0, 1)\n Series{81}:\n vlim: (0, 1)\n Series{91}:\n vlim: (0, 1)\n", + "image/png": "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UqWKp6entQ1hFH4opb169SpRooSrq2unTp1SRaWnT5/eo0ePKlWqZP2B8+fPX7hw4ZMnTyxt6VsBU1cFAELIwoULGzVqVK9evWLFir1p2qVLl549e9apU6e8tM3FxUX9qlKxYsX27dv//PPPeWkJoxDw6tWrkJCQVq1avWlCUlLSjBkzJk+enJdW5ZCxY8fOnDkz/8cxGQWd48eP+/r69uzZc9OmTS4uLhxn+nwPCQm5e/dujx49svVAGxubJUuWjB8/3tKWvhUwdVVg8PPzy+BTB8Do0aMnTZqUZ/ZIuLq66nS6tLHI4cOHL1++/MWLF3lsD6NAc+bMGaPR2LJlyzdN8PLyatiwYYUKFfLSqhxSvHjxdu3abd++3dqGMAo5f/75Z926dR0cHHx8fM6fP6+9NGrUqAkTJpjxzDp16kRFRZ04ccJCNr5FMHVVMHj69Ont27czUFdnz55NSkpq3LhxXloFwGAwlClTpnz58qnGHR0dO3fuvG3btjy2h1Gg8fPzq1SpUsWKFd80Yfv27QUlJqilffv2O3bssLYVjELOxYsX69evD8DW1lav16vjAQEBz58/z+CPloz56quv1q5daxkT3yb0mU9h5AP8/Pw4jtPmoyQkJNjb26svvby8MtBe2slJSUk2NjaEkKyvrr09MTHRzs5Oe/Xdd99Nq64ANG/efMOGDRMnTsz6Qoy3HK2DNigo6NixY4mJicOGDZOcVYmJiadOnVq9enXaGy9evHj69OmIiIiPP/64bdu2Hh4ez58/NxgMI0eOdHBwyHRdf3//K1euPH36tGfPnh999NGGDRtevXplMBhGjx5tY2OT8++radOmAQEBL168KF68eM6fxmCkJTk5OTg4+Msvv0x7KVufDgaDQRtSBNCiRYthw4a9evWqaNGilrW5cMPUVcHAz8+vdu3azs7OAA4fPnzlypXHjx+XK1duzpw50gRfX9/p06envfGPP/64du2awWA4c+bM1q1bN27cqNfrz507N2jQoN69e2e6rqen57179wghly5d2rp166pVq4oWLern5zdmzJiPP/5YmvMmddW0adNhw4a9fv26SJEi5n/njLeGuLi4gICAb775BsC+ffvi4uJ69uzZqlUrQRAWLFgA4MaNGwDef//9VDceOXIkIiJi0qRJ8fHx77777ueff/7ll1+KotiiRYsiRYqMGDEi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j9etWxdAWFhYeHi4g4NDpUqV7OzsAgMDnZ2dnZ2dHzx4EB4e3jRljZqs9Ma5cuXKkSNHKlSosHbt2l69egUHB9euXbts2bKfffbZ3r17L1++HBQUtH///rc58cD4ODTm8DY+8nGxTp87NGybD3UVI1MqVYK3N06flquPLl2KnIXN06dXL3h4YMUKfP+95R+ucvAgHjxAxjvZvLwwdiwOHcKHml7hlGL1aixejJ9+wqBBWVrr7FnMm4fbtzFjBoYOtYBqvHsX3t7w9kZYGD75BKtXo3nzvNhraY66CgsLe+edd/r162dxawoJlFCjjoocaDpCCiadlFZLaTSTMkfbUlBMOShqUto1nXBS5LYDULOnqBoOpJDPaYrf2lppJRcVVVK0iJKSLue2S/4nVVQBIiVE6ghI1XlqLQaqHVS1lAjNw2EScByIqHitOG1kEBAJOAp9PvusqVatmlqf+vnz54SQHFbatBZqF2ptQ9wyZcpMnTp16tSpjx492rp166JFizZs2DBw4EAXF5emZpT/A+rXr19fsw9n8eLF0omdnd3QoUMBvM2/W4wRj2KP7Eh+eKNYh4EOTToSHWupWbBp3hznz2P/fowejSpVsGIFatSw8BJr16JhQwwYgPdyZ59DQgImTcLmzRnVm/j1V8yciRMnUvSfiY7GsGEID8f588hCagACAjBzJu7cwfff44svclreIjwc+/dj9248fIhPPsEPP6BlS8v4wLKIOfpt/fr1Z8+etbgpDEYhoE2bNgVUWr0JGxsbFxeXBg0a1KpVKzg4+Pr16++//z5rMmhx+BcRL3f/+HztdzYV3y8706NIs65MWhUOCMGnn+LaNfTqhXbt8MUXiIiw5PMrVMDkyRg92pLP1LJ4MRo3zii1a+1azJsHH58U0uryZTRogHffxalTmUur27fRvz969kTv3rh5E199Zb60evwYK1eiaVPUqYPAQCxYgMePsW4d2rTJU2kF83xX1atXf/z4scVNKUxQXi97qiRXk5p3pfio1NypFIMaN5XquxLVZCxTz2ZOTNH3hqMp866oUlMUSqq77KwyuaZMaU7pRQkpkUsoyF4lqsQHIaWiE6WaKKGSedI5KBGlE6ghQkI1We1SS2aREkLkdCtIRdiV1CtOdlNRAqImWpnyrghECpr/IoNaPkqVcVAoULenubu716xZMy4uDiznxnII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m9QMzE6gj6aRswNEjlYGvL7A0dn9029frp1DShROvaIr28OJqJT5e39WvXjmPnkZJTLkApY2t43gZTGJOKL+s4+waUUrKFmnM8j78epVnYT9Ghi2jMD53fF5sctfrp9bb8zXQnGlR68p7lyU/G+N2/tzrBu/8cfyIfRmq84vqby8vJ49e966dcvKyoo9LFqlUlEU5eLiEhUVhdlVXl7eqzuh11BUVCTNzq6s+M9EV4yKinr48KFAIGjcuHFcXJx9uUMorl69OnLkSIZhbGxsGjdufPToUTMElpubK5PJzHChV/Kxpy5Hid47rX7nqHpTV2H5TRYeFpDx52knK7j0rsjF8A29Re4+njNW525bqnye6jJ0Uvmtw1Uvnkpil4s8/Tym/vTKEZo30MpOwl/uMl0OqX9+Wzi0iW4NWzENK5OYtclMbISoh7fhKzQpyu29mbKT/8teMc11xOe2wWE6j5MSRcGJ34tunHH/9FtrP389X3X//v3Dhw83/x8SNE2XlJSY+aIIsXJzc2/cuNH3VedaVye7+v7779PS0i5fvpycnLxt27bTp09fv359ypQpffr0edMWDP7888/p6ens7YYNG06aNMkMF3309LnKvTWYdFHea2zTADX/sOeXWU9unzs3bNiwiiM1gc2bNxcVFaWmplIU1atXrw0bNrCnqnEKCgrefffd77///uOPPwaA/HwzrWp8+vRpamqqea71SvVs4K93RD/eZjoeVL/TQDC4MdXClWII3MsnfzwhpzKY2a2FMSHVP/tZ6FzPY8qPBX/vyPrxM7vQrnYtO4jqNyQqpTrzedGNM8pn98XvvF8jaq0qM6mF4C13aupFevFNZlKw4K16lJc9PCqAy9lk7V26k6fgSpSwgUN1P30U5dRnpFXDAOn+jQV/73Do8h8r7yYCR2f1y3Tl46TCC3/ZBratP3OtQRuHTp061dPT86+//nry5ImDg0NkZOTw4cOrGZ4hcnJypFLclgVZxqVLlzZu3GiS7CohIWHixIkdO3ZMTk6maVokEnXs2DEuLq5p06bR0dFt2rSpVsAmsW3btrZt2zZv3hwAnJyczHRVgRXj3OTNPTsZavxhz4yjsuIATeb3338fP368lZUVAIwbN27t2rU62dWff/7ZoEGDjz/+WCKRuLq6uri4mDnCN4SQgq9CBZNbCDalML89IHfzGQqghQsV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5cuePXtW42UnTJiwfPlyXJlhKMyuaoYzZ86Eh4dX9mhJScnWrVvfe+89c4bE8vPz8/PzK9/+3nvvbdq0iavHQkh/8fHx7du3t7e3r6zD7t27qxjZemN17959z549lo4C1Vp3794tKip66623yj+0cePGav+CcHZ27t69+65du14vujoHs6saQCqVJiYmctOCSqXywoULWVlZXId//vnHzs6uwhqUkpKSy5cvc6vWnzx5cunSJf0n0RUKxaVLl168eMHeffDgwZUrV/jFuQ0aNCg/dgUArVu3zsnJSUpK0vNCCHHi4+O5vyW2b9++bNmy999/n/taSk9Pf/Dgwdtvv63zLELIli1bVq5cOWnSpE2bNslksoULF/7000/jxo3Lycl55UUZhvnll19WrVo1YcKE2NjY3NzcBQsW/Pjjj5988klBQYFR3leXLl2uX7+OYwDI6Gialkgk586dEwgEvr6+EomE/yjDMH/99Ve3bt0qfG5KSsrNmzfZv4SlUumFCxfKF/h26dIlLi7ORMHXVlh3VQOcO3eOpmn29825c+fi4+N9fHzGjh2bkJDg7OwMAOfPn+/atWv5J549e/bcuXM9e/acNWtWnz59aJoWiUQSieTzzz+/dOmSQPCK3Pro0aNsVjdx4sTRo0dnZma6ubk9fvx47ty5p06dYvv4+fkVFhaWf65QKAwLCzt//nyrVq1e9/2juuThw4dpaWndu3cnhCxcuDAqKsrDw2Pu3Llt2rQJCQkBgDt37nh5ebm4uOg8cdWqVREREW3atFGpVC4uLidPnty8efPRo0fnzJnTs2fP0aNHV33d77//ftiwYYGBgQUFBZ6ensOGDdu0adOOHTv++9//RkVFRUZGvv5ba9CggY2Nzb1796qY9ESoGv7++++4uLgzZ854eHh88803FEUtXLjQ29ubfTQ5OVkul5cf03r58uWKFSu6d+/++PHjb775Zv78+XFxcR06dOjcufPevXtDQ0O5np07d/7qq68IIRRFme9d1XCYXdUA8fHxTZs29fPzO3HiRGpq6oIFCwYNGvTs2TOlUsl2uHfvXsOGDXWe9fz583Pnzs2fPx8ACgoKoqOjlyxZMn369IiIiPv376vVamtr6youmpKSkpyc/OWXXwLAyJEjP/nkk5UrV77//vtt27blhrIAICAgoLIl8Q0aNLh3797rvHFUB8XH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WLx4cXWGgeqMqKioN954AwD69OlTWhuj0fj6669/8cUX1RjXAxk1atSpU6euXLni6kBQHbdq1aq///77lVde+e6771atWiV9af/+/TExMS+99FL5r6ZQKBYuXPjGG2/U/PH3Ggizq1qgYcOGjRo1AoDw8PDS2uTm5s6dO/edd96pvrAAAKBx48Ysy/r7+0sPPv/88xs3bkxISKjmYFDdEB0dHRAQEBISUlqD5cuX9+/f38fHpzqjekCTJk2aMmWKq6NAddwXX3wRHh5usVi6du0aFRXlOG61Wl9//fUPPvigohds3Lhx+/btiyRqqDwwu6odDhw44O3t3bZt29IaLF26NDIy0sPDozqjAoDGjRs3bNiQZVnpQULIhAkT5s+fX83BoLohOjq6jI4rSul333336quvVmdID27AgAHXrl27evWqqwNBdVZycvKNGzfCwsJatWr177//dujQwfHS+vXru3bt2qRJk0pc9s033/z4449xNm1FYXZVOxw8ePDxxx9nmJL/f1FKV69eHRkZWc1RAUCjRo3EfrUinnrqqd9++y0vL6/6Q0K1mtlsPnHihDS7slqt0gYxMTE5OTlt2rQp8XSLxSJ9WuTc+5KeTil14lo/QkivXr22bNnirAsiVMR///0HAI8++mjxl1atWlXpD4iAgICWLVvu2LHjgYJ7+MhcHQC6P47jjhw5Mm/ePPGpXq/fu3dv48aNO3XqJB65dOlSenp6x44di5+bm5t7+PBhT0/Pxx9/HAAuXLgQFxfXp08fX1/f8tw6KyvryJEjfn5+YWFhABATE3P79u2IiIh69eqJDRo3bty4cePiJ3p5eQUHB+/bt2/EiBEV/obRQ+zEiRNGo7F3794AkJycvHr1akLIkSNH/vjjD3G5xoEDB3r16lV8qWBiYuKaNWt8fHz27t07Y8YMo9F45MgRQkh6evqyZcvue98bN26sX7/e29v733//nTdvXkpKypkzZywWi9VqddYEr169em3btm327NlOuRpCDllZWTk5Ofv37/fz88vLy8vLy2vatKnj30hmZuapU6d69uxZ/ES9Xn/48GGZTNa3b1+WZePi4s6dO9ezZ8/AwEBps549e/7555/SoUZ0X9h3VQucOXMmLy9P/Lw5ePDgokWLGIZ56qmnHKMMR48e7dq1q0xWNFc+fPjwsmXLHnnkkb17906ePHn16tWxsbEymaxTp07Z2dn3ve8///yzdu3aNm3abN68ee7cuUuWLElMTDSbzZ06dTIajWKbxo0bl9h3BQDdu3c/evRo5b9t9FCKjo6uX79+aGhofHz84sWLZ82aFRsbu3fv3vT0dLHB5cuXmzdvXuSs/Pz8r7/+es6cOZMmTXr55ZdHjx595MiRDz/88NSpUytWrLjvoEZGRsaqVavef//9yZMnR0VFPfPMM1euXPnggw+io6O/++47Z31rzZo1u2+ZCYQq4eDBgytXrty+fbuvr+/KlSt//PFH6c/80aNHmzdv7ufnV+Ssixcvfv7550FBQdeuXXvmmWd+//33Q4cO+fj49OjRo8is2e7dux85cqQ6vpO6hKIa7/PPP/f09OQ4bu/evUuWLKGUvvnmmwqFIi4uTmwwZcqUZ599tshZqamps2fPFh9fuHCBYZj58+dTSp977jmtVpuenl72TW/duvXxxx+Lj8Vfbr7++mtK6bBhw7y8vHQ6nfhSXl7e7t27S7zC7Nmzhw4dWonvFz3MwsPDIyMjr1+//sknn3AcRyndu3fv+vXrpQ0+/PDDImd9+umnCQkJ4uOff/4ZAOLj4ymlO3bs2LZt231vOmfOnNTUVPHx0qVLGYZJS0ujlG7atKm0H+9KOHHiBACYzWZnXRAhqYYNG86dO7f48S+++KJPnz5FDur1+ilTpgiCQCnNyMgAAHFt4MyZM2Uy2dWrV6WNT58+zbKsyWSqqtDrIsyuaoFBgwYNGTJkz549GzduFI/o9fo7d+44GowaNer1118vctaXX36ZnJwsPv7jjz8A4MqVK5TS3Nxcx/EyfPjhh1lZWeLj9evXA0BKSgqlNCsry/E5VLavvvqqW7du5WmJkMhoNKpUqgEDBqxdu7a0Np07dxZ/x5CKjY11PJ4xY0ZQUFCF7is9ffz48e3bt6/Q6eUkFmbMzMysioujh1xqaioAbNmypfhL06ZNGz58eJGD69atO3funPg4JiYGAPbt20cpNRgMt27dKtI4Pj4eAMrzwYEccN5VTSdOuvLw8Dh69OjMmTPFgxqNRqPRONoYDIbg4OAiJ06bNs0xC/706dP+/v6tWrUCAA8Pj/IsLZwzZ4709JCQkICAAADw8vIqZ+T16tWT1sFC6L5OnDhhMpk6deq0a9euw4cPf/TRR8XHnQkhxWvVij/boujo6L59+1bovkVOr6KicWLYNb+4PKqNzp49C6VMaTcYDMXf88eOHSt9h1cqleLkWrVaHRQUVKSxp6cnAOD7eYXgvKua7vTp0/n5+StWrPD392/btu3q1auLt1EoFAaDochB6QLD/fv39+nTp0Jv60VOr+jHFQDodDqVSlXRs9DDLDo6umHDhp999tnvv/+u1+uffPLJ4m3c3d3LmDWYm5t75syZMgo6lC05Ofn69euVPl104cKFpUuXzp49W7qHAQDk5OQQQtzc3B7k4giV6Ny5cx4eHk2bNi3+Unk+ILp3765Wq0u7uF6vBwAeBL61AAAgAElEQVR8P68QzK5quujoaF9f30GDBk2cOPHdd9997bXXxF8gpLsceHl5lfF5YzAYTp06Ja4ZFFVoZ4OMjIxLly499thj4lNKaVJSUnlOzM7OLv+WCwgBwIEDB8Q8nhASFhYWGxsrHv/kk08cbYKCgor/tGdmZoo9Q4cOHeJ5vkuXLuLx06dPl2cleUZGhrgP4IEDBwDAcfqBAwf2799foW8hNzf3lVdemTBhwvHjx2/cuFHkLoGBgXK5vEIXRKg8zp0717FjxxJ/hS77A4JSGh0d7XiHh5I+IMTTHUvFUXlgdlXTiZUVxd8zNBoNz/Piv58lS5Y42rRs2TIzM7PIib/99pvYV3zo0CFxoZ94/OjRo8ePHwcASumBAwfE+YzFbdiwQVzftG/fPkEQHKfv3r27nOueMjIyWrZsWZHvFT3UjEbjyZMnHRsSiKvKASA+Pl5alr1t27ZxcXHSE8+ePduwYUNxI7/NmzczDCOO9FFKf/31V3GYb8+ePe7u7l9++WXx+x46dMjf3//bb78VT3d3dxeLjAiCsHPnzjI2SCjR+fPng4KC5HL5/v37O3fuLH0pLi6ujILACD2Ic+fOlTgsCAAtWrQo/gGxe/fuw4cPA8DFixdTU1Md7/Dx8fHbtm0r0jgzM7NBgwbVX626VsPsqkazWq1Hjx51vL+zLOvj46PVamNiYkJDQx3NOnXqJCZSDhcuXIiKilqxYgUAbNu2TaFQiLOmzGbzli1bxLJyu3btioiIGDZsWPH7Hj58+Lnnntu0aROldNeuXQzDiKfr9foDBw4MHDiwPMGfOXPG0QeA0H2dPn3abDY7xqAHDhyo1+sTExNXr179/PPPO5pFREQcPXpUOvXKZDL5+PgMGTJk3bp1TzzxRNeuXf/666+UlJT58+ePHTtWoVAAQGpqqk6nE/9FFGEymQIDAyMiIpYvX/7CCy8EBwdHR0cnJiZ+8MEHr732WmklfEtjMplK6506cuRIv379KnQ1hMrDYDDExcWVll117tw5NjZWuk1tamrq0KFDxV82NmzY4OXlJb7D8zz//fffF98IISYmpmvXrlUWft1EKO7OWIPdvHkzJCTk0qVLjzzyCAAYDIa+ffs+88wz+fn5s2fPdhS4MplMvr6+Fy5caNasmXgkLy9v+PDhI0aMuHv37rBhw86fP3/s2LE+ffrcunVr0qRJ9evXB4AbN25ERkZyHHf69OkiA+rp6emRkZGjRo26efPmmDFj9uzZc+3atR49eiQmJk6ZMqU8E9uNRqOXl9f169crt/cCegjl5ubu27dv5MiRjiNnz549f/780KFDpcVvKaWhoaG//vqrtHzuhQsXjh8/3qNHjw4dOphMpm3bthFCBg4cKP1ZvXr16tatW2fNmlX81jExMadPn3788cdbt26t1+u3bt2qVqsHDhzo7u7uaPPZZ59t3rx5wYIF8fHxf/75586dO1mW3bBhQ1ZWVv369c+ePTtv3rzLly9/9913J0+efO6554YMGSLtqeJ5PjAw8MSJE8UXoCD0gE6cOBEWFhYXF9eiRYsSGwQFBW3YsMEx/Ge1WkeMGNG7d2+DwdC9e3e9Xr9x48bBgwcnJCS88sorxX9Ehw8f3q9fv0mTJlXpd1HXuHC9IiqP3NzcIkcyMjKKN3vllVeWL19e5GBqaqpYMYhSajAYcnJyip+4cOFCq9Va4q3v3bvH87z4WKfT5eXllT9ssWOs/O0RKr9vv/12woQJlTjxs88+e5D79u/f/+OPP87Ly5s2bRrP87t27Ro2bJj40sKFCxcsWEAp/eeffxwHpTZu3DhixIgHuTtCpVm+fHnTpk3LaDB37tw5c+YUOZienm6xWMTHZrO5tFoher2+QYMGYgU4VH44MljTFR/qls5BcZgyZcrSpUvFmbkO9evXd+yvrFarxVW1RRiNxuJF3kUNGjRwDItotVrp7/H3JRbOLn97hMpv/PjxR48eTUtLq9BZCQkJpe0rUE4KhSIkJMTd3X3hwoUMw3z77bdhYWHZ2dnZ2dmPPvronj17yjh36dKlCxcufJC7I1TE+fPnf/zxRwA4ceLEmDFjymj5+uuvb9y40bHHhsjX19cxiq1QKEpbhLRu3bpnnnmmeKl3VDbMruqINm3a9OvXr6J7xJ49e7YqptmeOHEiICCgEkUcECoPpVK5atWqSZMm0XJPbOA47rvvvhs9evQD3lr6u01KSorFYklISEhISPD09Fy+fHlpZy1dunTkyJElrpZHqNLGjRs3ZcoUs9l89OjRCRMmlNHS39//7bffXrlyZUVvYTKZfv311/nz5z9AmA8pzK7qjs8//3zdunW3b98uZ3tK6V9//VViSaEHkZubO2/evEWLFjn3sghJ9ejRIyoqqvy9QRzHzZ07t6JT1MvWrl07mUzW2a60+YgnT56Mj4+fOnWqE2+NEAD83//93+TJk2fNmvXFF1/ct192/PjxR44cOXfuXIVuMX369Llz5+Jqwcpw9dAkcqaMjIxXX33VtRuZvfXWWzdu3HBhAOjhcfLkSXGjtOoRHh6+c+dOx9Pr16937tw5OzubUpqdnb1q1SpK6bZt2/r27Ss967///nPMX0TIuRISEkqcUFsivV7/yiuvlL/9pk2bfv7558qG9rDDNYN1jcViYVnWMd3KJQGIa+ARqkuWLVsm7pseHh4+YsQI8eDNmzc3bdokFrgaOXLk+fPn169fz3Gct7f31KlT8Td+VNPwPM/zfDnfovHN/EFgdoUQQggh5Ew47wohhBBCyJkwu0IIIYQQcibMrhBCCCGEnAmzK4QQQgghZ8LsCiGEEELImTC7QgghhBByJsyuEEIIIYScCbMrhBBCCCFnqsvZ1dmzZ7tIlL2DPUIIoUpYsWJFu3btvL29mzdvPnfuXEEQXB0RQq4nc3UAVUin0+Xk5GzatEl8ihvUI4SQ07Vv337Tpk2NGze+efPmiBEjAgMDJ06c6OqgEHKxupxdAYBare7cubOro0AIoTorLCxMfNC+fft+/fpdvXrVtfEgVBPU8ezq1q1brVu39vDwGDly5NSpU+VyuasjQrUAx3EXL16MiYnJzMycPn16iVticxy3Zs2aM2fOhIaGTpw4UaVSicevXr26du1as9k8atQox6cOQnVbSkrK5cuXr1+/vn///q1bt7o6HIRcr3ZnV9nZ2Tt27Ch+fPDgwfXr1w8KCtq0adMjjzwSHx//5ptvZmVlLViwoKpD0ul0T0c93qVLMBAYMKB/l86dKOUBgFKOChbKmwlnJBYDY9EDADEaiMFADZTXK60GFQBYjCqTSWWyKAyc3MTJjDwDACaBmHliEcAqUIsgcJQCgJXwPHAc4QTgeOABQKAcBV4AgVKBgiDuz01BAKCUUgDxCyhQAICC3bsdD4j9T2J/TgAIACH2IwDEdhFKAaj9UoJ4F6CC7Yj9XlVk+vRpnp6eVXf9s2fPRkVFhYSE7NmzZ+rUqSVmV2+88cb58+cnTpz4yy+/REdHb9++HQBu374dFhY2efLkwMDAQYMG7dq167HHHqu6OB1at2598eLFEuNEqEqZTCaVSnX9+vVly5ZduXKlffv2DRs2rIb7/vvvvwMHDqT29zGWZVeuXBkVFVUNt0YPOfGnzt3dvexmhNIq/BSsaklJSfPmzSt+/L333mvevLn0yM6dOydNmnT79u2qDiknJ+eXX2dMeC0cKFAQKOUFwQoAgmDmeSPl8sCcxRgy2Lw0AGBz0pjMdJqRy6epzOleAKDPqJeX7Zmd55FlcMsyqbPNCgDIscrzrEy+FXRW0HOCQRAAwCRYjWA1E4uZmK3EBABWsHBg5qmVB6tAOYFy4Ei5qC3lAgBKBQBqz4egaHZFCAEiLncghBBgCGEACCm0AIJSEATKi4mjQDkqfgEPYioJAoAAVJLMOVVeXtZ9f7IfXEJCQvPmzc1ms0KhKPJSampqUFBQXFxc48aNdTpdgwYNTp8+HRoa+s4776SkpPz8888A8Omnn546dUrMuqqaQqHQ6/XYNYuqX35+vuMfI6X0hRdeYFl23bp1VX3fo0ePTp8+/fjx41V9I4SKoJQaDAatVlt2s9rdd9WoUaPVq1eXp6VKpbJarVUdj50AFIAAoQwQYGxpCaVABcoJMougMBGVAQCIWk80eqIxMBoLqzEBgFxtUhpVarNZY1WYOJmZZwHAIjBWATiB4SkIlLFnKzIqAKFAgDBAAIAQhgGGIywDLA9WAVgAEAgrUJ4AT4lg60UjAqX27IqANL0mhAAQAkTsviLAiNkVAUbSfSV2hfEg3rzgG6ZAqaTvSnyJkirtxXKRU6dOBQcHN27cGADc3Ny6det29OjR0NDQo0ePvvLKK2KbiIiIRYsWuTRMhKoVIaRXr14bNmxwdSAIuV7tzq7Ktn///sDAwGbNmt24cWPOnDn/+9//que+FAQKgphaif8FAMLIGaCUVRGZhsq1gkILAIxSS1UaolYRTT6rNgOAXG1WqMxKo0Ult6itchMvAwAzz1oExipQq0A4FnhKAECgjEBktnTGniERQgjYOpx4sf8JGAI8IRylggCMIzz7uB6V9i05sitCxHOJI7uyDxcS8RQKBIAItkMCAZZSAQgDIAAAoWLWJ167DuZX9+7d8/X1dTz18/NLSUkBgLt37zqO169fPysry2w2K5XKqo6H5/moqCjGnsiHh4e//PLLVX3TOoAC7LvL/JNCwhsIAxpSuVMK1AgCn3qHv3ebz04T8rOA56nVTJRqIlcwnr7Ew1vmH8z6NnT81lXbWSyW3377rVevXg0aNLh8+fKyZcsiIyNdHRRCrleXs6srV66MGzcuNTXV399/xIgR8+fPr577UipQyjtSK0IZAGAIC0ROGRVlOSozU4UBAASVjlFrqFpD1AZGbQYAmdosV5mVSrPKrFRZlCqOAwAVKzMJjFIgFoFYKXCUAABHGZ6CAKxAKSW2uVAUKCX2XEbM6igBQoASSnjxkJhdURAIUEopIdLUh9gTLHFkUNJ3BZK+KyJQSmwXA6BUICAQwlBK7F1WBOo0hUIh7Qq1WCzirHalUuk4brFYWJaVyarjnxjDME8//bRj3lWLFi2USiUh0glzdQGl1IkzGeLz6P/2gkZGhzchS64xk/6DzX2ZXg0qezmBN189bTi11xJ3nq3nI2vYXObdgDRqTlgZkSuo2UStZiEng0u+Yd63ic/LUjRvp2rdTdXhMUZT5WPcVcpqte7bt2/q1KmZmZmBgYGjR4+eNWuWq4NCyPXqcnb15ptvvvnmm9V/X0o5QbAyDBTqu6IsIcAwAmVVVKalCncAEJR6QaUjah3RqBiNHgBYtVmuMsuVFoXcqpRbVVY5AChZXsmzSoYxM1TBECsDACBnCEeJTCAyyvCUBQCWyFgQBBAoyOwdVEAJZSgFQgVKGUIBQKAFc9OBFJ1+Lk66svddMYwttWLsY4WEijOpbFmjOCJJgNqHFMW/AcfF7J1XULf6rwIDA5OSkhxPk5KSAgMDixxPTEz09/evnpnmhJCnn366zs+7cmKyaOLh2YPca6HMW20ZAHi/M+xPoU8f4DZGyPoGVPAulBrOHszbtY7x9NV2H+A9agqj9Sj7DMGgM12LMV06kf/Xj+pHH3fvFyXz8a/09+JaDMN8//33ro4CoRqnjvROI1QNTp06df36dQB47LHHLBbLoUOHAODatWuxsbFPPPEEADz55JObN28Wa1Vv3LhxxIgRrg0YlWbaCb6FBxFTK1FEQ/J7P9mo/dyp9Ar8IsDnpKd9O10Xvc3ruRn131qo7THwvqkVADAaN03HPt7Pv+M/axXr4Z22aHLePxuo1VKZ7wQhVCNhduV8VLAKglkQLIJtGZ1tkjdDGIbIWUbJyDRE7k7k7lTpIajcqdqNajREwxANw2jMMnHqldKilFuUMk4p45Qsr2QEBSMoGCpnQE5ATkBGQEYIC4QlhAXG9kVZhrIMMAzY+pzEQT1i61gSe5iAlDp0V6gBKfiz4Ar2WVn2x/ZTpFdw/E04/qhdHVcmk6lLly5PPvkkAISFhUVERIjH582bt379egBQqVSff/55ZGTkqFGjIiIi3n//fR8fHwB48cUXTSbTY489Nnjw4H379s2YMcOF3wUqzd5k+m8yXfV40W7Fx/3JisfYMQf4/PItgDFfP5u26C11+571py5WNmtbiUgYt3oeTzzXYMZya3J82jfT+Oy0SlwEIVQD1eWRQVehgoXnjRQoAxSIXEw9GGCAEAZYYBQsFajMCgCCwiio9IJGT4w6otUDAKM1sBqzXG1WGMxKuUopswKAkuUUrEzOs3KGygnIGAAAGQOsACwhLLWvGaTiRBtHFiWZKWXLb6j9sTgzndpLYdkQ25wtR72rUpOiIsmZvZ10zWAtplAoVqxY4XjqGN377rvv1Gq1+Pill14KDw+/cOHCvHnzWrVqJR50c3M7duzYkSNHTCZT796977tkF7nEVxf5uR0Zj5LGUYcHMX8l0snH+XW97zOka7xwLOf3pd4vvKds3u4B42Hr+fq89H5+9Na0xVN9XpytaNr6AS+IEHI5zK6cj/JGyuUJlKOsijIqhhGX1skZYIEQAjKGVbJUCwBUbhFUJt6qJyYdMegBgGhNrNYk05vlerNSaVaalQCgtHAKhlcwgpxhZAxlCQEA1jbhnJCC5XzSTiOx5gKAfQ47BYFSAcRZ7QXlRgutGRSnTzkW+VFCAAQAQiil4uwx8eK0yHpDar8jSPKq4g9qDYZhStxAKSgoSPq0WbNmzZo1K9JGLpf37du3CoNDDyY2h17Iojv6l9pt/3UPtst2btstYURwqW1Msf/l/LbEd+LH8sDmpbWpKPfwkfIGTTLXzvd59UNFkxBnXRYh5BI4Muh8xGoAc5ZgyRGseTyn43kjzxsFwSxQjlJKCGGInGXVLKtmZR5E6SWovQWtF3X3pO6e4K5h3CwyrVGhMSmUFqXcqpRbxcFBBSPICJURyhIxtbIt5CtUiMr+JYBg+6K8ADylPKWcALwAvEA5gfIC5QXgBMpRyju+BMpTsTEI9nqhjsxMZKuV5ej6AqBieVJ7+VBpDfdCtUoRqgkWXxJeC2WVpfdMaWWw+nF2yglBV8r4oDXpRtaGhT6vfODE1EqkCu3i9ezUzNUfWO9Ved1jhFCVwuzK+YhFxxgyiCmDmjMFSzZvzeOteRyv53mTQK22BIuRM4yclWkYeT2q8uW1PrybF+/mRd09iDvLuhnlGpNSbVIqzUqlWSm3KlhezghyxpZasQSYYsNzAqGUUIHwAvACcOIXD5xAOZ5yPOWEwl/UlmY5jvAUeDHxsuVbYHssAE9tXwXdYAVfQO09YYItuyuYaoXJFSpVamrqjh07tmzZYrEUndBtMpl27tz522+/ZWZmOvGOWWb4/aYwvtV93vd6NSB9A8j8s3zxlwSTPvOHT7wi31AEtXJiYA6q1t08h0/IXPm+YNBVxfURQtWjvNnV22+/Lbufbt26VWmsCKE6w2AwvP3220OGDOnbt+/UqVOLvPrmm2+GhYWNHDlyzpw5+fn5zrrpT3HCsCZMA/X9W37Rjf0hTriSU/jXA0qzf/1a1bqb+tHHnRVScZpO4ar2vbI2fAnOK+6FEKpm5Z139cQTT3h7e5fdJiAg4IHjqQtYk47NSyMqg6DQUoXBVtpKcKcyK0u1wKoZRi4WlGIZJcjcqJITeDNvNQIAYzawRgNjyJHpDQq9WmkwA4DSaFHKrApWIWcEGUMZ236A9jpSVNyIBgSgPPA8cDxYeeB4agUAgVp5anX0TgEABdt4H1DHZCkAWy0rQoARi2MBAAGWISDQghycisOQtGAuF9iqp1IAgUq7rApPwkKoiD///LN169Yymczb2zstLS0uLq5ly5biS0lJSWlpaX5+fgAQEhKybdu2sWPHOuWm224JMzuUqwJZfTW835GdcpzfM6jgTVL/314+K9V77LtOCaYMnsNeSv/mbd2hHW59hlf1vRBCVaG82VX//v379+9fpaHUGcSgZ3PSiFrPKLWCSico9QBAlQZBYaRyC6U8K9OwjBIACGFYVk1BsKqsAm8CAN5qICYDYzCyeoNcp1bq1QCgMphVJpWS5eWMICOUJRQAGHutdAGoAAIAOFIrDqwctfDUAgActQj27Mo2q53ytp1waKFSCRQIAUJtE7pYABD3tbElWMQ20V1s6xgWBAAAwZFa0UKT2TG5qq3Onz+fnp4eFxfXokWLc+fODRs2zLEu0lliYmIaNWokPvbw8Dhz5owjuzpz5oxjY2APD4+zZ886JbtKM8L5LNqvYXmLhU4MZb6PFf5MpEMaEwAQ9Hl5u9b6jv+YsFW+GIiwMu8X3ktbNFnVppvMt2FV3w4h5HQP9Dah0+l0Op2/f22tMlxV9DomkyMaPVVpGLVGUOkAQFDpBJVeUJl4pYXSeiBzAwCWVRPCyFgNVQgctQIAx5mI2UhMBtaQKtfrbdmVXq0yqpVmTpzY7ui7Ant2xYMAABzhOGLlwMJRM0/NHLUAAC/YsitxHhUAiJPQ7R1ejrLqBIDY91y27c4sdmBRIECIIJZqsN2V2vuuxEvY9uAB2/R2gEKXRrVMTk7O3bt3n3jiiW+++eajjz7y9PSs0H4+HMcdPHiw+JY1gYGBoaGhjqe5ubnNm9tmhavV6uzsbGkA4s5C4ktZWVmV/E4K23FbGNSYUZW7eD5L4Itu7NQT/IBAmZyB3J1r1J36yhs5eSZ7aWQ+/u79onJ+X+Y78ZPqueODyMzMvHLlipubW9u2bev8ngEIlUdlsiuLxTJ//vx169YlJycPHTr0jz/+AIChQ4dGRka++OKLTg6wFqI6SjNyicZA1Cqq1hC1DgAYtU7Q6HmrXuAMvMpMlRwAUBBkrIYQVsa6gUIAAKubheNMjMXIGg2sPl+h0wOASqdRGzQqo1XB8DKGsvbiCOKCPZ5SjvAAwIGVA4uYXXHUwgtmAOCpVaBW+yx1AQCAFmzhLAla7LhybL0MACAQwgBPxazL1mlFbBs5O9YJ2i4oOOoyAGBiVYNYBSht7VtxbnKQM6DVagcOHAgAKSkpjz76aMeOHSt0R5lM1q9fv/vfy83NaDSKjw0Gg7Q2mLu7u8FgcLzk5uZWoQBKs/22MLZlxdbxDGpMvrkMK64K49VXTdfO+L+30imRlJN7+AjDf3uN5w5X6TSvB/fRRx8tXry4Xbt2GRkZHMf9888/wcHBrg6q5po1C/btg8REmDMHXn/d1dGgKlOZ7GrChAkbN24cP358WlqaTmdb2NKmTZsff/wRsysA4PNVfBrDaCxEk0/UBqJRAQDV6IhRR0w6QWvgtUaBNwOAVWWlCkHGujEMK5O5AwBV+nPuFs5qFMcH5fp8AFDla9RigmVWKxhBHBkUu5EEAB4EDngA4IjVCmaOmnlq4QWzODIoCFYBOLDXVgAASekEKUIJAXEAsKBslkCBUBDAVqRUrDlfUIaU2mouFKubhcOCNcbqa8Ls0yWsfSvRJ13Y10IZse8hLi4uODiYEJKamtqgQambG58/f/706dPt2rVzLGrhef7gwYPidkBSRfquWrRokZ6eLj7Oz89v0aKF46XmzZs7ZrLn5+c7urgeRJ4VjtyjGyMqvEp6YXe231/cUxlrPYe8QJTlmA/vRAzrFTUp88cFqjbdiVxRrbeuiCFDhrz99ttarZZSOmrUqHnz5v3www+uDqqG2rQJdu6ENWtAJoMhQ6BLF8DFYHVVhbOr27dv//jjj1u3bh0+fPjixYv37dsnHu/Wrdvq1audHR5C6IG8Fsq8FlqxlOLnn3+mlGZlZT3yyCMAcPDgwaioqNIab9iwYf78+TxfkMCxLOvYO6gMw4cPnzlzJgDwPK/X67t16/b999/7+vpGRka2b9+eYRir1SqXyy9dujR37twKxV+iv+4Ij/sT94qPWbXxIjOUZ9Ky8gI63/+bcjpF0zaK4Fa6wzvdIyKr/+7l5Ci9Swhp167dqVOnXBtPjZWeDtOmwfbt0LUrAMDq1RAVBTEx4OPj6shQFahwdnXlyhWFQjFs2LAix/38/LKysnied2wb8tCy6tXmdC2rMbFqM6M2Mxo9ABCNkWj1xKBnTAZiNogrBAXexFErKASZzJ1hZAAgl3tQTSAnWIjVKDcZWH0KACjz89X5Wo1eqzZaxalXYK+lIVDKg8ARDgBsY4KCmRPMPLUIggUAxL0OKeVt098dy/mK9V0RSmx731B7sXYiEGAoUGIbCgRCGMmaQOmMeCjSfYU9V7VXx44db9y40a1bt/Pnz+/Zs0fcoPrWrVv//vtvQEBAy5Yt1Wr1zZs3jUZjly5dbt++/d9//z322GMVvUuDBg3Gjx+/e/fujIyMb7/9lmXZjh07OgYBv/322x07drAs+/zzzztlmOmfZDq0SaXK+1E6KuGnKb5jF+hI8/tv0Ox8nkNeTP92urbnYEalccHtKyIvL++HH3748MMPq+FeVqs1Kytr8+bN4lOGYXr16lVGJ2tNMHEiefFF6NyZih27gwfDkCFk3jz45pvqe7/kONDrwdOz2m5YBxWfVFqiCmdXGo3GYrEYjcYikyHi4uK8vLwwtQIAs16jz1DJ1Sa52ixTm1m1GQAYjZnRGojWRIwGYtQzZgMA8FYDx5msbhaq9JfLPQCAYeQKuZdFw3FeJsZskBkMACDX5anztNp8rUbvppapFYwCAFjGNvVKAMqDLbviqYWnFoFaBMEqUA4AqG0naXFYsKwKnxSAUAFsu9+In0PUnlpR6UbN9p8tacnQWrzvDSqibdu2bdu2BQDpOsHg4ODDhw8vXryY47j33ntvzZo1P/30U3p6emBgYCVSK1GvXr2kT7t37y69nXPn7uxPoe91qEx2ZTx3WC6Xd3k8bMYpYev/ueD9TeYXqGrdVRe91eOJ56r/7uVntVrHjBnTrVu3MWPGVMPt8vLyMjIyNm7c6DiiUnfmtfEAACAASURBVKnCw8Or4daVc/Uqc+yYeuVKvX1KIQDAlCmke3fNu+8aPT2r/J1TEGDLFtnHHyvu3WNatRJGjrROmmRlsKB4YVYr3HdVBqW0+MyH4iqcXXXp0sXd3X3BggUff/wxsX/kZmdnf/nll1iyQWQ0qvKyPZVGlUJllqvMcpUZAGRqM6sxs1oTo9cRvZE1GgCAmAzEbOQ4E+duoZpAAFDIvRhGLlf6Wtw5K2ciZgMAsPo4VX6ONk/rrnPTGrUqVgAAuX0nHIEIPOEAgAcrT8UvWyl2AKDAg70EQ+Fp7ABQtNw7te/jLPZClb1yHdOoh42fn59Y9C4xMTEmJqZNmzaOkgo13I08ygkQ4lneWgxSefs2eQ5+cWortu0Wbk8yHRBYmYs8IPeBY9IWTnLr/SSjca/+u5cHx3GjR49mGObHH3+snjv6+PiEhIRs3bq1em734NauhYkTwcenUK9Ey5YwdCj88ot2xowqD2DCBDh7FtasgZ494cQJ5sMPlYcOKTdsAF/fKr91rbB7NyxbBgcOwPbtUHYuQyk1SHPkUlQ4u9JqtQsWLHj99dePHz8ul8uTk5OnTZv266+/GgyGHTt2VPRqdZLBoszO81CbzUqjRak0y5UWAFCozHK1WaY3y/RGVm9kDDkAwBiMxGRgLEbOauQECwBYNJxc6csyCoWygbkeZ+WMAECMepnuljY3xyPPzUPvpjWqAUDJymWMLb0V611Jtg7kKHBi/YVCqZUtISqcY9mu4Rjxo5TQoh8ghZ8TQqhteSF6WOTl5d2+ffvevXv+/v6DBg3SarWCIGRlZSUmJt65c6dJkyauDrAs+1Po/1UqKzJdjQGeV4V2AQILujJTj/PnR8pk1f7rvsy7gbpdT92RXR4Dnq3ue5cDz/MvvvhiXl7ejh07sBxDifLzYdMmuHChhJemToVhw2DKlPt3mTyI/fvhn3/g4kUQC8n17g179sDcudCtG/z1Fzi7mF3ts349zJsHc+bAlCkwZgxs2wY9ez7oNSuzZvC1117z8/ObP3/+hQsXAODq1asRERELFy4U58AivUWRZXDTWBUquUVlVirkVgBQKi0Kg1muNyv0KrlOLdOLnVIG1pDKGg3EZCBWIwBwXiaLO6dQNmBZpULV0OJtAQCrxagw6pX5mR65bvXy3T0NWgDQmhVKRiYjDBGIvb6U4NgiEKhjlpUjtSolF6K2Slalf0PigkGxgaMwg5haOQ664Bd6VM2++OILceh/6tSp8fHx9erVU6vVn3/+ec3/QD1wlw6sVHaVv+83935R4r+OkcHMilhhxVXhjdYuGE1xj4hMXzrDve9TNXDx4Jw5c7Zt2zZz5sxvvvkGAOrXrz9u3DhXB1WzrF0LAwZAYGAJL3XsCC1awNat8MwzVXV3gwHGj4clS8Bd0vXJsvDpp9C6NYSHw9atTkgmaq/UVJg+Hf76Czp1AgD4+WcYORIuXID69R/ospWsJhoZGRkZGZmfn5+ZmdmgQQO1unoXKtdsBk6eZVKbOJnaKldZlEoxuzJblHKVUmlWGNRKtUmhVwOAXKeW6/WsPp8xGOUmAwAwZoOVM5nrcQpVQxmrAnUTADD7WRiLXq4/p81L9851y9a5A4CnSa2VyZQskfHins5gK4Blq5zuqL9QYmpV0rigHSnYZYcQxxch4ksABEAQS4zaS7cTggOFdZ2Hh4eHR8GkbkeVhGbNmlX6miaTadu2bc8+W7Q/ZtWqVe3btxfndw4YMKDS1xdRgAMpwoKuFX6vsyRe59KT1R17O44s7MH2+4uLasb4qR4wqAqT1W+kCGplOPWvtteQ6r73/bRr127SpElGo1EsYOaoBFvV7t59ZupUUKvBxwd8fKBhQ2jUCJo3B6Wyeu5fXpTC8uWwdm2pDd56CxYtqsLsav586NkTii1FAwB47jnw9oYRI+Drr2H06KoKoIZ74w149VVbagUAAwbAoEGwfj1Mm/ZAl32gWu3u7u7u7jV0HgBCqCY7dOhQbGzs4sWLi2dXK1asYBimS5cu8+fPf/AbXc6mbnIS5Fbhvivdga3ufUdK971p60Wea8G8c4pf29sF09vdIyKzflmkDRsENWwq8ujRo0e74pNZrU5q0gQMBkhJgYsXISUFEhPh9m0ICIA2baBtW+jaFXr0AJfvf7t/P2g0UHgJRyHDhsGbb8Lly9CmjfPvrtPBqlVw9mypDQYPhn//haeeghMnYMEC0NT0lalOtm8fXL4MGzYUOjhuHLzxhouyq+PHjx86dCgpKclisTgONmnSZPbs2Q8UTp1g4Jlss8LMsyZepuI4lVUOAEqZQimzKs1KpdyqNKps2zPr1Uq9WqHTy/X5YvEFmcFAzAYrZ7R4W0DdRCbTAAB1a24JMBOTQaE775mbXj/fHQAyjZp0s0JrZlRWmYzKAUDcHBCKlUuoWJ0EcUsccPRUMSBWGQUGAMTNpyllCKGEMrYOLUooDg6iCurdu3eXLl0WL15c/KXJkyc7a9tmANifQiPKvbegA5+XZboaUy9qUpHj8zuzbbZw0XdpeEB1/8ArmrZhtB7GyyfV7cKq+dY1U716R6dOLXqQ4+DWLbh4ES5ehDVr4NVXwccHnngCBg2C3r1dkzqsXAnjx5fVQCaDl16ClSvhm2+cf/cff4SICGjcuKw27dvD6dP/z955h0dVtG38nlO3pkEKCQQITQWS0IKAgCAt9BKKVAFFQeCzoFJEBJSiqOCrKKAgWFABRaUHEAgQQqjSpSs9hLTtp8z3x9kUQsouJlE0v2svzc7OmTNb2H3OU+4Hzz+POnUwYwaGDIE3va8ebBYvxgsv5Pd3tmwJux0HDqBx4/tf+X5ewueee27RokU8z4eEhORNuahbGob3A4hdYdIl3qUyToXVsZzIKgBEWRFZWXTJIieLTp1od0Frz2zV6ywGXZZBzMoCwFsyWetZYrdKLrsz0EVNNQDwnBHmh1xVHIzDasg6F5hhBJBuMaU69LedOqOT06l6ABwjELB5sqDulUsomuz8Ki0YCIAwhDAEDCGMZle5Q5CEglIC1X0iQrRGOu6mhLmnfoBJTU2dNm3aiRMnHnnkkenTp1e8p67mueeey6t60r59+7i4uBs3bkybNi1ncMCAAW3atCmjHZcoBw8eTE1NPXHiRJ06dQ4dOtSzZ09No6FsuHr16ubNm9PS0rp37274y7+Hu27Q3tW8toSsezcYGrZmdMZ84wYO82KYcXuVg704ocxdSKZWPSwJP5dbV0XAcahZEzVrolcvAKAUR49i0ybMnYt+/dCsGeLi0KtX2RXK3b6N+HgsWlTMtFGj0KABZs8uYfuPUvzvf/BE59vXF199haQkTJ6MiRPRoAGysnD+PFgWkZHo0AGjRsGY/1/DA09qKrZsKeDdIQTDhuGLL8rWurp06dKiRYteeumlt956qzzdqkAcCjIlRlLhUhmHyogKC0BkVIHlBEYRWUVwKSInAdA5dDq7Xm8z6C0GfZYRgD7TqMtK5yyXBLuVcVldlZwAYH6I583UP9JR3aG3W32zrgAIyzSl242pLv6Ok02z6wFkwMAxgqSyKvI6k4rNiSJ3/1ezrdy2FAHDEJYhrOYYy+niDEIJGEK1aTk5WP8e91X//v0rVao0e/bsTz75pH///jk9CXJo166dZl0pijJixIjY2FgA6enp33333ZIlS7Q5VYq+YPyncufOnbS0tA4dOnz44Yft2rW7ffu2V53+FEXZsWNHsV2ci+Dhhx/u2LHjxYsX+/Tps3HjRi+2XhB7b6rzYrz7oqOKbE3cWFj75D7VmRXn6Owj6rSGZW1e6aMey/hpiXTjMh9StYxP/YBCCKKjER2NiRNhsWDLFqxejVdfRYMG6NMH/fohMLB0N/D55+jdG35+xUyrUgVNm2LVKgwbljt4+TJ270afPtAy2dLTYTbDK03JTZtgMsFzQbqmTbFmDQYPxqFDCAiAxYJKleBy4euv8fbbeP11jBvn3Qb+4Xz1Fbp3L/jdGT4cDRpg3jzcdxqh19bV77//zjBMuWlVBE4FWRJklZFUKqpEZBgAAqPyCiswqsCoPKMKrABAZBXRKevskt5mMFiNAIxZRmOm0ZiRLmal8tYjxGED4KrioP6RAu9LKzZy1LbrbTsABGb9UdVqTHPq7jjN6S4RQAb1tZF0F7EqxJEdrdMo0MAi+f6vea0IGIAlRLOl3HYVActoI1q3QUJVCqJ1eQZAGQKGuqWy/g2cOHEiMTExJSXFYDBERUUFBgYeP348n/MmLs7dmWTDhg0+Pj5durhzjUVR7Nu3b1nvuHCoy6lk3fFwMmsOIILo6+vbrl07ANevX69Xr179+vW9OiPLsp50cS4Ml8ulvZjVq1dPSkq6cuXKX1HVupBFCUg1s3d2v/1IAhdcha9UrbAJn7Zgo36QulclDSqU6RUFYTnjox2tezf49R5dluf9d2AyoXdv9O4Nh8NtZk2dihYtMHAgevQolaAhpfjsM3z1lUeTn3sOs2e7rasLFzBgAC5dQu3a+OADrF6N8+fRvz9698ZibzqJf/wxxo/3Yn5WFpo3R4cOWLMGoghZxsmTOHAAu3fj5k1MnIjZs/H22xg+/F9iYy1dig8/LPihypVRrx62bUOX+y0j8dq6Cg8PV1XVarWWW1eF4VKpRYJCIanEpRInQwEIDOEZyjMMRyjPUJ5RAfCMKjCqwCg6p15vlwAYrCazxeSTafLJMBkzUwTLUQCMw+qo7qAVG4lCgDO4ubOuA4DO/mvlrEsWmyHdJWRIIoAsi4+V9XcxVll1qEQmUAFQqoLkKF3d80tAcl1cBAyyg4Cap4ohLEM4zXfFaEldbt+VyhBKwRKqACCEITQ7pJhbRehZs4B/JIcPH46MjNRiUnq9Pioq6vDhw4WFxpYuXTp06NCcELnFYhk6dKgoip06derTp0/ZbboQbAe3Z2393qOpBOb2A4xNO2qyC6dPn65RowYh5OrVq2EFlpIDAPbv33/06NG6des2zy7p/ou+q5kzZ+p0Oi2D869rPSTepC2CvQ8L7llverx3ERMqGTC7CfvsbmVvt7KWvzI273LzndG+XZ4q65bS/yJ0OnTvju7dYbXip5/w1Vd4/nkMGoQXXkBJdAzP5eef4euLPD0IiqJzZ4wbhyNHEBiI9u3xwgsYMwYsi/nzERUFQcDy5Zg6Fe++Cw+lR2/cQGIiVq3yYsOjRqFlS+QkQ3IcIiMRGYkRIwDg998xeTLGjMFLL2HYMAwfnltn9yCSnAybDa1aFTqhfXts316G1tVDDz3Uv3//adOmaa3B7vO05ZTzD+bWrVv+/v45dwMCAm7cuFHgzNTU1HXr1h06dEi7azabX3nllcjIyKtXr44bN+7kyZMl0oG4WGRZjomJyemd0L59+6lTp/I8L4qisVmssVmsV6t9/vnnLMumpaXVrFmTUrpnz54iujivXr161qxZ+bo4e+i7yszMtFgsqqoyDDNmzJgRI0Y0bty4ffv2VatWBXD06NGYmJi8jitKqdVq9eq57LjCNfKjFotS/NRslJQr0u1rSrW6FouliGn9wvDdOf6N/dLkel4sXgKwIlvtkbS9m4Qm/4jeGE6n88GtHDcaMXAgBg7EjRv46CM0a4aePTF7dsm0VaYUb76JGTM8nc+yGDUKH3yA/fsxZgzGZRdUDBuGyZNRuzZiYxEdjWbNEBmJjh2LX/Cbb9CzJzx3g3zyCc6cwd69hU6oXRurV+PCBfTpg/h4/PILAgIwejQGDXogKw1Xr8aTTxYl9dimDcaMKWA8NRVWKyk2C81r6yojI8NgMCxdunTbtm0xMTF5PVjlNYMaLlW1qqpKGZmFRCEwBADPEJ6AYyhHKEvAMRQARyhHKMdQLWIIQM/pjXajj9Xkl2UOyDD5ZqQAMGSd09utjtp2Z3BzUazoCGsNwCU5zLadEVa9xanPlIIAWCSdxRXoZK0ydahUVqn2pa9SAER1C47m5a7yQAaEIYQFYQnhtDggQ7jcG9yRQQpQoqoUDCglLACVMiAMoQwFk53n/mDntZtMJk25R8NqteaVesrL8uXLGzVq9Mgjj2h3w8LC3nzzTe3vGjVqDB48uGysK5ZlP/30Uy67zic0NNSrTKl8tGzZ8syZM4899tjx48fj4+O7du0K4I8//vjpp58qV65cu3ZtQRCuXLlisViaNWt2+fLlffv23Uerwd9++23//v1Tp05dsWLFE088ERcXp0lntWrVasuWLUlJSWlpaavuvu4mhHj7vPbfkUfVZU3eyDGkb91lerSjyaf4PrdftUXDtXK3CF2zoDKND3Itu2Wu/yKgTa+yPGlheNjR9h9OSAjeeguvvopp01CvHhYudCfF/xV+/BEsi65dvThk8GDUqIEXXsDLL+cOfvklevTAn39i0SKMHo1338U773hkXX35JT74wNNTX7uGqVOxb1/xaUYREdi/H6+/jpUrMXgw1q/HpEl46imMHn3/nj9FwZYt2LEDR44gNRUmE8LC0KULYmOR5zq3hFm/vigRMgBNmuDiRaSm5re2588nHTuSqsWlPnptXTmdzp07d4aGhkqStGfPnrwPldcMarioaqMqBRRKZEokBgB4Ao4BSwhLCEvAEABgCWW0tCZCOaIFEAUdqxrtel+bMc1i1sQXAjOMvllX9LYdzroOR1hrnS4YgKNqO0l2BjgS69h1VpcAwCoH2NLNDjVEYh0qlSUoABSVEipToKC+NZpppZUBujfCQDOneAAM4RnCsYRnwGXXDBIAKlW0/Cs1O4CoUoYQ4kGy14NB1apVz58/n3P3woULVQv5l7R8+fLxheQ1VKtWLSsrS5KkMpAyJ4Q0bNiwpE5Uu3bt2rVrA6hZs2bOYHh4+IEDB4YNGyZJ0oQJE5YtW/bVV1/duHHjvrs4R0ZGRkZG5tzNWwHw1xVENTIlXMii0d6kRlFZsh3YHvSCRz9KQXp83JwZskM53Iszl6Feva5Ow/TVH0lXzvGVaxY/uxyP8fHBBx9g0CD06oXLl/HCC/e/lKpi+nTMmlVkF4y7kWU8/zzCw/OrJyxejI8/RlAQWrdGt27o1Qv/9384exa1ahW12rFjSEsrKuyVj1mz8NRTqOnZB4rnMXcu2rbFiBEYORLvvYfPPkPz5mjSBOPHo317L5615jVctgzh4ejWDePHIyQEFgvOncOqVRg/Hi++iJdfvv/U8sK4dAm3bxdTEnjlCh5+GO+8g8ceg16PRo3g7w+XC59/joEDi/9189q6CgoKyvvDU869SERxKBLAqZSRKcMzBADntq7cylHah48BcSsZuPPDwTLgCUSWNzoFX4c+1W4AkG4xhWWaArP+0Nl/dUkOR9V2AHT6UHuNWCI5gx1H6ztFAHaZdyg+zowKEnGprEy1TjhazlVut0HkFWrXXFYAiNvw4xiGYwjHMjwAlvAsEVhwDOGyqwgJBSWEASWUqAxlAaiEJYQFZbI1HUAfZNMKQJs2bVwu14YNGzp37rxp0ya73d62bVsAycnJ58+fHzBggDYtKSnp/PnzeaNm58+fDwsL0+l0kiTNnz+/adOm//wuMZ5TsWJFzYd369atCxcuNG/ePDQ09O/eVFEk3aINKxDem7wo+9EEoUpNrqKnApQ9qjKbrtBnEpRv25ZhmgQhhibtrfs2+cWNLbuT/mdo3Bh79qBzZ2Rl4b5dzx9+CJPJi5SdO3fw5JPQ6fDZZxg3LjcVffduKApatQIhGD0aEybg228xbBgWL8a77xa14JdfYtAgT3VnL13Ct9/i1ClPd6vRsSMOHcLw4YiPx4oVmDYNK1di4kSMH4+xYzF0KArx+Lu5fBmzZmH1agwciK1bkS8ns3VrjByJS5cwYQLq18ePP6JkNWHWr0ds4bq827bhnXdw9CjMZqxahZMnYbHg5Em8/jr8/FC/PqpWLf4HzuuEzG3btgUEBFy9etXbA/87yJDtkOyqbFdVh6La3Tdqk6lVhlWGRYZFgkVCpoQMF9JcuOPEbSduO3HLjut2XLGRSxbuXJbuVIbvqQzf4ykhJy5FXDz8cNbuQCFxJ3t+PXt+vd1+Ra+vLNXphsceCWt6LKzpsQbhFyP9LbXMXBU12J+prOcC9FwAzxoZRkcITwjndpOBhdvMY0FYAo6AI4QjhGcIzxCBIwKbfXP/DYEDz4Fn3TeOJRyLnLghy2guOcJka2U92NIMgiAsXrx42LBhDRo0GDJkyJIlSwRBAPDrr78uXLgwZ9rSpUv79euXN+nkxx9/DAwMrFu3bkhIyJEjR5YW7Xd+oEhJSTl//vylS5cAdOnSJS0tLT09/cqVKxcvXjx9+vTfvbuC2XNTfSzEu4+iNXGTt2lq8x9lz2XSj0+qXh31FzE+2tF2aCd1OcvypIXhcrkOHDiwaNGijz766O/eS8kQHo7t27F4MbZsuZ/D4+Pxzjv45htP5x87hpgYREbihx/w+OOw2XD0qPuhRYvw7LPuq/GJE7F/P3bswDPPYMUKOAt/82UZX38NzxV5Z87E6NH3I04RHIz16zF4MFq0wKJFGDYMhw5hyRIkJKBaNTzzDJKTCzjq6lWMGYNGjRAcjN9/x//+l9+0yqFaNaxejRkz8MQT2LDB6+0Vwfr1hdq+R49i4EAMGYI//sCqVRBF/PILfv0V27dj7Vq8+CKee84j3wHxNmqekJDQqlWrrKysv5LY8S8mPT29ftX2AXJtHRUE8AJhOUIAzZAhDLnLY0rdrQGpCqjUnRil2SYcYUSWGDkCwFdAsE4JN9pqBqRE1LgY0OQsAOXRhlKdbnpDVZv1onhsNQB12+Xzuxvuuxxx6I7hdJbrT+Y6gDv0ql1OkxWbSl00byZWTq4VslOsGJ4hPMeILBE4IgLgiMBCYN1ON5K9Z6pCUSArcEnUCUBWHZJql1W7ojpU6gJAqQs0p9FhyZOZeacMEmltNtuff/5ZpUqVHEFLSqmqqkUXc2RmZl6/fr1ChQr3CpCWHoIgWK3WUvWTOZ1Om80miqL2aly/ft1sNouiaLFYeJ7/Z34bdNwoj63LdAv39BpSvn0t5cOXQ6Z9mbf7jSecz6TNf5F/6cDFBJbddcXtJW8aoloYYv7m3PasrKz4+PhXX301NDT07Nmz169fL5vz7tmzZ8KECYmJiaV3il27MGAAkpML7r5cGCdO4IknsGoVWrb0aP5PP2HUKMyfj5yOUFOmQFEwZw7sdoSE4OJFBAS4H/rxR7zxBg4fRmwsRo5Eths9P+vWYc4c7N7t0Qb++AMNG+LcueJFuYrg/HmMGAG7HQsXusNtN29i2TJ89hlMJjzzDAYPhq8vUlIwZw6WL8fTT+OVV7yoHti3D3364L33Cn3KXmGzoVIl/PlnAd41VcVjj2HkSIwc6b4bFITffoPmpj9yBE2a4IsvaM+eNmNxae1e+65iYmIqVaq0fv16bw8sp5wHC4PBUKdOnbxa4YSQYutkfXx86tSpU5amVdkgiqK/v3/Oq1GpUiWTycTzvL+//z/TtKJA8m36aJAXX3HWfZsNjZ/w1rQCUMOHfNaSjduqXLd5e+j9Y3y0gzXpvlwrJU3v3r3PnTs3w/PquAeEVq3w/PN4+mkvDtm4EW3bYv58T02rTz/FuHFYvx55m20OGICVK0EpduxAgwa5phWAXr0QGoo5czBqFLJFi/Nz4wY+/NCLntALF2Lo0L9kWgGoUQM7duD559G9O555BtevIzgYEyfi7Fm8/z4SElC1KqKjUasWJAnHj2POHO8KMx99FPHxePllrF79l/apsW0bGjcuOHC5ZAlY1q1AAYBh8Pjj+PVX993vv8fgwXjlFZKeXvx1lNffIwzDTJkyZezYsadPn27VqlXeWiqDweChFvO/GwWykzi18jqVUo4y0AQ6KSF51M4BqKAqqEKpAlWB6h4hKgCiEk5hdRIHwOjk7jjZO05zukuwOPV17DoAwY6jgizZHulpMFa31e8DQKd+H6EcUSkBqgMGNisUAEu4NE6wkTRJtamqCwCFojksCSEAk10eqDmuBJaIHBHdvqvsOCCTUwyY7bsiIMjeqkpkLUSoEpZQLe+KAVFzZbbKKafMOZ1OA0QS6HkyrKraDmwvTJ+9WLqFM7/dQbctckJXTl8mPdr0dZumr/pIvn2Nq/iPzn57oHn1VSxfjq1b0a5d8ZM//RRvvYW1a9HMs05Fe/Zg+nQkJqJatbvG69eHry/27MHGjYi9J0y9bBmaNsWHH+LEiQJy27duRZ8+sFiQlASnExMmFLMHux1Ll6JEPIBa95iePTFrFurXx7hxeOklmM2oVAmBgWAY6HQwmXDoEPbsQc+eXuuRPvIINm1Cx44QBHTv/pe2unEjOncuYNxux9Sp2L79rqz81q2RkIBBg9wHfvwxKlbEhQukWI+m118Dt2/fHjt2LICcyvMcGjZsePDgQW8X/PehQJaIgwEBpZRQhbIAWMpo/ZCRbVcBUKEqUGWiyFBkImvHKkRWoQKUgNHaM+tUfZpdn+4SMyQxUwrSKgTrO8Uw1zFRWW2r38dgjABgi+yro9/XxBECMKQaR4wAeEvIFVW8w+ltapqk2gAo1KVSRQtCEjAM4QAwhGMZgSMCR0QOIgcBmnVFOdadpKXtnVKoChhCCAVUuK0rlUiKltuuSbpTObsVT7l9Vc7fw/4U6lWcznH6AOsfyIeE3/cZJ0czv92hz+5Wlj/OlkWAkGENjdvakuJ9ugwrfvK/jjt37pw9ezZHsJcQ8uyzz7Zo0aLETzR1Kvvqq3xCgqPoOrjPP+fee4+Pj3dUrUptHrgwU1LIgAG6Tz91BQUp986Pi+O//JJs385+9ZXTZrsrxcLPD19/zcTFiR06KJ9+SmfOlHIeOnuWGThQjItTVBVvvCF16SKmpyuTJ0v5V8/DihVc48ZspUpOT/bsCTyPadPw1FPkjTeEsDAmIAAuF4YOlQ8elIODqaLgl1/YefP4V14hEyZIgwbJXqUzjLrT/QAAIABJREFU1KiBVauYXr3EL75wPf74/evMbdqkX7Uq/wsLYNMm9uGHuYiIu16NJk2YhQsFm81x8ya5fFlXr579kUeow6EAxSiJeW1dBQQExMfHF/jQg6spV7KoVJbg0qoAKaUs4QCwYIi71TFVCdWsKwWKTGQZkkwkGS4AMlwKJDW7xE9LiuIYIQOGDOqbZfGxSDqrHADALvMNXHxV+ahO/d4W2ReAwVTDFtVPh1U1ySEmUeVJNQAia9ZlVbgm6VJZs5VJA+CitmwDCySP74olPAeBg8hD0Kw6DhxDWTbbtAKgWVQMURjKgIC6rStFIRJLeBUuFQwASphs0fZyyvl72HeLPuqNDJV132ZjUw9EhAqHAF+0Yp/YIM84VEYtCA0xHW5/OtkndointWH/IkwmU0BAQN6K3Vq1aomiWOInevJJfPgh+flnXb9+hV4rfv01mTeP2bpViYgQPFx2/HjmqafQtStX4K/woEFo2pQVRTRqxN9r1bVogY8+oqNHc3Y7+vZlIyJohQqwWhEXx86dq86dyy1dqoaHC/HxtH17vmZNdsiQQnf+6afMnDm0BF+38+exeTPZvJns2UOaN6eZmbh8mVSpwlaqxGiGVP/+6N+fJiZi+nT+vfeEN95QBw6knn9+H30Uq1bRfv3ENWvUZs3u5+r97FnIMomOLsCs27yZ6d49/6vRqBFu3mQyM8VffyXt2sFoFCmlHOco9kReW1eiKLbzxEn6H0aFLMPJuB08lIUKgKUsIdnuH0IVTYwKsmZXSXDK1AlAoS6FSirkbPcSABCwHCPYSLqV9be4Am3pZgAOxcep1pAVNkI5oqPfA7BF9TOYatii+uqY1TXYQ9w+GYD4R3U962O0mEwO8Q7MACyMxUlsMlyabaRJLbDgWPAceI4KHDiOui1CljIkW2dB27wCVQEru60ozQOnqERSiEQI525QSJly31U5fy/7U+iwWp5+Z6uWdOe5owGDioujFIeew9r2XLOf5QgfDKlZ6hYPHxLO+lV0nDmoe7hJaZ/rn4YgCBUqVOjveXrRX2D2bIwfTwYMKFjG6epVTJiAHTtQq5ansa69e3H0KL7/HoXlcdaoAY5DTAw4ruAJ/fqhQwdER6N/f0brX/DQQwgPB8MwFSuieXMGQFgYVq5Ex45MbCyCgwtYJDERDgc6diSey1MViMOBhARs3ox165CZic6dMXQovv4avr4EwMGDmDqVef99zJiBJ590Xwg89hji45GQgIkTmfffxwcfoG1bT0/XujW+/BJ9+jDr1xcjWFUgW7eiQ4cCXnlKsWEDJkwg+R5hWTRvjsREdssWxMaCZVlKqScv2f0nCJw7d+7333/38fG5Py3BfzEUqkIlmbAEhBJ3+EzJLrujoCpRFGhxQEmGS4ZLpk5ZzWNdUZm63VcaRFJZF7G6GKuTtTrUEADOjAou1SSrESolNXEEgA6rbFF9DaYatsi+IvNjNf4QACHJZbgUYeb9zRb+pt0PQJpstFCngzhlIlOoWkIVA4alLAuWA8tShnWbXExOkaNbKYtSBVShKuPWDgUAlSgqkWXiYhleoRwAEIZQQgnKU6/K+VuwyziTTj1vsWw9sF1fv3mJdO4L0mNdR7bNermSnrQLK3UPrjGmgzVpy3/QuipL2rUDw2DXLrRuXcCj48bh+eeR3a/BIyZPxptvomiHkSjCt8h+AX5+ePddzJ6Ns2dx9SqaNAGAl19G3pKzqCiMHInx4/HddwWs8PnnGDnSC+XPfNy8iZ9/xrp12LEDUVHo2BFff42GDfMv2KgRNmzArl2YNAnvvYe5c9E+u861ZUvs2YO1a/HMM4iJwbvvwsOO7R064PPP0a0bNm5EdLR32960CU89VcD44cMwmQrWaG3ZErt2YetWvP++Fye6H+vq2rVrTz755K5duwB07dpVs67q16/fs2fPmTNn3seC/zJUqiiQNOlQClBoiU2K5svJVjSQAMiQZOqUqVOhLs26UqlLoTKlMqUKoGYbJ0QFUYhDVh0ydUisA4BEXHJmsEoNQHXtw1yTHNIxq22RfQ3GCFu9PgL3E4Aw8aigd5ouVPfhK14WdABuOYQ0F2+V9U6qKNQdowTcrXCYbOUIZGtDaDZStiGl5eAzTHaUEwAlqgKZIy6FuBjiBKCCzQ4OlruvyvkbOJRK6/oT0eO0Wdv++BJU5nzYj6x6govbJm+J5aICStfA0jdsnfHLUtWayRiLlG4sTS5duhQXF5eVlZWamtq4cePatWt/47nW0wOCVqN3r3W1YQNOnPBC2grApk1IScGQIUXNcTiQkoKbN4tZqm9ffPstXnsNzZujbl3Uq4elS5GaetecqVPRoAHWrcvfk8diwY8/4uRJL3aucecOvvsO33yDEyfQqROefBLLlxdfctiqFfbswY8/upWuFizIdaf17ImOHTFnDqKj8eyzeO21YmRINbp2xccfIzYWGzagQQNPN+90YvdufPllAQ/98gu6dSv4qJYtMWIEqlSBV/LJXvuuKaW9e/e+evXqmjVrJk2alDM+ZMiQdevWebtaOeWUU06Jk3SLNvU46cp1+TSVXGJ1b5wPxdEyhHzcnO26WfnDUrpXF4zOqHukie3QjlI9S9GEhIQsWrTom2++SUxMXLRoUdn01ixjhgzBhg35DRdFwf/9Hz791Ls+LdOmYebMYirmkpJQty4SEyHLxaz22WdYuxYTJsDfH999h2+/xVNP4dKl3Ak6HebPx4QJkO7Obl+1Cq1aFRwxLGJXWifEhARMmoQbN/DNNxgwwAs1h1698NtviIhAZCS+/z53XK/H9Ok4cgTXr6N2bbz/PhzF5zWhd28sXIjOnXH4sKcb2L0bdesW3LvwXn3RU6egpbc3boyLF9Gmjadn0fDad3Xs2LGkpKQjR45ERUX98ccfOeN169Y9d+6ct6v9K6FQVSorkNyJ7VABZIsaUBWqClmLDMrUpVCnTF2K6lSoC4CqSiqVKeRsNU6avSYhlKhEVqmsUhmAysoqo9KsSoCBIdUAMIlqDfaQyPxoq9fHYKxmf7gXAJ4TgnTJgsFhOlfN/3YQgD+txltOLt3FWWXOqWg9CEEpdQuZEpBsz65bPMLdTocCUCgUShVKWRCGEi00qFKqEFkhkkycLOEBKIQjlKUo7ouhnHJKh323aM9qHocFk7YYH+14/wGSQoirzqQ40GmTsrsbF1Dyyda5GGLaZ65bZmr514rU/wI6na5Ro0Z/19nLBn9/dO2KL7+8q/ngt98iLMy7H909e5Cejp49i5m2YweeeAKShIMH0bRpMRubNAkvvohGjfD226hbF8eO4bXX7goFduyIatWweDGefz538PPP8dprnm47MRGvv45Ll/D88/joo78kjqXXY9Ys9OmDwYOxYQM++gg5enmVK2PpUpw8iSlT8O67GDIEQ4fmNsDZsQO7duHIETRujIED3TIWvXqBEHTtil9/Re3axZ990yZ06lTA+M2buHABeUtOU1LQogUqVsTSpXjsMRiNdwmPeYLX1tWff/6p0+mioqLyjev1eqvVqihKsXKL/3ooVVUqq2AV5CmsA0NAKFS3dUUlAAp15ZhWmhiVqoUFodytdU4BQkEIVJUqWntmSlXKUcKAzQp1iy+Qatw+uRp/SOB+sj/cS28IB2Cv3Z3yor8+UTDaTGdtAPxTgq9m+aQ4xQwXa1WIUwEASSVaGNItGJ991mw1eShU698MmVJZpSwljOq2riiFClUmkkycMuMAwKi8SlyEMpSo8LIZQDnl/HX2p9C3G3vkmKcup/1IQvBrn5bGNkY/zJzPpL3i5S2xnOdhSm/R1W6QZpkvXbvIh1YvrXOUA4wahWefzbWuVBWzZmH+fI+OdbkgCACwYAHGjSu+xHPnTrz6KpxObN9ejHUF4MABTJuGV1913335ZTz8MPbsuctWePdddOjgFkwHcOoULl4sQEzrXi5fxksv4eBBTJuGIUPAlZCWW6NGOHgQ48ahRQusXYvqeT65jzyCH3/E2bNYtgzdu8PpRPPmOHsWKSno3h29eyMpCTExePFFaMGznj2RkYGOHbF7dzGq+pRi9Wr89FMBD+3bh6ZN73p206dj6FC0bYv+/bFoEWw2pKR49xzvp4uzw+G4cuVK5bvTz/bv3x8WFlZuWkHrl0JllbAEWnI3RXZpHqCqVFEgq1SC5rtSXQqVNJcVgGzTKm/TZWQ3yIHWMkdRKbL1SO/wDEs43hICQGTN4h/VhSRXmHiU5wR77e4A9PowR0SsyolGQ2K4+RQA41mL343gG5l+qXZDhsRbZRaAQyGSShRK3Cd2O6Wgav+lUCgAKBSySiSGcCplCSEqoLnjoCowyMQlEQcAmXGolFMIA0rKU9vLKWOu22CRaE1fj3xR9qMJQvW6rK83utHe8G5TdtCvylO7lG/alJoIFiHGmHbWpC1+vZ4tpTP8Mzl3blpsLKKiEB2Nhg09cl38FVq0gNWK48fd3pS1a2E25yZoF8G2bejTBzt3wt8fv/6KYruPOp04cAAtWkCS8L//IU8CTgHY7VizBr/9ljui12P2bLz4IpKSch2y9eujSxfMmYPZswHgww/xzDPFmEqU4oMPtHpJfP21d9FPTzAY8Pnn+OgjNG+OVauQrzquVi3MmoVZs7B9O/r1Q9WqiIrC1q1YsQIdOmDePMycCT8/jB4NAMOGISUFXbti717oCy9N2bcPBgMiIwt4KDnZXRagcfo0vv8ep06hQgWkpuLDDxEcjF27vHuCXuddNWzYsHr16mPGjLFYLDlFiYmJie+8805cXJy3q/1LUSkUlSrZhpR2k1QqKVRSkP0HldScG2Sqhd3uMq0oaM5NcwKpFCqoDCpT6pRVm11OS8P1K2raFTXtfBY9nuZz4lJESvJDbFIyd3Ezd3Gzw3Fdp6tEq7Z3NGwjNOWFpnxQwzPVa1+oHXqlVoWUGj4ZVU3WqiZrFYOzkt4VpJMqinIFQfETVD9B9RVUH56aeWriYeJg4mDkYOBgYGFgiZ5l9AyrZ1gDw+upqKN6EQae0fOMniWi1jT6QW/nXM6DyP4UNSbI0zifdd9m46N/SeaqaAjweUv2YhadebgU2zwbYtrbDv5Klf9WLD48/OPnn4fZjNWr0bEjgoLQqxdmzcKmTfkTpEoEQtC7N374wX131ixMmVL8UcePY9AgDB+OwYOxYAGGDUOxjaOSkvDIIzCb0aoV9u2Dy1XU5LVr0aRJfp/NgAFgmPx1gtOnY8kSXLuG1FR8/z3GjClq2bQ09OyJ1auRnIypU0vetMph7FisWIE+fQpu0nz5MkaMwLx5OHgQGzbg7FncvInu3fG//yE4GG+/jV9+cc+cMAH16hXzpL79ttA2hQcO3GVdTZyIiRPdvXp69MCePWjZEn/8Aa+6aHrtu2JZdvny5Z07dw4PD69QoYLVam3cuPHhw4fr1q17r3r7fxMKSqlKoBAiQ5MlcFfegUKlVFFycqeorIkvuNvhAHnSreg9MTUKChA1OxVLUVWXDJuNpN3h9ACuSTqjxWTm/U0XqgsGh78+EYDKiY6q7XVikDPscTuvB6AzJPuaL4q+FtO1QL9U/wyLCUCmQ2+TBLvMOVXWpbASJQAklZFVIlMiUyKrACCpRKJEUuFSwKlgCQOAUUDBKaooUYPmu5IYm6zaVeIkVCoPDpZTxiTdok0DPbpulFOuyilXdI+UrpyBnsNP7bmmP8mRAehZtVREsLgKlfhKVR0nkvSRJS9W/o9FEG537ZpbCnftGvbuxYEDmDcPyckIDUXjxmjQwO3c8qqrXWH07o2xY/HGG9i2DQ5H/iq8e8nIQNeuWLAA/fsjLg6ffOJRjd7One7iRF9fRETg2DEUkdW2YgWG3aPVTwhmzcJzzyEuLtdBFRaGkSMxYwaqVEGvXggKKnTNK1fQrh1iY7F6NUqzNbyb9u3xyy/o0QMLFiCPOixu3kS7dnj11bsEFEwmDB+OoUMxdSrOncPzz6NTJ/cmFy3Co49iyRI880wBZ1EUrFqFHTsKeIhSJCfnSmelpGDXrlzbNCAA/v4wGNCuHbZsKeDVLoz7CaK2bNny6NGj8+fPT0hIUFVVEITp06e/8MILcrHlDeWUU045pcy+W/S1KI+MGOu+TYYm7e+jbbO3BOuxtj3bcZNcy4fU9S8Vh66xaUfrvs3/KesqH6GhiIuDFkFRFJw4gYMHcfgwfvoJv/0GnkflyqhcGWFhCApCTnN2QlChAgICEByM0FBNkLPQUzRvjlu3cP485s3DhAnFF0KsWYNGjdwNldu0wbp1UD3wYO7YgZdfdv+t5ScVZl1du4b9+3PdaXlp2xbVqmHpUowalTs4cSJq1wYhuW2J7+XCBbRrh7Fj8dJLxW+1pIiJwZYt6NABRqO7cE+S0K8fBg4s2B3Fspg1C9HRGDYMc+ZAq1I1GLBmDVq0cOtT5GPXLlSqVHD4+MIFmM255ZMbNuCJJ+5SI1NVXL6M/v2xaVMpWFeZmZk///zz4MGDtbsREREffvhh3gmnT5+eMGFCuSgDsn1XlKiUqpQoKs3nu8pT96ephlJFS6iCu8CwQMdV7uqaM4xCBRSVuiTVZlPTAKSyZpNDNFt4H76i6Vw1wWgDYDQkOnidM+xxUajgCmoGwM7pRJ1Bbz7L+Vr01yzm234AsjLNFpvB6hLtkuCUOafCAXCpjEtlJPfN7c1yqcSlEhdDOAVaIglDGAAqFRRVL7EmAC7GLjF2WXWAuECVHBnVUn7hyykHKsWhVNrEgw6DVJFtydsCx71bBrsCEF2BzG3Cxm1TkntwplLwB+ijHkv/8VMlI7X0csgeIFgWkZGIjMTw4e6RGzdw9ar7lpKCtLTcyWfPIjUVN2/izz+hqujZE2PGFKwOyjDo0QMLF+LYsYKTo/OxciWee87991dfoUULbNuGiIiiDnG5cOAAbt/Gc8/hnXfc1lVhLF2Kvn0LzTR66y3ExWHo0Ny4nr8/mjVDcnIBxofGlSto2xaTJuHZMk/hq18fP/+Mrl3x/fdo3RovvQRfX0ybVtQh/frh+HFMn47Bg9158bVqYe5cDBqEpKT8Yq1ff11oWHD//rvCguvW3SV8lZ4OiwX79+Pjj/Haa1AUT/tOeWpdqao6fPhwHx+f7gU1pz59+nTbtm2r5ev0/Z+FUi0CqILRZMsBUE1KlKoqFC0rC1rdHxTqzqbSLmro3XZIPoskrzgnBVUpFFV1ae2ZrUzaHZhv2v0uCzr/20FahWC4+ZROn2Tn9a6gZoLgDwAVGjs5naAz8sazrM+fwjULAP1tP1OG2Wox2h06u0t0SDwAh8y7FNapsC6VdakMAJfCulTiUhmnyvAM4RkCaCL0DKVQFNGlGgE4GbuLsUqMXaVOSmWgFDNOyiknLyfTabCeeKKA4DiRxAWGcYHFdbovOZ6qzey+SV/Yp3zWsuSrfwgvGKJb2fbHm9sX8hvy3yYkBCEhRYXYNH7/HatWoU0bjB6NyZPdhX556d0bAwfilVcKeCgfKSk4eBCdOwPA4cO4cQNTp2Lr1oLjVjn8/DMcDixdiuBgdO+O6dOxbFnBM2UZixbdpcyej5gYtGyJ0aOxdKnbzXbiBBITwXE4cKCAHjLp6YiNxfjxf4NppdGkCVauxIABmDwZW7Zg//7i7ZgZM7B6NTp0wJkz7snDh2PDBkyadJeu+pEjWLcOs2YVvEjeV8PpxNat+OST3EcTE9GkCXgeR4+iUiUcOICYGI+ejqdJAGazuXPnzv3799++fXu+h06dOtWmTRsAS4uthfivQCnVKu1UClWlqkpVShWVqipULdud5kpHaXaVquWu57Sc8eQsWldlCkWhLoW6XNRmYSxpsnTLQf60Gv9MCf4zJTj1bBXlZIbuXLJ857BLynRJmQLvw/tFOqs+6qodTR6qpKuTpquTZo646l/lRsVKtypWTK3ol1bRJ6OiT0ZFU1aAwRqgt/uLDn/B6S84/USnnyD58rIvL/vyig+v+vCqmYeZh4lnTCxvonoT1RuoWWRMHKNjiEAIC0LwVztZlVOOR3jevNm6d4OxuQcl6SXKgmbs7hv0uwulcr1heLSDNWlzeZrjX6F2bUyZgsOHceQIOnWC05l/QpUqSE1Fjx7FL/Xdd+ja1e1Y+vRTjBqFdu2wbVsx788HHyAqCjt2YOVKhIdj9mycOlVwYvvatW5ZziL47DOcPo233gIApxODBmHuXEyfXkAdoiS5NdPLMiB4L23b4umn8dJLWLGimEZAOXz5Ja5exdtv544sWoR167BggfuuouCZZzB7dqGpZnkLBnfuRL16qFgx99F9+9CsGbp0wZYt6NQJmzZ5+lw8ta5Yll21alXr1q27deu2Z8+enPEzZ860a9eOUrp169aHHnrI09P+y6GaPCelal4zK8ecyr0VEwcs5lsyW4yKuusTqcsJm4U601z0lpO7muVzNcvnxo3grHOVceayeOmgnHFczjguyRaeM4nmOlJoY1dElFqzplqzJleT1VW/Zapy0zc0xT8oNSAgLSAgLcA3PcCcGWDMCjBY/fU2f73NX3T4iQ4/0ekruDQDS7v58NSHhw/HmBnezPBm1aSHr8AYWUYk4AEGbjHVcsopXZJTaIwHYUE59brryjl9ZFn3SDVy+PJx9v8Sleu2kl9cqFKb6AzOs0dKfun/GKGh+OEHBAZi2LD8mVIzZ6JePezbV/wiORVqmZlYvRojRiA8HEYjTp0q9JD0dCQnu1UGGAZLl8LphK8vjh8vYPJHH2Fscd2b9Hr8+COWLkXduggPR506GDECI0bgzz+xdetdMydNgo8P3i2jOHmhyDK2b0e9eoV67O6lUSNERGDBglzFhIAAbN2KBQvwv//h8GHMmAEfn4J7CwJQFLdCqcYvv+QvVkhKQtOmaNUKu3YhLg7ffOPp9YsXBSyCIPzwww8NGzbs2rXr4cOHAZw5c6ZNmzaKomzfvv0Rr5pYliFHjx59OSdFsExw51e5daPUfOZU3pt7Qh7ZTvfxBZPvNyOvN4gCVKWKDJeDOK2yku4iKU4xxSneyPRLvRbkuBDIXjgrXDkiXDniyvpdlq0cZxRNEUpQtDO8vjO8vly9FlO9glDNqq9yyxSaYg5ONQen+lZM8/NP9/fN9Ddn+hst/kaLv8Hqr7P5i3Z/0eEvOv0El5/g8hdkP0HxE6ivAF+e8+U5H6IzqT56xpdnDAwjEMIRwj1Y7qv169c3aNCgUqVKI0aMsFgs905o06ZN42xef/31nPGFCxfWrl27atWqU6ZMUT1JYS2nRNnnWQ8c696NxibtCF9cdKcUaBJInq7DvLhPKY3FjY/GWhI3lsbKReB0OseOHVu5cuV69ep9++23ZXz2UoJhsGIFbt68S3bht9/w668YPbp4B8Yff+DMGbca1tdf44kn3EnTbdvinvBPLosWgRDkZN9wHJYswZ07iI/PP/PYMZw/j169itnGpUuQZSQn49tvceiQux8ix+GttzBxYq6VsHYt1qzBF1+UeMMCr3nzTfj4YOdObNqEbdvueujcOaxejZkzMXs2PvkEu3fnuvRGjUKDBhg0CNeuuUfCw7F1K775BiNGYOtWLF5c6FM7eRJhYbmdDfMlXWnlhE2bon593LqFatXA88jjXyoK78qDDQbDTz/9FB4e3qVLl59//rl169aEkJ07d/5jTSsAWVlZZ86c+bt3Uc6DxLVr1wYMGDBjxoxjx47dunVrUkFyfkeOHHnjjTcWLVq0aNGikSNHaoM7d+588803v/vuu4SEhLVr13722Wdlu/H/OlkSLmTRyOIaJ1NFtiVvNZSmzFXRTIlmD96mm66UfAjP2OQJ55nDqiW9xFcugrlz5x4+fPjAgQMLFy589tlnT95HZ+B/JKKI1avxxRc4etQ9MmUKJk1Cz56Ij4dSpHmsuUA0pYDFi3ML99q0KbReT5bxwQeoUuUu8YiaNdGhw11pQAAoxYQJ+L//K0oONC0N48YhJgZNmqBePSQlISwst7lhnz7geWiW8KVLeO45fP+9151eSpzt27FsGZYtg4+PO5ZqtUKWsWIFmjVD69ZYuRJOJzIzceQIXnwRgYEYPBhHjmDQIBw4gJEj0a0b7Hb3ahERSEzE4cPYswc1atx1IlVFQgLGjsVjj2HAAFitWLAAZ8/ixAkQcldBw9mz8PFBUBAYBi1aICEBw4dj7lxy82bxdqjXpcgBAQHx8fGtW7fu0aNHcHBwfHx8nTp1vF2kLKlSpUo+WfnSJ6d/DCV5ustQLVwIFXBLQFEt1apQb1VB7x8hecYJAUPyjFCoMpGdVLHKXIaLBZBqN9xO9zddC+R8LbzxLABVNDoZEaYIjtUTfRUn4QG4OD0VDZz+KmtIYYzpbLodAJ9hFCwGl1Uv2kWXQwTgcglOl+CUBKfEOyReJwsARInnGZ4llIBTKQEgU87pMjrh72KtsurQhOkpVXL9c/9svvzySy0IDmDGjBlt2rSZN2+eKObPlK5Xr17E3fU/S5YsGTlyZIMGDQC8+uqrH3300ai89dDllDL7U2h0BSIUd81o/20PF1yFDw4vk00VgJ7Dxy3Y0buV4304fYnKQRBRr6/f3JoUb36ib0muWySLFy/+7LPPQkJCQkJC+vTps2zZsnf/9ghTCVGhAt56C2PGYPdubNqEkyexejVEEWFhSE7Go48WeuDGje7S/aQkWCx44gn3eJs2+L//g6oWkK+9YQNMpgLE3ydMQKdOmDULkye7Rz76CFlZd3U8zMeVK3jsMcTG4vRpBATg5EnExkIUMWSIewIheOcdDBuG7t0xeDBeffWuorm/hatXMXgwvv0WISEA0KmT2/Q5exaVK2PyZHTunL/1dVoali5F9+6IjkbTpggLQ+3aeOYZLF9eVJPskycxYgRsNjz5JPr3xwcfwGTC6dOYMwfVq+Pxx++arIUFNVq1wnff4fhx/P470tJKzrqy2+3Tp0/PuRsdHX369Ok98w2KAAAgAElEQVQWLVqsWLEiZzAsLGzcuHEeLlhKJCQkXL9+PSYm5uTJk6qqdu3aNTQ0NDy8zL9Gc1rXUKoJKGSPUnfD5Nzs9XusDVKEuaUZUgRaax3CgDAAo7XZ0f5LoSqUOhVqVQiADIlPsxn9Uv311yysz58AeONZKhpcrED0VVhWJ+oqAXAxnMSJqmDgdAbWcIszZgBgjGlspp3PMghWvWQXAUh2ncspuJyC0yU4XYLOJQIQWUFgRY4RGAIKDoBCiUsVnbKvk7VJrENrUA0qq6CEKv98aYZTp05pFhKAqKgoi8Vy9erViHsKqfv16wegWbNmb7zxRmBgoHZgt2y3cnR09L/mIv5BIfEmbeZJWDDhZ1Pr4mIqpUyHMNKoIvnguDo5uoT1RY3NY+989a65bVzZhHm0fx3R0dHa3aioqPh741gPMiNG4PPPsXAh5s7FihXuOn8tu7kw68rhQEICvvoKABYvxjPP5L4VoaEIDMSxY7inVa/bumrZMv+4Vue4fDlEEePG4cABzJyJvXsLdVxlZqJLF4wdiwkT3COPPIItW9C2rbsXtUbLloiMRO/eMBrx4osevxylg9OJvn0xfjxatXKP3LyJlBTEx+OTT/D00wUf5e+Pl1/GuHH4+GNMn47jx3HwIIYORVwcVq4sWF9+wQK8/Tbeeiv3TZkyBWPHom1bzJmDyEicPo1x45D99Y/9+3Otq8aNMWUKvvgC330Hmwd5k55aV06nc+7cufkGf7hbxaxhw4Z/r3UVHx8fHR1dsWLFp556avXq1ePGjevatSvP893yxlFLGUVRXC4XSwRKKQUlJNd+otmuKhSbFUfIPVOI26YCccdzCUPAErAMYRnCAWAIS8AARAWVKbT2zFaZzXCJGRaT+bafJr6gM1/n9UaV1zsJL+oqsawIQBCDJMLJrI7yeqozsPpbABh9GjHYWKOTzbLzVj0A2a4T7KLkEHQO0eUUdQ4XAJ1TFJ2ywCgsodp3iEo5mTIuVe9SK7hYh0KdABxUoSqloISqf9HAcjqdZrP5r6xQNKmpqTnBbpZljUbj7du381lX8+fPb9iwodVqnT17dmxs7L59+ziOS01N9ckO4Pv6+tpsNrvdri+i8VUJIctyUJ56mLi4uPfzliP/Z9h1jR9RQ8nKKirdTbl+SUq9KVerl5WVVWYbK5A36pI28cKgKq4AoUSvNwLCKC+mHdnD1bznB7wUuHbtGoCcj72fn1+Kt91u74sbN24cOHDA398/Z+S9997r27dUPHbvvMN27KgfOFBq1MipfWpatWKnTxdffrng39itW7n69QWWtV29Sn74wXjwoDUrK/ctjorS7d2rRERI+Y7auNFosZCGDe+arFGtmvHttx0TJuimTGFCQ9VZs1zBwVKBn19VRVycPiaGPvusI++E0FAsX84+9ZQ+OdlqMrnX79yZHz1al5xstVj+5gzR0aN1lSqRMWPs2p63bOHGjtUNHSq1bk2/+47t399e9OFPP40uXUj9+qboaDpzpmPLFu7xx5mPP3bUrp37vFwuvPSS7sgRZscOR5UqqpZMq6o4csRUs6Y1K4s6nSQtzbhggSM2VrdmjS0yUgWwd6+he3dnVpYC4JtvREqFli0tej0DFJ836al15evre+fOnaLn/O0tnCMjIwMDA/fu3fv4449XrFhx5cqV2nj9+vXLbA8sy/I8r3quWk8IaK5HKht6z3UnyZ6t+atAwBLCMoRjCJ9tXfEsOEbzYFGq6X86FGKT+EyHPivTrL/tB4DzsXLGq7zO4OL0LoYTxCAALCMQoYJEWJkRKK+jgh4AqzMQwx3GmEWMNtbiBMBaRc4mCnadbBclhyjaRQA6h060uwRO5hiFdTvqdCrlJZWTHGYXDVJYFwCVKk6oqkopJEJVFBkTLZp7g3Qli7+/f04mu6IoVqu1wj19NIZlS/auXLkyICDgxIkTUVFR/v7+Ob/ZmZmZer2+DEwrABzHnTlzhs9uWuHj4/O3/2Mseyhw8I60oq3OXORLnrZ+q/mxrmZfv7LaV6HUM6NvhPLxef07MSX8ZjGtejgObjU3KIuKyJCQEABZWVkGgwFARkZGxbzl7KV53gYNGmzevFm7Swjx8yut9/TYMRCCRo0Es9ldBtG+PQYNgstlLrDBzq+/omtXmM3mZcsQG4uIiLs6CzZujN9/581mHQCbDdu3Y88e+PtDluHri4ceKqANYYMGyMgwnDwJlgXLMoAOKLjz35w5UBR88gk4Lr9kbbt26NQJ8+aZ3nsPAG7cwIwZ6NQJ339vnDPH25ekJJk3DydPYvduGAxmVcX06Vi6FGvWoHlzQZLwxRfYs8fcqVMxi5jN6N4dDz1EPvlEL4po2hSxscaBA/HCC6hWDfv3Y/x4hIZi714Yjcaco86eRYUKCA83Adi1C40bY/hwva8v+vY17t2LSpVw5gwee8yg12P3bmzYgBYtcPSoqUcPavPAeeWpdUUIyXuV8M8kODgYwI4dOzTJU6fTWdo/wwVCCCk4ZSrvFLd8OdH+poRofp9CrI27TCsCFgAhLCE8w/AM4VlGAMASngXPUpYB0YSwAEgqsSuMTRIsNoMpwwxAvO3HmG9xhqtUNEicKBEOABEqMAzP8/4grMIKEqcDoAp6VjSw+jvEkEmMVgDEYmNtDtVm5+wibxcFmw6AYNcJVr3ASzwrs4wmTA9KoVBeUQXZ5acQGYDKqRRUAlFUO4WkSYySXH/eP4iaNWsezU5kPX36tCiKoaGhhU3W6XQ8zzudTgC1atXKiQaePHmyVq1aZbBbDX9/f74MWoL9gzmdTv0EElKkaaXaLPbf9gRPWlJWmyqGqQ3Y+muk8XWZysaSjOIZGrXJWLdUTr3BVQgpwWULxMfHJzAw8OTJk9rX76lTp2rkSyEuNViWLYNfpUWLMHcuFi/G22/j2Wfdl72CgNatsXWru8tNPjZuxJo1oBSffIIl93zWIiOxMbusc8QIXLiAq1dx/TpCQ3ODUPmoXx/HjxevX3rwIObPR3JyoUHDOXNQrx6GD8fDD2PgQDz9NJ59FpGRGDsWZZ2cnM2KFfj4YyQkwGBASgqGDIHTiQMH3CWWPI9338WECWjfvqhUKo0ePfDDD0hOxtdfY+ZM+PoiMRGLF8NkAqWYNw9Dh+b3Whw6lBsE3LwZmg3XuzfOn8fw4Xj7bdSp41Yse/NNzJmDixexc6dbIbZY7ifkn5mZac/Oy1cU5auvvnrrrbeSk5PvY6mSZdKkSZIkabX0GRkZCQkJf+NmCCEkXwY60Ywq7f8ke0Z2sI9olhPJVofKvREwmqcKhNXUDQjhCNHE0nmOETgicETgIHDgWbBaorsWklQocamMXeasLtFqMVotRke6Wb5tQsodLuUqm3ZZsV1RbFckKV1VZYbheM6H04XAVBWmqop/NblCFbliZSWwEg0MooFBJMiXCWLZIAcflCkEpusC03SBaYaKaaaKab4B6QF+6YHmjEBzRrAxK0RvD9HL/8/eWcdJVf1v/Dnn5sR20WFQUkqX0kj4ExGUFFAERESpFUFSlDDxSyhiAYoiSAqItAJSIqEiISgN2zt545zfH/dusqS7gLrv1+hr9s69Z88Mu7PPfOL5xDkQJyuxLCqWRUWSom4xVhHDReqmRCWQCCQQ69nd8kbgHPTo0WPt2rU7d+7UNG3SpEmdO3e2QlDTpk1btmwZgGPHju3atUvXdY/HM3z48MjISCs+2qtXrw8//PDkyZNpaWlvv/12r8tZrBRSAGy/wOvHXeXnyLt9tXpPXSHkdvmgWNSJPhXo6/vzOS9DJNlVq7n3Zlkz9OrVa+rUqX6//9ChQwsXLux57ZPYbm8MA+PGYdIkbNiArl3hdmPVqqxHL2csefgwAgFUqYKNGyHLaHhJALFqVezfDwBHjmDdOgQC6NIFMTFITcW2bXlXjVSpYl9yBbxedOuG//0PJUte9pzoaIwbhyFD0K8fFAVjxqBoUfTvjzFjrrJ4AbFkCV56Cd9+ixIlsG0batTAfffhu++yRv4BaNcOkZFZM5WvQJs22LABwSB69MDhw/jsM7RujXHj8NhjiI7Ge+/h50uc4PbuzVJXa9YgM0I2dCgMA2+8YevdQ4fw66947DHUqoWlS7F7d1Zn4hW4bnUVDAaLFi26YsUK68sXXnihR48eY8aMadCgwerVN9tnJTtWrfiKFSumTZu2atWq7du3N2/e/Bbup5B/LmXLlp05c+YjjzwSFRWVkpIydepU6/jBgwdPnDgBICkp6YknnggJCSlWrNiBAwdWrlxpya82bdo89dRT1atXL1myZNWqVQde1eyvkPxj2/mrqCtuGp7vl4U0vsX17LkYXFn47ChLvMQT/G/iatDW++O3XM/L5Du/GTNmTGhoaFxc3AMPPDB+/PgaVx0380/gp5/QqBF27MCPP9qTAQcPxhtvZJ3QqhXWrs1DDK1ciTZtQAhmzMh7AnGRIqAUZ85g6lSEhuLhhzFxInw++HwIDc17fGGVKjhw4CobHjYMdeviqoVnffpg925s346vvrL7FocPx+rVV1dv+c5HH2HAAHzzDcqVw/Tp6NAB772H117LI/A2bhzGjYNxtXqbyEjUqJHlklq7NsaNQ3w8pk/HL7/gmWfw4IN4770cl+zdi/vuA4AjR+D1IrOGiFJ88glWrYLVETdzJp5+GrKMRYvwxx94+mly4sTVtRPh1zk2Yffu3bVq1UpPT3e73SkpKbGxsUOGDHnllVf69Olz9OjRrddos/XvJSUlpVixu0xDscqhKBFIRl7Pnu4Mk3GTcxOZU5xhwvZtR27rdjumQzLMFyiIQCECoFSkRBapIhJVpk4ACtxOHuLmrhCoYaIYLlMAkTKiFSPOEYxzeouEpgCIjk4MK3bRUfKCUFIyS5TWi9wFwIy4S3SWkMRQSkXGTNP0AjD0FBZMoL6L1JcoeFMAUF8a8XmIzwe/H36N+zgA5pNMj0NPdwbTXL7UEACpKWEJ6aHnPKGnfY7TfvGsjwM4pwUv0qQUct5rJmlmumH6AXAe5NzI7lKBa5j3nJaWVKBV7f84ZFn2er3/8cxgpUXG502E6lGXFVi+Xeu8u9bHDJh0M3d1LfT53iwbQkbld/NgwgdjHZXruuoV7LSf9PT0W/LLuHXr1mHDhm3fvv3aLzEMpKcjLS1vq6rUVBiG7QK6ZAkSEhAfj/79s+LqR4/i3ntt48rHHoMso1w5LFqUexZNw4Z4+WVUqYJq1XDiBNx5lFGhRQv07In+/XH33di9G+vX46WXcOQIHn0UBw5g1648gvmRkfj9d8TE5P3UvvkGzz2Hn3/OcsXMk6QkPPssdu1CdHQOu/mZM7F0KdauvdK1+QjnmDABc+di9WrExeGZZ/Dbb1i8+ErzrRs3Rp8+6N79Kiu/+y7278flfAaPHEGnTvi//8OECfaR2Fj8/DOKFcOUKfjzT8ycmeP8yEjccw9Wr0aZMnbcq3p11KiBPn14mza+7PVbeXLdXisXL14MDw93u90A1q1bZxjGoEGDJEnq1avXzWzNu50hgJ35y9biR6xHCMA5gW3TQEBtLUGAjH47ANx+NCOxaCcQBUIoIWJGDbsoElkgskgUEQoACbIIUeBUsM7n9nImJ5opBA3RrykA/D6HmuaSkt3UlSI4L3DVCYBLqinIhFARIZQKhLgAgFCTiCZVuOTgsgsAVV3UkU6dHuL3Eb+P+P0ABF+QOtOoIyiomiAZAKhgEpqZ7HAQiAAIUQUtSoQkCqqXJAZJOgCD+UwW5Fzn3ODEuoSRLH1ZODKtkGsiOYjTXl454kqxq/RNS8La9b5pW7p2hlahzVYZQ6tQNV+r20OaPJq88F1X3Qdvs8R7PhMIICEBCQlISkJKCpKTkZSEixdx8SISEpCYaD+UnAxCEBqKkJC8y5JCQyGKKFUKd9+NiRPRokWWJVUwiAkTMHs2KlXCtm3Ytw9vvYX589GqFb79Noe6OnsWv/2Gpk0xdiy6d89bWgGoVs02CP3wQwgCvvsOsbEoXRo//QRCsGoV2rbNfYkVvmraNI/VLlxA37748kskJ+Oll/Dhh5AkxMWhQQO0bo2qVVG6NE6cwIYNmDIFnTph3z7Ur4+VK7PcGfr2xfTpWLXqWiuK/g7nz6NnT/j92LYNhw6hVSu0aYPt2/M2UMhk3Dj064fOna9koArg//4Pr72Wt50YgLvvxoYNqFULVauiY0ecOgVKYZXUfv117hnPx4/D4UBaGoYOxQMPoEQJvPACnnoKRYpg/XpyLS/Udaur0NBQr9cbCARUVV2+fHmFChWsgl9BEAKBgGma/8FmpUuw6qgIsYqKSKa6sn2wKMC4pZ+EbOXvlpCgPENn5VRXlJBM/wUJgEAlW1oRRYQMQOSSyEUBlGabOcM5DE50ToKmGNAlAIGgEvQ65DSXkOIXXamW+QKXHbqoGkQiCiXERYgAQBScBBRUZIJiig4ATHZSJY2q6dThJQEvDXgBEL+POH2CI0BVnVrqSjQp4ZlFZ4Q4YMtBRdLCZSanUoeHJgEImGka85osYHKNMwMAhwFucmJPYCQ59FWh2Cokb7ae53VjiXj56E/w8F6YhlrhdkxaVQwnNaPpvCPs6Qr5Gb5S7qpKZDXw22610q12iiwYjh0bFRGBQADR0YiJQXg4wsMREYHISMTFoVIlREcjKgqRkXA6kZqKc+dw7hxSUuD12iu4XIiIQLFiKF4cd96Zd920ruPxx2Ga2LcPqalo3hx//omPP0bjxhg0CGvWYPjwrJOXLkWbNtA0zJmDnTsvu/MqVTBtGrp1s9NS69fD6USvXujfH2+9hUmT8lBXVrXWpeqKMTzxBJ58EoEAatRA3744eRIOB06fxsaN+PJLTJiAEydQrBgaN8YXX9h1YBMnYtQotG5tP2VRxNSpGD4cLVteRb78Tb74AkOHok8fxMdj7Fh88QVmz74mSde4MYoWxYIFWYaoeVKmDKKj7dk1eRIZiYUL0aYNKlfGkSN20dVff+H4cTzwQI4zN25E48Z45hk0a4aFC3HxIubPx8GDuHgxd4jrclz3C1m5cmVVVV988cUmTZosWbJkQEZi+fDhw0WKFCmUVgAyCtgpgS2wYEezOCeEcYBwq++PWoMGCQFnsCM3nGRfx1ZXlkqzra1sdUUsdSWLkERIAESIAqgAauURLSHCOEwOnVGN0YAhAQhoSsCvKh6nlOqirmTqSAYgqE4mO0xRNagEQkXBCYAQKgiqFcFiVAbABAcTXVx2MzWdBr3cUlcOD1W9RE0nskcU0wEQwSSEW3vPHJ1I4KBEEqkkB92qKSnUAcAjuPw0TWMenfkNEgTAuMa5YacLuclti4eMF6dQXxWSF5vPsvuLXkmapK1beNMMNm+AgffQ+B1m/qorACFNOqRvWvxvVVclS76/bl27S7sGGcORI9izBxs3Ys8eHDqE1FSULo3ixVG0KMLDs0JKJ08iORlnzuDUKZw/j3vvxYMPomNHZDb7miZ69kQwiKVLoSgoWhROJ+66C04nihTB1KlgDF4vMnNEX3+NAQPw0Udo0gRly15250ePwjQxfToAJCbijz8AoFkzNGwIlwvHjuHIEeRqOK5SJW+59vrr8PnQuTOaNcOSJVlmpOXLo3x59O+f9wYeegjTpuGTT5AxxAvt2uGdd/DRRyig6RKHDuGFF3DuHL7+GunpqFkT1aph3z7kaWmRJ2PG4Jln0LXrVZoH27XDN99cVl0BqFHDjoQ1amQ71C9Zgoceyi0rN25EkyYoWhSCgA0bsHcvHn8cRYogLg7p6Th5klSocJUNX7e6CgsLmzZtWr9+/d59993y5csPz9DtCxcurFev3vWu9u/Ellb2jRLrHdNO/FGAcVAC2JKBUJjcclvIWXJEMrOKxFrHklZ2ZtCSVgJkAZLARQCUCwLPClxlqhKTE4MRjVHNFAAEdCkQVFSfKnucQpqfOH0AiDNJUJxccpiCahLR2owgqIRQgcoExCQCAEIlJqhMdBLJxWUPkz0AqOLkiofKCpFkKqYCIILXykxyTqxbxgsDgYgiESTNIRsCAJUr6dTpF9IDNF1nPgA6C5hcY1znXGfcJNwEwMHs0rRs7qyFFJLJlnP8zTqXlSbaiUNm4llHjSY3c0vXRYvixGtgTwKvEZ2f+s9R/f7UFR/rp45KJe7Kx2VvE2Q5IVNa+Xz4/nts2oQdO7BnD2JiUKMGatTA6NGoVAlFi159tdRU7NiBlSvRpAnuvBMvv4wWLTB8OC5exMqVUBQkJKB9exgGypTBzJn48088+yz+/BMzZiA+HgCSkrBrF5o3R/Xq9rzkPNE0zJoFSu0phBs3onJleL2IjkaTJti0CZ064csvkW00PABUqZJHOdGPP+Ltt7FuHdq3x5Qpefi8X4HJk9G+PR5/PEtrvvkmWrdGly7I3zq6c+cwcSK++gojRqBZM4wdi4MH8dZbuN5KoqZNEReHL75At25XOq1dOwwalFVZlSd9++K997BiBSyL9EWLsqYMZbJ5M8aOtaNlX38NSrF4MQAQgqZNcfHi1dXVjXxU6t27d2Ji4m+//Xbw4MFM47gRI0ZMvrWWZIUUUsh/Eo+OX1N4zZjL6pK0tZ+HNHuMCAWZ8/h7EKB3OfrBofy2ZhDEkCYd0r67hnb2fyCaFvv113jpJTRsiLg4vPYaVBUjRuD4cRw9ii+/RHw8mjW7JmkFICwMLVvi3Xfx55/o1w+DB6NKFSxdioULoSgIBNC+PRo2xN692LcPRYqgdWscPoyKFTFyJE6eBIDly9G8OVavvpJzFYDXX0cggDJl8NtvALBhA1wue7xg06bYuBGdO9vzlbNTuTJ++w0s2w9IWhq6dcN772HGDLRqhev1wahZE40b5+iCrFYNTZvi7bevb50rcPIknnsOlStDljFvHnbvRsuWaNgQBw9et7SyGDMGEydeZX52vXo4eRKnTl3pHEHApEk4eBD33Ydz5/DLL7lTrkePgnPcdRcWLECvXnjxRZw9i4oV7UdbtLimT/g3GIgOCQmpUKGCmC2U1rRp05tmInebYycEM2/IfrMM1oVsQ2zsiJTlYkWzbhIlEqUipSIlokCljCZEUSCSYNuyi4J9EwQIQoZxFMmI8PCMzKDBic5o0BSCphA0pKAmawFV8zrMdCdPJzydkLR0IT1J8CRS30VTSzZMj2F6TKZxzgihlMqC4BAEhyCGCFI4VaLgiGbOGOaOZe5YMyTGDIk2w6JZeBSPiOARESRSEaO8SlSqKzI1LDw1KiQtKiQtxumNUwNxqhHn4LEqiZHlGFmOJu5oMzKcxYSSWJcQ7RKinWKkKobJQohI3SJ1Uuqg1EGJSqhCiUyIRMh/ujOukEvZep7XjCaXKwnXTx/TTx9z1rrd/VmeLE8XHmfpueej/F1c9dpofxzUz57I53VvA06e7P/pp3A48MorOH/eDja0bInIyL+1rCCga1d88gmOH0daGrZsAed4+mkUK4ZJkxAejgcfxKJFACCK+PZbEIJq1ZCejvffR48eGDv2SvZRP/2Et99GRATq1LFNENavx/HjaN8eAKpWRUICSpWC15vbIiEkBLGxOHo068iAAWjZEiVLYvlyTJx4I8/0tdcwcyYOH846MnEi/vc/nD9/I6tl59w5PP+8XdU0aBDWr8fAgbj3Xhw9iqFDccMm382bIzr6SnFBAIKAVq1yOJPliZXk/eorzJuHRx7JvaVNm9CkCfbtg9+PunWRkIBy5fDMM3blb9euKFfu6gLrBj/MfffddzNnzvztt98SExNLlChRq1atF198sVBdWRAQK9OXeQNsbwXLAIMRbqlaxjMm4RC7UMo2yCDIaDm0M4M0q6RdtB0ZiEghUggU2Uu7LMN3zjO67hiHyYmlrjQmAAgaYlCXg0FZ8Suy1yGk+wEQl48406iaTBUnlxxMUACYRCQglMqEEAoJAKFWBZjIqMSowqkKgAsKFxQuSKB2kT7lnJhJouFVdJHpgmkIAEwmME4Zt8YlipQQACIRJZ1ITJCZ7CMqgADxBolPJ36DBgwWNLkOgHGDWcVYnF3LgKdC/lNsOcfuL3L5wNWa+SHNHiPS1YyubzVFHGhclH5xLJ9r24msuB9on77hq8huw69+9j+KO++csGxZgfhNnD+Pjh0xdy5KlkSHDvjySxw7hs2b7bK9rl3xxht2fVLx4qhRA4cOoWZNmCYSE1G0qB2IupT0dHTujObN7VnOBw/i5EkkJEBV7YHQlOL++7F5Mzp3xoIFub0erLbBcuUAYMEC7N2LHTvQtCmmTMGNDQEqVQrjxqF3b2zZYhczlSmDnj0xfvy1Fm5fyvnzGDMGX3yBihVRpgw+/xyPPIJ338X99+dP0eOkSejRA489diWJ1q4dPv/8KgVk27ejRQtMmgRFQcbMvCw2bkSzZliwAJ07gxAsWoSZM/HSSxg5EpMmQZaROavxCtzIr/Hrr7/esmXLXbt23XvvvR07dixZsuT8+fOrV69+XdYj/2qsFj9iOylk3LHv5yzJspoKrQHMGcVVAoWQGeWiGbEu6zi1fRkoAaUZpg+ZugoZISsObnLYNwaDQbdKrxi13BmCmqwFFN2vmF6H6XVwjwCPl3rSBG8K9SdzLZlryczwmCzAuM45t4zlKREolQVBFQSXIIZQOYzKYUSO4Gokc0SargjmimCuCB4ShtBQGkbEcK8S7nGGepyhnlC3J9zhjVT9kbIWIRuRMo+UebiMcFkIF+RwOMJYSBgLCWHhbkQ4SbhKw1QhVBFCFCFEFlwSdYrUKVKV0it27hby32PLOX65knbtz0PaqWMF7fmUXzxVnn56JP/n6boaPhT4bbeRcDbfV/5Xoml49FH07o0OHVCrFpYvx1dfoVq1LMuABx/Eb7/hxAn7yw4d8NBDOHoUcXGYMCF3Y38mnKN/fzRpgkOH8MgjqFwZBw9iwwaUKIFHHslyELCSg1264IsvcuQBkc3k/aAQ5z8AACAASURBVMIFDBmCuXOxcCEcjqvUIV2ZZ56BquKdd7KOvPwyFi+2s5ZX4OxZ7NiBr7/G9OkYOxYDB6JzZ5Qpg2LFMG8eqldH8+Z4/XWcOYM5c/DAA/nWT9KwIapUyW0KmotWrbBlS1ZnaJ5s34527VCyJDQNtWvneMg0sWEDmjTBggXo2hW//460NDRqhBUrsGwZJk681t7161ZXZ86cGTlyZL9+/f74448FCxbMmjVr+fLlJ06cuPPOO5977rnrXe3fjhWnyTS+IpmZu8y72cbj0Nw3ZL9ji7NMJ60svwbbfpTbPqScM3CTg/HMtCB0RnRGNVPQTCHIhKAhBXVZ02Tdrxp+1fCrplfhHp14PdSXRv0pJJhCgilMT2OmjzGNc9P+DoRQIlIqUapQwUEFFxVcVHITKZQrYUwNZ84w5gxjrjDmDoHbSUN0McSnhHiVEK/D5XU7faGqP0wJhst6mGSGSWaYxEMlhEo0RBRDiBJClBDudDO3i4c6EaaSUIWGKDREpm5ZcEmCUxScIr0Zc5EL+afgN/BzIq8Xm/ebd+rKj0Nbdbv9A1cWrYqTo2n8eHo+921Q1elu9HDat/Pzd9l/JVYSMC4uK7v3/vt48kns2ZPlvCBJ6NgxazZLhw5YuxYOB3bsQGioHYW6dNlBg3DiBJ57DufPo0EDVK6MX37BN9/A47HTghaNG2PTJlStithY5Jp+kjkP5/nn0bMnqlTBhAmYPDlv4RIM4tAhrFqFNWvw/fdITMz7+RKCOXMwdSoyjcDDwzF8eO6aegBnzmD+fDz3HOrVQ3g47r0XgwZh/nz8/jsEAZKErVtRtCi2boXPh82bMXEimjS58STgFXjtNUyejLS0y54QEYF69exXz+/HiBHo2BEtWmDJkqxztm1DvXpQFPh8COaclLBxI0qWxPHjiIpC5cpYuBCPPgpCEBmJdeuwZg1atyapqVdXi9etrqzptm+++aacbaRkbGzsuHHj9u7da1653uw/B0eG9MkKKuXB5WR9Hod51h2e7cY4GAMzwUxwk3PTdjXgBoPOoHOisYybVX2li0FN1oKy7ld0v2L6FO6j8PmIz0P96TSQRgNpREtjhpeZAcY0xk3GTcuvi0CgVKRUEqgiUIVSJxVdRArhcghTQpkSyhwh3OnmLhdxiYLbL7n9ktuvuvwOp9+lBtxyIETSQyQjRDJCJBYicbcIt0jdouAWBReVXFx1cqeDuxxwq3CrcCvELVOXTJ0SdUiF6qqQbGy7wKtFEmdeNQ6BQ3vMlARX7du94ioTkeLRsnTBsfzvig1p/Ejw95/003/k+8qZpKam/vnnnwW3/qUwlv9/uocMwfHjmDfPflPevRsrVmDqVKxfjy1bMGhQVuVNZvXPXXeBc9SvD0HAqVMYPDj3zBbDwPPPY9curF6Nb76xI1VlyiApCWvWICUlh9NSpUpITsa5cxg0CO++m2OdqlVx4ACWL8dPP2HsWHzwAe65B7k69dPS8MYbaNYM0dF4+GH873945x2MHIk770TdunjrLaSn537KZcti/nx06pRVgDVwIPbssfXWzz/j5ZdRrRqqVsWyZbjjDrz+Oo4fx7lzduxq0iScPInFizFtGrZvz1tc5i+VK6NtW4wefaVzOnbEokU4fhz16+P4cVSqhNKlMWAARoyAaeL8eaSkwOnEwYOoXRsff5zj2s8+Q7dumDcPTzwBzjF3Lrp2tR8qVgybNqFuXX7qVAGoq+joaErppb5WkiRFREQU+l0VUkghN5O1p1iL4nm9j3GeuvKjsHa9Qf9Jb0pd7qDzj+Z/cpAojpCmndLWzMv3lQH88MMP5cuXj4yMrHsT/rRm48iRV7t3x549+bbg6NHYvBkrVsDptI+8/DLGjkVYGMLDsXYtfv4ZPXpA09CgAdLSsG8fABw8CJ8PO3Zg6lRQiv37Ubcu5s2Dx4OkJKxahWrVcPQovv0WoaFYvBiPPgoAhKBIEURF4aGHkH2EFSGoVw9bt6JTJxw8aGfoNm3Ciy9iyBCcOoVnnrGtGSZNwiuvZF1ompg2DeXKYf9+DB2Kc+fw++9YvdqOXV28iMmTsXs37rgDo0bh4sUcT7xFC7z2Gtq0wV9/AYCq4oUX8NhjKF8enTrBNDF7Ns6fx1dfYfBgNGyITCOMvXtRowY4xy+/oEOHfPuHuCqvv47Fi/HDD5c94eGHsXo16tdHuXJYtw4//ABJQvHieOstPPAAtm1D3bp44w306oXx4/Haa/D57Av9fixfjv/7Pyxbhi5d7I7OWtkM40QR48bhnnuu/kt63eqqZs2aVatWfS1nbtnv90+dOrVvAdmQ/SPhNmCcM86ZHWTidpwJnIGzjJGCPNPmyr4IsBv+7K8z/884mBVGsvJ+DCaDaVo3YpokK3xlMG4wrnPoDDqDllF3FTSFoCnaycGgrAdkPSCbfpX5ZO7Tic9H/R4aSKeBdKKlc93DTD9jmQ6fmeErmpEilCiVKVWJ4CSim8tuLruZ4maqmztdcDmIiwmugOAKSC6/6vA7lIBLDrokzSUaLtFwiaZL4E4RThFOgToF6qSCg4pOrjiYqjKnyp0qdypwKnDKxCmRwthVITlYe5q3LJHH50jvjm+p7HBUbXDzt/R3aFCE+E3sT8r/8JWrQTvt1DHtxKF8X7l06dLz5s1bddU2rfzmrrvG3XsvOnbE/fdj0aLc+Z3rwjTRvz/WrMG33yIszD64dSsOH0bvjOFJYWH49lt4vWjXDmfOoHt3zJ0L00SvXrjjDgSD6NgRvXvj7rsxbhw+/xxRUbjrLowZg0mTsGoVwsLw5584cSIrUqXrSEzE00/n3kyDBti2DbJsD6hJSUGHDggLw+OPQ9dxxx1o1AizZ6NOHdvqHcDZs2jeHMuXY906zJ2LNm2QawieJKFxY3z+OXbuRHIyKlTAwIH44Yes0q5evTBwIOrWxfDhqFsXkyYBQKdOOHIEkyahTp08PDwXLkSrVpgwAXPm5LNF1lWJiMD06ejTB35/3ie4XGAMkoQ//8SPP2LDBsyahd27bTu0Pn1QqhQWLEB8PGrXRr16WT4UK1agVi1s3Yr69REXhw8+uHF71WvtGVy/fv3u3but+40bN54yZcry5csbN24cFRV1+vTpJUuWSJL0xBNP3OAu/l1kK3kinNvl5pxzkpnOy5jZbN3hnGUXWAA4z2g8tJzKOQfhjIMSznhGwtBe2aqZJwAopwYoJYRyIoAInAAQGdcJ0UxolAQZBRBkNGAKAVMM6lJQk9WAAsDwK6Jfof4g8fuJ30cdXgBMTSeSi4sqo5I1GweglBLCKQis/wNWPSbnYIwbjGkAmOwnqo+qXu7wEqefOoMARGdQcgRVf0ANKg5dcxqitRmNUZ0TgxOTAYDJqf1ycIlwkIzatYwOAMGEVuD/hIX8Qzjvx58eXusSB04W8Katmhvd95Xb1pz9chCg8x3k82OsamQ+h9yIJIe17pGy9P3Y59/K35elZMmSJUuW3LRpUz6ueS0IgmfoULzwApYuxcyZ6NcPbduiXTs0b359pgwJCejVC6aJjRtzTAYcPRqjR+cILDkcWLQIEyagenV064ZPPsHJk/jlF/Trh6ZNMW0aRo1C+fIYNCh3yZTFokVo3972BPd6cfYsoqPR4BL936CBbU/arx/uuQeqijZtMHIkPv8cLhcOHMD77+Pdd7M63daswVNPoX9/jBqV93y97JQti5kzMXo0PvoIAwfi1CmULYuYGFy8iOPHIYqYMQPjx2PIEOzfjzZtMHx4ltzMzpQpmDkT69blbmy8abRvj4UL8cwz+PjjPH6c+/QB53A48MMPOUzY770Xq1ahWTN88gkGDEBsLABMnozatfHkkyhaFJ99ZuvmPn2QkIC1a69SQX8FrlVdrVy58p3sfQXAvn37rBqsTGbOnPlUpq/+fxgOzriZMc0ZGfYLtia6VF1ZEauMkirOMwyrQIh1LQEjoASMQ6AZxVucMHDbu9zWZdbUHE4ICOWEMgJAIEQgRGQQTUiUAFAoVQwxIEgBXQpqshZUAOgBRfIrgk+ifo34fSTgBUCDXi57mORgVCFEBABCwUGJmCWwYGkfiYJzwSSiBoBLbi57meoiDidxeKjTC0BwBCRHUFaDaiDo0GR76KEpBgXTiqsZjAAwOExOGKecCdljevY3ytYdWUgh606zpsXopeMF09d8pt5TRyrxj/SI6Xonffg7c1Kt/P9Bd9Zq7vlhpW/PRmfNvKYB/6MwDCM1NfW7774DEBqKESNQpEj177+PnjcPffuSChXQrBlv2BA1a/Irz1pZs4b07Uu6deOvvMJFMSuWs2kTTp2i3bqxXI17hGDsWPTsiSlTCOdk2TLMns179OB//YVatejIkSw+nsTHY/nyPKKPixfT0aM5YxzAsmWEUhIXZ3+ZnRo1cPAg9XpZbCzef5907kzGj+cDB2LJEtKvHz9zBq++SjQNcXFs/3588AFZsYJ8/jmzjNrZtWWV4+Lw0kt46SVcuIATJ5CaSsLDeenSiI3Fpk3o3p0CfMgQ3rYtGTsWb72Ve4cvv0y++Yb88AMrXvxav2NBMHs22rShgwfzXDt8802yeDHp3ZsvXEj8fpYrjKdpJCaGJCVh0SIMGMDKlkXp0ujZk4wZgyFD+LZtdMgQ9ttvtF07Nn06efhhhIbyXM8xI790Fa5VXb399ttv56OH678bzjk3uT04kGd2DsIedJNLXdkZwMyL7f9AwEnGVBtCOCWEEm5yIjBrRiEXOGEMjBHGrNXAMubwccItgQbCQACBUIHY6kqmVKaCYoiqIauaogY0AIpfkX2q6FO4TyN+vzWemQe8TPYQycmpyqgEAEQgIJyS7LErwiklAojEqcIFJwAuBZjiJoqHqk7ucBKHHwB1aKIjKKmarGhKQFclA4BqGIogKCZVKNEEAkBhMCgxOTU5N8EZFwAwIjIrPVo4aLCQbHx7ircsnluE6Kf/8O7eUGTEjX7kvNVUiSSKgD0JvGa+TsUBAELCO/RP/ORVR9X6RL4OZ5O9e/e++uqrlx5/7733lILoCrsGUlJSjh/v1rOnLgh+Rbmoqkk9e6qdOt33xBNc07Bzp7BpkzBlirB3L42O5nXqsHvvNStUYJUqsbg4+y1k1y5h4kT5xAnMmRNo2NDUNGjZwuLjxzuGDQtomqHlFSuPjUXHjsKCBWqdOuzRR/0+H6Kj0ayZOnkyi4/X3n/fuXRpsGXLHD1eO3cKZ84o9er5rBKfV15xFivGT50ivsySn2xUrOj4/nutYUMTEO++W54xg7RsaezYoe3bR197TS5SBKqKevVoRASvWdPYulULC+N5LXN13G5Urpz1pc+H2rWxcSPp0UPdtIlPnKi1bu3o1ClQrVqWvhg3Tl67VlyxwhcRcYPfNB/54gvStq2jZ0/zpZe0UqU4gOnT5VGj5GHDtNGjtQsX1BkzzIEDc1j0zp2rqKpQqhQqV2YtWtD16/0xMXzwYNKwoWPLFrz4YvCVV8Thw4MnTphvv+1YuNDv8+XWj5zza2ngu31HQ/xz4TAZNwAQMM5ZpkKyHrRrsLj1D8a4FepCDnWVcT4h1oQ+y46BU0Ios6QMwIhAYVAuMmIwYgBgxGQwGTE5YSyjfIszEBBqghIqEAAQCBUJl6mo6JIiyGpQAaAGVNmvij5V8AUEX5D4fbDGMytOLju4oHAqAeCEMhBY2cDssSsuEAJKZS44AHDRzSU/V71M9VCHB04PAOr0C46gpAZlJajImqLpABRRUg0xIAiySWXKAWiUSBQ6h8ipaHITAgCTWzpSZLCFaSGFcGDdGTa+Rs43McaSv3wn7KHe1H1DBou3B4+WIYuPs5rR+V+PL5epqNxZNW3tgrB2va9+dgbFihXr3r37pcddLpeRq0HuZhEdHX3HHacGDx7l9eLUKZw6hUWLMHkyBAFVqqBiRVSqhBYtcOed8HjIjh30p5/ENWvw888QRcTEICEBhCA+HgMHQpJyl3Ju345Tp/Dkk4J4mb+QS5eiXz989hmeeELw+90xMQDw1luoXx/Vq8szZmDAAEfbtjn8CKZMwejRCA93AxgzBkePYuNGPPwwfD63lZ/Kzv33Y+9ex4MPYs4cjByJHj0ASICkqjhwANHROHLEKoSyHKfzeXxF+fLYuhVjxuChh8TOnTFkiHP7djvnOGUK1q3Dxo2IinJdbZmbgduNjRvxxhv0gQekUqVw9Ch0HfHxmDRJBuQxY9CunTh4cNZHgEAAS5eiWjV89hnq1qWPPILHHnNt3IjixdG3L8aOBefKX3+hSxehcWOMHIlGjZyXflPOeZ6aOBc3qK68Xu/y5csPHTqUkJBQsmTJWrVqNW3alPzTShwKDM65wcAJBAIG253c0k1WIi8zWGXdYVnZvWzqigDcLtoi9mRoTkAos9KFWS6jIiM6AJPojOiMGCYMkxhWQIuBcQYOEYBl6U4JBEJFKkhUkgVFCRoAFL8mex2SIyB6gtSZZo12pqqXKx4uqZnqihEK0XoqnFDJ0nmECyCgoIDEKQPABSeTQpjiIw4Pc3oEpwcAcQaoMyA6grKiybKmSDoARTNkwZRNJlMuUQCQKEQKkRGRcIEQy/1d4JSCUlDKKSH56WRdyD+XA0k8RCJlQ3K87aRvWUpk1VW75a3aVb7waFn6+AZzUq2rn3kDhD389Pmp/Z3V77/2zGlcXFz77KZM2Ui/tMX/ZhEa+nOfPrkPnj1rt9odOIDFi3H4MM6cgSTB6URKClwulCqFIkVw331ISMCECXjvPTRvjpYt0bRpVmn2+PEYORJ5Sitdx6RJmDMH33yDmjXRoQNmz8aoUQBQrBi++QbNmuH991GxIt55By++aF+1fTuOHEH37vj9dyxbhtdew7RpaNjQ9hRtekmetkEDfPQRkpOxfTuWLcs6Hh0Nw0CPHnnUmOcvkoRJk9C6Nfr2RWIiXn0Vo0dj4ULMmIFt23DlZOtNJjwcEydi+HAcPIipU6GqWYau1aqhWjV8+mlWZfrHH0PX8cknKFsWs2bhmWdwzz1o1w7du2PaNLz7LgYORLFiaNQIrVvjbzp43oi62r17d4cOHU6ePCmKYkhISHJyMoAmTZosXrw4IrNTs5BC/uFwzlNSUsLCwuhlKkU55+np6aGhoTd5Y4VYrPyLP5izW9C4eDp93ZexL7z9jytmz8W9UYRx7Evi1SLz/4kIoRFh7Z5MXvhu7AtvX70K+hpITEycM2fOH3/84fV6p0yZEhsb27v3dQTG8peiRfOYRRMIwO9HWFjup8sYDh7Ed99h5kz06IF770WbNihTBocOIc8erdWrMXQoSpfGzp0oUgQAhg1D06YYMgQOBwDccw+++goDBiAtDRs2YNUqREfj9Gn8/DMEAZGRKFoUqoqWLfHsswCupK6efhrr16N+/RwBsLNnYRioVOlvvkjXyv33Y98+DB+OcePw++/47jusX48SJW7Sd78uQkIwaxYMI8urzGLUKHTvjp49oShISEB8PDp0sKcJdeiAMmXQvTv++gvbtqFVK4wZg9698eyzOHsWrVr93S1d969WIBBo3759SEjI+vXrA4FAUlKS1+udM2fOzp07C73aLThntpEn0xm3bybPvK8xpnOuca4xrnOuc3uInn0/45Z1Lec6Zzrjmsk1xjTGg4wHTRYwWMBgfoP5NebTmE9nviDzBlh6gKf7ke4laV6S5iVeD/GnMy3dMNN1lq6zNB1pOknThVRdTNPk9KCaHlQ9fqfP6wymu/R0p5mucE+AewLEm069adSfRgOpJJhKgqlcT2OGxzR9JgswpjFmMGYwy8mdEEIEgcoClQXBQaQQLocxNYw5Q5nTzZxuuFTq0gVnQHIEZUVTJE2RNEU0FMGUKZMpkwiXCBcpRJIxCYgQCkIz7ek5uWlV7Vu2bClVqtQ999xTunTpLVu25HpU1/WHH37Y7XaXLVu2SJEin376qXX8yJEjkdn44IMPbsJW/7N8fYJ1KJP1DsZNI2ne1NDWPcToYrdwV/lFx7Jk8fGCSoK76rQkiurZsjRfVmOMJScnR0REDBgwIDk5Oe0KLtq3CFVFREQeSpJSVK2KoUPx7bc4fx4jR+L0afTujbQ0PPkk3nwTn3+OFSvw8ceIj0fZsoiPx9SpWL3allYAKlZEnTr45JOsNRs1woED+PprxMfj119x/jyOHsX99+P4cVy8iGHDkJ6O2bPtk++7Dxm9+DmIi0OFCpg3D82a5Tg+ezYqV84xy7mgURS8+y6GDMGCBaAUW7f+LeeLAmLDBtSpA6tQXc45l6FePTRujBo1sH49atRASAjmZ5tZcN992LMHP/yA3btRsSK2bcMHH6B6dbRunQ+fO647drV9+/bTp09v3Ljx7rvvto44nc6nnnrK5/O9+OKL1kC6v7upfzzMGsgMQjnPrga4fRyZhVbcdr2yC94vBwEIOEAIt/KDgDU8B6CMCJZdAoNGiChQySSaQYIGCQIwiKYTTedOkzlMUwFgQuKcAoRApAQC4QBEakqCIUm6qGiCqlFVB0BkD5FkKlrjmQkABs65CdFg3OCCyakCgFIZkAgEQoj1E0UFVeAmlzWu+pnuo24vAO73Um9AcAVEb0D2BmW/BkCRdEU3FMOUqChRDkAkXLTGLmZ2XeYYUH3lFyp/ME2zR48ekydP7tat24IFC7p37378+PHsTrmMsZYtW86bNy80NHTdunVt27Zt0KDBXXfdZZqmIAiHMzyPnc48cvaF5At/efhfHt4gLuvdJv3bz6g7zF2/7S3cVT7yaBnac7M5oUbBrE5IxOMvXHjnBaVCDalI6b+5WExMzOTJk/NlX7cQhwOtWkGWsXo1Vq7Etm04cAB79iAYRFgYypbF8uWoUiWPC+Pj8cQT6Ns3R7auRg3UqIGnn8bMmfjwQ5QvDwBvvolZs7B5c1b4p04dvP563vt5/HGMGYOxY7OO6Dpmz8awYbjk417BwjmOHEHx4mjXDitXYuxYdO1qh/puDqdPY+dO7NmDkydx/jysgnJRREgIUlNx5AhEEa++io4d845Zf/ghvvwSnTohEMDu3bkTvg4HqlcHgKlT83nb162uGGMOh+Ouu+7KdbxKlSqmaRaqKwDIKlRn2abZkKx5OBn+C9km5GS7No/lMhbhBCA8Q3BwENjFWJa6ooQIJhcpCQpEMmgAgE4COg3oJKALbo25AOiGw2CSyUXGCYdoLS0QLlAuCqYoGYJkUMkAIIrpVEyllILYypAwk5k6lzXGNCJqdoeg4OCUCVQGRNt5CxIEB+emqWim4ScuLwDi9xKfj3r9otcvex2KXwWgBDRFUGRqypRlqCt7xrU1Nzr7a8pJhhdrAbN582Zd17t27Qqgc+fOw4YN27RpU7NsnyIVRXnWiuwDzZs3j46OPnr0qPVLQSktzI/fBJb+yR8qleXFEDz8s3fH2rjhM/7pOcFMasYQr4FfU3il8AJ5RmJ00bCHnkqaNyV28DQi5nNZ9D+XUaMwcSLKl7f10LVQvz6KFsX8+ejZM/dDRYvaduqmiSFDsGEDNm9G8eJZJ1SqhHPnkJiYRyXT/fcjLS3HNhYvRoUKaN8eb711fU/qb/L++zh9Ghs3olEjfPGFPae5UyfoOtq0QY0aqFwZd9+dP8VYSUlISEBiIk6fxi+/YP9+7NgBXUft2qhZE82aITbWlke6Do8HISG4+26UKXOVQrTHHsOsWWjX7uYlVXED6qp27dqyLG/YsKFZzpDlN99806xZs8tVqPzH4JaLFbHFUNZx5KGoeJYJw+UXzLiTFQjjIFa9PAcl3ADACSWcglAGwSQiZRIAgwZ05tepT6P+IPUDCPIQjbl1TTW4aHLCuPUzoBJAIEygjAomFU0ARDCJ4CUkmXJOTBMAMXViBJnhZ7KfS24uBWB1CApOCA4qqBQSrKgalQXRxblhsqCp+wDQoI/4fdQXELx+yeOXvQ4Aiqwpkq5opiSYoiEAECgVCKHZh1RnuLAyMEZMEwU+y/KPP/4oV66cpe0IIeXKlTt27FiuH/hMtm/f7vF4atasaX2ZmJjodrsdDkfr1q3feuut6Ojogt6txfHjx8WMD2VFihT514fNlpxgQ6vYb6hm8oWk+VMjn3jpH90nmAsCPFKGfH2cV7q3oPSiq07LwK+7Uld+HN6+cMwGAHz9NYJBPPbYdV84bRpat0bTpihZMo9HvV506YJAAD/8kNuZk1I7OdXykjaMAwcQE4O1a/HIIwBgGJg8GePHo2xZBIM4exZFi173Pm+AEyfsAUF33om5c9GlC3buxPjxGD8ev/6Kb7/Ftm2YPRtHj4JzREUhPByynNspHkBqapYzVjCIXC13VmFcWhrCwxEVhagoFC2KihXx+ON44w2ULft3n8XMmTAMDB78d9e5Lq5VXSUmJqamplr3J0+e3LVr1+eff75JkyZRUVGnTp1asGDB6tWrFy1aVGD7/EdhtwESnkeFUGZCMPuXyNYzeCWIfSHJdi0BYZmthRyEcMIJJVxgRAPAuGiQgMH8OvVr1AtAo96gEBZgoUHNpTHF4BQA45KVtiSEE8qo7WbKQSByLzGTiNV3rWtE8xPVR1Qfl71McQPgkp9JIVwKEbgJwQGAUpkQKlCFiyFcMZgrAMDU/SToE/w+wZsqeX2K1wFA9TmUgCaLhqxnxq54Rk4wKw/IwE0wE6YJw0QO85KCIDU1Nbs6CQkJSUlJyfPMM2fOdO3a9Z133rFUVNGiRffs2VO5cuUzZ8489dRTTz/99JLsY9kLDMMwWmUrwmzXrt0ka5LFv5QkjexNkOqGBTwecF3zfjhBbvCQXqSs7vHc6q3lJw/G0pd+Fl+4uwCHE8jt+qTPjOdxZaQq9W9shWAwGHKTx6AUDH4/4uPx3ns3Ev287z688AJ69sS6dbnrdc6fR7t2qFYNs2blsH3PpE4d7NiRh7pavx4tWuCLL2x19eabKFIEDz9sf7s9e9Cu3XXv83rhokauWgAAIABJREFUHH37YuRIO+TTvDkGDUKHDli/Hm43KlXKEQpKSkJSElJToWnwenMvFRqaFV66VH6pKhyOPNoO8oVjxzB+PH74ocAbLXNxrepq4sSJubzaR1lNqNl49tln9+TjRM1CCrlFxMTEZH6WAJCcnBx7qSMNcP78+WbNmvXr1y+zQyosLKxatWoASpYsOXXq1Lp16xqGIV7OMyf/EEXx8OHDUp5v3v9GvjrMWpbg0WFucJ746TQ5rlRkqy63elP5TwsXem7XE7irTEiBpTvdbrXP2IuzRrrLlJOKlrmBBa7Rt/r2Z+JE1KqF5s1v8PL4eKxejcGD8cYbWSpqyxb06oUnn8TLL1/2wtq18eGHeRzftAmLFqF5c8yfj5o18cYb2LXLfqhmzZukrmbNgs+H55/POhIfj2PH0L49Vq6EmtOPNjLy+gYQ3RxME717Y9Qou0/wZnKt7/s9e/asX/8qH24Ky02ysCe3ZISXgKwwVY43o+t7Z7rEEwtWwCpHdRexjhmW1adJKIHASNBgAZ36AWjUF6TeIPUGERE0wjTmAKAz0eQSy0jH2csRcEBhRDS8VE8GQINBHvATp4+qXqa6iOIBwFUvU3zMDHBZ49wEIIgugSqEUFFQgTBd1QGY7gDR/STgo36/4PVJVmbQ61B9DlXUFcGUKAMg2EVX1qvDGTgAE8wkpkl0A/pNmDNYuXLlAwcOBINBRVE0Tdu/f3/l7H7GAICEhIQWLVp07tx5xIgReS7i8/kkSSrMlRcE846wgfdQAKnL5zBPanT/PGzE/wUIBP9Xii75kw+uXIDFZFLxO8If6Zf44YTYF96m7rxGyv0H+PVXzJmDnKPdrg9BwJIlePJJ1K+PMWMQCGDNGqxdixkz8H//d6UL69RBv3557AdAzZpYsgQTJuDJJzF5MsqUsR+tWTNvQZa/nDmDcePw/fc54kmEYNYsdO+Oxx/HwoW4RUb918GUKZDlv+tcdWNcq7qqXr16dauwvpCrwS+b/ss6JR8/7vHM/wHZxRa3J/FYSksH0RgPAjBZwKB+nfo0wRsUfBqLAqAHQkwmm1zk3IHsBU+ccFNQdFHUvABowEP8AeLycYeXOJxUdQJgqoc4PEz1ctVvKhoAzg0uhoiCSoggCE4uRwIwnLppBmjQTwI+6r0geb0AFI9T9QVUv0MRDEtdiYQLhFuTFjlgcg7AJKYBw4BuQDN4gaur++67r2LFiiNGjBg0aND06dPLly9vlVV9/vnnW7dunTFjRiAQaNGiRXR0dIMGDdatWwegUqVKxYoVW7lyJee8XLlyp06dGjp0aJcuXQrVVb5zIp0fSOZtS9L0DYsCv+2KGfTWv7go+5EydPI+c3Dlgv0pctZoYlw4mfDB2JhnpxD5tv+Dmd8Eg3jqKYwfn+WzcGNERWHZMrz/Pv73P4SHo1w5/Porrpo1LVYMioI//sAdd2QdXLrUTgI2aYImTfDLL6hYMevRmjXRv//f2uq1MGgQBgzIo7pfEDB3Lrp3R9u2WLLk6k/wFrJzJ/73P+zeXSAJx6tSOAmnQOCwR9hc+khBh9GzxJbV5ZeptLjJ7eJ3nTHNpEGDBXQhoAkBABqPNbRwEwqHCDgyl+KcMJMyXVA0CYDo9wluP/GlE6efODzc4QRAHR7m9DCnl+k+0/ADMFmQKwYQJghOSgRRcAGAEqMz3dADRPMJPr/o9QCQPU6Hx+nwOtWArljqilpjDAGAcW45zhswDaIZ0AweNPjNsFtZtGjRsGHD2rZtW7ly5cWLF1sHVVW1vEP9fr/lSDI7w7jmmWeeKVasGCHknXfeOX36dExMTOfOnZ/PHlIvJJ/49AjvcifVf1jq3b46ZuBU6nTf6h0VIM2Lkyc28bM+FC3gLoXQB3uYyRcTP50U9eTLRPhv/V147jkUK5Zl5/036dcvj1jUlalTBzt35lBXy5Yhe+XkPffkOL9ECVCKU6cK0Nhz9Wrs35/DGio7koQFC/Dcc2jSBEuW5F3Lf8tJSUG3bpg5M0eT5s3kWn+L5s+fv3r16vj4+NKlS2f2oueibNmyEydOzL+9/bPJVDk584I3fxu20iIgsIc9mxwGZ5bHqWZaAS1BM4nBglHgKoFIiCWwOOfEZNQ0BKcmAVD8suRTBFeAOoPU6bXGM8PpEZwe4vRQt9cyXzB1H3MFdFXncqQouCgVAYhiCFfjjNCgnR/0+QHI3nQ13enwOB0+pyIYAGTKBAJCbEMLw1JXxDCg6wgaPGiwm6GuSpYs+eWXX+Y62KFDhw4dOgCIiIhYuHDhpVe1bdu2bdt/id/S7QkH5h1lK13LPHtXxgycKoTdTiM5CgCZol0puvgEG1ipgD99ExL++POJH01MmjslqucI0JtbAHzrmDoVP/2ELVtuTXjDom5dfP89One2vzx7FkePolGjK11SowZ27y4odeX1YsAAfPhh7sqq7FCKGTPwxhuoXRsffYTWrQtkJzeMaaJLFzz0kN0TcEu4VnV15syZAwcOpKenG4Zx4MCBPM+5lqnR/0Fuk5rPzDwl4ZmzDk1wI8BNAIybTGQQONFiCFEpseYSOgAwTkwmGIYEwBGUVb8q+fyiMyg4AtShAaBOP3EGqMvH/V7i9wKgQZ+p+013wHDqUGJEMQQApaIkhXFHcSM8SHS/5PcBELznlPR0Z7rL6XU5Ak4AcpCJhFsWW4xzEwyACcOAZvKgyYNmwWcGC7lt2XyGDTj5abi2I+bZKUJ4zK3ezs2g0x106j6zwNUVQAQxqveoxI9eSZw3JarHi/96gcU5Ro/GF19g82bcWgOTxx5DjRqYOtXupFu+HG3a5N1gmEnNmti1C5eZ/fh3GT8ejRrlMZ/nUoYNQ7166NYNbdpg8mTcPlPBRoyAaea/Qeh1ca3qKj4+Pj4+3rq/f//+AttPIYUUUkjecF1LXTCtefB07PNvUNdt80ZewLQoTnpu4md8vJizwI1SiShFPTk66ZNXEz4YF9V7FJEvH7vIRnJy8sqVKw8ePOh2u9u3b18lT0fzAuD48Rfr1EFkJOLiUKIEype3PQIcjqtfe+YMBg3C+fP48UfcLE+6y1KqFBo1wvz5dkpx2TI8+eRVLmncGJdpp/m7HDiAuXNx7X/kGzTAzz/jxRdRuTKmTsXjj996Q9/p07FsGX78Me853DeNwpLb/xy2iRRn4Abjmsl8JvMFzVSvcTGZn7tIky5owfN+nPfjXEA6F3Bc8LkT0kOTUsKSUsJSk8PTksK9CeG+i+GBixHaxXDtYrh+IdS4ILELAXI+kV44Sy+cFS6cFhP+EpNPkPTjuv+MrqfoegpjOqWSJEdQV2kjsqwZW8KMLUHiQqXoVEd4msvpc0maS9IcgiFTLhDLjB6MMEaYQex6dpPrrDB29Z/ETE08/W58gkcrPWjKf0daAZApHipNFx2/SUFwS2AJ4dEXp8ebacnXcsmIESO+/vrr6Ohoj8dTr1691atX/397dx4fRXn/AfzzzMzu7JWDhJwEQkjCJSZQrqKIoIJy/rxAIUCrAkqL3IpAK6JWoFhtxQsRLQpapVaQIiICKkelWLnKDUlICBDI5txrdo7n98cGTFEQcA9Ivu8/fGWH2d1v1snuZ5955vuEusiA1NSlCxZgwgT06gWLBWvWYNQoxMejdWvcdx/mzsXq1Sgo+L6JJQCfD19/jUcfRU4OsrPxxReRj1YB48bh5ZcBwOnEli0/0v7qPN26Yf9+VFzS/5/LoGkYPRrPPosfa0FzQbGxWLgQ772HF15A16744osgV3VZlizB/PlYty7y7SGuPNrl5+fX7W4VFxd3oWbW5CoUmI3FuF7brtPgKpiHiaIkSTCZ/LEAJMEkMonBYnCmGQIAvy7ZVbPVJ1u8PrNFMVn8AEwWRbIqos0n2n2C2wtA8PhEr4f5PILi1VSfFq0A4NYmJnMjUTCbzY39UZqq+QAwn1t0H7ZUVzqqHQ6XA4Dda7OIhiSIAgOAsx0ZdJ2rOld1QzUMLSKvGIkg3/5vK95/YXPzgYe7D45xNKw51wAGZwhzdunjrwvXl2FBbHTfhOrP3z/9wvj4B2aa01tffPe//OUvlrMzdERRXLhwYd+wTMOR5ZIuXc7fqKo4eBC7dmHXLrz8Mvbvx4kTSEiAxQJFQWUlcnLQuzf27bu8ABFqvXqBc7zwAl55BRMm/PQpNrMZN96IjRtx993BLOPZZxETg4ceupL7du+Obdvw4YeYOBEOB6ZPx8CB4Z7Ntnw5ZszAhg1I/7mLZwbBZbxPvfrqqxMnTty0aVPXrl0BrF+/fkydqyxEUfzuu+9ycnKCXyMJGQ7OeGCqu6obXr8muplJEi1mwwzArDgkJopMAmBwBkA1REWT7H6TRZEtPsUs+wGYZcUs+01WRXL7JLcXgOj2iu4qwetlPg/ze5jqBaDFKtyebjY3FkWzWU5SYlQAquoVfB5TzTF7dWVMdRSAKLfD7rNaREliTDi7viGHbkAzuGZwzQClqwaEq/6qf77t3b3FPGz6uO2td7ar55OBflTgysEiF2/mCN9Jl+g+Q81NMsoWPRV9R57jxgEXOd9jqTP52efzORyRvIrTZEK7dmjXDnl5tVs0DadPw+eDLCM+/mIztSOIMYwbh+nTsXjxpQam3r2xbl0w09X27XjjDfznP1d+ao8x3HcfBg/GypX4wx8wYwYefxxDh8JsDlqRF7FiBcaPx9q1l7FGZEhdRrp6+eWXR4wYEYhWATExMedWv5kyZcorr7yycOHCIBdIQqx2bR1u1AYsvcbNnFWCFYBFN5n8VklgDJLBAUDjzK+Limayqn6r3yz7VACy2W82+80ev9mtBFYPNLm8JrdHdHsE92nR42U+DwCmejVd8UdpZjlJFGWzNRWAP87v93tkj8tSUxZd5QDQqMbh9NptPrMsilJg5cTa3hAG5zqHDh7yVZzJVUI5vKvig7+Ym7dOeuyV+Yft/ZvxNHuk53REglnAfZnCO4f570K25uCPslz3y8SJL5a/M9e3b3ujoZPEqJ/oF713797Fixd/+eWXYaitsrIyPz9/1KhR57bk5eV169btR3eue5LI5wt1aVdo5EjceSdiYy+1wptvZi+9ZPb5gnMNdVkZGzLE/NJLaqNGxs9/ifr2Rd++2LhR+NOfpJkz2aOP6g8+qIW0M9bq1cJvfmNauVJt2TII9V8c5/xSruG71HRVUVGxf//+V155pe5Gk8l029mFA/Ly8hYtWnS5VZKrBgcMzlVN9yqsxiWUA5AFq1kTTX6zwFjgUDE4Uw1B0UWbJvlUk8WkAZD9qmxSZZ/f7PXLXgsAs9squ60mt9XkdktuV6D5gsnrERSvqvmUGNVsTZVEKwDY0pVEv6B4TO4djqozAOKroircUWU+yxlFlAUm6SIAAYGMxcENDkpX9Z9efrpy1ZvqsYOx946ztO1coeDF/6ob+je4c4Ln/DpbGLpRn9lBCHO6lBqnJEz405ZXn+sZEw/GzhvW2Lp1a5uzbS6Li4sHDhw4f/78Dh06hKEwq9Vqt9vPrZ4OoGnTptf6YlAJl3MVbE4OVJUVF5vqNsq6Ml4vhgwRRo7EXXeJQNCGh/v0QZ8+fOdO/OlPYtu20oMP8nHjjNTUYD389z76iE2YIKxaZXTsGMz6LyTI6aqgoADAdXWamsmyHBv7/Yr0GRkZhYWFnHMW8QsGyOXjAOOcM41zRTM8Pr0agEu0W7hsVkWJSYEGnwYXNc78hqAYgk+XLJoGQJZMsl+TJTmQsQDIZr/FY5XdVtllM7tsZncNANF9SvJ6mM+tql5/nB+2dACSZOOOTH+qIihus2sPgNiq04k1DqfXdsZnKhMFWZUASDAxJgbmuYe+ISuJJMNVVf3FB57tXzh63Bk3bCozmQE8s0O/J0NoG9tw31s6JzC7hE2neI/kcL8ITJS6P/qk954RFX/7M5NMMXeNMTf9fs22mpoaAMePH+/Vq9ekSZPGBKsp50+RZTkpKemRMPQsv4rddhvWrxezs3/Wg/j9GDEC2dl46ikwFvxo0rEj3nsPx47hz39mHTqIAwdi2jS0/om5fJdhyRJMn47PPkNubpgmeV1izrnUagJ/QnWX9Rg5cuThw4e/fyBBMAzDMGhcgRByJfTKM1Ur3jg1ZzQMPWna69G3DwtEq6PV/N0jxpMdGuKMq7p+lS28fShib7Cm1IzESX+2de3tfHN2+bvztNPHz/1TaWlpnz59Ro8e/WhElnNrwO64AytW/KxHOHUKt9wCQcCiRaHtpJCejhdfxJEjyM5Gz54YPBh79wbhYZ95Bk8/jQ0bkJsbhEcLrksdu0pJSQGwf//+my7QQXb//v3Jycmi2NDfAa9dHJxxzqHphuI33AC8QnWNYJN1k0llQu13GmZA0AzmNwRF1GVRBGDRJLOoy6Iuq5osygACg1gWj9Xi8VldNkuNDYBcU2NyVYnuw4LP4/d7lEQ/AO7INEkORLdWmvksXjcAe01BYrW9yu1w+ixlilwe6BHPrRIzB4avfmx9IXJtU/L/6968yndwh71L76THXhVj/+cq+UnfGI/liEmX0MSofhueJbT+u1qjilGROv3FmL3r7bYON7u+XnlmwWNyy/ZRve5BTNLUqVPz8/OXL1++fPlyAC1btnzvvfciVGLDcuedmDwZe/bgClqMGQY++ADTpmHUKPz+92FqUhUbixkzMHEiFi7Erbeib188/fQVLqTj8+Hhh7F/P7ZuRVJSsAsNhktNV9nZ2U2bNn355Zd/NF15PJ633nrrlkvp7UquaoEe7qpu+AD4DZdXrKlhFpMhiioDwCBwzjSJqZz5DSbrAgCfKJp1wywYsqabBR2A7NfNkmaRVIvXanXbrC4bAFuN3Vpts1RXmmqOyR6XoHgA+FMVRLc2maJ5oxwl0wvA4nXHVhc3qXZUeO1OxVTulwBU+GzVok0MBCw69Vxf6OWnPf/Z4P52PcAcN/aPHTJesNjP2+etQ0axm0+4jr62IdGK21KFxQeNiSFe1PnimNkSddt9jpsGubasLlv8tJDcfPbs2RMnTjy3gy2yjc8bElnG+PGYPx/vvHNJ+3OOM2dw8CA2b8Z77yEqCkuXokePEFf5AzYbJk3CQw9h/nx06IBHHsG0aZe3GnRxMe65B5mZ+PLLCPfZv4hLTVeMsRkzZowdOzY5OXn27Nl1Z1zl5+ePHj36+PHjjz32WGiKJGETmNuuBVabUQ2vT6jxCFazYZZ0AQBjEoegBy4eNARZYADMumAWuFkwTIJkFgwAJlE3q4Ys6rKoWXyq1WMDYHPb7TV2R7XDXl1pqSkzuXcAEBS30szHG+WYTbFK484AlFY+i3djYs2x5m57hU+u8DsAVKnWah7rFapUwW2EZRVnEjrqyULf3m3e3Vu08tO29t3jhk4xN//xWRhHq/kT/9bX95NkClcAgBnthUGf679pK5gj3QeaydaoW+6N6nlX5dH9ST9/WjW5Uo88gsxMFBWhWbPz/4lzbNiAr77C9u0oKoLTCacTcXFo0QI33ogXX8TZa9IiIzoazzyDhx/G73+PrCxMnoxx42rXAroIzrF4MWbOxOOPY8qUsBR6pS7jGpyHH354z549L7300qJFizp16pScnMw5P3LkyO7duyVJevPNN6nZ1bXu7Nx2gxsaAI0pquHxiS4Ps5gMEYCgMQZwLugGNIP5RQbALHCTABMTTAI3CRyApIkmgZsEwyQYsmAElme2+mx2t8PhcsRUR0VXOQJXCJpdeyxet5LpVRp3ls1xAJTkG5TrfFbPhqauQpfXVqWaAVSp5hp3jFts5BfcelhWca4nONfOlKgl+WpZiVFTabirua4xySTYogRblNgoUYpLlBKbhmEtZL2yTDm6Wzm0y3doBxMES9suMQMflDNzLtJt0KPh/g36U78Qr4+j0cpa7eNZm1i8e9h4qFWk41WAIIrJV0HfxgYsJgYPPoh581D3gn6/H4sW4aWXYLdj4ED89rdo0QKNGyM+Hlfb5J20NLz9Ng4cwOzZyMzEpEn4zW8uOI61fj1mzYKm4YsvruRkaJhdRrpijL3yyiv9+/d/9dVXN23atGnTJgCpqakjRoyYOnVqu3btQlYkCTODQwNgcL9q+PyCx8fcJmYCIHKB6eAcOhc0DtkAAL/ATAIkgUmMSwwAREGQGBcZJMYlgQcGtMyKYRU1u9cW5XY0qnHEV0UBiK06ba8psHjdSiufknwDAFlO8KX19Gu+KO/XmR6rS7EAqFYTXKrFrSb4RbdG6eqnGD63b/dW7/7tyqGdgtVuSm0hJaZJ8SlCemsmSlz1G16X4alRju7xbC/VThdzvyIlp5tSM0ypGaaU5qaUDMH2cxtC6tXl6okCtSTfX3TIX3QQumrOuE7Ozo265V4p6afnWWgG7tugtYtjY0O/evG1ZUZ7ccxm/dctBZEyJwEATJmCW2/FyJF49VW43fjsM8yejXbtsHgxunePdHGXpnVrvP8+9u3Ds8+iaVP07o0BA3DddWjWDFVVKCnB119j1Sq43Zg+HXl54W4Bf2Uuu39Mv379+vXrB8Dr9UqSdK33FyGk/uBcObLLtWW1cuA7uWWu9fobSm95+FtfowOVvNSLGhVSNRKtaGJj7VNZx8YsTq69n+FxqacK1ROF6ol8z7cbtFNFzGyWEptKjVOk+BQxtrEQHSfaY5jVJljsYN+/sXG/1/B5ubdGd1XrVU69qkwvL9XKTmpnjkMQTakZ5tQW1twbYwY+IDW+jC43OsdDm3QGtqg7RYjz3ZzCGluw9Ijxq+xr4ROGhF5SEv79b0yYgKQkWCy44QYsWYILXH52VWvbFu+9h4oKrFiBdevw0ksoKkJsLJKScMMN+MMfcNtt10auCrjy7nzWS1mInFxrODgDB9cBBCZgqdyrMI9JkAFIhigYDIAB6JxpAgNgEiAJkBgkgQV6HYqMCYDAIDIuMAQ+ISXGzYLZIhp2n9XptVe4owAk1jgSq+2x1cUW70blOh8AX1pPiyXJm96bqUqcd1trrwzA7Te7tUbeymgfT1ElGrs6nywK3m8+c25exUTRfuOAg73G/7XYtvowtxagWyJvHctujEGUCZqB014Uu/mcncYOJ8+KZv2assEthHaNHHKLdnKL74ef9coy7fRxreyEVl6qHtqhVzkNdw33eQyvq3aNSgAAM1uZbBVsDtEeLcY0FmLiLW06S41TpcQmgu0KGzPXqBi2UVN0rOwtSdfOO2k4Legm9lur3ZEm0HWUJMBmw6JFeOYZJCdHupSfrVEjPPAAHngg0nX8bA239zG5IM45MwBwrhlc1QxFZV6FyQAkJgkQmME4h8EFnQsAVA7JYCKDyBBIV0KgcQJDoLVz4CI/AUxkkATRIko2n7nMZwHg9Nqq3I4m1Y7EmmNWzwYAfs3nTe9ttaZ6M/syVUlW9gDIUWSfLvn0aKU6XmNqpF6Yq9Yngzsr+7db7x63TG/3l72G+RRGZrNNA4UWURcc+tEMbCnlq4uNAWv1KBN+1VIYkfX9p7UY21iMbSy3bB+mX+CsvRV82Eb9hiS2oJtI0epCftGYPdRKGLdVX37rVTaJhkRUPYhW9QmlK/KjAmsnB7oz+DXB52deABIzCxAZZ5ybuCHqnAOQeGCWFROAQLuEcz2peJ3/ApyBCQwSY7IonlFEAGd8JqfPUuG1N3fbm7oKAUR5v2aq4s3sa7U19bYeZNZVAGn+PaoqKXqWatj1mjD1NikoKCgtLW3fvr3lAuu+lpeXHzx4sEWLFkn/225l7969Pp+vffv2YWv/Nmj1kcnjN7y2HT1S+Fs9xBuTfvp8miTg5hR2c4o4rwu2nOJ/PWy0/bvaPVl4qCXr21QwhT3ZuDXM3aW/ccCY01l8sCUFq5/wZAexw8faksN0fpCQqxSlK/JDvDYRcd3gemD4SmM+AH5mFpkoMIFxcA4dHICkc/FsH6pz6YoDnPNAg4dAe2mD1y5hIzBIrLabQ5kolCmyUzFV+GSX1wYg02ON825jquJtPchqS/e0vQuArC9vru3WdVHnLQyEo73JuHHj/vGPf2RlZeXn569Zs+b6H1yg8o9//GP06NG5ubm7d++eO3duYDVZRVEGDRpUWFgYFRXl9/vXr1+fcFkrh10p94TPjruxdZCUFX3Z85QY0D2ZdU8W/9JN/HuB8fweY/RmfUiGcF8LoVsSC8O8pzIfXt9vLNin35oq7LzLlHK1dq+5qsgilt8q9lmjmwQMy6SARchVh9IVOV+gLwMAzjjjusE1nataoAMWU0SYhLNL/hlcBKBDFMEEzlidLuoc3ADXOTdgaDAA6DAMZhjg4JxxIbA8s6xK5X5TuV+q8DsCzRdciqW1V05W9ph11dP2Lps9A4Dn+nssxvIWxk6DMyAj1K/A9u3bP/jgg7179yYmJj799NPTpk379NNP6+6gadqjjz66ZMmSAQMGfPvtt7fccsuQIUOio6OXLVtWVla2Z88es9k8ZMiQ559/ft68eaGuFoD0bOfXp7tNpp8VhewSfpUt/CpbKKzh7x3l4/+ll3h4v6bCLamsVwpLswc5Zx2u4htP8hXHjH+V8ruaC1/1l1o34GUEr8B1jdgX/cTea/RSLx5tK9CJVEKuKvQXGWSapmmaFukq6rnnn38+pI+/fPnyAQMGJCYmAnjggQfWrl1bXV1dd4fNmzdrmta/f38AnTp1ysjIWLNmTeCOeXl5ZrMZwK9//evAwiBhoOs6D97i1s2j2Iz2wnd3SdsGSV0S2CfHeKcVWsoytd9abco2/fX9xj+L+A4nL3Zz9yUc6ZV+HHPx7Wf4P4v4y/uMyd/ofdZoScvUWz/Vt5TykVlCyTDTWz1EilZXoE0s+6q/+Gmx0f5j7cN8wxX2GYm6rs+ZMyfczwoAKC8vLy0tjchTkwYuPz9/6dKlP7lbfR672rNnz+TJk8/dnDlzZs+ePUP9pG63W9f1+hJbDQ6D1w5f+QFoXFFZ7dgVODeYBEDh2eV6AAAPIUlEQVTnhsgFhu/HrmoHrmDoTNega0wDoEPTmKpD59A5IEAAIMEkc2uFz1alWgNjV9VqgttvzlHkNP8eWV/uuf4eADZ7pidnsIV/mIUdDHjyzU9nz54dul+7qKiobdu2gZ/T0tJEUTx+/Pi5LQCKi4ubN29+bk2e5s2bFxUVBe6YkVE7tJaRkVFcXGwYhhD6a4gNw1i3bp0s17ZYSE9Pz87O/vkP2zyKjW3DxrYBIB53851OHKjiO538n0XGcTecCpwK92qINYMxRJmYdDYgeTSuGPDrcGuIMSPGzJKsSLQgPYplRLHeTYScODQJ9mBYw5QZzdb1lf5ZxBfs1Udt0tvHs1YxLN3B4mTEmGEWASDaFKozvF6v8ucVm1q3fuf1118/efJkbGzssGHDpk6dGoblqkpKSsrKykL9LIT80L59+1auXPnwww9ffLf6nK4qKysLCgo++OCDwM1zH3vkMnCDM93gmm6oAHTm15giQhSYAMAAB2DAEFCbrnjtdPhz0UrTmF+DCkCDX4Nf56oB7excLDAmSsxcLdqqeWyNOwaAS7W4tUY+XVJVqbm222IsB+DJGWxzZHpyh1jY8iz2HfaE9kp0r9d7LqkwxmRZdrvddXfweDyBAaoAi8Xi8XjOu6PFYtE0ze/3X2hSfHD98Y9/PDeJvlevXpMmTQru48cCPePQM+5H/qnSzwDUqFwHAyAxbhKYLMAkwC5dYESNw+UKboENWs849LwJHp39u4wVuFixG8eqWLXKVAMAajToQRvZ/B+6DrX7qKZNm77wwgvNmjXLz88fNmxYfHz8gw8+GJLnI+TaUZ/TFQCr1dqxY8dIV3Etqr3aj8NgXOdcM7gGQOeqzv0akxgEMATORhmBNg2cAeCsNm/p0HWmalA1+FUoAHSuaNyvc9XgGud6IIcxMMZEkZm9QpVbbATArSZ4K6N9erSiZ+m62MLYCcDCP/TkDrE5Mj05g2X2EV4P7XfWpKQkp9MZ+Nnn87lcrpSUlLo7JCcnl5eXn7vpdDqTk5PPu2NZWVmjRo3CE60ArFmzJlKr5/7ctu4kSBzAgJiwPqPL5UrO+22vN2qTcmpq6h133LF79+6wFkHIVamep6vi4uJu3bpFR0ffeeedY8aMCdsV8te6QLZinCPQ2YobnAfWxtF0rmrws8DE9rNZSuACY4wDHAYAg+k6tEC00rii8dp0pXNVN1SDaxw6uBF4okDAUgW3X3AD8ItuH09RquNVw67zFgZnALKww8KW145g5dwLvB7SX79z585vv/124OfNmzenpaWdl65+8YtfHDly5MyZMwkJCYqibN++ff78+QC6dOmyefPmESNGBO7YpUuXkNZJyFXC6XTm5+cfPHhw3bp1H374YaTLISTy6nO6SktLe/3111u1anX06NGpU6eePn161qxZoX5SSZIADhiBn6/pPPd9N1CmMaYAYMzgTNGYmzNJgyRABMBqu4cCwNkzg4YB3YBucM1gms41AJzr4BpjhgCjTtOHQL4C4NWYC4CLVypCaQ2LOemJOqBLm906gPRTTRrvPC60+quW2l4yxVVVVYX0Fx86dOisWbNmzpz5y1/+ctq0aRMmTAj8f7z//vvbt2//xBNPNG3a9O677x4xYsSECRPeeeedjh07dujQAcDYsWO7du2am5sbHx//3HPPvfvuuyGts660tLSwPRdpaAzD0HX9h9slSVJVFcB//vOfOXPmHDp06KabbmrVqlUYSiorK6upqak7qdFqtdY9X09IiGialnwJnVtZEC81upp99NFHU6dOLSgoCMNzHT16NPA373A4JKk+59dIYYzFxsaG9CmOHj36/PPPnzlz5vbbbx81alRglu5bb72VlpbWp08fAF6vd/78+bt27WrZsuUTTzwRE1N7Smbbtm2vvfaaz+cbPnz4gAEDQlrkOaWlpfS5QkLniy++WLZs2XkbJUlatGgRgEaNGgW2aJo2dOjQuLi4hQsXhqGqAwcOnJvmCCAqKuqa/jZLriEmk8nh+Ik5EQ0lXa1fvz4vL+/UqVORLoQQQuqtN95449133920aVOkCyEkwupH44Aft3Xr1pMnTwIoKSl5+umn+/btG+mKCCGkvvnss88CF9UWFha++eabPXr0iHRFhERePU9Xbdu2tdls7dq1y8zMfPHFFyNdESGE1DdLly5NTk52OBydO3e+4YYbnnzyyUhXREjk1f8zg4qi1D03TwghJOjonZaQuup/uiKEEEIICaf6fGaQEEIIIST8KF0RQgghhAQTpStCCCGEkGCidEUIIYQQEkyUrgghhBBCgonSFSGEEEJIMFG6IoQQQggJJkpXhBBCCCHBROmKEEIIISSYKF0RQgghhAQTpStCCCGEkGCidEUIIYQQEkyUrgghhBBCgonSFSGEEEJIMFG6CpU9e/Zk1rF8+fJIV3TNUxSl7kv63HPPRbqiq0tJSUnd12fh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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], + "cell_type": "code", + "source": [ + "kernels = [\n", + " Matern12Kernel(),\n", + " Matern32Kernel(),\n", + " Matern52Kernel(),\n", + " SqExponentialKernel(),\n", + " WhiteKernel(),\n", + " ConstantKernel(),\n", + " LinearKernel(),\n", + " compose(PeriodicKernel(), ScaleTransform(0.2)),\n", + " NeuralNetworkKernel(),\n", + " GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),\n", + "]\n", + "plot(\n", + " [visualize(k) for k in kernels]...;\n", + " layout=(length(kernels), 1),\n", + " size=(800, 220 * length(kernels) + 100),\n", + ")" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.107\n",
    +    "  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n",
    +    "  [98b081ad] Literate v2.16.1\n",
    +    "  [91a5bcdd] Plots v1.40.1\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "  [9a3f8284] Random\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.10.0\n",
    +    "Commit 3120989f39b (2023-12-25 18:01 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.0" + }, + "kernelspec": { + "name": "julia-1.10", + "display_name": "Julia 1.10.0", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/previews/PR546/examples/kernel-ridge-regression/Manifest.toml b/previews/PR546/examples/kernel-ridge-regression/Manifest.toml new file mode 100644 index 000000000..0efc4ad78 --- /dev/null +++ b/previews/PR546/examples/kernel-ridge-regression/Manifest.toml @@ -0,0 +1,1216 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "871a60b57cfc97ea19ecb86f8d3c3aac749bf4ef" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "1287e3872d646eed95198457873249bd9f0caed2" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.20.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "abbbb9ec3afd783a7cbd82ef01dcd088ea051398" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "f870a3a6695b22a737c5914de0c57eb4bc746917" +repo-rev = "935cce54d1862bb49f4274c044a3aa7450a5b3bf" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.60" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "bad26f1ccd99c553886ec0725e99a509589dcd11" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.1" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/previews/PR546/examples/kernel-ridge-regression/index.html b/previews/PR546/examples/kernel-ridge-regression/index.html new file mode 100644 index 000000000..08dce62ac --- /dev/null +++ b/previews/PR546/examples/kernel-ridge-regression/index.html @@ -0,0 +1,1071 @@ + +Kernel Ridge Regression · KernelFunctions.jl

    Kernel Ridge Regression

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for kernel ridge regression.

    # Loading and setup of required packages
    +using KernelFunctions
    +using LinearAlgebra
    +using Distributions
    +
    +# Plotting
    +using Plots;
    +default(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));
    +
    +using Random: seed!
    +seed!(42);

    Toy data

    Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial $f(x) = (x+4)(x+1)(x-1)(x-3)$:

    f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)
    +
    +x_train = -5:0.5:5
    +x_test = -7:0.1:7
    +
    +noise = rand(Uniform(-20, 20), length(x_train))
    +y_train = f_truth.(x_train) + noise
    +y_test = f_truth.(x_test)
    +
    +plot(x_test, y_test; label=raw"$f(x)$")
    +scatter!(x_train, y_train; seriescolor=1, label="observations")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Linear regression

    For training inputs $\mathrm{X}=(\mathbf{x}_n)_{n=1}^N$ and observations $\mathbf{y}=(y_n)_{n=1}^N$, the linear regression weights $\mathbf{w}$ using the least-squares estimator are given by

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X})^{-1} \mathrm{X}^\top \mathbf{y}\]

    We predict at test inputs $\mathbf{x}_*$ using

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w}\]

    This is implemented by linear_regression:

    function linear_regression(X, y, Xstar)
    +    weights = (X' * X) \ (X' * y)
    +    return Xstar * weights
    +end;

    A linear regression fit to the above data set:

    y_pred = linear_regression(x_train, y_train, x_test)
    +scatter(x_train, y_train; label="observations")
    +plot!(x_test, y_pred; label="linear fit")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Featurization

    We can improve the fit by including additional features, i.e. generalizing to $\tilde{\mathrm{X}} = (\phi(x_n))_{n=1}^N$, where $\phi(x)$ constructs a feature vector for each input $x$. Here we include powers of the input, $\phi(x) = (1, x, x^2, \dots, x^d)$:

    function featurize_poly(x; degree=1)
    +    return repeat(x, 1, degree + 1) .^ (0:degree)'
    +end
    +
    +function featurized_fit_and_plot(degree)
    +    X = featurize_poly(x_train; degree=degree)
    +    Xstar = featurize_poly(x_test; degree=degree)
    +    y_pred = linear_regression(X, y_train, Xstar)
    +    scatter(x_train, y_train; legend=false, title="fit of order $degree")
    +    return plot!(x_test, y_pred)
    +end
    +
    +plot((featurized_fit_and_plot(degree) for degree in 1:4)...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).

    However, when increasing the number of features, we can quickly overfit to noise in the data set:

    featurized_fit_and_plot(20)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Ridge regression

    To counteract this unwanted behaviour, we can introduce regularization. This leads to ridge regression with $L_2$ regularization of the weights (Tikhonov regularization). Instead of the weights in linear regression,

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X})^{-1} \mathrm{X}^\top \mathbf{y}\]

    we introduce the ridge parameter $\lambda$:

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X} + \lambda \mathbb{1})^{-1} \mathrm{X}^\top \mathbf{y}\]

    As before, we predict at test inputs $\mathbf{x}_*$ using

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w}\]

    This is implemented by ridge_regression:

    function ridge_regression(X, y, Xstar, lambda)
    +    weights = (X' * X + lambda * I) \ (X' * y)
    +    return Xstar * weights
    +end
    +
    +function regularized_fit_and_plot(degree, lambda)
    +    X = featurize_poly(x_train; degree=degree)
    +    Xstar = featurize_poly(x_test; degree=degree)
    +    y_pred = ridge_regression(X, y_train, Xstar, lambda)
    +    scatter(x_train, y_train; legend=false, title="\$\\lambda=$lambda\$")
    +    return plot!(x_test, y_pred)
    +end
    +
    +plot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Kernel ridge regression

    Instead of constructing the feature matrix explicitly, we can use kernels to replace inner products of feature vectors with a kernel evaluation: $\langle \phi(x), \phi(x') \rangle = k(x, x')$ or $\tilde{\mathrm{X}} \tilde{\mathrm{X}}^\top = \mathrm{K}$, where $\mathrm{K}_{ij} = k(x_i, x_j)$.

    To apply this "kernel trick" to ridge regression, we can rewrite the ridge estimate for the weights

    \[\mathbf{w} = (\mathrm{X}^\top \mathrm{X} + \lambda \mathbb{1})^{-1} \mathrm{X}^\top \mathbf{y}\]

    using the matrix inversion lemma as

    \[\mathbf{w} = \mathrm{X}^\top (\mathrm{X} \mathrm{X}^\top + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    where we can now replace the inner product with the kernel matrix,

    \[\mathbf{w} = \mathrm{X}^\top (\mathrm{K} + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    And the prediction yields another inner product,

    \[\hat{y}_* = \mathbf{x}_*^\top \mathbf{w} = \langle \mathbf{x}_*, \mathbf{w} \rangle = \mathbf{k}_* (\mathrm{K} + \lambda \mathbb{1})^{-1} \mathbf{y}\]

    where $(\mathbf{k}_*)_n = k(x_*, x_n)$.

    This is implemented by kernel_ridge_regression:

    function kernel_ridge_regression(k, X, y, Xstar, lambda)
    +    K = kernelmatrix(k, X)
    +    kstar = kernelmatrix(k, Xstar, X)
    +    return kstar * ((K + lambda * I) \ y)
    +end;

    Now, instead of explicitly constructing features, we can simply pass in a PolynomialKernel object:

    function kernelized_fit_and_plot(kernel, lambda=1e-4)
    +    y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)
    +    if kernel isa PolynomialKernel
    +        title = string("order ", kernel.degree)
    +    else
    +        title = string(nameof(typeof(kernel)))
    +    end
    +    scatter(x_train, y_train; label=nothing)
    +    return plot!(x_test, y_pred; label=nothing, title=title)
    +end
    +
    +plot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:

    kernelized_fit_and_plot(SqExponentialKernel())
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`
    +  [31c24e10] Distributions v0.25.107
    +  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`
    +  [98b081ad] Literate v2.16.1
    +  [91a5bcdd] Plots v1.40.1
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.10.0
    +Commit 3120989f39b (2023-12-25 18:01 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/previews/PR546/examples/kernel-ridge-regression/notebook.ipynb b/previews/PR546/examples/kernel-ridge-regression/notebook.ipynb new file mode 100644 index 000000000..e83f5d95e --- /dev/null +++ b/previews/PR546/examples/kernel-ridge-regression/notebook.ipynb @@ -0,0 +1,2394 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Kernel Ridge Regression\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/kernel-ridge-regression/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/kernel-ridge-regression/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for *kernel* ridge regression." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "# Loading and setup of required packages\n", + "using KernelFunctions\n", + "using LinearAlgebra\n", + "using Distributions\n", + "\n", + "# Plotting\n", + "using Plots;\n", + "default(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));\n", + "\n", + "using Random: seed!\n", + "seed!(42);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Toy data\n", + "Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial $f(x) = (x+4)(x+1)(x-1)(x-3)$:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ], + "cell_type": "code", + "source": [ + "f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)\n", + "\n", + "x_train = -5:0.5:5\n", + "x_test = -7:0.1:7\n", + "\n", + "noise = rand(Uniform(-20, 20), length(x_train))\n", + "y_train = f_truth.(x_train) + noise\n", + "y_test = f_truth.(x_test)\n", + "\n", + "plot(x_test, y_test; label=raw\"$f(x)$\")\n", + "scatter!(x_train, y_train; seriescolor=1, label=\"observations\")" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "## Linear regression\n", + "For training inputs $\\mathrm{X}=(\\mathbf{x}_n)_{n=1}^N$ and observations $\\mathbf{y}=(y_n)_{n=1}^N$, the linear regression weights $\\mathbf{w}$ using the least-squares estimator are given by\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "We predict at test inputs $\\mathbf{x}_*$ using\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w}\n", + "$$\n", + "This is implemented by `linear_regression`:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function linear_regression(X, y, Xstar)\n", + " weights = (X' * X) \\ (X' * y)\n", + " return Xstar * weights\n", + "end;" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "A linear regression fit to the above data set:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 4 + } + ], + "cell_type": "code", + "source": [ + "y_pred = linear_regression(x_train, y_train, x_test)\n", + "scatter(x_train, y_train; label=\"observations\")\n", + "plot!(x_test, y_pred; label=\"linear fit\")" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "## Featurization\n", + "We can improve the fit by including additional features, i.e. generalizing to $\\tilde{\\mathrm{X}} = (\\phi(x_n))_{n=1}^N$, where $\\phi(x)$ constructs a feature vector for each input $x$. Here we include powers of the input, $\\phi(x) = (1, x, x^2, \\dots, x^d)$:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "cell_type": "code", + "source": [ + "function featurize_poly(x; degree=1)\n", + " return repeat(x, 1, degree + 1) .^ (0:degree)'\n", + "end\n", + "\n", + "function featurized_fit_and_plot(degree)\n", + " X = featurize_poly(x_train; degree=degree)\n", + " Xstar = featurize_poly(x_test; degree=degree)\n", + " y_pred = linear_regression(X, y_train, Xstar)\n", + " scatter(x_train, y_train; legend=false, title=\"fit of order $degree\")\n", + " return plot!(x_test, y_pred)\n", + "end\n", + "\n", + "plot((featurized_fit_and_plot(degree) for degree in 1:4)...)" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).\n", + "\n", + "However, when increasing the number of features, we can quickly overfit to noise in the data set:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "featurized_fit_and_plot(20)" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "## Ridge regression\n", + "To counteract this unwanted behaviour, we can introduce regularization. This leads to *ridge regression* with $L_2$ regularization of the weights ([Tikhonov regularization](https://en.wikipedia.org/wiki/Tikhonov_regularization)).\n", + "Instead of the weights in linear regression,\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "we introduce the ridge parameter $\\lambda$:\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X} + \\lambda \\mathbb{1})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "As before, we predict at test inputs $\\mathbf{x}_*$ using\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w}\n", + "$$\n", + "This is implemented by `ridge_regression`:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ], + "cell_type": "code", + "source": [ + "function ridge_regression(X, y, Xstar, lambda)\n", + " weights = (X' * X + lambda * I) \\ (X' * y)\n", + " return Xstar * weights\n", + "end\n", + "\n", + "function regularized_fit_and_plot(degree, lambda)\n", + " X = featurize_poly(x_train; degree=degree)\n", + " Xstar = featurize_poly(x_test; degree=degree)\n", + " y_pred = ridge_regression(X, y_train, Xstar, lambda)\n", + " scatter(x_train, y_train; legend=false, title=\"\\$\\\\lambda=$lambda\\$\")\n", + " return plot!(x_test, y_pred)\n", + "end\n", + "\n", + "plot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "## Kernel ridge regression\n", + "Instead of constructing the feature matrix explicitly, we can use *kernels* to replace inner products of feature vectors with a kernel evaluation: $\\langle \\phi(x), \\phi(x') \\rangle = k(x, x')$ or $\\tilde{\\mathrm{X}} \\tilde{\\mathrm{X}}^\\top = \\mathrm{K}$, where $\\mathrm{K}_{ij} = k(x_i, x_j)$.\n", + "\n", + "To apply this \"kernel trick\" to ridge regression, we can rewrite the ridge estimate for the weights\n", + "$$\n", + "\\mathbf{w} = (\\mathrm{X}^\\top \\mathrm{X} + \\lambda \\mathbb{1})^{-1} \\mathrm{X}^\\top \\mathbf{y}\n", + "$$\n", + "using the [matrix inversion lemma](https://tlienart.github.io/pub/csml/mtheory/matinvlem.html#basic_lemmas)\n", + "as\n", + "$$\n", + "\\mathbf{w} = \\mathrm{X}^\\top (\\mathrm{X} \\mathrm{X}^\\top + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "where we can now replace the inner product with the kernel matrix,\n", + "$$\n", + "\\mathbf{w} = \\mathrm{X}^\\top (\\mathrm{K} + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "And the prediction yields another inner product,\n", + "$$\n", + "\\hat{y}_* = \\mathbf{x}_*^\\top \\mathbf{w} = \\langle \\mathbf{x}_*, \\mathbf{w} \\rangle = \\mathbf{k}_* (\\mathrm{K} + \\lambda \\mathbb{1})^{-1} \\mathbf{y}\n", + "$$\n", + "where $(\\mathbf{k}_*)_n = k(x_*, x_n)$.\n", + "\n", + "This is implemented by `kernel_ridge_regression`:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_ridge_regression(k, X, y, Xstar, lambda)\n", + " K = kernelmatrix(k, X)\n", + " kstar = kernelmatrix(k, Xstar, X)\n", + " return kstar * ((K + lambda * I) \\ y)\n", + "end;" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "Now, instead of explicitly constructing features, we can simply pass in a `PolynomialKernel` object:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=8}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "cell_type": "code", + "source": [ + "function kernelized_fit_and_plot(kernel, lambda=1e-4)\n", + " y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)\n", + " if kernel isa PolynomialKernel\n", + " title = string(\"order \", kernel.degree)\n", + " else\n", + " title = string(nameof(typeof(kernel)))\n", + " end\n", + " scatter(x_train, y_train; label=nothing)\n", + " return plot!(x_test, y_pred; label=nothing, title=title)\n", + "end\n", + "\n", + "plot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)" + ], + "metadata": {}, + "execution_count": 9 + }, + { + "cell_type": "markdown", + "source": [ + "However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "cell_type": "code", + "source": [ + "kernelized_fit_and_plot(SqExponentialKernel())" + ], + "metadata": {}, + "execution_count": 10 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.107\n",
    +    "  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n",
    +    "  [98b081ad] Literate v2.16.1\n",
    +    "  [91a5bcdd] Plots v1.40.1\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.10.0\n",
    +    "Commit 3120989f39b (2023-12-25 18:01 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.0" + }, + "kernelspec": { + "name": "julia-1.10", + "display_name": "Julia 1.10.0", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/previews/PR546/examples/support-vector-machine/Manifest.toml b/previews/PR546/examples/support-vector-machine/Manifest.toml new file mode 100644 index 000000000..1d4cb849c --- /dev/null +++ b/previews/PR546/examples/support-vector-machine/Manifest.toml @@ -0,0 +1,1246 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "d0b26683c92b747389c4e23a24f873fcb30a1126" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "1287e3872d646eed95198457873249bd9f0caed2" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.20.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + + [deps.CompositionsBase.weakdeps] + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "abbbb9ec3afd783a7cbd82ef01dcd088ea051398" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "f870a3a6695b22a737c5914de0c57eb4bc746917" +repo-rev = "935cce54d1862bb49f4274c044a3aa7450a5b3bf" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.60" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LIBLINEAR]] +deps = ["Libdl", "SparseArrays", "liblinear_jll"] +git-tree-sha1 = "81e40115c23acca9dfa30944050096b958271e5a" +uuid = "2d691ee1-e668-5016-a719-b2531b85e0f5" +version = "0.6.0" + +[[deps.LIBSVM]] +deps = ["LIBLINEAR", "LinearAlgebra", "ScikitLearnBase", "SparseArrays", "libsvm_jll"] +git-tree-sha1 = "a5e607649aeb9ae3bbde19dc629faaa3b3d8955d" +uuid = "b1bec4e5-fd48-53fe-b0cb-9723c09d164b" +version = "0.8.0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "bad26f1ccd99c553886ec0725e99a509589dcd11" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.1" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.ScikitLearnBase]] +deps = ["LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f" +uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e" +version = "0.5.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + + [deps.StatsFuns.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.liblinear_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7f5f1953394b74739eaebd345f4515515a022a5b" +uuid = "275f1f90-abd2-5ca1-9ad8-abd4e3d66eb7" +version = "2.47.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libsvm_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl", "Pkg"] +git-tree-sha1 = "7625dde5e9eab416c1cb791627f065ce55297eff" +uuid = "08558c22-525a-5d2a-acf6-0ac6658ffce4" +version = "3.25.0+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/previews/PR546/examples/support-vector-machine/index.html b/previews/PR546/examples/support-vector-machine/index.html new file mode 100644 index 000000000..e01ef1ae0 --- /dev/null +++ b/previews/PR546/examples/support-vector-machine/index.html @@ -0,0 +1,222 @@ + +Support Vector Machine · KernelFunctions.jl

    Support Vector Machine

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    In this notebook we show how you can use KernelFunctions.jl to generate kernel matrices for classification with a support vector machine, as implemented by LIBSVM.

    using Distributions
    +using KernelFunctions
    +using LIBSVM
    +using LinearAlgebra
    +using Plots
    +using Random
    +
    +# Set seed
    +Random.seed!(1234);

    Generate half-moon dataset

    Number of samples per class:

    n1 = n2 = 50;

    We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:

    angle1 = range(0, π; length=n1)
    +angle2 = range(0, π; length=n2)
    +X1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()
    +X2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()
    +X = [X1; X2]
    +x_train = RowVecs(X)
    +y_train = vcat(fill(-1, n1), fill(1, n2));

    Training

    We create a kernel function:

    k = SqExponentialKernel() ∘ ScaleTransform(1.5)
    Squared Exponential Kernel (metric = Distances.Euclidean(0.0))
    +	- Scale Transform (s = 1.5)

    LIBSVM can make use of a pre-computed kernel matrix. KernelFunctions.jl can be used to produce that using kernelmatrix:

    model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)
    LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 0.9596163170022011 0.8681749917956418 0.7405298560587654 0.6670753594660519 0.1779671467515013 0.12581804740739566 0.05707943398657384 0.02764121723161683 0.033765857073249396 0.2680295766735067 0.29939058530607915 0.37151489965630213 0.3524014409758097 0.2908959282977835 0.3880509811446821 0.8766234308310106 0.82681374480545 0.8144257681324784 0.6772129558340088 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 0.965182128960536 0.9914891432258488 0.8867564750187009 0.9019354510254446 0.2147708440814802 0.15771406856492454 0.05887040570928494 0.017222970583007854 0.019222888349132574 0.221500149894056 0.2978310573718274 0.3053559535776424 0.2890446485251837 0.22090114119439183 0.3141485519019614 0.6220352391872924 0.5857825177211226 0.6973386670166851 0.7178826818314505 0.7710611517712889 0.4654568122945319; 0.9596163170022011 0.965182128960536 1.0 0.9626046043667029 0.8869903689807833 0.8153402743825475 0.25975227903072295 0.19192116220346336 0.08434059685077588 0.03220850516134753 0.0366758927128704 0.31408772981722 0.3824704266612618 0.4200037751884887 0.4001773046096343 0.3219312217176709 0.43280734456335546 0.750503533504958 0.6647402210580929 0.6926170128782051 0.6277007998632926 0.6433503699452944 0.32400415670963956; 0.8681749917956418 0.9914891432258488 0.9626046043667029 1.0 0.9370667957752087 0.934295025587645 0.26444251222948995 0.19879359752203962 0.07665919270519939 0.021595654487073727 0.023425682392132743 0.2566761906912133 0.3496676024988405 0.34456852113508585 0.3275077643059417 0.25092423515822787 0.35232020079983056 0.5892979561473187 0.5284801502144095 0.6217604813241744 0.6430231195027034 0.7109544049100224 0.44057810112560447; 0.7465952329465504 0.9304484985812767 0.8897100197930106 0.9678435903690089 0.9814954031669109 0.9779840213642631 0.3466778268733209 0.27206683288049266 0.10510054534990214 0.024906016068519672 0.02537581531241299 0.2819293887595886 0.4088052209237594 0.3636370022084356 0.34754098347809126 0.26247121953918195 0.3672027632424591 0.46578384178509197 0.38887087230008666 0.4701103002702702 0.5145210485797571 0.6123061110630164 0.42723601664089345; 0.7405298560587654 0.8867564750187009 0.8869903689807833 0.9370667957752087 1.0 0.9265705090470907 0.4401947652983322 0.35262403649115526 0.15320607160230898 0.041175981935510725 0.04156995738050753 0.37540034365943104 0.5190650165661463 0.46669986410386666 0.4490622985140926 0.3499350203111987 0.46962470972808273 0.4883331096338951 0.3798584854063081 0.4217137127807958 0.4303538604829861 0.5091151748567635 0.32622076287640006; 0.6670753594660519 0.9019354510254446 0.8153402743825475 0.934295025587645 0.9265705090470907 1.0 0.2827193698331228 0.2209480096839663 0.07504013686337539 0.014371637034094253 0.01439904495484344 0.2022331299863698 0.3174100045147389 0.2670237514797323 0.2539121194008726 0.18411214167319784 0.26924082958699697 0.3775897748372698 0.33049550236819253 0.4440238046305932 0.5378606847561948 0.6649412466468505 0.5362623212460318; 0.6702595528823198 0.8606244226283823 0.8314916696615914 0.9158026981710833 0.9886587344335546 0.9560332901136585 0.43011039397992096 0.34820512587201075 0.14124895742843027 0.032158966523388476 0.031580446301945404 0.32479775862613985 0.47740665014325184 0.4040619518789057 0.38836949912884633 0.29482897357398075 0.4047606090427496 0.40908071544297814 0.3195106528226398 0.37846326245707385 0.41478881966429043 0.5119444241914671 0.36732348167804796; 0.5958832606985172 0.7761919158084817 0.764543603784896 0.8444984180740654 0.9708780964035508 0.9003101222501712 0.5272836631986195 0.4399206665565803 0.19102502302045962 0.043420828006372085 0.04129805359453605 0.37942807492906316 0.5573589063405943 0.4543619576452872 0.4394388167665561 0.3375627830189747 0.45182010123593386 0.36215845599297103 0.2634668608558619 0.30067673081800705 0.3243249963940758 0.4116488074528402 0.2958856882102383; 0.6885947324331928 0.8568830230020188 0.8463587912182832 0.9136212483096897 0.9958882004323975 0.9330458507202257 0.460198027818651 0.3733503341923742 0.15937475820815994 0.0394059990098187 0.038929261709730496 0.3649438549033214 0.5202001774588284 0.4496246527453173 0.4330574268345955 0.33404405039411145 0.4506081711573255 0.43638796244437944 0.33426657209516675 0.3798417694355356 0.4001476735300954 0.48685776367870665 0.3302703252897188; 0.5090115987229845 0.66413624932743 0.6748754932289617 0.7410778570661924 0.9169250942417487 0.8005426352978952 0.6529042363424815 0.563579434224383 0.2698518181195754 0.06354590398806001 0.05851083802910193 0.45550338406982604 0.6594734277650144 0.5208034250731294 0.5076214704665837 0.3978825263055807 0.5138380455506879 0.3131959074096939 0.20890435984227568 0.22461858592695394 0.23387430115253083 0.30414333483721223 0.21357650440692952; 0.45093840203402863 0.6528439740207388 0.621293380868375 0.7281001827134798 0.8878776747702869 0.8483652168656046 0.5523273229286175 0.4772875263856446 0.19761071338591454 0.03572808338522635 0.03200591765116194 0.3254023798230707 0.5196262009999181 0.37997186968805663 0.36850957018497515 0.27531375747209685 0.37362641649043415 0.24573139502121816 0.17123499867505312 0.20822585856181272 0.24503580982318168 0.3360215134566464 0.282452943899592; 0.3853374653727806 0.5531275651750578 0.5456456216692458 0.63187924915747 0.8272788783068459 0.7400449329312268 0.6740778081979193 0.6015241987774301 0.27711939662891033 0.05315958324949652 0.046303407217568385 0.39204087574676183 0.6116325191520129 0.4372487002786384 0.42739649234665433 0.3269933488950957 0.42689765420513015 0.2149742263615225 0.1373845757765515 0.15601083788315914 0.1754427451629185 0.24492436885056065 0.19788854100040332; 0.4618500914094273 0.6128977794159381 0.6250323394686075 0.6915365382967459 0.88189001173394 0.7603121381740631 0.6931399190748629 0.6074867523562785 0.29692455405263407 0.0681577107585657 0.06159926451755685 0.4645954678327457 0.6786212904021323 0.5221512124616867 0.5102875582105725 0.40055028127076997 0.5131110004920902 0.28037311469308024 0.18119852159344918 0.19343543701106478 0.20210176995756082 0.2678694503178588 0.1914666250241892; 0.2696302037951813 0.39638152158224865 0.403404894882526 0.46949354523118425 0.6809782176032294 0.5691943970817303 0.7959863116838541 0.7460243621745607 0.383759661562218 0.07333545211725394 0.06062770952823484 0.4276361345098877 0.6667776453895222 0.44825730820354187 0.44260682761401715 0.34513919555944916 0.43243837419232345 0.14931467351759206 0.08501132835349595 0.09090598935589621 0.09966166276310144 0.14565406652997917 0.1181167187860405; 0.3002590494463073 0.4115977376244659 0.43517761205157995 0.4854137709312024 0.7013669019363106 0.5580577880472913 0.8536237862527719 0.7944463939442774 0.4423829365109098 0.10024118415255136 0.08491613895458582 0.5164984752370707 0.7562127396153628 0.5384043672737264 0.532633886946863 0.4273028327796133 0.5213353428367101 0.17995021704234954 0.10110435738873308 0.10066689644324499 0.1023456357653284 0.14371084800072215 0.10376729355409814; 0.23895991490217605 0.33249975589925446 0.3570356667989706 0.3998440847736826 0.6103384074505219 0.46903410987322885 0.8998463600755164 0.8599178355605582 0.5066796013929806 0.11396841785672483 0.0938145408103168 0.5199141678644349 0.7624727563004503 0.5243659291344558 0.5215260868720673 0.4222997164056707 0.5044431497960399 0.14229601411077292 0.07518839830888858 0.07265639350751003 0.0730416671251987 0.10523885318589322 0.07641455926683688; 0.1915586377215268 0.2782828209211749 0.2967514734538114 0.33993222993655975 0.5402177192407522 0.41457098384450736 0.8940395698131182 0.8732189313788711 0.5158710981816049 0.10661722182344716 0.08504323591413473 0.47313025445505164 0.7153672453884371 0.46747599643639337 0.4662739691425648 0.37502751142299 0.4468899647601597 0.10944611467787402 0.05573856274262572 0.054529742226822116 0.05633615986012236 0.0842054572140432 0.06479883181573562; 0.22705224038961044 0.31938520593304515 0.34224069664715906 0.385495402966531 0.5939999674274448 0.4566062935524366 0.899155765927396 0.8637017932666784 0.5087259826371333 0.11196526875215826 0.09146631735404127 0.5082775947180933 0.7512932189769945 0.5102218707630334 0.5077837081682253 0.41038655426963877 0.4900958753322606 0.1337816259051161 0.0700979881035211 0.06799122461651445 0.06885045790765319 0.10009947593776944 0.0737756297099595; 0.13939429772646458 0.19866201340261797 0.22114257212806596 0.24864914930042606 0.42520802222653464 0.302501776239137 0.9372245539818653 0.9455339290308946 0.6315082072142529 0.14232088029862777 0.11065257979685114 0.497993580135406 0.7281911500795765 0.46872860910213954 0.4714826024303301 0.3903354300403334 0.44502619470509736 0.08256405886680711 0.03835534537202231 0.034581508309323515 0.033704650675767854 0.05102221540013976 0.03704322052953614; 0.14536068431690077 0.22095226487516476 0.23447742603357294 0.274909660351764 0.45833250114914875 0.34957510182253293 0.8743978358229307 0.8761033364462417 0.5229671176330489 0.0991832584928122 0.07635359024682037 0.42104563348070084 0.6565602859173729 0.40568985690003667 0.40610443722599326 0.3248474190874977 0.3850374404413671 0.07960429303749694 0.03874287443935803 0.03821774674349671 0.040517865120029126 0.0630563129568011 0.0514750781731886; 0.14763143381426758 0.20697373951526962 0.23172641379954417 0.25814071080843315 0.43782614347195603 0.3097871356075422 0.948191751644435 0.9518038099641223 0.6412421014386851 0.14982574968207624 0.11752904351897316 0.5195447242996001 0.7497513218160706 0.4906394512641361 0.4933596158142264 0.41032684627296356 0.46659647468974 0.08895540630063033 0.041555343865819036 0.0370694847518811 0.035626747327519616 0.05330326825496781 0.03775624173646896; 0.0988933742294342 0.12124815101071282 0.1522607181459668 0.1549588355463188 0.2869756433774373 0.17057949531906372 0.9559135116536135 0.9892814033753422 0.8831001155923481 0.301076796055474 0.23744952288817556 0.6342825599362547 0.794592834668333 0.5579899828492979 0.5688794841651086 0.5133182360119145 0.5290723135633687 0.07062859133770322 0.028724907143533655 0.02063694811643021 0.0163555000764835 0.023361093148916098 0.012804211869588852; 0.1779671467515013 0.2147708440814802 0.25975227903072295 0.26444251222948995 0.4401947652983322 0.2827193698331228 1.0 0.9840440354640055 0.7746626759108745 0.259331300415348 0.21532000371278573 0.7098399745938505 0.897129803886899 0.6668121606496512 0.6725100792205622 0.5926610833970605 0.639910660474017 0.12677413631301512 0.05828369828510033 0.04500739970678052 0.03699408218865754 0.05063099709508791 0.028066326109481347; 0.12581804740739566 0.15771406856492454 0.19192116220346336 0.19879359752203962 0.35262403649115526 0.2209480096839663 0.9840440354640055 1.0 0.8196815897955259 0.2585454040835821 0.2062681823099032 0.6395908524826316 0.8253149042783318 0.5796701178937012 0.5878473919825917 0.5191073343197649 0.5515646672943586 0.08688786848645763 0.03740368096386031 0.028523064291676215 0.023677093828563235 0.033770552150204226 0.0195077208623248; 0.13635764102815603 0.17700879424928978 0.20952156641370756 0.22209299900339824 0.387023745781692 0.2526789145766851 0.9840473928465677 0.9944545163994348 0.7628015511728252 0.21862995489084638 0.17378734562194012 0.6072327127100751 0.8120913399429163 0.5587815024853605 0.5649398681849662 0.48910402339466696 0.531808973769114 0.09017310666726844 0.03999940594359134 0.032134604355827 0.02797743047976866 0.04045661550302929 0.024940657478324198; 0.03738526797037774 0.0518722922443791 0.06469761673719454 0.07006166077431174 0.15008890206353956 0.08665512641758483 0.7784277540898672 0.8696233384872661 0.8146647085648284 0.22136689810316545 0.15743791729748416 0.3968445993948711 0.5391261134094336 0.32293628667971663 0.33300869834150976 0.2972564334545365 0.29975944910030017 0.023848286045824146 0.008420633155828174 0.006112619378410749 0.00516049180195299 0.008268679880159445 0.0052975977111670795; 0.042144581324510336 0.0494746902418995 0.06742933413721425 0.06600663846708471 0.13930785683731703 0.07183957093968951 0.7790781696938223 0.8536051172386016 0.9590138186434369 0.3903921195934206 0.2950426290497306 0.5288899615616742 0.6189309135561756 0.4262505758493195 0.44128790558923603 0.4208889858046393 0.39942670313494494 0.032438697615701076 0.011172295974476632 0.006870690987412239 0.004857666087518073 0.007060720348024933 0.0034344193347111735; 0.05312991544390621 0.05941513640392731 0.08194706236820062 0.07813203139092116 0.15906453281962285 0.08151519050847295 0.8085392731314344 0.8681139298684074 0.9848651453003653 0.443246308165159 0.3456733523248384 0.6037896564824075 0.6813118162978405 0.4950714556869529 0.5113993322285312 0.49277881830487924 0.4667583768828605 0.0429226487701534 0.015239324750107681 0.009170625347595353 0.006257708243494053 0.00875319860215057 0.0039747823519354995; 0.05707943398657384 0.05887040570928494 0.08434059685077588 0.07665919270519939 0.15320607160230898 0.07504013686337539 0.7746626759108745 0.8196815897955259 1.0 0.5440195902835544 0.43906982651942317 0.6673967547317672 0.7023400808140081 0.5485677304431098 0.5670659502059522 0.5624209010974132 0.5201938090487075 0.05039216793847928 0.01791524354832784 0.010043369678747171 0.006325305381042625 0.00840984174401409 0.0033555198691232182; 0.0239028553317282 0.030184756247153024 0.040854218058537374 0.041510328633494326 0.09483008177233723 0.048340772261097814 0.6717838510012278 0.7676403150888159 0.8793112190224525 0.3119804989346951 0.22247711097256292 0.3913818163355702 0.481152264589789 0.30253086008317853 0.3150901394384516 0.29804879470704987 0.2801577440280252 0.0171896769354173 0.005490096384196609 0.0034159985987988898 0.0025153999701487658 0.0039043781883587865 0.002087265775451305; 0.031461748783796255 0.03877763079418788 0.05235828887075337 0.05259747403989502 0.11577900027217572 0.059784830395976214 0.7284683797887744 0.8167846933186389 0.9160729338118098 0.3382566896841279 0.24707350935618375 0.44839573463782234 0.5435604959271204 0.35385233350424394 0.3673850921598674 0.3474062654846442 0.32935166307385894 0.023094272546330587 0.007660825323682672 0.004791128233787445 0.003499654757292123 0.005296572963316763 0.002754516536638302; 0.0202635020156832 0.0209515968555071 0.031856292217650496 0.028621916401232315 0.06575704582809962 0.028713198747047974 0.5561499763492528 0.6276780889906601 0.9225361894208831 0.537563426752421 0.40805784519141053 0.45230817484429436 0.46279255715733986 0.34051076155197635 0.35722093503244967 0.36821581556576116 0.3181318631289292 0.018326268390209892 0.005525107949270952 0.002764399785944711 0.0016269608580749297 0.0022643385581135253 0.0008634402327095031; 0.03917881206249196 0.04187141495743542 0.0602770437308414 0.05569284553771938 0.11787868067422283 0.05651647912609812 0.7170279636314995 0.7811392796869542 0.9868755418205789 0.507181661805653 0.3946817184897088 0.5692597969620196 0.6111220282142971 0.45306704851231877 0.47065706470710794 0.467410267660561 0.4263135976218018 0.0335840367945797 0.0112547984221705 0.006246809772638481 0.003975045243333954 0.005489661056955841 0.0022783159887154033; 0.04503255088410135 0.0439137702967996 0.06568078940616273 0.05754622086226787 0.11797430518899149 0.0542341914980732 0.6848945717357943 0.7301845715877101 0.9867821313846442 0.6248955778853352 0.5079623735649396 0.6419956195484627 0.6383844961053452 0.5159463011662203 0.5357861713088927 0.5480569804281196 0.4892367713976803 0.0425914300452601 0.014482620179200524 0.0074868753371495735 0.0043749674598642044 0.0056845719431328585 0.002045738397676184; 0.020015288581754945 0.019539997383675744 0.0305983363763088 0.026560055130788258 0.060568717016068814 0.02548996952986846 0.5212517692914928 0.5837589968251036 0.9104128747187193 0.6087759155456162 0.4723327572739916 0.4681713902460597 0.4553175340992092 0.3517956141533186 0.3694712715628193 0.3893559371646623 0.3298272088546007 0.01929969464392214 0.005784803454931787 0.0027392873350079857 0.0015186313676977968 0.00204248371497284 0.0007090901969261304; 0.020666052296526998 0.023467210104345954 0.03394439944734565 0.03227571537361978 0.07474354689359762 0.03478309139442751 0.6050706431823535 0.6902380132644816 0.9157011962379701 0.4252868608831877 0.31207368821244674 0.41915963873727863 0.46633517155931187 0.3173525840288823 0.3321740061129138 0.32987532663994706 0.29493718842290595 0.01682097194725037 0.005145059748221362 0.0028260660732993795 0.0018375597258384604 0.0027007138580146654 0.0012020186941257484; 0.02453101432184634 0.020098364892380587 0.033807186321682364 0.026519136869644185 0.05668770862680506 0.022080288969644857 0.4402683441382192 0.4723140706097761 0.8338110421697035 0.8296862086740819 0.7008351158890717 0.5440749777729216 0.45737691515438816 0.41745398965791825 0.43796100209216043 0.48788632097996637 0.39735131936242424 0.028530362783343567 0.008830718283431016 0.003661080212258824 0.0017275175383884805 0.0020652670212335587 0.0005465605530047422; 0.010772381969517289 0.00808979915556405 0.014769223974223632 0.010907548917201483 0.025105066248112838 0.00861005735113974 0.27446992177652213 0.30268057727357456 0.6563261019548249 0.8423122954493703 0.7087959360554233 0.3816217504493905 0.2915784265479316 0.27667027303245256 0.29339896442424834 0.3462653613105691 0.2623718667950521 0.014036631757401184 0.003892193697218935 0.0013824598149453928 0.000570663656527681 0.0006655357305495249 0.00014821787811893474; 0.013102125076381291 0.009501254374372565 0.01743056916880381 0.012641115714999962 0.028109874095783 0.009665720685806211 0.2779944240132419 0.3009422157277764 0.6496100565156806 0.8921208950268356 0.7707215094068156 0.4153473315697215 0.3097033352945198 0.30652449538189097 0.3242452180605052 0.38457230531389347 0.29222754331272954 0.0176491442562162 0.005052976710183603 0.0017795086910056906 0.0007191096459963922 0.0008135871421187968 0.0001729568595091208; 0.010048640046801751 0.007556801509146678 0.01383630447940828 0.010219144448059669 0.023720538640699704 0.008086205235382792 0.2673028201381964 0.2959612329986008 0.6480835552991425 0.8326590465631913 0.6977877995262115 0.3695874583691571 0.282221028802535 0.26655787487127675 0.28291666669202015 0.3345015952465225 0.2525390976336497 0.013094227782891262 0.003595847554140322 0.001270090006133873 0.0005228431863253228 0.0006118815220643209 0.00013617786605785216; 0.022349563450720516 0.015126611441125632 0.027736426902443566 0.019448577925125717 0.03948248730102741 0.013912843541017676 0.29407180499185603 0.3036682389024967 0.6295948777410747 0.9760878235703699 0.8971483297034317 0.510873410149174 0.3648754706376355 0.3962367174131936 0.4160536437133086 0.49505438923170403 0.38266060041477884 0.032002468097764726 0.010030791663580315 0.003541268511179874 0.001388397560167188 0.0014686522229405998 0.0002871893433972941; 0.010020005268819202 0.006809770300057249 0.013011105080329613 0.009061216335098812 0.0203203311204038 0.006608239130026839 0.2181377208067792 0.23591612481445193 0.5571316265641847 0.9019480717339876 0.7928873516646797 0.3622506780828305 0.25412502873565396 0.26395075463572065 0.2800632926839618 0.34220302701090444 0.25218637023914864 0.014558062704000863 0.004058708035772421 0.0013244042014423662 0.0004960057823668772 0.000542796465649497 0.00010316672930654405; 0.01106332568616253 0.006887193194115914 0.013554569709165635 0.008985016403844404 0.019232335629336378 0.00608875040752228 0.18606570349931004 0.19565849249653774 0.48225133952423743 0.9453876390694811 0.8725629002342125 0.3644945741438321 0.23844406528632542 0.27079632723779745 0.28673978102317077 0.35878774000611285 0.26108600973253054 0.017606861104932217 0.005073103983778686 0.001567301714496989 0.0005453728216072849 0.0005601086767381032 9.34005648300471e-5; 0.01657908523512305 0.011582747078381944 0.021314338205802762 0.015167963313664786 0.032355502612115034 0.011201905491084553 0.28242091851773066 0.29908821320436807 0.6382850228010263 0.9397497324044695 0.8367176827710091 0.45643200424037295 0.3319584631188468 0.3443458093220082 0.3630946413341951 0.4323367624470917 0.3303136751483621 0.023116247423315056 0.006887297927401206 0.0024132953755383753 0.0009557168244199856 0.001045242382536408 0.00021182221215739486; 0.02764121723161683 0.017222970583007854 0.03220850516134753 0.021595654487073727 0.041175981935510725 0.014371637034094253 0.259331300415348 0.2585454040835821 0.5440195902835544 1.0 0.9702064166750799 0.530245218387723 0.3560307890203881 0.4238742345642878 0.44332843787390197 0.5365850265213121 0.4136915663687128 0.04297162933120202 0.01420754067753986 0.00483919981495718 0.0017871776252900312 0.0017700462041020729 0.00030801400193521903; 0.033765857073249396 0.019222888349132574 0.0366758927128704 0.023425682392132743 0.04156995738050753 0.01439904495484344 0.21532000371278573 0.2062681823099032 0.43906982651942317 0.9702064166750799 1.0 0.5266287956023967 0.3307939384157074 0.43601990045358663 0.4539182184875824 0.5591960801816629 0.4306259447317991 0.057385150231952155 0.02019180375858439 0.006632129374597611 0.002298515218977774 0.0021163880760639107 0.00032463677682729514; 0.02553578820521561 0.0158644870161105 0.029838914605637666 0.019953454894567846 0.038401012604959726 0.013269650716428449 0.2509244773194308 0.251186735069333 0.5371677022503326 0.9995646051393732 0.9667899675361993 0.513751166350262 0.3433357299717392 0.4081395073506391 0.42733645217635563 0.5192419691029252 0.39799729028929487 0.03990347409204987 0.013038212795705478 0.0043927214930709535 0.0016094244034674434 0.0015961297818598565 0.0002754711459087229; 0.014684836067894124 0.007863396938894306 0.016093036470496366 0.009825718452488018 0.0189014126385701 0.005844366606428707 0.13849007975235583 0.13706934957395644 0.3505681951871089 0.9408488893951146 0.9551754247357206 0.3639737993290779 0.21243271709551226 0.2843646309443169 0.29919652216983733 0.3870026762693761 0.2792653571316844 0.027184350652692695 0.008556747740127378 0.002461193413214283 0.0007652106152402142 0.0006987527433192667 9.397135335575793e-5; 0.021425769737078368 0.011961446785158796 0.023616854868073967 0.014831082339553991 0.027747811476019044 0.009060931748526886 0.17752833012020347 0.17401094944541437 0.40750501628989283 0.9721752042840985 0.985527711544548 0.4396878920679833 0.2681896715550059 0.35127963758750874 0.36800110805489483 0.46402546238163483 0.34531620678243374 0.037617774125204916 0.012368962147916036 0.0038068720385083673 0.001257026852505441 0.0011643628241787124 0.00016961483943713626; 0.2680295766735067 0.221500149894056 0.31408772981722 0.2566761906912133 0.37540034365943104 0.2022331299863698 0.7098399745938505 0.6395908524826316 0.6673967547317672 0.530245218387723 0.5266287956023967 1.0 0.9204011029470381 0.9763204269194343 0.9834744899012892 0.9800453255225883 0.9670027469525624 0.2868166055620744 0.1396173432997934 0.0802050018418445 0.04629682347632554 0.04928910656810396 0.015144618580948671; 0.29939058530607915 0.2978310573718274 0.3824704266612618 0.3496676024988405 0.5190650165661463 0.3174100045147389 0.897129803886899 0.8253149042783318 0.7023400808140081 0.3560307890203881 0.3307939384157074 0.9204011029470381 1.0 0.9092611854055276 0.9117485102579749 0.8437830107817399 0.8913223951781822 0.26003030092553525 0.1303827813666727 0.09015777074260106 0.06341517666632882 0.07518254013006463 0.03137762242865076; 0.37151489965630213 0.3053559535776424 0.4200037751884887 0.34456852113508585 0.46669986410386666 0.2670237514797323 0.6668121606496512 0.5796701178937012 0.5485677304431098 0.4238742345642878 0.43601990045358663 0.9763204269194343 0.9092611854055276 1.0 0.9993139026257465 0.9765798100043396 0.9987957619674939 0.39412877854863043 0.2098767698470255 0.12780803517686787 0.07623734052074496 0.07896775479712795 0.02470799941856937; 0.3524014409758097 0.2890446485251837 0.4001773046096343 0.3275077643059417 0.4490622985140926 0.2539121194008726 0.6725100792205622 0.5878473919825917 0.5670659502059522 0.44332843787390197 0.4539182184875824 0.9834744899012892 0.9117485102579749 0.9993139026257465 1.0 0.9815187936126483 0.9969143579721336 0.37562956856679103 0.19703163333480644 0.11850074321536054 0.07008717427360553 0.07279694039680448 0.022599211149285328; 0.39465231175913795 0.31587551141322445 0.43642677197878865 0.3530737581159885 0.46672673050010677 0.26715889535835474 0.622155656205321 0.5337483231906022 0.5046262630854164 0.41089803125627195 0.43085691731721165 0.961384843855092 0.8785837060449794 0.9969370612351908 0.9945537399369616 0.97609997854102 0.9995568027554731 0.4295214100756645 0.2338386266049015 0.14126529235623905 0.08283907919566438 0.08390006402557657 0.025324299741833464; 0.2908959282977835 0.22090114119439183 0.3219312217176709 0.25092423515822787 0.3499350203111987 0.18411214167319784 0.5926610833970605 0.5191073343197649 0.5624209010974132 0.5365850265213121 0.5591960801816629 0.9800453255225883 0.8437830107817399 0.9765798100043396 0.9815187936126483 1.0 0.9760363402932355 0.3396761689366942 0.17122729619266394 0.09352156540595309 0.05035919518075388 0.05038867912666139 0.01366097735931823; 0.3514836919845527 0.25827905726818784 0.37376328779438567 0.2871031630484072 0.3774708549469005 0.20356442769718722 0.527254124515189 0.4483191866084228 0.46652883939298834 0.4676429245287537 0.505344784277436 0.9424242881899214 0.7976158902909226 0.971098264163409 0.9709671758028702 0.9864017590543077 0.9781505431297239 0.42127512095013353 0.22585472214185204 0.1251177654786094 0.06693346651287566 0.06454104481834383 0.01690822793519799; 0.3880509811446821 0.3141485519019614 0.43280734456335546 0.35232020079983056 0.46962470972808273 0.26924082958699697 0.639910660474017 0.5515646672943586 0.5201938090487075 0.4136915663687128 0.4306259447317991 0.9670027469525624 0.8913223951781822 0.9987957619674939 0.9969143579721336 0.9760363402932355 1.0 0.4175584225095954 0.22574366435124235 0.13708488052338838 0.08106449463694666 0.08284201786267843 0.02541251142320079; 0.37961657901188395 0.25192283506342733 0.37396034073513706 0.27177013275063033 0.3316295475090898 0.17635188715914188 0.3805158733692937 0.31022132785589657 0.32995603743246077 0.4085529653091237 0.4713640504577533 0.8305039703656368 0.6510083421165387 0.8867144586887958 0.8825664115254728 0.9163437520779888 0.9045793138133195 0.5037709664927494 0.28752565713902434 0.1520569532177624 0.07546592900068064 0.0671567954033988 0.01522336553239881; 0.4702831429583742 0.3213335719746325 0.4597881972580735 0.34164544472267744 0.39813969852691955 0.22491433200447894 0.3765147624730655 0.3011668417307773 0.2904874285924168 0.3265331196970446 0.3807124240825537 0.7964028874115803 0.6475849179588237 0.878341751854222 0.8691210753475811 0.879767432078501 0.8991737718575608 0.5982998949558497 0.3633531261013041 0.20600362457781846 0.10808286790933438 0.09633093909886627 0.02331194601865261; 0.526795288057018 0.3940391213462967 0.5388779005079533 0.42266049253674903 0.49969396504753033 0.298501330474785 0.4644036535619441 0.37649106648873704 0.3319524786282605 0.300825324374188 0.33846013954020493 0.8391821514224157 0.7387531166728089 0.9266670512086935 0.9155922954238254 0.89576457108235 0.9431591120717556 0.6061425707332225 0.37032063184699016 0.22846758678703566 0.1315297906335085 0.12382813579712616 0.03470780014308738; 0.326708533419188 0.2430452816843132 0.3528498094599045 0.2724891632283225 0.36673219291844344 0.19573728896816622 0.5532605885480469 0.4759742322481321 0.5037422336172169 0.49604598976832465 0.5285094201634164 0.9600456733812273 0.81751796330167 0.9761094484348516 0.9780088993021706 0.9950015905287559 0.9801978533385329 0.3878742388347221 0.20288958549179464 0.11167812171391878 0.05985022255614695 0.05853988792012992 0.015526771107081744; 0.5619207849380442 0.38384512737319587 0.5345032833933165 0.39943888193571503 0.4372646966133805 0.26024918463886315 0.3280472343236939 0.2549281555415764 0.22593650441538846 0.24574382979335188 0.29442973469375133 0.7110437799713303 0.5859751095762021 0.8158127630991835 0.8019023386938486 0.7975187692574014 0.8407203767536858 0.7064956340024616 0.4621084542264419 0.27596525043225517 0.1494008366974313 0.13051365577846652 0.03227936170155413; 0.6430706658631261 0.45006841886534327 0.6078444172622047 0.46271359870464523 0.4874771713377931 0.30510864810623706 0.31132575025507137 0.23812417686552184 0.19454650831020817 0.19524813962125906 0.23598888415659178 0.6574493787863069 0.5585838247963583 0.7749782758058278 0.7580532503023097 0.7381503679619124 0.8009681622942774 0.7806334105161824 0.5376983537943203 0.34025026525820296 0.1929222057620414 0.16874582807373442 0.04406772611548003; 0.7231647963646257 0.5056851000850311 0.6655850205917616 0.509266230976612 0.5052334681260294 0.3323247700429202 0.2584463004813027 0.19226030577292572 0.14491990312468314 0.1411260347060979 0.17513016835138412 0.5593127995804646 0.4810917747190298 0.6847600297393145 0.6655572238457713 0.6373481626655303 0.7122690618954836 0.868572031742886 0.642367727412946 0.4270069268585453 0.2493471672518346 0.21386764096672656 0.05697307908855304; 0.6316227556282686 0.40743503740482884 0.5606965055218779 0.4084491148331317 0.4039103078167204 0.2507422704206328 0.21745362046021305 0.16055009821413815 0.13282860708891472 0.15755645787174735 0.20099144507894512 0.5395481654674688 0.4314691749241478 0.6558364264722154 0.6389336863189395 0.6324492597708506 0.6850231211028036 0.8312537908937804 0.6045643859848966 0.3697286562941463 0.19778414654099596 0.16205085142829598 0.037740738988576696; 0.7401079629435721 0.5428295877160711 0.7031806864585685 0.5526524918348173 0.5625668683648273 0.37535456334989986 0.3049670044118855 0.23040058563288934 0.16976699088029149 0.1490124483780644 0.1800509174051033 0.6031858853281993 0.5388764898497265 0.7305283258443571 0.7108620688983256 0.6720656802992333 0.756102320334855 0.846021274392779 0.614290483608926 0.42053331865050503 0.25553244125721153 0.22690103237680803 0.06489412637619173; 0.7774171295635275 0.5183587196531081 0.6671856182761694 0.5011275436908067 0.4439717097364589 0.3097901912593574 0.15499968292212957 0.10904978972531522 0.07466261292508483 0.07694096980958384 0.10184805385603908 0.3794525394526092 0.3203312365762359 0.4963074588528718 0.4773711871808398 0.4516508142874447 0.5236420497371012 0.9644741236400529 0.8060189579870737 0.5597466310187597 0.32836661338632694 0.2646093759094215 0.0677441637131662; 0.8181308100490108 0.5561243868737823 0.698575060593573 0.5324654697166794 0.45752368437996377 0.33230408198860933 0.14048366252196495 0.09759286203453564 0.06262356218316165 0.06053539611033345 0.08069598037760621 0.3368883734358375 0.29138104057505876 0.45023153710385133 0.4313705725132026 0.40132171704812075 0.4761351054919458 0.9870428644119942 0.8596029953159898 0.6251306019773151 0.38047255238126104 0.306893210606778 0.0820423232658685; 0.7328677140374111 0.45686249352211705 0.5790469862711584 0.4222181599919014 0.33080357486099415 0.2432499454983849 0.07720430058897658 0.05106405047245464 0.032093401151864966 0.0365474112100408 0.05215633420045098 0.22181457534510465 0.18089489184494278 0.3111666840414051 0.2960670894164659 0.27828806542602247 0.3336621538628581 0.9586604604379003 0.9112627551291514 0.6526801185016419 0.37822360606526256 0.2823655882683267 0.0674470136857995; 0.7515232704337115 0.4757416292999305 0.5968371635299031 0.43944272397447637 0.34313013101024226 0.2559666012514232 0.07813514522593748 0.051658187653842315 0.03172311639963259 0.0347198448127321 0.0493745953085397 0.21905996675855813 0.18130230551737894 0.3085046198554848 0.2932786599324534 0.273623488478172 0.33068669985787785 0.9653564796429168 0.9249527424633506 0.6753413167030635 0.3987464830705314 0.2999086114297358 0.07359809262134936; 0.8766234308310106 0.6220352391872924 0.750503533504958 0.5892979561473187 0.4883331096338951 0.3775897748372698 0.12677413631301512 0.08688786848645763 0.05039216793847928 0.04297162933120202 0.057385150231952155 0.2868166055620744 0.26003030092553525 0.39412877854863043 0.37562956856679103 0.3396761689366942 0.4175584225095954 1.0 0.9191899116391927 0.7213092819491199 0.46889441622459455 0.3828925347230843 0.11144275482456456; 0.8119268400431263 0.5616029351132952 0.6474473854693175 0.5069931386383051 0.3661982883577541 0.311649120820824 0.05829641266312954 0.03742883021724568 0.018577266239422643 0.01567128213557683 0.0223986923163361 0.14511479304623873 0.13244337225859604 0.21687298617558284 0.2038675593583631 0.17921730237397668 0.23341261540835537 0.9285566477571606 0.9982284285344054 0.8549662123185122 0.57919180548843 0.4463677903452444 0.1306883528369306; 0.82681374480545 0.5857825177211226 0.6647402210580929 0.5284801502144095 0.3798584854063081 0.33049550236819253 0.05828369828510033 0.03740368096386031 0.01791524354832784 0.01420754067753986 0.02019180375858439 0.1396173432997934 0.1303827813666727 0.2098767698470255 0.19703163333480644 0.17122729619266394 0.22574366435124235 0.9191899116391927 1.0 0.8822702532119937 0.6152795204486762 0.47978346763635193 0.14650071169191572; 0.822809521622991 0.5948037025016687 0.661623292177756 0.5335057440538382 0.37607346176075984 0.33764855167756436 0.05284701060910418 0.033662036456081526 0.015324720335777151 0.011444005832743251 0.016295443067505327 0.12330208096295307 0.11778021084065203 0.18808039767468007 0.17608616190280213 0.1508937925165944 0.2025242052804488 0.8905990321407163 0.9966670165629197 0.9131581140097302 0.6576167422401595 0.5153533855760121 0.16390625359706507; 0.7332380005310724 0.47966685651323304 0.561270991827678 0.4262991752111288 0.2962414470348876 0.24973189593616663 0.04268972320232483 0.026811837976605572 0.013507495536566362 0.012805825713678201 0.018952874629094556 0.11843861804971419 0.1036060543552713 0.18023196881388742 0.16904117283919085 0.1504765142358632 0.1952861714325238 0.8869877129551653 0.9842217337887395 0.8203423350576758 0.5328025632598246 0.39324760863940933 0.10628991718440418; 0.7187809376310704 0.4761254396371267 0.54656074185958 0.4194008209483607 0.28353726603906537 0.24690043097609538 0.03654000044570406 0.022681143697437862 0.010842333019539772 0.009820791891003388 0.014650008345521303 0.10032334124866865 0.08930018079843059 0.15556684998216727 0.14542078103482645 0.12776685893780718 0.16895268664252294 0.8526318330670217 0.9806401970911786 0.8475881317911022 0.5659917900792554 0.416984564845228 0.11622851300686755; 0.8144257681324784 0.6973386670166851 0.6926170128782051 0.6217604813241744 0.4217137127807958 0.4440238046305932 0.04500739970678052 0.028523064291676215 0.010043369678747171 0.00483919981495718 0.006632129374597611 0.0802050018418445 0.09015777074260106 0.12780803517686787 0.11850074321536054 0.09352156540595309 0.13708488052338838 0.7213092819491199 0.8822702532119937 1.0 0.8855923329934225 0.7530367236790085 0.3226608405615575; 0.7464895770624135 0.5594351352421899 0.5895776094001356 0.4895311220674548 0.319643609141359 0.3143758003701468 0.03288525229499247 0.020274680144724787 0.007964199195053414 0.005222443768633631 0.0075982008115135 0.07437307723826476 0.0746522813603369 0.11956373319655095 0.11089845782781486 0.09158557641127746 0.12957243004933744 0.7640400790614297 0.9450363171851921 0.9591969772942559 0.7472623695905949 0.5830550774121601 0.20244287264478314; 0.7530030245919059 0.5431234673379363 0.5891717554326777 0.47712932171407574 0.3166487512948445 0.2985208761222979 0.035649105448995015 0.022080553461329762 0.009286847786499046 0.006751278027436788 0.009875494227672841 0.08544232307820761 0.08252777611615113 0.13536175637433384 0.1259284644875634 0.10617928562160212 0.14670596019757695 0.8076447950677335 0.9703716409266376 0.932762917865407 0.690834745158495 0.5304385201337295 0.17171039308680663; 0.8235336782281178 0.6405111214096829 0.6751170957730195 0.5708263832967825 0.3913225084959072 0.3799338589125705 0.04683919106442962 0.02961614926842436 0.011883757732761544 0.00729943919314527 0.010273385080068998 0.09769000743415807 0.10036147536710764 0.1529345825839084 0.1424119148518332 0.11739714058688706 0.1645958816308224 0.8155975950934103 0.9611942517618203 0.9745530337256978 0.7718025112426161 0.6243230838122039 0.22676040918673873; 0.6867468433693716 0.5331666327402476 0.5401499281722351 0.4602101153093634 0.2874857014122235 0.3013099698294809 0.02441925668731399 0.014789893132036517 0.005242128466115685 0.003076690211929651 0.00451111846293758 0.05293690792581018 0.05540759589202033 0.08787213190071044 0.08102581610167775 0.06510209996936658 0.09551563939482735 0.6693717151437683 0.8805139185030549 0.962976949860865 0.7977752137717908 0.625906121249835 0.23426112680791764; 0.6123022959216866 0.4999976772262982 0.48269268480676464 0.42595719513313823 0.25449585634974026 0.28756933949188684 0.017618908610842147 0.010493756806911569 0.0032937887074633177 0.001666429247984283 0.0024505350619450157 0.03569336809287439 0.03950235279527152 0.061294039927021746 0.056157172390876364 0.04361457849901721 0.06678097895617935 0.5585565589403414 0.784685636948393 0.9400073084858939 0.8422729086934179 0.6700290694351737 0.27733472967577766; 0.5208071432762769 0.44790727672851793 0.4112620733348449 0.37629227912890906 0.2144655272958558 0.26209976266649593 0.011972269254734097 0.007004322353126643 0.001936938649234545 0.0008408093661474044 0.0012409452628291877 0.022638140748971483 0.026538216827193314 0.040289711699862236 0.036665355400374564 0.02748985316984334 0.04400815817355934 0.44374622631342764 0.6680658291966547 0.8797756865237958 0.8549882792013699 0.6895556341694858 0.3166405198571644; 0.5891681247974004 0.6090837294623026 0.5248133057027008 0.5327362038278587 0.33368944124026373 0.43261895730019134 0.022886397413172065 0.01418017863278169 0.0035688318479617353 0.0010351877552663635 0.0013814109028705312 0.030641695234509592 0.041619482122225035 0.0524656862959539 0.047934392864311254 0.03415916876832351 0.05624683422303738 0.4144251498547713 0.5845546024608902 0.8657575960256906 0.9832623417700396 0.9050029006040501 0.5474453725428048; 0.6772129558340088 0.7178826818314505 0.6277007998632926 0.6430231195027034 0.4303538604829861 0.5378606847561948 0.03699408218865754 0.023677093828563235 0.006325305381042625 0.0017871776252900312 0.002298515218977774 0.04629682347632554 0.06341517666632882 0.07623734052074496 0.07008717427360553 0.05035919518075388 0.08106449463694666 0.46889441622459455 0.6152795204486762 0.8855923329934225 1.0 0.95317462877265 0.5874035637208949; 0.5749644296822503 0.5614640934267493 0.49299286294186273 0.48468047798417707 0.2942832944957974 0.3752064819757136 0.018804501447141315 0.011435890401526988 0.002955760433948493 0.0009704067285291062 0.0013371056870898458 0.028038292943887058 0.036400349970850336 0.04864456022600958 0.044380183342761476 0.032110546803158134 0.052463579032817904 0.42901781989141297 0.6188663970979027 0.885220316479004 0.9589037954214876 0.8466889875934079 0.4705785731761298; 0.5966298504595813 0.6497959021929185 0.5508610734329186 0.575651052751428 0.37181328597797036 0.48854896269750847 0.02743297932990087 0.01730727969785368 0.004264146632423846 0.0011057799083934747 0.0014316397886228248 0.03325744456483746 0.04705515434685252 0.056183095043217876 0.051409730819183534 0.036153416730729984 0.0598890375403915 0.3978048409442719 0.5482579229273747 0.8366872356964472 0.9911306477477079 0.9482157541926657 0.6192712131547955; 0.6360692761241019 0.7710611517712889 0.6433503699452944 0.7109544049100224 0.5091151748567635 0.6649412466468505 0.05063099709508791 0.033770552150204226 0.00840984174401409 0.0017700462041020729 0.0021163880760639107 0.04928910656810396 0.07518254013006463 0.07896775479712795 0.07279694039680448 0.05038867912666139 0.08284201786267843 0.3828925347230843 0.47978346763635193 0.7530367236790085 0.95317462877265 1.0 0.7536774603025823; 0.37477044321888536 0.4349863927333212 0.3388839022817558 0.3720494346085627 0.21519711025421284 0.3253138317147909 0.010037093974181666 0.0060467417410972725 0.0011875118732063588 0.0002480707283038141 0.0003300424159388177 0.011407470827613422 0.017521330331462935 0.020814669795918655 0.018784268442022023 0.012463171657650072 0.02238095595512163 0.227469653973088 0.3632368032599243 0.6505486498358429 0.8743314602327298 0.8366314316745298 0.6323552576352361; 0.4308494365065684 0.5521961142878209 0.42568510936624304 0.49172463488628315 0.3159269411000278 0.47114743317643165 0.020125652113509692 0.012821784701747635 0.0025763216834118296 0.0004459216390885389 0.000548863514666901 0.01860102653889555 0.03056557154533914 0.03212075732520414 0.029217027826914762 0.01915472861237837 0.03399621120406532 0.23833695351973763 0.3445536527228856 0.6283027956928183 0.8935450448439365 0.9340508327639085 0.803367738440086; 0.42588556793724963 0.514599887489171 0.40225454811321515 0.45008699593865603 0.2764547431869833 0.4095893081877711 0.015610214582617616 0.009697779434859725 0.001968411270910264 0.0003845846633845169 0.0004920266487864112 0.016205332099098156 0.025484432603544913 0.028598027606397586 0.025939220913629255 0.017212264615019613 0.030497065232210633 0.24978921540415677 0.3752433713507336 0.6671808968998799 0.9094166321017612 0.9070024503194692 0.717969244338302; 0.25616724404676827 0.36064432234093263 0.25458348363076183 0.31381508570267086 0.18628923825270452 0.3185209800604343 0.0082263007895151 0.005088772835099111 0.0008198400207983819 0.00010788314848899607 0.0001332981971132782 0.006693772956053487 0.012191493624789688 0.01228286410458982 0.011044429533844548 0.0068049702629956145 0.0130512812361402 0.1253743856343511 0.2039176585333789 0.43910102741499013 0.7211374530045427 0.7744022012346895 0.802098239373476; 0.28531440235914857 0.4002858555284273 0.28636704091166787 0.3513821641026911 0.21409246587444314 0.35723120432949906 0.010439773572454236 0.006534374708804699 0.001095215285484182 0.00014740693870887804 0.0001802894669450021 0.00845972297584198 0.015272137647549196 0.015263798894214076 0.013764458115931638 0.008556389143525862 0.016176721587662174 0.1409025065904775 0.22200076169575395 0.46602649035313587 0.7524428671746313 0.8131717721925134 0.8296434593833473; 0.24903410779923643 0.35904933061176014 0.25127407578055966 0.31395393231584934 0.18847617044543946 0.3249998991514615 0.008516438259839807 0.005305086528612752 0.0008432117182715994 0.00010526431950490199 0.0001284332102931466 0.006629678280122173 0.012309626926329458 0.012112089324700176 0.010895282626047198 0.006667249932579161 0.012840082356890036 0.11887527798719272 0.1919477286751715 0.4200001386101343 0.7041663984132576 0.76897079297106 0.8256707173813529; 0.22886067841582372 0.3877508069941566 0.26235980762663824 0.35736249399182723 0.2450825591516219 0.42670313988850206 0.01598520519681239 0.010717359719015747 0.0016793924477414128 0.00015125353768022373 0.00016529025327248037 0.009017807932986543 0.018843636469128917 0.015426968275166236 0.013999905415617844 0.008311948797036561 0.01600287954319619 0.09324670458766982 0.13395130511607745 0.31152426355295504 0.5837246484964872 0.7272861670149322 0.9767715590737112; 0.22999157462853717 0.3739192895482388 0.2539677229913929 0.3387311467563276 0.22207608922889335 0.3892663265674966 0.012660670510976866 0.008288158348560032 0.0012841413529425093 0.00012498125252143175 0.00014115406860773277 0.007787904576648366 0.015827422324756663 0.013643282830861742 0.012338925297899555 0.007359598121597874 0.01424797224163647 0.09737079522136055 0.14601439689786624 0.337413917584164 0.6179492443333177 0.741809464150622 0.9445687130630891; 0.17472537202867305 0.31946950253651746 0.20757504481875824 0.2960646945670436 0.2043837708525398 0.37471801359443757 0.012869683364298182 0.00870439065575205 0.001255146163388405 9.40099767528817e-5 9.993772188331276e-5 0.006372183619931549 0.014253099520981844 0.0109507207417646 0.009919585760279565 0.005713849249271425 0.011310824574965789 0.06534582815086555 0.09496735574229902 0.23825024277808274 0.48407885194721434 0.6304863404013172 0.9601419182825064; 0.27226866397259536 0.4654568122945319 0.32400415670963956 0.44057810112560447 0.32622076287640006 0.5362623212460318 0.028066326109481347 0.0195077208623248 0.0033555198691232182 0.00030801400193521903 0.00032463677682729514 0.015144618580948671 0.03137762242865076 0.02470799941856937 0.022599211149285328 0.01366097735931823 0.02541251142320079 0.11144275482456456 0.14650071169191572 0.3226608405615575 0.5874035637208949 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 0.16623288617478832 0.24439157750945995 0.16654595332868682 0.319866938036741 0.009632633551903613 0.0064994006534456195 0.0008695399375500576 5.753081953910816e-5 6.056131084754415e-5 0.004425777296702749 0.010366726569778452 0.007709894663229764 0.006963352996732379 0.003917093375501153 0.007956455372461188 0.04872180791505365 0.07277779799754423 0.19415214531611902 0.41848453319317924 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46, 47, 51, 52, 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0), LIBSVM.SVMNode(0, 47.0), LIBSVM.SVMNode(0, 51.0), LIBSVM.SVMNode(0, 52.0), LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; 1.0; 1.0; 0.4545873718969774; 0.36172853884920114; 1.0; 1.0; 0.9976825435225717; 1.0; 1.0; -1.0; -1.0; -1.0; -1.0; -0.5005315477488701; -0.21806563021962358; -1.0; -0.3833339180359196; -1.0; -0.7120673582643366; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)

    Prediction

    For evaluation, we create a 100×100 2D grid based on the extent of the training data:

    test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)
    +x_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));

    Again, we pass the result of KernelFunctions.jl's kernelmatrix to LIBSVM:

    y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));

    We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:

    plot(; lim=extrema(test_range), aspect_ratio=1)
    +contourf!(
    +    test_range,
    +    test_range,
    +    y_pred;
    +    levels=1,
    +    color=cgrad(:redsblues),
    +    alpha=0.7,
    +    colorbar_title="prediction",
    +)
    +scatter!(X1[:, 1], X1[:, 2]; color=:red, label="training data: class –1")
    +scatter!(X2[:, 1], X2[:, 2]; color=:blue, label="training data: class 1")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`
    +  [31c24e10] Distributions v0.25.107
    +  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`
    +  [b1bec4e5] LIBSVM v0.8.0
    +  [98b081ad] Literate v2.16.1
    +  [91a5bcdd] Plots v1.40.1
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.10.0
    +Commit 3120989f39b (2023-12-25 18:01 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/previews/PR546/examples/support-vector-machine/notebook.ipynb b/previews/PR546/examples/support-vector-machine/notebook.ipynb new file mode 100644 index 000000000..a9d891a1a --- /dev/null +++ b/previews/PR546/examples/support-vector-machine/notebook.ipynb @@ -0,0 +1,599 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Support Vector Machine\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/support-vector-machine/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/support-vector-machine/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "In this notebook we show how you can use KernelFunctions.jl to generate\n", + "kernel matrices for classification with a support vector machine, as\n", + "implemented by [LIBSVM](https://github.com/JuliaML/LIBSVM.jl)." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "using Distributions\n", + "using KernelFunctions\n", + "using LIBSVM\n", + "using LinearAlgebra\n", + "using Plots\n", + "using Random\n", + "\n", + "# Set seed\n", + "Random.seed!(1234);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Generate half-moon dataset" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Number of samples per class:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "n1 = n2 = 50;" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "angle1 = range(0, π; length=n1)\n", + "angle2 = range(0, π; length=n2)\n", + "X1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()\n", + "X2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()\n", + "X = [X1; X2]\n", + "x_train = RowVecs(X)\n", + "y_train = vcat(fill(-1, n1), fill(1, n2));" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "## Training\n", + "\n", + "We create a kernel function:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Squared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t- Scale Transform (s = 1.5)" + }, + "metadata": {}, + "execution_count": 4 + } + ], + "cell_type": "code", + "source": [ + "k = SqExponentialKernel() ∘ ScaleTransform(1.5)" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "LIBSVM can make use of a pre-computed kernel matrix.\n", + "KernelFunctions.jl can be used to produce that using `kernelmatrix`:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1 … 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 … 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 … 0.7710611517712889 0.4654568122945319; … ; 0.27226866397259536 0.4654568122945319 … 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 … 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46 … 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0) … LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; … ; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)" + }, + "metadata": {}, + "execution_count": 5 + } + ], + "cell_type": "code", + "source": [ + "model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "## Prediction\n", + "\n", + "For evaluation, we create a 100×100 2D grid based on the extent of the training data:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)\n", + "x_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "Again, we pass the result of KernelFunctions.jl's `kernelmatrix` to LIBSVM:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=3}", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdd0BT59oA8OdkJ2xkb9nLiSgVRRQQt1Zrbd2zrlZr7bTa1vb2qrV1Vu21n9tW66z7ulFxoiIbBEQIe4aQhOzz/XGuaSSAoECAPL+/Tt685+ThiDx53/MOgiRJQAghhAwVTd8BIIQQQvqEiRAhhJBBw0SIEELIoGEiRAghZNAwESKEEDJoDH0HgBBC6I0oFIrk5OTExEQzM7Nx48bVW0ckEv3f//1fQUHBoEGDRo0apSmPi4s7fvy4iYnJzJkzHR0d2yrk9sXgEuGNGzfOnDlTXFxsY2MzderU3r176zsihBB6I1u3bt2yZYu5uTmbza43EZIkGRkZaWtrGxERsWTJkqysrI8//hgArl27Nn78+BUrVvD5/ODg4MTERCsrqzYPX/8IQ5tHuHHjRrVa7eTklJKS8ssvv1y7dq1fv376DgohhF6fSqWi0+n79+/ftm3b/fv3dStcvnx5zpw52dnZTCYzJiZm8uTJubm5TCZz6NChw4YN++STTwBg5MiRgwYN+vzzz9s8fP0zuBbhsmXLNMepqakXLlzARIgQ6tDodHrjFW7cuDF48GAmkwkAAwcOFAgEGRkZAQEBN27c2LBhA1UnOjr6v//9r2EmQsMdLJOVlRUfH//WW2/pOxCEEGpdRUVFNjY21DGdTreysiosLKysrJTL5ZpyGxuboqIi/cWoTwbXIgSAjRs3Ul0Bn3zySXR0dEPVxg8bxq6oYHM4ADB2zBg/P7+2C7H9USqVDIYh/rbUC++GNrwb2owcHJxfNfJAIJCVl0uae+V161ZUV1dol3A4nL1799Jor27PMBgMlUqlealQKJhMJvWvplQqqUKlUkk1GQ2QIf76Llu2bOnSpampqe+++667u/vixYvrrabOyuopkXBMTAiCEB479uhVnQ+dm0qtpjfh/5uBwLuhDe+GNlNPT+f9+xuvExOTt2tXUnOvfPXqwd9+28blcjUlJiYmTcmCAODg4JCamkodS6XSyspKBwcHMzMzIyOjwsJCBwcHACgoKKAODJAhJkIAoNFogYGBM2fOPH/+fEOJkM1mmxkb2zg7t3Fs7RN+69eGd0Mb3g1ttNb8xjxu3DhTU9Om1799+7a/v7+FhcWoUaO2bNkiEAjMzc1Pnz7dtWtXb29vABg9evTx48f79OmjVqtPnjw5b968Vou9XTO4X9+ysjJra2sAUKlUMTExPj4++o4IIYTeyMOHD7/66quioiI+nx8VFRUSEvLDDz8AwMiRIw8fPjxs2LCgoKDhw4cPGDAgJCTk1KlTv//+O0EQAPD1118PHjyYz+fn5+erVKr3339f3z+KfhhcIgwKCnJwcLC0tExKSnJ2dl65cqW+I0IIoTfi7e29du1azUszMzPq4PLly15eXtTxgQMHbt68yefzV6xY4e7uThUGBgampaVduXLFxMQkMjKSzWa3ceTthMElwszMzMTERKFQ6OTkhM1BhFAnYGpqGhQUpFseHBysOSYIYtCgQbp1rKys3nvvvVYMriMwuETIZrO1fzkQQggZOBzrhRBCyKBhIkQIIWTQMBEihBAyaJgIEUIIGTRMhAghhAyawY0abT0Hs7IqtVbz62RIkqRm4CJo8t1gqNULfH1peN8Qat8wEbaY28XF369da2lpqe9AUHsxdcqUOd7ebMNepRah9g8TYUsaNWqUo6OjvqNA7cWM6dP1HQJC6NXwGSFCCCGDhokQIYSQQcNEiBBCyKBhIkQIIWTQMBEihBAyaJgI9ayysvJf338f0q2bvYWFl6Pj5AkTbty4oe+gEELIgGAi1Ke4uLhAL6/La9cuSE4+KhBsKix0/Pvv0VFRH86fT5Jkc69WUlLy+PHjZp2yevXqf/3rX41UmDBhwunTp5sbSUMOHTo0ZcqURircvn1bKBS21MfNmTNn//79LXW1ej18+HDbtm1ffvnlkydPWvWDEEKtBxOh3lRUVIyMilosENyorZ0JMABgJMB6tfqJQnFu//51a9Y094IxMTFffvlls06JjIwcMmRIIxWmTZvm7+/f3EgaIpPJxGJx4x+XmZnZUh8nFAqlUmlLXa1eX3755Z07d/bu3ZuamtqqH4QQaj04oV5vNm3c2FMm+1qtrlPuDrBHKh39/fcfLV1qZGTUxKuJRKKrV6/m5+fv3LmTw+FMnz79woULHh4ejx49SkhI+Oabb/h8/sWLF0tKSjw8PKZMmcJmswGAyWRSS4Xx+fxHjx75+fkdOnTI3Nx8zpw5JiYmAMBiseh0OgDEx8dTOezChQteXl7Tpk2jyhUKxYEDB549ezZy5EixWOzo6Ojn51cntuvXr1+7ds3X11fTzFWr1devX797965SqRw4cGBERAQAXL16taam5uTJk48ePQoLC/Pw8Lh8+fLDhw8JgoiIiOjfvz91rkwmIwiCxWLV+RSFQnH06NG0tDQrK6sJEyY4OTlp35xz586lpqbyeLwxY8ZoIrx58+a1a9fUarW/v/+kSZMIgkhNTT1x4kRtba27u/ukSZOMjY0bv+1XrlwBgN69ezfxnwkh1A5hi1Bvzh09OqOB9ko4gBWNdvPmzTe5/tatW8eMGXP79m1bW1u1Wr1r167a2lpPT88LFy6MGDGCqnPs2LETJ04AQHJy8uLFi5ctW2ZtbX39+vVx48ZRFTZs2PDw4UMAOH/+/OzZs7dv3+7g4PDrr79qmp7vvPPO0aNHu3btum7durlz5966datOGHv27Jk1a5aDg8Pjx49//PFHqlAqlf7nP/+xtLS0tbVdsmTJ1q1bdeMvKir666+/bG1tzczMpk6d+tdff1HlU6ZMWbFiRZ3Kcrl84MCBhw8fdnFxEQqFMTEx2u8+fPgwNjbWxcVFpVKFh4fHx8cDwIULF2bNmmVra+vm5nblyhWVSpWVlRUREcHlcn18fFJTUwsLC1/vziOEOhZsEepNfnGxe8PvetBoeXl5Tb+asbFxRETE8+fPP/jgA03h4MGDf/31V+r4p59+og5mzJjRtWvXp0+fent7a19BIpEcOXLE2Nh45syZZmZmQqHQ1NRUu4K5ufmff/4JAL169Zo+ffr69evj4+Pv3r2bl5dHtUG7du2qG9i33367d+9eqgO2pKREJBIBAI/HO3LkCFUhODh45syZH330UUREhImJydtvvx0UFES9tW/fvv/dDQ+PDRs2TJo0CQDmzJlTJzAA2Lt3LwCcOnWq3rWww8PDw8PDqWMGg7Fnz55evXrFxcVFRkYuXLgQAGbPng0AiYmJHh4eH3/8MR1XB0XIkGAi1BsehyNpeGCImCCa3i/akODgYM3xoUOH/vWvf6lUKiMjo/Ly8vz8/DqJ0NPTk+oJNDIyMjc3Lysrq5NvevbsSR04OTmVlZUBQFpaWmBgIIfDAQAmk9mrV686AQiFQj6fHxISQr186623Ll++DABKpXL58uUXLlyg0WgsFis/P183+Nra2kWLFt2+fZtOpxMEoVQqqfLhw4frVo6Pjx8yZEhDO0IUFBQsWLAgIyODxWKJxWLqB5k0adKwYcN8fHxGjhw5c+bM7t27R0RErFmzxtnZedSoUe+9916dp6enTp2igqd88skn7u6NfJNBCHUYmAj1pmevXrcuXoyo7y0hwJPaWt280lzUg0AAqKio+OCDDxISEqi/3V5eXiqdHaO0m0EEQegOW2Uw6v62mJqaag/yrK6u1g2ARqNJpVIejwcAtbW1VPnBgwefPHmSlJTEZrOTkpI0z/+0bdmyRSgUpqamMhiMK1euLFiwoJGf1MjISCKRNPTuV1991b1799OnTxMEsXnz5mvXrgGAj49Pdnb2gwcPjh8/HhoaGhcX5+vrGxcXl5KScvLkyffee2/nzp2aLmIA6Natm/Y3gy5dujQSD0KoA8FnhHoz98MPt7JYBfW99R2d3qtbt4CAgGZd0NzcvKKiot63KioqmEwmtTPGrVu3srOzmx1uffr375+dnR0bGwsAcXFxd+/erVOBzWaHhIQcOnQIABQKxbFjx6jy0tJSJycnKk9r+j+pH6GyslJTx9XVlcFgkCSpXefatWsPHjyo80HR0dFHjhyh2qkAIJPJtN8tLS11d3cnCEImk1HBAEBZWRmNRgsJCVm/fr23t3dmZmZlZaVarQ4ICFi5cuXw4cPrDAR1d3cfrMXMzOw17hhCqB3CFqHejBo1avSECeEnT+6SSsNeFAoAVjMYe9ns2IMHm3vBgQMHAoCXl5eLi8vVq1e13/Ly8goNDQ0KCnJzcxOJRD4+Pi3wAwBYWlru379/0qRJPB7P3d09LCyMy+XWqbN169ZRo0adOXOmpKTEzc2NamhOmjRp8+bNUVFRYrHYy8tLU3nBggWTJ092cXFZtWrVjBkzIiMjMzIySkpKtEeibt++3c3NrW/fvtqfEhUVNW/evG7duvXr16+oqGjy5Mkff/yx5t2FCxfOnj377Nmz2dnZvr6+VJpcv379mTNn/Pz8iouLTUxMIiIijh07tnLlyl69etXW1vL5/MZnWFJmz55948aNgoKCZcuWrVq16sCBA/W2bhFC7Vk9PWCIMikgYDCTaePs3MT6C2NjHycnN2s/QpVK9e8ffli/bp0NjeZNEDUE8UgqDerR4z/797/27D2xWKxQKMzNzUUiEYvF0kwzIEkyKSlJrVZ3795dJBJxuVwmk0nNiDAyMlIoFFKplJoyAQACgcDU1JRGowkEAi6Xy2azpVKpWq2mejjVarVQKDQ3N9d8KHVBb2/vejOBRCJJSUlxdXU1NzeXy+XUk0ixWJycnGxnZ+fs7Kx9NZVKJRQKeTwem80WCoUpKSkuLi52dnYikYhqhAmFQhqNVu/EhqqqqoyMDBsbG6oHWCgUslgs6hFmSUnJs2fPfHx8jI2NNTHk5+fz+fwuXbpoHpdWVFQ8ffrUxMTEz8+vKUNmRCKRQqHQvDQxMdHuQOZxubsGD+70G/MqlUrdbnODxbayGrlnT+N1/v47c9eupOZe+erVGcXFBbojxdCbw0TYoDZIhBShUHj9+vXc3FwTE5O+ffs2t0dUv7Zs2aJSqSwtLY8fP15dXR0TE9PQiBUDhInQAGEi7Ijw11f/TE1Nx44dq+8oXtOQIUPOnz+fmZk5ceJEak66viNCCKHmwUSoZ8XFxRs3bj569GxJST6Lxenbt+/SpfM1E97bv8DAwMDAQH1HgRBCrw9HjepTbGyst3e3LVsScnJWSSRXBIK/Ll/u+fbb06ZMmaU7veGVXmPR7ZUrV3777beNVBg1atTJkyebG0lD2njR7alTp+7evbulrgYADx482Lhx48KFC69fv96Cl0UI6RcmQr0pKSkZNmyMSPS1VHoe4F2AIIAwklwtlyeeOHF79eofmnvB11h0e+zYsaNHj26kwocffvjm0xk12njRbZlMppmG3yI2bdqUmJh46dKl5OTkFrwsQki/sGtUb375ZaNS+RZJfqzzjqNUunfduqjPPluuGcb5SkKh8PTp08+fP1+3bh2Xy12yZMnRo0d9fHwePHiQmJi4du3arKysc+fOlZaWenp6zpo1ixr/SS1gDQDPnj27fft2jx49Dhw4YG5uvnDhQktLSwCQSCTUqMi7d+/W1NQQBHH+/HkPD4/58+czmUwAkEqlv//+e05OzqhRo2pqatzc3Hr06FEntnPnzl2/ft3Hx4dG+98XL7Vafe7cufv378vl8gEDBowZMwYATp8+XV1dvW/fvitXrgwfPtzX1/f06dOPHj0CgMjISGphbmh41KhUKj148GBqaqq1tfV7772nvd6bUCg8efJkYmKisbHx+PHjNRFevHjxypUr1KLbs2fPJgji8ePHx48fF4vFXbt2nT17dp37T60wFxUV1cR/FIRQh4AtQr05efK/MtnUBt7sz2DYNWvRbRqNZmRkxGAwLCwsqKkIe/bsmTBhQlZWlp+fH0mSx44dMzEx6dev34MHD4YOHUqNFj59+vTZs2cBICMj4/PPP1+5cmVAQEBSUpJm8M727dupnfauXbu2YMGCQ4cO9ezZ888///z000+pCmPHjr1+/XqfPn127tz54Ycf3r9/v05gv/3229KlSwMDA/Py8jQz86RS6fHjx728vPz9/b/99tuff/4ZAIyMjGg0mqmpqYWFBYvFKi0tvXr1qr+/v4eHx8KFCw8cOECdO3v27O+++67Op0il0pCQkMuXLwcFBbFYrDoz7hMSEtLS0oKCgiwtLaOjo6l3z5w5s2TJkm7duvXp0ycxMVGlUmVkZIwcOdLFxaV///7l5eUlJSVNv/8IoY4LW4R6U1paCODW0LsE0bXeFTgbUu+i28OGDVu7di11/P333wOATCYbOnRoz549nz59WmdavUwmO3z4MI/HmzRpkqmpqUAg0J4pCAB2dnbUIzdfX9/Jkydv3rz54cOHiYmJubm5LBZr0qRJ9a69+cMPPxw6dCgsLAwA+Hy+QCAAAB6PRy2TLRKJ3NzcFi1a9Omnn+ouur1jxw4AoJb/3rFjx7Rp0wBg0aJFus3B3bt3Gxsba3aoqGPgwIHUagNVVVXV1dX79+/v27dvfHx8aGjo1KlTaTTa+++/DwCpqaldu3adNWsWi8V69913m3TfEUIdHyZCveFwjIRCUUPvEkTNKzfDeyXtffJ27969Zs0aDofDZrMrKiry8/PrJEIPDw+qv5TL5Zqbm5eXl9dJhN26daMO7O3ty8vLAeDp06f+/v7UnH06nd69e/c6AQiFwsLCQs3a33379r106RIAKBSKhQsXXrp0ydraWqFQFBTUs9KcSCSaM2fOvXv3rK2tJRKJ5mlfvTsJJyYmDho0qKH7kJubO2vWrLy8PGoVOmrR7SlTpowaNcrNzW3EiBGzZ8/u27dvZGTkpk2b7O3thw8f/v77748cObKhCyKEOhNMhHoTHBx0/vwNkqz3gZOgtjZB0zB6bZplZcrKypYuXZqenk7N9/fw8FDrbAj8yoVUdCuYm5tXVVVpXmofUzgcDp1OF4vF1NJrmpEy+/fvf/78+bNnzxgMRkJCwoABA3Q/bsuWLTQaLScnh0ajXbp0adGiRY3EZmpqWlNT09C7K1asCA8P/+abbwBg06ZN1JhPDw+PtLS0xMTE48ePR0RE3L17NzAw8MaNGzk5OX///ffcuXO3bNkyceLERj4UofZDpVLt27fvyZMnvr6+c+fO1d25etOmTdpr8Hbv3n348OEikWjbtm2awgEDBoSGhrZRxO0JPiPUm48+msdkbgN4rvsWnf517979fH19m3VBS0vL0tLSet8SCATU40MAuHLlyrNnz5ofbz369++fm5tLrWsaGxt77969OhVYLFZoaOj+/fvhRdcrVV5ZWdmlSxdqOZLff/9dU9/CwkLzI1RWVlpbW9NoNGpXYU2dCxcu3L59u84HjRgx4siRI5qtdOuMTa2srLS1tQWA2tpazbPGwsJCkiS7d+/+3XffeXp6Pn/+vLS0VKFQdO3addmyZZGRkVlZWW9ycxBqSx9++OFvv/0WGBh49OjRqVPrGXxQpeXf//53RkYGANTU1Hz99deacmkDW4V3etgi1Jvo6Ohp0977449BUul/AIa9KC5lMFbyeCcPHqz7t/6VBg4caGZm5uzsbGNjQw221PD09IyKiurevbubmxtBEK+9kGkd5ubmhw8f/uCDD2QyWe/evQcPHkx1rmr79ddfR44ceerUqcrKyoCAAOp/2uTJk7dt2zZw4ECJRNKnTx9N5aVLl86ZM4fL5a5Zs2b27NkRERHJycnl5eX9+vXT1Nm1a5ebm1ud763h4eHLli3r2bNnt27dSktLFyxYsHjxYu3LTpky5eTJk/n5+T179qTajtu3bz948KC/v39BQYGTk1NkZOSJEyc+/fTTwMBAsVgsFos1WxlrLFiw4MiRIyKR6M6dO99+++3u3bu192lCSF+Ki4v37NmTmZnp7Ow8adIke3t73Z23V69eTR2kp6dv3LhRM6OXwWBoRhIYLFxrtEFtsNaoWq3+5ZeNq1f/qFJxGAxvgBqJJDE0dMiePds9PDxeK2pQKpUikUh30W0AyM7OVqlU3t7eQqGQWnSbmhpBHdS76LZUKmUymXQ6vfFFt9VqNXXlw4cPayctTUjp6ekuLi4cDkez4LVcLs/IyLC1tbWysqpztZqaGhaLxWaza2trqf/bpqammkW3qSkfuj0/ACCRSLKysmxtban2n0wmo9PpVLuzuro6NzfXw8ODyWRqYqCelVpbWzs4OGg+Ojc3l8fjde3aVXe5OLFYLJfLNS+NjIzqDUMD1xo1QHpZa/TUqVNfffWVZuOwQYMGTZ8+fc6cOfVeZ/ny5Xw+/8iRIwBQVFTk6uq6du1aOp0+ZMgQzTgAQ4O/vvpEo9E++2z5hx8uun37dm5urrGxcXBw8Bvue85gMKikojvWRpNcNf+XqLmA1IHmGAA0aYnaukH7gApbU+Hnn3+Wy+WmpqanTp3y9vbWzYJUSJpl2DSZg8Viaf7X1RmVo8nHXC5XMwBHs/+fZrdhXTweT3vAjnZNMzMzzVuaGLp06VJnf10TE5NGVowzMjIyMjJq6F2E9KWoqMja2lrz0sbGpqioqN6aCoXi4MGDmg0+6XT6sGHDhEJhUVHRqlWr1q9fP3/+/LaIuJ3BRKh/XC43MjJS31G8ptGjR1++fFkkEi1cuLDjLh2OUIcwduxY7ca3sbHx8ePHaTQai8XSXkRJoVA01Fdx5swZFoulWRTCxsbm9OnT1PGIESOmT58+b948zcIXhgMTIXojPj4+LbXNL0KoccuWLdN+DM/lcqmk5eDgoD3tOD8/v6FnNLt27Zo1a1a9Q8RDQkKEQmF5ebmNjU1LB97eYSJECKGOITw8vN5nhGFhYUKh8N69eyEhIZmZmampqdHR0QCQn59fUFCgeWBRUFBw6dKlLVu2aE6USCSazHrq1Ck7OzvtLlbDgYkQIYQ6Nh6P9+OPP44bNy46OvratWsrVqywsrICgFOnTu3atUuzKc2+ffvCwsK0B+Jt3br1jz/+8Pf3Ly0tffLkyf79+w1zS1FMhAgh1OEtWrRoyJAhSUlJy5cv14wLe/fdd7VXYnr33XdnzpypfdayZcvCw8OpRZf69OlDTTU2QJgIEUKoM/D19a2zCoe1tbV2V6enp2edU1gsVr9+/eod7G1QMBG2GBpJRoWHM3FCFXpBLpfTDLKjCaGOBf9qt5hvg4JqFAp9R9FaVCrVKxcjNRxNvBtGDg5MwxuJjlCHg4mwxdjweJ140DGuHqIN7wZCnQl+XUUIIWTQMBEihBAyaJgIEUIIGTRMhAghhAwaJkKEEEIGDRMhQgghg4aJECGEkEHDRIgQQsigYSJECCFk0HB1DIRQGyFVKpIkW+RSBEEQuOYfaiGYCBFCbaHyeX4+v5psoV4oGqhcPaxMHexa5GrIwGEiRAi1uqq8whQ+eY/9tpJgtcgFWaS0f/YVf7LIzNG+RS6IDBk+I0QIta6qvMLkXNU9dkRLZUEAkBOcO+zI1Gey6oKilromMljYIkQItQBSpZKUlek+ApSKpWlFrHvsSCXBbNlPlBOcO6xIeHbFV57L5DSWYplGRmxT05b9dNSZYCJECL0ptUqVn/IstdpaTJjUeUsJtDy2b4tnQYqcxrnDiuQXPKVDY2Nw3OCZn4+cZ23VGjGgTgATIULojahVqsKMvEdCl3ROUNt/upzGyWZ3b7wOX+1Bpl/xA9LI2rptokIdCz4jRAi9PrVKVZiW80joks7WQxZsolqacSwrMi29WlxWru9YUHuELUKE0GuiekQf17hl6KMt2CxULoT0K6Z5VQQQAMBmEY7eTnQ2W9+hIf3DRIgQeh1qlSo/JfuR0DWN1atD9CzV0oxj2MPZCgn10ry2tF9CokcPd8yFCBMhQqjZqLbgI6FrOjsI1Gp9h9NUCoKtoP8v7YnoFmo5nUiMd++OudDQYSJECDWPpi3Ynp8LNkUhy/OOHCAx3tXXiaDVbdbSmEw6q8UmPqL2DBMhQqgZXmoLdnyFLM87cqIyKQOAqPOWMVnjEeDAMTfXS2CoLWEiRAg1VadpC2orZHkUgoduubGqSpF81TcQMBd2eh3iITdCSP86WVvwlUR0i1uMiIyUYqlAoO9YUOvCRIgQerUXWbBdzxdscSK6xU065sLODxMhQugVXvSIGlYWpFC5MD0Zc2FnhokQIdQYQ+sR1fW/PlLMhZ0XJkKEUIPUKlWBobYFtYnoFjcZ2C7stHDUKEKoftgW1CaiW9yCCHXSVSNGPlXCNWI7+XelMfCvaIeH/4QIoXp0ypkSb0hEt7hMe5sGKuqls/Bpv8QM1+4emAs7Ovz3QwjVQ1xcklBtr5edldozNUFXA506zmEHEhIAzIUdH/7jIYTqQZKkACz0HUV794wdSEoAEjMcPOyAIACAxuPpJRKlUrlr167Hjx/7+/vPnz+fw+HUqXD27NmUlBTqmMViLVu2jDquqanZsWPHs2fPQkJCpk+fTtNZas4QGFwiTElJOXz4cFpampmZ2fvvvx8ZGanviBBCHVgOO1Bdy7BPKqReupTl6yWMhQsXJicnz58//48//oiJiTl58mSdCn/99VdRUVGfPn0AgK21yPjIkSMtLCzGjRu3adOm9PT0tWvXtmnc7YPBJcKtW7eamZlNnjyZz+ePHz/+wIEDY8eO1XdQCLU7JEnqO4QOI5flmwu+1LGd6nbbB1BUVHTgwIHs7GxHR8cJEybY2dmlp6f7+vrWqTZ69OilS5dql9y5cyctLa2goIDFYvXt2/ett976+uuvTUxM2jD2dsHgEuFvv/2mOebz+UeOHMFEiFAd8poaPr+mmmGj70BQk9y/f9/Dw8PR0REATExMgoODb9++rZsIb968WV5e7u3tPXHiRKrvNDY2dsCAASwWCwACAgKMjIwSEhIGDBjQ9j+Cfhlid7AGn893cHDQdxQItS+KmpqsJP5NYlANwwlaWCkAACAASURBVFLfsaAmKS4utrKy0ry0trYuLCysU8fb29vDw4PFYm3fvr1Pnz4ikQgAioqKrK2tGz/REBhci1Dj7NmzV65cSU5ObqhCWXl5tlicnZ8PAJ6enhYWBj1wQKVS6TuEdqQT3w2FSPQspTAGwgR0qybuuEsCqDvO3rytjWzNWzF27FiG1vBUHo938uRJGo3GYrGUSqWmXC6X6w6WWbVqFXXw1Vdf9e7de9++fYsXL2az2dXV1Y2faAgMNBHeunVr9uzZf//9t729fUN1zExNbYyNzWxsAMDc3Jxh8MOj8Q5o65R3Q61UPk8tuEkbLGTYNL2zSK1WG+ZQw3rpbvDbgpYtW8bTGpXK4/GoO+/o6Mjn8zXl+fn5VDdpvRgMRq9evXJzc6kTHz16RJWrVKri4uJGTuzEOuF/5le6d+/eO++888cffwwcOLCRaiwWy4TJ1O5wQKhzUyuVIpInYOKjwXYqPDzc1NRUtzwsLEwsFlMP/NLT09PT06OjowEgNzc3Ly+P+kNXU1NDjYKpqKi4fv36mjVrAGD06NFffvllfn6+k5PT+fPnzc3Ne/bs2bY/U7tgcIkwPj5+3Lhxu3btioqK0ncsCCHUArhc7tq1a8ePHx8REXHjxo1vvvmmS5cuAHD27FlqciFJkg4ODm+99RaPx4uNjY2Kinr//fcBwM3N7cMPP+zfv3///v2vXr26fft2Op2u759GDwhDGyQdHR197do1zfjg0NDQM2fO1FtzUkDAYCbTxtm5DaNrv5RKZafsDHw9nfVuKKXS+EdFV1ijm3UWdo1qG2d2++uMm43X+fvvzF27kpp75atXZxQXF9TbIqRkZ2cnJib6+flpxotWVlZWVlZ6enoCQHFxcUJCgkwm8/X19fb21j4xKSkpKysrKCjIxcWluVF1Dp3wP3Pjjh8/rlAoNC875Z8zhJAB8vDw8PDw0C6xtLS0tPzf0F87Ozs7O7t6T+zWrVu3bt1aPb52zODSgLGxsb5DQAgh1I5ghwZCCCGDhokQIfQCTgdEBgkTIUIIAECtUPDT8zLBU9+BINTWMBEihECtUDxPyr4n8c9l+ek7FoTaGiZChAydWqHITcp6IPF7zvbXdywI6QEmQoQMXeHTvPsSvxx2gL4DQUg/MBEiZOhkcnUZwxBXmESIgokQIYSQQcNEiBBCyKBhIkQIIWTQMBEihBAyaJgIEUIIGTRMhAghhAwaJkKEEEIGDRMhQgghg4aJECGEkEHDRIiQQVPKZHKpQkkY3B7dCGlgIkTIcKlkspzEZw/UvaU0E33HgpDeYCJEyECpZLJnic/uyHsVsnAPQmTQsD8EIUOkkslyErLvKIIKWR76jgUhPcMWIUKGSCoQpMhcMQsiBJgIETJYaoKp7xAQahcwESKEEDJomAgRQggZNEyECCGEDBomQoQQQgYNEyFCCCGDhokQIYSQQcNEiBBCyKBhIkQIIWTQMBEihBAyaJgIEUIIGTRMhAghhAwa7j6BEEIdnlwu3759e2Jiore395IlS3g8Xp0KsbGx//3vf4uKijw9PefNm2dlZQUAIpFo27ZtmjoDBgwIDQ1t07jbB2wRIoRQhzd//vwTJ04MHTr01q1bkyZN0q0wY8YMGo0WFhaWkJDQp08fgUAAADU1NStXrmzzYNsdbBEihFDHVlBQ8Oeffz5//tze3n706NG2trapqan+/v7adZ4+fUqn0wFg2rRp7u7u165dGz9+PADQ6fQvvvhCP3G3G5gIEUKoY4uLi/P09LS3twcAIyOj4ODgO3fu1EmEVBYEAKVSKRQKu3TpQr1UqVTff/89nU4fPHhw//792zjydgK7RhFCqGMrKiqinvlRrK2ti4qKGqr8xRdfdO/ePSwsDAAYDMa7777L5XIFAsHIkSM3btzYFuG2P9giRAihjmHs2LEMxj9/tDkczqlTp2g0GofDUSgUmnKZTMbhcOq9woYNG86dO3fz5k2CIADA2tr6jz/+oN4aMmTIxIkTlyxZomk7Gg5MhAgh1DEsW7ZMezioqakpjUYDAEdHRz6frynn8/lOTk66p2/btm3btm0xMTF2dna67/bu3VssFldWVlpbW7dC7O0aJkKEEOoYwsPDTU1NdcvDwsKkUumNGzcGDRqUkpLy9OnTYcOGAcCzZ89yc3MHDx4MALt37/7pp59iYmKcnZ01JwoEAnNzc+r40KFDTk5OBpgFARMhQgh1dBwOZ/369e+8805YWNjt27d/+OEHCwsLALhw4cKuXbseP34sFovnzZtnYWERGRlJnbJy5cpZs2b9/vvvO3bsCAgIKCoqys/P13STGhpMhAgh1OHNnDlzyJAhKSkpP/30k4eHB1U4derU0aNHAwCXy83MzNSuT40aXb58+YgRI/Ly8iwsLLp37647Dd9AYCJECKHOwMXFxcXFRbvEzMzMzMwMAGg0mru7u+4pNBotICAgICCgjUJsr3D6BEIIIYOGiRAhg0MC1NbUKrBDCCEAwESIkKEhAaqe89OKmLksX33HglC7gF8JETIgJEBFDj8ln36fPVhFMPUdDmq/5HJ5cXGxUqnUlJibm1taWuoxpNaDLUKEDEglZkH0KrW1tdOmTeNyua6urh5aOvECbNgiRMhQkCpVYb7wPns8ZkHUiB9//PHChQu///57YGCg9nJr1KLenRImQoQMCEkQmAVR4+7du/fpp5/Onj1b34G0HewaRQgh9A8bGxtqSW7DgYkQIYTQPz799NN9+/Zpr+Ld6WHXKEIIoX/ExsbW1tZ6e3v37t1be9G1KVOmzJw5U39xtSJMhAghhP7B4/GCg4N1yxva47ATwESIEELoH3Pnzp07d66+o2hT+IwQIYRQPSoqKpKTkwUCgb4DaXWYCBFCCL3k5MmT7u7uVlZW3bp1s7Cw8PX1vXjxor6DakWYCBFCCP3j1q1bEydO7N69+/Hjx2NjY48cOdK1a9cxY8bEx8frO7TWgs8IEUII/eO33357++23jx49qil55513RowYsXPnzh07dugxsNaDLUKEEEL/4PP5kZGR2iUEQQwZMqQTzyzERIgQQugfTk5OMTEx2iUkSd64ccPZ2VlPEbU67BpFCCH0j/nz5w8ZMkStVk+ZMsXBwaGgoGDv3r2XLl26e/euvkNrLZgIDVRaZWVsVlapRGLD4w3w9PTrpNuMIYSaa9CgQYcPH16+fPmRI0eoEg8Pj5MnTwYFBek3sNaDidAQnUxLq8jL+1Gh8AHIEIlWVlWlu7i87een77gQQu3CxIkTJ06cWFJSUlhY6OTkZG1tre+IWhcmQoNTKBY/5/NvKBTU8+HeAGcVinA+v9DZ2cHYWM/BIYTaDVtbW1tbW31H0RYwERqcxNLS6S+yIIUGMEOhuF9aiokQIYO1bdu2vLy8devWHTt27NatW7oVoqOjR4wY0faBtQFMhB1bhVR6ISMjTyAwYTIDHRwGubrSXrWRmEKhMCPJOoVmJClXKlstTIRQe5eZmZmWlgYAeXl5jx490q0QGBjY5kG1EUyEHVhqefmRx4//rVCEkWQlwE6hcB2f/2loKJPW2KwYR3PzmwzGuy+nvRsMhqO5eSvHixBqvzZt2kQdfPLJJ5988ol+g2ljOI+woyIB/kxIuCSXjyJJUwA3gH8rlW+LRNdycho/sae1dSyHc0ar4XiGIG5xOL06+/NwhFBTXLp0KS4urk7hxYsX6+0v7RwwEXZUJRKJu1pt93LhLJUqqbCw8RNpBPFx//5bbWx6sViT2OzeLNZWG5ulb731yj5VhJAhOHXq1M2bN+sUnjhx4tKlS3qJpw1g12hHJVOpTHUe9ZkCSFWqV55rymItCA6WqVRltbXjuFw2nd46MSKEOomioiIfHx99R9FaMBF2VHY8XiKAWqtRXwTwKwDQ6emVlb5NmCDPptOdcJgoQuiFyZMnl5WVpaenc7nc//73v5ry0tLSpKSkb7/9Vo+xtSrsGu2o2HR6oIPDZ3S6AgAAtgGMAeABLBYKUx8+XHvrVrVMpucQEUIdiouLi7u7u6mpaZcuXdy1jB49OiYmBleWQe3RxICAsyxW4PPntiTJUCrvkiQDAEhyjlx+SaFY/fDh8tBQfcfYJFKl8k5hYXl1tamRUR97eysuV98RIWSI1q5dCwB//vmntbV1VFSUvsNpO9gi7MAIghjt7f1jVBRhYrKByoIvDCVJukQi6AiNwozKyh9jYlyTk+fk5oakpf3n1q2rz57pOyiEDNe4ceO8vLzqFD579kzWEf6evB5MhO2XUq2OLSg4lpJyPiurQCRqqBqNIMRyuYdOuSdJVkilrRrhm1Oo1fsfP74ilX6mVkcBzCbJe3L5k6ysvJoafYeGkIHauHHjwoUL6xROnz599+7deomnDWAibKcKRaLvY2KMExOn5+QMTk//686dk6mpDVU253BydQpzCMKCzW7VIN9cWmVlpEplr1XCBPhcLn/QebcARaidu3fvXnR0dJ3C6OjoO3fu6CWeNoDPCNup3+Pi/pJIAl68nCyXj+fzE6ysetjY6FZ+q2vXb6urjykUmpmAtwEkHI4lh9M20TZFsVjMF4ks2GxXU1PN2jfVMpmrznwPJ4AaiaTNA+z8qgtLBCSuH9Q5SaXSrVu3xsfH+/v7f/zxx8ZvMCBcKBSydb5Ds1gsgUDwZjG2XwbXIiwpKdm3b9+yZcva81DgQrHYRakM0CohAFYqFA9ydRt+AAC9bG2NXV3fYrF2EsQJgA8ZjMXGxnODg9sm2lcSyuWb7979+/ZtZnx8+oMH31+/nlJeTr1lzeWmMOp+G0sjCEsTkzYPs5MT5BemPZfHscL0HQhqFfPmzbtw4cKECRPi4uImTpz4Jpfy9vY+e/asdolarT537pzug8NOw+BahLGxsSdOnGAymSkpKatXr9Z3OPWrlsmcdSbLOwNUN/zMb6yvb7GLS3xpabVEQmOxRpiatnKMzbDj/v1vhcIRJCkCMAYoBYh8/Nh6wAAbHs/bwuIQkxkvl/d6UbkCYB2T+ZGLiz4j7nQE+YVpOfI7rEg5rR11EqCWwufzjxw5kpeXZ2trO3z4cBsbm+Tk5NdeI3vhwoUhISHvv//+ggULHB0d8/Lytm7dGhcXt3PnzpYNu/0wuBbhhAkTTp06NXXqVH0H0hhrLjdDZ8GzdAArI6NGzrLj8egkmVRQYJWdTTx+vOfmzb3x8Uq1ujUjfbUCkci8tvYMSfYGGA3QC2AXwEq5/GZODgDQCGJhv36zTUyms1hbCeITJnMgh/NOr144g6IFCQtLUnKUt9lRmAU7q4cPH3p5eVF7B/J4vL59+969e/e1r9a7d+8jR47cuHEjPDzcy8srIiIiPj7+9OnTvr6+LRdy+2JwLcIOwYrLlfB4F+Xy6BftwlqAr1iscR66g0P/8bikJPfp04cKhaZ3f11R0V90+pTu3Vs53sYUiMU5CsUHADsAAEAB8DPAXwDCF+NC7Xi8lYMGPa2qeioSdeFyF3E4xRJJlkCg/SgRvYlqQW0KvbeCaO8jp9BrKy4u7tKli+allZVVUVHRm1xw3Lhxo0aNevLkiVAodHV1dXNzo3fqhRgxETaotLQ0UyzOeP4cAHx8fCybsGhZC5rTq9e3jx7trK0dpFCU0Ol/02jRPj6uRkbKhncNvPb06R9aWRAAPlerA4uLZX5+9DdeUFvVhCVM65VTWTmBJCe8eMkE+ApgGICKILR/Fg8TEwcu94/ERKlAEKpWp9Noewji7YCAnvUNDtK7174beqFWq9VqUt1qfQMkQOtdvMMhm3ArTFkKL/u6zz5e6SqQgwYN0k5IxsbG165do9FoXC5XoVBoyqVSKY/Ha+7162AwGH369HnDi3QUmAgbZGlp6WhhYWFnBwDGxsZt/IXIksH4fODAZ9XVWTU1pizWlxYWRkxm46dUy+VdXy4hAFwIQqxStcjwUYbOqJamUMhkw3UKIwHumZnVueC+hw9nVVRMe9EIrgSITk62fust13Y5cOb17oZe0Gg0Go2gtVrzWq1Wt97FOxyiCbfCWf50QNHe5l75d1Bv3rzZSOv5CJfLpe489SRPU56Xl+fk5NTc6x84cKCgoODLL788f/687jZMABAWFjZ48ODmXrZD6DD/mdseg8HgMZlmZmZ6jMHdzMy9yQGw6PRqgDq1S0nylRm0VTHodN3lKGoJwvXl4TwCmUwqFE7TGiJkCfCTXL45K2t6r146F0DIEPXs2dO0vnFwYWFhcrn86tWrERERiYmJ2dnZw4YNa+7FY2JikpKSvvzyy0ePHv3111+6FSwsLDARotaiVKsvP3uWVFgoValczc1H+Ppav9ZQkWAnp58zM3/Q6rW7CWBkbPzauyypSbJWqXxlHpWpVJeysjLLytQk6WllFe3lxdVqLfnY2R0qLIzS6rdRA5xmMue/3NVcIpF007lyd4BiXGIGoVdhs9kbN26cNGlSSEjIgwcP1qxZY27e7Amju3btog5WrVq1atWqlo6xXTO4RBgXFxcdHa1QKGpray0tLUNDQ8+cOaPHeKRK5brY2Cm1tWtUKmOAm2Lx8rKy94KC/LQefTdRlIfHbxUV7wsEsxQKHsBFBuNvNntp796vEVWFVHo4IaFcKDQDKAUY0LVrpKtrvTWrZLINsbGLZLJ/q9V0gFM1Nf8qKPg4NFSTy3tZW98wNf2suvprpdIcIBfgYybT38WlTm+tCZNZrHPxYgATFus14kfI0EyZMiUiIiI5OdnHx8fZ2Vnf4XQwBpcIg4ODKysr9R3FPy5mZX0gkSx+8YB9KMBFuXxoQsL3Q4Y091J0gljcr19iefl3T58KxWIGnd7N1pbV/OagWKHYEBu7QyoNBwAAGcCqzMzDNTVUF6VUqbyQmfm0rIwE8LKyKheLf5ZKh7/o0pynVvtJpd8kJHwYEqK54NKQkJjc3MjcXKlCYcbhRHp7666P42BsnM1gZMvlHgCPAfYC5AIUEUS3Vw2WqZLJGASB+RIhOzs7Ozu71z793LlzBQUFjVTo1atXcLtZpqNlGVwibG+SS0q2vDzMzAHAQaWqlEobGeGSJRDkCAQMOt2vSxc7reFhtUrlqZSUsbW105RKLsCVnJw1BQULQkKcmzPe5Prz50tksvAXL9kAP6lUwWVl1TKZkiQ33r79iUy2Wa0mAE7V1KwEGPby3P8BOv2ZBEEMdnMb7ObW+OfOCgoaHRcXIJNVkeQqAE+AdJL8LiuLRZJR9c0bieXzL2RkuJCkDKCSTn+ne/dAK6um/5gIIW2///77zZs3qWOZTCaRSAiCMDc3r6qqAgAej7dixYrOmghxrJeeKVQq3WHOxgCyBgboS5XKzXfv3n/wICglxSsp6WBs7NHkZE0iOvf06QKx+Dul0gPAAWA6SR6Tyf6Ij29WSPyKiiE669qEq9XPhcJjiYm/1tbOVastASwAZpJkF5LUnZnBJElS5wqv1NXMbE5wcC6NdhFgEIAjQATANbn8QVZWeW1tnco3cnPzUlLuS6UXZbIYmeyCRHLh8eOMqqrmfihCiPL3339XVlZWVlbGxcXZ29vv3btXIpFUVlaKxeLffvvNyclp5syZ+o6xtWAi1DNnM7PYl0sUAGkkadPANKA/ExJmV1Yel8vnkuQStfq2XG6cn3/zxcjp5OLiGS+3LwMAQCaTNjz7UBeDRqubdgDEBMGg0fKqq+v02JoD1Jm4KwBQMxjEa81cTCsvX6BWa3fmMgFmKBR3Cgvr1LyUmblPqdSMn3ME2CuXn2t4gw6EUBP9+9//njZt2owZMzgcDgDweLz58+ePGjXq559/1ndorQUToX6oSPJGXt6+R4/UavUcBiPjRbkEYAGD8ZabW71T4FUkmVNRMUOrsUUArFEqb+fk/K+CWq3bnWoGIG3OBHAfe/tDLz9ZlALEEISnubluT/rnAO8ShOahazXAdCZzuI9P0z9Om0wu76LTlLQGiM/PfykepdKcJOssN+cDINBpOCKEmisrK4tarU2bjY1Ndna2XuJpA5gI9UAgk/0QE2OamrqyqGhlSUk0SUbR6SFs9lA2uzebzfHxGentXe+JYoXCTidBWgHUvpicYMXjJb/8rhyAD2DWnLEkA5ycrpuYfMtgVAGQAIkAQ1msCE9PNp3OZDLrtP/6ARSx2f05nJFs9hg2O4TD8Q4ICHF0bPrHabM2MbmlUxgHIHh5a2wGjSbRyZcqAPKNF9BBCPn5+e3YsUN7UGFJScmuXbv8/Pz0GFWrwsEyevDnkyfrJRLNOqKhKtV2Gi3Gzi7a27vxrXSNmMwSnQRQCcB5MW9vmJ/fBw8e/K1QUEMtZQAfMRihrq7N6qikEcRnoaFXc3Ki+XyJUmlrZDTa19fV2BgARvr7T4mP/0uhsH7x0VOZzIkBAcH29uW1teqGe3SbqIeNzdcE8TZJhr4ouQZwD4D38modDBqNy+Umy+Xaq+ufIAif5s85QQjVsXLlygEDBri5uQ0dOtTa2rq4uPjSpUvOzs6fffaZvkNrLZgI2xoJUFBdHf1yPpunVm8vLX2vm+6c8pfQCcLZ0vJwScl7Wqd/w2D0fzEg08fCQtqrV3hSkodazSXJJIIY2LXrCE/P5gZJJ4ih7u5D3d01JdS6oL1sbMiePcOTk+3VahpAAY022s8v2N4eAFpkvwgTFovHZv8olaoAvAFSASwAVgL88mKXURVJEgA0gni/Z8+J9+6tlsuHkaQC4CCNtpPD+dzf/81jQMjAOTk5paSk/Pbbb7GxsfHx8Y6OjuvWrZs7dy6nPW303bIwEbY1hUplotM+YwJA05YtntKz5+b798+IRKMVChFB/MlkWtjaTtaamdDDxqZHRESpRKJQqycaGb35ctt19La17W1rS/VVmjfafn09EwIC7icm/qJQSAE8AQoBprFYcwICUisrTyQmgkJBArDY7Hd69Phi0KBjGRk/VVYyCMLPzm6Vh8drTJpECOkyMjJavnz58uXL9R1IG8FE2NZYdLoQQEElvxfKANhNWxGUx2B8FhqaVll5saKCzWSOs7JyMjaWqVTplZUVUqm9kZGvhQVBEG/YRflK2imwSiY7lpTEr6qiAdAYjGG+vn3t7V/7ysH29hwGY3ZKCqFQqAGMuNw5PXpU1NZej4//W6GgtuvNkMkm378/qW/fV7ahEUKvQaVSXbhwISEhgcFgfPHFFzKZ7NatW/3793/zTS3aJ0yEehDi4vJ5Ts4vSiX14EsGsIDBiPDyavoV/Cwt/V6s1ZlYWno0MXG4SuWrVD5iMI6y2fOCg+0b3cK3BQnl8p9v3dook1HT6stlsvmJiVUSSXSjWyc2rpu1dbfwcBVJ0gCop5u7Hz68pFBoxrH5APwhl89JTl4+YEAL/AwIIS1isXj48OFxcXGOjo7W1tZffPEFi8VavHjx6tWr33vvPX1H1ypw1KgejPb2LnNx6c1ifcJkLmYyg9hsW2/v1xtpWV5be/zJk1ip9GeF4kOS3KNQ7BOJdty/r27+fPbXcykra8WLLAgAVgCHFIqb2dmKN96gjk4QVBZUkyRoZUGKL0B1kydLFIrFJ9PSdsXFnc7IqJRK3zCwDuc1FjdAhmzz5s1FRUWZmZk7d+6kSgiCGDVq1I0bN/QbWOvBFqEeEAQx3t8/ytPzuVDIoNG+MjXlvu7mdnf4/M8VCgutkh4A/RSKjKoqvzbZSfhZeXmdJdZYAH0A8kWirvXtF/MaCIKodxZkEzPt5ezs+OzsL+Ryd4Ck0tL1ubnDAwP7Oji0SGztX21FZXmVQsRs9l4EyGDdu3fvo48+cnJyyszM1BQ6Oztfv35dj1G1KkyEemPCYnVr8tqYApnsaFISXyAgSJLBZI7y8+tlawsAlSKRj873/UCVKre2tm2m/NDqy1LKFu1qIACMOJwMuVx7lv5tAMcmJNpCkSghOztWLqd+0XuQ5Di5PCQ52d/a2liv2zS2DWllZXpaeSwjQkbrnI92UGuora3V7UUoLCzsrA8IAbtGOwShXL7+1q0lJSXJUmmSTHZBJIp/8uRaTg4AmHC5fJ36OXR6a4znrJeXjc3Jlyf5SQDiCcKpRbeVf7dHjwksVgwACaAGOEMQc9ns8U0YKfOoqGiRQqH9dc8YYJJKlVhW1oLhtU/Sysq01PJbjAgxXZ+bS6MOZ+DAgbt37xaLxZr5xwUFBXv27Omsu/ICJsIO4b+ZmatkMs1WR3YAxxSKK1lZKpLs5+T0M4sl16pcAHCZTm+bflEAiPLw+JXD2UejUR2VzwBGMpkjfHxadtpGVzOzjwYOXGdr243L7cHl/p+Dw2dhYbZN+H5aK5Xa6Xy3dVSpauTyeut3GgqxOD217CYjErMgaq4lS5bIZLLAwMCNGzcWFhbOmzcvMDDQzc1txowZ+g6ttWDXaAfwrLx8+Mt/zTkAPQAKRSJnE5Ngb+9+T58uUihcSTKeRtvHYs0ICmLS2ugrDo/B+Cos7HRa2vrSUoIkjdnsUQEBrZGGrbncec3fAqaLqekTGi3y5ZE7j5hMu5dH1apI8vrz56lFRRKFwtXCYriPT5s1qVuJSiYrI2wk9JZ5TIsMirm5+b1799auXXvjxg2ZTHb//v2FCxeuWLGC3cH/UzQCE2FHQBC6A0PUL/Y/Cndz62Zn97Co6JpYbG1mtsrBgd2288p5DEa7nc/3lqPjj0+fjpXJNHNT7gPcZLG+0Xo6K1Op1t++PVYi+UKpNAO4JhKtKimZHhzsZY4DTJAh2rBhg4uLy9q1a/UdSNvBRNgBeFlZnampmanVKBQDJBHEpBcLj3XhcKK7dtVTdO0aj8GY16/fxEePfBUKL7U6kUYr5nIXBwVp99xezMqaKRItedFqHE+SQTLZ6Pj47zrvExGEGnHu3LlRo0bpO4o2hYmwA4j28lpTVMSTSt8lSQDIBZjFZI709aXhZgtN4GZquio8PLempry2NtLIyPHFtweNpKKizS/3nboCWCmVApmso3eQIvQaBg0azuONzQAAIABJREFUdO/ePX1H0aYwEXYAxkzmV2Fhh1NTV5eV0QB4bPbogAD/thoO0wkQBOFmaurWwHQLmVpdNzcCmDZzE0eEOo1JkyaNGTNmwYIFEydONNd6QGBvb+/QSSfgYiLsGIyZzKk9eug7io5EpFD8nZqaVV6uIkk7Y+OxgYFOOm1BipOJyT2JJFSrRAmQQZKTO+9a+wg1YsuWLU+fPn369Ol//vMf7fKVK1f+8MMP+oqqVWEiRJ1QlUz2861b38tk40mSDhAnlc6/c+ft3r0D6lvBINrX96OqqpNyuSsAAMgAljEYfV1cGG018hahduWLL76YPXu2brn9Gyym385hIkSd0Jm0tLUy2dgXw4uCAc7L5VGJiauHDNGt7GpiMjE4ePSTJ9ZKpRlAKkkOdHcf0/xNHBHqHFxcXFxcXPQdRZvCRIg6oayKipEvz7y0AzBXqUQKRb0rq/lYWHw3eHC1TFarVE7h8QgchYQMG0mSp0+fvnXrVnFxsYODw+DBg4cPH67voFoRdv6gTogE0J1KKZPL98fHF4vFDZ1lxmbbGRlhFkQGTiAQDBw48O2337506VJJScm5c+dGjBgRFRUlkUj0HVprwUTYFmQq1cOSkovPnz8pK1O+8f5E6JWcTE1jXy6pAVCQ5MrS0p23bycZwEKjckmtnOz8q4qj1vDjjz/m5uYmJCQkJiZevnw5JSUlLi4uISFhw4YN+g6ttWAibHUp5eU/XL+ujo8PSU4WPn68+vr17OpqfQfVyY3281vEZj9+8bIY4H2ALwDCAS7J5X8lJuoxtjZQU1ySniN9ymyny/2gdi4uLu7TTz/tprVcVJ8+fT766KMHDx7oMapWhc8Im6RaJruclZUvEJiy2d0cHYObPHpKKJcfevz4hlxuTb1WKHIVimFxcd8MHtzGC6EZFAdj4w/eemtJQkKxQGBNkgyAFQDUIw4bADe1uqy21prL1XOUraOmuCQtU3SbFSmlGb26NkI67O3tlUplnUKlUtlZJxECtgibIr2i4pebN8c8f/5HVdUPxcX8R49WXL4skMmacu6DwsL5SqW1VokrwHiF4okB9M7pl6Ox8SehocY83kWAWy+yIIUHoOikk+VrikvSMsWxrCjMgui1LV++/Ndff71z546m5Nq1a/v27VuyZIkeo2pVmAhfgQQ4+OTJZZnsPZJ0BugFcBBghEy2OiamvLb2ladXicXeOg8F/VSqioaHbKAW5GJuXmepKAVACknadNItRguyS2+zhuA2vOhN3Llzh06nh4aGurq69unTx8nJKSIigsPhLF26NCoqKioqatOmTfqOsYVh1+grFIhEvmp1nZ7QhQBJCsXJlJR5ffo0fropl/ucIODlofzZdLp5J+2Xa2+G+/gsLy8/JJMFAgCAGGAxg9HfzU17sjwJcLeg4FFurkAmczA1Hert7dyiuwq3JTUJcgJ/tdAbsbKyioiIiIiIaKiCtbV1Q291UJgIX6FWqbTU2dnVEoAOkCcQvPL0YAeHzVlZU+RyzTKXpQCHGYyvbWxaOlJUD1seb05IyJwnT9RSqQlAMUFEeHkNdnXVVCABfr1/36+q6v+USkeAOLH4s4qKAX5+/Z2d9Rg2Qno0efLkyZMn6zuKNoWJ8BXsjYyO6hTGAfgB8JtwuiWHM6Zbt/7JybMUCm+1OolGO8hkTu7Vi8fAO99GXExMvhg4UKFW1yqVpixWnXfjioq8q6q2vxgaMBDgmlzeJz09qM23dUQI6Qv+OX4FYybT1spqTVHRly82wuUDrAL4BuCJUZPGIwTZ2/tYWcUVF8eLRFampittbTmYBdsck0Zj6mRBAEgtLFzx8gA5HkCUWv20qqpbfQuTIoQ6H/yL/GrTe/bcIZfvLi+PAKgASAIwB/iYIIJMTZVqdVOWZjZmMgd38K42tVLJz8iVSuv2EhME2DmZG9t01JyhUKl0nweakqSskw4r1QupsqJGUQhAGjMduIyO+qvSocXExOzZs4cgiNmzZ4eFhdV5Nz8///DhwwkJCSwWa9SoUePGjaPWV/rrr7/i4+OpOmw2e/Xq1W0dd1vBRPhqTBptSUjI45KSQ0lJYpnsG5IcDaAiySN5eT+Uln4aGmpSX1OjM1ErlQUpOQ9rfYoZddM5nVQGZ9zxA5LZxZJFo3W49ckcLC1vlpUFvPwY+CaNNrmBzQtRs5BA5lTHCuWEipwEQKMTR02YSe7mgwgcr96GHjx4MHbs2A0bNpAkOXr06CtXrgQHB2tX2LVrV0FBwfDhw2tqahYuXMjn86mZEmfPnhUKhf379wcAdqfepBoTYVP1trW99ezZOqk05EXJ5yqVu0RyIDV1Rs+e+oyslamVyrykrAcSn2ec7vVWOCpzLn2YQtAlBE3qYkJb1N2xA01OGOTquub58z5SKfWHQQ3wM43GsbDQTLfPq6kpFInM2GxPc3Nm+96YSSESKUg62Z6+ixSJ4gWyQWryR+qlklxULf9Xfs11Z5O++g3MoGzatGnx4sVz5swBgOzs7C1bthw4cEC7wjfffKP5CqtSqfbv36+ZMhgREdGJpw9qYCJsKhKgrKYm5OXC8ST5TXm5fgJqESSpaHwhXZIsyMx/IPbJYgXUmwTyRQ/LJC4q8gSojQAgWXZrReyUdcEu/wxLIQhmO86LxkzmR/37fxwfrxSL7QniKUn2cHSc7ecHAAKZ7Pe4OBuJpK9KlU+n/0GjTerRo1t7HTiuEIkyk/Lu0sPI9tTYKpc+U5OntUvU5JeV0r2YCNvSgwcPpk+fTh2HhYUtXbq0TgXtjpyCggI7OzvNy/Pnz2dkZHh5ec2aNcvMzKwNotULTIRNpSZJ3Q3LaQA0nckVHYZazU/JKhYy1URjvwY5ar8cdgDUt1a4mpSX1/JV5EXNygwkDBTIf9z56NshvP91LdLUMhcbuq2XG7Snloo2Ox5veWioVKmslsuncrk0glCTZK1Sue3+/fU1NUOof1+VqhxgSHy87YABr2zv1sjldwoKyqurLYyN+zo6WrX+nFGFSJSZxL9JhlUx7V5duzVVy58XiFKVagmdYNvwPEiSDlCnS41B1i1Bb0okEgl0ZnMRBOHo6AgAxcXFlpaWVKGVlVVxcXFD10lMTNy6dWtMTAz1snfv3nK53MjI6Ny5c5s3b46Pjzc3N2+VH0DfMBE2hgSokslMWSw6QdAJQkqjiQCMtSrkA3A76ANCtZqfkvW42jmVHfzqyg2oVVYA9KuzPhEJQ1NVvwDzf4ua0UhV75Jb3eF5e86FAMBhMDgMRolEcjghoVokYpNkhULxjCQHA1BBWwF8K5cff/78Hf//b+++49uqzj6A/84d2pLlvVccO3GcnZCQhOzQQCAQysjLaAu0YbTMUjretoy3TWmhpSWFsqFA6WKGDWFDAmSS4TiJHe89JVv73nvO+4diI9txYsdDsn2+H/9hHZ17dSTLenTPeM6UE5xnb2Pjy3v3Xh8ITGPsKCEPlJYunTRpScjKxSGnuN3F+yuHPAoysEbPgUZPMWVEICzBNDHBNI3gRH/BKteOZo9FY68BmUBLdcfdDLsBBQjdB4MS+IawnePK0qVLxZBVPSaT6eOPPxYE4T//+c9vfvObHpV1Ot2RI0cAGI1Gf2dKSJ/PZ+rjm1xJSck555zz0EMPzZ49O1hy6623Bn/54Q9/OG/evGeeeab31eTYwANhnwIez1+qq7MOHaphLD0mZv306asmTvzBoUNPqWrwfdQGXCXLZ+fnh7mhp2AooiAAQgSgd644nxCyGyAl4m79YoyGWOjw+/+6detTfn+wA9wN/ASoB37VWaEAeLSj4wRn8KjqC3v3bvX7owEAixm7NBA44/DhSfHxicPWP+yob9mlzWjTD/G1YInj/Y7ACspeAIyAt8Z1Z3vg/Vz7mX3VD2jtLd42jW3p/OYQq7FNAvmSkHsZ+2VXNYFsitaPr93Ph9ADDzxgDlm1ZTKZBEEA8P3vfz84BHhc6enplZWVwd8rKirSjzeDvby8fNWqVXfcccd3vvOd3vcKgjBlypS6urrBPoFIxQNhnwoYe1lViaoC2NzQ8OutW3+9bNmnwOzi4gLAzdghTTOJ4vuHD9e1t585YUJ/1lFEhCGKggCMUjzBJ0C362SB/MtuSOz2gJ2xsEAtNZqPdTAb7RZDhA05vFtcfGcg0DUMbAYeBE4DbgWCnz21gMXQu4P8G3ubmi5W1eiQEj1wg6J8Ult77sSJw9RsBqKSId560K3UupUUyu7tLDBSdq9bOd+t1Jrl429B0KFUaWw9ul8yUvYrvfgTjW1V6aWAIAn/MUk1adYVQ9va8WPmzJm2gc9nvuiii5599tlLL70UwLPPPnvRRRcFy59//vmVK1cmJSVVVVWtWrXq9ttv37BhQ9dRjLH6+vrk5GQAVVVV77333kMPPTREzyPijJLP7nCQQ0aQz2dsjc/3VV3d8qys365aNaGgoBL4K6Xbfb5XnM6JxcW//fRTb6+NSyLR0EVBAARCmnWWJKwAvgYAuAVyn058OsFY0PNhibhbv3hL65Q3KjODP0X7G3xtbYNvwxCqbGtb0X3EVwTmAUUAAAr8QZZPyzjR1Uy735/RawFiGmOufuRnjygdgXqVXtyjUKXr2wN9Di8xRoHe3xIsNl1qrj0xzfJ8quXZXHtMXvS3hBOOSXND7kc/+lFra+ucOXNmz57tdDqvv/76YPmGDRsOHjwI4J577qmsrLz//vtzcnJycnIWLVoEgDGWk5MzZ86cJUuWFBQUXHzxxd/+9rfD+TSGE39H9tdKTXuypQUpKQIh7x0+/E4gEPxEtAA/07Roj+ft4uJvR3g36ZBGwaBYQ65RslV3bPBpDoHIMfr0ZPP5hBwnORklYq0+t+tmm5ZECj+YXABDdHTvymEhCULvwasWoAgoAx7Q6XIzMyedsLUJZvM+WYaihBYeEIS40ZbFm4Ed71syAfqcGmaWE0Xylsq6TbUXyNtWXbRZTjKHexbPeBYVFfXVV1/t2bOHEDJz5kyhs++qtLQ0OInmj3/848aNG7vqBysIgtDc3FxUVOTz+SZNmhQ3phMt8UDYX25AkiQA7YFAlKr2uC64gtK/1ddHdCCktKrw6C5netHQRcEgk5SYF5148nrduUX7p1jJCj+cXABjZMTC/KSkfzudt4fMj20HdkqSkphoN5svSUlJs1gABDRtd2Njm88XbzbPiI8PXVw4LTb2Lkk6oChTO0uqgUdk+RepqSP6TAbNqkuShJdUenlooSS8aNX1+Yc2Sgkmaa9LuYey24MfLIT8Uye+Fm1YN+zN5U5GEIQ5c+b0KOxaJmEymY47g8ZkMvU+akzigbC/npXl05KSAASOl5TLCCjHW2AQXh31jbVljcHfGWNH6MQhj4KD4Rbtn2EFKfxgUmTEwhlJSRsPHwZwPWAGdgNXEXLh1KkL09K66hS1tDy/Z8/5irJY0wol6W5J+s7s2ZM656ZLgvDD+fOv2LlzWiAwS1UPS9JWUbxy9myLPMRjeMPNIqeapHddyl2U/S+gAwIC+Z1RKrXIZ53gqFz7ihr3hy3eJ4FYoM2mS8iwruFJZLjIxwNhn5yqWgRMBqqAu2TZHxcX7BaLNhiO9poS/hWQGmHdXx11DUUl7q26c1RybNmWSiJupUfndeEHkXBd+J+9e5+ndAdwLuAGcoGzCKkLmSbqUpTnd+/+yO8/dlmkqjer6spdu365fHnXdiIpFsuvly4tcTor3e4Mo3FVdLQYwRNlTyA3+sw695fN3gLKJIGoccacZFO3KaMMtMGzv8lzlDIiECSZJ8Ubp6RZ5qZZ5mrMLxK+WJAbNXgg7FOJ0bjBYmnTtFiDYeGECecmH9udVyRkUWbmtaWlD3auoygDfqjTfSeS+kU76hqLStyf6870C5G+TatbtH+GlWG/LlQpdbhcy4HlwE87C72Uzq+ru6DzL7uzvv57ihLaOZgCXKGquxsazgjp/CSE5NrtuSOy9JipqsvpVoYh6hAIKeZZKeZZfVU40vauW1lL2cuAAeio7vhpR+DTCVFLAPAoyI0uPBD2ySjLV+TkJBxvzc05eXkfyPKskpJcoB3okOUFEyZ8cPhws8cTbzItnjhxYljzLwSvBUdFFAzqGi/My1Mlw7HPUNlkEkZwvyqfpkX3unQzAlpIj7fD7V7eqwN8kqa94e69mHIkMFWt2F+yy5PXoh/pMcj2QLlHLaCsaxG3VWMPtweWedVmvr8EN+rwQHiKVmZnr8zObvZ6DZL0wdGjR4uK/k9RcoEj7e2/amk5lJV17qRJYWnYKLoWDBUcL2w5/LVIfAAEaOnG2qzpOcJIja6ZZbkBULv/S1QBoVuLRJlMZYLQI9tciSDYw5FMlalqxf6j2915R/XHT4Y+rNoDTRq9oUehRv/HpbzGAyE36vBx7EGJMxrb/f7Sysq3FWU+EAOcDryrKIcqKhpOnMx6eHTUNRSVuEZdFAxyi/YdhmVf6ld8qV+xTX/mV94p5fuO0u5LEYYPAU5LS/tfUeyKch7gWlk+M+QLzZykpCdlOXTxYzPwrCzPThzwpNlBoppWsb9kuzs3LFEQAGMM6L1IRmB9r6/guIjFA+Fg7W1svFJRQl9HEfieouxtbBzhlozSa8G+lOunjHAsXDd5cnVGxmyd7hZZ3qDTnabXT5o8eVZIkLPpdBfPmHGGXv97QdgMbBSEJXr9+pkzR35SqObx1Lgt4YqCAGz6OJG82qNQFF629JF3huMiGe8a7ZPmdv+lttZeVrZk4sTTU/r89w4oir3XBhTRjPlH6uM7qKO+oajEtXWsRMGgcv0U5hXIvgOZI9JHSgi5qKDAlZdX3t6eLIorrFa92POiZ3pCwsTly7fX1ha63fE22y8TE40jOJAZipFwfouN0k0wSK971T9RdjMgAT6B3G2RW01Sn5NrOC5i8UDYp6mEvKgodYryy337/t7QcOWs4/+HJ0dFbZWkC7vnV/tMklJHMJFmR31DUbFrq+5MnxC5O/+dmgr9ZHiBkYqFACyyPDU29gQVTJJ0RkqKFKb4FzkmRZ9d63671fsIhSQQLdqQaJHTPWqDSUrACTep4LhIw7tG+xT8V04GnlJVtampzOk8brU5iYlb9Pr3Q0reJuRTg2HmSO3g6nc4ikrcn+u+NfaiYFCFfvKXI9tHGvk0v19lx8ljN5IEIqVZTpsef1Ge/QyRiC3e+HLnlCNt7QdaXvWqo3m3am78Ge/favvpskDgo6am7ONd5ImE3LJw4cY9e37Z3j4RKAasUVE3z5wpjNQyai0QqEXK0PaIdgSqql2FCnUJRBdnzEo0TT35McOpXD8FXmDfwZGcRxqx/A5H8eGmA+LKcDcEAChTSxwfBuhmYCoAMKi0qLht7dS4dcJQ74nBccOEB8J+MQBqr10FukTr9TeefrpHVZs8nrNNJtMo7zSrc++t96gafRHIATpqXfe2+V6ZZF8T3laN8HhhxPI5nUcK6z8VVnZIMeFuCwA4A6Uqu+hYFDwmX2WXt/n3xRomh61ZHDcQo/sje8S8I8tZMSf53DFJUubAtwqLNCr1NXjKNbqv871hpew3PrW91V8cZwzz51qFfjLxUjaOrwv9DkdxYV3kREEAPtVF2ewehZTN9qpbw9IejjsFfIzwJBjwuCDsM5mmj9SY38BQ2lLv8ITsiztIbqWWsbN7fEPS2OUOf9NQPcRgjPyaiohSVVL/ubAkcqIgAEmQCanpUUhIjU6IuMS2HNcXfkXYp8OatkiS2kSxICnp5vz8CJwGxyitKTy625lWOXR9UAza8bZX1TMWKXtrRFQfaa3b/UVFRZvLFWeznZGZGWcc3rUrGoVPGLIvPUPCrp9Q43pSZdcBXXO1fCJ52K5fEs5mcdxA8EDYJ81qvSgqKjMrq5/1KWMtPp9Np+u9+Gw4BKPgLkdqkWHeECbzMEmJhGwB2xhaKJB3rLqRWw1yUiO/puK43i8t3V1S8vNAIAcobGr6Q2XlyilTQvdsGg9kwZxqzqtxz1fpz4F84LAk3JNqmagTR/0wATd+8EB4Isb+hTSF0s2HDu2urs5mrFbTXIKQn5i4dvLk+OG8PqguPLrbmXbQMMT7C+pEm02nc/hvp+y3gB4Aweuy8Hic4bxgBZdSW9m+W6EKQA2SJdVSYJHD8NEf9vHCerd7d0nJZ4FA8LGnMXZeIHD6wYNTExJsuuHqFSQRc10eKtaQF6VPbfI+41U9RskUb1zMoyA3uvBAOASe3r17WWPjc5QGw+ZOSr9TU/NQU9OaqVPn9Z2SZlAodTgCQx4Fg7KjFtW79zV6ChjsBC6LbM+wrREgA2jzlVZ0VKh0MzABgBL48FDr1ZLAMq3zog0Th6MxJxDeNRW76+quVZTQRzUBV6jq101NS4ZnP/qmoxXVgTi/IRJXi+pEa6plXGxlzo1JPBAOVrPX62pt/XnIjgRzgZ8AtYHAvwsLpyYkDNNqiuHLbUwgJJtnJptnUhYQOvfypZQCqHLtUukOoGvXwBXAEyp9vry9nBDRrs8etkYdXxhjocfvT+yVWi+Z0iM+33A8XNPRiv21xp36pYwnbeG4ocZnjQ5WZUfH4l571C0GDgHnadrBlpawtGpICN13tFepl7GEkCgIoAioAD7R2F01rv0j3LygcM0jjbfZvu7Vc75TlpOs1iF/rKajFQdqDTv0SzQS5mwyHDcm8UA4WHpRdPZKItMOGIF4Sj3dc5AOlYDbrYb5al4FrgNuA/zALcA9fs3FEJ4RrHL9lO3eyTWHK0byQeclJz8ny0UhJTuALZLkU9X3KyoOt7X1eeQABa8Ft+uXUsL7bzhuWPB/rcGaaLf/kxBPyORxAP8AzgJekKS5ZvOQP2LA5SrZX7VDXDzkZz4xSTAS0gi0AjHAPUA68EjnnTdR9ota165wDRQ1Sml+/5GRfESjJF03f/5lu3blBAKTKd0nCCWCwDTNvndvLqWfyPIrRuN18+bZ9fpTfggGNJdWHajV79Qv4VGQ44YP/+8aLL0onjNlyvLCwj8pyjygFtgEVAEyIUcNhkvs9qF9uIDLVbyv8jMsaZOThvbMXTTqq3btaQ80AMwix6dZZ8qda9cyLHPKO85S6fPAK8BX3Y+7u9mbP65mTKRbrb9atqyqo6PJ681RFPeBA28rSrA3+dpAYIui3LFjx+1nnHHK528qqdhfZ9ylX8p7RDluWPGu0SGwMC3t8oULfx0XlyMIZwtCkSg26HSb4uJuOP30oZ3YoLhcJfuHNwoGtPYDLa83+671a3v82r5W308PtrzTtZmA3TAh155vlNYBrUCPySk6lY673ckJkGG1zklIOFxb+7vOKBh0JmNGj6f1VOfONJZUFNYZeBTkuBHArwiHRprVeuPppzOg0eNp9fmSzebB9In1pam6ebs2p00/XFEQQEXHToU+BqwI3mRYq9Ds8vbLJtnPDpaY5ZSC2PN2NT7HmAaEfkargBrQ2sOyhiwgGDu88LW1GaKjT157GLR4vbm9CvOAJq83xtA7U89JNJZUHKgz7NQv41GQ40YAvyIcSgRINJnyY2KGIwoCoAwBYcCfqgPiUVq7omCnqX5N6bFeQyASsKl7tU2EJGhsWBYPnJRC9J9JK4oKm3xDN0tlQOwGQ2WvwnIgeuDvhOC1II+CHDdieCDkejjuW0Ji3QOhVU4CtgCXAM8DzwMXA7sE4tOJQzwm2n9u0f6ZtOJQYaM3HLHw9Kysu2U59DXaBTTp9Qmmga1/byyp2F9n3MGjIMeNIB4IRxPW956IQ0UW9UBJ5y0NeBiYq1H3gZZXKzu+ouzYWr0UyxRJqAc2AI1AE/BTgcyw6aJEEs49B9yi/VNp5eFwxMIZCQm2zMwFOt2ThLwO3CZJV5rNG04bWOqfpqOje3YMY1qT90CZc1tlx3aXUh3u5nBcf/ExwlNU7HAUNzczIC8uLneop4Yel6OypsKhc+oShvVRMqwzSxzrVfoSkAVcD8QAnzEYFUqbvA93BB6cEns+ATFJidlRkyrar6dsDhANPG3XR2VaFw1r2/rDLdo/xUpW+MHkAhiHYrzQ4fe/dOBAeVubAFj0+nXTpvX15z5/8uS69PQdjY1uny81OvrOxESh1wLTEwiumt+pX0JHWxRUqUeAqDLfkbYPVHolZcuA9lbf36xySY59KXgqHC7i8UA4YAqlj+/caXU4Lg4EALyg071rs107b54sDOPldWtFdWElvtSvVMnwJhKzyKkT7ShvX6NQaDQK+KLzHoGxHwW0ww5/cbQ+D0CULmtaXIZPbdaoyyCtkIZ58LL/3KL9M6xkhR9YjcfS+hj0JHVSxinkYGv1+e7//PM/+f1nMwbgiM/3va++WjljxvS4uOPWTzabk7NPJc9ccNX8jtG2XrDNV1Ll+pqxFEBTWTljbwIzgnep9Oz2wI+avEXxxinhbSTHndRo+q8beT5K3ygurmppMchyQUrKvORkAJuLis5qbv5JZ1q1ywKBv7S2vlJUdElBQeixzV6vQMgpzBjsrbWiurCSfalfqY5Ix6NFTp0am9rs3VfRsaJHNk2Nratsv84YE2cQYwAQCEZpeK9QT41btH8onKtXPMGb8Z6aefsOnUI+0jeKiu7tjIIA8oA3FWVxYeH0pUuHsLVdeUQHdy3IGj2Fjd5SSlVR0KVYJkfrhzcNequvpKLDqdGvgBigHvhOVxQM0tjPm73n8UDIRT4eCPvkUZSHi4tv1bSfU9oOPN7cfH9Z2c0LFnxdV/ds9+SiN1L6WF1dVyD8sqbm9aKibMYoUEnIuqlT5yad+oIHf3t7cZXypX71yETBLoSIQO8hSU2hiw61fpZrn28etrWMQ0IhekU8NmPTJUYzr3AKublLWlvP6v5dIAZIpNQZCMQOUS71xiFaNX+k7T23skJjzwM20Lpy580dxq8yrPOHpJHHVePaq9EvgRgAQAvQe6OVJJV6hq8BHDdU+GSZPuU4nZsV5TpK84C5wKP6+NcsAAAgAElEQVSKssrpfL+sTGSsx0egCEidH5df1tQUHTjwpc/3lt//jt//mc+3fe/ePQ0Np9wMpmkdJGqEoyAAi5wqkpd7Fb8GXKjS1yrad4xwewapXD/lS+/UioHn5u49wEUA1mvfiVPTVFJRWKffNehs2u2Bcrear7E/AsFFnMka+0+rz+XXnEPSzuNhGpM7oyCAdKB3irtCffhmEXNc//FA2KdLfL7J3Ut+pGlfV1drhAS6lyuA0jkt4u3Dh59VlK7d3GOB5xTlraIijDZ60W7X60VyJeAAAASA3wOlwDnAxAAd9vmrQ65CP/mLAcbC7Ojo97uXOIA6QoZknWhTScWBOv0O/TJt0OOCDn+jRi/rXkY0tt6lVA3oPF61sdq1o9S5tcHztcb8J6xLgNCX0QbkA0+ElLiB6+OMyQNqAMeFBe8a7VNUr7UKMYBbVeelp/+mtPQ3IfduFMXT0tIAMICoao+pislAYGR3CBoqWbaFVvlwefs0hiRAAi4CXu28RiLBpxvmJg7QQPe1X5uff2tLy0OBwHLGAFQA35Xl86cMwaBXcNX8UK0XZIwCvfsMdGwgO9pXuXa2eH0q/QmQ1ObfWe/+S459gUXuc5Nhg2hx0e3AvM6CB4FLgCeANUA78JFA0iNnCtU499577z311FMAfvCDH6xatarHvXV1dQ888EDXzQsuuGD+/GOd6v/4xz9eeuklu91+0003zZo1a8QaPMLG3RWhoih33333ggUL1q5d+9VXX52g5t7u66MB7AFSzOZz8/L2JiWt0OkeJORvhKzU6XYlJq6dNAkAAdTjzZgflq2YRkSscZJJjgX+DnwB3NaZX7RKEjDqomDQgPYvjDMabznjjN/FxU3V66fp9RdbrWeedtppKb0HwwZmyFfN23TRInmrR6FIXjfL/b0gcwWqmr2SSj8FzgfmM/YjhX5S6th2gq21sqPmy8KlhDwHtAMO4N9AHfAAMBNYC3wiEEkSBpZPgBsOX3zxxSWXXHLuueeec845F110Ue/PvcbGxscee2xCJ5vtWJbE55577n//93+vuuqq6dOnr1ixora2dsTbPkLG3RXhPffc88Ybbzz88MO7du0666yziouL4/qYCv+SxXKkvf0OSoNfFlqAG3W6CyZNEgi5ctasWpfrUGsrgHUxMakWS9dRiVbrNr9/Ych53iYkK0wJMIdEpm32kbZLVPrPzjmBhyTh0kxrf3eZUKmHgXbtXxEJBrSvfZzReP38oZxyMhyr5u2GXJ17s0+bwdj3gp2WAvmdWW4zSv39MzV5KzV6d/cvNykUZ7iVur4uCvWifWrseTXup9sDv2dMU6hM2edA17BAsUj2mqSLBvG0uKHxwAMP3HjjjVdccQWAw4cPb9q06fnnn+9Rx2KxXHPNNT0K77///t/97nfnnXcegG3btj3xxBN33HHHyLR5hI2vQKhp2sMPP/zPf/5z7ty5c+fOffXVV5955pnbbrvtuJUFq3V3TMys9vYFgBPYKwgXTps2sXMxdYrFkmI5zof7+unTv79t208CgXWUUuAFQXhQr79t2rRhfFbDzCQlTopeWN7+vYDmA4hO1GVaZ5v6MWXU4S+r7NjNWCIgE1SmWWfEGPJGoMH9MaBYOISCq+aHPHcMgTA5Zk1Vx1NO/0bACnTEGyckm5f3/wwKDQA9/6aMpar08AmOEgVDhnU+pVQQhBrXnibvSpXeDCQJZKskPD/RPpSLTLhTtmPHjiuvvDL4+xlnnPHf//63d5329vYbbrjBaDSuWbNm+fLlAAKBwN69exctWtR14JYtW0aqySNtfAXChoaG+vr6ru7v+fPn7927t6/KAiFrUlPNc+ZUu1xGSfq2xSL2I1FIgsn0y2XL3i0ufrypSSAkLyHh1xMn6sVT/9SjikJZOPOWATBKcZPsq4WBZAxwBirK22tU+jkQXGjoqOi4lLEjscbxGwtDVs0Pfe4YkeizbIsAUKYIA8+6YJTM7YEDQH5oISFf68X+9gOnWmbFGtscvn/4NcWis8boLyCjLUXO6OV0OltaWnoUEkKys7MBNDQ0xMbGBgtjY2Pr6up61LRYLD/4wQ8KCgoqKysvvPDC//u//7vhhhsaGxsZYzExMV0H1tfXD/PzCJtxFwh1Op2pMw9ydHR0Q98LGxoaGoo6OrTiYgBTpkxhRmM/h/p0wNrcXOR2bsvDmKqe4ihhwOksOdJySFhB6QBmPQwHBgyoDdUde1X6TmcUBGDX6L9q3POGe5X3gJTKk5kHbO+B9ILsAcVCbeBJX1tKqwrrjV/pzqBMwEDmsAycSAd+/nhDbovvDpUu7fqTEbyjE8r1wtST/t273hs6EpVgnHmskGFAU3XGDDac/6ozZswI/T4aFRW1c+dOQRBefvnle+65p0dlnU534MABACaTyde5L6bX67X06srKycn54x//GPw9Pz//lltuueGGG8xmMwC/33+CA8eM8RUIbTZbIBBQFEWWZQAul8ved5rQ+Pj4nPj4mJQUAAaDYUDXQ0PC73AUFzV9Kq1yi9Fhn9QU7P7qf32VqkB69zI7ZXoigETSFK0KwxT4ENi9VxB6Xu4LIsnIz9Bbrcc9UDregnqmqlUHS73uQO+7atSEHYYlIFIEPfkQBiF6QtTs8vZFlJ1BWbpAvjSIjRPtq/rzRx/oe2NsI8P5UmzevDk0Gun1+uArf9VVV1111VV9HZWenl5eXr548WIA5eXl6enpfdUEkJ+f39zcrGma3W63WCzl5eUJCQn9OXBUG1+BMCUlRafTHT16dPLkyQCOHj2amZnZV2VBEHSybBrgNjpDxe9wHCms/1Ra6RJH6UQb7XjrKwIRFQWDKvRTalhujw0XAVi1tkX7PsubntpXLOyBqWrF/pId7rxy3eTe92qSzCJ7nq1NlzEtNtWjNii00CBlG8T+TrThRkxWVlbXlM7+u+SSS5555pnLL78cwDPPPHPxxRcHy59++unVq1enpKTU1NQkJycLgkApffTRR+fOnSuKIoCLL774qaeemjdvnsvl+u9///unP/1paJ9O5Ii4T6VhZTQaL7jgggcffBBAdXX15s2bL7vsspMeFRblh2o+FZaP2igIixwPvNO9bKdBjNDJ9CqRVaLr8dMmJX4mLC3eV+3v6DjpGZiqVuw/ut2dV6Kf3vtUKtFFeBQMIkQ0yylmOVXRXF616QRrJ7hR5Ic//KHH45k+ffq0adMCgcB1110XLP/Rj3506NAhAI888khycvLChQuzsrI+/vjjxx9/PFjhzjvv/OCDD+bPnz916tS5c+eec845YXsOw2x8XREC+MMf/rB27dqcnJy2trabb7555syZ4W7R8Wkac8tRJ68XqTJsc92tNyj0J4ytB0RCXpPIXdlRZ4a7XQPjlOI/VZexfZ9MnBwfOoioqaoW0jVKGKstrdvuzjuqnx6OZg4ZygJlzm0digo2n5BGQj7Jss236cZsh9g4YbVat27deuDAAUJIQUEB6Zz0V11dHby+/M1vfnPttdfW1tbGxcVlZmaKnZP7MjMzi4qK9u7dGxUVNXFiBI3uD7lxFwgzMzP37dtXXV0dFRVl7V+XF3cKZMEyNfaCWvfLTv/fAFh18amW80Qy+vKMOKX4z9SljUUHBPi6ChkY6Z4moZ5MLdcfp0d0dClxfNyh3MDYVUCwq7ih1Llycow5uNkIN3oRQqb1WsTVNSMUQFpaWlpaWu8DJUmaM2fsd5KPu0AYdNw/OdcfjGkgpD9DfQKR0yxz00b/RDOnFP+Blq55dgRoh06Mkc1nGMWEsTc9RKEujyofi4LHJKr0vnr3H7JsC8LWLI4bfuM0EHKnoCNQWdGxW6UyAZMElmWb2yODF2WqX2sTiV4nDng8P5K1Ol+b6S/9LfNlAfvV1huVmjbTvCjzWIsNfrWtx4aCAIBZXnX4trDguIjAAyHXL85AeUVHjUq3AGkAFFpc7Lg4145gLGSgVR07Wn01BDOBCoFUZEedfoJ8zaOIS6nOC5S+xI71i84DPqfeqZ4dinG6LJjD27ahJQoGoLFXcYMkDMFWGxwXycZa9w43TKpdX6v05WAUBADkqvQ/lR17gjfK27c1e5eotEih/1HoFr/2foljl09rDVdrh5DqO3w99YWWyMDlLNARqAxXk3pTqLvVV9To+boj0HPfpYDm9KgNlJ08w7hRihPIfqA6tFAk98cZ+TgCN8bxQMidHDu2C2tC9+JJAc0HQGN+p7+NsrtC3k4ZKv1LnevgyDZzWBDm793PG8M01o/QMjIaPIWFLR+Ut8+v7Lj4qBOFLZsV6gLgVmr3N798sPXokTb/vuY3K9q3MXbihDgkJ2qRLCwn5HGgCPhEEs6L0pdE63NPeBTHjXq8a5Q7OQLSx15SFIBfcxxvbGm+R20b5OMyUJ/aqjGfUYwTw7SzHZXTPvQdXMa6Pf23BYNBSujrkJHkUmrq3O0q/Tq4Q5ZKr1bpJ8WOH+ZELSl27FDpFiADAMBafPdp7NUJUSdKhG2WU6bGntvoedGlPCkLhlhjmlVXMCLPg+PCiQdCrl90gqzSou5JmT8xSdEABKIj6JnGF2gVSLdc4RrzK5pLL9r7mYvZGaioaN9B2TQgFvjArrdnWk8f+TzOUYYpT7m3LtecXVs5PEmE/WJ0Yj/23xgB9e4Sld7fuU9k0NKAFl/j+lql93ZGQQCEsp+2B/6lUq8kGE9wQlEwJFtmh5Z4lPo2f41KVavOFm2YFIG5gThukHgg5Pol0zq32Hm+Sh8CVgCM4HVJuD3D9i0ABjGakA+AWuCbnQoE8kis4djYkl9zlDq3+TWZIJ3hY7s+KcN6WjBMUqa2B8p8qksvmaJ02V2x06s2lTmLVLoNiAcAsFbfHyl7dULUkpF93hCIFBt9xdXtbxjVpkyQI2BEPyHG3HOP73AJUDeQ06s4z6N8DpzWq3yuT2u1CAOYxFTWvtXpl1V6PRDd4vugxvVCXvQqvdhnhl6OG414IIxE3qZmNzVQEkFfvY1SwpSYM6tcd7qVGwhg0SWkW87p2n98QtSCo47lKv0tw2KgTSSbjPK2eNNZADTmP9y6JUD/1fm5zFp8j/q1RydFn+VWao86t6n025RNF8ghkfw7K+q0KF0mgFp3kUof6IyCAAhlt7cHntOYXyQjPYlRJ1rjoi+lTKmmHdFCFCFi2DcD6aITTB6Uh7xQAEBwVBL00NqAxO7Vm0US2/+Tt3gPO3wTNfZU8CZlK/3at486rpwSu3aQzea4iMIDYcTxNDUXHW77XLeKRVgflE605fQxwmSRU6fErq5zP+xWNkqCIVafGmNcE7yr2XtIYTeEXJ0Qxq7zqi95lPoSx1aFfgKkAqAMlN1a5lxQEBsnC2af6gBm9XqcaX7NYZISe5WPBIHIEZhgJdE0oUP5lUbfDpmptF0S6uKNeV71bxrbFFK3TiD7jQPZMr7JW6GxP3Yvm6vQKIW6x9jSEW6c44Ewsniamg8eavtct8onjLL0b7JgzrDO713uCrQzdkaPQspWtPhe1dglwSjYKUZjN7X53kwwzRCJHmgGerwIjSIZywkPT4FVl5Foam30zNHYNYwliuRDWdiSa1+pE20tvi1u9UqN3gIkEHwuCb/Oti3otR/IiajU3f0PFJSmUg8PhNxYwgNhBPG1tR081PbZKIyCJyAKEtDeo5CgVWMaZT2TczKW69N8AGKNaR51E2V/DrmzVCQVenHu8DZ3FEoxz4wzOJ2BNwJawCJHR+kvCEa7vOgzKzo+cfjWU6YaJVN21Eq9OLA07jrR5tOKgG6J6RmO6MRlQ9h+jgu7yOp8G+dcba5CMm0sRUEAMYZkkTzavcxLyOtWXbJAjvSoTEiJXjQAiDNOscifCOQyYDtQTMgTsvCtnKieV5ZckE6MijdOT7XMjdLnBKOgxgKFLa+1eJco9CWNvedWNxxufdevOQZ02mRzniTcgpBs44Q8Z5al0Zg8neNOgAfCyDIqdq0bEJsuy6arEIXLgSLABXwmCUvSLPl2fZ5I/o1u6y4cItkUY5gIwKs2+bQOBhm4F7iO4N5oQ4ZJDs/o4GhU49rj026m7A/AVCCHsZsC9N+lzi8GdBKrLj3VYpeFmSL5iUDulYRVVvkvIz9xl+OGG+8a5YZdjn25w3+00fO9AHWbpOhk80yjFAcgx77wqGOJxtZTNlMgh0TyTKZtbnDw6ajj04D2TtfCAMpYi29NtL7KyvfG6x+nv5qxK7uXnebXVMa0Aa3FjDfmx+izXWqVRotN0gSDNIBJpxw3WvBAyI0Euz7Hru+53M0ip06LO9/pL/So242SKUq/Nrg0wqM2amxa9+VxRKN3NHpv54GwnxgD0HOdCYGVMkUcYFICUTBE6SYMWcs4LvLwQMiFk0DkaMPk6O6FKvUwltGrbqqieUeoWaOfJBoDtAzIDikLAI3hylTHcZGMjxFyEUcvRhFS2Ku4yCCN/k1+R0qapUAkVwFdWwkqIrkh3sTTZ3PccfArQi7i6MVonVin0S0MZ3aWtUvCzxNNfO1Ef9l0mZk2papjDsNMwABsTzBOSDH3zlHAcRwPhFxEyrWvKHHc5tcyNbZMQJVA3ky3zg5OseH6ySzHRRvS3UqpTpCTzIvMkZElnOMiEA+EXPgx0HZ/mVd16kSjTZclCUZZMOfHnONRG7zqJ7Jgtsjn9djLgjuxJu+hGle5Su8GJrtR1qHclWiqTzbPPPmRHDf+8EDIhZlXbS5xfKzSczS2TiAVIvl7mmVarDEXgElKDFdm0VFNoe4aV7FKdwLBqTF5Kl3V4FkYrW81SBGXLpXjwo4HQi6cGFiJ4yO/9iYwCcdSb99S5VpolmP5R/Ypaw+Uaey7nVEwSFTpDW3+fyTzV5XjeuGBkAsnt1KjsYXBKNjJqNJfN3kfSrfOC1uzRhADa/QUtvnqNOYzy7GplumyMNjJsSpVGOt9JR2vUHWQZ+a4MYkvn+DCSdFclOX1Kp7oHx9LBilTD7ZsrnVNdykvedVtLd7bClu2uJSaQZ7WKNlF0jObmkC+Msl8/QnHHQcPhFw4yaK1d+ptoEQvGofpERnTmn0HK9q/rHHt8qgNw/Qo/VTv3u/XrtbYRiATsDGcp9L3y5xfDvK0Vl2mJHwIfBpS9rVEno3R83WEHHccvGuUCyeznCKSF1UcDukd9UrCb+KN/e0X7QhUVrsKFeoRiBRnzEo0TSMQKFO8apPGAkYpPnTnPJ/WeqTtQ5VeRtkyoKXJ+9dofWmmbcEQP6t+a/PXUHZV97I0ytIDWrtOtJ3yaQmESdHfKnXe6NPsYFNBimWhJse+SiDyIBvMcWMSD4RcOBGQifblJY5zVXqOxuZ3zhqd2s+ZMnXuvfUeTaMvAxMAV63r3jbfy/GmSTUd+xkWMZZMyMdRenOWdUEw0/RRx6cB7WVgWvBwlV7U6r/M5i+J1odnv1/GlF6bDwOwUqYM8sw60To5Zk1Aa/drDp2YoxfnDPKEHDeG8UDIhZlRipsa922nv9Sr/l0vGm26syShX/2iKvU1eMo1uq/zbWyh7P+8alFley1luwELADC0+X5P8FaWbVFAc6o0uSsKBmn0142e74UrEBrlWJ/2BbAstEUMB/Vi73HTU6ETbYO5suS4cYKPEXLhRyDY9ROTzbNjDPn9jIIA3EoNY2f3+DJHmYuyR49FwWMlP3P4myhTFeplSO11mlSVegbV+kFINRdIwo+A0s4Cv0huijNmDGinJI7jBolfEXKjFQPtvlQuqA4o6F5CgByFduhFG0HvnWmL9OG7ZjJIsbn208ra12g0liGaoCjBlJds5ilVOW5E8UDIjVYmKZGQLWAbuxczoBmIDy0iaBTJREkwGiVVVV5g7OLOezyScEuyeWj6IU/Ar7X5NYdOiOo99mmWk6fGXqBSr8b8enEqQIa7MRzH9cC7RrnRSifabDqdQH4C+IIlBJsloUUg93evuEcWPMEe1xz7Uot8jyR8SyD3iuTHsjArzZJillOGr5F+zVnU+kZRa9lRR+qhtprClld9akvvapJg1It2HgU5Liz4FSE3imVHLWrw7G9wTwXsQIdFjsmwXVDmfM+tVmj0WsAmkC2S8FiOfVWwvkgMk6JXe9Vmr7pVEoxm+RyR9NzGfQgx0CNtW/za88C84G2VHjjStm5q3Dq+koHjIgcPhNwoRiAkmWYkmWZQpnSFlrzobzkD5W3eO1Wm2HTRccYLBNLtfW6U4kZmR6d2f5lKVx+LgsdMVdl32/y7Yg1TRqABHBf05ptvPvnkkwA2bNhw9tln9773tddeCy3585//bDKZnnrqqa+++ipYYjAYHnjggZFp7cjjgZAbC3pcYEXpsqJ0WWFqyze8WrvGzu1RSNlpHuWT2N6zfDhueHz++edXXHHFo48+yhi77LLL3nzzzYULF4ZWSE5OnjPn2ErT9957r6ioyGQyAfjoo48URVmxYgUAnW4s74PGAyHHnQoGSiAAoCzQEagKUJdBtFt0GSRknE8WdITUM9btQIJ6WRju/zvm0xyK1mGQYgafwpsb7TZt2nTTTTddcsklAAoLCzdt2tQjEM6ePXv27NnB35999tmrr766666FCxdec801I9nasOCBkOMGgDK1zv11s7eMwUjgM+ui3AEnZRdobKIobJfIK7n2pQYpNljZpssSyTMquxHoWhypiMKD0YbThq+FHrWx1LFVZROBDIJdRikwIeqM/q/O5MaeXbt2ff/73w/+vmjRon/961991Txy5Mj27dtffPHFrpJXXnll586dubm51113XXx8fF8HjnY8EHLcABxpe9ejXkHZjwEJKHP41gI7ADsAjV6j4WCx47ypcRcGLxZlwZxmmVTtOl2lvwYKgBJJuDvJlKIXo0/t0RXqrmzf4VJaGQSR0FTL1BhDt7UfKvUUt32q0HeAnGMlgdeOOH4xJea8wT1vLqK1tbU1NPTMIE8ImTRpEoCGhoaYmGPrdmJiYurr6/s6zxNPPLF27dqkpKTgzUWLFlFKbTbbq6++OmPGjL17947VWMgDIcedHGWBqo6drf6jGj0N+Gln8X+BnwWjYKcpKlvmClRbdRnB23HGSVZdUqPnYZ/m1otmi5zW7K1r9r4ii7Ykc06PgUyFuhs8Bz1KhywY4k2ZFrlbHhyN+opa31K0vzCcC0BFa0X7NT7t6xTzzK46Td5DKru9KwoCYDgvoD3pURtMUu8dCrlRZsaMGYLwzZo3q9W6e/duQRBef/31e++9t0dlWZb37NkDwGw2e73H9jXzer1Wa+/0tgCgquo//vGPxx9/vKvkuuuuC/5y+eWXL1iw4Lnnnvvxj388hE8ncvBAGEFYj9EkLmIcbnvXo97EmAtICCmuApb2qEnZtAB9P7REL0YFNxmude2p7HCp9FEg36eVepVf2g1bs2yLgtWcgYoy5x6N3skwG6h3Bn5v15d33Qug3nNAoT8PRkEAQIzG/t3omZJkKuiaK+RR3Iz1zK9N2QKf+iUPhGPA5s2bLZZvBn0NBkMwLn73u9/97ne/29dR6enp5eXlS5YsAVBWVpaenn7cam+++SZjbPXq1b3vIoTk5uY2NTUN9glEKr6gPlL42tpq6jwOKeHkVblT1eo9Uuz4pKj13aqO7f1PMdoRqPBrsxi7BpCA0E3ek4DKHpUFHOman8JAXYGqFl+hS6kJaM5Gb6NK3wVmAnogX2UvO/x6j1IPgDGt3PmVSrcy/A+QByxR6Vttvvj2QEXXmdsDzYz1mPguAQu8avM3twUJaO5eBwR1ksBnqY4FWVlZE0KkpPQrF8T69euffvppTdM0TXv66afXr18fLH/00Udrar7ZBfrJJ5+86qqrJOnY1RFjrLT0WBbcI0eOvP322wsWhG3DsuHGA2FE8DkchwobPpNWesXj91pwg+TTWvc3v1DWHuv0P+ZWXm/0fL+w5W23UtufY11Ki0qDEWgxsDnknkuATV15bQAA1QJ5xyqnA3Ar9QeaXylxGsrbl5Y4aFHr2xo7E+iWTVulG9r81QDcSi3DUqBbAjaN3drsrQ4pIIDWq3VqaD6aWGOGKPwZCO1acArkLYuc1p9nyo1J119/PWMsPz8/Pz9fEIRrr702WH7rrbcePnw4+HtDQ8M777wTelnJGJs5c2ZeXt6MGTPmzJmzYcOG884bsyPNvGs0/HwOx6ED9Z9JK12nOoeCO7Ea154GTwll/wP8NljCcJlCF5c6V06Lu/CkhwuEAMEhlllAHHALcDcQBSQJxMYwDbiFsSyB7BLJcxPtiwkRNeYrcXym0I+AdAAqA3AIOB+4u3uicJvGKACV+Snr3WEVp9JA1w27Pt6jvsLYzSEVfMBXJunbXbctcmqsobrVd6ZKfwmkA3sk4a5M62yeyGY8s1gsH3/88ZEjRwDk5X0zu6qxsdFoPDadOCYmprGx0W7/ZsBbEITW1tajR48GAoHs7OzQLtmxhwfCMNP8/uLCus+kM12i/eS1uYFrD1Q0egllU4Aey6HSNZbt1xz6k73yNl26JDyr0uAE9MeAZ4FzgWqdKCebJ9v1qx3+t3yqzyxb7Pp1wSw2rb4SjV0TjIKdJgPnAu8B33ytFsiHVjkKgEGKEcgO2nPF4S6z/M2nT6JpWrP3wQC1MHYVIAAVIrkqxVzQY8+mDOv8WENtk+duP/WYJGuSeQVfSsihewgMCo1tsiyHRsEgSZKC807HPB4Iw4wqSgdsPAoOnwZPmUYfBH4C9L7gjtGY/6RnMEpxdv3hNv+lGr0XSAdWiWSL3cCybYuDFeKN03sc4lM9lE3tdaZZhLzEWFcgfFsWXrXr1wEwiDEG8Us3+zdj/9N5b7ko3J1g+mbmgkDkKbHn1XT8wxH4A2NEFnTp1hlW3XEmPpjlFHPUMGYS57gxhgdCboxTNDeQCeQDO4AVIfcwYJ9ePKs/J8myLYryH61zr1WpWxLMicaJscbFJ6ivE3WEVPWYBSyQcpP0pU+bDOQCFWZJn+h/aXMAAArqSURBVBV1Vtf1XG70ijLnn13K/cBcgmqBHJ4QtbDHxZxIdBm20zP69bw5jusvHgi5MU4nWjxqCXAjcCXwMo5tUk8FcqddHyuS/mZQjNbn6AVzm79aoSplfsa0E+wjH62fUOd+UGXfDckp4xTIsxPt54hEDtB2nZDf43CRGCbaVyjU7VNbZDHZIE7huzJx3MjggZAb45LME13Kz1T6PvBH4NtAOmAl+CTOmJVuHcB08PL2bQ6/qNIbgNhW8lGd5/kc+xmuQINHcetFfYwx2yB+M+dTJ9rSLXlVrrka/TFDHsF+SdiUaZsdXMZwgswysmCWdebBPF+O4waKB0JujLPIqSlmR617BmVXMHaNIGyWyae50atPOkcmVKu/uM2XobHngjcpWxrQsg+1/BrkJ4zNAaobvfclmhKSzTO6Dok15tn0KS2+F7yK1ySbYg1n8YSfHBeZeCDkxr4EU0G0IasjsEOlPpMcZ5EvGegZmjwVGns2pMAP/IVhB9ixdC0qvajBsyxKV2+Sk7oqyYIlyTRrsK3nOG6Y8QX13LggC+YYw+QE08xTW1quUm/n4GLQVmApEJq0TFTpL5q9FT2P5Dgu4vFAyHEnpxetQFFIQTPQe31CSoCefDEGx3GRhgdCjju5ZHOeJNwCdKUnzQb29KhDcMAomUa4YRzHDR4fI+S4kzPLKekWV7VrJmVrGBIF8gFlhyj7HDijs0qDKPw23rgqnK3kOO6U8EDIcf0Sa8yzGzLdSp1Kyw1itiRMLnFeF9AmUHa6QEoF8kmWbb6O50znuFGIB0KO6y+R6G26LACUUkEQpsSs9aqNXnWHTrSYpQtOsL6e47hIxgMhx506o5Rg5FtIctwoxyfLcBzHceMaD4Qcx3HcuMYDIcdxHDeu8UDIcRzHjWs8EHIcx3HjGg+EHMdx3LjGAyHHcRw3rvFAyHEcx41rPBByHMdx4xoPhBzHcdy4xgMhx3EcN67xQMhxHMeNazwQchzHceMaD4Qcx3HcuMYDIcdxHDeu8UDIcRzHjWs8EHIcx3HjGg+EHMdx3LjGAyHHcRw3rvFAyHEcx41rPBByHMdx4xoPhH1yOByKooS7FZHC6/NRSsPdikjh9Xr5q9HF6/UyxsLdikjR2tqqaVq4W9FNVVXVE088cdNNN91333191Tl8+PAVV1yxatWqjRs3dn3uMcYeeeSR1atXX3TRRdu2bRup9obBuAuEZWVlv//97y+++OKrr776xDWdTqff5xuZVkU+n9cbaf/eYcQDYSiPx8NfjS5tra1utzvcrehmy5Yt77zzTllZ2WuvvXbcCl6vd/ny5RMnTrzzzjvfeuutX/7yl8HyJ5544r777vvpT3+6evXqs88+u6KiYgRbPaLGXSA8dOhQRUVFdHT0F198Ee62cBzHDburr776xRdfPP/88/uq8MILLyQlJd11112LFy/+61//+vjjj3u9XgCbNm3auHHjypUrN2zYsGbNmieeeGIEWz2ixl0gPPvssx9++OE1a9aEuyEcx3ERYc+ePQsWLAj+PmvWLJ/PV1pa6vf7CwsLu8oXLFiwe/fu8LVxeEnhbgDHcRw3KM3NzTU1NT0KBUGYNm1afw5vaGiYMGFC8HdCSHR0dH19vc1mY4xFR0cHy2NjY+vr64ewzRFlDAbCurq6/fv39y5fuXKlKIr9P0+tz7errGx7WRkAg8EgSUP/WllUVQT8qrUA/xrykw8tTVPFdhGEhLshEUGlquTkr8YxKlMl5xj8JDk19VAE4SQ9bVFZWdlnnTXQM+s//3zGjBmhJzebzV9//bUgCO++++7999/fo74sy19++WV/zmyxWHwh8yHcbrfVarVarQC8Xq/NZgsWBn8Zk8bg27eoqOiBBx7oXb548WKj0dj/87y7f39jYyMAQRCSkpIGFETHHr/fr9frw92KSMFfjVD81Qil0+ksFsuJ6yTMnJkwc+ZAz1x0ySUdHR2hJSaTKRgXL7/88ssvv3ygJ+ySkZHR1e3Z3NzscrkyMjLsdrvNZistLU1MTARQWlqakZFxyg8R4cZgIFyxYsWKFSsGf578/Pz8/PzBn4fjOG7w4uPj4+Pjh/CEf/3rX9etW5eenr5+/fp77723rKwsOzv7scceW7p0aVJSEoBLL7300UcfXbBggdPp/M9//vO3v/1tCB89oozBQHhiqqp2dHS43W5N09ra2iRJCvYAcBzHjUnvvPPOZZdd5vf7A4FATEzM2rVrn3nmGQA/+9nPCgoK0tPTc3Nzf/7zn8+dOzc9Pd3hcHStsrjjjjvOPvvsgoKClpaWtWvXnjXw7tzRgoy3lbA7duxYvXp1181Fixa9/vrrYWwPx3FcWCiKIkkS6Rzqbm1tbWhoyM3NDZ0PwRgrLi6OiooKdpCOVeMuEHIcx3FcqHG3jpDjOI7jQo27McJT0NzcvHPnzsrKysWLF4/P6TNvvPHGhx9+mJKSsmHDhqioqHA3J5zq6up27dpVW1v7rW99KysrK9zNCbNdu3Zt2bKlqalpypQpl19+ucFgCHeLwoYx9uKLL+7bt8/tdhcUFFx22WUDmqPOhRe/Ijy5s84668477/zVr371ySefhLstYfDQQw/dcMMNOTk527dvX7Zs2TjPOLpw4cLf//73t99++549e8LdljBrbm5et25dc3NzRkbG3//+96VLlwYCgXA3KmwURfnnP/9pMpmysrKefvrpFStW8PyrowgfIzw5SqkgCMuXL1+/fv11110X7uaMKE3TsrOzH3/88dWrV2ualp+f/6c//Wnt2rXhblfYBN8MU6ZM2bhx4wUXXBDu5oSTpmmUUlmWAXg8nsTExPfee68rI9d41tHRYbfbDx06lJubG+62cP3CrwhP7qR5Isaw0tLS2tra4LpMURRXrFgxPi+Lu4znN0MPoigGoyAASqmiKCddSD5ObNu2LSYmJjk5OdwN4fqLjxFyJ1JfXx8dHd31eZeYmFhcXBzeJnER6Lbbblu5cmU/M1uOYevWrfviiy98Pt/mzZv514JRhH+9BYB58+ZJvVxzzTXhblf4SZKkqmrXTUVReDItrof777//448/fuqpp8LdkPB79tlnd+3addddd61fv76hoSHczeH6iwdCANi+fbvay2OPPRbudoVfSkqK0+l0uVzBmzU1NbzDhwv15z//+ZFHHvnoo4/G9oLrfrLZbGlpabfeemtSUtIHH3wQ7uZw/cUDIXcimZmZ06dPf+mllwB0dHS8++675513XrgbxUWKxx9/fNOmTe+9915KSkq42xJmXq+3a+JhY2NjZWVlZmZmeJvE9R+fNXpyv/jFL7Zs2XLkyJHo6Oj4+Pj77rtv+fLl4W7UyHn77be/853vnHvuubt27SooKPj3v/8d7haF07XXXrtr167CwsLU1FS73f7UU09Nnz493I0Kj6qqqszMzIyMjLi4uGDJxo0bQ/MXjitvv/32jTfeOGfOHMbYRx99dOGFFz7yyCPhbhTXXzwQnlxpaWlbW1vXzZycHLvdHsb2jLzKyspt27YlJycvWbKEjO9N+I4cORK6Fc6kSZPG7ZwIv99/4MCB0JLs7OyYmJhwtSfsDh48WFRUJAjC1KlT+cKJ0YUHQo7jOG5c42OEHMdx3LjGAyHHcRw3rvFAyHEcx41rPBByHMdx4xoPhBzHcdy4xgMhx3EcN67xQMhxHMeNazwQchzHceMaD4Qcx3HcuMYDIcdxHDeu8UDIcRzHjWv/D4R1XRQXQ8fYAAAAAElFTkSuQmCC", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ], + "cell_type": "code", + "source": [ + "plot(; lim=extrema(test_range), aspect_ratio=1)\n", + "contourf!(\n", + " test_range,\n", + " test_range,\n", + " y_pred;\n", + " levels=1,\n", + " color=cgrad(:redsblues),\n", + " alpha=0.7,\n", + " colorbar_title=\"prediction\",\n", + ")\n", + "scatter!(X1[:, 1], X1[:, 2]; color=:red, label=\"training data: class –1\")\n", + "scatter!(X2[:, 1], X2[:, 2]; color=:blue, label=\"training data: class 1\")" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`\n",
    +    "  [31c24e10] Distributions v0.25.107\n",
    +    "  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n",
    +    "  [b1bec4e5] LIBSVM v0.8.0\n",
    +    "  [98b081ad] Literate v2.16.1\n",
    +    "  [91a5bcdd] Plots v1.40.1\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.10.0\n",
    +    "Commit 3120989f39b (2023-12-25 18:01 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.0" + }, + "kernelspec": { + "name": "julia-1.10", + "display_name": "Julia 1.10.0", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/previews/PR546/examples/train-kernel-parameters/Manifest.toml b/previews/PR546/examples/train-kernel-parameters/Manifest.toml new file mode 100644 index 000000000..f0645cc6d --- /dev/null +++ b/previews/PR546/examples/train-kernel-parameters/Manifest.toml @@ -0,0 +1,1647 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.0" +manifest_format = "2.0" +project_hash = "f3af2d5178fe96f25b295696ea2c040e29f49bbf" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "0fb305e0253fd4e833d486914367a2ee2c2e78d0" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.1" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.BangBang]] +deps = ["Compat", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires", "Setfield", "Tables"] +git-tree-sha1 = "7aa7ad1682f3d5754e3491bb59b8103cae28e3a3" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.3.40" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1f03a9fa24271160ed7e73051fba3c1a759b53f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.4.0" + +[[deps.BitFlags]] +git-tree-sha1 = "2dc09997850d68179b69dafb58ae806167a32b1b" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.8" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "4b859a208b2397a7a623a03449e4636bdb17bcf2" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.16.1+1" + +[[deps.Calculus]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" +uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" +version = "0.5.1" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "213f001d1233fd3b8ef007f50c8cab29061917d8" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.61.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "1287e3872d646eed95198457873249bd9f0caed2" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.20.1" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "59939d8a997469ee05c4b4944560a820f9ba0d73" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.4" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "67c1f244b991cad9b0aa4b7540fb758c2488b129" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.24.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.4" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.10" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.12.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.0.5+1" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "8cfa272e8bdedfa88b6aefbbca7c19f1befac519" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.3.0" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "c53fc348ca4d40d7b371e71fd52251839080cbc9" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.4" + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + + [deps.ConstructionBase.weakdeps] + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "d05d9e7b7aedff4e5b51a029dced05cfb6125781" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.2" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.16" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.Distances]] +deps = ["LinearAlgebra", "Statistics", "StatsAPI"] +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" +version = "0.10.11" +weakdeps = ["ChainRulesCore", "SparseArrays"] + + [deps.Distances.extensions] + DistancesChainRulesCoreExt = "ChainRulesCore" + DistancesSparseArraysExt = "SparseArrays" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "7c302d7a5fec5214eb8a5a4c466dcf7a51fcf169" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.107" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.DualNumbers]] +deps = ["Calculus", "NaNMath", "SpecialFunctions"] +git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" +uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" +version = "0.6.8" + +[[deps.EpollShim_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" +uuid = "2702e6a9-849d-5ed8-8c21-79e8b8f9ee43" +version = "0.0.20230411+0" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "dcb08a0d93ec0b1cdc4af184b26b591e9695423a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.10" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.5.0+0" + +[[deps.FFMPEG]] +deps = ["FFMPEG_jll"] +git-tree-sha1 = "b57e3acbe22f8484b4b5ff66a7499717fe1a9cc8" +uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" +version = "0.4.1" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "4.4.4+1" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "ffb97765602e3cbe59a0589d237bf07f245a8576" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.1" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra", "Random"] +git-tree-sha1 = "5b93957f6dcd33fc343044af3d48c215be2562f1" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.9.3" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.4" + +[[deps.Flux]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] +git-tree-sha1 = "39a9e46b4e92d5b56c0712adeb507555a2327240" +uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" +version = "0.14.11" + + [deps.Flux.extensions] + FluxAMDGPUExt = "AMDGPU" + FluxCUDAExt = "CUDA" + FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] + FluxMetalExt = "Metal" + + [deps.Flux.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Pkg", "Zlib_jll"] +git-tree-sha1 = "21efd19106a55620a188615da6d3d06cd7f6ee03" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.93+0" + +[[deps.Formatting]] +deps = ["Printf"] +git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" +uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" +version = "0.4.2" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d8db6a5a2fe1381c1ea4ef2cab7c69c2de7f9ea0" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.1+0" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "aa31987c2ba8704e23c6c8ba8a4f769d5d7e4f91" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.10+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9a68d75d466ccc1218d0552a8e1631151c569545" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.5" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GLFW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libglvnd_jll", "Xorg_libXcursor_jll", "Xorg_libXi_jll", "Xorg_libXinerama_jll", "Xorg_libXrandr_jll"] +git-tree-sha1 = "ff38ba61beff76b8f4acad8ab0c97ef73bb670cb" +uuid = "0656b61e-2033-5cc2-a64a-77c0f6c09b89" +version = "3.3.9+0" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "10.0.2" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GR]] +deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Preferences", "Printf", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "3458564589be207fa6a77dbbf8b97674c9836aab" +uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" +version = "0.73.2" + +[[deps.GR_jll]] +deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "77f81da2964cc9fa7c0127f941e8bce37f7f1d70" +uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" +version = "0.73.2+0" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "e94c92c7bf4819685eb80186d51c43e71d4afa17" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.76.5+0" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "abbbb9ec3afd783a7cbd82ef01dcd088ea051398" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.10.1" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HypergeometricFunctions]] +deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "f218fe3736ddf977e0e772bc9a586b2383da2685" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.23" + +[[deps.IOCapture]] +deps = ["Logging", "Random"] +git-tree-sha1 = "8b72179abc660bfab5e28472e019392b97d0985c" +uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89" +version = "0.2.4" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools", "Test"] +git-tree-sha1 = "5d8c5713f38f7bc029e26627b687710ba406d0dd" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.12" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.InverseFunctions]] +deps = ["Test"] +git-tree-sha1 = "68772f49f54b479fa88ace904f6127f0a3bb2e46" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.12" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLFzf]] +deps = ["Pipe", "REPL", "Random", "fzf_jll"] +git-tree-sha1 = "a53ebe394b71470c7f97c2e7e170d51df21b17af" +uuid = "1019f520-868f-41f5-a6de-eb00f4b6a39c" +version = "0.1.7" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60b1194df0a3298f460063de985eae7b01bc011a" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.1+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.16" + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + + [deps.KernelAbstractions.weakdeps] + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + +[[deps.KernelFunctions]] +deps = ["ChainRulesCore", "Compat", "CompositionsBase", "Distances", "FillArrays", "Functors", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Random", "Requires", "SpecialFunctions", "Statistics", "StatsBase", "TensorCore", "Test", "ZygoteRules"] +git-tree-sha1 = "f870a3a6695b22a737c5914de0c57eb4bc746917" +repo-rev = "935cce54d1862bb49f4274c044a3aa7450a5b3bf" +repo-url = "/home/runner/work/KernelFunctions.jl/KernelFunctions.jl" +uuid = "ec8451be-7e33-11e9-00cf-bbf324bd1392" +version = "0.10.60" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f6250b16881adf048549549fba48b1161acdac8c" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.1+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "bf36f528eec6634efc60d7ec062008f171071434" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "3.0.0+1" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "cb4619f7353fc62a1a22ffa3d7ed9791cfb47ad8" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "6.4.2" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "98eaee04d96d973e79c25d49167668c5c8fb50e2" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.27+1" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d986ce2d884d49126836ea94ed5bfb0f12679713" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.7+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e5b909bcf985c5e2605737d2ce278ed791b89be6" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.1+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.Latexify]] +deps = ["Formatting", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Printf", "Requires"] +git-tree-sha1 = "f428ae552340899a935973270b8d98e5a31c49fe" +uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" +version = "0.16.1" + + [deps.Latexify.extensions] + DataFramesExt = "DataFrames" + SymEngineExt = "SymEngine" + + [deps.Latexify.weakdeps] + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + SymEngine = "123dc426-2d89-5057-bbad-38513e3affd8" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll", "Pkg"] +git-tree-sha1 = "64613c82a59c120435c067c2b809fc61cf5166ae" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.7+0" + +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "6f73d1dd803986947b2c750138528a999a6c7733" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.6.0+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c333716e46366857753e273ce6a69ee0945a6db9" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.42.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9c30530bf0effd46e15e0fdcf2b8636e78cbbd73" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.35.0+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "2da088d113af58221c52828a80378e16be7d037a" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.5.1+1" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "7f3efec06033682db852f8b3bc3c1d2b0a0ab066" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.36.0+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.Literate]] +deps = ["Base64", "IOCapture", "JSON", "REPL"] +git-tree-sha1 = "bad26f1ccd99c553886ec0725e99a509589dcd11" +uuid = "98b081ad-f1c9-55d3-8b20-4c87d4299306" +version = "2.16.1" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.26" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "c1dd6d7978c12545b4179fb6153b9250c96b0075" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.0.3" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.4" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "c067a280ddc25f196b5e7df3877c6b226d390aaf" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.9" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.Measures]] +git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" +uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e" +version = "0.3.2" + +[[deps.MicroCollections]] +deps = ["BangBang", "InitialValues", "Setfield"] +git-tree-sha1 = "629afd7d10dbc6935ec59b32daeb33bc4460a42e" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.1.4" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.1.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "d2811b435d2f571bdfdfa644bb806a66b458e186" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.11" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OneHotArrays]] +deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] +git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" +uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" +version = "0.2.5" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+2" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "51901a49222b09e3743c65b8847687ae5fc78eb2" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.4.1" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.13+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "34205b1204cc83c43cd9cfe53ffbd3b310f6e8c5" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.1" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.ParameterHandling]] +deps = ["ChainRulesCore", "Compat", "InverseFunctions", "IterTools", "LinearAlgebra", "LogExpFunctions", "SparseArrays", "Test"] +git-tree-sha1 = "11bb9d2aaa7113031456cfe8f100e7a587e18ebf" +uuid = "2412ca09-6db7-441c-8e3a-88d5709968c5" +version = "0.4.10" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pipe]] +git-tree-sha1 = "6842804e7867b115ca9de748a0cf6b364523c16d" +uuid = "b98c9c47-44ae-5843-9183-064241ee97a0" +version = "1.3.0" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "64779bc4c9784fee475689a1752ef4d5747c5e87" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.42.2+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PlotThemes]] +deps = ["PlotUtils", "Statistics"] +git-tree-sha1 = "1f03a2d339f42dca4a4da149c7e15e9b896ad899" +uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a" +version = "3.1.0" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "862942baf5663da528f66d24996eb6da85218e76" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.0" + +[[deps.Plots]] +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] +git-tree-sha1 = "c4fa93d7d66acad8f6f4ff439576da9d2e890ee0" +uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" +version = "1.40.1" + + [deps.Plots.extensions] + FileIOExt = "FileIO" + GeometryBasicsExt = "GeometryBasics" + IJuliaExt = "IJulia" + ImageInTerminalExt = "ImageInTerminal" + UnitfulExt = "Unitful" + + [deps.Plots.weakdeps] + FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" + GeometryBasics = "5c1252a2-5f33-56bf-86c9-59e7332b4326" + IJulia = "7073ff75-c697-5162-941a-fcdaad2a7d2a" + ImageInTerminal = "d8c32880-2388-543b-8c61-d9f865259254" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.0" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.1" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.Qt6Base_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] +git-tree-sha1 = "37b7bb7aabf9a085e0044307e1717436117f2b3b" +uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" +version = "6.5.3+1" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "9b23c31e76e333e6fb4c1595ae6afa74966a729e" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.9.4" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.RecipesBase]] +deps = ["PrecompileTools"] +git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" +uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" +version = "1.3.4" + +[[deps.RecipesPipeline]] +deps = ["Dates", "NaNMath", "PlotUtils", "PrecompileTools", "RecipesBase"] +git-tree-sha1 = "45cf9fd0ca5839d06ef333c8201714e888486342" +uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" +version = "0.6.12" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.0+0" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "874e8867b33a00e784c8a7e4b60afe9e037b74e1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.1.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "e2cfc4012a19088254b3950b85c3c1d8882d864d" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.3.1" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.2" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.2" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "1d77abd07f617c4868c33d4f5b9e1dbb2643c9cf" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.2" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.0" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + +[[deps.StructArrays]] +deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] +git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.17" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.11.1" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] + +[[deps.Transducers]] +deps = ["Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "Setfield", "SplittablesBase", "Tables"] +git-tree-sha1 = "3064e780dbb8a9296ebb3af8f440f787bb5332af" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.80" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.URIs]] +git-tree-sha1 = "67db6cc7b3821e19ebe75791a9dd19c9b1188f2b" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.5.1" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "3c793be6df9dd77a0cf49d80984ef9ff996948fa" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.19.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + +[[deps.UnitfulLatexify]] +deps = ["LaTeXStrings", "Latexify", "Unitful"] +git-tree-sha1 = "e2d817cc500e960fdbafcf988ac8436ba3208bfd" +uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" +version = "1.6.3" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "323e3d0acf5e78a56dfae7bd8928c989b4f3083e" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.1.3" + +[[deps.Unzip]] +git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" +uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" +version = "0.2.0" + +[[deps.Vulkan_Loader_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Wayland_jll", "Xorg_libX11_jll", "Xorg_libXrandr_jll", "xkbcommon_jll"] +git-tree-sha1 = "2f0486047a07670caad3a81a075d2e518acc5c59" +uuid = "a44049a8-05dd-5a78-86c9-5fde0876e88c" +version = "1.3.243+0" + +[[deps.Wayland_jll]] +deps = ["Artifacts", "EpollShim_jll", "Expat_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "7558e29847e99bc3f04d6569e82d0f5c54460703" +uuid = "a2964d1f-97da-50d4-b82a-358c7fce9d89" +version = "1.21.0+1" + +[[deps.Wayland_protocols_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "93f43ab61b16ddfb2fd3bb13b3ce241cafb0e6c9" +uuid = "2381bf8a-dfd0-557d-9999-79630e7b1b91" +version = "1.31.0+0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.12.2+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "Pkg", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "91844873c4085240b95e795f692c4cec4d805f8a" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.34+0" + +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "522b8414d40c4cbbab8dee346ac3a09f9768f25d" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.4.5+0" + +[[deps.Xorg_libICE_jll]] +deps = ["Libdl", "Pkg"] +git-tree-sha1 = "e5becd4411063bdcac16be8b66fc2f9f6f1e8fe5" +uuid = "f67eecfb-183a-506d-b269-f58e52b52d7c" +version = "1.0.10+1" + +[[deps.Xorg_libSM_jll]] +deps = ["Libdl", "Pkg", "Xorg_libICE_jll"] +git-tree-sha1 = "4a9d9e4c180e1e8119b5ffc224a7b59d3a7f7e18" +uuid = "c834827a-8449-5923-a945-d239c165b7dd" +version = "1.2.3+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXcursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXfixes_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "12e0eb3bc634fa2080c1c37fccf56f7c22989afd" +uuid = "935fb764-8cf2-53bf-bb30-45bb1f8bf724" +version = "1.2.0+4" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "b7c0aa8c376b31e4852b360222848637f481f8c3" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.4+4" + +[[deps.Xorg_libXfixes_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "0e0dc7431e7a0587559f9294aeec269471c991a4" +uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" +version = "5.0.3+4" + +[[deps.Xorg_libXi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] +git-tree-sha1 = "89b52bc2160aadc84d707093930ef0bffa641246" +uuid = "a51aa0fd-4e3c-5386-b890-e753decda492" +version = "1.7.10+4" + +[[deps.Xorg_libXinerama_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll"] +git-tree-sha1 = "26be8b1c342929259317d8b9f7b53bf2bb73b123" +uuid = "d1454406-59df-5ea1-beac-c340f2130bc3" +version = "1.1.4+4" + +[[deps.Xorg_libXrandr_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll"] +git-tree-sha1 = "34cea83cb726fb58f325887bf0612c6b3fb17631" +uuid = "ec84b674-ba8e-5d96-8ba1-2a689ba10484" +version = "1.5.2+4" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libX11_jll"] +git-tree-sha1 = "19560f30fd49f4d4efbe7002a1037f8c43d43b96" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.10+4" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "b4bfde5d5b652e22b9c790ad00af08b6d042b97d" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.15.0+0" + +[[deps.Xorg_libxkbfile_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "730eeca102434283c50ccf7d1ecdadf521a765a4" +uuid = "cc61e674-0454-545c-8b26-ed2c68acab7a" +version = "1.1.2+0" + +[[deps.Xorg_xcb_util_cursor_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] +git-tree-sha1 = "04341cb870f29dcd5e39055f895c39d016e18ccd" +uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" +version = "0.1.4+0" + +[[deps.Xorg_xcb_util_image_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "0fab0a40349ba1cba2c1da699243396ff8e94b97" +uuid = "12413925-8142-5f55-bb0e-6d7ca50bb09b" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_libxcb_jll"] +git-tree-sha1 = "e7fd7b2881fa2eaa72717420894d3938177862d1" +uuid = "2def613f-5ad1-5310-b15b-b15d46f528f5" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_keysyms_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "d1151e2c45a544f32441a567d1690e701ec89b00" +uuid = "975044d2-76e6-5fbe-bf08-97ce7c6574c7" +version = "0.4.0+1" + +[[deps.Xorg_xcb_util_renderutil_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "dfd7a8f38d4613b6a575253b3174dd991ca6183e" +uuid = "0d47668e-0667-5a69-a72c-f761630bfb7e" +version = "0.3.9+1" + +[[deps.Xorg_xcb_util_wm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Xorg_xcb_util_jll"] +git-tree-sha1 = "e78d10aab01a4a154142c5006ed44fd9e8e31b67" +uuid = "c22f9ab0-d5fe-5066-847c-f4bb1cd4e361" +version = "0.4.1+1" + +[[deps.Xorg_xkbcomp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxkbfile_jll"] +git-tree-sha1 = "330f955bc41bb8f5270a369c473fc4a5a4e4d3cb" +uuid = "35661453-b289-5fab-8a00-3d9160c6a3a4" +version = "1.4.6+0" + +[[deps.Xorg_xkeyboard_config_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xkbcomp_jll"] +git-tree-sha1 = "691634e5453ad362044e2ad653e79f3ee3bb98c3" +uuid = "33bec58e-1273-512f-9401-5d533626f822" +version = "2.39.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "49ce682769cd5de6c72dcf1b94ed7790cd08974c" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.5+0" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "4ddb4470e47b0094c93055a3bcae799165cc68f1" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.69" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.eudev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "gperf_jll"] +git-tree-sha1 = "431b678a28ebb559d224c0b6b6d01afce87c51ba" +uuid = "35ca27e7-8b34-5b7f-bca9-bdc33f59eb06" +version = "3.2.9+0" + +[[deps.fzf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a68c9655fbe6dfcab3d972808f1aafec151ce3f8" +uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" +version = "0.43.0+0" + +[[deps.gperf_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3516a5630f741c9eecb3720b1ec9d8edc3ecc033" +uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" +version = "3.1.1+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "3a2ea60308f0996d26f1e5354e10c24e9ef905d4" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.4.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libevdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "141fe65dc3efabb0b1d5ba74e91f6ad26f84cc22" +uuid = "2db6ffa8-e38f-5e21-84af-90c45d0032cc" +version = "1.11.0+0" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libinput_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "eudev_jll", "libevdev_jll", "mtdev_jll"] +git-tree-sha1 = "ad50e5b90f222cfe78aa3d5183a20a12de1322ce" +uuid = "36db933b-70db-51c0-b978-0f229ee0e533" +version = "1.18.0+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "93284c28274d9e75218a416c65ec49d0e0fcdf3d" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.40+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "b910cb81ef3fe6e78bf6acee440bda86fd6ae00c" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+1" + +[[deps.mtdev_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "814e154bdb7be91d78b6802843f76b6ece642f11" +uuid = "009596ad-96f7-51b1-9f1b-5ce2d5e8a71e" +version = "1.1.6+0" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" + +[[deps.xkbcommon_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg", "Wayland_jll", "Wayland_protocols_jll", "Xorg_libxcb_jll", "Xorg_xkeyboard_config_jll"] +git-tree-sha1 = "9c304562909ab2bab0262639bd4f444d7bc2be37" +uuid = "d8fb68d0-12a3-5cfd-a85a-d49703b185fd" +version = "1.4.1+1" diff --git a/previews/PR546/examples/train-kernel-parameters/index.html b/previews/PR546/examples/train-kernel-parameters/index.html new file mode 100644 index 000000000..56038fe26 --- /dev/null +++ b/previews/PR546/examples/train-kernel-parameters/index.html @@ -0,0 +1,385 @@ + +Train Kernel Parameters · KernelFunctions.jl

    Train Kernel Parameters

    You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.


    Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl. All options are functionally identical, but differ a little in readability, dependencies, and computational cost.

    We load KernelFunctions and some other packages. Note that while we use Zygote for automatic differentiation and Flux.optimise for optimization, you should be able to replace them with your favourite autodiff framework or optimizer.

    using KernelFunctions
    +using LinearAlgebra
    +using Distributions
    +using Plots
    +using BenchmarkTools
    +using Flux
    +using Flux: Optimise
    +using Zygote
    +using Random: seed!
    +seed!(42);

    Data Generation

    We generate a toy dataset in 1 dimension:

    xmin, xmax = -3, 3  # Bounds of the data
    +N = 50 # Number of samples
    +x_train = rand(Uniform(xmin, xmax), N)  # sample the inputs
    +σ = 0.1
    +y_train = sinc.(x_train) + randn(N) * σ  # evaluate a function and add some noise
    +x_test = range(xmin - 0.1, xmax + 0.1; length=300)

    Plot the data

    scatter(x_train, y_train; label="data")
    +plot!(x_test, sinc; label="true function")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Manual Approach

    The first option is to rebuild the parametrized kernel from a vector of parameters in each evaluation of the cost function. This is similar to the approach taken in Stheno.jl.

    To train the kernel parameters via Zygote.jl, we need to create a function creating a kernel from an array. A simple way to ensure that the kernel parameters are positive is to optimize over the logarithm of the parameters.

    function kernel_creator(θ)
    +    return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘
    +           ScaleTransform(exp(θ[3]))
    +end

    From theory we know the prediction for a test set x given the kernel parameters and normalization constant:

    function f(x, x_train, y_train, θ)
    +    k = kernel_creator(θ[1:3])
    +    return kernelmatrix(k, x, x_train) *
    +           ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \ y_train)
    +end

    Let's look at our prediction. With starting parameters p0 (picked so we get the right local minimum for demonstration) we get:

    p0 = [1.1, 0.1, 0.01, 0.001]
    +θ = log.(p0)
    +ŷ = f(x_test, x_train, y_train, θ)
    +scatter(x_train, y_train; label="data")
    +plot!(x_test, sinc; label="true function")
    +plot!(x_test, ŷ; label="prediction")
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    We define the following loss:

    function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, θ)
    +    return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)
    +end

    The loss with our starting point:

    loss(θ)
    2.613933959118708

    Computational cost for one step:

    @benchmark let
    +    θ = log.(p0)
    +    opt = Optimise.ADAGrad(0.5)
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +end
    BenchmarkTools.Trial: 6317 samples with 1 evaluation.
    + Range (min … max):  665.711 μs …   6.697 ms  ┊ GC (min … max): 0.00% … 15.71%
    + Time  (median):     716.696 μs               ┊ GC (median):    0.00%
    + Time  (mean ± σ):   788.492 μs ± 263.185 μs  ┊ GC (mean ± σ):  5.96% ± 11.37%
    +
    +   ▅█▆▅▃▁                                        ▁▁▁▁           ▁
    +  ▇██████▇▅▄▄▅▁▁▁▁▅▅▅▁▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▃▃▄▆▇██████▆▆▅▅▆▅▆▇ █
    +  666 μs        Histogram: log(frequency) by time       1.79 ms <
    +
    + Memory estimate: 2.98 MiB, allocs estimate: 1563.

    Training the model

    Setting an initial value and initializing the optimizer:

    θ = log.(p0) # Initial vector
    +opt = Optimise.ADAGrad(0.5)

    Optimize

    anim = Animation()
    +for i in 1:15
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +    scatter(
    +        x_train, y_train; lab="data", title="i = $(i), Loss = $(round(loss(θ), digits = 4))"
    +    )
    +    plot!(x_test, sinc; lab="true function")
    +    plot!(x_test, f(x_test, x_train, y_train, θ); lab="Prediction", lw=3.0)
    +    frame(anim)
    +end
    +gif(anim, "train-kernel-param.gif"; show_msg=false, fps=15);

    Final loss

    loss(θ)
    0.5241118228076058

    Using ParameterHandling.jl

    Alternatively, we can use the ParameterHandling.jl package to handle the requirement that all kernel parameters should be positive. The package also allows arbitrarily nesting named tuples that make the parameters more human readable, without having to remember their position in a flat vector.

    using ParameterHandling
    +
    +raw_initial_θ = (
    +    k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)
    +)
    +
    +flat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)
    4-element Vector{Float64}:
    +  0.09531016625781467
    + -2.3025852420056685
    + -4.6051716761053205
    + -6.907770180254354

    We define a few relevant functions and note that compared to the previous kernel_creator function, we do not need explicit exps.

    function kernel_creator(θ)
    +    return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)
    +end
    +
    +function f(x, x_train, y_train, θ)
    +    k = kernel_creator(θ)
    +    return kernelmatrix(k, x, x_train) *
    +           ((kernelmatrix(k, x_train) + θ.noise_var * I) \ y_train)
    +end
    +
    +function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, θ)
    +    return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)
    +end
    +
    +initial_θ = ParameterHandling.value(raw_initial_θ)

    The loss at the initial parameter values:

    (loss ∘ unflatten)(flat_θ)
    2.613933959118708

    Cost per step

    @benchmark let
    +    θ = flat_θ[:]
    +    opt = Optimise.ADAGrad(0.5)
    +    grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]
    +    Optimise.update!(opt, θ, grads)
    +end
    BenchmarkTools.Trial: 5553 samples with 1 evaluation.
    + Range (min … max):  778.712 μs …   4.454 ms  ┊ GC (min … max): 0.00% … 20.99%
    + Time  (median):     850.135 μs               ┊ GC (median):    0.00%
    + Time  (mean ± σ):   897.355 μs ± 240.571 μs  ┊ GC (mean ± σ):  5.15% ± 10.66%
    +
    +  ▆▇▇██▆▅▂                                               ▁▁▂▁▁▁ ▂
    +  ██████████▆▆▆▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆███████ █
    +  779 μs        Histogram: log(frequency) by time       1.94 ms <
    +
    + Memory estimate: 3.08 MiB, allocs estimate: 2228.

    Training the model

    Optimize

    opt = Optimise.ADAGrad(0.5)
    +for i in 1:15
    +    grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]
    +    Optimise.update!(opt, flat_θ, grads)
    +end

    Final loss

    (loss ∘ unflatten)(flat_θ)
    0.524117624126251

    Flux.destructure

    If we don't want to write an explicit function to construct the kernel, we can alternatively use the Flux.destructure function. Again, we need to ensure that the parameters are positive. Note that the exp function is now part of the loss function, instead of part of the kernel construction.

    We could also use ParameterHandling.jl here. To do so, one would remove the exps from the loss function below and call loss ∘ unflatten as above.

    θ = [1.1, 0.1, 0.01, 0.001]
    +
    +kernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])
    +
    +params, kernelc = Flux.destructure(kernel);

    This returns the trainable params of the kernel and a function to reconstruct the kernel.

    kernelc(params)
    Sum of 2 kernels:
    +	Squared Exponential Kernel (metric = Distances.Euclidean(0.0))
    +			- σ² = 1.1
    +	Matern 3/2 Kernel (metric = Distances.Euclidean(0.0))
    +			- σ² = 0.1
    +	- Scale Transform (s = 0.01)

    From theory we know the prediction for a test set x given the kernel parameters and normalization constant

    function f(x, x_train, y_train, θ)
    +    k = kernelc(θ[1:3])
    +    return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \ y_train)
    +end
    +
    +function loss(θ)
    +    ŷ = f(x_train, x_train, y_train, exp.(θ))
    +    return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)
    +end

    Cost for one step

    @benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)
    +    grads = only((Zygote.gradient(loss, θt)))
    +    Optimise.update!(optt, θt, grads)
    +end
    BenchmarkTools.Trial: 6625 samples with 1 evaluation.
    + Range (min … max):  640.804 μs …   6.100 ms  ┊ GC (min … max): 0.00% … 15.07%
    + Time  (median):     710.014 μs               ┊ GC (median):    0.00%
    + Time  (mean ± σ):   751.745 μs ± 232.447 μs  ┊ GC (mean ± σ):  5.13% ± 10.60%
    +
    +  ▆▆▆█▇▅▄▁                                                 ▁▁   ▂
    +  ████████▇▆▅▆▃▄▄▆▇▇▆▅▅▄▄▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██████ █
    +  641 μs        Histogram: log(frequency) by time       1.79 ms <
    +
    + Memory estimate: 2.98 MiB, allocs estimate: 1558.

    Training the model

    The loss at our initial parameter values:

    θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector
    +loss(θ)
    2.613933959118708

    Initialize optimizer

    opt = Optimise.ADAGrad(0.5)

    Optimize

    for i in 1:15
    +    grads = only((Zygote.gradient(loss, θ)))
    +    Optimise.update!(opt, θ, grads)
    +end

    Final loss

    loss(θ)
    0.5241118228076058

    +
    Package and system information
    +
    +Package information (click to expand) +
    +Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`
    +  [6e4b80f9] BenchmarkTools v1.4.0
    +  [31c24e10] Distributions v0.25.107
    +  [587475ba] Flux v0.14.11
    +  [f6369f11] ForwardDiff v0.10.36
    +  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`
    +  [98b081ad] Literate v2.16.1
    +  [2412ca09] ParameterHandling v0.4.10
    +  [91a5bcdd] Plots v1.40.1
    +  [e88e6eb3] Zygote v0.6.69
    +  [37e2e46d] LinearAlgebra
    +
    +To reproduce this notebook's package environment, you can + +download the full Manifest.toml. +
    +
    +System information (click to expand) +
    +Julia Version 1.10.0
    +Commit 3120989f39b (2023-12-25 18:01 UTC)
    +Build Info:
    +  Official https://julialang.org/ release
    +Platform Info:
    +  OS: Linux (x86_64-linux-gnu)
    +  CPU: 4 × AMD EPYC 7763 64-Core Processor
    +  WORD_SIZE: 64
    +  LIBM: libopenlibm
    +  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)
    +  Threads: 1 on 4 virtual cores
    +Environment:
    +  JULIA_DEBUG = Documenter
    +  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src
    +
    +

    This page was generated using Literate.jl.

    diff --git a/previews/PR546/examples/train-kernel-parameters/notebook.ipynb b/previews/PR546/examples/train-kernel-parameters/notebook.ipynb new file mode 100644 index 000000000..25ec26152 --- /dev/null +++ b/previews/PR546/examples/train-kernel-parameters/notebook.ipynb @@ -0,0 +1,1234 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Train Kernel Parameters\n", + "\n", + "*You are seeing the\n", + "notebook output generated by\n", + "[Literate.jl](https://github.com/fredrikekre/Literate.jl) from the\n", + "[Julia source file](https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/train-kernel-parameters/script.jl).\n", + "The rendered HTML can be viewed [in the docs](https://juliagaussianprocesses.github.io/KernelFunctions.jl/dev/examples/train-kernel-parameters/).*" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl.\n", + "All options are functionally identical, but differ a little in readability, dependencies, and computational cost." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We load KernelFunctions and some other packages. Note that while we use `Zygote` for automatic differentiation and `Flux.optimise` for optimization, you should be able to replace them with your favourite autodiff framework or optimizer." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "using KernelFunctions\n", + "using LinearAlgebra\n", + "using Distributions\n", + "using Plots\n", + "using BenchmarkTools\n", + "using Flux\n", + "using Flux: Optimise\n", + "using Zygote\n", + "using Random: seed!\n", + "seed!(42);" + ], + "metadata": {}, + "execution_count": 1 + }, + { + "cell_type": "markdown", + "source": [ + "## Data Generation\n", + "We generate a toy dataset in 1 dimension:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "xmin, xmax = -3, 3 # Bounds of the data\n", + "N = 50 # Number of samples\n", + "x_train = rand(Uniform(xmin, xmax), N) # sample the inputs\n", + "σ = 0.1\n", + "y_train = sinc.(x_train) + randn(N) * σ # evaluate a function and add some noise\n", + "x_test = range(xmin - 0.1, xmax + 0.1; length=300)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 2 + }, + { + "cell_type": "markdown", + "source": [ + "Plot the data" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=2}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ], + "cell_type": "code", + "source": [ + "scatter(x_train, y_train; label=\"data\")\n", + "plot!(x_test, sinc; label=\"true function\")" + ], + "metadata": {}, + "execution_count": 3 + }, + { + "cell_type": "markdown", + "source": [ + "## Manual Approach\n", + "The first option is to rebuild the parametrized kernel from a vector of parameters\n", + "in each evaluation of the cost function. This is similar to the approach taken in\n", + "[Stheno.jl](https://github.com/JuliaGaussianProcesses/Stheno.jl)." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "To train the kernel parameters via [Zygote.jl](https://github.com/FluxML/Zygote.jl),\n", + "we need to create a function creating a kernel from an array.\n", + "A simple way to ensure that the kernel parameters are positive\n", + "is to optimize over the logarithm of the parameters." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_creator(θ)\n", + " return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘\n", + " ScaleTransform(exp(θ[3]))\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 4 + }, + { + "cell_type": "markdown", + "source": [ + "From theory we know the prediction for a test set x given\n", + "the kernel parameters and normalization constant:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function f(x, x_train, y_train, θ)\n", + " k = kernel_creator(θ[1:3])\n", + " return kernelmatrix(k, x, x_train) *\n", + " ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \\ y_train)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 5 + }, + { + "cell_type": "markdown", + "source": [ + "Let's look at our prediction.\n", + "With starting parameters `p0` (picked so we get the right local\n", + "minimum for demonstration) we get:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Plot{Plots.GRBackend() n=3}", + "image/png": "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", + "text/html": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ], + "image/svg+xml": [ + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + " \n", + " \n", + " \n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "cell_type": "code", + "source": [ + "p0 = [1.1, 0.1, 0.01, 0.001]\n", + "θ = log.(p0)\n", + "ŷ = f(x_test, x_train, y_train, θ)\n", + "scatter(x_train, y_train; label=\"data\")\n", + "plot!(x_test, sinc; label=\"true function\")\n", + "plot!(x_test, ŷ; label=\"prediction\")" + ], + "metadata": {}, + "execution_count": 6 + }, + { + "cell_type": "markdown", + "source": [ + "We define the following loss:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, θ)\n", + " return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 7 + }, + { + "cell_type": "markdown", + "source": [ + "The loss with our starting point:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 8 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 8 + }, + { + "cell_type": "markdown", + "source": [ + "Computational cost for one step:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 6531 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m662.996 μs\u001b[22m\u001b[39m … \u001b[35m 3.591 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 28.21%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m722.808 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m762.758 μs\u001b[22m\u001b[39m ± \u001b[32m208.401 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m4.66% ± 10.18%\n\n \u001b[39m▃\u001b[39m▆\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m▆\u001b[32m▄\u001b[39m\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m \u001b[39m▂\n \u001b[39m█\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m▇\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▄\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▄\u001b[39m▄\u001b[39m▅\u001b[39m▄\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▆\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 663 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 1.83 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m2.98 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m1559\u001b[39m." + }, + "metadata": {}, + "execution_count": 9 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let\n", + " θ = log.(p0)\n", + " opt = Optimise.ADAGrad(0.5)\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 9 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Setting an initial value and initializing the optimizer:" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "θ = log.(p0) # Initial vector\n", + "opt = Optimise.ADAGrad(0.5)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 10 + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "anim = Animation()\n", + "for i in 1:15\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + " scatter(\n", + " x_train, y_train; lab=\"data\", title=\"i = $(i), Loss = $(round(loss(θ), digits = 4))\"\n", + " )\n", + " plot!(x_test, sinc; lab=\"true function\")\n", + " plot!(x_test, f(x_test, x_train, y_train, θ); lab=\"Prediction\", lw=3.0)\n", + " frame(anim)\n", + "end\n", + "gif(anim, \"train-kernel-param.gif\"; show_msg=false, fps=15);\n", + "nothing; #hide" + ], + "metadata": {}, + "execution_count": 11 + }, + { + "cell_type": "markdown", + "source": [ + "![](train-kernel-param.gif)" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.5241118228076058" + }, + "metadata": {}, + "execution_count": 12 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 12 + }, + { + "cell_type": "markdown", + "source": [ + "## Using ParameterHandling.jl\n", + "Alternatively, we can use the [ParameterHandling.jl](https://github.com/invenia/ParameterHandling.jl) package\n", + "to handle the requirement that all kernel parameters should be positive.\n", + "The package also allows arbitrarily nesting named tuples that make the parameters\n", + "more human readable, without having to remember their position in a flat vector." + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "4-element Vector{Float64}:\n 0.09531016625781467\n -2.3025852420056685\n -4.6051716761053205\n -6.907770180254354" + }, + "metadata": {}, + "execution_count": 13 + } + ], + "cell_type": "code", + "source": [ + "using ParameterHandling\n", + "\n", + "raw_initial_θ = (\n", + " k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)\n", + ")\n", + "\n", + "flat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)\n", + "flat_θ #hide" + ], + "metadata": {}, + "execution_count": 13 + }, + { + "cell_type": "markdown", + "source": [ + "We define a few relevant functions and note that compared to the previous `kernel_creator` function, we do not need explicit `exp`s." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function kernel_creator(θ)\n", + " return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)\n", + "end\n", + "nothing #hide\n", + "\n", + "function f(x, x_train, y_train, θ)\n", + " k = kernel_creator(θ)\n", + " return kernelmatrix(k, x, x_train) *\n", + " ((kernelmatrix(k, x_train) + θ.noise_var * I) \\ y_train)\n", + "end\n", + "nothing #hide\n", + "\n", + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, θ)\n", + " return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)\n", + "end\n", + "nothing #hide\n", + "\n", + "initial_θ = ParameterHandling.value(raw_initial_θ)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 14 + }, + { + "cell_type": "markdown", + "source": [ + "The loss at the initial parameter values:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 15 + } + ], + "cell_type": "code", + "source": [ + "(loss ∘ unflatten)(flat_θ)" + ], + "metadata": {}, + "execution_count": 15 + }, + { + "cell_type": "markdown", + "source": [ + "Cost per step" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 5491 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m796.084 μs\u001b[22m\u001b[39m … \u001b[35m 7.547 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 17.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m862.438 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m907.465 μs\u001b[22m\u001b[39m ± \u001b[32m251.531 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m4.32% ± 9.73%\n\n \u001b[39m▃\u001b[39m▆\u001b[39m█\u001b[34m▇\u001b[39m\u001b[39m▅\u001b[32m▃\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[39m█\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m▆\u001b[39m▆\u001b[39m▅\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▅\u001b[39m▇\u001b[39m▇\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 796 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 2.19 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m3.08 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m2228\u001b[39m." + }, + "metadata": {}, + "execution_count": 16 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let\n", + " θ = flat_θ[:]\n", + " opt = Optimise.ADAGrad(0.5)\n", + " grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]\n", + " Optimise.update!(opt, θ, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 16 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "opt = Optimise.ADAGrad(0.5)\n", + "for i in 1:15\n", + " grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]\n", + " Optimise.update!(opt, flat_θ, grads)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 17 + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.524117624126251" + }, + "metadata": {}, + "execution_count": 18 + } + ], + "cell_type": "code", + "source": [ + "(loss ∘ unflatten)(flat_θ)" + ], + "metadata": {}, + "execution_count": 18 + }, + { + "cell_type": "markdown", + "source": [ + "## Flux.destructure\n", + "If we don't want to write an explicit function to construct the kernel, we can alternatively use the `Flux.destructure` function.\n", + "Again, we need to ensure that the parameters are positive. Note that the `exp` function is now part of the loss function, instead of part of the kernel construction." + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "We could also use ParameterHandling.jl here.\n", + "To do so, one would remove the `exp`s from the loss function below and call `loss ∘ unflatten` as above." + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "θ = [1.1, 0.1, 0.01, 0.001]\n", + "\n", + "kernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])\n", + "\n", + "params, kernelc = Flux.destructure(kernel);" + ], + "metadata": {}, + "execution_count": 19 + }, + { + "cell_type": "markdown", + "source": [ + "This returns the trainable `params` of the kernel and a function to reconstruct the kernel." + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "Sum of 2 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 1.1\n\tMatern 3/2 Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 0.1\n\t- Scale Transform (s = 0.01)" + }, + "metadata": {}, + "execution_count": 20 + } + ], + "cell_type": "code", + "source": [ + "kernelc(params)" + ], + "metadata": {}, + "execution_count": 20 + }, + { + "cell_type": "markdown", + "source": [ + "From theory we know the prediction for a test set x given\n", + "the kernel parameters and normalization constant" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "function f(x, x_train, y_train, θ)\n", + " k = kernelc(θ[1:3])\n", + " return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \\ y_train)\n", + "end\n", + "nothing #hide\n", + "\n", + "function loss(θ)\n", + " ŷ = f(x_train, x_train, y_train, exp.(θ))\n", + " return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 21 + }, + { + "cell_type": "markdown", + "source": [ + "Cost for one step" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "BenchmarkTools.Trial: 6468 samples with 1 evaluation.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m670.089 μs\u001b[22m\u001b[39m … \u001b[35m 5.787 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.00% … 25.89%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m726.770 μs \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.00%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m769.954 μs\u001b[22m\u001b[39m ± \u001b[32m231.905 μs\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m4.44% ± 9.75%\n\n \u001b[39m▄\u001b[39m▆\u001b[39m█\u001b[34m▆\u001b[39m\u001b[32m▄\u001b[39m\u001b[39m▁\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m▁\n \u001b[39m█\u001b[39m█\u001b[39m█\u001b[34m█\u001b[39m\u001b[32m█\u001b[39m\u001b[39m█\u001b[39m▇\u001b[39m▆\u001b[39m▄\u001b[39m▆\u001b[39m▄\u001b[39m▄\u001b[39m▅\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m▅\u001b[39m▅\u001b[39m▄\u001b[39m▁\u001b[39m▃\u001b[39m▃\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▃\u001b[39m▄\u001b[39m▅\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m█\u001b[39m \u001b[39m█\n 670 μs\u001b[90m \u001b[39m\u001b[90mHistogram: \u001b[39m\u001b[90m\u001b[1mlog(\u001b[22m\u001b[39m\u001b[90mfrequency\u001b[39m\u001b[90m\u001b[1m)\u001b[22m\u001b[39m\u001b[90m by time\u001b[39m 2.03 ms \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m2.98 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m1558\u001b[39m." + }, + "metadata": {}, + "execution_count": 22 + } + ], + "cell_type": "code", + "source": [ + "@benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)\n", + " grads = only((Zygote.gradient(loss, θt)))\n", + " Optimise.update!(optt, θt, grads)\n", + "end" + ], + "metadata": {}, + "execution_count": 22 + }, + { + "cell_type": "markdown", + "source": [ + "### Training the model" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "The loss at our initial parameter values:" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "2.613933959118708" + }, + "metadata": {}, + "execution_count": 23 + } + ], + "cell_type": "code", + "source": [ + "θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector\n", + "loss(θ)" + ], + "metadata": {}, + "execution_count": 23 + }, + { + "cell_type": "markdown", + "source": [ + "Initialize optimizer" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "opt = Optimise.ADAGrad(0.5)\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 24 + }, + { + "cell_type": "markdown", + "source": [ + "Optimize" + ], + "metadata": {} + }, + { + "outputs": [], + "cell_type": "code", + "source": [ + "for i in 1:15\n", + " grads = only((Zygote.gradient(loss, θ)))\n", + " Optimise.update!(opt, θ, grads)\n", + "end\n", + "nothing #hide" + ], + "metadata": {}, + "execution_count": 25 + }, + { + "cell_type": "markdown", + "source": [ + "Final loss" + ], + "metadata": {} + }, + { + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": "0.5241118228076058" + }, + "metadata": {}, + "execution_count": 26 + } + ], + "cell_type": "code", + "source": [ + "loss(θ)" + ], + "metadata": {}, + "execution_count": 26 + }, + { + "cell_type": "markdown", + "source": [ + "
    \n", + "
    Package and system information
    \n", + "
    \n", + "Package information (click to expand)\n", + "
    \n",
    +    "Status `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`\n",
    +    "  [6e4b80f9] BenchmarkTools v1.4.0\n",
    +    "  [31c24e10] Distributions v0.25.107\n",
    +    "  [587475ba] Flux v0.14.11\n",
    +    "  [f6369f11] ForwardDiff v0.10.36\n",
    +    "  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n",
    +    "  [98b081ad] Literate v2.16.1\n",
    +    "  [2412ca09] ParameterHandling v0.4.10\n",
    +    "  [91a5bcdd] Plots v1.40.1\n",
    +    "  [e88e6eb3] Zygote v0.6.69\n",
    +    "  [37e2e46d] LinearAlgebra\n",
    +    "
    \n", + "To reproduce this notebook's package environment, you can\n", + "\n", + "download the full Manifest.toml.\n", + "
    \n", + "
    \n", + "System information (click to expand)\n", + "
    \n",
    +    "Julia Version 1.10.0\n",
    +    "Commit 3120989f39b (2023-12-25 18:01 UTC)\n",
    +    "Build Info:\n",
    +    "  Official https://julialang.org/ release\n",
    +    "Platform Info:\n",
    +    "  OS: Linux (x86_64-linux-gnu)\n",
    +    "  CPU: 4 × AMD EPYC 7763 64-Core Processor\n",
    +    "  WORD_SIZE: 64\n",
    +    "  LIBM: libopenlibm\n",
    +    "  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n",
    +    "  Threads: 1 on 4 virtual cores\n",
    +    "Environment:\n",
    +    "  JULIA_DEBUG = Documenter\n",
    +    "  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n",
    +    "
    \n", + "
    " + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "---\n", + "\n", + "*This notebook was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*" + ], + "metadata": {} + } + ], + "nbformat_minor": 3, + "metadata": { + "language_info": { + "file_extension": ".jl", + "mimetype": "application/julia", + "name": "julia", + "version": "1.10.0" + }, + "kernelspec": { + "name": "julia-1.10", + "display_name": "Julia 1.10.0", + "language": "julia" + } + }, + "nbformat": 4 +} diff --git a/previews/PR546/examples/train-kernel-parameters/train-kernel-param.gif b/previews/PR546/examples/train-kernel-parameters/train-kernel-param.gif new file mode 100644 index 000000000..ea5e43afa Binary files /dev/null and b/previews/PR546/examples/train-kernel-parameters/train-kernel-param.gif differ diff --git a/previews/PR546/index.html b/previews/PR546/index.html new file mode 100644 index 000000000..c7ce69651 --- /dev/null +++ b/previews/PR546/index.html @@ -0,0 +1,2 @@ + +Home · KernelFunctions.jl

    KernelFunctions.jl

    KernelFunctions.jl is a general purpose kernel package. It provides a flexible framework for creating kernel functions and manipulating them, and an extensive collection of implementations. The main goals of this package are:

    • Flexibility: operations between kernels should be fluid and easy without breaking, with a user-friendly API.
    • Plug-and-play: being model-agnostic; including the kernels before/after other steps should be straightforward. To interoperate well with generic packages for handling parameters like ParameterHandling.jl and FluxML's Functors.jl.
    • Automatic Differentiation compatibility: all kernel functions which ought to be differentiable using AD packages like ForwardDiff.jl or Zygote.jl should be.

    This package replaces the now-defunct MLKernels.jl. It incorporates lots of excellent existing work from packages such as GaussianProcesses.jl, and is used in downstream packages such as AbstractGPs.jl, ApproximateGPs.jl, Stheno.jl, and AugmentedGaussianProcesses.jl.

    See the User guide for a brief introduction.

    diff --git a/previews/PR546/kernels/index.html b/previews/PR546/kernels/index.html new file mode 100644 index 000000000..1fa09c971 --- /dev/null +++ b/previews/PR546/kernels/index.html @@ -0,0 +1,97 @@ + +Kernel Functions · KernelFunctions.jl

    Kernel Functions

    Base Kernels

    These are the basic kernels without any transformation of the data. They are the building blocks of KernelFunctions.

    Constant Kernels

    KernelFunctions.WhiteKernelType
    WhiteKernel()

    White noise kernel.

    Definition

    For inputs $x, x'$, the white noise kernel is defined as

    \[k(x, x') = \delta(x, x').\]

    source

    Cosine Kernel

    KernelFunctions.CosineKernelType
    CosineKernel(; metric=Euclidean())

    Cosine kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the cosine kernel is defined as

    \[k(x, x') = \cos(\pi d(x, x')).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    source

    Exponential Kernels

    KernelFunctions.ExponentialKernelType
    ExponentialKernel(; metric=Euclidean())

    Exponential kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the exponential kernel is defined as

    \[k(x, x') = \exp\big(- d(x, x')\big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: GammaExponentialKernel

    source
    KernelFunctions.GibbsKernelType
    GibbsKernel(; lengthscale)

    Gibbs Kernel with lengthscale function lengthscale.

    The Gibbs kernel is a non-stationary generalisation of the squared exponential kernel. The lengthscale parameter $l$ becomes a function of position $l(x)$.

    Definition

    For inputs $x, x'$, the Gibbs kernel with lengthscale function $l(\cdot)$ is defined as

    \[k(x, x'; l) = \sqrt{\left(\frac{2 l(x) l(x')}{l(x)^2 + l(x')^2}\right)} +\quad \exp{\left(-\frac{(x - x')^2}{l(x)^2 + l(x')^2}\right)}.\]

    For a constant function $l \equiv c$, one recovers the SqExponentialKernel with lengthscale c.

    References

    Mark N. Gibbs. "Bayesian Gaussian Processes for Regression and Classication." PhD thesis, 1997

    Christopher J. Paciorek and Mark J. Schervish. "Nonstationary Covariance Functions for Gaussian Process Regression". NeurIPS, 2003

    Sami Remes, Markus Heinonen, Samuel Kaski. "Non-Stationary Spectral Kernels". arXiV:1705.08736, 2017

    Sami Remes, Markus Heinonen, Samuel Kaski. "Neural Non-Stationary Spectral Kernel". arXiv:1811.10978, 2018

    source
    KernelFunctions.SqExponentialKernelType
    SqExponentialKernel(; metric=Euclidean())

    Squared exponential kernel with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the squared exponential kernel is defined as

    \[k(x, x') = \exp\bigg(- \frac{d(x, x')^2}{2}\bigg).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: GammaExponentialKernel

    source
    KernelFunctions.GammaExponentialKernelType
    GammaExponentialKernel(; γ::Real=1.0, metric=Euclidean())

    γ-exponential kernel with respect to the metric and with parameter γ.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the γ-exponential kernel[RW] with parameter $\gamma \in (0, 2]$ is defined as

    \[k(x, x'; \gamma) = \exp\big(- d(x, x')^{\gamma}\big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: ExponentialKernel, SqExponentialKernel

    source

    Exponentiated Kernel

    KernelFunctions.ExponentiatedKernelType
    ExponentiatedKernel()

    Exponentiated kernel.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the exponentiated kernel is defined as

    \[k(x, x') = \exp(x^\top x').\]

    source

    Fractional Brownian Motion Kernel

    KernelFunctions.FBMKernelType
    FBMKernel(; h::Real=0.5)

    Fractional Brownian motion kernel with Hurst index h.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the fractional Brownian motion kernel with Hurst index $h \in [0,1]$ is defined as

    \[k(x, x'; h) = \frac{\|x\|_2^{2h} + \|x'\|_2^{2h} - \|x - x'\|^{2h}}{2}.\]

    source

    Gabor Kernel

    KernelFunctions.gaborkernelFunction
    gaborkernel(;
    +    sqexponential_transform=IdentityTransform(), cosine_tranform=IdentityTransform()
    +)

    Construct a Gabor kernel with transformations sqexponential_transform and cosine_transform of the inputs of the underlying squared exponential and cosine kernel, respectively.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the Gabor kernel with transformations $f$ and $g$ of the inputs to the squared exponential and cosine kernel, respectively, is defined as

    \[k(x, x'; f, g) = \exp\bigg(- \frac{\| f(x) - f(x')\|_2^2}{2}\bigg) + \cos\big(\pi \|g(x) - g(x')\|_2 \big).\]

    source

    Matérn Kernels

    KernelFunctions.MaternKernelType
    MaternKernel(; ν::Real=1.5, metric=Euclidean())

    Matérn kernel of order ν with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $\nu > 0$ is defined as

    \[k(x,x';\nu) = \frac{2^{1-\nu}}{\Gamma(\nu)}\big(\sqrt{2\nu} d(x, x')\big) K_\nu\big(\sqrt{2\nu} d(x, x')\big),\]

    where $\Gamma$ is the Gamma function and $K_{\nu}$ is the modified Bessel function of the second kind of order $\nu$. By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    A Gaussian process with a Matérn kernel is $\lceil \nu \rceil - 1$-times differentiable in the mean-square sense.

    Note

    Differentiation with respect to the order ν is not currently supported.

    See also: Matern12Kernel, Matern32Kernel, Matern52Kernel

    source
    KernelFunctions.Matern32KernelType
    Matern32Kernel(; metric=Euclidean())

    Matérn kernel of order $3/2$ with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $3/2$ is given by

    \[k(x, x') = \big(1 + \sqrt{3} d(x, x') \big) \exp\big(- \sqrt{3} d(x, x') \big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: MaternKernel

    source
    KernelFunctions.Matern52KernelType
    Matern52Kernel(; metric=Euclidean())

    Matérn kernel of order $5/2$ with respect to the metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the Matérn kernel of order $5/2$ is given by

    \[k(x, x') = \bigg(1 + \sqrt{5} d(x, x') + \frac{5}{3} d(x, x')^2\bigg) + \exp\big(- \sqrt{5} d(x, x') \big).\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    See also: MaternKernel

    source

    Neural Network Kernel

    KernelFunctions.NeuralNetworkKernelType
    NeuralNetworkKernel()

    Kernel of a Gaussian process obtained as the limit of a Bayesian neural network with a single hidden layer as the number of units goes to infinity.

    Definition

    Consider the single-layer Bayesian neural network $f \colon \mathbb{R}^d \to \mathbb{R}$ with $h$ hidden units defined by

    \[f(x; b, v, u) = b + \sqrt{\frac{\pi}{2}} \sum_{i=1}^{h} v_i \mathrm{erf}\big(u_i^\top x\big),\]

    where $\mathrm{erf}$ is the error function, and with prior distributions

    \[\begin{aligned} +b &\sim \mathcal{N}(0, \sigma_b^2),\\ +v &\sim \mathcal{N}(0, \sigma_v^2 \mathrm{I}_{h}/h),\\ +u_i &\sim \mathcal{N}(0, \mathrm{I}_{d}/2) \qquad (i = 1,\ldots,h). +\end{aligned}\]

    As $h \to \infty$, the neural network converges to the Gaussian process

    \[g(\cdot) \sim \mathcal{GP}\big(0, \sigma_b^2 + \sigma_v^2 k(\cdot, \cdot)\big),\]

    where the neural network kernel $k$ is given by

    \[k(x, x') = \arcsin\left(\frac{x^\top x'}{\sqrt{\big(1 + \|x\|^2_2\big) \big(1 + \|x'\|_2^2\big)}}\right)\]

    for inputs $x, x' \in \mathbb{R}^d$.[CW]

    source

    Periodic Kernel

    KernelFunctions.PeriodicKernelType
    PeriodicKernel(; r::AbstractVector=ones(Float64, 1))

    Periodic kernel with parameter r.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the periodic kernel with parameter $r_i > 0$ is defined[DM] as

    \[k(x, x'; r) = \exp\bigg(- \frac{1}{2} \sum_{i=1}^d \bigg(\frac{\sin\big(\pi(x_i - x'_i)\big)}{r_i}\bigg)^2\bigg).\]

    source

    Piecewise Polynomial Kernel

    KernelFunctions.PiecewisePolynomialKernelType
    PiecewisePolynomialKernel(; dim::Int, degree::Int=0, metric=Euclidean())
    +PiecewisePolynomialKernel{degree}(; dim::Int, metric=Euclidean())

    Piecewise polynomial kernel of degree degree for inputs of dimension dim with support in the unit ball with respect to the metric.

    Definition

    For inputs $x, x'$ of dimension $m$ and metric $d(\cdot, \cdot)$, the piecewise polynomial kernel of degree $v \in \{0,1,2,3\}$ is defined as

    \[k(x, x'; v) = \max(1 - d(x, x'), 0)^{\alpha(v,m)} f_{v,m}(d(x, x')),\]

    where $\alpha(v, m) = \lfloor \frac{m}{2}\rfloor + 2v + 1$ and $f_{v,m}$ are polynomials of degree $v$ given by

    \[\begin{aligned} +f_{0,m}(r) &= 1, \\ +f_{1,m}(r) &= 1 + (j + 1) r, \\ +f_{2,m}(r) &= 1 + (j + 2) r + \big((j^2 + 4j + 3) / 3\big) r^2, \\ +f_{3,m}(r) &= 1 + (j + 3) r + \big((6 j^2 + 36j + 45) / 15\big) r^2 + \big((j^3 + 9 j^2 + 23j + 15) / 15\big) r^3, +\end{aligned}\]

    where $j = \lfloor \frac{m}{2}\rfloor + v + 1$. By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The kernel is $2v$ times continuously differentiable and the corresponding Gaussian process is hence $v$ times mean-square differentiable.

    source

    Polynomial Kernels

    KernelFunctions.LinearKernelType
    LinearKernel(; c::Real=0.0)

    Linear kernel with constant offset c.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the linear kernel with constant offset $c \geq 0$ is defined as

    \[k(x, x'; c) = x^\top x' + c.\]

    See also: PolynomialKernel

    source
    KernelFunctions.PolynomialKernelType
    PolynomialKernel(; degree::Int=2, c::Real=0.0)

    Polynomial kernel of degree degree with constant offset c.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the polynomial kernel of degree $\nu \in \mathbb{N}$ with constant offset $c \geq 0$ is defined as

    \[k(x, x'; c, \nu) = (x^\top x' + c)^\nu.\]

    See also: LinearKernel

    source

    Rational Kernels

    KernelFunctions.RationalKernelType
    RationalKernel(; α::Real=2.0, metric=Euclidean())

    Rational kernel with shape parameter α and given metric.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the rational kernel with shape parameter $\alpha > 0$ is defined as

    \[k(x, x'; \alpha) = \bigg(1 + \frac{d(x, x')}{\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The ExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: GammaRationalKernel

    source
    KernelFunctions.RationalQuadraticKernelType
    RationalQuadraticKernel(; α::Real=2.0, metric=Euclidean())

    Rational-quadratic kernel with respect to the metric and with shape parameter α.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the rational-quadratic kernel with shape parameter $\alpha > 0$ is defined as

    \[k(x, x'; \alpha) = \bigg(1 + \frac{d(x, x')^2}{2\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The SqExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: GammaRationalKernel

    source
    KernelFunctions.GammaRationalKernelType
    GammaRationalKernel(; α::Real=2.0, γ::Real=1.0, metric=Euclidean())

    γ-rational kernel with respect to the metric with shape parameters α and γ.

    Definition

    For inputs $x, x'$ and metric $d(\cdot, \cdot)$, the γ-rational kernel with shape parameters $\alpha > 0$ and $\gamma \in (0, 2]$ is defined as

    \[k(x, x'; \alpha, \gamma) = \bigg(1 + \frac{d(x, x')^{\gamma}}{\alpha}\bigg)^{-\alpha}.\]

    By default, $d$ is the Euclidean metric $d(x, x') = \|x - x'\|_2$.

    The GammaExponentialKernel is recovered in the limit as $\alpha \to \infty$.

    See also: RationalKernel, RationalQuadraticKernel

    source

    Spectral Mixture Kernels

    KernelFunctions.spectral_mixture_kernelFunction
    spectral_mixture_kernel(
    +    h::Kernel=SqExponentialKernel(),
    +    αs::AbstractVector{<:Real},
    +    γs::AbstractMatrix{<:Real},
    +    ωs::AbstractMatrix{<:Real},
    +)

    where αs are the weights of dimension (A, ), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.

    h is the kernel, which defaults to SqExponentialKernel if not specified.

    Warning

    If you want to make sure that the constructor is type-stable, you should provide StaticArrays arguments: αs as a StaticVector, γs and ωs as StaticMatrix.

    Generalised Spectral Mixture kernel function. This family of functions is dense in the family of stationary real-valued kernels with respect to the pointwise convergence.[1]

    \[ κ(x, y) = αs' (h(-(γs' * t)^2) .* cos(π * ωs' * t), t = x - y\]

    References:

    [1] Generalized Spectral Kernels, by Yves-Laurent Kom Samo and Stephen J. Roberts
    +[2] SM: Gaussian Process Kernels for Pattern Discovery and Extrapolation,
    +        ICML, 2013, by Andrew Gordon Wilson and Ryan Prescott Adams,
    +[3] Covariance kernels for fast automatic pattern discovery and extrapolation
    +    with Gaussian processes, Andrew Gordon Wilson, PhD Thesis, January 2014.
    +    http://www.cs.cmu.edu/~andrewgw/andrewgwthesis.pdf
    +[4] http://www.cs.cmu.edu/~andrewgw/pattern/.
    source
    KernelFunctions.spectral_mixture_product_kernelFunction
    spectral_mixture_product_kernel(
    +    h::Kernel=SqExponentialKernel(),
    +    αs::AbstractMatrix{<:Real},
    +    γs::AbstractMatrix{<:Real},
    +    ωs::AbstractMatrix{<:Real},
    +)

    where αs are the weights of dimension (D, A), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.

    Spectral Mixture Product Kernel. With enough components A, the SMP kernel can model any product kernel to arbitrary precision, and is flexible even with a small number of components [1]

    h is the kernel, which defaults to SqExponentialKernel if not specified.

    \[ κ(x, y) = Πᵢ₌₁ᴷ Σ(αsᵢᵀ .* (h(-(γsᵢᵀ * tᵢ)²) .* cos(ωsᵢᵀ * tᵢ))), tᵢ = xᵢ - yᵢ\]

    References:

    [1] GPatt: Fast Multidimensional Pattern Extrapolation with GPs,
    +    arXiv 1310.5288, 2013, by Andrew Gordon Wilson, Elad Gilboa,
    +    Arye Nehorai and John P. Cunningham
    source

    Wiener Kernel

    KernelFunctions.WienerKernelType
    WienerKernel(; i::Int=0)
    +WienerKernel{i}()

    The i-times integrated Wiener process kernel function.

    Definition

    For inputs $x, x' \in \mathbb{R}^d$, the $i$-times integrated Wiener process kernel with $i \in \{-1, 0, 1, 2, 3\}$ is defined[SDH] as

    \[k_i(x, x') = \begin{cases} + \delta(x, x') & \text{if } i=-1,\\ + \min\big(\|x\|_2, \|x'\|_2\big) & \text{if } i=0,\\ + a_{i1}^{-1} \min\big(\|x\|_2, \|x'\|_2\big)^{2i + 1} + + a_{i2}^{-1} \|x - x'\|_2 r_i\big(\|x\|_2, \|x'\|_2\big) \min\big(\|x\|_2, \|x'\|_2\big)^{i + 1} + & \text{otherwise}, +\end{cases}\]

    where the coefficients $a$ are given by

    \[a = \begin{bmatrix} +3 & 2 \\ +20 & 12 \\ +252 & 720 +\end{bmatrix}\]

    and the functions $r_i$ are defined as

    \[\begin{aligned} +r_1(t, t') &= 1,\\ +r_2(t, t') &= t + t' - \frac{\min(t, t')}{2},\\ +r_3(t, t') &= 5 \max(t, t')^2 + 2 tt' + 3 \min(t, t')^2. +\end{aligned}\]

    The WhiteKernel is recovered for $i = -1$.

    source

    Composite Kernels

    The modular design of KernelFunctions uses base kernels as building blocks for more complex kernels. There are a variety of composite kernels implemented, including those which transform the inputs to a wrapped kernel to implement length scales, scale the variance of a kernel, and sum or multiply collections of kernels together.

    KernelFunctions.TransformedKernelType
    TransformedKernel(k::Kernel, t::Transform)

    Kernel derived from k for which inputs are transformed via a Transform t.

    The preferred way to create kernels with input transformations is to use the composition operator or its alias compose instead of TransformedKernel directly since this allows optimized implementations for specific kernels and transformations.

    See also:

    source
    Base.:∘Method
    kernel ∘ transform
    +∘(kernel, transform)
    +compose(kernel, transform)

    Compose a kernel with a transformation transform of its inputs.

    The prefix forms support chains of multiple transformations: ∘(kernel, transform1, transform2) = kernel ∘ transform1 ∘ transform2.

    Definition

    For inputs $x, x'$, the transformed kernel $\widetilde{k}$ derived from kernel $k$ by input transformation $t$ is defined as

    \[\widetilde{k}(x, x'; k, t) = k\big(t(x), t(x')\big).\]

    Examples

    julia> (SqExponentialKernel() ∘ ScaleTransform(0.5))(0, 2) == exp(-0.5)
    +true
    +
    +julia> ∘(ExponentialKernel(), ScaleTransform(2), ScaleTransform(0.5))(1, 2) == exp(-1)
    +true

    See also: TransformedKernel

    source
    KernelFunctions.ScaledKernelType
    ScaledKernel(k::Kernel, σ²::Real=1.0)

    Scaled kernel derived from k by multiplication with variance σ².

    Definition

    For inputs $x, x'$, the scaled kernel $\widetilde{k}$ derived from kernel $k$ by multiplication with variance $\sigma^2 > 0$ is defined as

    \[\widetilde{k}(x, x'; k, \sigma^2) = \sigma^2 k(x, x').\]

    source
    KernelFunctions.KernelSumType
    KernelSum <: Kernel

    Create a sum of kernels. One can also use the operator +.

    There are various ways in which you create a KernelSum:

    The simplest way to specify a KernelSum would be to use the overloaded + operator. This is equivalent to creating a KernelSum by specifying the kernels as the arguments to the constructor.

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);
    +
    +julia> (k = k1 + k2) == KernelSum(k1, k2)
    +true
    +
    +julia> kernelmatrix(k1 + k2, X) == kernelmatrix(k1, X) .+ kernelmatrix(k2, X)
    +true
    +
    +julia> kernelmatrix(k, X) == kernelmatrix(k1 + k2, X)
    +true

    You could also specify a KernelSum by providing a Tuple or a Vector of the kernels to be summed. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.

    julia> KernelSum((k1, k2)) == k1 + k2
    +true
    +
    +julia> KernelSum([k1, k2]) == KernelSum((k1, k2)) == k1 + k2
    +true
    source
    KernelFunctions.KernelProductType
    KernelProduct <: Kernel

    Create a product of kernels. One can also use the overloaded operator *.

    There are various ways in which you create a KernelProduct:

    The simplest way to specify a KernelProduct would be to use the overloaded * operator. This is equivalent to creating a KernelProduct by specifying the kernels as the arguments to the constructor.

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);
    +
    +julia> (k = k1 * k2) == KernelProduct(k1, k2)
    +true
    +
    +julia> kernelmatrix(k1 * k2, X) == kernelmatrix(k1, X) .* kernelmatrix(k2, X)
    +true
    +
    +julia> kernelmatrix(k, X) == kernelmatrix(k1 * k2, X)
    +true

    You could also specify a KernelProduct by providing a Tuple or a Vector of the kernels to be multiplied. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.

    julia> KernelProduct((k1, k2)) == k1 * k2
    +true
    +
    +julia> KernelProduct([k1, k2]) == KernelProduct((k1, k2)) == k1 * k2
    +true
    source
    KernelFunctions.KernelTensorProductType
    KernelTensorProduct

    Tensor product of kernels.

    Definition

    For inputs $x = (x_1, \ldots, x_n)$ and $x' = (x'_1, \ldots, x'_n)$, the tensor product of kernels $k_1, \ldots, k_n$ is defined as

    \[k(x, x'; k_1, \ldots, k_n) = \Big(\bigotimes_{i=1}^n k_i\Big)(x, x') = \prod_{i=1}^n k_i(x_i, x'_i).\]

    Construction

    The simplest way to specify a KernelTensorProduct is to use the overloaded tensor operator or its alias (can be typed by \otimes<tab>).

    julia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5, 2);
    +
    +julia> kernelmatrix(k1 ⊗ k2, RowVecs(X)) == kernelmatrix(k1, X[:, 1]) .* kernelmatrix(k2, X[:, 2])
    +true

    You can also specify a KernelTensorProduct by providing kernels as individual arguments or as an iterable data structure such as a Tuple or a Vector. Using a tuple or individual arguments guarantees that KernelTensorProduct is concretely typed but might lead to large compilation times if the number of kernels is large.

    julia> KernelTensorProduct(k1, k2) == k1 ⊗ k2
    +true
    +
    +julia> KernelTensorProduct((k1, k2)) == k1 ⊗ k2
    +true
    +
    +julia> KernelTensorProduct([k1, k2]) == k1 ⊗ k2
    +true
    source
    KernelFunctions.NormalizedKernelType
    NormalizedKernel(k::Kernel)

    A normalized kernel derived from k.

    Definition

    For inputs $x, x'$, the normalized kernel $\widetilde{k}$ derived from kernel $k$ is defined as

    \[\widetilde{k}(x, x'; k) = \frac{k(x, x')}{\sqrt{k(x, x) k(x', x')}}.\]

    source

    Multi-output Kernels

    Kernelfunctions implements multi-output kernels as scalar kernels on an extended output domain. For more details on this read the section on inputs for multi-output GPs.

    For a function $f(x) \rightarrow y$ denote the inputs as $x, x'$, such that we compute the covariance between output components $y_{p}$ and $y_{p'}$. The total number of outputs is $m$.

    KernelFunctions.IndependentMOKernelType
    IndependentMOKernel(k::Kernel)

    Kernel for multiple independent outputs with kernel k each.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel $\widetilde{k}$ for independent outputs with kernel $k$ each is defined as

    \[\widetilde{k}\big((x, p), (x', p')\big) = \begin{cases} + k(x, x') & \text{if } p = p', \\ + 0 & \text{otherwise}. +\end{cases}\]

    Mathematically, it is equivalent to a matrix-valued kernel defined as

    \[\widetilde{K}(x, x') = \mathrm{diag}\big(k(x, x'), \ldots, k(x, x')\big) \in \mathbb{R}^{m \times m},\]

    where $m$ is the number of outputs.

    source
    KernelFunctions.LatentFactorMOKernelType
    LatentFactorMOKernel(g::AbstractVector{<:Kernel}, e::MOKernel, A::AbstractMatrix)

    Kernel associated with the semiparametric latent factor model.

    Definition

    For inputs $x, x'$ and output dimensions $p_x, p_{x'}'$, the kernel is defined as[STJ]

    \[k\big((x, p_x), (x, p_{x'})\big) = \sum^{Q}_{q=1} A_{p_xq}g_q(x, x')A_{p_{x'}q} + + e\big((x, p_x), (x', p_{x'})\big),\]

    where $g_1, \ldots, g_Q$ are $Q$ kernels, one for each latent process, $e$ is a multi-output kernel for $m$ outputs, and $A$ is a matrix of weights for the kernels of size $m \times Q$.

    source
    KernelFunctions.IntrinsicCoregionMOKernelType
    IntrinsicCoregionMOKernel(; kernel::Kernel, B::AbstractMatrix)

    Kernel associated with the intrinsic coregionalization model.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel is defined as[ARL]

    \[k\big((x, p), (x', p'); B, \tilde{k}\big) = B_{p, p'} \tilde{k}\big(x, x'\big),\]

    where $B$ is a positive semidefinite matrix of size $m \times m$, with $m$ being the number of outputs, and $\tilde{k}$ is a scalar-valued kernel shared by the latent processes.

    source
    KernelFunctions.LinearMixingModelKernelType
    LinearMixingModelKernel(k::Kernel, H::AbstractMatrix)
    +LinearMixingModelKernel(Tk::AbstractVector{<:Kernel},Th::AbstractMatrix)

    Kernel associated with the linear mixing model, taking a vector of Q kernels and a Q × m mixing matrix H for a function with m outputs. Also accepts a single kernel k for use across all Q basis vectors.

    Definition

    For inputs $x, x'$ and output dimensions $p, p'$, the kernel is defined as[BPTHST]

    \[k\big((x, p), (x, p')\big) = H_{:,p}K(x, x')H_{:,p'}\]

    where $K(x, x') = Diag(k_1(x, x'), ..., k_Q(x, x'))$ with zero off-diagonal entries. $H_{:,p}$ is the $p$-th column (p-th output) of $H \in \mathbb{R}^{Q \times m}$ representing $Q$ basis vectors for the $m$ dimensional output space of $f$. $k_1, \ldots, k_Q$ are $Q$ kernels, one for each latent process, $H$ is a mixing matrix of $Q$ basis vectors spanning the output space.

    source
    diff --git a/previews/PR546/metrics/index.html b/previews/PR546/metrics/index.html new file mode 100644 index 000000000..822eb93a0 --- /dev/null +++ b/previews/PR546/metrics/index.html @@ -0,0 +1,13 @@ + +Metrics · KernelFunctions.jl

    Metrics

    SimpleKernel implementations rely on Distances.jl for efficiently computing the pairwise matrix. This requires a distance measure or metric, such as the commonly used SqEuclidean and Euclidean.

    The metric used by a given kernel type is specified as

    KernelFunctions.metric(::CustomKernel) = SqEuclidean()

    However, there are kernels that can be implemented efficiently using "metrics" that do not respect all the definitions expected by Distances.jl. For this reason, KernelFunctions.jl provides additional "metrics" such as DotProduct ($\langle x, y \rangle$) and Delta ($\delta(x,y)$).

    Adding a new metric

    If you want to create a new "metric" just implement the following:

    struct Delta <: Distances.PreMetric
    +end
    +
    +@inline function Distances._evaluate(::Delta,a::AbstractVector{T},b::AbstractVector{T}) where {T}
    +    @boundscheck if length(a) != length(b)
    +        throw(DimensionMismatch("first array has length $(length(a)) which does not match the length of the second, $(length(b))."))
    +    end
    +    return a==b
    +end
    +
    +@inline (dist::Delta)(a::AbstractArray,b::AbstractArray) = Distances._evaluate(dist,a,b)
    +@inline (dist::Delta)(a::Number,b::Number) = a==b
    diff --git a/previews/PR546/search/index.html b/previews/PR546/search/index.html new file mode 100644 index 000000000..a0ffab3c3 --- /dev/null +++ b/previews/PR546/search/index.html @@ -0,0 +1,2 @@ + +Search · KernelFunctions.jl

    Loading search...

      diff --git a/previews/PR546/search_index.js b/previews/PR546/search_index.js new file mode 100644 index 000000000..1032b324d --- /dev/null +++ b/previews/PR546/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"create_kernel/#Custom-Kernels","page":"Custom Kernels","title":"Custom Kernels","text":"","category":"section"},{"location":"create_kernel/#Creating-your-own-kernel","page":"Custom Kernels","title":"Creating your own kernel","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions.jl contains the most popular kernels already but you might want to make your own!","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Here are a few ways depending on how complicated your kernel is:","category":"page"},{"location":"create_kernel/#SimpleKernel-for-kernel-functions-depending-on-a-metric","page":"Custom Kernels","title":"SimpleKernel for kernel functions depending on a metric","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If your kernel function is of the form k(x, y) = f(d(x, y)) where d(x, y) is a PreMetric, you can construct your custom kernel by defining kappa and metric for your kernel. Here is for example how one can define the SqExponentialKernel again:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"struct MyKernel <: KernelFunctions.SimpleKernel end\n\nKernelFunctions.kappa(::MyKernel, d2::Real) = exp(-d2)\nKernelFunctions.metric(::MyKernel) = SqEuclidean()","category":"page"},{"location":"create_kernel/#Kernel-for-more-complex-kernels","page":"Custom Kernels","title":"Kernel for more complex kernels","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If your kernel does not satisfy such a representation, all you need to do is define (k::MyKernel)(x, y) and inherit from Kernel. For example, we recreate here the NeuralNetworkKernel:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"struct MyKernel <: KernelFunctions.Kernel end\n\n(::MyKernel)(x, y) = asin(dot(x, y) / sqrt((1 + sum(abs2, x)) * (1 + sum(abs2, y))))","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Note that the fallback implementation of the base Kernel evaluation does not use Distances.jl and can therefore be a bit slower.","category":"page"},{"location":"create_kernel/#Additional-Options","page":"Custom Kernels","title":"Additional Options","text":"","category":"section"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"Finally there are additional functions you can define to bring in more features:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions.iskroncompatible(k::MyKernel): if your kernel factorizes in dimensions, you can declare your kernel as iskroncompatible(k) = true to use Kronecker methods.\nKernelFunctions.dim(x::MyDataType): by default the dimension of the inputs will only be checked for vectors of type AbstractVector{<:Real}. If you want to check the dimensionality of your inputs, dispatch the dim function on your datatype. Note that 0 is the default.\ndim is called within KernelFunctions.validate_inputs(x::MyDataType, y::MyDataType), which can instead be directly overloaded if you want to run special checks for your input types.\nkernelmatrix(k::MyKernel, ...): you can redefine the diverse kernelmatrix functions to eventually optimize the computations.\nBase.print(io::IO, k::MyKernel): if you want to specialize the printing of your kernel.","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"KernelFunctions uses Functors.jl for specifying trainable kernel parameters in a way that is compatible with the Flux ML framework. You can use Functors.@functor if all fields of your kernel struct are trainable. Note that optimization algorithms in Flux are not compatible with scalar parameters (yet), and hence vector-valued parameters should be preferred.","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"import Functors\n\nstruct MyKernel{T} <: KernelFunctions.Kernel\n a::Vector{T}\nend\n\nFunctors.@functor MyKernel","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"If only a subset of the fields are trainable, you have to specify explicitly how to (re)construct the kernel with modified parameter values by implementing Functors.functor(::Type{<:MyKernel}, x) for your kernel struct:","category":"page"},{"location":"create_kernel/","page":"Custom Kernels","title":"Custom Kernels","text":"import Functors\n\nstruct MyKernel{T} <: KernelFunctions.Kernel\n n::Int\n a::Vector{T}\nend\n\nfunction Functors.functor(::Type{<:MyKernel}, x::MyKernel)\n function reconstruct_mykernel(xs)\n # keep field `n` of the original kernel and set `a` to (possibly different) `xs.a`\n return MyKernel(x.n, xs.a)\n end\n return (a = x.a,), reconstruct_mykernel\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"EditURL = \"../../../../examples/train-kernel-parameters/script.jl\"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/train-kernel-parameters/script.jl\"","category":"page"},{"location":"examples/train-kernel-parameters/#Train-Kernel-Parameters","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(Image: )","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Here we show a few ways to train (optimize) the kernel (hyper)parameters at the example of kernel-based regression using KernelFunctions.jl. All options are functionally identical, but differ a little in readability, dependencies, and computational cost.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We load KernelFunctions and some other packages. Note that while we use Zygote for automatic differentiation and Flux.optimise for optimization, you should be able to replace them with your favourite autodiff framework or optimizer.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"using KernelFunctions\nusing LinearAlgebra\nusing Distributions\nusing Plots\nusing BenchmarkTools\nusing Flux\nusing Flux: Optimise\nusing Zygote\nusing Random: seed!\nseed!(42);","category":"page"},{"location":"examples/train-kernel-parameters/#Data-Generation","page":"Train Kernel Parameters","title":"Data Generation","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We generate a toy dataset in 1 dimension:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"xmin, xmax = -3, 3 # Bounds of the data\nN = 50 # Number of samples\nx_train = rand(Uniform(xmin, xmax), N) # sample the inputs\nσ = 0.1\ny_train = sinc.(x_train) + randn(N) * σ # evaluate a function and add some noise\nx_test = range(xmin - 0.1, xmax + 0.1; length=300)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Plot the data","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"scatter(x_train, y_train; label=\"data\")\nplot!(x_test, sinc; label=\"true function\")","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/train-kernel-parameters/#Manual-Approach","page":"Train Kernel Parameters","title":"Manual Approach","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The first option is to rebuild the parametrized kernel from a vector of parameters in each evaluation of the cost function. This is similar to the approach taken in Stheno.jl.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"To train the kernel parameters via Zygote.jl, we need to create a function creating a kernel from an array. A simple way to ensure that the kernel parameters are positive is to optimize over the logarithm of the parameters.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function kernel_creator(θ)\n return (exp(θ[1]) * SqExponentialKernel() + exp(θ[2]) * Matern32Kernel()) ∘\n ScaleTransform(exp(θ[3]))\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"From theory we know the prediction for a test set x given the kernel parameters and normalization constant:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function f(x, x_train, y_train, θ)\n k = kernel_creator(θ[1:3])\n return kernelmatrix(k, x, x_train) *\n ((kernelmatrix(k, x_train) + exp(θ[4]) * I) \\ y_train)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Let's look at our prediction. With starting parameters p0 (picked so we get the right local minimum for demonstration) we get:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"p0 = [1.1, 0.1, 0.01, 0.001]\nθ = log.(p0)\nŷ = f(x_test, x_train, y_train, θ)\nscatter(x_train, y_train; label=\"data\")\nplot!(x_test, sinc; label=\"true function\")\nplot!(x_test, ŷ; label=\"prediction\")","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We define the following loss:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function loss(θ)\n ŷ = f(x_train, x_train, y_train, θ)\n return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss with our starting point:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Computational cost for one step:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let\n θ = log.(p0)\n opt = Optimise.ADAGrad(0.5)\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 6317 samples with 1 evaluation.\n Range (min … max): 665.711 μs … 6.697 ms ┊ GC (min … max): 0.00% … 15.71%\n Time (median): 716.696 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 788.492 μs ± 263.185 μs ┊ GC (mean ± σ): 5.96% ± 11.37%\n\n ▅█▆▅▃▁ ▁▁▁▁ ▁\n ▇██████▇▅▄▄▅▁▁▁▁▅▅▅▁▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▃▃▄▆▇██████▆▆▅▅▆▅▆▇ █\n 666 μs Histogram: log(frequency) by time 1.79 ms <\n\n Memory estimate: 2.98 MiB, allocs estimate: 1563.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Setting an initial value and initializing the optimizer:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = log.(p0) # Initial vector\nopt = Optimise.ADAGrad(0.5)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"anim = Animation()\nfor i in 1:15\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\n scatter(\n x_train, y_train; lab=\"data\", title=\"i = $(i), Loss = $(round(loss(θ), digits = 4))\"\n )\n plot!(x_test, sinc; lab=\"true function\")\n plot!(x_test, f(x_test, x_train, y_train, θ); lab=\"Prediction\", lw=3.0)\n frame(anim)\nend\ngif(anim, \"train-kernel-param.gif\"; show_msg=false, fps=15);","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(Image: )","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.5241118228076058","category":"page"},{"location":"examples/train-kernel-parameters/#Using-ParameterHandling.jl","page":"Train Kernel Parameters","title":"Using ParameterHandling.jl","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Alternatively, we can use the ParameterHandling.jl package to handle the requirement that all kernel parameters should be positive. The package also allows arbitrarily nesting named tuples that make the parameters more human readable, without having to remember their position in a flat vector.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"using ParameterHandling\n\nraw_initial_θ = (\n k1=positive(1.1), k2=positive(0.1), k3=positive(0.01), noise_var=positive(0.001)\n)\n\nflat_θ, unflatten = ParameterHandling.value_flatten(raw_initial_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"4-element Vector{Float64}:\n 0.09531016625781467\n -2.3025852420056685\n -4.6051716761053205\n -6.907770180254354","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We define a few relevant functions and note that compared to the previous kernel_creator function, we do not need explicit exps.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function kernel_creator(θ)\n return (θ.k1 * SqExponentialKernel() + θ.k2 * Matern32Kernel()) ∘ ScaleTransform(θ.k3)\nend\n\nfunction f(x, x_train, y_train, θ)\n k = kernel_creator(θ)\n return kernelmatrix(k, x, x_train) *\n ((kernelmatrix(k, x_train) + θ.noise_var * I) \\ y_train)\nend\n\nfunction loss(θ)\n ŷ = f(x_train, x_train, y_train, θ)\n return norm(y_train - ŷ) + θ.noise_var * norm(ŷ)\nend\n\ninitial_θ = ParameterHandling.value(raw_initial_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss at the initial parameter values:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(loss ∘ unflatten)(flat_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Cost per step","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let\n θ = flat_θ[:]\n opt = Optimise.ADAGrad(0.5)\n grads = (Zygote.gradient(loss ∘ unflatten, θ))[1]\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 5553 samples with 1 evaluation.\n Range (min … max): 778.712 μs … 4.454 ms ┊ GC (min … max): 0.00% … 20.99%\n Time (median): 850.135 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 897.355 μs ± 240.571 μs ┊ GC (mean ± σ): 5.15% ± 10.66%\n\n ▆▇▇██▆▅▂ ▁▁▂▁▁▁ ▂\n ██████████▆▆▆▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆███████ █\n 779 μs Histogram: log(frequency) by time 1.94 ms <\n\n Memory estimate: 3.08 MiB, allocs estimate: 2228.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model-2","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"opt = Optimise.ADAGrad(0.5)\nfor i in 1:15\n grads = (Zygote.gradient(loss ∘ unflatten, flat_θ))[1]\n Optimise.update!(opt, flat_θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"(loss ∘ unflatten)(flat_θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.524117624126251","category":"page"},{"location":"examples/train-kernel-parameters/#Flux.destructure","page":"Train Kernel Parameters","title":"Flux.destructure","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"If we don't want to write an explicit function to construct the kernel, we can alternatively use the Flux.destructure function. Again, we need to ensure that the parameters are positive. Note that the exp function is now part of the loss function, instead of part of the kernel construction.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"We could also use ParameterHandling.jl here. To do so, one would remove the exps from the loss function below and call loss ∘ unflatten as above.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = [1.1, 0.1, 0.01, 0.001]\n\nkernel = (θ[1] * SqExponentialKernel() + θ[2] * Matern32Kernel()) ∘ ScaleTransform(θ[3])\n\nparams, kernelc = Flux.destructure(kernel);","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"This returns the trainable params of the kernel and a function to reconstruct the kernel.","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"kernelc(params)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Sum of 2 kernels:\n\tSquared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 1.1\n\tMatern 3/2 Kernel (metric = Distances.Euclidean(0.0))\n\t\t\t- σ² = 0.1\n\t- Scale Transform (s = 0.01)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"From theory we know the prediction for a test set x given the kernel parameters and normalization constant","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"function f(x, x_train, y_train, θ)\n k = kernelc(θ[1:3])\n return kernelmatrix(k, x, x_train) * ((kernelmatrix(k, x_train) + (θ[4]) * I) \\ y_train)\nend\n\nfunction loss(θ)\n ŷ = f(x_train, x_train, y_train, exp.(θ))\n return norm(y_train - ŷ) + exp(θ[4]) * norm(ŷ)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Cost for one step","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"@benchmark let θt = θ[:], optt = Optimise.ADAGrad(0.5)\n grads = only((Zygote.gradient(loss, θt)))\n Optimise.update!(optt, θt, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"BenchmarkTools.Trial: 6625 samples with 1 evaluation.\n Range (min … max): 640.804 μs … 6.100 ms ┊ GC (min … max): 0.00% … 15.07%\n Time (median): 710.014 μs ┊ GC (median): 0.00%\n Time (mean ± σ): 751.745 μs ± 232.447 μs ┊ GC (mean ± σ): 5.13% ± 10.60%\n\n ▆▆▆█▇▅▄▁ ▁▁ ▂\n ████████▇▆▅▆▃▄▄▆▇▇▆▅▅▄▄▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██████ █\n 641 μs Histogram: log(frequency) by time 1.79 ms <\n\n Memory estimate: 2.98 MiB, allocs estimate: 1558.","category":"page"},{"location":"examples/train-kernel-parameters/#Training-the-model-3","page":"Train Kernel Parameters","title":"Training the model","text":"","category":"section"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"The loss at our initial parameter values:","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"θ = log.([1.1, 0.1, 0.01, 0.001]) # Initial vector\nloss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"2.613933959118708","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Initialize optimizer","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"opt = Optimise.ADAGrad(0.5)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Optimize","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"for i in 1:15\n grads = only((Zygote.gradient(loss, θ)))\n Optimise.update!(opt, θ, grads)\nend","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"Final loss","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"loss(θ)","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"0.5241118228076058","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/train-kernel-parameters/Project.toml`\n  [6e4b80f9] BenchmarkTools v1.4.0\n  [31c24e10] Distributions v0.25.107\n  [587475ba] Flux v0.14.11\n  [f6369f11] ForwardDiff v0.10.36\n  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n  [98b081ad] Literate v2.16.1\n  [2412ca09] ParameterHandling v0.4.10\n  [91a5bcdd] Plots v1.40.1\n  [e88e6eb3] Zygote v0.6.69\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.10.0\nCommit 3120989f39b (2023-12-25 18:01 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"","category":"page"},{"location":"examples/train-kernel-parameters/","page":"Train Kernel Parameters","title":"Train Kernel Parameters","text":"This page was generated using Literate.jl.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"EditURL = \"../../../../examples/kernel-ridge-regression/script.jl\"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/kernel-ridge-regression/script.jl\"","category":"page"},{"location":"examples/kernel-ridge-regression/#Kernel-Ridge-Regression","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"(Image: )","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Building on linear regression, we can fit non-linear data sets by introducing a feature space. In a higher-dimensional feature space, we can overfit the data; ridge regression introduces regularization to avoid this. In this notebook we show how we can use KernelFunctions.jl for kernel ridge regression.","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"# Loading and setup of required packages\nusing KernelFunctions\nusing LinearAlgebra\nusing Distributions\n\n# Plotting\nusing Plots;\ndefault(; lw=2.0, legendfontsize=11.0, ylims=(-150, 500));\n\nusing Random: seed!\nseed!(42);","category":"page"},{"location":"examples/kernel-ridge-regression/#Toy-data","page":"Kernel Ridge Regression","title":"Toy data","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Here we use a one-dimensional toy problem. We generate data using the fourth-order polynomial f(x) = (x+4)(x+1)(x-1)(x-3):","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"f_truth(x) = (x + 4) * (x + 1) * (x - 1) * (x - 3)\n\nx_train = -5:0.5:5\nx_test = -7:0.1:7\n\nnoise = rand(Uniform(-20, 20), length(x_train))\ny_train = f_truth.(x_train) + noise\ny_test = f_truth.(x_test)\n\nplot(x_test, y_test; label=raw\"$f(x)$\")\nscatter!(x_train, y_train; seriescolor=1, label=\"observations\")","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Linear-regression","page":"Kernel Ridge Regression","title":"Linear regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"For training inputs mathrmX=(mathbfx_n)_n=1^N and observations mathbfy=(y_n)_n=1^N, the linear regression weights mathbfw using the least-squares estimator are given by","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"We predict at test inputs mathbfx_* using","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by linear_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function linear_regression(X, y, Xstar)\n weights = (X' * X) \\ (X' * y)\n return Xstar * weights\nend;","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"A linear regression fit to the above data set:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"y_pred = linear_regression(x_train, y_train, x_test)\nscatter(x_train, y_train; label=\"observations\")\nplot!(x_test, y_pred; label=\"linear fit\")","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Featurization","page":"Kernel Ridge Regression","title":"Featurization","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"We can improve the fit by including additional features, i.e. generalizing to tildemathrmX = (phi(x_n))_n=1^N, where phi(x) constructs a feature vector for each input x. Here we include powers of the input, phi(x) = (1 x x^2 dots x^d):","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function featurize_poly(x; degree=1)\n return repeat(x, 1, degree + 1) .^ (0:degree)'\nend\n\nfunction featurized_fit_and_plot(degree)\n X = featurize_poly(x_train; degree=degree)\n Xstar = featurize_poly(x_test; degree=degree)\n y_pred = linear_regression(X, y_train, Xstar)\n scatter(x_train, y_train; legend=false, title=\"fit of order $degree\")\n return plot!(x_test, y_pred)\nend\n\nplot((featurized_fit_and_plot(degree) for degree in 1:4)...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Note that the fit becomes perfect when we include exactly as many orders in the features as we have in the underlying polynomial (4).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"However, when increasing the number of features, we can quickly overfit to noise in the data set:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"featurized_fit_and_plot(20)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Ridge-regression","page":"Kernel Ridge Regression","title":"Ridge regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"To counteract this unwanted behaviour, we can introduce regularization. This leads to ridge regression with L_2 regularization of the weights (Tikhonov regularization). Instead of the weights in linear regression,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"we introduce the ridge parameter lambda:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX + lambda mathbb1)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"As before, we predict at test inputs mathbfx_* using","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by ridge_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function ridge_regression(X, y, Xstar, lambda)\n weights = (X' * X + lambda * I) \\ (X' * y)\n return Xstar * weights\nend\n\nfunction regularized_fit_and_plot(degree, lambda)\n X = featurize_poly(x_train; degree=degree)\n Xstar = featurize_poly(x_test; degree=degree)\n y_pred = ridge_regression(X, y_train, Xstar, lambda)\n scatter(x_train, y_train; legend=false, title=\"\\$\\\\lambda=$lambda\\$\")\n return plot!(x_test, y_pred)\nend\n\nplot((regularized_fit_and_plot(20, lambda) for lambda in (1e-3, 1e-2, 1e-1, 1))...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/#Kernel-ridge-regression","page":"Kernel Ridge Regression","title":"Kernel ridge regression","text":"","category":"section"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Instead of constructing the feature matrix explicitly, we can use kernels to replace inner products of feature vectors with a kernel evaluation: langle phi(x) phi(x) rangle = k(x x) or tildemathrmX tildemathrmX^top = mathrmK, where mathrmK_ij = k(x_i x_j).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"To apply this \"kernel trick\" to ridge regression, we can rewrite the ridge estimate for the weights","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = (mathrmX^top mathrmX + lambda mathbb1)^-1 mathrmX^top mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"using the matrix inversion lemma as","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = mathrmX^top (mathrmX mathrmX^top + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"where we can now replace the inner product with the kernel matrix,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"mathbfw = mathrmX^top (mathrmK + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"And the prediction yields another inner product,","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"haty_* = mathbfx_*^top mathbfw = langle mathbfx_* mathbfw rangle = mathbfk_* (mathrmK + lambda mathbb1)^-1 mathbfy","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"where (mathbfk_*)_n = k(x_* x_n).","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This is implemented by kernel_ridge_regression:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function kernel_ridge_regression(k, X, y, Xstar, lambda)\n K = kernelmatrix(k, X)\n kstar = kernelmatrix(k, Xstar, X)\n return kstar * ((K + lambda * I) \\ y)\nend;","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"Now, instead of explicitly constructing features, we can simply pass in a PolynomialKernel object:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"function kernelized_fit_and_plot(kernel, lambda=1e-4)\n y_pred = kernel_ridge_regression(kernel, x_train, y_train, x_test, lambda)\n if kernel isa PolynomialKernel\n title = string(\"order \", kernel.degree)\n else\n title = string(nameof(typeof(kernel)))\n end\n scatter(x_train, y_train; label=nothing)\n return plot!(x_test, y_pred; label=nothing, title=title)\nend\n\nplot((kernelized_fit_and_plot(PolynomialKernel(; degree=degree, c=1)) for degree in 1:4)...)","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"However, we can now also use kernels that would have an infinite-dimensional feature expansion, such as the squared exponential kernel:","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"kernelized_fit_and_plot(SqExponentialKernel())","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/kernel-ridge-regression/Project.toml`\n  [31c24e10] Distributions v0.25.107\n  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n  [98b081ad] Literate v2.16.1\n  [91a5bcdd] Plots v1.40.1\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.10.0\nCommit 3120989f39b (2023-12-25 18:01 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"","category":"page"},{"location":"examples/kernel-ridge-regression/","page":"Kernel Ridge Regression","title":"Kernel Ridge Regression","text":"This page was generated using Literate.jl.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":" CurrentModule = KernelFunctions","category":"page"},{"location":"kernels/#Kernel-Functions","page":"Kernel Functions","title":"Kernel Functions","text":"","category":"section"},{"location":"kernels/#base_kernels","page":"Kernel Functions","title":"Base Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"These are the basic kernels without any transformation of the data. They are the building blocks of KernelFunctions.","category":"page"},{"location":"kernels/#Constant-Kernels","page":"Kernel Functions","title":"Constant Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ZeroKernel\nConstantKernel\nWhiteKernel\nEyeKernel","category":"page"},{"location":"kernels/#KernelFunctions.ZeroKernel","page":"Kernel Functions","title":"KernelFunctions.ZeroKernel","text":"ZeroKernel()\n\nZero kernel.\n\nDefinition\n\nFor inputs x x, the zero kernel is defined as\n\nk(x x) = 0\n\nThe output type depends on x and x.\n\nSee also: ConstantKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.ConstantKernel","page":"Kernel Functions","title":"KernelFunctions.ConstantKernel","text":"ConstantKernel(; c::Real=1.0)\n\nKernel of constant value c.\n\nDefinition\n\nFor inputs x x, the kernel of constant value c geq 0 is defined as\n\nk(x x) = c\n\nSee also: ZeroKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.WhiteKernel","page":"Kernel Functions","title":"KernelFunctions.WhiteKernel","text":"WhiteKernel()\n\nWhite noise kernel.\n\nDefinition\n\nFor inputs x x, the white noise kernel is defined as\n\nk(x x) = delta(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.EyeKernel","page":"Kernel Functions","title":"KernelFunctions.EyeKernel","text":"EyeKernel()\n\nAlias of WhiteKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Cosine-Kernel","page":"Kernel Functions","title":"Cosine Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"CosineKernel","category":"page"},{"location":"kernels/#KernelFunctions.CosineKernel","page":"Kernel Functions","title":"KernelFunctions.CosineKernel","text":"CosineKernel(; metric=Euclidean())\n\nCosine kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the cosine kernel is defined as\n\nk(x x) = cos(pi d(x x))\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Exponential-Kernels","page":"Kernel Functions","title":"Exponential Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ExponentialKernel\nGibbsKernel\nLaplacianKernel\nSqExponentialKernel\nSEKernel\nGaussianKernel\nRBFKernel\nGammaExponentialKernel","category":"page"},{"location":"kernels/#KernelFunctions.ExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.ExponentialKernel","text":"ExponentialKernel(; metric=Euclidean())\n\nExponential kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the exponential kernel is defined as\n\nk(x x) = expbig(- d(x x)big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: GammaExponentialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GibbsKernel","page":"Kernel Functions","title":"KernelFunctions.GibbsKernel","text":"GibbsKernel(; lengthscale)\n\nGibbs Kernel with lengthscale function lengthscale.\n\nThe Gibbs kernel is a non-stationary generalisation of the squared exponential kernel. The lengthscale parameter l becomes a function of position l(x).\n\nDefinition\n\nFor inputs x x, the Gibbs kernel with lengthscale function l(cdot) is defined as\n\nk(x x l) = sqrtleft(frac2 l(x) l(x)l(x)^2 + l(x)^2right)\nquad expleft(-frac(x - x)^2l(x)^2 + l(x)^2right)\n\nFor a constant function l equiv c, one recovers the SqExponentialKernel with lengthscale c.\n\nReferences\n\nMark N. Gibbs. \"Bayesian Gaussian Processes for Regression and Classication.\" PhD thesis, 1997\n\nChristopher J. Paciorek and Mark J. Schervish. \"Nonstationary Covariance Functions for Gaussian Process Regression\". NeurIPS, 2003\n\nSami Remes, Markus Heinonen, Samuel Kaski. \"Non-Stationary Spectral Kernels\". arXiV:1705.08736, 2017\n\nSami Remes, Markus Heinonen, Samuel Kaski. \"Neural Non-Stationary Spectral Kernel\". arXiv:1811.10978, 2018\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LaplacianKernel","page":"Kernel Functions","title":"KernelFunctions.LaplacianKernel","text":"LaplacianKernel()\n\nAlias of ExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.SqExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.SqExponentialKernel","text":"SqExponentialKernel(; metric=Euclidean())\n\nSquared exponential kernel with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the squared exponential kernel is defined as\n\nk(x x) = expbigg(- fracd(x x)^22bigg)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: GammaExponentialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.SEKernel","page":"Kernel Functions","title":"KernelFunctions.SEKernel","text":"SEKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GaussianKernel","page":"Kernel Functions","title":"KernelFunctions.GaussianKernel","text":"GaussianKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.RBFKernel","page":"Kernel Functions","title":"KernelFunctions.RBFKernel","text":"RBFKernel()\n\nAlias of SqExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GammaExponentialKernel","page":"Kernel Functions","title":"KernelFunctions.GammaExponentialKernel","text":"GammaExponentialKernel(; γ::Real=1.0, metric=Euclidean())\n\nγ-exponential kernel with respect to the metric and with parameter γ.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the γ-exponential kernel[RW] with parameter gamma in (0 2 is defined as\n\nk(x x gamma) = expbig(- d(x x)^gammabig)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: ExponentialKernel, SqExponentialKernel\n\n[RW]: C. E. Rasmussen & C. K. I. Williams (2006). Gaussian Processes for Machine Learning.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Exponentiated-Kernel","page":"Kernel Functions","title":"Exponentiated Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"ExponentiatedKernel","category":"page"},{"location":"kernels/#KernelFunctions.ExponentiatedKernel","page":"Kernel Functions","title":"KernelFunctions.ExponentiatedKernel","text":"ExponentiatedKernel()\n\nExponentiated kernel.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the exponentiated kernel is defined as\n\nk(x x) = exp(x^top x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Fractional-Brownian-Motion-Kernel","page":"Kernel Functions","title":"Fractional Brownian Motion Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"FBMKernel","category":"page"},{"location":"kernels/#KernelFunctions.FBMKernel","page":"Kernel Functions","title":"KernelFunctions.FBMKernel","text":"FBMKernel(; h::Real=0.5)\n\nFractional Brownian motion kernel with Hurst index h.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the fractional Brownian motion kernel with Hurst index h in 01 is defined as\n\nk(x x h) = fracx_2^2h + x_2^2h - x - x^2h2\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Gabor-Kernel","page":"Kernel Functions","title":"Gabor Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"gaborkernel","category":"page"},{"location":"kernels/#KernelFunctions.gaborkernel","page":"Kernel Functions","title":"KernelFunctions.gaborkernel","text":"gaborkernel(;\n sqexponential_transform=IdentityTransform(), cosine_tranform=IdentityTransform()\n)\n\nConstruct a Gabor kernel with transformations sqexponential_transform and cosine_transform of the inputs of the underlying squared exponential and cosine kernel, respectively.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the Gabor kernel with transformations f and g of the inputs to the squared exponential and cosine kernel, respectively, is defined as\n\nk(x x f g) = expbigg(- frac f(x) - f(x)_2^22bigg)\n cosbig(pi g(x) - g(x)_2 big)\n\n\n\n\n\n","category":"function"},{"location":"kernels/#Matérn-Kernels","page":"Kernel Functions","title":"Matérn Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"MaternKernel\nMatern12Kernel\nMatern32Kernel\nMatern52Kernel","category":"page"},{"location":"kernels/#KernelFunctions.MaternKernel","page":"Kernel Functions","title":"KernelFunctions.MaternKernel","text":"MaternKernel(; ν::Real=1.5, metric=Euclidean())\n\nMatérn kernel of order ν with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order nu 0 is defined as\n\nk(xxnu) = frac2^1-nuGamma(nu)big(sqrt2nu d(x x)big) K_nubig(sqrt2nu d(x x)big)\n\nwhere Gamma is the Gamma function and K_nu is the modified Bessel function of the second kind of order nu. By default, d is the Euclidean metric d(x x) = x - x_2.\n\nA Gaussian process with a Matérn kernel is lceil nu rceil - 1-times differentiable in the mean-square sense.\n\nnote: Note\nDifferentiation with respect to the order ν is not currently supported.\n\nSee also: Matern12Kernel, Matern32Kernel, Matern52Kernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern12Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern12Kernel","text":"Matern12Kernel()\n\nAlias of ExponentialKernel.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern32Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern32Kernel","text":"Matern32Kernel(; metric=Euclidean())\n\nMatérn kernel of order 32 with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order 32 is given by\n\nk(x x) = big(1 + sqrt3 d(x x) big) expbig(- sqrt3 d(x x) big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: MaternKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.Matern52Kernel","page":"Kernel Functions","title":"KernelFunctions.Matern52Kernel","text":"Matern52Kernel(; metric=Euclidean())\n\nMatérn kernel of order 52 with respect to the metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the Matérn kernel of order 52 is given by\n\nk(x x) = bigg(1 + sqrt5 d(x x) + frac53 d(x x)^2bigg)\n expbig(- sqrt5 d(x x) big)\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nSee also: MaternKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Neural-Network-Kernel","page":"Kernel Functions","title":"Neural Network Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"NeuralNetworkKernel","category":"page"},{"location":"kernels/#KernelFunctions.NeuralNetworkKernel","page":"Kernel Functions","title":"KernelFunctions.NeuralNetworkKernel","text":"NeuralNetworkKernel()\n\nKernel of a Gaussian process obtained as the limit of a Bayesian neural network with a single hidden layer as the number of units goes to infinity.\n\nDefinition\n\nConsider the single-layer Bayesian neural network f colon mathbbR^d to mathbbR with h hidden units defined by\n\nf(x b v u) = b + sqrtfracpi2 sum_i=1^h v_i mathrmerfbig(u_i^top xbig)\n\nwhere mathrmerf is the error function, and with prior distributions\n\nbeginaligned\nb sim mathcalN(0 sigma_b^2)\nv sim mathcalN(0 sigma_v^2 mathrmI_hh)\nu_i sim mathcalN(0 mathrmI_d2) qquad (i = 1ldotsh)\nendaligned\n\nAs h to infty, the neural network converges to the Gaussian process\n\ng(cdot) sim mathcalGPbig(0 sigma_b^2 + sigma_v^2 k(cdot cdot)big)\n\nwhere the neural network kernel k is given by\n\nk(x x) = arcsinleft(fracx^top xsqrtbig(1 + x^2_2big) big(1 + x_2^2big)right)\n\nfor inputs x x in mathbbR^d.[CW]\n\n[CW]: C. K. I. Williams (1998). Computation with infinite neural networks.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Periodic-Kernel","page":"Kernel Functions","title":"Periodic Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"PeriodicKernel\nPeriodicKernel(::DataType, ::Int)","category":"page"},{"location":"kernels/#KernelFunctions.PeriodicKernel","page":"Kernel Functions","title":"KernelFunctions.PeriodicKernel","text":"PeriodicKernel(; r::AbstractVector=ones(Float64, 1))\n\nPeriodic kernel with parameter r.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the periodic kernel with parameter r_i 0 is defined[DM] as\n\nk(x x r) = expbigg(- frac12 sum_i=1^d bigg(fracsinbig(pi(x_i - x_i)big)r_ibigg)^2bigg)\n\n[DM]: D. J. C. MacKay (1998). Introduction to Gaussian Processes.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.PeriodicKernel-Tuple{DataType, Int64}","page":"Kernel Functions","title":"KernelFunctions.PeriodicKernel","text":"PeriodicKernel([T=Float64, dims::Int=1])\n\nCreate a PeriodicKernel with parameter r=ones(T, dims).\n\n\n\n\n\n","category":"method"},{"location":"kernels/#Piecewise-Polynomial-Kernel","page":"Kernel Functions","title":"Piecewise Polynomial Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"PiecewisePolynomialKernel","category":"page"},{"location":"kernels/#KernelFunctions.PiecewisePolynomialKernel","page":"Kernel Functions","title":"KernelFunctions.PiecewisePolynomialKernel","text":"PiecewisePolynomialKernel(; dim::Int, degree::Int=0, metric=Euclidean())\nPiecewisePolynomialKernel{degree}(; dim::Int, metric=Euclidean())\n\nPiecewise polynomial kernel of degree degree for inputs of dimension dim with support in the unit ball with respect to the metric.\n\nDefinition\n\nFor inputs x x of dimension m and metric d(cdot cdot), the piecewise polynomial kernel of degree v in 0123 is defined as\n\nk(x x v) = max(1 - d(x x) 0)^alpha(vm) f_vm(d(x x))\n\nwhere alpha(v m) = lfloor fracm2rfloor + 2v + 1 and f_vm are polynomials of degree v given by\n\nbeginaligned\nf_0m(r) = 1 \nf_1m(r) = 1 + (j + 1) r \nf_2m(r) = 1 + (j + 2) r + big((j^2 + 4j + 3) 3big) r^2 \nf_3m(r) = 1 + (j + 3) r + big((6 j^2 + 36j + 45) 15big) r^2 + big((j^3 + 9 j^2 + 23j + 15) 15big) r^3\nendaligned\n\nwhere j = lfloor fracm2rfloor + v + 1. By default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe kernel is 2v times continuously differentiable and the corresponding Gaussian process is hence v times mean-square differentiable.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Polynomial-Kernels","page":"Kernel Functions","title":"Polynomial Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"LinearKernel\nPolynomialKernel","category":"page"},{"location":"kernels/#KernelFunctions.LinearKernel","page":"Kernel Functions","title":"KernelFunctions.LinearKernel","text":"LinearKernel(; c::Real=0.0)\n\nLinear kernel with constant offset c.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the linear kernel with constant offset c geq 0 is defined as\n\nk(x x c) = x^top x + c\n\nSee also: PolynomialKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.PolynomialKernel","page":"Kernel Functions","title":"KernelFunctions.PolynomialKernel","text":"PolynomialKernel(; degree::Int=2, c::Real=0.0)\n\nPolynomial kernel of degree degree with constant offset c.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the polynomial kernel of degree nu in mathbbN with constant offset c geq 0 is defined as\n\nk(x x c nu) = (x^top x + c)^nu\n\nSee also: LinearKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Rational-Kernels","page":"Kernel Functions","title":"Rational Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"RationalKernel\nRationalQuadraticKernel\nGammaRationalKernel","category":"page"},{"location":"kernels/#KernelFunctions.RationalKernel","page":"Kernel Functions","title":"KernelFunctions.RationalKernel","text":"RationalKernel(; α::Real=2.0, metric=Euclidean())\n\nRational kernel with shape parameter α and given metric.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the rational kernel with shape parameter alpha 0 is defined as\n\nk(x x alpha) = bigg(1 + fracd(x x)alphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe ExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: GammaRationalKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.RationalQuadraticKernel","page":"Kernel Functions","title":"KernelFunctions.RationalQuadraticKernel","text":"RationalQuadraticKernel(; α::Real=2.0, metric=Euclidean())\n\nRational-quadratic kernel with respect to the metric and with shape parameter α.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the rational-quadratic kernel with shape parameter alpha 0 is defined as\n\nk(x x alpha) = bigg(1 + fracd(x x)^22alphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe SqExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: GammaRationalKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.GammaRationalKernel","page":"Kernel Functions","title":"KernelFunctions.GammaRationalKernel","text":"GammaRationalKernel(; α::Real=2.0, γ::Real=1.0, metric=Euclidean())\n\nγ-rational kernel with respect to the metric with shape parameters α and γ.\n\nDefinition\n\nFor inputs x x and metric d(cdot cdot), the γ-rational kernel with shape parameters alpha 0 and gamma in (0 2 is defined as\n\nk(x x alpha gamma) = bigg(1 + fracd(x x)^gammaalphabigg)^-alpha\n\nBy default, d is the Euclidean metric d(x x) = x - x_2.\n\nThe GammaExponentialKernel is recovered in the limit as alpha to infty.\n\nSee also: RationalKernel, RationalQuadraticKernel\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Spectral-Mixture-Kernels","page":"Kernel Functions","title":"Spectral Mixture Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"spectral_mixture_kernel\nspectral_mixture_product_kernel","category":"page"},{"location":"kernels/#KernelFunctions.spectral_mixture_kernel","page":"Kernel Functions","title":"KernelFunctions.spectral_mixture_kernel","text":"spectral_mixture_kernel(\n h::Kernel=SqExponentialKernel(),\n αs::AbstractVector{<:Real},\n γs::AbstractMatrix{<:Real},\n ωs::AbstractMatrix{<:Real},\n)\n\nwhere αs are the weights of dimension (A, ), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.\n\nh is the kernel, which defaults to SqExponentialKernel if not specified.\n\nwarning: Warning\nIf you want to make sure that the constructor is type-stable, you should provide StaticArrays arguments: αs as a StaticVector, γs and ωs as StaticMatrix.\n\nGeneralised Spectral Mixture kernel function. This family of functions is dense in the family of stationary real-valued kernels with respect to the pointwise convergence.[1]\n\n κ(x y) = αs (h(-(γs * t)^2) * cos(π * ωs * t) t = x - y\n\nReferences:\n\n[1] Generalized Spectral Kernels, by Yves-Laurent Kom Samo and Stephen J. Roberts\n[2] SM: Gaussian Process Kernels for Pattern Discovery and Extrapolation,\n ICML, 2013, by Andrew Gordon Wilson and Ryan Prescott Adams,\n[3] Covariance kernels for fast automatic pattern discovery and extrapolation\n with Gaussian processes, Andrew Gordon Wilson, PhD Thesis, January 2014.\n http://www.cs.cmu.edu/~andrewgw/andrewgwthesis.pdf\n[4] http://www.cs.cmu.edu/~andrewgw/pattern/.\n\n\n\n\n\n","category":"function"},{"location":"kernels/#KernelFunctions.spectral_mixture_product_kernel","page":"Kernel Functions","title":"KernelFunctions.spectral_mixture_product_kernel","text":"spectral_mixture_product_kernel(\n h::Kernel=SqExponentialKernel(),\n αs::AbstractMatrix{<:Real},\n γs::AbstractMatrix{<:Real},\n ωs::AbstractMatrix{<:Real},\n)\n\nwhere αs are the weights of dimension (D, A), γs is the covariance matrix of dimension (D, A) and ωs are the mean vectors and is of dimension (D, A). Here, D is input dimension and A is the number of spectral components.\n\nSpectral Mixture Product Kernel. With enough components A, the SMP kernel can model any product kernel to arbitrary precision, and is flexible even with a small number of components [1]\n\nh is the kernel, which defaults to SqExponentialKernel if not specified.\n\n κ(x y) = Πᵢ₁ᴷ Σ(αsᵢᵀ * (h(-(γsᵢᵀ * tᵢ)²) * cos(ωsᵢᵀ * tᵢ))) tᵢ = xᵢ - yᵢ\n\nReferences:\n\n[1] GPatt: Fast Multidimensional Pattern Extrapolation with GPs,\n arXiv 1310.5288, 2013, by Andrew Gordon Wilson, Elad Gilboa,\n Arye Nehorai and John P. Cunningham\n\n\n\n\n\n","category":"function"},{"location":"kernels/#Wiener-Kernel","page":"Kernel Functions","title":"Wiener Kernel","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"WienerKernel","category":"page"},{"location":"kernels/#KernelFunctions.WienerKernel","page":"Kernel Functions","title":"KernelFunctions.WienerKernel","text":"WienerKernel(; i::Int=0)\nWienerKernel{i}()\n\nThe i-times integrated Wiener process kernel function.\n\nDefinition\n\nFor inputs x x in mathbbR^d, the i-times integrated Wiener process kernel with i in -1 0 1 2 3 is defined[SDH] as\n\nk_i(x x) = begincases\n delta(x x) textif i=-1\n minbig(x_2 x_2big) textif i=0\n a_i1^-1 minbig(x_2 x_2big)^2i + 1\n + a_i2^-1 x - x_2 r_ibig(x_2 x_2big) minbig(x_2 x_2big)^i + 1\n textotherwise\nendcases\n\nwhere the coefficients a are given by\n\na = beginbmatrix\n3 2 \n20 12 \n252 720\nendbmatrix\n\nand the functions r_i are defined as\n\nbeginaligned\nr_1(t t) = 1\nr_2(t t) = t + t - fracmin(t t)2\nr_3(t t) = 5 max(t t)^2 + 2 tt + 3 min(t t)^2\nendaligned\n\nThe WhiteKernel is recovered for i = -1.\n\n[SDH]: Schober, Duvenaud & Hennig (2014). Probabilistic ODE Solvers with Runge-Kutta Means.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Composite-Kernels","page":"Kernel Functions","title":"Composite Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"The modular design of KernelFunctions uses base kernels as building blocks for more complex kernels. There are a variety of composite kernels implemented, including those which transform the inputs to a wrapped kernel to implement length scales, scale the variance of a kernel, and sum or multiply collections of kernels together.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"TransformedKernel\n∘(::Kernel, ::Transform)\nScaledKernel\nKernelSum\nKernelProduct\nKernelTensorProduct\nNormalizedKernel","category":"page"},{"location":"kernels/#KernelFunctions.TransformedKernel","page":"Kernel Functions","title":"KernelFunctions.TransformedKernel","text":"TransformedKernel(k::Kernel, t::Transform)\n\nKernel derived from k for which inputs are transformed via a Transform t.\n\nThe preferred way to create kernels with input transformations is to use the composition operator ∘ or its alias compose instead of TransformedKernel directly since this allows optimized implementations for specific kernels and transformations.\n\nSee also: ∘\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Base.:∘-Tuple{Kernel, Transform}","page":"Kernel Functions","title":"Base.:∘","text":"kernel ∘ transform\n∘(kernel, transform)\ncompose(kernel, transform)\n\nCompose a kernel with a transformation transform of its inputs.\n\nThe prefix forms support chains of multiple transformations: ∘(kernel, transform1, transform2) = kernel ∘ transform1 ∘ transform2.\n\nDefinition\n\nFor inputs x x, the transformed kernel widetildek derived from kernel k by input transformation t is defined as\n\nwidetildek(x x k t) = kbig(t(x) t(x)big)\n\nExamples\n\njulia> (SqExponentialKernel() ∘ ScaleTransform(0.5))(0, 2) == exp(-0.5)\ntrue\n\njulia> ∘(ExponentialKernel(), ScaleTransform(2), ScaleTransform(0.5))(1, 2) == exp(-1)\ntrue\n\nSee also: TransformedKernel\n\n\n\n\n\n","category":"method"},{"location":"kernels/#KernelFunctions.ScaledKernel","page":"Kernel Functions","title":"KernelFunctions.ScaledKernel","text":"ScaledKernel(k::Kernel, σ²::Real=1.0)\n\nScaled kernel derived from k by multiplication with variance σ².\n\nDefinition\n\nFor inputs x x, the scaled kernel widetildek derived from kernel k by multiplication with variance sigma^2 0 is defined as\n\nwidetildek(x x k sigma^2) = sigma^2 k(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelSum","page":"Kernel Functions","title":"KernelFunctions.KernelSum","text":"KernelSum <: Kernel\n\nCreate a sum of kernels. One can also use the operator +.\n\nThere are various ways in which you create a KernelSum:\n\nThe simplest way to specify a KernelSum would be to use the overloaded + operator. This is equivalent to creating a KernelSum by specifying the kernels as the arguments to the constructor. \n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);\n\njulia> (k = k1 + k2) == KernelSum(k1, k2)\ntrue\n\njulia> kernelmatrix(k1 + k2, X) == kernelmatrix(k1, X) .+ kernelmatrix(k2, X)\ntrue\n\njulia> kernelmatrix(k, X) == kernelmatrix(k1 + k2, X)\ntrue\n\nYou could also specify a KernelSum by providing a Tuple or a Vector of the kernels to be summed. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.\n\njulia> KernelSum((k1, k2)) == k1 + k2\ntrue\n\njulia> KernelSum([k1, k2]) == KernelSum((k1, k2)) == k1 + k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelProduct","page":"Kernel Functions","title":"KernelFunctions.KernelProduct","text":"KernelProduct <: Kernel\n\nCreate a product of kernels. One can also use the overloaded operator *.\n\nThere are various ways in which you create a KernelProduct:\n\nThe simplest way to specify a KernelProduct would be to use the overloaded * operator. This is equivalent to creating a KernelProduct by specifying the kernels as the arguments to the constructor. \n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5);\n\njulia> (k = k1 * k2) == KernelProduct(k1, k2)\ntrue\n\njulia> kernelmatrix(k1 * k2, X) == kernelmatrix(k1, X) .* kernelmatrix(k2, X)\ntrue\n\njulia> kernelmatrix(k, X) == kernelmatrix(k1 * k2, X)\ntrue\n\nYou could also specify a KernelProduct by providing a Tuple or a Vector of the kernels to be multiplied. We suggest you to use a Tuple when you have fewer components and a Vector when dealing with a large number of components.\n\njulia> KernelProduct((k1, k2)) == k1 * k2\ntrue\n\njulia> KernelProduct([k1, k2]) == KernelProduct((k1, k2)) == k1 * k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.KernelTensorProduct","page":"Kernel Functions","title":"KernelFunctions.KernelTensorProduct","text":"KernelTensorProduct\n\nTensor product of kernels.\n\nDefinition\n\nFor inputs x = (x_1 ldots x_n) and x = (x_1 ldots x_n), the tensor product of kernels k_1 ldots k_n is defined as\n\nk(x x k_1 ldots k_n) = Big(bigotimes_i=1^n k_iBig)(x x) = prod_i=1^n k_i(x_i x_i)\n\nConstruction\n\nThe simplest way to specify a KernelTensorProduct is to use the overloaded tensor operator or its alias ⊗ (can be typed by \\otimes).\n\njulia> k1 = SqExponentialKernel(); k2 = LinearKernel(); X = rand(5, 2);\n\njulia> kernelmatrix(k1 ⊗ k2, RowVecs(X)) == kernelmatrix(k1, X[:, 1]) .* kernelmatrix(k2, X[:, 2])\ntrue\n\nYou can also specify a KernelTensorProduct by providing kernels as individual arguments or as an iterable data structure such as a Tuple or a Vector. Using a tuple or individual arguments guarantees that KernelTensorProduct is concretely typed but might lead to large compilation times if the number of kernels is large.\n\njulia> KernelTensorProduct(k1, k2) == k1 ⊗ k2\ntrue\n\njulia> KernelTensorProduct((k1, k2)) == k1 ⊗ k2\ntrue\n\njulia> KernelTensorProduct([k1, k2]) == k1 ⊗ k2\ntrue\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.NormalizedKernel","page":"Kernel Functions","title":"KernelFunctions.NormalizedKernel","text":"NormalizedKernel(k::Kernel)\n\nA normalized kernel derived from k.\n\nDefinition\n\nFor inputs x x, the normalized kernel widetildek derived from kernel k is defined as\n\nwidetildek(x x k) = frack(x x)sqrtk(x x) k(x x)\n\n\n\n\n\n","category":"type"},{"location":"kernels/#Multi-output-Kernels","page":"Kernel Functions","title":"Multi-output Kernels","text":"","category":"section"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"Kernelfunctions implements multi-output kernels as scalar kernels on an extended output domain. For more details on this read the section on inputs for multi-output GPs.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"For a function f(x) rightarrow y denote the inputs as x x, such that we compute the covariance between output components y_p and y_p. The total number of outputs is m.","category":"page"},{"location":"kernels/","page":"Kernel Functions","title":"Kernel Functions","text":"MOKernel\nIndependentMOKernel\nLatentFactorMOKernel\nIntrinsicCoregionMOKernel\nLinearMixingModelKernel","category":"page"},{"location":"kernels/#KernelFunctions.MOKernel","page":"Kernel Functions","title":"KernelFunctions.MOKernel","text":"MOKernel\n\nAbstract type for kernels with multiple outpus.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.IndependentMOKernel","page":"Kernel Functions","title":"KernelFunctions.IndependentMOKernel","text":"IndependentMOKernel(k::Kernel)\n\nKernel for multiple independent outputs with kernel k each.\n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel widetildek for independent outputs with kernel k each is defined as\n\nwidetildekbig((x p) (x p)big) = begincases\n k(x x) textif p = p \n 0 textotherwise\nendcases\n\nMathematically, it is equivalent to a matrix-valued kernel defined as\n\nwidetildeK(x x) = mathrmdiagbig(k(x x) ldots k(x x)big) in mathbbR^m times m\n\nwhere m is the number of outputs.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LatentFactorMOKernel","page":"Kernel Functions","title":"KernelFunctions.LatentFactorMOKernel","text":"LatentFactorMOKernel(g::AbstractVector{<:Kernel}, e::MOKernel, A::AbstractMatrix)\n\nKernel associated with the semiparametric latent factor model.\n\nDefinition\n\nFor inputs x x and output dimensions p_x p_x, the kernel is defined as[STJ]\n\nkbig((x p_x) (x p_x)big) = sum^Q_q=1 A_p_xqg_q(x x)A_p_xq\n + ebig((x p_x) (x p_x)big)\n\nwhere g_1 ldots g_Q are Q kernels, one for each latent process, e is a multi-output kernel for m outputs, and A is a matrix of weights for the kernels of size m times Q.\n\n[STJ]: M. Seeger, Y. Teh, & M. I. Jordan (2005). Semiparametric Latent Factor Models.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.IntrinsicCoregionMOKernel","page":"Kernel Functions","title":"KernelFunctions.IntrinsicCoregionMOKernel","text":"IntrinsicCoregionMOKernel(; kernel::Kernel, B::AbstractMatrix)\n\nKernel associated with the intrinsic coregionalization model.\n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel is defined as[ARL]\n\nkbig((x p) (x p) B tildekbig) = B_p p tildekbig(x xbig)\n\nwhere B is a positive semidefinite matrix of size m times m, with m being the number of outputs, and tildek is a scalar-valued kernel shared by the latent processes.\n\n[ARL]: M. Álvarez, L. Rosasco, & N. Lawrence (2012). Kernels for Vector-Valued Functions: a Review.\n\n\n\n\n\n","category":"type"},{"location":"kernels/#KernelFunctions.LinearMixingModelKernel","page":"Kernel Functions","title":"KernelFunctions.LinearMixingModelKernel","text":"LinearMixingModelKernel(k::Kernel, H::AbstractMatrix)\nLinearMixingModelKernel(Tk::AbstractVector{<:Kernel},Th::AbstractMatrix)\n\nKernel associated with the linear mixing model, taking a vector of Q kernels and a Q × m mixing matrix H for a function with m outputs. Also accepts a single kernel k for use across all Q basis vectors. \n\nDefinition\n\nFor inputs x x and output dimensions p p, the kernel is defined as[BPTHST]\n\nkbig((x p) (x p)big) = H_pK(x x)H_p\n\nwhere K(x x) = Diag(k_1(x x) k_Q(x x)) with zero off-diagonal entries. H_p is the p-th column (p-th output) of H in mathbbR^Q times m representing Q basis vectors for the m dimensional output space of f. k_1 ldots k_Q are Q kernels, one for each latent process, H is a mixing matrix of Q basis vectors spanning the output space.\n\n[BPTHST]: Wessel P. Bruinsma, Eric Perim, Will Tebbutt, J. Scott Hosking, Arno Solin, Richard E. Turner (2020). Scalable Exact Inference in Multi-Output Gaussian Processes.\n\n\n\n\n\n","category":"type"},{"location":"api/#API-Library","page":"API","title":"API Library","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"CurrentModule = KernelFunctions","category":"page"},{"location":"api/#Functions","page":"API","title":"Functions","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"The KernelFunctions API comprises the following four functions.","category":"page"},{"location":"api/","page":"API","title":"API","text":"kernelmatrix\nkernelmatrix!\nkernelmatrix_diag\nkernelmatrix_diag!","category":"page"},{"location":"api/#KernelFunctions.kernelmatrix","page":"API","title":"KernelFunctions.kernelmatrix","text":"kernelmatrix(κ::Kernel, x::AbstractVector)\n\nCompute the kernel κ for each pair of inputs in x. Returns a matrix of size (length(x), length(x)) satisfying kernelmatrix(κ, x)[p, q] == κ(x[p], x[q]).\n\nkernelmatrix(κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nCompute the kernel κ for each pair of inputs in x and y. Returns a matrix of size (length(x), length(y)) satisfying kernelmatrix(κ, x, y)[p, q] == κ(x[p], y[q]).\n\nkernelmatrix(κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelmatrix(κ, RowVecs(X)) and kernelmatrix(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix(κ, ColVecs(X)) and kernelmatrix(κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix!","page":"API","title":"KernelFunctions.kernelmatrix!","text":"kernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector)\nkernelmatrix!(K::AbstractMatrix, κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nIn-place version of kernelmatrix where pre-allocated matrix K will be overwritten with the kernel matrix.\n\nkernelmatrix!(K::AbstractMatrix, κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix!(\n K::AbstractMatrix,\n κ::Kernel,\n X::AbstractMatrix,\n Y::AbstractMatrix;\n obsdim,\n)\n\nIf obsdim=1, equivalent to kernelmatrix!(K, κ, RowVecs(X)) and kernelmatrix(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix!(K, κ, ColVecs(X)) and kernelmatrix(K, κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix_diag","page":"API","title":"KernelFunctions.kernelmatrix_diag","text":"kernelmatrix_diag(κ::Kernel, x::AbstractVector)\n\nCompute the diagonal of kernelmatrix(κ, x) efficiently.\n\nkernelmatrix_diag(κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nCompute the diagonal of kernelmatrix(κ, x, y) efficiently. Requires that x and y are the same length.\n\nkernelmatrix_diag(κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix_diag(κ::Kernel, X::AbstractMatrix, Y::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelmatrix_diag(κ, RowVecs(X)) and kernelmatrix_diag(κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag(κ, ColVecs(X)) and kernelmatrix_diag(κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelmatrix_diag!","page":"API","title":"KernelFunctions.kernelmatrix_diag!","text":"kernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector)\nkernelmatrix_diag!(K::AbstractVector, κ::Kernel, x::AbstractVector, y::AbstractVector)\n\nIn place version of kernelmatrix_diag.\n\nkernelmatrix_diag!(K::AbstractVector, κ::Kernel, X::AbstractMatrix; obsdim)\nkernelmatrix_diag!(\n K::AbstractVector,\n κ::Kernel,\n X::AbstractMatrix,\n Y::AbstractMatrix;\n obsdim\n)\n\nIf obsdim=1, equivalent to kernelmatrix_diag!(K, κ, RowVecs(X)) and kernelmatrix_diag!(K, κ, RowVecs(X), RowVecs(Y)), respectively. If obsdim=2, equivalent to kernelmatrix_diag!(K, κ, ColVecs(X)) and kernelmatrix_diag!(K, κ, ColVecs(X), ColVecs(Y)), respectively.\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#Input-Types","page":"API","title":"Input Types","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"The above API operates on collections of inputs. All collections of inputs in KernelFunctions.jl are represented as AbstractVectors. To understand this choice, please see the design notes on collections of inputs. The length of any such AbstractVector is equal to the number of inputs in the collection. For example, this means that","category":"page"},{"location":"api/","page":"API","title":"API","text":"size(kernelmatrix(k, x)) == (length(x), length(x))","category":"page"},{"location":"api/","page":"API","title":"API","text":"is always true, for some Kernel k, and AbstractVector x.","category":"page"},{"location":"api/#Univariate-Inputs","page":"API","title":"Univariate Inputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"If each input to your kernel is Real-valued, then any AbstractVector{<:Real} is a valid representation for a collection of inputs. More generally, it's completely fine to represent a collection of inputs of type T as, for example, a Vector{T}. However, this may not be the most efficient way to represent collection of inputs. See Vector-Valued Inputs for an example.","category":"page"},{"location":"api/#Vector-Valued-Inputs","page":"API","title":"Vector-Valued Inputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"We recommend that collections of vector-valued inputs are stored in an AbstractMatrix{<:Real} when possible, and wrapped inside a ColVecs or RowVecs to make their interpretation clear:","category":"page"},{"location":"api/","page":"API","title":"API","text":"ColVecs\nRowVecs","category":"page"},{"location":"api/#KernelFunctions.ColVecs","page":"API","title":"KernelFunctions.ColVecs","text":"ColVecs(X::AbstractMatrix)\n\nA lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each column of X represents a single vector.\n\nThat is, by writing x = ColVecs(X), you are saying \"x is a vector-of-vectors, each of which has length size(X, 1). The total number of vectors is size(X, 2).\"\n\nPhrased differently, ColVecs(X) says that X should be interpreted as a vector of horizontally-concatenated column-vectors, hence the name ColVecs.\n\njulia> X = randn(2, 5);\n\njulia> x = ColVecs(X);\n\njulia> length(x) == 5\ntrue\n\njulia> X[:, 3] == x[3]\ntrue\n\nColVecs is related to RowVecs via transposition:\n\njulia> X = randn(2, 5);\n\njulia> ColVecs(X) == RowVecs(X')\ntrue\n\n\n\n\n\n","category":"type"},{"location":"api/#KernelFunctions.RowVecs","page":"API","title":"KernelFunctions.RowVecs","text":"RowVecs(X::AbstractMatrix)\n\nA lightweight wrapper for an AbstractMatrix which interprets it as a vector-of-vectors, in which each row of X represents a single vector.\n\nThat is, by writing x = RowVecs(X), you are saying \"x is a vector-of-vectors, each of which has length size(X, 2). The total number of vectors is size(X, 1).\"\n\nPhrased differently, RowVecs(X) says that X should be interpreted as a vector of vertically-concatenated row-vectors, hence the name RowVecs.\n\nInternally, the data continues to be represented as an AbstractMatrix, so using this type does not introduce any kind of performance penalty.\n\njulia> X = randn(5, 2);\n\njulia> x = RowVecs(X);\n\njulia> length(x) == 5\ntrue\n\njulia> X[3, :] == x[3]\ntrue\n\nRowVecs is related to ColVecs via transposition:\n\njulia> X = randn(5, 2);\n\njulia> RowVecs(X) == ColVecs(X')\ntrue\n\n\n\n\n\n","category":"type"},{"location":"api/","page":"API","title":"API","text":"These types are specialised upon to ensure good performance e.g. when computing Euclidean distances between pairs of elements. The benefit of using this representation, rather than using a Vector{Vector{<:Real}}, is that optimised matrix-matrix multiplication functionality can be utilised when computing pairwise distances between inputs, which are needed for kernelmatrix computation.","category":"page"},{"location":"api/#Inputs-for-Multiple-Outputs","page":"API","title":"Inputs for Multiple Outputs","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions.jl views multi-output GPs as GPs on an extended input domain. For an explanation of this design choice, see the design notes on multi-output GPs.","category":"page"},{"location":"api/","page":"API","title":"API","text":"An input to a multi-output Kernel should be a Tuple{T, Int}, whose first element specifies a location in the domain of the multi-output GP, and whose second element specifies which output the inputs corresponds to. The type of collections of inputs for multi-output GPs is therefore AbstractVector{<:Tuple{T, Int}}.","category":"page"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions.jl provides the following helper functions to reduce the cognitive load associated with working with multi-output kernels by dealing with transforming data from the formats in which it is commonly found into the format required by KernelFunctions. The intention is that users can pass their data to these functions, and use the returned values throughout their code, without having to worry further about correctly formatting their data for KernelFunctions' sake:","category":"page"},{"location":"api/","page":"API","title":"API","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)\nprepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)\nprepare_heterotopic_multi_output_data","category":"page"},{"location":"api/#KernelFunctions.prepare_isotopic_multi_output_data-Tuple{AbstractVector, ColVecs}","page":"API","title":"KernelFunctions.prepare_isotopic_multi_output_data","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::ColVecs)\n\nUtility functionality to convert a collection of N = length(x) inputs x, and a vector-of-vectors y (efficiently represented by a ColVecs) into a format suitable for use with multi-output kernels.\n\ny[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).\n\nFor example, if outputs are initially stored in a num_outputs × N matrix:\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> Y = [1.1 2.1 3.1; 1.2 2.2 3.2]\n2×3 Matrix{Float64}:\n 1.1 2.1 3.1\n 1.2 2.2 3.2\n\njulia> inputs, outputs = prepare_isotopic_multi_output_data(x, ColVecs(Y));\n\njulia> inputs\n6-element KernelFunctions.MOInputIsotopicByFeatures{Float64, Vector{Float64}, Int64}:\n (1.0, 1)\n (1.0, 2)\n (2.0, 1)\n (2.0, 2)\n (3.0, 1)\n (3.0, 2)\n\njulia> outputs\n6-element Vector{Float64}:\n 1.1\n 1.2\n 2.1\n 2.2\n 3.1\n 3.2\n\nSee also prepare_heterotopic_multi_output_data.\n\n\n\n\n\n","category":"method"},{"location":"api/#KernelFunctions.prepare_isotopic_multi_output_data-Tuple{AbstractVector, RowVecs}","page":"API","title":"KernelFunctions.prepare_isotopic_multi_output_data","text":"prepare_isotopic_multi_output_data(x::AbstractVector, y::RowVecs)\n\nUtility functionality to convert a collection of N = length(x) inputs x and output vectors y (efficiently represented by a RowVecs) into a format suitable for use with multi-output kernels.\n\ny[n] is the vector-valued output corresponding to the input x[n]. Consequently, it is necessary that length(x) == length(y).\n\nFor example, if outputs are initial stored in an N × num_outputs matrix:\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> Y = [1.1 1.2; 2.1 2.2; 3.1 3.2]\n3×2 Matrix{Float64}:\n 1.1 1.2\n 2.1 2.2\n 3.1 3.2\n\njulia> inputs, outputs = prepare_isotopic_multi_output_data(x, RowVecs(Y));\n\njulia> inputs\n6-element KernelFunctions.MOInputIsotopicByOutputs{Float64, Vector{Float64}, Int64}:\n (1.0, 1)\n (2.0, 1)\n (3.0, 1)\n (1.0, 2)\n (2.0, 2)\n (3.0, 2)\n\njulia> outputs\n6-element Vector{Float64}:\n 1.1\n 2.1\n 3.1\n 1.2\n 2.2\n 3.2\n\nSee also prepare_heterotopic_multi_output_data.\n\n\n\n\n\n","category":"method"},{"location":"api/#KernelFunctions.prepare_heterotopic_multi_output_data","page":"API","title":"KernelFunctions.prepare_heterotopic_multi_output_data","text":"prepare_heterotopic_multi_output_data(\n x::AbstractVector, y::AbstractVector{<:Real}, output_indices::AbstractVector{Int},\n)\n\nUtility functionality to convert a collection of inputs x, observations y, and output_indices into a format suitable for use with multi-output kernels. Handles the situation in which only one (or a subset) of outputs are observed at each feature. Ensures that all arguments are compatible with one another, and returns a vector of inputs and a vector of outputs.\n\ny[n] should be the observed value associated with output output_indices[n] at feature x[n].\n\njulia> x = [1.0, 2.0, 3.0];\n\njulia> y = [-1.0, 0.0, 1.0];\n\njulia> output_indices = [3, 2, 1];\n\njulia> inputs, outputs = prepare_heterotopic_multi_output_data(x, y, output_indices);\n\njulia> inputs\n3-element Vector{Tuple{Float64, Int64}}:\n (1.0, 3)\n (2.0, 2)\n (3.0, 1)\n\njulia> outputs\n3-element Vector{Float64}:\n -1.0\n 0.0\n 1.0\n\nSee also prepare_isotopic_multi_output_data.\n\n\n\n\n\n","category":"function"},{"location":"api/","page":"API","title":"API","text":"The input types returned by prepare_isotopic_multi_output_data can also be constructed manually:","category":"page"},{"location":"api/","page":"API","title":"API","text":"MOInput","category":"page"},{"location":"api/#KernelFunctions.MOInput","page":"API","title":"KernelFunctions.MOInput","text":"MOInput(x::AbstractVector, out_dim::Integer)\n\nA data type to accommodate modelling multi-dimensional output data. MOInput(x, out_dim) has length length(x) * out_dim.\n\njulia> x = [1, 2, 3];\n\njulia> MOInput(x, 2)\n6-element KernelFunctions.MOInputIsotopicByOutputs{Int64, Vector{Int64}, Int64}:\n (1, 1)\n (2, 1)\n (3, 1)\n (1, 2)\n (2, 2)\n (3, 2)\n\nAs shown above, an MOInput represents a vector of tuples. The first length(x) elements represent the inputs for the first output, the second length(x) elements represent the inputs for the second output, etc. See Inputs for Multiple Outputs in the docs for more info.\n\nMOInput will be deprecated in version 0.11 in favour of MOInputIsotopicByOutputs, and removed in version 0.12.\n\n\n\n\n\n","category":"type"},{"location":"api/","page":"API","title":"API","text":"As with ColVecs and RowVecs for vector-valued input spaces, this type enables specialised implementations of e.g. kernelmatrix for MOInputs in some situations.","category":"page"},{"location":"api/","page":"API","title":"API","text":"To find out more about the background, read this review of kernels for vector-valued functions.","category":"page"},{"location":"api/#Generic-Utilities","page":"API","title":"Generic Utilities","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"KernelFunctions also provides miscellaneous utility functions.","category":"page"},{"location":"api/","page":"API","title":"API","text":"nystrom\nNystromFact","category":"page"},{"location":"api/#KernelFunctions.nystrom","page":"API","title":"KernelFunctions.nystrom","text":"nystrom(k::Kernel, X::AbstractVector, S::AbstractVector{<:Integer})\n\nCompute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k, using indices S. Returns a NystromFact struct which stores a Nystrom factorization satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractVector, r::Real)\n\nCompute a factorization of a Nystrom approximation of the square kernel matrix of data vector X with respect to kernel k using a sample ratio of r. Returns a NystromFact struct which stores a Nystrom factorization satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractMatrix, S::AbstractVector{<:Integer}; obsdim)\n\nIf obsdim=1, equivalent to nystrom(k, RowVecs(X), S). If obsdim=2, equivalent to nystrom(k, ColVecs(X), S).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\nnystrom(k::Kernel, X::AbstractMatrix, r::Real; obsdim)\n\nIf obsdim=1, equivalent to nystrom(k, RowVecs(X), r). If obsdim=2, equivalent to nystrom(k, ColVecs(X), r).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.NystromFact","page":"API","title":"KernelFunctions.NystromFact","text":"NystromFact\n\nType for storing a Nystrom factorization. The factorization contains two fields: W and C, two matrices satisfying:\n\nmathbfK approx mathbfC^intercalmathbfWmathbfC\n\n\n\n\n\n","category":"type"},{"location":"api/#Conditional-Utilities","page":"API","title":"Conditional Utilities","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"To keep the dependencies of KernelFunctions lean, some functionality is only available if specific other packages are explicitly loaded (using).","category":"page"},{"location":"api/#Kronecker.jl","page":"API","title":"Kronecker.jl","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"https://github.com/MichielStock/Kronecker.jl","category":"page"},{"location":"api/","page":"API","title":"API","text":"kronecker_kernelmatrix\nkernelkronmat","category":"page"},{"location":"api/#KernelFunctions.kronecker_kernelmatrix","page":"API","title":"KernelFunctions.kronecker_kernelmatrix","text":"kronecker_kernelmatrix(\n k::Union{IndependentMOKernel,IntrinsicCoregionMOKernel}, x::MOI, y::MOI\n) where {MOI<:IsotopicMOInputsUnion}\n\nRequires Kronecker.jl: Computes the kernelmatrix for the IndependentMOKernel and the IntrinsicCoregionMOKernel, but returns a lazy kronecker product. This object can be very efficiently inverted or decomposed. See also kernelmatrix.\n\n\n\n\n\n","category":"function"},{"location":"api/#KernelFunctions.kernelkronmat","page":"API","title":"KernelFunctions.kernelkronmat","text":"kernelkronmat(κ::Kernel, X::AbstractVector{<:Real}, dims::Int) -> KroneckerPower\n\nReturn a KroneckerPower matrix on the D-dimensional input grid constructed by otimes_i=1^D X, where D is given by dims.\n\nwarning: Warning\nRequires Kronecker.jl and for iskroncompatible(κ) to return true.\n\n\n\n\n\nkernelkronmat(κ::Kernel, X::AbstractVector{<:AbstractVector}) -> KroneckerProduct\n\nReturns a KroneckerProduct matrix on the grid built with the collection of vectors X_i_i=1^D: otimes_i=1^D X_i.\n\nwarning: Warning\nRequires Kronecker.jl and for iskroncompatible(κ) to return true.\n\n\n\n\n\n","category":"function"},{"location":"api/#PDMats.jl","page":"API","title":"PDMats.jl","text":"","category":"section"},{"location":"api/","page":"API","title":"API","text":"https://github.com/JuliaStats/PDMats.jl","category":"page"},{"location":"api/","page":"API","title":"API","text":"kernelpdmat","category":"page"},{"location":"api/#KernelFunctions.kernelpdmat","page":"API","title":"KernelFunctions.kernelpdmat","text":"kernelpdmat(k::Kernel, X::AbstractVector)\n\nCompute a positive-definite matrix in the form of a PDMat matrix (see PDMats.jl), with the Cholesky decomposition precomputed. The algorithm adds a diagonal \"nugget\" term to the kernel matrix which is increased until positive definiteness is achieved. The algorithm gives up with an error if the nugget becomes larger than 1% of the largest value in the kernel matrix.\n\n\n\n\n\nkernelpdmat(k::Kernel, X::AbstractMatrix; obsdim)\n\nIf obsdim=1, equivalent to kernelpdmat(k, RowVecs(X)). If obsdim=2, equivalent to kernelpdmat(k, ColVecs(X)).\n\nSee also: ColVecs, RowVecs\n\n\n\n\n\n","category":"function"},{"location":"design/#Design","page":"Design","title":"Design","text":"","category":"section"},{"location":"design/#why_abstract_vectors","page":"Design","title":"Why AbstractVectors Everywhere?","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"To understand the advantages of using AbstractVectors everywhere to represent collections of inputs, first consider the following properties that it is desirable for a collection of inputs to satisfy.","category":"page"},{"location":"design/#Unique-Ordering","page":"Design","title":"Unique Ordering","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There must be a clearly-defined first, second, etc element of an input collection. If this were not the case, it would not be possible to determine a unique mapping between a collection of inputs and the output of kernelmatrix, as it would not be clear what order the rows and columns of the output should appear in.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Moreover, ordering guarantees that if you permute the collection of inputs, the ordering of the rows and columns of the kernelmatrix are correspondingly permuted.","category":"page"},{"location":"design/#Generality","page":"Design","title":"Generality","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There must be no restriction on the domain of the input. Collections of Reals, vectors, graphs, finite-dimensional domains, or really anything else that you fancy should be straightforwardly representable. Moreover, whichever input class is chosen should not prevent optimal performance from being obtained.","category":"page"},{"location":"design/#Unambiguously-Defined-Length","page":"Design","title":"Unambiguously-Defined Length","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Knowing the length of a collection of inputs is important. For example, a well-defined length guarantees that the size of the output of kernelmatrix, and related functions, are predictable. It also makes it possible to perform internal error-checking that ensures that e.g. there are the same number of inputs in two collections of inputs.","category":"page"},{"location":"design/#AbstractMatrices-Do-Not-Cut-It","page":"Design","title":"AbstractMatrices Do Not Cut It","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Notably, while AbstractMatrix objects are often used to represent collections of vector-valued inputs, they do not immediately satisfy these properties as it is unclear whether a matrix of size P x Q represents a collection of P Q-dimensional inputs (each row is an input), or Q P-dimensional inputs (each column is an input).","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Moreover, they occasionally add some aesthetic inconvenience. For example, a collection of Real-valued inputs, which might be straightforwardly represented as an AbstractVector{<:Real}, must be reshaped into a matrix.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There are two commonly used ways to partly resolve these shortcomings:","category":"page"},{"location":"design/#Resolution-1:-Specify-a-Convention","page":"Design","title":"Resolution 1: Specify a Convention","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"One way that these shortcomings can be partly resolved is by specifying a convention that everyone adheres to regarding the interpretation of rows vs columns. However, opinions about the choice of convention are often surprisingly strongly held, and users regularly have to remind themselves which convention has been chosen. While this resolves the ordering problem, and in principle defines the \"length\" of a collection of inputs, AbstractMatrixs already have a length defined in Julia, which would generally disagree with our internal notion of length. This isn't a show-stopper, but it isn't an especially clean situation.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There is also the opportunity for some kinds of silent bugs. For example, if an input matrix happens to be square because the number of input dimensions is the same as the number of inputs, it would be hard to know whether the correct kernelmatrix has been computed. This kind of bug seems unlikely, but it exists regardless.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Finally, suppose that your inputs are some type T that is not simply a vector of real numbers, say a graph. In this situation, how should a collection of inputs be represented? A N x 1 or 1 x N matrix is the only obvious candidate, but the additional singular dimension seems somewhat redundant.","category":"page"},{"location":"design/#Resolution-2:-Always-Specify-An-obsdim-Argument","page":"Design","title":"Resolution 2: Always Specify An obsdim Argument","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Another way to partly resolve these problems is to not commit to a convention, and instead to propagate some additional information through the codebase that specifies how the input data is to be interpreted. For example, a kernel k that represents the sum of two other kernels might implement kernelmatrix as follows:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"function kernelmatrix(k::KernelSum, x::AbstractMatrix; obsdim=1)\n return kernelmatrix(k.kernels[1], x; obsdim=obsdim) +\n kernelmatrix(k.kernels[2], x; obsdim=obsdim)\nend","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"While this prevents this package from having to pre-specify a convention, it doesn't resolve the length issue, or the issue of representing collections of inputs which aren't immediately represented as vectors. Moreover, it complicates the internals; in contrast, consider what this function looks like with an AbstractVector:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"function kernelmatrix(k::KernelSum, x::AbstractVector)\n return kernelmatrix(k.kernels[1], x) + kernelmatrix(k.kernels[2], x)\nend","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This code is clearer (less visual noise), and has removed a possible bug – if the implementer of kernelmatrix forgets to pass the obsdim kwarg into each subsequent kernelmatrix call, it's possible to get the wrong answer.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This being said, we do support matrix-valued inputs – see Why We Have Support for Both.","category":"page"},{"location":"design/#AbstractVectors","page":"Design","title":"AbstractVectors","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"Requiring all collections of inputs to be AbstractVectors resolves all of these problems, and ensures that the data is self-describing to the extent that KernelFunctions.jl requires.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Firstly, the question of how to interpret the columns and rows of a matrix of inputs is resolved. Users must wrap matrices which represent collections of inputs in either a ColVecs or RowVecs, both of which have clearly defined semantics which are hard to confuse.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"By design, there is also no discrepancy between the number of inputs in the collection, and the length function – the length of a ColVecs, RowVecs, or Vector{<:Real} is equal to the number of inputs.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"There is no loss of performance.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"A collection of N Real-valued inputs can be represented by an AbstractVector{<:Real} of length N, rather than needing to use an AbstractMatrix{<:Real} of size either N x 1 or 1 x N. The same can be said for any other input type T, and new subtypes of AbstractVector can be added if particularly efficient ways exist to store collections of inputs of type T. A good example of this in practice is using Tuple{S, Int}, for some input type S, as the Inputs for Multiple Outputs.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This approach can also lead to clearer user code. A user need only wrap their inputs in a ColVecs or RowVecs once in their code, and this specification is automatically re-used everywhere in their code. In this sense, it is straightforward to write code in such a way that there is one unique source of \"truth\" about the way in which a particular data set should be interpreted. Conversely, the obsdim resolution requires that the obsdim keyword argument is passed around with the data every single time that you use it.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"The benefits of the AbstractVector approach are likely most strongly felt when writing a substantial amount of code on top of KernelFunctions.jl – in the same way that using AbstractVectors inside KernelFunctions.jl removes the need for large amounts of keyword argument propagation, the same will be true of other code.","category":"page"},{"location":"design/#Why-We-Have-Support-for-Both","page":"Design","title":"Why We Have Support for Both","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"In short: many people like matrices, and are familiar with obsdim-style keyword arguments.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"All internals are implemented using AbstractVectors though, and the obsdim interface is just a thin layer of utility functionality which sits on top of this. To avoid confusion and silent errors, we do not favour a specific convention (rows or columns) but instead it is necessary to specify the obsdim keyword argument explicitly.","category":"page"},{"location":"design/#inputs_for_multiple_outputs","page":"Design","title":"Kernels for Multiple-Outputs","text":"","category":"section"},{"location":"design/","page":"Design","title":"Design","text":"There are two equally-valid perspectives on multi-output kernels: they can either be treated as matrix-valued kernels, or standard kernels on an extended input domain. Each of these perspectives are convenient in different circumstances, but the latter greatly simplifies the incorporation of multi-output kernels in KernelFunctions.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"More concretely, let k_mat be a matrix-valued kernel, mapping pairs of inputs of type T to matrices of size P x P to describe the covariance between P outputs. Given inputs x and y of type T, and integers p and q, we can always find an equivalent standard kernel k mapping from pairs of inputs of type Tuple{T, Int} to the Reals as follows:","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"k((x, p), (y, q)) = k_mat(x, y)[p, q]","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"This ability to treat multi-output kernels as single-output kernels is very helpful, as it means that there is no need to introduce additional concepts into the API of KernelFunctions.jl, just additional kernels! This in turn simplifies downstream code as they don't need to \"know\" about the existence of multi-output kernels in addition to standard kernels. For example, GP libraries built on top of KernelFunctions.jl just need to know about Kernels, and they get multi-output kernels, and hence multi-output GPs, for free.","category":"page"},{"location":"design/","page":"Design","title":"Design","text":"Where there is the need to specialise implementations for multi-output kernels, this is done in an encapsulated manner – parts of KernelFunctions that have nothing to do with multi-output kernels know nothing about the existence of multi-output kernels.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"EditURL = \"../../../../examples/support-vector-machine/script.jl\"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/support-vector-machine/script.jl\"","category":"page"},{"location":"examples/support-vector-machine/#Support-Vector-Machine","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"(Image: )","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"In this notebook we show how you can use KernelFunctions.jl to generate kernel matrices for classification with a support vector machine, as implemented by LIBSVM.","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"using Distributions\nusing KernelFunctions\nusing LIBSVM\nusing LinearAlgebra\nusing Plots\nusing Random\n\n# Set seed\nRandom.seed!(1234);","category":"page"},{"location":"examples/support-vector-machine/#Generate-half-moon-dataset","page":"Support Vector Machine","title":"Generate half-moon dataset","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Number of samples per class:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"n1 = n2 = 50;","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We generate data based on SciKit-Learn's sklearn.datasets.make_moons function:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"angle1 = range(0, π; length=n1)\nangle2 = range(0, π; length=n2)\nX1 = [cos.(angle1) sin.(angle1)] .+ 0.1 .* randn.()\nX2 = [1 .- cos.(angle2) 1 .- sin.(angle2) .- 0.5] .+ 0.1 .* randn.()\nX = [X1; X2]\nx_train = RowVecs(X)\ny_train = vcat(fill(-1, n1), fill(1, n2));","category":"page"},{"location":"examples/support-vector-machine/#Training","page":"Support Vector Machine","title":"Training","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We create a kernel function:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"k = SqExponentialKernel() ∘ ScaleTransform(1.5)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Squared Exponential Kernel (metric = Distances.Euclidean(0.0))\n\t- Scale Transform (s = 1.5)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"LIBSVM can make use of a pre-computed kernel matrix. KernelFunctions.jl can be used to produce that using kernelmatrix:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"model = svmtrain(kernelmatrix(k, x_train), y_train; kernel=LIBSVM.Kernel.Precomputed)","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"LIBSVM.SVM{Int64, LIBSVM.Kernel.KERNEL}(LIBSVM.SVC, LIBSVM.Kernel.Precomputed, nothing, 100, 100, 2, [-1, 1], Int32[1, 2], Float64[], Int32[], LIBSVM.SupportVectors{Vector{Int64}, Matrix{Float64}}(23, Int32[11, 12], [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1.0 0.8982223633317491 0.9596163170022011 0.8681749917956418 0.7405298560587654 0.6670753594660519 0.1779671467515013 0.12581804740739566 0.05707943398657384 0.02764121723161683 0.033765857073249396 0.2680295766735067 0.29939058530607915 0.37151489965630213 0.3524014409758097 0.2908959282977835 0.3880509811446821 0.8766234308310106 0.82681374480545 0.8144257681324784 0.6772129558340088 0.6360692761241019 0.27226866397259536; 0.8982223633317491 1.0 0.965182128960536 0.9914891432258488 0.8867564750187009 0.9019354510254446 0.2147708440814802 0.15771406856492454 0.05887040570928494 0.017222970583007854 0.019222888349132574 0.221500149894056 0.2978310573718274 0.3053559535776424 0.2890446485251837 0.22090114119439183 0.3141485519019614 0.6220352391872924 0.5857825177211226 0.6973386670166851 0.7178826818314505 0.7710611517712889 0.4654568122945319; 0.9596163170022011 0.965182128960536 1.0 0.9626046043667029 0.8869903689807833 0.8153402743825475 0.25975227903072295 0.19192116220346336 0.08434059685077588 0.03220850516134753 0.0366758927128704 0.31408772981722 0.3824704266612618 0.4200037751884887 0.4001773046096343 0.3219312217176709 0.43280734456335546 0.750503533504958 0.6647402210580929 0.6926170128782051 0.6277007998632926 0.6433503699452944 0.32400415670963956; 0.8681749917956418 0.9914891432258488 0.9626046043667029 1.0 0.9370667957752087 0.934295025587645 0.26444251222948995 0.19879359752203962 0.07665919270519939 0.021595654487073727 0.023425682392132743 0.2566761906912133 0.3496676024988405 0.34456852113508585 0.3275077643059417 0.25092423515822787 0.35232020079983056 0.5892979561473187 0.5284801502144095 0.6217604813241744 0.6430231195027034 0.7109544049100224 0.44057810112560447; 0.7465952329465504 0.9304484985812767 0.8897100197930106 0.9678435903690089 0.9814954031669109 0.9779840213642631 0.3466778268733209 0.27206683288049266 0.10510054534990214 0.024906016068519672 0.02537581531241299 0.2819293887595886 0.4088052209237594 0.3636370022084356 0.34754098347809126 0.26247121953918195 0.3672027632424591 0.46578384178509197 0.38887087230008666 0.4701103002702702 0.5145210485797571 0.6123061110630164 0.42723601664089345; 0.7405298560587654 0.8867564750187009 0.8869903689807833 0.9370667957752087 1.0 0.9265705090470907 0.4401947652983322 0.35262403649115526 0.15320607160230898 0.041175981935510725 0.04156995738050753 0.37540034365943104 0.5190650165661463 0.46669986410386666 0.4490622985140926 0.3499350203111987 0.46962470972808273 0.4883331096338951 0.3798584854063081 0.4217137127807958 0.4303538604829861 0.5091151748567635 0.32622076287640006; 0.6670753594660519 0.9019354510254446 0.8153402743825475 0.934295025587645 0.9265705090470907 1.0 0.2827193698331228 0.2209480096839663 0.07504013686337539 0.014371637034094253 0.01439904495484344 0.2022331299863698 0.3174100045147389 0.2670237514797323 0.2539121194008726 0.18411214167319784 0.26924082958699697 0.3775897748372698 0.33049550236819253 0.4440238046305932 0.5378606847561948 0.6649412466468505 0.5362623212460318; 0.6702595528823198 0.8606244226283823 0.8314916696615914 0.9158026981710833 0.9886587344335546 0.9560332901136585 0.43011039397992096 0.34820512587201075 0.14124895742843027 0.032158966523388476 0.031580446301945404 0.32479775862613985 0.47740665014325184 0.4040619518789057 0.38836949912884633 0.29482897357398075 0.4047606090427496 0.40908071544297814 0.3195106528226398 0.37846326245707385 0.41478881966429043 0.5119444241914671 0.36732348167804796; 0.5958832606985172 0.7761919158084817 0.764543603784896 0.8444984180740654 0.9708780964035508 0.9003101222501712 0.5272836631986195 0.4399206665565803 0.19102502302045962 0.043420828006372085 0.04129805359453605 0.37942807492906316 0.5573589063405943 0.4543619576452872 0.4394388167665561 0.3375627830189747 0.45182010123593386 0.36215845599297103 0.2634668608558619 0.30067673081800705 0.3243249963940758 0.4116488074528402 0.2958856882102383; 0.6885947324331928 0.8568830230020188 0.8463587912182832 0.9136212483096897 0.9958882004323975 0.9330458507202257 0.460198027818651 0.3733503341923742 0.15937475820815994 0.0394059990098187 0.038929261709730496 0.3649438549033214 0.5202001774588284 0.4496246527453173 0.4330574268345955 0.33404405039411145 0.4506081711573255 0.43638796244437944 0.33426657209516675 0.3798417694355356 0.4001476735300954 0.48685776367870665 0.3302703252897188; 0.5090115987229845 0.66413624932743 0.6748754932289617 0.7410778570661924 0.9169250942417487 0.8005426352978952 0.6529042363424815 0.563579434224383 0.2698518181195754 0.06354590398806001 0.05851083802910193 0.45550338406982604 0.6594734277650144 0.5208034250731294 0.5076214704665837 0.3978825263055807 0.5138380455506879 0.3131959074096939 0.20890435984227568 0.22461858592695394 0.23387430115253083 0.30414333483721223 0.21357650440692952; 0.45093840203402863 0.6528439740207388 0.621293380868375 0.7281001827134798 0.8878776747702869 0.8483652168656046 0.5523273229286175 0.4772875263856446 0.19761071338591454 0.03572808338522635 0.03200591765116194 0.3254023798230707 0.5196262009999181 0.37997186968805663 0.36850957018497515 0.27531375747209685 0.37362641649043415 0.24573139502121816 0.17123499867505312 0.20822585856181272 0.24503580982318168 0.3360215134566464 0.282452943899592; 0.3853374653727806 0.5531275651750578 0.5456456216692458 0.63187924915747 0.8272788783068459 0.7400449329312268 0.6740778081979193 0.6015241987774301 0.27711939662891033 0.05315958324949652 0.046303407217568385 0.39204087574676183 0.6116325191520129 0.4372487002786384 0.42739649234665433 0.3269933488950957 0.42689765420513015 0.2149742263615225 0.1373845757765515 0.15601083788315914 0.1754427451629185 0.24492436885056065 0.19788854100040332; 0.4618500914094273 0.6128977794159381 0.6250323394686075 0.6915365382967459 0.88189001173394 0.7603121381740631 0.6931399190748629 0.6074867523562785 0.29692455405263407 0.0681577107585657 0.06159926451755685 0.4645954678327457 0.6786212904021323 0.5221512124616867 0.5102875582105725 0.40055028127076997 0.5131110004920902 0.28037311469308024 0.18119852159344918 0.19343543701106478 0.20210176995756082 0.2678694503178588 0.1914666250241892; 0.2696302037951813 0.39638152158224865 0.403404894882526 0.46949354523118425 0.6809782176032294 0.5691943970817303 0.7959863116838541 0.7460243621745607 0.383759661562218 0.07333545211725394 0.06062770952823484 0.4276361345098877 0.6667776453895222 0.44825730820354187 0.44260682761401715 0.34513919555944916 0.43243837419232345 0.14931467351759206 0.08501132835349595 0.09090598935589621 0.09966166276310144 0.14565406652997917 0.1181167187860405; 0.3002590494463073 0.4115977376244659 0.43517761205157995 0.4854137709312024 0.7013669019363106 0.5580577880472913 0.8536237862527719 0.7944463939442774 0.4423829365109098 0.10024118415255136 0.08491613895458582 0.5164984752370707 0.7562127396153628 0.5384043672737264 0.532633886946863 0.4273028327796133 0.5213353428367101 0.17995021704234954 0.10110435738873308 0.10066689644324499 0.1023456357653284 0.14371084800072215 0.10376729355409814; 0.23895991490217605 0.33249975589925446 0.3570356667989706 0.3998440847736826 0.6103384074505219 0.46903410987322885 0.8998463600755164 0.8599178355605582 0.5066796013929806 0.11396841785672483 0.0938145408103168 0.5199141678644349 0.7624727563004503 0.5243659291344558 0.5215260868720673 0.4222997164056707 0.5044431497960399 0.14229601411077292 0.07518839830888858 0.07265639350751003 0.0730416671251987 0.10523885318589322 0.07641455926683688; 0.1915586377215268 0.2782828209211749 0.2967514734538114 0.33993222993655975 0.5402177192407522 0.41457098384450736 0.8940395698131182 0.8732189313788711 0.5158710981816049 0.10661722182344716 0.08504323591413473 0.47313025445505164 0.7153672453884371 0.46747599643639337 0.4662739691425648 0.37502751142299 0.4468899647601597 0.10944611467787402 0.05573856274262572 0.054529742226822116 0.05633615986012236 0.0842054572140432 0.06479883181573562; 0.22705224038961044 0.31938520593304515 0.34224069664715906 0.385495402966531 0.5939999674274448 0.4566062935524366 0.899155765927396 0.8637017932666784 0.5087259826371333 0.11196526875215826 0.09146631735404127 0.5082775947180933 0.7512932189769945 0.5102218707630334 0.5077837081682253 0.41038655426963877 0.4900958753322606 0.1337816259051161 0.0700979881035211 0.06799122461651445 0.06885045790765319 0.10009947593776944 0.0737756297099595; 0.13939429772646458 0.19866201340261797 0.22114257212806596 0.24864914930042606 0.42520802222653464 0.302501776239137 0.9372245539818653 0.9455339290308946 0.6315082072142529 0.14232088029862777 0.11065257979685114 0.497993580135406 0.7281911500795765 0.46872860910213954 0.4714826024303301 0.3903354300403334 0.44502619470509736 0.08256405886680711 0.03835534537202231 0.034581508309323515 0.033704650675767854 0.05102221540013976 0.03704322052953614; 0.14536068431690077 0.22095226487516476 0.23447742603357294 0.274909660351764 0.45833250114914875 0.34957510182253293 0.8743978358229307 0.8761033364462417 0.5229671176330489 0.0991832584928122 0.07635359024682037 0.42104563348070084 0.6565602859173729 0.40568985690003667 0.40610443722599326 0.3248474190874977 0.3850374404413671 0.07960429303749694 0.03874287443935803 0.03821774674349671 0.040517865120029126 0.0630563129568011 0.0514750781731886; 0.14763143381426758 0.20697373951526962 0.23172641379954417 0.25814071080843315 0.43782614347195603 0.3097871356075422 0.948191751644435 0.9518038099641223 0.6412421014386851 0.14982574968207624 0.11752904351897316 0.5195447242996001 0.7497513218160706 0.4906394512641361 0.4933596158142264 0.41032684627296356 0.46659647468974 0.08895540630063033 0.041555343865819036 0.0370694847518811 0.035626747327519616 0.05330326825496781 0.03775624173646896; 0.0988933742294342 0.12124815101071282 0.1522607181459668 0.1549588355463188 0.2869756433774373 0.17057949531906372 0.9559135116536135 0.9892814033753422 0.8831001155923481 0.301076796055474 0.23744952288817556 0.6342825599362547 0.794592834668333 0.5579899828492979 0.5688794841651086 0.5133182360119145 0.5290723135633687 0.07062859133770322 0.028724907143533655 0.02063694811643021 0.0163555000764835 0.023361093148916098 0.012804211869588852; 0.1779671467515013 0.2147708440814802 0.25975227903072295 0.26444251222948995 0.4401947652983322 0.2827193698331228 1.0 0.9840440354640055 0.7746626759108745 0.259331300415348 0.21532000371278573 0.7098399745938505 0.897129803886899 0.6668121606496512 0.6725100792205622 0.5926610833970605 0.639910660474017 0.12677413631301512 0.05828369828510033 0.04500739970678052 0.03699408218865754 0.05063099709508791 0.028066326109481347; 0.12581804740739566 0.15771406856492454 0.19192116220346336 0.19879359752203962 0.35262403649115526 0.2209480096839663 0.9840440354640055 1.0 0.8196815897955259 0.2585454040835821 0.2062681823099032 0.6395908524826316 0.8253149042783318 0.5796701178937012 0.5878473919825917 0.5191073343197649 0.5515646672943586 0.08688786848645763 0.03740368096386031 0.028523064291676215 0.023677093828563235 0.033770552150204226 0.0195077208623248; 0.13635764102815603 0.17700879424928978 0.20952156641370756 0.22209299900339824 0.387023745781692 0.2526789145766851 0.9840473928465677 0.9944545163994348 0.7628015511728252 0.21862995489084638 0.17378734562194012 0.6072327127100751 0.8120913399429163 0.5587815024853605 0.5649398681849662 0.48910402339466696 0.531808973769114 0.09017310666726844 0.03999940594359134 0.032134604355827 0.02797743047976866 0.04045661550302929 0.024940657478324198; 0.03738526797037774 0.0518722922443791 0.06469761673719454 0.07006166077431174 0.15008890206353956 0.08665512641758483 0.7784277540898672 0.8696233384872661 0.8146647085648284 0.22136689810316545 0.15743791729748416 0.3968445993948711 0.5391261134094336 0.32293628667971663 0.33300869834150976 0.2972564334545365 0.29975944910030017 0.023848286045824146 0.008420633155828174 0.006112619378410749 0.00516049180195299 0.008268679880159445 0.0052975977111670795; 0.042144581324510336 0.0494746902418995 0.06742933413721425 0.06600663846708471 0.13930785683731703 0.07183957093968951 0.7790781696938223 0.8536051172386016 0.9590138186434369 0.3903921195934206 0.2950426290497306 0.5288899615616742 0.6189309135561756 0.4262505758493195 0.44128790558923603 0.4208889858046393 0.39942670313494494 0.032438697615701076 0.011172295974476632 0.006870690987412239 0.004857666087518073 0.007060720348024933 0.0034344193347111735; 0.05312991544390621 0.05941513640392731 0.08194706236820062 0.07813203139092116 0.15906453281962285 0.08151519050847295 0.8085392731314344 0.8681139298684074 0.9848651453003653 0.443246308165159 0.3456733523248384 0.6037896564824075 0.6813118162978405 0.4950714556869529 0.5113993322285312 0.49277881830487924 0.4667583768828605 0.0429226487701534 0.015239324750107681 0.009170625347595353 0.006257708243494053 0.00875319860215057 0.0039747823519354995; 0.05707943398657384 0.05887040570928494 0.08434059685077588 0.07665919270519939 0.15320607160230898 0.07504013686337539 0.7746626759108745 0.8196815897955259 1.0 0.5440195902835544 0.43906982651942317 0.6673967547317672 0.7023400808140081 0.5485677304431098 0.5670659502059522 0.5624209010974132 0.5201938090487075 0.05039216793847928 0.01791524354832784 0.010043369678747171 0.006325305381042625 0.00840984174401409 0.0033555198691232182; 0.0239028553317282 0.030184756247153024 0.040854218058537374 0.041510328633494326 0.09483008177233723 0.048340772261097814 0.6717838510012278 0.7676403150888159 0.8793112190224525 0.3119804989346951 0.22247711097256292 0.3913818163355702 0.481152264589789 0.30253086008317853 0.3150901394384516 0.29804879470704987 0.2801577440280252 0.0171896769354173 0.005490096384196609 0.0034159985987988898 0.0025153999701487658 0.0039043781883587865 0.002087265775451305; 0.031461748783796255 0.03877763079418788 0.05235828887075337 0.05259747403989502 0.11577900027217572 0.059784830395976214 0.7284683797887744 0.8167846933186389 0.9160729338118098 0.3382566896841279 0.24707350935618375 0.44839573463782234 0.5435604959271204 0.35385233350424394 0.3673850921598674 0.3474062654846442 0.32935166307385894 0.023094272546330587 0.007660825323682672 0.004791128233787445 0.003499654757292123 0.005296572963316763 0.002754516536638302; 0.0202635020156832 0.0209515968555071 0.031856292217650496 0.028621916401232315 0.06575704582809962 0.028713198747047974 0.5561499763492528 0.6276780889906601 0.9225361894208831 0.537563426752421 0.40805784519141053 0.45230817484429436 0.46279255715733986 0.34051076155197635 0.35722093503244967 0.36821581556576116 0.3181318631289292 0.018326268390209892 0.005525107949270952 0.002764399785944711 0.0016269608580749297 0.0022643385581135253 0.0008634402327095031; 0.03917881206249196 0.04187141495743542 0.0602770437308414 0.05569284553771938 0.11787868067422283 0.05651647912609812 0.7170279636314995 0.7811392796869542 0.9868755418205789 0.507181661805653 0.3946817184897088 0.5692597969620196 0.6111220282142971 0.45306704851231877 0.47065706470710794 0.467410267660561 0.4263135976218018 0.0335840367945797 0.0112547984221705 0.006246809772638481 0.003975045243333954 0.005489661056955841 0.0022783159887154033; 0.04503255088410135 0.0439137702967996 0.06568078940616273 0.05754622086226787 0.11797430518899149 0.0542341914980732 0.6848945717357943 0.7301845715877101 0.9867821313846442 0.6248955778853352 0.5079623735649396 0.6419956195484627 0.6383844961053452 0.5159463011662203 0.5357861713088927 0.5480569804281196 0.4892367713976803 0.0425914300452601 0.014482620179200524 0.0074868753371495735 0.0043749674598642044 0.0056845719431328585 0.002045738397676184; 0.020015288581754945 0.019539997383675744 0.0305983363763088 0.026560055130788258 0.060568717016068814 0.02548996952986846 0.5212517692914928 0.5837589968251036 0.9104128747187193 0.6087759155456162 0.4723327572739916 0.4681713902460597 0.4553175340992092 0.3517956141533186 0.3694712715628193 0.3893559371646623 0.3298272088546007 0.01929969464392214 0.005784803454931787 0.0027392873350079857 0.0015186313676977968 0.00204248371497284 0.0007090901969261304; 0.020666052296526998 0.023467210104345954 0.03394439944734565 0.03227571537361978 0.07474354689359762 0.03478309139442751 0.6050706431823535 0.6902380132644816 0.9157011962379701 0.4252868608831877 0.31207368821244674 0.41915963873727863 0.46633517155931187 0.3173525840288823 0.3321740061129138 0.32987532663994706 0.29493718842290595 0.01682097194725037 0.005145059748221362 0.0028260660732993795 0.0018375597258384604 0.0027007138580146654 0.0012020186941257484; 0.02453101432184634 0.020098364892380587 0.033807186321682364 0.026519136869644185 0.05668770862680506 0.022080288969644857 0.4402683441382192 0.4723140706097761 0.8338110421697035 0.8296862086740819 0.7008351158890717 0.5440749777729216 0.45737691515438816 0.41745398965791825 0.43796100209216043 0.48788632097996637 0.39735131936242424 0.028530362783343567 0.008830718283431016 0.003661080212258824 0.0017275175383884805 0.0020652670212335587 0.0005465605530047422; 0.010772381969517289 0.00808979915556405 0.014769223974223632 0.010907548917201483 0.025105066248112838 0.00861005735113974 0.27446992177652213 0.30268057727357456 0.6563261019548249 0.8423122954493703 0.7087959360554233 0.3816217504493905 0.2915784265479316 0.27667027303245256 0.29339896442424834 0.3462653613105691 0.2623718667950521 0.014036631757401184 0.003892193697218935 0.0013824598149453928 0.000570663656527681 0.0006655357305495249 0.00014821787811893474; 0.013102125076381291 0.009501254374372565 0.01743056916880381 0.012641115714999962 0.028109874095783 0.009665720685806211 0.2779944240132419 0.3009422157277764 0.6496100565156806 0.8921208950268356 0.7707215094068156 0.4153473315697215 0.3097033352945198 0.30652449538189097 0.3242452180605052 0.38457230531389347 0.29222754331272954 0.0176491442562162 0.005052976710183603 0.0017795086910056906 0.0007191096459963922 0.0008135871421187968 0.0001729568595091208; 0.010048640046801751 0.007556801509146678 0.01383630447940828 0.010219144448059669 0.023720538640699704 0.008086205235382792 0.2673028201381964 0.2959612329986008 0.6480835552991425 0.8326590465631913 0.6977877995262115 0.3695874583691571 0.282221028802535 0.26655787487127675 0.28291666669202015 0.3345015952465225 0.2525390976336497 0.013094227782891262 0.003595847554140322 0.001270090006133873 0.0005228431863253228 0.0006118815220643209 0.00013617786605785216; 0.022349563450720516 0.015126611441125632 0.027736426902443566 0.019448577925125717 0.03948248730102741 0.013912843541017676 0.29407180499185603 0.3036682389024967 0.6295948777410747 0.9760878235703699 0.8971483297034317 0.510873410149174 0.3648754706376355 0.3962367174131936 0.4160536437133086 0.49505438923170403 0.38266060041477884 0.032002468097764726 0.010030791663580315 0.003541268511179874 0.001388397560167188 0.0014686522229405998 0.0002871893433972941; 0.010020005268819202 0.006809770300057249 0.013011105080329613 0.009061216335098812 0.0203203311204038 0.006608239130026839 0.2181377208067792 0.23591612481445193 0.5571316265641847 0.9019480717339876 0.7928873516646797 0.3622506780828305 0.25412502873565396 0.26395075463572065 0.2800632926839618 0.34220302701090444 0.25218637023914864 0.014558062704000863 0.004058708035772421 0.0013244042014423662 0.0004960057823668772 0.000542796465649497 0.00010316672930654405; 0.01106332568616253 0.006887193194115914 0.013554569709165635 0.008985016403844404 0.019232335629336378 0.00608875040752228 0.18606570349931004 0.19565849249653774 0.48225133952423743 0.9453876390694811 0.8725629002342125 0.3644945741438321 0.23844406528632542 0.27079632723779745 0.28673978102317077 0.35878774000611285 0.26108600973253054 0.017606861104932217 0.005073103983778686 0.001567301714496989 0.0005453728216072849 0.0005601086767381032 9.34005648300471e-5; 0.01657908523512305 0.011582747078381944 0.021314338205802762 0.015167963313664786 0.032355502612115034 0.011201905491084553 0.28242091851773066 0.29908821320436807 0.6382850228010263 0.9397497324044695 0.8367176827710091 0.45643200424037295 0.3319584631188468 0.3443458093220082 0.3630946413341951 0.4323367624470917 0.3303136751483621 0.023116247423315056 0.006887297927401206 0.0024132953755383753 0.0009557168244199856 0.001045242382536408 0.00021182221215739486; 0.02764121723161683 0.017222970583007854 0.03220850516134753 0.021595654487073727 0.041175981935510725 0.014371637034094253 0.259331300415348 0.2585454040835821 0.5440195902835544 1.0 0.9702064166750799 0.530245218387723 0.3560307890203881 0.4238742345642878 0.44332843787390197 0.5365850265213121 0.4136915663687128 0.04297162933120202 0.01420754067753986 0.00483919981495718 0.0017871776252900312 0.0017700462041020729 0.00030801400193521903; 0.033765857073249396 0.019222888349132574 0.0366758927128704 0.023425682392132743 0.04156995738050753 0.01439904495484344 0.21532000371278573 0.2062681823099032 0.43906982651942317 0.9702064166750799 1.0 0.5266287956023967 0.3307939384157074 0.43601990045358663 0.4539182184875824 0.5591960801816629 0.4306259447317991 0.057385150231952155 0.02019180375858439 0.006632129374597611 0.002298515218977774 0.0021163880760639107 0.00032463677682729514; 0.02553578820521561 0.0158644870161105 0.029838914605637666 0.019953454894567846 0.038401012604959726 0.013269650716428449 0.2509244773194308 0.251186735069333 0.5371677022503326 0.9995646051393732 0.9667899675361993 0.513751166350262 0.3433357299717392 0.4081395073506391 0.42733645217635563 0.5192419691029252 0.39799729028929487 0.03990347409204987 0.013038212795705478 0.0043927214930709535 0.0016094244034674434 0.0015961297818598565 0.0002754711459087229; 0.014684836067894124 0.007863396938894306 0.016093036470496366 0.009825718452488018 0.0189014126385701 0.005844366606428707 0.13849007975235583 0.13706934957395644 0.3505681951871089 0.9408488893951146 0.9551754247357206 0.3639737993290779 0.21243271709551226 0.2843646309443169 0.29919652216983733 0.3870026762693761 0.2792653571316844 0.027184350652692695 0.008556747740127378 0.002461193413214283 0.0007652106152402142 0.0006987527433192667 9.397135335575793e-5; 0.021425769737078368 0.011961446785158796 0.023616854868073967 0.014831082339553991 0.027747811476019044 0.009060931748526886 0.17752833012020347 0.17401094944541437 0.40750501628989283 0.9721752042840985 0.985527711544548 0.4396878920679833 0.2681896715550059 0.35127963758750874 0.36800110805489483 0.46402546238163483 0.34531620678243374 0.037617774125204916 0.012368962147916036 0.0038068720385083673 0.001257026852505441 0.0011643628241787124 0.00016961483943713626; 0.2680295766735067 0.221500149894056 0.31408772981722 0.2566761906912133 0.37540034365943104 0.2022331299863698 0.7098399745938505 0.6395908524826316 0.6673967547317672 0.530245218387723 0.5266287956023967 1.0 0.9204011029470381 0.9763204269194343 0.9834744899012892 0.9800453255225883 0.9670027469525624 0.2868166055620744 0.1396173432997934 0.0802050018418445 0.04629682347632554 0.04928910656810396 0.015144618580948671; 0.29939058530607915 0.2978310573718274 0.3824704266612618 0.3496676024988405 0.5190650165661463 0.3174100045147389 0.897129803886899 0.8253149042783318 0.7023400808140081 0.3560307890203881 0.3307939384157074 0.9204011029470381 1.0 0.9092611854055276 0.9117485102579749 0.8437830107817399 0.8913223951781822 0.26003030092553525 0.1303827813666727 0.09015777074260106 0.06341517666632882 0.07518254013006463 0.03137762242865076; 0.37151489965630213 0.3053559535776424 0.4200037751884887 0.34456852113508585 0.46669986410386666 0.2670237514797323 0.6668121606496512 0.5796701178937012 0.5485677304431098 0.4238742345642878 0.43601990045358663 0.9763204269194343 0.9092611854055276 1.0 0.9993139026257465 0.9765798100043396 0.9987957619674939 0.39412877854863043 0.2098767698470255 0.12780803517686787 0.07623734052074496 0.07896775479712795 0.02470799941856937; 0.3524014409758097 0.2890446485251837 0.4001773046096343 0.3275077643059417 0.4490622985140926 0.2539121194008726 0.6725100792205622 0.5878473919825917 0.5670659502059522 0.44332843787390197 0.4539182184875824 0.9834744899012892 0.9117485102579749 0.9993139026257465 1.0 0.9815187936126483 0.9969143579721336 0.37562956856679103 0.19703163333480644 0.11850074321536054 0.07008717427360553 0.07279694039680448 0.022599211149285328; 0.39465231175913795 0.31587551141322445 0.43642677197878865 0.3530737581159885 0.46672673050010677 0.26715889535835474 0.622155656205321 0.5337483231906022 0.5046262630854164 0.41089803125627195 0.43085691731721165 0.961384843855092 0.8785837060449794 0.9969370612351908 0.9945537399369616 0.97609997854102 0.9995568027554731 0.4295214100756645 0.2338386266049015 0.14126529235623905 0.08283907919566438 0.08390006402557657 0.025324299741833464; 0.2908959282977835 0.22090114119439183 0.3219312217176709 0.25092423515822787 0.3499350203111987 0.18411214167319784 0.5926610833970605 0.5191073343197649 0.5624209010974132 0.5365850265213121 0.5591960801816629 0.9800453255225883 0.8437830107817399 0.9765798100043396 0.9815187936126483 1.0 0.9760363402932355 0.3396761689366942 0.17122729619266394 0.09352156540595309 0.05035919518075388 0.05038867912666139 0.01366097735931823; 0.3514836919845527 0.25827905726818784 0.37376328779438567 0.2871031630484072 0.3774708549469005 0.20356442769718722 0.527254124515189 0.4483191866084228 0.46652883939298834 0.4676429245287537 0.505344784277436 0.9424242881899214 0.7976158902909226 0.971098264163409 0.9709671758028702 0.9864017590543077 0.9781505431297239 0.42127512095013353 0.22585472214185204 0.1251177654786094 0.06693346651287566 0.06454104481834383 0.01690822793519799; 0.3880509811446821 0.3141485519019614 0.43280734456335546 0.35232020079983056 0.46962470972808273 0.26924082958699697 0.639910660474017 0.5515646672943586 0.5201938090487075 0.4136915663687128 0.4306259447317991 0.9670027469525624 0.8913223951781822 0.9987957619674939 0.9969143579721336 0.9760363402932355 1.0 0.4175584225095954 0.22574366435124235 0.13708488052338838 0.08106449463694666 0.08284201786267843 0.02541251142320079; 0.37961657901188395 0.25192283506342733 0.37396034073513706 0.27177013275063033 0.3316295475090898 0.17635188715914188 0.3805158733692937 0.31022132785589657 0.32995603743246077 0.4085529653091237 0.4713640504577533 0.8305039703656368 0.6510083421165387 0.8867144586887958 0.8825664115254728 0.9163437520779888 0.9045793138133195 0.5037709664927494 0.28752565713902434 0.1520569532177624 0.07546592900068064 0.0671567954033988 0.01522336553239881; 0.4702831429583742 0.3213335719746325 0.4597881972580735 0.34164544472267744 0.39813969852691955 0.22491433200447894 0.3765147624730655 0.3011668417307773 0.2904874285924168 0.3265331196970446 0.3807124240825537 0.7964028874115803 0.6475849179588237 0.878341751854222 0.8691210753475811 0.879767432078501 0.8991737718575608 0.5982998949558497 0.3633531261013041 0.20600362457781846 0.10808286790933438 0.09633093909886627 0.02331194601865261; 0.526795288057018 0.3940391213462967 0.5388779005079533 0.42266049253674903 0.49969396504753033 0.298501330474785 0.4644036535619441 0.37649106648873704 0.3319524786282605 0.300825324374188 0.33846013954020493 0.8391821514224157 0.7387531166728089 0.9266670512086935 0.9155922954238254 0.89576457108235 0.9431591120717556 0.6061425707332225 0.37032063184699016 0.22846758678703566 0.1315297906335085 0.12382813579712616 0.03470780014308738; 0.326708533419188 0.2430452816843132 0.3528498094599045 0.2724891632283225 0.36673219291844344 0.19573728896816622 0.5532605885480469 0.4759742322481321 0.5037422336172169 0.49604598976832465 0.5285094201634164 0.9600456733812273 0.81751796330167 0.9761094484348516 0.9780088993021706 0.9950015905287559 0.9801978533385329 0.3878742388347221 0.20288958549179464 0.11167812171391878 0.05985022255614695 0.05853988792012992 0.015526771107081744; 0.5619207849380442 0.38384512737319587 0.5345032833933165 0.39943888193571503 0.4372646966133805 0.26024918463886315 0.3280472343236939 0.2549281555415764 0.22593650441538846 0.24574382979335188 0.29442973469375133 0.7110437799713303 0.5859751095762021 0.8158127630991835 0.8019023386938486 0.7975187692574014 0.8407203767536858 0.7064956340024616 0.4621084542264419 0.27596525043225517 0.1494008366974313 0.13051365577846652 0.03227936170155413; 0.6430706658631261 0.45006841886534327 0.6078444172622047 0.46271359870464523 0.4874771713377931 0.30510864810623706 0.31132575025507137 0.23812417686552184 0.19454650831020817 0.19524813962125906 0.23598888415659178 0.6574493787863069 0.5585838247963583 0.7749782758058278 0.7580532503023097 0.7381503679619124 0.8009681622942774 0.7806334105161824 0.5376983537943203 0.34025026525820296 0.1929222057620414 0.16874582807373442 0.04406772611548003; 0.7231647963646257 0.5056851000850311 0.6655850205917616 0.509266230976612 0.5052334681260294 0.3323247700429202 0.2584463004813027 0.19226030577292572 0.14491990312468314 0.1411260347060979 0.17513016835138412 0.5593127995804646 0.4810917747190298 0.6847600297393145 0.6655572238457713 0.6373481626655303 0.7122690618954836 0.868572031742886 0.642367727412946 0.4270069268585453 0.2493471672518346 0.21386764096672656 0.05697307908855304; 0.6316227556282686 0.40743503740482884 0.5606965055218779 0.4084491148331317 0.4039103078167204 0.2507422704206328 0.21745362046021305 0.16055009821413815 0.13282860708891472 0.15755645787174735 0.20099144507894512 0.5395481654674688 0.4314691749241478 0.6558364264722154 0.6389336863189395 0.6324492597708506 0.6850231211028036 0.8312537908937804 0.6045643859848966 0.3697286562941463 0.19778414654099596 0.16205085142829598 0.037740738988576696; 0.7401079629435721 0.5428295877160711 0.7031806864585685 0.5526524918348173 0.5625668683648273 0.37535456334989986 0.3049670044118855 0.23040058563288934 0.16976699088029149 0.1490124483780644 0.1800509174051033 0.6031858853281993 0.5388764898497265 0.7305283258443571 0.7108620688983256 0.6720656802992333 0.756102320334855 0.846021274392779 0.614290483608926 0.42053331865050503 0.25553244125721153 0.22690103237680803 0.06489412637619173; 0.7774171295635275 0.5183587196531081 0.6671856182761694 0.5011275436908067 0.4439717097364589 0.3097901912593574 0.15499968292212957 0.10904978972531522 0.07466261292508483 0.07694096980958384 0.10184805385603908 0.3794525394526092 0.3203312365762359 0.4963074588528718 0.4773711871808398 0.4516508142874447 0.5236420497371012 0.9644741236400529 0.8060189579870737 0.5597466310187597 0.32836661338632694 0.2646093759094215 0.0677441637131662; 0.8181308100490108 0.5561243868737823 0.698575060593573 0.5324654697166794 0.45752368437996377 0.33230408198860933 0.14048366252196495 0.09759286203453564 0.06262356218316165 0.06053539611033345 0.08069598037760621 0.3368883734358375 0.29138104057505876 0.45023153710385133 0.4313705725132026 0.40132171704812075 0.4761351054919458 0.9870428644119942 0.8596029953159898 0.6251306019773151 0.38047255238126104 0.306893210606778 0.0820423232658685; 0.7328677140374111 0.45686249352211705 0.5790469862711584 0.4222181599919014 0.33080357486099415 0.2432499454983849 0.07720430058897658 0.05106405047245464 0.032093401151864966 0.0365474112100408 0.05215633420045098 0.22181457534510465 0.18089489184494278 0.3111666840414051 0.2960670894164659 0.27828806542602247 0.3336621538628581 0.9586604604379003 0.9112627551291514 0.6526801185016419 0.37822360606526256 0.2823655882683267 0.0674470136857995; 0.7515232704337115 0.4757416292999305 0.5968371635299031 0.43944272397447637 0.34313013101024226 0.2559666012514232 0.07813514522593748 0.051658187653842315 0.03172311639963259 0.0347198448127321 0.0493745953085397 0.21905996675855813 0.18130230551737894 0.3085046198554848 0.2932786599324534 0.273623488478172 0.33068669985787785 0.9653564796429168 0.9249527424633506 0.6753413167030635 0.3987464830705314 0.2999086114297358 0.07359809262134936; 0.8766234308310106 0.6220352391872924 0.750503533504958 0.5892979561473187 0.4883331096338951 0.3775897748372698 0.12677413631301512 0.08688786848645763 0.05039216793847928 0.04297162933120202 0.057385150231952155 0.2868166055620744 0.26003030092553525 0.39412877854863043 0.37562956856679103 0.3396761689366942 0.4175584225095954 1.0 0.9191899116391927 0.7213092819491199 0.46889441622459455 0.3828925347230843 0.11144275482456456; 0.8119268400431263 0.5616029351132952 0.6474473854693175 0.5069931386383051 0.3661982883577541 0.311649120820824 0.05829641266312954 0.03742883021724568 0.018577266239422643 0.01567128213557683 0.0223986923163361 0.14511479304623873 0.13244337225859604 0.21687298617558284 0.2038675593583631 0.17921730237397668 0.23341261540835537 0.9285566477571606 0.9982284285344054 0.8549662123185122 0.57919180548843 0.4463677903452444 0.1306883528369306; 0.82681374480545 0.5857825177211226 0.6647402210580929 0.5284801502144095 0.3798584854063081 0.33049550236819253 0.05828369828510033 0.03740368096386031 0.01791524354832784 0.01420754067753986 0.02019180375858439 0.1396173432997934 0.1303827813666727 0.2098767698470255 0.19703163333480644 0.17122729619266394 0.22574366435124235 0.9191899116391927 1.0 0.8822702532119937 0.6152795204486762 0.47978346763635193 0.14650071169191572; 0.822809521622991 0.5948037025016687 0.661623292177756 0.5335057440538382 0.37607346176075984 0.33764855167756436 0.05284701060910418 0.033662036456081526 0.015324720335777151 0.011444005832743251 0.016295443067505327 0.12330208096295307 0.11778021084065203 0.18808039767468007 0.17608616190280213 0.1508937925165944 0.2025242052804488 0.8905990321407163 0.9966670165629197 0.9131581140097302 0.6576167422401595 0.5153533855760121 0.16390625359706507; 0.7332380005310724 0.47966685651323304 0.561270991827678 0.4262991752111288 0.2962414470348876 0.24973189593616663 0.04268972320232483 0.026811837976605572 0.013507495536566362 0.012805825713678201 0.018952874629094556 0.11843861804971419 0.1036060543552713 0.18023196881388742 0.16904117283919085 0.1504765142358632 0.1952861714325238 0.8869877129551653 0.9842217337887395 0.8203423350576758 0.5328025632598246 0.39324760863940933 0.10628991718440418; 0.7187809376310704 0.4761254396371267 0.54656074185958 0.4194008209483607 0.28353726603906537 0.24690043097609538 0.03654000044570406 0.022681143697437862 0.010842333019539772 0.009820791891003388 0.014650008345521303 0.10032334124866865 0.08930018079843059 0.15556684998216727 0.14542078103482645 0.12776685893780718 0.16895268664252294 0.8526318330670217 0.9806401970911786 0.8475881317911022 0.5659917900792554 0.416984564845228 0.11622851300686755; 0.8144257681324784 0.6973386670166851 0.6926170128782051 0.6217604813241744 0.4217137127807958 0.4440238046305932 0.04500739970678052 0.028523064291676215 0.010043369678747171 0.00483919981495718 0.006632129374597611 0.0802050018418445 0.09015777074260106 0.12780803517686787 0.11850074321536054 0.09352156540595309 0.13708488052338838 0.7213092819491199 0.8822702532119937 1.0 0.8855923329934225 0.7530367236790085 0.3226608405615575; 0.7464895770624135 0.5594351352421899 0.5895776094001356 0.4895311220674548 0.319643609141359 0.3143758003701468 0.03288525229499247 0.020274680144724787 0.007964199195053414 0.005222443768633631 0.0075982008115135 0.07437307723826476 0.0746522813603369 0.11956373319655095 0.11089845782781486 0.09158557641127746 0.12957243004933744 0.7640400790614297 0.9450363171851921 0.9591969772942559 0.7472623695905949 0.5830550774121601 0.20244287264478314; 0.7530030245919059 0.5431234673379363 0.5891717554326777 0.47712932171407574 0.3166487512948445 0.2985208761222979 0.035649105448995015 0.022080553461329762 0.009286847786499046 0.006751278027436788 0.009875494227672841 0.08544232307820761 0.08252777611615113 0.13536175637433384 0.1259284644875634 0.10617928562160212 0.14670596019757695 0.8076447950677335 0.9703716409266376 0.932762917865407 0.690834745158495 0.5304385201337295 0.17171039308680663; 0.8235336782281178 0.6405111214096829 0.6751170957730195 0.5708263832967825 0.3913225084959072 0.3799338589125705 0.04683919106442962 0.02961614926842436 0.011883757732761544 0.00729943919314527 0.010273385080068998 0.09769000743415807 0.10036147536710764 0.1529345825839084 0.1424119148518332 0.11739714058688706 0.1645958816308224 0.8155975950934103 0.9611942517618203 0.9745530337256978 0.7718025112426161 0.6243230838122039 0.22676040918673873; 0.6867468433693716 0.5331666327402476 0.5401499281722351 0.4602101153093634 0.2874857014122235 0.3013099698294809 0.02441925668731399 0.014789893132036517 0.005242128466115685 0.003076690211929651 0.00451111846293758 0.05293690792581018 0.05540759589202033 0.08787213190071044 0.08102581610167775 0.06510209996936658 0.09551563939482735 0.6693717151437683 0.8805139185030549 0.962976949860865 0.7977752137717908 0.625906121249835 0.23426112680791764; 0.6123022959216866 0.4999976772262982 0.48269268480676464 0.42595719513313823 0.25449585634974026 0.28756933949188684 0.017618908610842147 0.010493756806911569 0.0032937887074633177 0.001666429247984283 0.0024505350619450157 0.03569336809287439 0.03950235279527152 0.061294039927021746 0.056157172390876364 0.04361457849901721 0.06678097895617935 0.5585565589403414 0.784685636948393 0.9400073084858939 0.8422729086934179 0.6700290694351737 0.27733472967577766; 0.5208071432762769 0.44790727672851793 0.4112620733348449 0.37629227912890906 0.2144655272958558 0.26209976266649593 0.011972269254734097 0.007004322353126643 0.001936938649234545 0.0008408093661474044 0.0012409452628291877 0.022638140748971483 0.026538216827193314 0.040289711699862236 0.036665355400374564 0.02748985316984334 0.04400815817355934 0.44374622631342764 0.6680658291966547 0.8797756865237958 0.8549882792013699 0.6895556341694858 0.3166405198571644; 0.5891681247974004 0.6090837294623026 0.5248133057027008 0.5327362038278587 0.33368944124026373 0.43261895730019134 0.022886397413172065 0.01418017863278169 0.0035688318479617353 0.0010351877552663635 0.0013814109028705312 0.030641695234509592 0.041619482122225035 0.0524656862959539 0.047934392864311254 0.03415916876832351 0.05624683422303738 0.4144251498547713 0.5845546024608902 0.8657575960256906 0.9832623417700396 0.9050029006040501 0.5474453725428048; 0.6772129558340088 0.7178826818314505 0.6277007998632926 0.6430231195027034 0.4303538604829861 0.5378606847561948 0.03699408218865754 0.023677093828563235 0.006325305381042625 0.0017871776252900312 0.002298515218977774 0.04629682347632554 0.06341517666632882 0.07623734052074496 0.07008717427360553 0.05035919518075388 0.08106449463694666 0.46889441622459455 0.6152795204486762 0.8855923329934225 1.0 0.95317462877265 0.5874035637208949; 0.5749644296822503 0.5614640934267493 0.49299286294186273 0.48468047798417707 0.2942832944957974 0.3752064819757136 0.018804501447141315 0.011435890401526988 0.002955760433948493 0.0009704067285291062 0.0013371056870898458 0.028038292943887058 0.036400349970850336 0.04864456022600958 0.044380183342761476 0.032110546803158134 0.052463579032817904 0.42901781989141297 0.6188663970979027 0.885220316479004 0.9589037954214876 0.8466889875934079 0.4705785731761298; 0.5966298504595813 0.6497959021929185 0.5508610734329186 0.575651052751428 0.37181328597797036 0.48854896269750847 0.02743297932990087 0.01730727969785368 0.004264146632423846 0.0011057799083934747 0.0014316397886228248 0.03325744456483746 0.04705515434685252 0.056183095043217876 0.051409730819183534 0.036153416730729984 0.0598890375403915 0.3978048409442719 0.5482579229273747 0.8366872356964472 0.9911306477477079 0.9482157541926657 0.6192712131547955; 0.6360692761241019 0.7710611517712889 0.6433503699452944 0.7109544049100224 0.5091151748567635 0.6649412466468505 0.05063099709508791 0.033770552150204226 0.00840984174401409 0.0017700462041020729 0.0021163880760639107 0.04928910656810396 0.07518254013006463 0.07896775479712795 0.07279694039680448 0.05038867912666139 0.08284201786267843 0.3828925347230843 0.47978346763635193 0.7530367236790085 0.95317462877265 1.0 0.7536774603025823; 0.37477044321888536 0.4349863927333212 0.3388839022817558 0.3720494346085627 0.21519711025421284 0.3253138317147909 0.010037093974181666 0.0060467417410972725 0.0011875118732063588 0.0002480707283038141 0.0003300424159388177 0.011407470827613422 0.017521330331462935 0.020814669795918655 0.018784268442022023 0.012463171657650072 0.02238095595512163 0.227469653973088 0.3632368032599243 0.6505486498358429 0.8743314602327298 0.8366314316745298 0.6323552576352361; 0.4308494365065684 0.5521961142878209 0.42568510936624304 0.49172463488628315 0.3159269411000278 0.47114743317643165 0.020125652113509692 0.012821784701747635 0.0025763216834118296 0.0004459216390885389 0.000548863514666901 0.01860102653889555 0.03056557154533914 0.03212075732520414 0.029217027826914762 0.01915472861237837 0.03399621120406532 0.23833695351973763 0.3445536527228856 0.6283027956928183 0.8935450448439365 0.9340508327639085 0.803367738440086; 0.42588556793724963 0.514599887489171 0.40225454811321515 0.45008699593865603 0.2764547431869833 0.4095893081877711 0.015610214582617616 0.009697779434859725 0.001968411270910264 0.0003845846633845169 0.0004920266487864112 0.016205332099098156 0.025484432603544913 0.028598027606397586 0.025939220913629255 0.017212264615019613 0.030497065232210633 0.24978921540415677 0.3752433713507336 0.6671808968998799 0.9094166321017612 0.9070024503194692 0.717969244338302; 0.25616724404676827 0.36064432234093263 0.25458348363076183 0.31381508570267086 0.18628923825270452 0.3185209800604343 0.0082263007895151 0.005088772835099111 0.0008198400207983819 0.00010788314848899607 0.0001332981971132782 0.006693772956053487 0.012191493624789688 0.01228286410458982 0.011044429533844548 0.0068049702629956145 0.0130512812361402 0.1253743856343511 0.2039176585333789 0.43910102741499013 0.7211374530045427 0.7744022012346895 0.802098239373476; 0.28531440235914857 0.4002858555284273 0.28636704091166787 0.3513821641026911 0.21409246587444314 0.35723120432949906 0.010439773572454236 0.006534374708804699 0.001095215285484182 0.00014740693870887804 0.0001802894669450021 0.00845972297584198 0.015272137647549196 0.015263798894214076 0.013764458115931638 0.008556389143525862 0.016176721587662174 0.1409025065904775 0.22200076169575395 0.46602649035313587 0.7524428671746313 0.8131717721925134 0.8296434593833473; 0.24903410779923643 0.35904933061176014 0.25127407578055966 0.31395393231584934 0.18847617044543946 0.3249998991514615 0.008516438259839807 0.005305086528612752 0.0008432117182715994 0.00010526431950490199 0.0001284332102931466 0.006629678280122173 0.012309626926329458 0.012112089324700176 0.010895282626047198 0.006667249932579161 0.012840082356890036 0.11887527798719272 0.1919477286751715 0.4200001386101343 0.7041663984132576 0.76897079297106 0.8256707173813529; 0.22886067841582372 0.3877508069941566 0.26235980762663824 0.35736249399182723 0.2450825591516219 0.42670313988850206 0.01598520519681239 0.010717359719015747 0.0016793924477414128 0.00015125353768022373 0.00016529025327248037 0.009017807932986543 0.018843636469128917 0.015426968275166236 0.013999905415617844 0.008311948797036561 0.01600287954319619 0.09324670458766982 0.13395130511607745 0.31152426355295504 0.5837246484964872 0.7272861670149322 0.9767715590737112; 0.22999157462853717 0.3739192895482388 0.2539677229913929 0.3387311467563276 0.22207608922889335 0.3892663265674966 0.012660670510976866 0.008288158348560032 0.0012841413529425093 0.00012498125252143175 0.00014115406860773277 0.007787904576648366 0.015827422324756663 0.013643282830861742 0.012338925297899555 0.007359598121597874 0.01424797224163647 0.09737079522136055 0.14601439689786624 0.337413917584164 0.6179492443333177 0.741809464150622 0.9445687130630891; 0.17472537202867305 0.31946950253651746 0.20757504481875824 0.2960646945670436 0.2043837708525398 0.37471801359443757 0.012869683364298182 0.00870439065575205 0.001255146163388405 9.40099767528817e-5 9.993772188331276e-5 0.006372183619931549 0.014253099520981844 0.0109507207417646 0.009919585760279565 0.005713849249271425 0.011310824574965789 0.06534582815086555 0.09496735574229902 0.23825024277808274 0.48407885194721434 0.6304863404013172 0.9601419182825064; 0.27226866397259536 0.4654568122945319 0.32400415670963956 0.44057810112560447 0.32622076287640006 0.5362623212460318 0.028066326109481347 0.0195077208623248 0.0033555198691232182 0.00030801400193521903 0.00032463677682729514 0.015144618580948671 0.03137762242865076 0.02470799941856937 0.022599211149285328 0.01366097735931823 0.02541251142320079 0.11144275482456456 0.14650071169191572 0.3226608405615575 0.5874035637208949 0.7536774603025823 1.0; 0.1378713016583555 0.2643436673110578 0.16623288617478832 0.24439157750945995 0.16654595332868682 0.319866938036741 0.009632633551903613 0.0064994006534456195 0.0008695399375500576 5.753081953910816e-5 6.056131084754415e-5 0.004425777296702749 0.010366726569778452 0.007709894663229764 0.006963352996732379 0.003917093375501153 0.007956455372461188 0.04872180791505365 0.07277779799754423 0.19415214531611902 0.41848453319317924 0.5573025470555464 0.9233874841127124], Int32[1, 2, 3, 4, 6, 7, 24, 25, 30, 46, 47, 51, 52, 53, 54, 56, 58, 72, 74, 78, 86, 89, 99], LIBSVM.SVMNode[LIBSVM.SVMNode(0, 1.0), LIBSVM.SVMNode(0, 2.0), LIBSVM.SVMNode(0, 3.0), LIBSVM.SVMNode(0, 4.0), LIBSVM.SVMNode(0, 6.0), LIBSVM.SVMNode(0, 7.0), LIBSVM.SVMNode(0, 24.0), LIBSVM.SVMNode(0, 25.0), LIBSVM.SVMNode(0, 30.0), LIBSVM.SVMNode(0, 46.0), LIBSVM.SVMNode(0, 47.0), LIBSVM.SVMNode(0, 51.0), LIBSVM.SVMNode(0, 52.0), LIBSVM.SVMNode(0, 53.0), LIBSVM.SVMNode(0, 54.0), LIBSVM.SVMNode(0, 56.0), LIBSVM.SVMNode(0, 58.0), LIBSVM.SVMNode(0, 72.0), LIBSVM.SVMNode(0, 74.0), LIBSVM.SVMNode(0, 78.0), LIBSVM.SVMNode(0, 86.0), LIBSVM.SVMNode(0, 89.0), LIBSVM.SVMNode(0, 99.0)]), 0.0, [1.0; 1.0; 1.0; 1.0; 0.4545873718969774; 0.36172853884920114; 1.0; 1.0; 0.9976825435225717; 1.0; 1.0; -1.0; -1.0; -1.0; -1.0; -0.5005315477488701; -0.21806563021962358; -1.0; -0.3833339180359196; -1.0; -0.7120673582643366; -1.0; -1.0;;], Float64[], Float64[], [-0.015075000482567661], 3, 0.01, 200.0, 0.001, 1.0, 0.5, 0.1, true, false)","category":"page"},{"location":"examples/support-vector-machine/#Prediction","page":"Support Vector Machine","title":"Prediction","text":"","category":"section"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"For evaluation, we create a 100×100 2D grid based on the extent of the training data:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"test_range = range(floor(Int, minimum(X)), ceil(Int, maximum(X)); length=100)\nx_test = ColVecs(mapreduce(collect, hcat, Iterators.product(test_range, test_range)));","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"Again, we pass the result of KernelFunctions.jl's kernelmatrix to LIBSVM:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"y_pred, _ = svmpredict(model, kernelmatrix(k, x_train, x_test));","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"We can see that the kernelized, non-linear classification successfully separates the two classes in the training data:","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"plot(; lim=extrema(test_range), aspect_ratio=1)\ncontourf!(\n test_range,\n test_range,\n y_pred;\n levels=1,\n color=cgrad(:redsblues),\n alpha=0.7,\n colorbar_title=\"prediction\",\n)\nscatter!(X1[:, 1], X1[:, 2]; color=:red, label=\"training data: class –1\")\nscatter!(X2[:, 1], X2[:, 2]; color=:blue, label=\"training data: class 1\")","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/support-vector-machine/Project.toml`\n  [31c24e10] Distributions v0.25.107\n  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n  [b1bec4e5] LIBSVM v0.8.0\n  [98b081ad] Literate v2.16.1\n  [91a5bcdd] Plots v1.40.1\n  [37e2e46d] LinearAlgebra\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.10.0\nCommit 3120989f39b (2023-12-25 18:01 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"","category":"page"},{"location":"examples/support-vector-machine/","page":"Support Vector Machine","title":"Support Vector Machine","text":"This page was generated using Literate.jl.","category":"page"},{"location":"metrics/#Metrics","page":"Metrics","title":"Metrics","text":"","category":"section"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"SimpleKernel implementations rely on Distances.jl for efficiently computing the pairwise matrix. This requires a distance measure or metric, such as the commonly used SqEuclidean and Euclidean.","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"The metric used by a given kernel type is specified as","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"KernelFunctions.metric(::CustomKernel) = SqEuclidean()","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"However, there are kernels that can be implemented efficiently using \"metrics\" that do not respect all the definitions expected by Distances.jl. For this reason, KernelFunctions.jl provides additional \"metrics\" such as DotProduct (langle x y rangle) and Delta (delta(xy)).","category":"page"},{"location":"metrics/#Adding-a-new-metric","page":"Metrics","title":"Adding a new metric","text":"","category":"section"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"If you want to create a new \"metric\" just implement the following:","category":"page"},{"location":"metrics/","page":"Metrics","title":"Metrics","text":"struct Delta <: Distances.PreMetric\nend\n\n@inline function Distances._evaluate(::Delta,a::AbstractVector{T},b::AbstractVector{T}) where {T}\n @boundscheck if length(a) != length(b)\n throw(DimensionMismatch(\"first array has length $(length(a)) which does not match the length of the second, $(length(b)).\"))\n end\n return a==b\nend\n\n@inline (dist::Delta)(a::AbstractArray,b::AbstractArray) = Distances._evaluate(dist,a,b)\n@inline (dist::Delta)(a::Number,b::Number) = a==b","category":"page"},{"location":"transform/#input_transforms","page":"Input Transforms","title":"Input Transforms","text":"","category":"section"},{"location":"transform/#Overview","page":"Input Transforms","title":"Overview","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Transforms are designed to change input data before passing it on to a kernel object.","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"It can be as standard as IdentityTransform returning the same input, or multiplying the data by a scalar with ScaleTransform or by a vector with ARDTransform. There is a more general FunctionTransform that uses a function and applies it to each input.","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"You can also create a pipeline of Transforms via ChainTransform, e.g.,","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"LowRankTransform(rand(10, 5)) ∘ ScaleTransform(2.0)","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"A transformation t can be applied to a single input x with t(x) and to multiple inputs xs with map(t, xs).","category":"page"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Kernels can be coupled with input transformations with ∘ or its alias compose. It falls back to creating a TransformedKernel but allows more optimized implementations for specific kernels and transformations.","category":"page"},{"location":"transform/#List-of-Input-Transforms","page":"Input Transforms","title":"List of Input Transforms","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"Transform\nIdentityTransform\nScaleTransform\nARDTransform\nARDTransform(::Real, ::Integer)\nLinearTransform\nFunctionTransform\nSelectTransform\nChainTransform\nPeriodicTransform","category":"page"},{"location":"transform/#KernelFunctions.Transform","page":"Input Transforms","title":"KernelFunctions.Transform","text":"Transform\n\nAbstract type defining a transformation of the input.\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.IdentityTransform","page":"Input Transforms","title":"KernelFunctions.IdentityTransform","text":"IdentityTransform()\n\nTransformation that returns exactly the input.\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ScaleTransform","page":"Input Transforms","title":"KernelFunctions.ScaleTransform","text":"ScaleTransform(l::Real)\n\nTransformation that multiplies the input elementwise with l.\n\nExamples\n\njulia> l = rand(); t = ScaleTransform(l); X = rand(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(l .* X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ARDTransform","page":"Input Transforms","title":"KernelFunctions.ARDTransform","text":"ARDTransform(v::AbstractVector)\n\nTransformation that multiplies the input elementwise by v.\n\nExamples\n\njulia> v = rand(10); t = ARDTransform(v); X = rand(10, 100);\n\njulia> map(t, ColVecs(X)) == ColVecs(v .* X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ARDTransform-Tuple{Real, Integer}","page":"Input Transforms","title":"KernelFunctions.ARDTransform","text":"ARDTransform(s::Real, dims::Integer)\n\nCreate an ARDTransform with vector fill(s, dims).\n\n\n\n\n\n","category":"method"},{"location":"transform/#KernelFunctions.LinearTransform","page":"Input Transforms","title":"KernelFunctions.LinearTransform","text":"LinearTransform(A::AbstractMatrix)\n\nLinear transformation of the input realised by the matrix A.\n\nThe second dimension of A must match the number of features of the target.\n\nExamples\n\njulia> A = rand(10, 5); t = LinearTransform(A); X = rand(5, 100);\n\njulia> map(t, ColVecs(X)) == ColVecs(A * X)\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.FunctionTransform","page":"Input Transforms","title":"KernelFunctions.FunctionTransform","text":"FunctionTransform(f)\n\nTransformation that applies function f to the input.\n\nMake sure that f can act on an input. For instance, if the inputs are vectors, use f(x) = sin.(x) instead of f = sin.\n\nExamples\n\njulia> f(x) = sum(x); t = FunctionTransform(f); X = randn(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(sum(X; dims=1))\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.SelectTransform","page":"Input Transforms","title":"KernelFunctions.SelectTransform","text":"SelectTransform(dims)\n\nTransformation that selects the dimensions dims of the input.\n\nExamples\n\njulia> dims = [1, 3, 5, 6, 7]; t = SelectTransform(dims); X = rand(100, 10);\n\njulia> map(t, ColVecs(X)) == ColVecs(X[dims, :])\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.ChainTransform","page":"Input Transforms","title":"KernelFunctions.ChainTransform","text":"ChainTransform(transforms)\n\nTransformation that applies a chain of transformations ts to the input.\n\nThe transformation first(ts) is applied first.\n\nExamples\n\njulia> l = rand(); A = rand(3, 4); t1 = ScaleTransform(l); t2 = LinearTransform(A);\n\njulia> X = rand(4, 10);\n\njulia> map(ChainTransform([t1, t2]), ColVecs(X)) == ColVecs(A * (l .* X))\ntrue\n\njulia> map(t2 ∘ t1, ColVecs(X)) == ColVecs(A * (l .* X))\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#KernelFunctions.PeriodicTransform","page":"Input Transforms","title":"KernelFunctions.PeriodicTransform","text":"PeriodicTransform(f)\n\nTransformation that maps the input elementwise onto the unit circle with frequency f.\n\nSamples from a GP with a kernel with this transformation applied to the inputs will produce samples with frequency f.\n\nExamples\n\njulia> f = rand(); t = PeriodicTransform(f); x = rand();\n\njulia> t(x) == [sinpi(2 * f * x), cospi(2 * f * x)]\ntrue\n\n\n\n\n\n","category":"type"},{"location":"transform/#Convenience-functions","page":"Input Transforms","title":"Convenience functions","text":"","category":"section"},{"location":"transform/","page":"Input Transforms","title":"Input Transforms","text":"with_lengthscale\nmedian_heuristic_transform","category":"page"},{"location":"transform/#KernelFunctions.with_lengthscale","page":"Input Transforms","title":"KernelFunctions.with_lengthscale","text":"with_lengthscale(kernel::Kernel, lengthscale::Real)\n\nConstruct a transformed kernel with lengthscale.\n\nExamples\n\njulia> kernel = with_lengthscale(SqExponentialKernel(), 2.5);\n\njulia> x = rand(2);\n\njulia> y = rand(2);\n\njulia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ScaleTransform(0.4))(x, y)\ntrue\n\n\n\n\n\nwith_lengthscale(kernel::Kernel, lengthscales::AbstractVector{<:Real})\n\nConstruct a transformed \"ARD\" kernel with different lengthscales for each dimension.\n\nExamples\n\njulia> kernel = with_lengthscale(SqExponentialKernel(), [0.5, 2.5]);\n\njulia> x = rand(2);\n\njulia> y = rand(2);\n\njulia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ARDTransform([2, 0.4]))(x, y)\ntrue\n\n\n\n\n\n","category":"function"},{"location":"transform/#KernelFunctions.median_heuristic_transform","page":"Input Transforms","title":"KernelFunctions.median_heuristic_transform","text":"median_heuristic_transform(distance, x::AbstractVector)\n\nCreate a ScaleTransform that divides the input elementwise by the median distance of the data points in x.\n\nThe distance has to support pairwise evaluation with KernelFunctions.pairwise. All PreMetrics of the package Distances.jl such as Euclidean satisfy this requirement automatically.\n\nExamples\n\njulia> using Distances, Statistics\n\njulia> x = ColVecs(rand(100, 10));\n\njulia> t = median_heuristic_transform(Euclidean(), x);\n\njulia> y = map(t, x);\n\njulia> median(euclidean(y[i], y[j]) for i in 1:10, j in 1:10 if i != j) ≈ 1\ntrue\n\n\n\n\n\n","category":"function"},{"location":"userguide/#User-guide","page":"User guide","title":"User guide","text":"","category":"section"},{"location":"userguide/#Kernel-Creation","page":"User guide","title":"Kernel Creation","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"To create a kernel object, choose one of the pre-implemented kernels, see Kernel Functions, or create your own, see Creating your own kernel. For example, a squared exponential kernel is created by","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":" k = SqExponentialKernel()","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I set the lengthscale(s)?\nInstead of having lengthscale(s) for each kernel we use Transform objects which act on the inputs before passing them to the kernel. Note that the transforms such as ScaleTransform and ARDTransform multiply the input by a scale factor, which corresponds to the inverse of the lengthscale. For example, a lengthscale of 0.5 is equivalent to premultiplying the input by 2.0, and you can create the corresponding kernel in either of the following equivalent ways: k = SqExponentialKernel() ∘ ScaleTransform(2.0)\n k = compose(SqExponentialKernel(), ScaleTransform(2.0))Alternatively, you can use the convenience function with_lengthscale:k = with_lengthscale(SqExponentialKernel(), 0.5)with_lengthscale also works with vector-valued lengthscales for multiple-dimensional inputs, and is equivalent to pre-composing with an ARDTransform:length_scales = [1.0, 2.0]\nk = with_lengthscale(SqExponentialKernel(), length_scales)\nk = SqExponentialKernel() ∘ ARDTransform(1 ./ length_scales)Check the Input Transforms page for more details.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I set the kernel variance?\nTo premultiply the kernel by a variance, you can use * with a scalar number: k = 3.0 * SqExponentialKernel()","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"tip: How do I use a Mahalanobis kernel?\nThe MahalanobisKernel(; P=P), defined byk(x x P) = expbig(- (x - x)^top P (x - x)big)for a positive definite matrix P = Q^top Q, was removed in 0.9. Instead you can use a squared exponential kernel together with a LinearTransform of the inputs:k = SqExponentialKernel() ∘ LinearTransform(sqrt(2) .* Q)Analogously, you can combine other kernels such as the PiecewisePolynomialKernel with a LinearTransform of the inputs to obtain a kernel that is a function of the Mahalanobis distance between inputs.","category":"page"},{"location":"userguide/#Using-a-Kernel-Function","page":"User guide","title":"Using a Kernel Function","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"To evaluate the kernel function on two vectors you simply call the kernel object:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = SqExponentialKernel()\nx1 = rand(3)\nx2 = rand(3)\nk(x1, x2)","category":"page"},{"location":"userguide/#Creating-a-Kernel-Matrix","page":"User guide","title":"Creating a Kernel Matrix","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Kernel matrices can be created via the kernelmatrix function or kernelmatrix_diag for only the diagonal. For example, for a collection of 10 Real-valued inputs:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = SqExponentialKernel()\nx = rand(10)\nkernelmatrix(k, x) # 10x10 matrix","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"If your inputs are multi-dimensional, it is common to represent them as a matrix. For example","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"X = rand(10, 5)","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"However, it is ambiguous whether this represents a collection of 10 5-dimensional row-vectors, or 5 10-dimensional column-vectors. Therefore, we require users to provide some more information.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"You can write RowVecs(X) to declare that X contains 10 5-dimensional row-vectors, or ColVecs(X) to declare that X contains 5 10-dimensional column-vectors, then","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"kernelmatrix(k, RowVecs(X)) # returns a 10×10 matrix -- each row of X treated as input\nkernelmatrix(k, ColVecs(X)) # returns a 5×5 matrix -- each column of X treated as input","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"This is the mechanism used throughout KernelFunctions.jl to handle multi-dimensional inputs.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"You can utilise the obsdim keyword argument if you prefer:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"kernelmatrix(k, X; obsdim=1) # same as RowVecs(X)\nkernelmatrix(k, X; obsdim=2) # same as ColVecs(X)","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"This is similar to the convention used in Distances.jl.","category":"page"},{"location":"userguide/#So-what-type-should-I-use-to-represent-a-collection-of-inputs?","page":"User guide","title":"So what type should I use to represent a collection of inputs?","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"The central assumption made by KernelFunctions.jl is that all collections of N inputs are represented by AbstractVectors of length N. Abstraction is then used to ensure that efficiency is retained, ColVecs and RowVecs being the most obvious examples of this.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Concretely:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For Real-valued inputs (scalars), a Vector{<:Real} is fine.\nFor vector-valued inputs, consider a ColVecs or RowVecs.\nFor a new input type, simply represent collections of inputs of this type as an AbstractVector.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"See Input Types and Design for a more thorough discussion of the considerations made when this design was adopted.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"The obsdim kwarg mentioned above is a special case for vector-valued inputs stored in a matrix. It is implemented as a lightweight wrapper that constructs either a RowVecs or ColVecs from your inputs, and passes this on.","category":"page"},{"location":"userguide/#Output-Types","page":"User guide","title":"Output Types","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"In addition to plain Matrix-like output, KernelFunctions.jl supports specific output types:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a positive-definite matrix object of type PDMat from PDMats.jl, you can call the following:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using PDMats\nk = SqExponentialKernel()\nK = kernelpdmat(k, RowVecs(X)) # PDMat\nK = kernelpdmat(k, X; obsdim=1) # PDMat","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"It will create a matrix and in case of bad conditioning will add some diagonal noise until the matrix is considered positive-definite; it will then return a PDMat object. For this method to work in your code you need to include using PDMats first.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a Kronecker matrix, we rely on Kronecker.jl. Here are two examples:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using Kronecker\nx = range(0, 1; length=10)\ny = range(0, 1; length=50)\nK = kernelkronmat(k, [x, y]) # Kronecker matrix\nK = kernelkronmat(k, x, 5) # Kronecker matrix","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Make sure that k is a kernel compatible with such constructions (with iskroncompatible(k)). Both methods will return a Kronecker matrix. For those methods to work in your code you need to include using Kronecker first.","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"For a Nystrom approximation: kernelmatrix(nystrom(k, X, ρ, obsdim=1)) where ρ is the fraction of data samples used in the approximation.","category":"page"},{"location":"userguide/#Composite-Kernels","page":"User guide","title":"Composite Kernels","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"Sums and products of kernels are also valid kernels. They can be created via KernelSum and KernelProduct or using simple operators + and *. For example:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k1 = SqExponentialKernel()\nk2 = Matern32Kernel()\nk = 0.5 * k1 + 0.2 * k2 # KernelSum\nk = k1 * k2 # KernelProduct","category":"page"},{"location":"userguide/#Kernel-Parameters","page":"User guide","title":"Kernel Parameters","text":"","category":"section"},{"location":"userguide/","page":"User guide","title":"User guide","text":"What if you want to differentiate through the kernel parameters? This is easy even in a highly nested structure such as:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"k = (\n 0.5 * SqExponentialKernel() * Matern12Kernel() +\n 0.2 * (LinearKernel() ∘ ScaleTransform(2.0) + PolynomialKernel())\n) ∘ ARDTransform([0.1, 0.5])","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"One can access the named tuple of trainable parameters via Functors.functor from Functors.jl. This means that in practice you can implicitly optimize the kernel parameters by calling:","category":"page"},{"location":"userguide/","page":"User guide","title":"User guide","text":"using Flux\nkernelparams = Flux.params(k)\nFlux.gradient(kernelparams) do\n # ... some loss function on the kernel ....\nend","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"EditURL = \"../../../../examples/gaussian-process-priors/script.jl\"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"EditURL = \"https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/blob/master/examples/gaussian-process-priors/script.jl\"","category":"page"},{"location":"examples/gaussian-process-priors/#Gaussian-process-prior-samples","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"(Image: )","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"You are seeing the HTML output generated by Documenter.jl and Literate.jl from the Julia source file. The corresponding notebook can be viewed in nbviewer.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"The kernels defined in this package can also be used to specify the covariance of a Gaussian process prior. A Gaussian process (GP) is defined by its mean function m(cdot) and its covariance function or kernel k(cdot cdot):","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":" f sim mathcalGPbig(m(cdot) k(cdot cdot)big)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"In this notebook we show how the choice of kernel affects the samples from a GP (with zero mean).","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"# Load required packages\nusing KernelFunctions, LinearAlgebra\nusing Plots, Plots.PlotMeasures\ndefault(; lw=1.0, legendfontsize=8.0)\nusing Random: seed!\nseed!(42); # reproducibility","category":"page"},{"location":"examples/gaussian-process-priors/#Evaluation-at-finite-set-of-points","page":"Gaussian process prior samples","title":"Evaluation at finite set of points","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"The function values mathbff = f(x_n)_n=1^N of the GP at a finite number N of points X = x_n_n=1^N follow a multivariate normal distribution mathbff sim mathcalMVN(mathbfm mathrmK) with mean vector mathbfm and covariance matrix mathrmK, where","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"beginaligned\n mathbfm_i = m(x_i) \n mathrmK_ij = k(x_i x_j)\nendaligned","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"with 1 le i j le N.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We can visualize the infinite-dimensional GP by evaluating it on a fine grid to approximate the dense real line:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"num_inputs = 101\nxlim = (-5, 5)\nX = range(xlim...; length=num_inputs);","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Given a kernel k, we can compute the kernel matrix as K = kernelmatrix(k, X).","category":"page"},{"location":"examples/gaussian-process-priors/#Random-samples","page":"Gaussian process prior samples","title":"Random samples","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"To sample from the multivariate normal distribution p(mathbff) = mathcalMVN(0 mathrmK), we could make use of Distributions.jl and call rand(MvNormal(K)). Alternatively, we could use the AbstractGPs.jl package and construct a GP object which we evaluate at the points of interest and from which we can then sample: rand(GP(k)(X)).","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Here, we will explicitly construct samples using the Cholesky factorization mathrmL = operatornamecholesky(mathrmK), with mathbff = mathrmL mathbfv, where mathbfv sim mathcalN(0 mathbfI) is a vector of standard-normal random variables.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We will use the same randomness mathbfv to generate comparable samples across different kernels.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"num_samples = 7\nv = randn(num_inputs, num_samples);","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"Mathematically, a kernel matrix is by definition positive semi-definite, but due to finite-precision inaccuracies, the computed kernel matrix might not be exactly positive definite. To avoid Cholesky errors, we add a small \"nugget\" term on the diagonal:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"function mvn_sample(K)\n L = cholesky(K + 1e-6 * I)\n f = L.L * v\n return f\nend;","category":"page"},{"location":"examples/gaussian-process-priors/#Visualization","page":"Gaussian process prior samples","title":"Visualization","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We now define a function that visualizes a kernel for us.","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"function visualize(k::Kernel)\n K = kernelmatrix(k, X)\n f = mvn_sample(K)\n\n p_kernel_2d = heatmap(\n X,\n X,\n K;\n yflip=true,\n colorbar=false,\n ylabel=string(nameof(typeof(k))),\n ylim=xlim,\n yticks=([xlim[1], 0, xlim[end]], [\"\\u22125\", raw\"$x'$\", \"5\"]),\n vlim=(0, 1),\n title=raw\"$k(x, x')$\",\n aspect_ratio=:equal,\n left_margin=5mm,\n )\n\n p_kernel_cut = plot(\n X,\n k.(X, 0.0);\n title=string(raw\"$k(x, x_\\mathrm{ref})$\"),\n label=raw\"$x_\\mathrm{ref}=0.0$\",\n legend=:topleft,\n foreground_color_legend=nothing,\n )\n plot!(X, k.(X, 1.5); label=raw\"$x_\\mathrm{ref}=1.5$\")\n\n p_samples = plot(X, f; c=\"blue\", title=raw\"$f(x)$\", ylim=(-3, 3), label=nothing)\n\n return plot(\n p_kernel_2d,\n p_kernel_cut,\n p_samples;\n layout=(1, 3),\n xlabel=raw\"$x$\",\n xlim=xlim,\n xticks=collect(xlim),\n )\nend;","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"We can now visualize a kernel and show samples from a Gaussian process with a given kernel:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"plot(visualize(SqExponentialKernel()); size=(800, 210), bottommargin=5mm, topmargin=5mm)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/gaussian-process-priors/#Kernel-comparison","page":"Gaussian process prior samples","title":"Kernel comparison","text":"","category":"section"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"This also allows us to compare different kernels:","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"kernels = [\n Matern12Kernel(),\n Matern32Kernel(),\n Matern52Kernel(),\n SqExponentialKernel(),\n WhiteKernel(),\n ConstantKernel(),\n LinearKernel(),\n compose(PeriodicKernel(), ScaleTransform(0.2)),\n NeuralNetworkKernel(),\n GibbsKernel(; lengthscale=x -> sum(exp ∘ sin, x)),\n]\nplot(\n [visualize(k) for k in kernels]...;\n layout=(length(kernels), 1),\n size=(800, 220 * length(kernels) + 100),\n)","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n \n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"
      \n
      Package and system information
      \n
      \nPackage information (click to expand)\n
      \nStatus `~/work/KernelFunctions.jl/KernelFunctions.jl/examples/gaussian-process-priors/Project.toml`\n  [31c24e10] Distributions v0.25.107\n  [ec8451be] KernelFunctions v0.10.60 `/home/runner/work/KernelFunctions.jl/KernelFunctions.jl#935cce5`\n  [98b081ad] Literate v2.16.1\n  [91a5bcdd] Plots v1.40.1\n  [37e2e46d] LinearAlgebra\n  [9a3f8284] Random\n
      \nTo reproduce this notebook's package environment, you can\n\ndownload the full Manifest.toml.\n
      \n
      \nSystem information (click to expand)\n
      \nJulia Version 1.10.0\nCommit 3120989f39b (2023-12-25 18:01 UTC)\nBuild Info:\n  Official https://julialang.org/ release\nPlatform Info:\n  OS: Linux (x86_64-linux-gnu)\n  CPU: 4 × AMD EPYC 7763 64-Core Processor\n  WORD_SIZE: 64\n  LIBM: libopenlibm\n  LLVM: libLLVM-15.0.7 (ORCJIT, znver3)\n  Threads: 1 on 4 virtual cores\nEnvironment:\n  JULIA_DEBUG = Documenter\n  JULIA_LOAD_PATH = :/home/runner/.julia/packages/JuliaGPsDocs/7M86H/src\n
      \n
      ","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"","category":"page"},{"location":"examples/gaussian-process-priors/","page":"Gaussian process prior samples","title":"Gaussian process prior samples","text":"This page was generated using Literate.jl.","category":"page"},{"location":"#KernelFunctions.jl","page":"Home","title":"KernelFunctions.jl","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"KernelFunctions.jl is a general purpose kernel package. It provides a flexible framework for creating kernel functions and manipulating them, and an extensive collection of implementations. The main goals of this package are:","category":"page"},{"location":"","page":"Home","title":"Home","text":"Flexibility: operations between kernels should be fluid and easy without breaking, with a user-friendly API.\nPlug-and-play: being model-agnostic; including the kernels before/after other steps should be straightforward. To interoperate well with generic packages for handling parameters like ParameterHandling.jl and FluxML's Functors.jl.\nAutomatic Differentiation compatibility: all kernel functions which ought to be differentiable using AD packages like ForwardDiff.jl or Zygote.jl should be.","category":"page"},{"location":"","page":"Home","title":"Home","text":"This package replaces the now-defunct MLKernels.jl. It incorporates lots of excellent existing work from packages such as GaussianProcesses.jl, and is used in downstream packages such as AbstractGPs.jl, ApproximateGPs.jl, Stheno.jl, and AugmentedGaussianProcesses.jl.","category":"page"},{"location":"","page":"Home","title":"Home","text":"See the User guide for a brief introduction.","category":"page"}] +} diff --git a/previews/PR546/siteinfo.js b/previews/PR546/siteinfo.js new file mode 100644 index 000000000..810bddda7 --- /dev/null +++ b/previews/PR546/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR546"; diff --git a/previews/PR546/transform/index.html b/previews/PR546/transform/index.html new file mode 100644 index 000000000..48e6c9cd0 --- /dev/null +++ b/previews/PR546/transform/index.html @@ -0,0 +1,51 @@ + +Input Transforms · KernelFunctions.jl

      Input Transforms

      Overview

      Transforms are designed to change input data before passing it on to a kernel object.

      It can be as standard as IdentityTransform returning the same input, or multiplying the data by a scalar with ScaleTransform or by a vector with ARDTransform. There is a more general FunctionTransform that uses a function and applies it to each input.

      You can also create a pipeline of Transforms via ChainTransform, e.g.,

      LowRankTransform(rand(10, 5)) ∘ ScaleTransform(2.0)

      A transformation t can be applied to a single input x with t(x) and to multiple inputs xs with map(t, xs).

      Kernels can be coupled with input transformations with or its alias compose. It falls back to creating a TransformedKernel but allows more optimized implementations for specific kernels and transformations.

      List of Input Transforms

      KernelFunctions.ScaleTransformType
      ScaleTransform(l::Real)

      Transformation that multiplies the input elementwise with l.

      Examples

      julia> l = rand(); t = ScaleTransform(l); X = rand(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(l .* X)
      +true
      source
      KernelFunctions.ARDTransformType
      ARDTransform(v::AbstractVector)

      Transformation that multiplies the input elementwise by v.

      Examples

      julia> v = rand(10); t = ARDTransform(v); X = rand(10, 100);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(v .* X)
      +true
      source
      KernelFunctions.LinearTransformType
      LinearTransform(A::AbstractMatrix)

      Linear transformation of the input realised by the matrix A.

      The second dimension of A must match the number of features of the target.

      Examples

      julia> A = rand(10, 5); t = LinearTransform(A); X = rand(5, 100);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(A * X)
      +true
      source
      KernelFunctions.FunctionTransformType
      FunctionTransform(f)

      Transformation that applies function f to the input.

      Make sure that f can act on an input. For instance, if the inputs are vectors, use f(x) = sin.(x) instead of f = sin.

      Examples

      julia> f(x) = sum(x); t = FunctionTransform(f); X = randn(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(sum(X; dims=1))
      +true
      source
      KernelFunctions.SelectTransformType
      SelectTransform(dims)

      Transformation that selects the dimensions dims of the input.

      Examples

      julia> dims = [1, 3, 5, 6, 7]; t = SelectTransform(dims); X = rand(100, 10);
      +
      +julia> map(t, ColVecs(X)) == ColVecs(X[dims, :])
      +true
      source
      KernelFunctions.ChainTransformType
      ChainTransform(transforms)

      Transformation that applies a chain of transformations ts to the input.

      The transformation first(ts) is applied first.

      Examples

      julia> l = rand(); A = rand(3, 4); t1 = ScaleTransform(l); t2 = LinearTransform(A);
      +
      +julia> X = rand(4, 10);
      +
      +julia> map(ChainTransform([t1, t2]), ColVecs(X)) == ColVecs(A * (l .* X))
      +true
      +
      +julia> map(t2 ∘ t1, ColVecs(X)) == ColVecs(A * (l .* X))
      +true
      source
      KernelFunctions.PeriodicTransformType
      PeriodicTransform(f)

      Transformation that maps the input elementwise onto the unit circle with frequency f.

      Samples from a GP with a kernel with this transformation applied to the inputs will produce samples with frequency f.

      Examples

      julia> f = rand(); t = PeriodicTransform(f); x = rand();
      +
      +julia> t(x) == [sinpi(2 * f * x), cospi(2 * f * x)]
      +true
      source

      Convenience functions

      KernelFunctions.with_lengthscaleFunction
      with_lengthscale(kernel::Kernel, lengthscale::Real)

      Construct a transformed kernel with lengthscale.

      Examples

      julia> kernel = with_lengthscale(SqExponentialKernel(), 2.5);
      +
      +julia> x = rand(2);
      +
      +julia> y = rand(2);
      +
      +julia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ScaleTransform(0.4))(x, y)
      +true
      source
      with_lengthscale(kernel::Kernel, lengthscales::AbstractVector{<:Real})

      Construct a transformed "ARD" kernel with different lengthscales for each dimension.

      Examples

      julia> kernel = with_lengthscale(SqExponentialKernel(), [0.5, 2.5]);
      +
      +julia> x = rand(2);
      +
      +julia> y = rand(2);
      +
      +julia> kernel(x, y) ≈ (SqExponentialKernel() ∘ ARDTransform([2, 0.4]))(x, y)
      +true
      source
      KernelFunctions.median_heuristic_transformFunction
      median_heuristic_transform(distance, x::AbstractVector)

      Create a ScaleTransform that divides the input elementwise by the median distance of the data points in x.

      The distance has to support pairwise evaluation with KernelFunctions.pairwise. All PreMetrics of the package Distances.jl such as Euclidean satisfy this requirement automatically.

      Examples

      julia> using Distances, Statistics
      +
      +julia> x = ColVecs(rand(100, 10));
      +
      +julia> t = median_heuristic_transform(Euclidean(), x);
      +
      +julia> y = map(t, x);
      +
      +julia> median(euclidean(y[i], y[j]) for i in 1:10, j in 1:10 if i != j) ≈ 1
      +true
      source
      diff --git a/previews/PR546/userguide/index.html b/previews/PR546/userguide/index.html new file mode 100644 index 000000000..422210932 --- /dev/null +++ b/previews/PR546/userguide/index.html @@ -0,0 +1,29 @@ + +User guide · KernelFunctions.jl

      User guide

      Kernel Creation

      To create a kernel object, choose one of the pre-implemented kernels, see Kernel Functions, or create your own, see Creating your own kernel. For example, a squared exponential kernel is created by

        k = SqExponentialKernel()
      How do I set the lengthscale(s)?

      Instead of having lengthscale(s) for each kernel we use Transform objects which act on the inputs before passing them to the kernel. Note that the transforms such as ScaleTransform and ARDTransform multiply the input by a scale factor, which corresponds to the inverse of the lengthscale. For example, a lengthscale of 0.5 is equivalent to premultiplying the input by 2.0, and you can create the corresponding kernel in either of the following equivalent ways:

        k = SqExponentialKernel() ∘ ScaleTransform(2.0)
      +  k = compose(SqExponentialKernel(), ScaleTransform(2.0))

      Alternatively, you can use the convenience function with_lengthscale:

      k = with_lengthscale(SqExponentialKernel(), 0.5)

      with_lengthscale also works with vector-valued lengthscales for multiple-dimensional inputs, and is equivalent to pre-composing with an ARDTransform:

      length_scales = [1.0, 2.0]
      +k = with_lengthscale(SqExponentialKernel(), length_scales)
      +k = SqExponentialKernel() ∘ ARDTransform(1 ./ length_scales)

      Check the Input Transforms page for more details.

      How do I set the kernel variance?

      To premultiply the kernel by a variance, you can use * with a scalar number:

        k = 3.0 * SqExponentialKernel()
      How do I use a Mahalanobis kernel?

      The MahalanobisKernel(; P=P), defined by

      \[k(x, x'; P) = \exp{\big(- (x - x')^\top P (x - x')\big)}\]

      for a positive definite matrix $P = Q^\top Q$, was removed in 0.9. Instead you can use a squared exponential kernel together with a LinearTransform of the inputs:

      k = SqExponentialKernel() ∘ LinearTransform(sqrt(2) .* Q)

      Analogously, you can combine other kernels such as the PiecewisePolynomialKernel with a LinearTransform of the inputs to obtain a kernel that is a function of the Mahalanobis distance between inputs.

      Using a Kernel Function

      To evaluate the kernel function on two vectors you simply call the kernel object:

      k = SqExponentialKernel()
      +x1 = rand(3)
      +x2 = rand(3)
      +k(x1, x2)

      Creating a Kernel Matrix

      Kernel matrices can be created via the kernelmatrix function or kernelmatrix_diag for only the diagonal. For example, for a collection of 10 Real-valued inputs:

      k = SqExponentialKernel()
      +x = rand(10)
      +kernelmatrix(k, x) # 10x10 matrix

      If your inputs are multi-dimensional, it is common to represent them as a matrix. For example

      X = rand(10, 5)

      However, it is ambiguous whether this represents a collection of 10 5-dimensional row-vectors, or 5 10-dimensional column-vectors. Therefore, we require users to provide some more information.

      You can write RowVecs(X) to declare that X contains 10 5-dimensional row-vectors, or ColVecs(X) to declare that X contains 5 10-dimensional column-vectors, then

      kernelmatrix(k, RowVecs(X))  # returns a 10×10 matrix -- each row of X treated as input
      +kernelmatrix(k, ColVecs(X))  # returns a 5×5 matrix -- each column of X treated as input

      This is the mechanism used throughout KernelFunctions.jl to handle multi-dimensional inputs.

      You can utilise the obsdim keyword argument if you prefer:

      kernelmatrix(k, X; obsdim=1) # same as RowVecs(X)
      +kernelmatrix(k, X; obsdim=2) # same as ColVecs(X)

      This is similar to the convention used in Distances.jl.

      So what type should I use to represent a collection of inputs?

      The central assumption made by KernelFunctions.jl is that all collections of N inputs are represented by AbstractVectors of length N. Abstraction is then used to ensure that efficiency is retained, ColVecs and RowVecs being the most obvious examples of this.

      Concretely:

      1. For Real-valued inputs (scalars), a Vector{<:Real} is fine.
      2. For vector-valued inputs, consider a ColVecs or RowVecs.
      3. For a new input type, simply represent collections of inputs of this type as an AbstractVector.

      See Input Types and Design for a more thorough discussion of the considerations made when this design was adopted.

      The obsdim kwarg mentioned above is a special case for vector-valued inputs stored in a matrix. It is implemented as a lightweight wrapper that constructs either a RowVecs or ColVecs from your inputs, and passes this on.

      Output Types

      In addition to plain Matrix-like output, KernelFunctions.jl supports specific output types:

      • For a positive-definite matrix object of type PDMat from PDMats.jl, you can call the following:
      using PDMats
      +k = SqExponentialKernel()
      +K = kernelpdmat(k, RowVecs(X)) # PDMat
      +K = kernelpdmat(k, X; obsdim=1) # PDMat

      It will create a matrix and in case of bad conditioning will add some diagonal noise until the matrix is considered positive-definite; it will then return a PDMat object. For this method to work in your code you need to include using PDMats first.

      • For a Kronecker matrix, we rely on Kronecker.jl. Here are two examples:
      using Kronecker
      +x = range(0, 1; length=10)
      +y = range(0, 1; length=50)
      +K = kernelkronmat(k, [x, y]) # Kronecker matrix
      +K = kernelkronmat(k, x, 5) # Kronecker matrix

      Make sure that k is a kernel compatible with such constructions (with iskroncompatible(k)). Both methods will return a Kronecker matrix. For those methods to work in your code you need to include using Kronecker first.

      • For a Nystrom approximation: kernelmatrix(nystrom(k, X, ρ, obsdim=1)) where ρ is the fraction of data samples used in the approximation.

      Composite Kernels

      Sums and products of kernels are also valid kernels. They can be created via KernelSum and KernelProduct or using simple operators + and *. For example:

      k1 = SqExponentialKernel()
      +k2 = Matern32Kernel()
      +k = 0.5 * k1 + 0.2 * k2 # KernelSum
      +k = k1 * k2 # KernelProduct

      Kernel Parameters

      What if you want to differentiate through the kernel parameters? This is easy even in a highly nested structure such as:

      k = (
      +    0.5 * SqExponentialKernel() * Matern12Kernel() +
      +    0.2 * (LinearKernel() ∘ ScaleTransform(2.0) + PolynomialKernel())
      +) ∘ ARDTransform([0.1, 0.5])

      One can access the named tuple of trainable parameters via Functors.functor from Functors.jl. This means that in practice you can implicitly optimize the kernel parameters by calling:

      using Flux
      +kernelparams = Flux.params(k)
      +Flux.gradient(kernelparams) do
      +    # ... some loss function on the kernel ....
      +end