From 03db1e48c2995023822d3852a2c3ecf7da62e6bd Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 12 Dec 2023 16:08:10 -0800 Subject: [PATCH 01/12] fix bugs and move to raja based data binning --- .../ascent_blueprint_architect.cpp | 929 +++++++++--------- .../ascent_blueprint_architect.hpp | 14 +- .../ascent_blueprint_device_dispatch.hpp | 2 +- .../expressions/ascent_data_binning.cpp | 559 +++++++---- .../expressions/ascent_expression_filters.cpp | 34 +- src/tests/ascent/t_ascent_data_binning.cpp | 246 ++++- 6 files changed, 1075 insertions(+), 709 deletions(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp index cd3ecbc85..b0269bf6b 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp @@ -534,7 +534,6 @@ struct CentroidFunctor template void operator()(MeshType &mesh, const Exec &) { - const int size = mesh.m_num_cells; const int dims = mesh.m_dims; @@ -545,7 +544,6 @@ struct CentroidFunctor using for_policy = typename Exec::for_policy; ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t cell_idx) { - centroids_ptr[cell_idx] = cell_idx; int indices[8] = {-1, -1, -1, -1, -1, -1, -1, -1}; mesh.cell_indices(cell_idx, indices); @@ -1309,7 +1307,7 @@ int find_bin(const T* bins, const int size, const T val, bool clamp) return first; } - +// // returns -1 if value lies outside the range conduit::index_t get_bin_index(const conduit::float64 value, const conduit::Node &axis) @@ -1347,7 +1345,7 @@ get_bin_index(const conduit::float64 value, const conduit::Node &axis) } return bin_index; } - +// void populate_homes(const conduit::Node &dom, const conduit::Node &bin_axes, @@ -1484,467 +1482,476 @@ populate_homes(const conduit::Node &dom, } } -void -update_bin(double *bins, - const int i, - const double value, - const std::string &reduction_op) -{ - if(reduction_op == "min") - { - bins[i] = std::min(bins[i], value); - } - else if(reduction_op == "max") - { - bins[i] = std::max(bins[i], value); - } - else if(reduction_op == "avg" || reduction_op == "sum" || - reduction_op == "pdf") - { - bins[2 * i] += value; - bins[2 * i + 1] += 1; - } - else if(reduction_op == "rms") - { - bins[2 * i] += value * value; - bins[2 * i + 1] += 1; - } - else if(reduction_op == "var" || reduction_op == "std") - { - bins[3 * i] += value * value; - bins[3 * i + 1] += value; - bins[3 * i + 2] += 1; - } -} - - -void init_bins(double *bins, - const int size, - const std::string reduction_op) -{ - if(reduction_op != "max" && reduction_op != "min") - { - // already init to 0, so do nothing - return; - } - - double init_val; - if(reduction_op == "max") - { - init_val = std::numeric_limits::lowest(); - } - else - { - init_val = std::numeric_limits::max(); - } - -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < size; ++i) - { - bins[i] = init_val; - } - -} - - +// void +// update_bin(double *bins, +// const int i, +// const double value, +// const std::string &reduction_op) +// { +// if(reduction_op == "min") +// { +// bins[i] = std::min(bins[i], value); +// } +// else if(reduction_op == "max") +// { +// bins[i] = std::max(bins[i], value); +// } +// else if(reduction_op == "avg" || reduction_op == "sum" || +// reduction_op == "pdf") +// { +// bins[2 * i] += value; +// bins[2 * i + 1] += 1; +// } +// else if(reduction_op == "rms") +// { +// bins[2 * i] += value * value; +// bins[2 * i + 1] += 1; +// } +// else if(reduction_op == "var" || reduction_op == "std") +// { +// bins[3 * i] += value * value; +// bins[3 * i + 1] += value; +// bins[3 * i + 2] += 1; +// } +// } // -// NOTE THERE IS A RAJA VERSION IN ascent_data_binning -// that we want to supercede this one, it needs more work. // - -conduit::Node -binning(const conduit::Node &dataset, - conduit::Node &bin_axes, - const std::string &reduction_var, - const std::string &reduction_op, - const double empty_bin_val, - const std::string &component) -{ - std::vector var_names = bin_axes.child_names(); - if(!reduction_var.empty()) - { - var_names.push_back(reduction_var); - } - const conduit::Node &topo_and_assoc = - global_topo_and_assoc(dataset, var_names); - const std::string topo_name = topo_and_assoc["topo_name"].as_string(); - const std::string assoc_str = topo_and_assoc["assoc_str"].as_string(); - - const conduit::Node &bounds = global_bounds(dataset, topo_name); - const double *min_coords = bounds["min_coords"].value(); - const double *max_coords = bounds["max_coords"].value(); - const std::string axes[3][3] = { - {"x", "i", "dx"}, {"y", "j", "dy"}, {"z", "k", "dz"}}; - // populate min_val, max_val, for x,y,z - for(int axis_num = 0; axis_num < 3; ++axis_num) - { - if(bin_axes.has_path(axes[axis_num][0])) - { - conduit::Node &axis = bin_axes[axes[axis_num][0]]; - - if(axis.has_path("bins")) - { - // rectilinear binning was specified - continue; - } - - if(min_coords[axis_num] == std::numeric_limits::max()) - { - ASCENT_ERROR("Could not finds bounds for axis: " - << axes[axis_num][0] - << ". It probably doesn't exist in the topology: " - << topo_name); - } - - if(!axis.has_path("min_val")) - { - axis["min_val"] = min_coords[axis_num]; - } - - if(!axis.has_path("max_val")) - { - // We add eps because the last bin isn't inclusive - double min_val = axis["min_val"].to_float64(); - double length = max_coords[axis_num] - min_val; - double eps = length * 1e-8; - axis["max_val"] = max_coords[axis_num] + eps; - } - } - } - - int num_axes = bin_axes.number_of_children(); - - // create bins - index_t num_bins = 1; - for(int axis_index = 0; axis_index < num_axes; ++axis_index) - { - conduit::Node &axis = bin_axes.child(axis_index); - const std::string axis_name = axis.name(); - - if(!bin_axes.child(axis_index).has_child("min_val")) - { - axis["min_val"] = field_min(dataset, axis_name)["value"].to_float64(); - } - if(!axis.has_child("max_val")) - { - // TODO: FIXME THE BASELINES REQUIRE +1 here, not good. - axis["max_val"] = field_max(dataset, axis_name)["value"].to_float64() + 1.0; - } - - if(bin_axes.child(axis_index).has_path("num_bins")) - { - // uniform axis - num_bins *= bin_axes.child(axis_index)["num_bins"].to_index_t(); - } - else - { - // rectilinear axis - num_bins *= - bin_axes.child(axis_index)["bins"].dtype().number_of_elements() - 1; - } - } - // number of variables held per bin (e.g. sum and cnt for average) - int num_bin_vars = 2; - if(reduction_op == "var" || reduction_op == "std") - { - num_bin_vars = 3; - } - else if(reduction_op == "min" || reduction_op == "max") - { - num_bin_vars = 1; - } - const int bins_size = num_bins * num_bin_vars; - double *bins = new double[bins_size](); - init_bins(bins, bins_size, reduction_op); - - for(int dom_index = 0; dom_index < dataset.number_of_children(); ++dom_index) - { - const conduit::Node &dom = dataset.child(dom_index); - if(!dom.has_path("topologies/"+topo_name)) - { - continue; - } - - conduit::Node n_homes; - populate_homes(dom, bin_axes, topo_name, assoc_str, n_homes); - - if(n_homes.has_path("error")) - { - ASCENT_INFO("Binning: not binning domain " - << dom_index << " because field: '" - << n_homes["error/field_name"].to_string() - << "' was not found."); - continue; - } - const int *homes = n_homes.as_int_ptr(); - const int homes_size = n_homes.dtype().number_of_elements(); - - // update bins - if(reduction_var.empty()) - { -//#ifdef ASCENT_OPENMP_ENABLED -//#pragma omp parallel for -//#endif - for(int i = 0; i < homes_size; ++i) - { - if(homes[i] != -1) - { - update_bin(bins, homes[i], 1, reduction_op); - } - } - } - else if(dom.has_path("fields/" + reduction_var)) - { - const std::string comp_path = component == "" ? "" : "/" + component; - const std::string values_path - = "fields/" + reduction_var + "/values" + comp_path; - - if(dom[values_path].dtype().is_float32()) - { - const conduit::float32_array values = dom[values_path].value(); -//#ifdef ASCENT_OPENMP_ENABLED -//#pragma omp parallel for -//#endif - for(int i = 0; i < homes_size; ++i) - { - if(homes[i] != -1) - { - update_bin(bins, homes[i], values[i], reduction_op); - } - } - } - else - { - const conduit::float64_array values = dom[values_path].value(); -//#ifdef ASCENT_OPENMP_ENABLED -//#pragma omp parallel for -//#endif - for(int i = 0; i < homes_size; ++i) - { - if(homes[i] != -1) - { - update_bin(bins, homes[i], values[i], reduction_op); - } - } - } - } - else if(is_xyz(reduction_var)) - { - int coord = reduction_var[0] - 'x'; -//#ifdef ASCENT_OPENMP_ENABLED -//#pragma omp parallel for -//#endif - for(int i = 0; i < homes_size; ++i) - { - conduit::Node n_loc; - if(assoc_str == "vertex") - { - n_loc = vert_location(dom, i, topo_name); - } - else if(assoc_str == "element") - { - n_loc = element_location(dom, i, topo_name); - } - const double *loc = n_loc.value(); - if(homes[i] != -1) - { - update_bin(bins, homes[i], loc[coord], reduction_op); - } - } - } - else - { - ASCENT_INFO("Binning: not binning domain " - << dom_index << " because field: '" << reduction_var - << "' was not found."); - } - } - -#ifdef ASCENT_MPI_ENABLED - MPI_Comm mpi_comm = MPI_Comm_f2c(flow::Workspace::default_mpi_comm()); - double *global_bins = new double[bins_size]; - if(reduction_op == "sum" || reduction_op == "pdf" || reduction_op == "avg" || - reduction_op == "std" || reduction_op == "var" || reduction_op == "rms") - { - MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); - } - else if(reduction_op == "min") - { - MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MIN, mpi_comm); - } - else if(reduction_op == "max") - { - MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MAX, mpi_comm); - } - delete[] bins; - bins = global_bins; -#endif +// void init_bins(double *bins, +// const int size, +// const std::string reduction_op) +// { +// if(reduction_op != "max" && reduction_op != "min") +// { +// // already init to 0, so do nothing +// return; +// } +// +// double init_val; +// if(reduction_op == "max") +// { +// init_val = std::numeric_limits::lowest(); +// } +// else +// { +// init_val = std::numeric_limits::max(); +// } +// +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < size; ++i) +// { +// bins[i] = init_val; +// } +// +// } - conduit::Node res; - res["value"].set(conduit::DataType::c_double(num_bins)); - double *res_bins = res["value"].value(); - if(reduction_op == "pdf") - { - double total = 0; -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for reduction(+ : total) -#endif - for(int i = 0; i < num_bins; ++i) - { - total += bins[2 * i]; - } -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - if(bins[2 * i + 1] == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = bins[2 * i] / total; - } - } - } - else if(reduction_op == "min") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - if(bins[i] == std::numeric_limits::max()) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = bins[i]; - } - } - } - else if(reduction_op == "max") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - if(bins[i] == std::numeric_limits::lowest()) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = bins[i]; - } - } - - } - else if(reduction_op == "sum") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - if(bins[2 * i + 1] == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = bins[2 * i]; - } - } - } - else if(reduction_op == "avg") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - const double sumX = bins[2 * i]; - const double n = bins[2 * i + 1]; - if(n == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = sumX / n; - } - } - } - else if(reduction_op == "rms") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - const double sumX = bins[2 * i]; - const double n = bins[2 * i + 1]; - if(n == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = std::sqrt(sumX / n); - } - } - } - else if(reduction_op == "var") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - const double sumX2 = bins[3 * i]; - const double sumX = bins[3 * i + 1]; - const double n = bins[3 * i + 2]; - if(n == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = (sumX2 / n) - std::pow(sumX / n, 2); - } - } - } - else if(reduction_op == "std") - { -#ifdef ASCENT_OPENMP_ENABLED -#pragma omp parallel for -#endif - for(int i = 0; i < num_bins; ++i) - { - const double sumX2 = bins[3 * i]; - const double sumX = bins[3 * i + 1]; - const double n = bins[3 * i + 2]; - if(n == 0) - { - res_bins[i] = empty_bin_val; - } - else - { - res_bins[i] = std::sqrt((sumX2 / n) - std::pow(sumX / n, 2)); - } - } - } - res["association"] = assoc_str; - delete[] bins; - return res; -} +// +// // NOTE THERE IS A RAJA VERSION IN ascent_data_binning +// // that we want to supercede this one, it needs more work. +// // +// +// conduit::Node +// binning(const conduit::Node &dataset, +// conduit::Node &bin_axes, +// const std::string &reduction_var, +// const std::string &reduction_op, +// const double empty_bin_val, +// const std::string &component) +// { +// // ASCENT_API +// // conduit::Node data_binning(conduit::Node &dataset, +// // conduit::Node &bin_axes, +// // const std::string &reduction_var, +// // const std::string &reduction_op, +// // const double empty_bin_val, +// // const std::string &component, +// // std::map> &bindexes); +// +// std::vector var_names = bin_axes.child_names(); +// if(!reduction_var.empty()) +// { +// var_names.push_back(reduction_var); +// } +// const conduit::Node &topo_and_assoc = +// global_topo_and_assoc(dataset, var_names); +// const std::string topo_name = topo_and_assoc["topo_name"].as_string(); +// const std::string assoc_str = topo_and_assoc["assoc_str"].as_string(); +// +// const conduit::Node &bounds = global_bounds(dataset, topo_name); +// const double *min_coords = bounds["min_coords"].value(); +// const double *max_coords = bounds["max_coords"].value(); +// const std::string axes[3][3] = { +// {"x", "i", "dx"}, {"y", "j", "dy"}, {"z", "k", "dz"}}; +// // populate min_val, max_val, for x,y,z +// for(int axis_num = 0; axis_num < 3; ++axis_num) +// { +// if(bin_axes.has_path(axes[axis_num][0])) +// { +// conduit::Node &axis = bin_axes[axes[axis_num][0]]; +// +// if(axis.has_path("bins")) +// { +// // rectilinear binning was specified +// continue; +// } +// +// if(min_coords[axis_num] == std::numeric_limits::max()) +// { +// ASCENT_ERROR("Could not finds bounds for axis: " +// << axes[axis_num][0] +// << ". It probably doesn't exist in the topology: " +// << topo_name); +// } +// +// if(!axis.has_path("min_val")) +// { +// axis["min_val"] = min_coords[axis_num]; +// } +// +// if(!axis.has_path("max_val")) +// { +// // We add eps because the last bin isn't inclusive +// double min_val = axis["min_val"].to_float64(); +// double length = max_coords[axis_num] - min_val; +// double eps = length * 1e-8; +// axis["max_val"] = max_coords[axis_num] + eps; +// } +// } +// } +// +// int num_axes = bin_axes.number_of_children(); +// +// // create bins +// index_t num_bins = 1; +// for(int axis_index = 0; axis_index < num_axes; ++axis_index) +// { +// conduit::Node &axis = bin_axes.child(axis_index); +// const std::string axis_name = axis.name(); +// +// if(!bin_axes.child(axis_index).has_child("min_val")) +// { +// axis["min_val"] = field_min(dataset, axis_name)["value"].to_float64(); +// } +// if(!axis.has_child("max_val")) +// { +// // TODO: FIXME THE BASELINES REQUIRE +1 here, not good. +// axis["max_val"] = field_max(dataset, axis_name)["value"].to_float64() + 1.0; +// } +// +// if(bin_axes.child(axis_index).has_path("num_bins")) +// { +// // uniform axis +// num_bins *= bin_axes.child(axis_index)["num_bins"].to_index_t(); +// } +// else +// { +// // rectilinear axis +// num_bins *= +// bin_axes.child(axis_index)["bins"].dtype().number_of_elements() - 1; +// } +// } +// // number of variables held per bin (e.g. sum and cnt for average) +// int num_bin_vars = 2; +// if(reduction_op == "var" || reduction_op == "std") +// { +// num_bin_vars = 3; +// } +// else if(reduction_op == "min" || reduction_op == "max") +// { +// num_bin_vars = 1; +// } +// const int bins_size = num_bins * num_bin_vars; +// double *bins = new double[bins_size](); +// init_bins(bins, bins_size, reduction_op); +// +// for(int dom_index = 0; dom_index < dataset.number_of_children(); ++dom_index) +// { +// const conduit::Node &dom = dataset.child(dom_index); +// if(!dom.has_path("topologies/"+topo_name)) +// { +// continue; +// } +// +// conduit::Node n_homes; +// populate_homes(dom, bin_axes, topo_name, assoc_str, n_homes); +// +// if(n_homes.has_path("error")) +// { +// ASCENT_INFO("Binning: not binning domain " +// << dom_index << " because field: '" +// << n_homes["error/field_name"].to_string() +// << "' was not found."); +// continue; +// } +// const int *homes = n_homes.as_int_ptr(); +// const int homes_size = n_homes.dtype().number_of_elements(); +// +// // update bins +// if(reduction_var.empty()) +// { +// //#ifdef ASCENT_OPENMP_ENABLED +// //#pragma omp parallel for +// //#endif +// for(int i = 0; i < homes_size; ++i) +// { +// if(homes[i] != -1) +// { +// update_bin(bins, homes[i], 1, reduction_op); +// } +// } +// } +// else if(dom.has_path("fields/" + reduction_var)) +// { +// const std::string comp_path = component == "" ? "" : "/" + component; +// const std::string values_path +// = "fields/" + reduction_var + "/values" + comp_path; +// +// if(dom[values_path].dtype().is_float32()) +// { +// const conduit::float32_array values = dom[values_path].value(); +// //#ifdef ASCENT_OPENMP_ENABLED +// //#pragma omp parallel for +// //#endif +// for(int i = 0; i < homes_size; ++i) +// { +// if(homes[i] != -1) +// { +// update_bin(bins, homes[i], values[i], reduction_op); +// } +// } +// } +// else +// { +// const conduit::float64_array values = dom[values_path].value(); +// //#ifdef ASCENT_OPENMP_ENABLED +// //#pragma omp parallel for +// //#endif +// for(int i = 0; i < homes_size; ++i) +// { +// if(homes[i] != -1) +// { +// update_bin(bins, homes[i], values[i], reduction_op); +// } +// } +// } +// } +// else if(is_xyz(reduction_var)) +// { +// int coord = reduction_var[0] - 'x'; +// //#ifdef ASCENT_OPENMP_ENABLED +// //#pragma omp parallel for +// //#endif +// for(int i = 0; i < homes_size; ++i) +// { +// conduit::Node n_loc; +// if(assoc_str == "vertex") +// { +// n_loc = vert_location(dom, i, topo_name); +// } +// else if(assoc_str == "element") +// { +// n_loc = element_location(dom, i, topo_name); +// } +// const double *loc = n_loc.value(); +// if(homes[i] != -1) +// { +// update_bin(bins, homes[i], loc[coord], reduction_op); +// } +// } +// } +// else +// { +// ASCENT_INFO("Binning: not binning domain " +// << dom_index << " because field: '" << reduction_var +// << "' was not found."); +// } +// } +// +// #ifdef ASCENT_MPI_ENABLED +// MPI_Comm mpi_comm = MPI_Comm_f2c(flow::Workspace::default_mpi_comm()); +// double *global_bins = new double[bins_size]; +// if(reduction_op == "sum" || reduction_op == "pdf" || reduction_op == "avg" || +// reduction_op == "std" || reduction_op == "var" || reduction_op == "rms") +// { +// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); +// } +// else if(reduction_op == "min") +// { +// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MIN, mpi_comm); +// } +// else if(reduction_op == "max") +// { +// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MAX, mpi_comm); +// } +// delete[] bins; +// bins = global_bins; +// #endif +// +// +// conduit::Node res; +// res["value"].set(conduit::DataType::c_double(num_bins)); +// double *res_bins = res["value"].value(); +// if(reduction_op == "pdf") +// { +// double total = 0; +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for reduction(+ : total) +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// total += bins[2 * i]; +// } +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// if(bins[2 * i + 1] == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = bins[2 * i] / total; +// } +// } +// } +// else if(reduction_op == "min") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// if(bins[i] == std::numeric_limits::max()) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = bins[i]; +// } +// } +// } +// else if(reduction_op == "max") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// if(bins[i] == std::numeric_limits::lowest()) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = bins[i]; +// } +// } +// +// } +// else if(reduction_op == "sum") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// if(bins[2 * i + 1] == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = bins[2 * i]; +// } +// } +// } +// else if(reduction_op == "avg") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// const double sumX = bins[2 * i]; +// const double n = bins[2 * i + 1]; +// if(n == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = sumX / n; +// } +// } +// } +// else if(reduction_op == "rms") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// const double sumX = bins[2 * i]; +// const double n = bins[2 * i + 1]; +// if(n == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = std::sqrt(sumX / n); +// } +// } +// } +// else if(reduction_op == "var") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// const double sumX2 = bins[3 * i]; +// const double sumX = bins[3 * i + 1]; +// const double n = bins[3 * i + 2]; +// if(n == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = (sumX2 / n) - std::pow(sumX / n, 2); +// } +// } +// } +// else if(reduction_op == "std") +// { +// #ifdef ASCENT_OPENMP_ENABLED +// #pragma omp parallel for +// #endif +// for(int i = 0; i < num_bins; ++i) +// { +// const double sumX2 = bins[3 * i]; +// const double sumX = bins[3 * i + 1]; +// const double n = bins[3 * i + 2]; +// if(n == 0) +// { +// res_bins[i] = empty_bin_val; +// } +// else +// { +// res_bins[i] = std::sqrt((sumX2 / n) - std::pow(sumX / n, 2)); +// } +// } +// } +// res["association"] = assoc_str; +// delete[] bins; +// return res; +// } void paint_binning(const conduit::Node &binning, diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp index de3d5d6d4..410abb0d6 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp @@ -95,20 +95,8 @@ ASCENT_API void derived_field_add_fields(conduit::Node &dataset, const std::vector &field_names, const std::string &output_field_name); -// -// NOTE: ascent_data_binning contains a RAJA version -// of binning that needs more work, but should eventually -// supersede these versions -// - -ASCENT_API -conduit::Node binning(const conduit::Node &dataset, - conduit::Node &bin_axes, - const std::string &reduction_var, - const std::string &reduction_op, - const double empty_bin_val, - const std::string &component); +// TODO: Create RAJA version of paint_binning + binning_mesh ASCENT_API void ASCENT_API paint_binning(const conduit::Node &binning, conduit::Node &dataset, diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp index 53fabec04..2c78ae311 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp @@ -319,7 +319,7 @@ exec_dispatch_mesh(const conduit::Node &n_coords, if(is_conduit_type(n_topo[conn_path])) { - MCArray conn(n_topo["conn_path"]); + MCArray conn(n_topo[conn_path]); UnstructuredMesh mesh(mem_space, coords, conn, diff --git a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp index 3b2be4417..bc483b00f 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp @@ -133,11 +133,15 @@ Array allocate_bins(const std::string reduction_op, // i.e., we might need to keep track of the bin sum and counts for // average int num_bin_vars = 2; - if(reduction_op == "var" || reduction_op == "std") + if(reduction_op == "var" || + reduction_op == "std") { num_bin_vars = 3; } - else if(reduction_op == "min" || reduction_op == "max") + else if(reduction_op == "min" || + reduction_op == "max" || + reduction_op == "pdf" || + reduction_op == "count" ) { num_bin_vars = 1; } @@ -147,8 +151,8 @@ Array allocate_bins(const std::string reduction_op, bins.resize(bins_size); double init_val = 0.; + // init the memory - // TODO: i think this is wrong: needs offsets and 0s for counts if(reduction_op == "max") { init_val = std::numeric_limits::lowest(); @@ -157,6 +161,7 @@ Array allocate_bins(const std::string reduction_op, { init_val = std::numeric_limits::max(); } + array_memset(bins, init_val); total_bins = static_cast(num_bins); @@ -314,7 +319,7 @@ create_bins_axes(conduit::Node &bin_axes, const double *min_coords = bounds["min_coords"].value(); const double *max_coords = bounds["max_coords"].value(); - bin_axes.print(); + // bin_axes.print(); conduit::Node res; const int num_axes = bin_axes.number_of_children(); @@ -416,30 +421,40 @@ create_bins_axes(conduit::Node &bin_axes, } - res.print(); + // res.print(); return res; } +/// +/// `values` can be 2D multi-component array +/// bindexes is 1D, either number of verts or number of eles long +/// + template void calc_bindex(const Array &values, const int num_components, const int component_id, - const int bin_stride, const conduit::Node &axis, + const int bin_stride, Array &bindexes, Exec) { const std::string mem_space = Exec::memory_space; - - const int size = values.size(); + // number of values to bin + const int size = bindexes.size(); + // values we want to bin const double *values_ptr = values.get_ptr_const(mem_space); + // bindexs (binning index result for each value) int *bindex_ptr = bindexes.get_ptr(mem_space); + + // the bin extents for given axis double *bins_node_ptr = const_cast(axis["bins"].as_float64_ptr()); Array bins( bins_node_ptr, axis["bins"].dtype().number_of_elements()); - const double *bins_ptr = bins.get_ptr_const(mem_space); const int bins_size = bins.size(); + const double *bins_ptr = bins.get_ptr_const(mem_space); + bool clamp = axis["clamp"].to_int32() == 1; //std::cout<<"**** bindex size "< &values, ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { + // calc location of bin result const int v_offset = i * num_components + component_id; const double value = values_ptr[v_offset]; - // just scan throught the bins, be facier later + + // just scan through the bins, be fancier later // we should get the index of the first bin that - // + // is greater than the value + int bindex = 0; while(value > bins_ptr[bindex]) { @@ -461,38 +479,47 @@ void calc_bindex(const Array &values, break; } } + // make sure the last bin is inclusive if(value == bins_ptr[bins_size-1]) { - bindex = bins_size - 1; + bindex = bins_size - 2; } - if(!clamp && bindex == 0 && (value < bins_ptr[0])) + // if we aren't clamping and we are less + // than the first bin, invalidate the index + else if(!clamp && bindex == 0 && (value < bins_ptr[0])) { bindex = -1; } + // if we aren't clamping and we above + // than the last bin, invalidate the index else if(!clamp && bindex == bins_size) { bindex = -1; } - else + else // otherwise we min/max to clamp { - bindex = max(0,min(bindex,bins_size - 1)); + // adj back to zero-based, we have one less bin + // than we have bin bounds + bindex--; + bindex = max(0,min(bindex,bins_size - 2)); } - int current_bindex = bins_ptr[i]; - bool valid = true; - // this is missed some other bin, so just keep it that way - if(current_bindex == -1 || bindex == -1) + + // check bindex from prior passes + // if any were -1, that means we are out of bin range + // keep -1 + int prev_bindex = bindex_ptr[i]; + if (prev_bindex == -1 || bindex == -1) { - valid = false; + bindex = -1; } - - int bin_value = bindex * bin_stride + current_bindex; - if(!valid) + // we may have prev pass, apply striding to new value + // to eventually land + else { - // keep it invalid - bin_value = -1; + bindex = bindex * bin_stride + prev_bindex; } - bindex_ptr[i] = bin_value; + bindex_ptr[i] = bindex; }); ASCENT_DEVICE_ERROR_CHECK(); } @@ -515,7 +542,7 @@ Array cast_to_float64(conduit::Node &field, const std::string component) res_ptr[i] = static_cast(accessor[i]); }); //std::cout<<"Cast to float64 "< cast_field_values(conduit::Node &field, const std::string componen struct BinningFunctor { + // per domain bindexes + // per domain values std::map> &m_bindexes; std::map> &m_values; Array &m_bins; @@ -584,95 +613,110 @@ struct BinningFunctor for(auto dom_id : m_domain_ids) { + const int size = m_values[dom_id].size(); const int *bindex_ptr = m_bindexes[dom_id].get_ptr_const(Exec::memory_space); const double *values_ptr = m_values[dom_id].get_ptr_const(Exec::memory_space); - // std::cout<<"Banananananananananananananananananana\n"; - m_values[dom_id].status(); - m_values[dom_id].summary(); - m_bindexes[dom_id].summary(); - Array testa = m_values[dom_id]; - testa.summary(); - testa.status(); - const int size = m_values[dom_id].size(); double *bins_ptr = m_bins.get_ptr(Exec::memory_space); - - - ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) - { - // if(i == 0) - // { - // for(int ii = 0; ii< size; ++ii)printf("i %d val %f\n", ii,values_ptr[ii]); - // } - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - const int offset = index * 2; - //printf("binner cell %d bindex %d value %f\n", i,index,value); - ascent::atomic_add(bins_ptr + offset, value); - ascent::atomic_add(bins_ptr + offset + 1, 1.); - }); + + // m_values[dom_id].status(); + // m_values[dom_id].summary(); + // m_bindexes[dom_id].summary(); if(m_op == "min") { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - ascent::atomic_min(bins_ptr + index, value); + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + ascent::atomic_min(bins_ptr + bindex, value); + } }); } else if(m_op == "max") { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - ascent::atomic_max(bins_ptr + index, value); + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + ascent::atomic_max(bins_ptr + bindex, value); + } }); } - else if(m_op == "avg" || m_op == "sum" || m_op == "pdf") + else if(m_op == "count") { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { - if(i == 0) + const int bindex = bindex_ptr[i]; + if(bindex>= 0) { - for(int ii = 0; ii< size; ++ii) printf("i %d val %f\n", ii,values_ptr[ii]); + ascent::atomic_add(bins_ptr + bindex, 1.); + } + }); + } + else if(m_op == "pdf") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) + { + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + ascent::atomic_add(bins_ptr + bindex, 1.); + } + }); + } + else if(m_op == "avg" || m_op == "sum") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) + { + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + const int offset = bindex * 2; + ascent::atomic_add(bins_ptr + offset, value); + ascent::atomic_add(bins_ptr + offset + 1, 1.); } - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - const int offset = index * 2; - // printf("binner cell %d bindex %d value %f\n", i,index,value); - ascent::atomic_add(bins_ptr + offset, value); - ascent::atomic_add(bins_ptr + offset + 1, 1.); }); } else if(m_op == "rms") { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - const int offset = index * 2; - ascent::atomic_add(bins_ptr + offset, value * value); - ascent::atomic_add(bins_ptr + offset + 1, 1.); + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + const int offset = bindex * 2; + ascent::atomic_add(bins_ptr + offset, value * value); + ascent::atomic_add(bins_ptr + offset + 1, 1.); + } }); } else if(m_op == "var" || m_op == "std") { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { - const int index = bindex_ptr[i]; - const double value = values_ptr[i]; - const int offset = index * 3; - ascent::atomic_add(bins_ptr + offset, value * value); - ascent::atomic_add(bins_ptr + offset + 1, value); - ascent::atomic_add(bins_ptr + offset + 2, 1.); + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + const int offset = bindex * 3; + ascent::atomic_add(bins_ptr + offset, value * value); + ascent::atomic_add(bins_ptr + offset + 1, value); + ascent::atomic_add(bins_ptr + offset + 2, 1.); + } }); } - double *host_ptr = m_bins.get_host_ptr(); + // DEBUGGING: + // double *host_ptr = m_bins.get_host_ptr(); // for(int i = 0; i < m_bins.size(); ++i) // { - // /std::cout<<"int results index "< void operator()(const Exec &) { - const int num_axes = m_axes.number_of_children(); const int num_domains = m_dataset.number_of_children(); + const int num_axes = m_axes.number_of_children(); + + // loop over domains for(int dom_index = 0; dom_index < num_domains; ++dom_index) { // ensure this domain has the necessary fields conduit::Node &dom = m_dataset.child(dom_index); for(int axis_index = 0; axis_index < num_axes; ++axis_index) { - const conduit::Node &axis = m_axes.child(axis_index); + const conduit::Node &axis = m_axes.child(axis_index); const std::string axis_name = axis.name(); + // skip the axis name is not one of the spatial axes + // or if the domain is missing the named field if(!dom.has_path("fields/" + axis_name) && !is_xyz(axis_name)) { continue; @@ -737,22 +785,30 @@ struct BindexingFunctor // are in fact domain ids const int domain_id = dom["state/domain_id"].to_int32(); Array &bindexes = m_bindexes[domain_id]; + //std::cout<<"*** Homes size "< spatial_values; int bin_stride = 1; + for(int axis_index = 0; axis_index < num_axes; ++axis_index) { - const conduit::Node &axis = m_axes.child(axis_index); + const conduit::Node &axis = m_axes.child(axis_index); const std::string axis_name = axis.name(); + // std::cout << "axis index = " << axis_index << " " << axis_name << std::endl; + // case where bin axis is a field if(dom.has_path("fields/" + axis_name)) { Array values; @@ -762,19 +818,21 @@ struct BindexingFunctor detail::calc_bindex(values, 1, // number of components 0, // which component - bin_stride, axis, + bin_stride, bindexes, Exec()); if(axis_name == m_reduction_var) { + reduction_op_values_found = true; m_values[domain_id] = values; //std::cout<<"**** VALUES **** \n"; - values.status(); - values.summary(); + // values.status(); + // values.summary(); } } - else // this is a spatatial axis + // case where bin axis is one of the spatial axes + else // this is a spatial axis { // this is a coordinate axis so we need the spatial information if(do_once) @@ -793,12 +851,13 @@ struct BindexingFunctor //std::cout<<"*** spatial values "< &bins, const std::string op) global_bins.resize(bins_size); double *global_ptr = global_bins.get_host_ptr(); - if(op == "sum" || op == "pdf" || op == "avg" || + if(op == "sum" || op == "pdf" || op == "avg" || op == "count" op == "std" || op == "var" || op == "rms") { MPI_Allreduce(bins_ptr, global_ptr, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); @@ -845,56 +916,56 @@ void exchange_bins(Array &bins, const std::string op) #endif } -struct CalcResultsFunctor +struct BinningReductionFunctor { - conduit::Node &m_res; - Array &m_bins; - const int m_num_bins; - const std::string m_op; - const double m_empty_val; - int m_op_code; - - CalcResultsFunctor() = delete; - CalcResultsFunctor(conduit::Node &res, - Array &bins, - const int num_bins, - const std::string op, - const double empty_val) + conduit::Node &m_res; + Array &m_bins; + const int m_num_bins; + const std::string m_op; + const double m_empty_val; + // int m_op_code; + + BinningReductionFunctor() = delete; + BinningReductionFunctor(conduit::Node &res, + Array &bins, + const int num_bins, + const std::string op, + const double empty_val) : m_res(res), m_bins(bins), m_num_bins(num_bins), m_op(op), m_empty_val(empty_val) { - m_op_code = -1; - if(m_op == "min") - { - m_op_code = 0; - } - else if(m_op == "max") - { - m_op_code = 1; - } - else if(m_op == "sum") - { - m_op_code = 2; - } - else if(m_op == "pdf") - { - m_op_code = 3; - } - else if(m_op == "avg") - { - m_op_code = 4; - } - else if(m_op == "rms") - { - m_op_code = 5; - } - else if(m_op == "std") - { - m_op_code = 6; - } + // m_op_code = -1; + // if(m_op == "min") + // { + // m_op_code = 0; + // } + // else if(m_op == "max") + // { + // m_op_code = 1; + // } + // else if(m_op == "sum") + // { + // m_op_code = 2; + // } + // else if(m_op == "pdf") + // { + // m_op_code = 3; + // } + // else if(m_op == "avg") + // { + // m_op_code = 4; + // } + // else if(m_op == "rms") + // { + // m_op_code = 5; + // } + // else if(m_op == "std") + // { + // m_op_code = 6; + // } } template @@ -903,7 +974,7 @@ struct CalcResultsFunctor double *bins_ptr = m_bins.get_ptr(Exec::memory_space); const int size = m_num_bins; - int op_code = m_op_code; + // int op_code = m_op_code; const double min_default = std::numeric_limits::max(); const double max_default = std::numeric_limits::lowest(); const double empty_val = m_empty_val; @@ -914,11 +985,11 @@ struct CalcResultsFunctor if(m_op == "pdf") { - // we need the total sum to generate a pdf + // we need the total count to generate a pdf ascent::ReduceSum sum(0.0); ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { - sum += bins_ptr[i * 2]; + sum += bins_ptr[i]; }); pdf_total = sum.get(); } @@ -929,10 +1000,11 @@ struct CalcResultsFunctor array_memset(results, m_empty_val); double *res_ptr = results.get_ptr(Exec::memory_space); - ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) + // break in to per op foralls + + if(m_op == "min") { - double result; - if(op_code == 0) + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // min double val = bins_ptr[i]; @@ -941,8 +1013,11 @@ struct CalcResultsFunctor val = empty_val; } res_ptr[i] = val; - } - if(op_code == 1) + }); + } + else if(m_op == "max") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // max double val = bins_ptr[i]; @@ -951,9 +1026,11 @@ struct CalcResultsFunctor val = empty_val; } res_ptr[i] = val; - } - - if(op_code == 2) + }); + } + else if(m_op == "sum") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // sum double val = bins_ptr[i*2]; @@ -963,27 +1040,14 @@ struct CalcResultsFunctor val = empty_val; } res_ptr[i] = val; - //printf("sum bin %i value %f\n", i, val); - } - if(op_code == 3) - { - // pdf - double val = bins_ptr[i*2 + 1]; - if(val == 0) - { - val = empty_val; - } - else - { - val /= pdf_total; - } - res_ptr[i] = val; - } - - if(op_code == 4) + }); + } + else if(m_op == "avg") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // avg - const double sum = bins_ptr[2 * i]; + const double sum = bins_ptr[2 * i]; const double count = bins_ptr[2 * i + 1]; double val; if(count == 0) @@ -995,9 +1059,11 @@ struct CalcResultsFunctor val = sum / count; } res_ptr[i] = val; - } - - if(op_code == 5) + }); + } + else if(m_op == "rms") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // rms const double sum_x = bins_ptr[2 * i]; @@ -1012,9 +1078,11 @@ struct CalcResultsFunctor val = sqrt(sum_x / n); } res_ptr[i] = val; - } - - if(op_code == 6) + }); + } + else if(m_op == "std") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // std const double sum_x2 = bins_ptr[3 * i]; @@ -1030,9 +1098,143 @@ struct CalcResultsFunctor val = (sum_x2 / n) - pow(sum_x / n, 2); } res_ptr[i] = val; - } + }); + } + else if(m_op == "pdf") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) + { + // pdf + double val = bins_ptr[i]; + if(val == 0) + { + val = empty_val; + } + else + { + val /= pdf_total; + } + res_ptr[i] = val; + }); + } + else if(m_op == "count") + { + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) + { + // count + double val = bins_ptr[i]; + if(val == 0) + { + val = empty_val; + } + res_ptr[i] = val; + }); + } - }); + // ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) + // { + // double result; + // if(op_code == 0) + // { + // // min + // double val = bins_ptr[i]; + // if(val == min_default) + // { + // val = empty_val; + // } + // res_ptr[i] = val; + // } + // if(op_code == 1) + // { + // // max + // double val = bins_ptr[i]; + // if(val == max_default) + // { + // val = empty_val; + // } + // res_ptr[i] = val; + // } + + // if(op_code == 2) + // { + // // sum + // double val = bins_ptr[i*2]; + // double count = bins_ptr[i*2+1]; + // if(count == 0.) + // { + // val = empty_val; + // } + // res_ptr[i] = val; + // //printf("sum bin %i value %f\n", i, val); + // } + // if(op_code == 3) + // { + // // pdf + // double val = bins_ptr[i*2 + 1]; + // if(val == 0) + // { + // val = empty_val; + // } + // else + // { + // val /= pdf_total; + // } + // res_ptr[i] = val; + // } + + // if(op_code == 4) + // { + // // avg + // const double sum = bins_ptr[2 * i]; + // const double count = bins_ptr[2 * i + 1]; + // double val; + // if(count == 0) + // { + // val = empty_val; + // } + // else + // { + // val = sum / count; + // } + // res_ptr[i] = val; + // } + + // if(op_code == 5) + // { + // // rms + // const double sum_x = bins_ptr[2 * i]; + // const double n = bins_ptr[2 * i + 1]; + // double val; + // if(n == 0) + // { + // val = empty_val; + // } + // else + // { + // val = sqrt(sum_x / n); + // } + // res_ptr[i] = val; + // } + + // if(op_code == 6) + // { + // // std + // const double sum_x2 = bins_ptr[3 * i]; + // const double sum_x = bins_ptr[3 * i + 1]; + // const double n = bins_ptr[3 * i + 2]; + // double val; + // if(n == 0) + // { + // val = empty_val; + // } + // else + // { + // val = (sum_x2 / n) - pow(sum_x / n, 2); + // } + // res_ptr[i] = val; + // } + // + // }); // double *host_ptr = results.get_host_ptr(); // for(int i = 0; i < m_num_bins; ++i) // { @@ -1052,7 +1254,7 @@ conduit::Node data_binning(conduit::Node &dataset, const std::string &component, std::map> &bindexes) { - bin_axes.print(); + // bin_axes.print(); // first verify that all variables have matching associations // and are part of the same topology @@ -1087,6 +1289,9 @@ conduit::Node data_binning(conduit::Node &dataset, exec_dispatch_function(bindexer); + // return the bindexes so we can paint later + bindexes = bindexer.m_bindexes; + // we now have the all of the bin setup, all we have to // do now is the reduction int num_bins; @@ -1096,24 +1301,22 @@ conduit::Node data_binning(conduit::Node &dataset, bindexer.m_values, bins, reduction_op); - // return the bindexes so we can paint later - bindexes = bindexer.m_bindexes; exec_dispatch_function(binner); + //std::cout<<"DONE BINinng\n"; // mpi exchange detail::exchange_bins(bins, reduction_op); // use the intermediate results to calc the final bin values - conduit::Node res; - detail::CalcResultsFunctor banana(res, - bins, - num_bins, - reduction_op, - empty_bin_val); + detail::BinningReductionFunctor reducer(res, + bins, + num_bins, + reduction_op, + empty_bin_val); - exec_dispatch_function(banana); + exec_dispatch_function(reducer); res["association"] = assoc_str; //std::cout<<"res "<> bindexes; - // n_binning = data_binning(dataset, - // n_output_axes, - // reduction_var, - // reduction_op, - // empty_bin_val, - // component, - // bindexes); + std::map> bindexes; + n_binning = data_binning(dataset, + n_output_axes, + reduction_var, + reduction_op, + empty_bin_val, + component, + bindexes); } diff --git a/src/tests/ascent/t_ascent_data_binning.cpp b/src/tests/ascent/t_ascent_data_binning.cpp index 98814bf28..959812607 100644 --- a/src/tests/ascent/t_ascent_data_binning.cpp +++ b/src/tests/ascent/t_ascent_data_binning.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include "t_config.hpp" @@ -31,7 +32,6 @@ using namespace ascent; index_t EXAMPLE_MESH_SIDE_DIM = 5; //----------------------------------------------------------------------------- - TEST(ascent_binning, binning_basic_meshes) { // the vtkm runtime is currently our only rendering runtime @@ -51,6 +51,19 @@ TEST(ascent_binning, binning_basic_meshes) conduit::blueprint::mesh::examples::basic("hexs", 3, 3, 3, data); + conduit::relay::io::blueprint::save_mesh(data,"tout_data_binning_basic_3_3_3","hdf5"); + // extents of basic are -10, 10 + // with 3x3x3 nodes, there are 8 elements + // + + // add an extra field + data["fields/ones/association"] = "element"; + data["fields/ones/topology"] = data["topologies"][0].name(); + data["fields/ones/values"].set(DataType::float64(8)); + + float64_array ones_vals = data["fields/ones/values"].value(); + ones_vals.fill(1.0); + // ascent normally adds this but we are doing an end around data["state/cycle"] = 100; data["state/time"] = 1.3; @@ -63,54 +76,217 @@ TEST(ascent_binning, binning_basic_meshes) conduit::Node res; std::string expr; + std::string casebreak = "***************************"; + + // single bin, should be the same as the sum of input field + // -10 -- 10 : = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + expr = "binning('field', 'sum', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"28.0"); + + // single bin, should be the same as the min of input field + // -10 -- 10 : = min (0 1 2 3 4 5 6 7) + expr = "binning('field', 'min', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"0.0"); + + // single bin, should be the same as the min of input field + // -10 -- 10 : = max (0 1 2 3 4 5 6 7) + expr = "binning('field', 'max', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"7.0"); + + // single bin, should be the same as the avg of input field + // -10 -- 10 : = (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7) / 8.0 + expr = "binning('field', 'avg', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"3.5"); + + // single bin, std dev + // sqrt( ( (0 - 3.5)^2 + (1 - 3.5)^2 + (2 - 3.5)^2 + // ( )(3 - 3.5)^2 + (4 - 3.5)^2 + (5 - 3.5)^2 + // ( )(6 - 3.5)^2 + (7 - 3.5)^2 ) / 8.0 ) + expr = "binning('field', 'std', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"5.25"); + + // single bin, rms + // sqrt( ( 0^2 + 1^2 + 2^2 + // ( 3^2 + 4^2 + 5^2 + // ( 6^2 + 7^2 ) / 8.0) + expr = "binning('field', 'rms', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"4.18330013267038"); - expr = "binning('field', 'sum', [axis('x', [0, 2.5, 5, 7.5, 10])])"; + // single bin, pdf should be 1.0 ? + // TODO: count does not need a field!, but then assoc is ambiguous + expr = "binning('field', 'pdf', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), "[0.0, 0.0, 16.0, 0.0]"); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.0"); - expr = "binning('field', 'max', [axis('z', [-5, 0, 5])])"; + // single bin, pdf should be 1.0 ? + // TODO: count does not need a field!, but then assoc is ambiguous + expr = "binning('field', 'count', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), "[3.0, 7.0]"); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"8.0"); + // -10 -- 0 : = 0 + 2 + 4 + 6 + // 0 -- 10 : = 1 + 3 + 5 + 7 + expr = "binning('field', 'sum', [axis('x', [-10, 0, 10])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[12.0, 16.0]"); + std::cout << casebreak << std::endl; + + // ------------- + // clamp = False + expr = "binning('field', 'max', [axis('z', [-4, 0, 4], clamp=True)])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + // default uncovered is 0.0 + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 7.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + // clamp = False + expr = "binning('field', 'max', [axis('z', [-4, 0, 4])])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + // default uncovered is 0.0 + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 0.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + // clamp = False, totally out of range + expr = "binning('field', 'min', [axis('z', [-100, -50, -25], clamp=False)],empty_bin_val=-42)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[-42.0, -42.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- expr = "binning('field', 'max', [axis('z', [-5, 0, 1], clamp=True)])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), "[3.0, 7.0]"); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 7.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + expr = "binning('field', 'max', [axis('z', [-5, 0, 1], clamp=False)])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 0.0]"); + std::cout << casebreak << std::endl; + // ------------- + // ------------- expr = - "binning('field', 'max', [axis('x', num_bins=4), axis('y', num_bins=4)], " + "binning('field', 'max', [axis('x', num_bins=2), axis('y', num_bins=2)], " "empty_bin_val=100)"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), - "[4.0, 100.0, 5.0, 100.0, 100.0, 100.0, 100.0, 100.0, 6.0, 100.0, " - "7.0, 100.0, 100.0, 100.0, 100.0, 100.0]"); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"[4.0, 5.0, 6.0, 7.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- expr = "binning('field', 'sum', [axis('x', num_bins=2), axis('y', num_bins=2), " "axis('z', num_bins=2)])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]"); + std::cout << casebreak << std::endl; + // ------------- - expr = "binning('', 'pdf', [axis('field', num_bins=8)])"; + // ------------- + expr = "binning('ones', 'count', [axis('field', num_bins=8, clamp=True)])"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + expr = "binning('ones', 'pdf', [axis('field', num_bins=8, clamp=True)])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125]"); + std::cout << casebreak << std::endl; + // ------------- - expr = "binning('field', 'pdf', [axis('x', num_bins=2), axis('y', " + // ------------- + expr = "binning('ones', 'pdf', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z', num_bins=2)])"; res = eval.evaluate(expr); - EXPECT_EQ(res["attrs/value/value"].to_json(), - "[0.0, 0.0357142857142857, 0.0714285714285714, 0.107142857142857, " - "0.142857142857143, 0.178571428571429, 0.214285714285714, 0.25]"); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + expr = "binning('ones', 'pdf', [axis('x', num_bins=2), axis('y', " + "num_bins=2), axis('z',[-10, 10, 20], clamp=False)], empty_bin_val=0)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[0.25, 0.25, 0.25, 0.25, 0.0, 0.0, 0.0, 0.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " + "num_bins=2), axis('z',[-10, 10, 20], clamp=False)], empty_bin_val=0)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0]"); + std::cout << casebreak << std::endl; + // ------------- + + + // ------------- + expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " + "num_bins=2), axis('z',[-4, 10, 20], clamp=False)], empty_bin_val=0)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0]"); + std::cout << casebreak << std::endl; + // ------------- + + // ------------- + expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " + "num_bins=2), axis('z',[-25, -15, 20], clamp=False)], empty_bin_val=0)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 2.0]"); + std::cout << casebreak << std::endl; + // ------------- + } TEST(ascent_binning, binning_errors) { - - /// <<<<<<<<<< TODO FIX! - return; - - + // the vtkm runtime is currently our only rendering runtime Node n; ascent::about(n); @@ -463,26 +639,26 @@ TEST(ascent_binning, expr_braid_non_spatial_bins) conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); conduit::Node pipelines; - + // braid is vertex-assoced // radial is element-assoced - + // recenter braid to be element-assoced // so we can same assoc for binning - - + + // pipeline 1 pipelines["pl1/f1/type"] = "recenter"; pipelines["pl1/f1/params/field"] = "braid"; pipelines["pl1/f1/params/association"] = "element"; - + conduit::Node actions; // add the pipeline conduit::Node &add_pipelines= actions.append(); add_pipelines["action"] = "add_pipelines"; add_pipelines["pipelines"] = pipelines; - + Node &add_act = actions.append(); add_act["action"] = "add_queries"; @@ -538,19 +714,19 @@ TEST(ascent_binning, filter_braid_non_spatial_bins) conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); conduit::Node pipelines; - + // braid is vertex-assoced // radial is element-assoced - + // recenter braid to be element-assoced // so we can same assoc for binning - - + + // pipeline 1 pipelines["pl1/f1/type"] = "recenter"; pipelines["pl1/f1/params/field"] = "braid"; pipelines["pl1/f1/params/association"] = "element"; - + // now add binning // pipeline 2 pipelines["pl1/f2/type"] = "binning"; @@ -611,9 +787,9 @@ TEST(ascent_binning, filter_braid_non_spatial_bins) ascent.close(); EXPECT_TRUE(check_test_image(output_file, 0.1)); - + std::string msg = "An example of data binning, non-spatial binning and summing a field."; - + } From 632e12711258832cdbcc12bf5ac8d540a19d7119 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 12 Dec 2023 16:09:05 -0800 Subject: [PATCH 02/12] remove unused code --- .../ascent_blueprint_architect.cpp | 470 ------------------ 1 file changed, 470 deletions(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp index b0269bf6b..a756758ea 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp @@ -1482,476 +1482,6 @@ populate_homes(const conduit::Node &dom, } } -// void -// update_bin(double *bins, -// const int i, -// const double value, -// const std::string &reduction_op) -// { -// if(reduction_op == "min") -// { -// bins[i] = std::min(bins[i], value); -// } -// else if(reduction_op == "max") -// { -// bins[i] = std::max(bins[i], value); -// } -// else if(reduction_op == "avg" || reduction_op == "sum" || -// reduction_op == "pdf") -// { -// bins[2 * i] += value; -// bins[2 * i + 1] += 1; -// } -// else if(reduction_op == "rms") -// { -// bins[2 * i] += value * value; -// bins[2 * i + 1] += 1; -// } -// else if(reduction_op == "var" || reduction_op == "std") -// { -// bins[3 * i] += value * value; -// bins[3 * i + 1] += value; -// bins[3 * i + 2] += 1; -// } -// } -// -// -// void init_bins(double *bins, -// const int size, -// const std::string reduction_op) -// { -// if(reduction_op != "max" && reduction_op != "min") -// { -// // already init to 0, so do nothing -// return; -// } -// -// double init_val; -// if(reduction_op == "max") -// { -// init_val = std::numeric_limits::lowest(); -// } -// else -// { -// init_val = std::numeric_limits::max(); -// } -// -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < size; ++i) -// { -// bins[i] = init_val; -// } -// -// } - - -// -// // NOTE THERE IS A RAJA VERSION IN ascent_data_binning -// // that we want to supercede this one, it needs more work. -// // -// -// conduit::Node -// binning(const conduit::Node &dataset, -// conduit::Node &bin_axes, -// const std::string &reduction_var, -// const std::string &reduction_op, -// const double empty_bin_val, -// const std::string &component) -// { -// // ASCENT_API -// // conduit::Node data_binning(conduit::Node &dataset, -// // conduit::Node &bin_axes, -// // const std::string &reduction_var, -// // const std::string &reduction_op, -// // const double empty_bin_val, -// // const std::string &component, -// // std::map> &bindexes); -// -// std::vector var_names = bin_axes.child_names(); -// if(!reduction_var.empty()) -// { -// var_names.push_back(reduction_var); -// } -// const conduit::Node &topo_and_assoc = -// global_topo_and_assoc(dataset, var_names); -// const std::string topo_name = topo_and_assoc["topo_name"].as_string(); -// const std::string assoc_str = topo_and_assoc["assoc_str"].as_string(); -// -// const conduit::Node &bounds = global_bounds(dataset, topo_name); -// const double *min_coords = bounds["min_coords"].value(); -// const double *max_coords = bounds["max_coords"].value(); -// const std::string axes[3][3] = { -// {"x", "i", "dx"}, {"y", "j", "dy"}, {"z", "k", "dz"}}; -// // populate min_val, max_val, for x,y,z -// for(int axis_num = 0; axis_num < 3; ++axis_num) -// { -// if(bin_axes.has_path(axes[axis_num][0])) -// { -// conduit::Node &axis = bin_axes[axes[axis_num][0]]; -// -// if(axis.has_path("bins")) -// { -// // rectilinear binning was specified -// continue; -// } -// -// if(min_coords[axis_num] == std::numeric_limits::max()) -// { -// ASCENT_ERROR("Could not finds bounds for axis: " -// << axes[axis_num][0] -// << ". It probably doesn't exist in the topology: " -// << topo_name); -// } -// -// if(!axis.has_path("min_val")) -// { -// axis["min_val"] = min_coords[axis_num]; -// } -// -// if(!axis.has_path("max_val")) -// { -// // We add eps because the last bin isn't inclusive -// double min_val = axis["min_val"].to_float64(); -// double length = max_coords[axis_num] - min_val; -// double eps = length * 1e-8; -// axis["max_val"] = max_coords[axis_num] + eps; -// } -// } -// } -// -// int num_axes = bin_axes.number_of_children(); -// -// // create bins -// index_t num_bins = 1; -// for(int axis_index = 0; axis_index < num_axes; ++axis_index) -// { -// conduit::Node &axis = bin_axes.child(axis_index); -// const std::string axis_name = axis.name(); -// -// if(!bin_axes.child(axis_index).has_child("min_val")) -// { -// axis["min_val"] = field_min(dataset, axis_name)["value"].to_float64(); -// } -// if(!axis.has_child("max_val")) -// { -// // TODO: FIXME THE BASELINES REQUIRE +1 here, not good. -// axis["max_val"] = field_max(dataset, axis_name)["value"].to_float64() + 1.0; -// } -// -// if(bin_axes.child(axis_index).has_path("num_bins")) -// { -// // uniform axis -// num_bins *= bin_axes.child(axis_index)["num_bins"].to_index_t(); -// } -// else -// { -// // rectilinear axis -// num_bins *= -// bin_axes.child(axis_index)["bins"].dtype().number_of_elements() - 1; -// } -// } -// // number of variables held per bin (e.g. sum and cnt for average) -// int num_bin_vars = 2; -// if(reduction_op == "var" || reduction_op == "std") -// { -// num_bin_vars = 3; -// } -// else if(reduction_op == "min" || reduction_op == "max") -// { -// num_bin_vars = 1; -// } -// const int bins_size = num_bins * num_bin_vars; -// double *bins = new double[bins_size](); -// init_bins(bins, bins_size, reduction_op); -// -// for(int dom_index = 0; dom_index < dataset.number_of_children(); ++dom_index) -// { -// const conduit::Node &dom = dataset.child(dom_index); -// if(!dom.has_path("topologies/"+topo_name)) -// { -// continue; -// } -// -// conduit::Node n_homes; -// populate_homes(dom, bin_axes, topo_name, assoc_str, n_homes); -// -// if(n_homes.has_path("error")) -// { -// ASCENT_INFO("Binning: not binning domain " -// << dom_index << " because field: '" -// << n_homes["error/field_name"].to_string() -// << "' was not found."); -// continue; -// } -// const int *homes = n_homes.as_int_ptr(); -// const int homes_size = n_homes.dtype().number_of_elements(); -// -// // update bins -// if(reduction_var.empty()) -// { -// //#ifdef ASCENT_OPENMP_ENABLED -// //#pragma omp parallel for -// //#endif -// for(int i = 0; i < homes_size; ++i) -// { -// if(homes[i] != -1) -// { -// update_bin(bins, homes[i], 1, reduction_op); -// } -// } -// } -// else if(dom.has_path("fields/" + reduction_var)) -// { -// const std::string comp_path = component == "" ? "" : "/" + component; -// const std::string values_path -// = "fields/" + reduction_var + "/values" + comp_path; -// -// if(dom[values_path].dtype().is_float32()) -// { -// const conduit::float32_array values = dom[values_path].value(); -// //#ifdef ASCENT_OPENMP_ENABLED -// //#pragma omp parallel for -// //#endif -// for(int i = 0; i < homes_size; ++i) -// { -// if(homes[i] != -1) -// { -// update_bin(bins, homes[i], values[i], reduction_op); -// } -// } -// } -// else -// { -// const conduit::float64_array values = dom[values_path].value(); -// //#ifdef ASCENT_OPENMP_ENABLED -// //#pragma omp parallel for -// //#endif -// for(int i = 0; i < homes_size; ++i) -// { -// if(homes[i] != -1) -// { -// update_bin(bins, homes[i], values[i], reduction_op); -// } -// } -// } -// } -// else if(is_xyz(reduction_var)) -// { -// int coord = reduction_var[0] - 'x'; -// //#ifdef ASCENT_OPENMP_ENABLED -// //#pragma omp parallel for -// //#endif -// for(int i = 0; i < homes_size; ++i) -// { -// conduit::Node n_loc; -// if(assoc_str == "vertex") -// { -// n_loc = vert_location(dom, i, topo_name); -// } -// else if(assoc_str == "element") -// { -// n_loc = element_location(dom, i, topo_name); -// } -// const double *loc = n_loc.value(); -// if(homes[i] != -1) -// { -// update_bin(bins, homes[i], loc[coord], reduction_op); -// } -// } -// } -// else -// { -// ASCENT_INFO("Binning: not binning domain " -// << dom_index << " because field: '" << reduction_var -// << "' was not found."); -// } -// } -// -// #ifdef ASCENT_MPI_ENABLED -// MPI_Comm mpi_comm = MPI_Comm_f2c(flow::Workspace::default_mpi_comm()); -// double *global_bins = new double[bins_size]; -// if(reduction_op == "sum" || reduction_op == "pdf" || reduction_op == "avg" || -// reduction_op == "std" || reduction_op == "var" || reduction_op == "rms") -// { -// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); -// } -// else if(reduction_op == "min") -// { -// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MIN, mpi_comm); -// } -// else if(reduction_op == "max") -// { -// MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MAX, mpi_comm); -// } -// delete[] bins; -// bins = global_bins; -// #endif -// -// -// conduit::Node res; -// res["value"].set(conduit::DataType::c_double(num_bins)); -// double *res_bins = res["value"].value(); -// if(reduction_op == "pdf") -// { -// double total = 0; -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for reduction(+ : total) -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// total += bins[2 * i]; -// } -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// if(bins[2 * i + 1] == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = bins[2 * i] / total; -// } -// } -// } -// else if(reduction_op == "min") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// if(bins[i] == std::numeric_limits::max()) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = bins[i]; -// } -// } -// } -// else if(reduction_op == "max") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// if(bins[i] == std::numeric_limits::lowest()) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = bins[i]; -// } -// } -// -// } -// else if(reduction_op == "sum") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// if(bins[2 * i + 1] == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = bins[2 * i]; -// } -// } -// } -// else if(reduction_op == "avg") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// const double sumX = bins[2 * i]; -// const double n = bins[2 * i + 1]; -// if(n == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = sumX / n; -// } -// } -// } -// else if(reduction_op == "rms") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// const double sumX = bins[2 * i]; -// const double n = bins[2 * i + 1]; -// if(n == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = std::sqrt(sumX / n); -// } -// } -// } -// else if(reduction_op == "var") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// const double sumX2 = bins[3 * i]; -// const double sumX = bins[3 * i + 1]; -// const double n = bins[3 * i + 2]; -// if(n == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = (sumX2 / n) - std::pow(sumX / n, 2); -// } -// } -// } -// else if(reduction_op == "std") -// { -// #ifdef ASCENT_OPENMP_ENABLED -// #pragma omp parallel for -// #endif -// for(int i = 0; i < num_bins; ++i) -// { -// const double sumX2 = bins[3 * i]; -// const double sumX = bins[3 * i + 1]; -// const double n = bins[3 * i + 2]; -// if(n == 0) -// { -// res_bins[i] = empty_bin_val; -// } -// else -// { -// res_bins[i] = std::sqrt((sumX2 / n) - std::pow(sumX / n, 2)); -// } -// } -// } -// res["association"] = assoc_str; -// delete[] bins; -// return res; -// } void paint_binning(const conduit::Node &binning, From 7c44aeda52f42b7637dfa7cf49f6a9033e7a31c2 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 12 Dec 2023 16:13:26 -0800 Subject: [PATCH 03/12] remove unused code --- .../expressions/ascent_data_binning.cpp | 138 +----------------- 1 file changed, 2 insertions(+), 136 deletions(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp index bc483b00f..89b19751b 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp @@ -923,7 +923,6 @@ struct BinningReductionFunctor const int m_num_bins; const std::string m_op; const double m_empty_val; - // int m_op_code; BinningReductionFunctor() = delete; BinningReductionFunctor(conduit::Node &res, @@ -937,35 +936,7 @@ struct BinningReductionFunctor m_op(op), m_empty_val(empty_val) { - // m_op_code = -1; - // if(m_op == "min") - // { - // m_op_code = 0; - // } - // else if(m_op == "max") - // { - // m_op_code = 1; - // } - // else if(m_op == "sum") - // { - // m_op_code = 2; - // } - // else if(m_op == "pdf") - // { - // m_op_code = 3; - // } - // else if(m_op == "avg") - // { - // m_op_code = 4; - // } - // else if(m_op == "rms") - // { - // m_op_code = 5; - // } - // else if(m_op == "std") - // { - // m_op_code = 6; - // } + // empty } template @@ -974,7 +945,6 @@ struct BinningReductionFunctor double *bins_ptr = m_bins.get_ptr(Exec::memory_space); const int size = m_num_bins; - // int op_code = m_op_code; const double min_default = std::numeric_limits::max(); const double max_default = std::numeric_limits::lowest(); const double empty_val = m_empty_val; @@ -1130,111 +1100,7 @@ struct BinningReductionFunctor res_ptr[i] = val; }); } - - // ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) - // { - // double result; - // if(op_code == 0) - // { - // // min - // double val = bins_ptr[i]; - // if(val == min_default) - // { - // val = empty_val; - // } - // res_ptr[i] = val; - // } - // if(op_code == 1) - // { - // // max - // double val = bins_ptr[i]; - // if(val == max_default) - // { - // val = empty_val; - // } - // res_ptr[i] = val; - // } - - // if(op_code == 2) - // { - // // sum - // double val = bins_ptr[i*2]; - // double count = bins_ptr[i*2+1]; - // if(count == 0.) - // { - // val = empty_val; - // } - // res_ptr[i] = val; - // //printf("sum bin %i value %f\n", i, val); - // } - // if(op_code == 3) - // { - // // pdf - // double val = bins_ptr[i*2 + 1]; - // if(val == 0) - // { - // val = empty_val; - // } - // else - // { - // val /= pdf_total; - // } - // res_ptr[i] = val; - // } - - // if(op_code == 4) - // { - // // avg - // const double sum = bins_ptr[2 * i]; - // const double count = bins_ptr[2 * i + 1]; - // double val; - // if(count == 0) - // { - // val = empty_val; - // } - // else - // { - // val = sum / count; - // } - // res_ptr[i] = val; - // } - - // if(op_code == 5) - // { - // // rms - // const double sum_x = bins_ptr[2 * i]; - // const double n = bins_ptr[2 * i + 1]; - // double val; - // if(n == 0) - // { - // val = empty_val; - // } - // else - // { - // val = sqrt(sum_x / n); - // } - // res_ptr[i] = val; - // } - - // if(op_code == 6) - // { - // // std - // const double sum_x2 = bins_ptr[3 * i]; - // const double sum_x = bins_ptr[3 * i + 1]; - // const double n = bins_ptr[3 * i + 2]; - // double val; - // if(n == 0) - // { - // val = empty_val; - // } - // else - // { - // val = (sum_x2 / n) - pow(sum_x / n, 2); - // } - // res_ptr[i] = val; - // } - // - // }); + // // debugging: // double *host_ptr = results.get_host_ptr(); // for(int i = 0; i < m_num_bins; ++i) // { From 3dc640f59c45d9a6ab8ad5c8074b31e14d481344 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Tue, 12 Dec 2023 16:42:01 -0800 Subject: [PATCH 04/12] typo --- src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp index 89b19751b..2310350a2 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp @@ -899,7 +899,7 @@ void exchange_bins(Array &bins, const std::string op) global_bins.resize(bins_size); double *global_ptr = global_bins.get_host_ptr(); - if(op == "sum" || op == "pdf" || op == "avg" || op == "count" + if(op == "sum" || op == "pdf" || op == "avg" || op == "count" || op == "std" || op == "var" || op == "rms") { MPI_Allreduce(bins_ptr, global_ptr, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); From c3161dcd8b54f0c356c285d82848d702a962e57c Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Fri, 15 Dec 2023 16:20:21 -0800 Subject: [PATCH 05/12] big test refactor to cover 2d and 3d across more mesh types --- .../ascent_blueprint_architect.cpp | 6 +- .../ascent_blueprint_device_dispatch.hpp | 32 +- .../ascent_blueprint_device_mesh_objects.hpp | 15 +- .../expressions/ascent_data_binning.cpp | 124 +- src/tests/ascent/t_ascent_data_binning.cpp | 1491 +++++++++++------ 5 files changed, 1081 insertions(+), 587 deletions(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp index a756758ea..ac508ac43 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp @@ -529,7 +529,6 @@ struct VertexFunctor struct CentroidFunctor { Array m_centroids; - int m_dims; template void operator()(MeshType &mesh, const Exec &) @@ -537,6 +536,8 @@ struct CentroidFunctor const int size = mesh.m_num_cells; const int dims = mesh.m_dims; + // std::cout << " centroid mesh dims " << dims << std::endl; + // one component for each dim m_centroids.resize(size * mesh.m_dims); double *centroids_ptr = m_centroids.get_ptr(Exec::memory_space); @@ -1580,6 +1581,9 @@ binning_mesh(const conduit::Node &binning, { int num_axes = binning["attrs/bin_axes/value"].number_of_children(); + + std::cout << "Creating binning mesh from " << binning.to_yaml(); + if(num_axes > 3) { ASCENT_ERROR( diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp index 2c78ae311..bfe452915 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_dispatch.hpp @@ -370,17 +370,39 @@ exec_dispatch_mesh(const conduit::Node &n_coords, // figure out the types of coords if(is_conduit_type(n_coords["values/x"])) { - MCArray coords(n_coords["values"]); + MCArray x_coords(n_coords["values/x"]); + MCArray y_coords(n_coords["values/y"]); + std::string zvalue_path = "values/z"; + + if(!n_coords.has_path("values/z")) + { + zvalue_path = "values/x"; + } + MCArray z_coords(n_coords[zvalue_path]); + RectilinearMesh mesh(mem_space, - coords, + x_coords, + y_coords, + z_coords, dims); func(mesh,exec); } else if(is_conduit_type(n_coords["values/x"])) { - MCArray coords(n_coords["values"]); - RectilinearMesh mesh(mem_space, - coords, + MCArray x_coords(n_coords["values/x"]); + MCArray y_coords(n_coords["values/y"]); + std::string zvalue_path = "values/z"; + + if(!n_coords.has_path("values/z")) + { + zvalue_path = "values/x"; + } + MCArray z_coords(n_coords[zvalue_path]); + + RectilinearMesh mesh(mem_space, + x_coords, + y_coords, + z_coords, dims); func(mesh,exec); } diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_mesh_objects.hpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_mesh_objects.hpp index f6399a0fc..7084b1c54 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_mesh_objects.hpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_device_mesh_objects.hpp @@ -840,13 +840,16 @@ struct RectilinearMesh //==---------------------------------------------------------------------==// RectilinearMesh(const std::string mem_space, - MCArray &coords, + MCArray &x_coords, + MCArray &y_coords, + MCArray &z_coords, const int dims) - : m_coords_x(coords.accessor(mem_space, "x")), - m_coords_y(coords.accessor(mem_space, "y")), - m_coords_z(dims == 3 ? coords.accessor(mem_space, "z") : - // just use a dummy in this case - coords.accessor(mem_space, "x")), + : m_coords_x(x_coords.accessor(mem_space)), + m_coords_y(x_coords.accessor(mem_space)), + m_coords_z(z_coords.accessor(mem_space)), + // m_coords_z(dims == 3 ? z_coords.accessor(mem_space) : + // // just use a dummy in this case + // coords.accessor(mem_space)), m_dims(dims), m_point_dims({{(int)m_coords_x.m_size, (int)m_coords_y.m_size, diff --git a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp index 2310350a2..67a9aef49 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp @@ -441,7 +441,7 @@ void calc_bindex(const Array &values, Exec) { const std::string mem_space = Exec::memory_space; - + axis.print(); // number of values to bin const int size = bindexes.size(); // values we want to bin @@ -456,12 +456,13 @@ void calc_bindex(const Array &values, const double *bins_ptr = bins.get_ptr_const(mem_space); bool clamp = axis["clamp"].to_int32() == 1; - //std::cout<<"**** bindex size "<(0, size, [=] ASCENT_LAMBDA(index_t i) { + // std::cout<<"**** bindex idx "<< i <<"\n"; // calc location of bin result const int v_offset = i * num_components + component_id; const double value = values_ptr[v_offset]; @@ -520,6 +521,7 @@ void calc_bindex(const Array &values, bindex = bindex * bin_stride + prev_bindex; } bindex_ptr[i] = bindex; + // std::cout << "final bindex for " << i << " " << bindex_ptr[i] << std::endl; }); ASCENT_DEVICE_ERROR_CHECK(); } @@ -650,7 +652,9 @@ struct BinningFunctor { ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { + const int bindex = bindex_ptr[i]; + // std::cout << " size "<< size << " i" << i << " bindex" << bindex << std::endl; if(bindex>= 0) { ascent::atomic_add(bins_ptr + bindex, 1.); @@ -698,6 +702,9 @@ struct BinningFunctor } else if(m_op == "var" || m_op == "std") { + // use basic 2-pass, since single pass sum of squares method is not + // numerically stable + // http://www.johndcook.com/blog/2008/09/26/comparing-three-methods-of-computing-standard-deviation/ ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) { const int bindex = bindex_ptr[i]; @@ -705,9 +712,25 @@ struct BinningFunctor { const double value = values_ptr[i]; const int offset = bindex * 3; - ascent::atomic_add(bins_ptr + offset, value * value); - ascent::atomic_add(bins_ptr + offset + 1, value); - ascent::atomic_add(bins_ptr + offset + 2, 1.); + // accum value + ascent::atomic_add(bins_ptr + offset, value); + // count + ascent::atomic_add(bins_ptr + offset + 1, 1.); + } + }); + // NOTE: in second pass we only read [0] and [1], and write [2] + ascent::forall(0, size, [=] ASCENT_LAMBDA (index_t i) + { + const int bindex = bindex_ptr[i]; + if(bindex >= 0) + { + const double value = values_ptr[i]; + const int offset = bindex * 3; + const double val_avg = bins_ptr[offset] / bins_ptr[offset +1]; + // (v - mean) ^ 2 + double val_cal = (value - val_avg); + val_cal = val_cal * val_cal; + ascent::atomic_add(bins_ptr + offset + 2, val_cal); } }); } @@ -757,8 +780,14 @@ struct BindexingFunctor // loop over domains for(int dom_index = 0; dom_index < num_domains; ++dom_index) { - // ensure this domain has the necessary fields + // ensure this domain has the necessary topo and fields conduit::Node &dom = m_dataset.child(dom_index); + + if(!dom["topologies"].has_child(m_topo_name)) + { + continue; + } + for(int axis_index = 0; axis_index < num_axes; ++axis_index) { const conduit::Node &axis = m_axes.child(axis_index); @@ -770,6 +799,11 @@ struct BindexingFunctor continue; } } + // find the coordset name for the topo + std::string coords_name = dom["topologies"][m_topo_name]["coordset"].as_string(); + + // find the mesh dims + int coords_dims = conduit::blueprint::mesh::coordset::dims(dom["coordsets"][coords_name]); // Calculate the size of homes conduit::index_t homes_size = 0; @@ -840,13 +874,32 @@ struct BindexingFunctor do_once = false; if(m_assoc == "vertex") { - //std::cout<<"**** Getting vertices\n"; + std::cout<<"**** Getting vertices\n"; spatial_values = vertices(dom, m_topo_name); } else { - //std::cout<<"**** Getting centroids\n"; + std::cout<<"**** Getting centroids\n"; spatial_values = centroids(dom, m_topo_name); + std::cout << spatial_values.size() << std::endl; + double *sval_ptr = spatial_values.get_host_ptr(); + index_t sidx = 0; + for(index_t e_idx = 0; e_idx < homes_size; e_idx++) + { + std::cout << sval_ptr[sidx] << " " + << sval_ptr[sidx+1] << " "; + + if(coords_dims == 3) + { + std::cout << sval_ptr[sidx+2] << " "; + } + else + { + std::cout << " "; + } + sidx+=coords_dims; + } + std::cout << std::endl; } //std::cout<<"*** spatial values "< sum(0.0); - ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) - { - sum += bins_ptr[i]; - }); - pdf_total = sum.get(); - } - Array results; results.resize(size); //std::cout<<"Num bins "<(0, size, [=] ASCENT_LAMBDA(index_t i) + { + // std = sum( v[i] - avg(vs)^2) / count + const double count = bins_ptr[3 * i + 1]; + const double var = bins_ptr[3 * i + 2]; + double val; + if(count == 0) + { + val = empty_val; + } + else + { + val = var/count; + } + res_ptr[i] = val; + }); + } else if(m_op == "std") { ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { - // std - const double sum_x2 = bins_ptr[3 * i]; - const double sum_x = bins_ptr[3 * i + 1]; - const double n = bins_ptr[3 * i + 2]; + // std = sqrt( sum( v[i] - avg(vs)^2) / count ) + const double count = bins_ptr[3 * i + 1]; + const double var = bins_ptr[3 * i + 2]; + double val; - if(n == 0) + if(count == 0) { val = empty_val; } else { - val = (sum_x2 / n) - pow(sum_x / n, 2); + val = sqrt(var/count); } res_ptr[i] = val; }); } + else if(m_op == "pdf") { + // two pass + double pdf_total = 0.0; + // we need the total count to generate a pdf + ascent::ReduceSum sum(0.0); + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) + { + sum += bins_ptr[i]; + }); + pdf_total = sum.get(); + ascent::forall(0, size, [=] ASCENT_LAMBDA(index_t i) { // pdf diff --git a/src/tests/ascent/t_ascent_data_binning.cpp b/src/tests/ascent/t_ascent_data_binning.cpp index 959812607..0579fa588 100644 --- a/src/tests/ascent/t_ascent_data_binning.cpp +++ b/src/tests/ascent/t_ascent_data_binning.cpp @@ -21,6 +21,7 @@ #include #include +#include #include "t_config.hpp" #include "t_utils.hpp" @@ -31,8 +32,272 @@ using namespace ascent; index_t EXAMPLE_MESH_SIDE_DIM = 5; + +// ---------------------------------------------------------------------------- +// output helper +void print_result(const std::string &tag, + const std::string &expr, + const conduit::Node &res) +{ + const std::string casebreak = "***************************"; + std::cout << casebreak << std::endl + << tag << std::endl + << expr << std::endl + << res.to_yaml() << std::endl + << casebreak << std::endl; +} + +// ---------------------------------------------------------------------------- +// helper to create 2D test meshes +void generate_2d_basic_test_mesh(const std::string &mtype, + int nverts_x, + int nverts_y, + conduit::Node &data) +{ + data.reset(); + Node single_domain, multi_domain; + Node verify_info; + conduit::blueprint::mesh::examples::basic(mtype, nverts_x, nverts_y, 0, single_domain); + + int num_eles = (nverts_x -1) * (nverts_y -1); + + // add an extra field + single_domain["fields/ones/association"] = "element"; + single_domain["fields/ones/topology"] = single_domain["topologies"][0].name(); + single_domain["fields/ones/values"].set(DataType::float64(num_eles)); + + float64_array ones_vals = single_domain["fields/ones/values"].value(); + ones_vals.fill(1.0); + + // ascent normally adds this but we are doing an end around + single_domain["state/cycle"] = 100; + single_domain["state/time"] = 1.3; + single_domain["state/domain_id"] = 0; + blueprint::mesh::to_multi_domain(single_domain, multi_domain); + + data.set(multi_domain); + + std::string ofname = conduit_fmt::format("tout_data_binning_input_mesh_basic_2d_{}_{}_{}.yaml", + mtype, + nverts_x, + nverts_y); + string output_path = prepare_output_dir(); + std::string output_file = conduit::utils::join_file_path(output_path,ofname); + + conduit::relay::io::blueprint::save_mesh(data,output_file,"hdf5"); + +} + +// ----------------------------------------------------------------- +// tests 2d meshes quad mesh cases +void test_binning_basic_mesh_2d_quads(const std::string &tag,Node &data) +{ + std::cout << " --------------------------- " << std::endl + << tag << std::endl + << " --------------------------- " << std::endl; + + conduit::Node res; + std::string expr; + + runtime::expressions::register_builtin(); + runtime::expressions::ExpressionEval eval(&data); + + // single bin, should be the same as the sum of input field + // -10 -- 10 : = 0 + 1 + 2 + 3 + expr = "binning('field', 'sum', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"6.0"); + print_result(tag + "_single_sum",expr,res); + + // single bin, should be the same as the min of input field + // -10 -- 10 : = min (0 1 2 3 ) + expr = "binning('field', 'min', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"0.0"); + print_result(tag + "_single_min",expr,res); + + // single bin, should be the same as the max of input field + // -10 -- 10 : = max (0 1 2 3 ) + expr = "binning('field', 'max', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"3.0"); + print_result(tag + "_single_max",expr,res); + + // single bin, should be the same as the avg of input field + // -10 -- 10 : = (0 + 1 + 2 + 3 ) / 4.0 + expr = "binning('field', 'avg', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.5"); + print_result(tag + "_single_avg",expr,res); + + // single bin, std dev (population variant, normed by N) + // sqrt( ( (0 - 1.5)^2 + (1 - 1.5)^2 + (2 - 1.5)^2 (3 - 1.5)^2 ) / 4.0 ) + expr = "binning('field', 'std', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.11803398874989"); + print_result(tag + "_single_std",expr,res); + + // single bin, var + // ( (0 - 1.5)^2 + (1 - 1.5)^2 + (2 - 1.5)^2 (3 - 1.5)^2 ) / 4.0 + expr = "binning('field', 'var', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.25"); + print_result(tag + "_single_var",expr,res); + + // single bin, rms + // sqrt( ( 0^2 + 1^2 + 2^2 + 3^2 ) / 4.0 ) + expr = "binning('field', 'rms', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.87082869338697"); + print_result(tag + "_single_rms",expr,res); + + // single bin, pdf should be 1.0 ? + // TODO: count does not need a field!, but then assoc is ambiguous + expr = "binning('field', 'pdf', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.0"); + print_result(tag + "_single_pdf",expr,res); + + // single bin, pdf should be 1.0 ? + // TODO: count does not need a field!, but then assoc is ambiguous + expr = "binning('field', 'count', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"4.0"); + print_result(tag + "_single_count",expr,res); + + // -10 -- 0 : = 0 + 2 + // 0 -- 10 : = 1 + 3 + expr = "binning('field', 'sum', [axis('x', [-10, 0, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[2.0, 4.0]"); + print_result(tag + "_two_bins_sum",expr,res); + + // ------------- + // clamp = True + expr = "binning('field', 'max', [axis('x', [-4, 0, 4], clamp=True)])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[2.0, 3.0]"); + print_result(tag + "_two_bins_max_clamp",expr,res); + // ------------- + + // ------------- + // clamp = False + expr = "binning('field', 'max', [axis('x', [-4, 0, 4])])"; + res = eval.evaluate(expr); + // default uncovered is 0.0 + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 0.0]"); + print_result(tag + "_two_bins_max_no_clamp",expr,res); + // ------------- + + // ------------- + // clamp = False, totally out of range + expr = "binning('field', 'min', [axis('x', [-100, -50, -25], clamp=False)],empty_bin_val=-42)"; + res = eval.evaluate(expr); + std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[-42.0, -42.0]"); + print_result(tag + "_two_bins_min_no_clamp_custom_uncovered",expr,res); + // ------------- + + // ------------- + expr = "binning('field', 'max', [axis('x', [-5, 0, 1], clamp=True)])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[2.0, 3.0]"); + print_result(tag + "_two_bins_max_offset_clamp",expr,res); + // ------------- + + // ------------- + expr = "binning('field', 'max', [axis('x', [-5, 0, 1], clamp=False)])"; + res = eval.evaluate(expr); + // default uncovered is 0 + EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[2.0, 0.0]"); + print_result(tag + "_two_bins_max_offset_clamp",expr,res); + // ------------- + + // ------------- + expr = + "binning('field', 'max', [axis('x', num_bins=2), axis('y', num_bins=2)], " + "empty_bin_val=100)"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"[0.0, 1.0, 2.0, 3.0]"); + print_result(tag + "_spatial_axis_max",expr,res); + // ------------- + + // ------------- + expr = "binning('field', 'sum', [axis('field', num_bins=4, clamp=True)])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[0.0, 1.0, 2.0, 3.0]"); + print_result(tag + "_field_axis_sum",expr,res); + // ------------- + + // ------------- + expr = "binning('ones', 'count', [axis('field', num_bins=4, clamp=True)])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[1.0, 1.0, 1.0, 1.0]"); + print_result(tag + "_field_axis_count",expr,res); + // ------------- + + // ------------- + expr = "binning('ones', 'pdf', [axis('field', num_bins=4, clamp=True)])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(), + "[0.25, 0.25, 0.25, 0.25]"); + print_result(tag + "_field_axis_pdf",expr,res); + // ------------- + +} + + +// ----------------------------------------------------------------- +// tests 2d meshes tri mesh cases +void test_binning_basic_mesh_2d_tris(const std::string &tag, + Node &data) +{ + std::cout << " --------------------------- " << std::endl + << tag << std::endl + << " --------------------------- " << std::endl; + + conduit::Node res; + std::string expr; + + runtime::expressions::register_builtin(); + runtime::expressions::ExpressionEval eval(&data); + + // single bin, should be the same as the sum of input field + // -10 -- 10 : = 0 + 1 + 2 + 3 + 4 + 6 + 6 + 7 + expr = "binning('field', 'sum', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"28.0"); + print_result(tag + "_single_sum",expr,res); + + // single bin, should be the same as the min of input field + // -10 -- 10 : = min (0 1 2 3 4 5 6 7) + expr = "binning('field', 'min', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"0.0"); + print_result(tag + "_single_min",expr,res); + + // single bin, should be the same as the max of input field + // -10 -- 10 : = max (0 1 2 3 4 5 6 7) + expr = "binning('field', 'max', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"7.0"); + print_result(tag + "_single_max",expr,res); + + // single bin, should be the same as the avg of input field + // -10 -- 10 : = (0 + 1 + 2 + 3 ) / 4.0 + expr = "binning('field', 'avg', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"3.5"); + print_result(tag + "_single_avg",expr,res); + +} + + + //----------------------------------------------------------------------------- -TEST(ascent_binning, binning_basic_meshes) +TEST(ascent_binning, binning_basic_meshes_2d) { // the vtkm runtime is currently our only rendering runtime Node n; @@ -47,148 +312,211 @@ TEST(ascent_binning, binning_basic_meshes) // // Create an example mesh. // - Node data, verify_info; - conduit::blueprint::mesh::examples::basic("hexs", 3, 3, 3, data); - - conduit::relay::io::blueprint::save_mesh(data,"tout_data_binning_basic_3_3_3","hdf5"); + // for all cases // extents of basic are -10, 10 - // with 3x3x3 nodes, there are 8 elements + // with 3x3 nodes, there are 4 elements // + + // "uniform", "rectilinear", "structured","tris", "quads", "polygons" + Node data; + generate_2d_basic_test_mesh("uniform", 3, 3,data); + test_binning_basic_mesh_2d_quads("2d_uniform_3_3_0",data); + + generate_2d_basic_test_mesh("rectilinear", 3, 3,data); + test_binning_basic_mesh_2d_quads("2d_rectilinear_3_3_0",data); + + // TODO: UNSUPPORTED + // generate_2d_basic_test_mesh("structured", 3, 3, data); + // test_binning_basic_mesh_2d(data,"2d_structured_3_3_0"); + + generate_2d_basic_test_mesh("quads", 3, 3,data); + test_binning_basic_mesh_2d_quads("2d_quads_3_3_0",data); + + // TODO: UNSUPPORTED + // generate_2d_basic_test_mesh("polygons", 3, 3,data); + // test_binning_basic_mesh_2d_quads("2d_polygons_3_3_0",data); + + // triangles produce different counts + generate_2d_basic_test_mesh("tris", 3, 3,data); + test_binning_basic_mesh_2d_tris("2d_tris_3_3_0",data); + + +} + + +// ---------------------------------------------------------------------------- +// helper to create 2D test meshes +void generate_3d_basic_test_mesh(const std::string &mtype, + int nverts_x, + int nverts_y, + int nverts_z, + conduit::Node &data) +{ + data.reset(); + Node single_domain, multi_domain; + Node verify_info; + conduit::blueprint::mesh::examples::basic(mtype, nverts_x, nverts_y, nverts_z, single_domain); + + int num_eles = (nverts_x -1) * (nverts_y -1) * (nverts_y -1); + // add an extra field - data["fields/ones/association"] = "element"; - data["fields/ones/topology"] = data["topologies"][0].name(); - data["fields/ones/values"].set(DataType::float64(8)); + single_domain["fields/ones/association"] = "element"; + single_domain["fields/ones/topology"] = single_domain["topologies"][0].name(); + single_domain["fields/ones/values"].set(DataType::float64(num_eles)); - float64_array ones_vals = data["fields/ones/values"].value(); + float64_array ones_vals = single_domain["fields/ones/values"].value(); ones_vals.fill(1.0); // ascent normally adds this but we are doing an end around - data["state/cycle"] = 100; - data["state/time"] = 1.3; - data["state/domain_id"] = 0; - Node multi_dom; - blueprint::mesh::to_multi_domain(data, multi_dom); + single_domain["state/cycle"] = 100; + single_domain["state/time"] = 1.3; + single_domain["state/domain_id"] = 0; + blueprint::mesh::to_multi_domain(single_domain, multi_domain); + + data.set(multi_domain); - runtime::expressions::register_builtin(); - runtime::expressions::ExpressionEval eval(&multi_dom); + std::string ofname = conduit_fmt::format("tout_data_binning_input_mesh_basic_3d_{}_{}_{}_{}.yaml", + mtype, + nverts_x, + nverts_y, + nverts_z); + + string output_path = prepare_output_dir(); + std::string output_file = conduit::utils::join_file_path(output_path,ofname); + + conduit::relay::io::blueprint::save_mesh(data,output_file,"hdf5"); + +} + +// ----------------------------------------------------------------- +// tests 3d meshes quad mesh cases +void test_binning_basic_mesh_3d_quads(const std::string &tag, + Node &data) +{ + std::cout << " --------------------------- " << std::endl + << tag << std::endl + << " --------------------------- " << std::endl; conduit::Node res; std::string expr; - std::string casebreak = "***************************"; + + runtime::expressions::register_builtin(); + runtime::expressions::ExpressionEval eval(&data); // single bin, should be the same as the sum of input field // -10 -- 10 : = 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 expr = "binning('field', 'sum', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"28.0"); + print_result(tag + "_single_sum",expr,res); // single bin, should be the same as the min of input field // -10 -- 10 : = min (0 1 2 3 4 5 6 7) expr = "binning('field', 'min', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"0.0"); + print_result(tag + "_single_min",expr,res); // single bin, should be the same as the min of input field // -10 -- 10 : = max (0 1 2 3 4 5 6 7) expr = "binning('field', 'max', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"7.0"); + print_result(tag + "_single_max",expr,res); // single bin, should be the same as the avg of input field // -10 -- 10 : = (0 + 1 + 2 + 3 + 4 + 5 + 6 + 7) / 8.0 expr = "binning('field', 'avg', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"3.5"); + print_result(tag + "_single_avg",expr,res); // single bin, std dev // sqrt( ( (0 - 3.5)^2 + (1 - 3.5)^2 + (2 - 3.5)^2 - // ( )(3 - 3.5)^2 + (4 - 3.5)^2 + (5 - 3.5)^2 - // ( )(6 - 3.5)^2 + (7 - 3.5)^2 ) / 8.0 ) + // (3 - 3.5)^2 + (4 - 3.5)^2 + (5 - 3.5)^2 + // (6 - 3.5)^2 + (7 - 3.5)^2 ) ) / 8.0 ) expr = "binning('field', 'std', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"2.29128784747792"); + print_result(tag + "_single_std",expr,res); + + // single bin, var + // ( (0 - 3.5)^2 + (1 - 3.5)^2 + (2 - 3.5)^2 + // (3 - 3.5)^2 + (4 - 3.5)^2 + (5 - 3.5)^2 + // (6 - 3.5)^2 + (7 - 3.5)^2 ) / 8.0 + expr = "binning('field', 'var', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); EXPECT_EQ(res["attrs/value/value"].to_yaml(),"5.25"); - + print_result(tag + "_single_var",expr,res); + // single bin, rms // sqrt( ( 0^2 + 1^2 + 2^2 // ( 3^2 + 4^2 + 5^2 // ( 6^2 + 7^2 ) / 8.0) expr = "binning('field', 'rms', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"4.18330013267038"); + print_result(tag + "_single_std",expr,res); // single bin, pdf should be 1.0 ? // TODO: count does not need a field!, but then assoc is ambiguous expr = "binning('field', 'pdf', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(),"1.0"); + print_result(tag + "_single_pdf",expr,res); // single bin, pdf should be 1.0 ? // TODO: count does not need a field!, but then assoc is ambiguous expr = "binning('field', 'count', [axis('x', [-10, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; - EXPECT_EQ(res["attrs/value/value"].to_yaml(),"8.0"); + print_result(tag + "_single_count",expr,res); // -10 -- 0 : = 0 + 2 + 4 + 6 // 0 -- 10 : = 1 + 3 + 5 + 7 expr = "binning('field', 'sum', [axis('x', [-10, 0, 10])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[12.0, 16.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_two_bin_sum",expr,res); // ------------- // clamp = False expr = "binning('field', 'max', [axis('z', [-4, 0, 4], clamp=True)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; - // default uncovered is 0.0 EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 7.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_max_clamp",expr,res); // ------------- // ------------- // clamp = False expr = "binning('field', 'max', [axis('z', [-4, 0, 4])])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; // default uncovered is 0.0 EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 0.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_max_no_clamp",expr,res); // ------------- // ------------- // clamp = False, totally out of range expr = "binning('field', 'min', [axis('z', [-100, -50, -25], clamp=False)],empty_bin_val=-42)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[-42.0, -42.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_min_no_clamp_out_of_bounds",expr,res); // ------------- // ------------- expr = "binning('field', 'max', [axis('z', [-5, 0, 1], clamp=True)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 7.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_max_clamp",expr,res); // ------------- // ------------- expr = "binning('field', 'max', [axis('z', [-5, 0, 1], clamp=False)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[3.0, 0.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_offset_bin_max_no_clamp",expr,res); // ------------- // ------------- @@ -196,10 +524,8 @@ TEST(ascent_binning, binning_basic_meshes) "binning('field', 'max', [axis('x', num_bins=2), axis('y', num_bins=2)], " "empty_bin_val=100)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; - EXPECT_EQ(res["attrs/value/value"].to_yaml(),"[4.0, 5.0, 6.0, 7.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_offset_bin_max_no_clamp",expr,res); // ------------- // ------------- @@ -207,348 +533,76 @@ TEST(ascent_binning, binning_basic_meshes) "binning('field', 'sum', [axis('x', num_bins=2), axis('y', num_bins=2), " "axis('z', num_bins=2)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_axis_sum",expr,res); // ------------- // ------------- expr = "binning('ones', 'count', [axis('field', num_bins=8, clamp=True)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_field_axis_sum",expr,res); // ------------- // ------------- expr = "binning('ones', 'pdf', [axis('field', num_bins=8, clamp=True)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125]"); - std::cout << casebreak << std::endl; + print_result(tag + "_field_axis_pdf",expr,res); // ------------- // ------------- expr = "binning('ones', 'pdf', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z', num_bins=2)])"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_axis_pdf",expr,res); // ------------- // ------------- expr = "binning('ones', 'pdf', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z',[-10, 10, 20], clamp=False)], empty_bin_val=0)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.25, 0.25, 0.25, 0.25, 0.0, 0.0, 0.0, 0.0]"); - std::cout << casebreak << std::endl; - // ------------- + print_result(tag + "_spatial_axis_offset_pdf",expr,res); + // ------------- // ------------- expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z',[-10, 10, 20], clamp=False)], empty_bin_val=0)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_axis_offset_count",expr,res); // ------------- - // ------------- expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z',[-4, 10, 20], clamp=False)], empty_bin_val=0)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_axis_offset_count",expr,res); // ------------- // ------------- expr = "binning('ones', 'count', [axis('x', num_bins=2), axis('y', " "num_bins=2), axis('z',[-25, -15, 20], clamp=False)], empty_bin_val=0)"; res = eval.evaluate(expr); - std::cout << expr << std::endl << res.to_yaml() << std::endl; EXPECT_EQ(res["attrs/value/value"].to_yaml(), "[0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 2.0]"); - std::cout << casebreak << std::endl; + print_result(tag + "_spatial_axis_offset_count",expr,res); // ------------- - -} - -TEST(ascent_binning, binning_errors) -{ - - // the vtkm runtime is currently our only rendering runtime - Node n; - ascent::about(n); - // only run this test if ascent was built with vtkm support - if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") - { - ASCENT_INFO("Ascent support disabled, skipping test"); - return; - } - - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", - EXAMPLE_MESH_SIDE_DIM, - EXAMPLE_MESH_SIDE_DIM, - EXAMPLE_MESH_SIDE_DIM, - data); - // ascent normally adds this but we are doing an end around - data["state/domain_id"] = 0; - Node multi_dom; - blueprint::mesh::to_multi_domain(data, multi_dom); - - runtime::expressions::register_builtin(); - runtime::expressions::ExpressionEval eval(&multi_dom); - - conduit::Node res; - std::string expr; - - bool threw = false; - try - { - expr = "binning('', 'avg', [axis('x'), axis('y')])"; - res = eval.evaluate(expr); - } - catch(...) - { - threw = true; - } - EXPECT_EQ(threw, true); - - threw = false; - try - { - expr = "binning('braid', 'sum', [axis('x'), axis('vel')])"; - res = eval.evaluate(expr); - } - catch(...) - { - threw = true; - } - EXPECT_EQ(threw, true); - - threw = false; - try - { - expr = "binning('vel', 'sum', [axis('x'), axis('y')])"; - res = eval.evaluate(expr); - } - catch(...) - { - threw = true; - } - EXPECT_EQ(threw, true); - - threw = false; - try - { - expr = "binning('braid', 'sum', [axis('x', bins=[1,2], num_bins=1), " - "axis('y')])"; - res = eval.evaluate(expr); - } - catch(...) - { - threw = true; - } - EXPECT_EQ(threw, true); - - threw = false; - try - { - expr = "binning('braid', 'sum', [axis('x', bins=[1]), axis('y')])"; - res = eval.evaluate(expr); - } - catch(...) - { - threw = true; - } - EXPECT_EQ(threw, true); -} - -//----------------------------------------------------------------------------- -TEST(ascent_binning, filter_braid_binning_mesh) -{ - // the vtkm runtime is currently our only rendering runtime - Node n; - ascent::about(n); - // only run this test if ascent was built with vtkm support - if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") - { - ASCENT_INFO("Ascent support disabled, skipping test"); - return; - } - - string output_path = prepare_output_dir(); - std::string output_file = - conduit::utils::join_file_path(output_path, "tout_binning_filter"); - - remove_test_image(output_file); - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); - - conduit::Node pipelines; - // pipeline 1 - pipelines["pl1/f1/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f1/params"]; - params["reduction_op"] = "sum"; - params["reduction_field"] = "braid"; - params["output_field"] = "binning"; - // paint the field onto the original mesh - params["output_type"] = "mesh"; - - conduit::Node &axis0 = params["axes"].append(); - axis0["field"] = "x"; - axis0["num_bins"] = 10; - axis0["min_val"] = -10.0; - axis0["max_val"] = 10.0; - axis0["clamp"] = 1; - - conduit::Node &axis1 = params["axes"].append(); - axis1["field"] = "y"; - axis1["num_bins"] = 10; - axis1["clamp"] = 0; - - conduit::Node &axis2 = params["axes"].append(); - axis2["field"] = "z"; - axis2["num_bins"] = 10; - axis2["clamp"] = 10; - - conduit::Node scenes; - scenes["s1/plots/p1/type"] = "pseudocolor"; - scenes["s1/plots/p1/field"] = "binning"; - scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - // add the scenes - conduit::Node &add_scenes= actions.append(); - add_scenes["action"] = "add_scenes"; - add_scenes["scenes"] = scenes; - - // - // Run Ascent - // - - Ascent ascent; - ascent.open(); - ascent.publish(data); - ascent.execute(actions); - ascent.close(); - - EXPECT_TRUE(check_test_image(output_file, 0.1)); } -//----------------------------------------------------------------------------- -TEST(ascent_binning, filter_braid_binning_bins) -{ - // the vtkm runtime is currently our only rendering runtime - Node n; - ascent::about(n); - // only run this test if ascent was built with vtkm support - if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") - { - ASCENT_INFO("Ascent support disabled, skipping test"); - return; - } - string output_path = prepare_output_dir(); - std::string output_file = - conduit::utils::join_file_path(output_path, "tout_binning_filter_bins"); - - remove_test_image(output_file); - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); - - conduit::Node pipelines; - // pipeline 1 - pipelines["pl1/f1/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f1/params"]; - params["reduction_op"] = "sum"; - params["reduction_field"] = "braid"; - params["output_field"] = "binning"; - // reduced dataset of only the bins - params["output_type"] = "bins"; - - conduit::Node &axis0 = params["axes"].append(); - axis0["field"] = "x"; - axis0["num_bins"] = 10; - axis0["min_val"] = -10.0; - axis0["max_val"] = 10.0; - axis0["clamp"] = 1; - - conduit::Node &axis1 = params["axes"].append(); - axis1["field"] = "y"; - axis1["num_bins"] = 10; - axis1["clamp"] = 0; - - conduit::Node &axis2 = params["axes"].append(); - axis2["field"] = "z"; - axis2["num_bins"] = 10; - axis2["clamp"] = 10; - - conduit::Node scenes; - scenes["s1/plots/p1/type"] = "pseudocolor"; - scenes["s1/plots/p1/field"] = "binning"; - scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - // add the scenes - conduit::Node &add_scenes= actions.append(); - add_scenes["action"] = "add_scenes"; - add_scenes["scenes"] = scenes; - - // - // Run Ascent - // - - Ascent ascent; - ascent.open(); - ascent.publish(data); - ascent.execute(actions); - ascent.close(); - - EXPECT_TRUE(check_test_image(output_file, 0.1)); - std::string msg = "An example of data binning, binning spatially and summing a field."; - ASCENT_ACTIONS_DUMP(actions,output_file,msg); -} - - -//----------------------------------------------------------------------------- -// this is here b/c there was a bug with using int64 for num_bins -// that caused a conduit access error b/c we expected int32 only //----------------------------------------------------------------------------- -TEST(ascent_binning, filter_braid_binning_bins_int64_params) +TEST(ascent_binning, binning_basic_meshes_3d) { // the vtkm runtime is currently our only rendering runtime Node n; @@ -560,238 +614,577 @@ TEST(ascent_binning, filter_braid_binning_bins_int64_params) return; } - string output_path = prepare_output_dir(); - std::string output_file = - conduit::utils::join_file_path(output_path, "tout_binning_filter_bins_int64"); - - remove_test_image(output_file); - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); - - conduit::Node pipelines; - // pipeline 1 - pipelines["pl1/f1/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f1/params"]; - params["reduction_op"] = "sum"; - params["reduction_field"] = "braid"; - params["output_field"] = "binning"; - // reduced dataset of only the bins - params["output_type"] = "bins"; - - conduit::Node &axis0 = params["axes"].append(); - axis0["field"] = "x"; - axis0["num_bins"] = (int64)10; - axis0["min_val"] = -10.0; - axis0["max_val"] = 10.0; - axis0["clamp"] = (int64)1; - - conduit::Node &axis1 = params["axes"].append(); - axis1["field"] = "y"; - axis1["num_bins"] = (int64)10; - axis1["clamp"] = (int64)0; - - conduit::Node &axis2 = params["axes"].append(); - axis2["field"] = "z"; - axis2["num_bins"] = (int64)10; - axis2["clamp"] = 1; // <--? - - conduit::Node scenes; - scenes["s1/plots/p1/type"] = "pseudocolor"; - scenes["s1/plots/p1/field"] = "binning"; - scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - // add the scenes - conduit::Node &add_scenes= actions.append(); - add_scenes["action"] = "add_scenes"; - add_scenes["scenes"] = scenes; - - // - // Run Ascent - // - - Ascent ascent; - ascent.open(); - ascent.publish(data); - ascent.execute(actions); - ascent.close(); - - EXPECT_TRUE(check_test_image(output_file, 0.1)); -} - - -//----------------------------------------------------------------------------- -TEST(ascent_binning, expr_braid_non_spatial_bins) -{ - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); - - conduit::Node pipelines; - - // braid is vertex-assoced - // radial is element-assoced - - // recenter braid to be element-assoced - // so we can same assoc for binning - - - // pipeline 1 - pipelines["pl1/f1/type"] = "recenter"; - pipelines["pl1/f1/params/field"] = "braid"; - pipelines["pl1/f1/params/association"] = "element"; - - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - - Node &add_act = actions.append(); - add_act["action"] = "add_queries"; - - // declare a queries to ask some questions - Node &queries = add_act["queries"]; - - // Create a 2D binning projected onto the x-y plane - queries["q2/params/expression"] = "binning('radial','max', [axis('radial',num_bins=10), axis( 'braid' ,num_bins=10)])"; - queries["q2/params/name"] = "my_binning"; - queries["q2/pipeline"] = "pl1"; - - // print our full actions tree - std::cout << actions.to_yaml() << std::endl; - - // - // Run Ascent - // - - Ascent ascent; - ascent.open(); - ascent.publish(data); - ascent.execute(actions); - Node ascent_info; - ascent.info(ascent_info); - ascent_info["expressions/my_binning"].print(); - - ascent.close(); + runtime::expressions::register_builtin(); -} + // "uniform", "rectilinear", "structured","tets", "hexs", "polyhedra" + Node data; + generate_3d_basic_test_mesh("uniform", 3, 3, 3,data); + test_binning_basic_mesh_3d_quads("3d_uniform_3_3_3",data); -//----------------------------------------------------------------------------- -TEST(ascent_binning, filter_braid_non_spatial_bins) -{ - // the vtkm runtime is currently our only rendering runtime - Node n; - ascent::about(n); - // only run this test if ascent was built with vtkm support - if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") - { - ASCENT_INFO("Ascent support disabled, skipping test"); - return; - } + generate_3d_basic_test_mesh("rectilinear", 3, 3, 3,data); + test_binning_basic_mesh_3d_quads("3d_rectilinear_3_3_3",data); - string output_path = prepare_output_dir(); - std::string output_file = - conduit::utils::join_file_path(output_path, "tout_binning_braid_non_spatial"); + // // TODO NOT SUPPORTED + // generate_3d_basic_test_mesh("structured", 3, 3, 3,data); + // test_binning_basic_mesh_3d_quads("3d_structured_3_3_3",data); - remove_test_image(output_file); - // - // Create an example mesh. - // - Node data, verify_info; - conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); - - conduit::Node pipelines; - - // braid is vertex-assoced - // radial is element-assoced - - // recenter braid to be element-assoced - // so we can same assoc for binning - - - // pipeline 1 - pipelines["pl1/f1/type"] = "recenter"; - pipelines["pl1/f1/params/field"] = "braid"; - pipelines["pl1/f1/params/association"] = "element"; - - // now add binning - // pipeline 2 - pipelines["pl1/f2/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f2/params"]; - params["reduction_op"] = "sum"; - params["reduction_field"] = "braid"; - params["output_field"] = "binning"; - // reduced dataset of only the bins - params["output_type"] = "bins"; - - conduit::Node &axis0 = params["axes"].append(); - axis0["field"] = "radial"; - axis0["num_bins"] = 10; - axis0["clamp"] = 0; - - conduit::Node &axis1 = params["axes"].append(); - axis1["field"] = "braid"; - axis1["num_bins"] = 10; - axis1["clamp"] = 0; - - conduit::Node scenes; - scenes["s1/plots/p1/type"] = "pseudocolor"; - scenes["s1/plots/p1/field"] = "binning"; - scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; - - conduit::Node extracts; - extracts["e1/type"] = "relay"; - extracts["e1/pipeline"] = "pl1"; - extracts["e1/params/protocol"] = "hdf5"; - extracts["e1/params/path"] = output_file + "_extract"; - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - // add the scenes - conduit::Node &add_scenes= actions.append(); - add_scenes["action"] = "add_scenes"; - add_scenes["scenes"] = scenes; - - conduit::Node &add_extracts= actions.append(); - add_extracts["action"] = "add_extracts"; - add_extracts["extracts"] = extracts; - - std::cout << actions.to_yaml() << std::endl; + generate_3d_basic_test_mesh("hexs", 3, 3, 3,data); + test_binning_basic_mesh_3d_quads("3d_hexs_3_3_3",data); - // - // Run Ascent - // + // // TODO NOT SUPPORTED + // generate_3d_basic_test_mesh("tets", 3, 3, 3,data); + // test_binning_basic_mesh_3d_quads("3d_tets_3_3_3",data); - Ascent ascent; - ascent.open(); - ascent.publish(data); - ascent.execute(actions); - ascent.close(); + // // TODO NOT SUPPORTED + // generate_3d_basic_test_mesh("polyhedra", 3, 3, 3,data); + // test_binning_basic_mesh_3d_quads("3d_poly_3_3_3",data); - EXPECT_TRUE(check_test_image(output_file, 0.1)); - std::string msg = "An example of data binning, non-spatial binning and summing a field."; } +// +// TEST(ascent_binning, binning_errors) +// { +// return; +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent support disabled, skipping test"); +// return; +// } +// +// // +// // Create an example mesh. +// // +// Node data, verify_info; +// conduit::blueprint::mesh::examples::braid("hexs", +// EXAMPLE_MESH_SIDE_DIM, +// EXAMPLE_MESH_SIDE_DIM, +// EXAMPLE_MESH_SIDE_DIM, +// data); +// // ascent normally adds this but we are doing an end around +// data["state/domain_id"] = 0; +// Node multi_dom; +// blueprint::mesh::to_multi_domain(data, multi_dom); +// +// runtime::expressions::register_builtin(); +// runtime::expressions::ExpressionEval eval(&multi_dom); +// +// conduit::Node res; +// std::string expr; +// +// bool threw = false; +// try +// { +// expr = "binning('', 'avg', [axis('x'), axis('y')])"; +// res = eval.evaluate(expr); +// } +// catch(...) +// { +// threw = true; +// } +// EXPECT_EQ(threw, true); +// +// threw = false; +// try +// { +// expr = "binning('braid', 'sum', [axis('x'), axis('vel')])"; +// res = eval.evaluate(expr); +// } +// catch(...) +// { +// threw = true; +// } +// EXPECT_EQ(threw, true); +// +// threw = false; +// try +// { +// expr = "binning('vel', 'sum', [axis('x'), axis('y')])"; +// res = eval.evaluate(expr); +// } +// catch(...) +// { +// threw = true; +// } +// EXPECT_EQ(threw, true); +// +// threw = false; +// try +// { +// expr = "binning('braid', 'sum', [axis('x', bins=[1,2], num_bins=1), " +// "axis('y')])"; +// res = eval.evaluate(expr); +// } +// catch(...) +// { +// threw = true; +// } +// EXPECT_EQ(threw, true); +// +// threw = false; +// try +// { +// expr = "binning('braid', 'sum', [axis('x', bins=[1]), axis('y')])"; +// res = eval.evaluate(expr); +// } +// catch(...) +// { +// threw = true; +// } +// EXPECT_EQ(threw, true); +// } +// +// //----------------------------------------------------------------------------- +// TEST(ascent_binning, filter_braid_binning_mesh) +// { +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent support disabled, skipping test"); +// return; +// } +// +// string output_path = prepare_output_dir(); +// std::string output_file = +// conduit::utils::join_file_path(output_path, "tout_binning_filter"); +// +// remove_test_image(output_file); +// // +// // Create an example mesh. +// // +// Node data, verify_info; +// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); +// +// conduit::Node pipelines; +// // pipeline 1 +// pipelines["pl1/f1/type"] = "binning"; +// // filter knobs +// conduit::Node ¶ms = pipelines["pl1/f1/params"]; +// params["reduction_op"] = "sum"; +// params["reduction_field"] = "braid"; +// params["output_field"] = "binning"; +// // paint the field onto the original mesh +// params["output_type"] = "mesh"; +// +// conduit::Node &axis0 = params["axes"].append(); +// axis0["field"] = "x"; +// axis0["num_bins"] = 10; +// axis0["min_val"] = -10.0; +// axis0["max_val"] = 10.0; +// axis0["clamp"] = 1; +// +// conduit::Node &axis1 = params["axes"].append(); +// axis1["field"] = "y"; +// axis1["num_bins"] = 10; +// axis1["clamp"] = 0; +// +// conduit::Node &axis2 = params["axes"].append(); +// axis2["field"] = "z"; +// axis2["num_bins"] = 10; +// axis2["clamp"] = 10; +// +// conduit::Node scenes; +// scenes["s1/plots/p1/type"] = "pseudocolor"; +// scenes["s1/plots/p1/field"] = "binning"; +// scenes["s1/plots/p1/pipeline"] = "pl1"; +// scenes["s1/image_prefix"] = output_file; +// +// conduit::Node actions; +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// add_pipelines["pipelines"] = pipelines; +// // add the scenes +// conduit::Node &add_scenes= actions.append(); +// add_scenes["action"] = "add_scenes"; +// add_scenes["scenes"] = scenes; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// ascent.open(); +// ascent.publish(data); +// ascent.execute(actions); +// ascent.close(); +// +// EXPECT_TRUE(check_test_image(output_file, 0.1)); +// } +// +// //----------------------------------------------------------------------------- +// TEST(ascent_binning, filter_braid_binning_bins) +// { +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent support disabled, skipping test"); +// return; +// } +// +// string output_path = prepare_output_dir(); +// std::string output_file = +// conduit::utils::join_file_path(output_path, "tout_binning_filter_bins"); +// +// remove_test_image(output_file); +// // +// // Create an example mesh. +// // +// Node data, verify_info; +// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); +// +// conduit::Node pipelines; +// // pipeline 1 +// pipelines["pl1/f1/type"] = "binning"; +// // filter knobs +// conduit::Node ¶ms = pipelines["pl1/f1/params"]; +// params["reduction_op"] = "sum"; +// params["reduction_field"] = "braid"; +// params["output_field"] = "binning"; +// // reduced dataset of only the bins +// params["output_type"] = "bins"; +// +// conduit::Node &axis0 = params["axes"].append(); +// axis0["field"] = "x"; +// axis0["num_bins"] = 10; +// axis0["min_val"] = -10.0; +// axis0["max_val"] = 10.0; +// axis0["clamp"] = 1; +// +// conduit::Node &axis1 = params["axes"].append(); +// axis1["field"] = "y"; +// axis1["num_bins"] = 10; +// axis1["clamp"] = 0; +// +// conduit::Node &axis2 = params["axes"].append(); +// axis2["field"] = "z"; +// axis2["num_bins"] = 10; +// axis2["clamp"] = 10; +// +// conduit::Node scenes; +// scenes["s1/plots/p1/type"] = "pseudocolor"; +// scenes["s1/plots/p1/field"] = "binning"; +// scenes["s1/plots/p1/pipeline"] = "pl1"; +// scenes["s1/image_prefix"] = output_file; +// +// conduit::Node actions; +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// add_pipelines["pipelines"] = pipelines; +// // add the scenes +// conduit::Node &add_scenes= actions.append(); +// add_scenes["action"] = "add_scenes"; +// add_scenes["scenes"] = scenes; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// ascent.open(); +// ascent.publish(data); +// ascent.execute(actions); +// ascent.close(); +// +// EXPECT_TRUE(check_test_image(output_file, 0.1)); +// std::string msg = "An example of data binning, binning spatially and summing a field."; +// ASCENT_ACTIONS_DUMP(actions,output_file,msg); +// } +// +// +// //----------------------------------------------------------------------------- +// // this is here b/c there was a bug with using int64 for num_bins +// // that caused a conduit access error b/c we expected int32 only +// //----------------------------------------------------------------------------- +// TEST(ascent_binning, filter_braid_binning_bins_int64_params) +// { +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent support disabled, skipping test"); +// return; +// } +// +// string output_path = prepare_output_dir(); +// std::string output_file = +// conduit::utils::join_file_path(output_path, "tout_binning_filter_bins_int64"); +// +// remove_test_image(output_file); +// // +// // Create an example mesh. +// // +// Node data, verify_info; +// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); +// +// conduit::Node pipelines; +// // pipeline 1 +// pipelines["pl1/f1/type"] = "binning"; +// // filter knobs +// conduit::Node ¶ms = pipelines["pl1/f1/params"]; +// params["reduction_op"] = "sum"; +// params["reduction_field"] = "braid"; +// params["output_field"] = "binning"; +// // reduced dataset of only the bins +// params["output_type"] = "bins"; +// +// conduit::Node &axis0 = params["axes"].append(); +// axis0["field"] = "x"; +// axis0["num_bins"] = (int64)10; +// axis0["min_val"] = -10.0; +// axis0["max_val"] = 10.0; +// axis0["clamp"] = (int64)1; +// +// conduit::Node &axis1 = params["axes"].append(); +// axis1["field"] = "y"; +// axis1["num_bins"] = (int64)10; +// axis1["clamp"] = (int64)0; +// +// conduit::Node &axis2 = params["axes"].append(); +// axis2["field"] = "z"; +// axis2["num_bins"] = (int64)10; +// axis2["clamp"] = 1; // <--? +// +// conduit::Node scenes; +// scenes["s1/plots/p1/type"] = "pseudocolor"; +// scenes["s1/plots/p1/field"] = "binning"; +// scenes["s1/plots/p1/pipeline"] = "pl1"; +// scenes["s1/image_prefix"] = output_file; +// +// conduit::Node actions; +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// add_pipelines["pipelines"] = pipelines; +// // add the scenes +// conduit::Node &add_scenes= actions.append(); +// add_scenes["action"] = "add_scenes"; +// add_scenes["scenes"] = scenes; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// ascent.open(); +// ascent.publish(data); +// ascent.execute(actions); +// ascent.close(); +// +// EXPECT_TRUE(check_test_image(output_file, 0.1)); +// } +// +// +// //----------------------------------------------------------------------------- +// TEST(ascent_binning, expr_braid_non_spatial_bins) +// { +// // +// // Create an example mesh. +// // +// Node data, verify_info; +// conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); +// +// conduit::Node pipelines; +// +// // braid is vertex-assoced +// // radial is element-assoced +// +// // recenter braid to be element-assoced +// // so we can same assoc for binning +// +// +// // pipeline 1 +// pipelines["pl1/f1/type"] = "recenter"; +// pipelines["pl1/f1/params/field"] = "braid"; +// pipelines["pl1/f1/params/association"] = "element"; +// +// +// conduit::Node actions; +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// add_pipelines["pipelines"] = pipelines; +// +// Node &add_act = actions.append(); +// add_act["action"] = "add_queries"; +// +// // declare a queries to ask some questions +// Node &queries = add_act["queries"]; +// +// // Create a 2D binning projected onto the x-y plane +// queries["q2/params/expression"] = "binning('radial','max', [axis('radial',num_bins=10), axis( 'braid' ,num_bins=10)])"; +// queries["q2/params/name"] = "my_binning"; +// queries["q2/pipeline"] = "pl1"; +// +// // print our full actions tree +// std::cout << actions.to_yaml() << std::endl; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// ascent.open(); +// ascent.publish(data); +// ascent.execute(actions); +// Node ascent_info; +// ascent.info(ascent_info); +// ascent_info["expressions/my_binning"].print(); +// +// ascent.close(); +// +// } +// +// //----------------------------------------------------------------------------- +// TEST(ascent_binning, binning_recti_mesh) +// { +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent vtkm support disabled, skipping test"); +// return; +// } +// +// int par_rank = 0; +// int par_size = 1; +// +// // Create the data. +// // +// Node data, verify_info; +// int dims = 3; +// // create_3d_example_dataset(data,dims,par_rank,par_size); +// +// // int nx = size / par_size; +// // int ny = size; +// // int nz = size; +// // +// // float64 dx = 1; +// // float64 dy = 1; +// // float64 dz = 1; +// // +// // index_t npts = (nx+1)*(ny+1)*(nz+1); +// // index_t nele = nx*ny*nz; +// +// +// data["state/time"] = (float64)3.1415; +// data["state/domain_id"] = (uint64) par_rank; +// data["state/cycle"] = (uint64) 100; +// data["coordsets/coords/type"] = "rectilinear"; +// +// data["coordsets/coords/values/x"].set({0.0,1.0,2.0,3.0}); +// data["coordsets/coords/values/y"].set({0.0,1.0,2.0,3.0}); +// // data["coordsets/coords/values/z"].set({0.0,1.0,2.0,3.0}); +// +// data["topologies/mesh/type"] = "rectilinear"; +// data["topologies/mesh/coordset"] = "coords"; +// +// data["fields/ones/association"] = "element"; +// data["fields/ones/topology"] = "mesh"; +// data["fields/ones/values"].set(DataType::float64(9)); +// // data["fields/ones/values"].set(DataType::float64(3*3*3)); +// +// float64_array vals = data["fields/ones/values"].value(); +// vals.fill(1.0); +// +// Node multi_dom; +// blueprint::mesh::to_multi_domain(data, multi_dom); +// +// // TODO: OUTPUT DIR CYRUS ... +// conduit::relay::io::blueprint::save_mesh(data,"tout_data_binning_3d_recti_example","hdf5"); +// +// conduit::blueprint::mesh::verify(data,verify_info); +// +// string output_path = prepare_output_dir(); +// string output_file = conduit::utils::join_file_path(output_path,"tout_binning_recti_mesh"); +// +// // remove old images before rendering +// remove_test_image(output_file); +// +// conduit::Node actions; +// +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// conduit::Node &pipelines = add_pipelines["pipelines"]; +// +// // pipeline 1 +// pipelines["pl1/f1/type"] = "binning"; +// // filter knobs +// conduit::Node ¶ms = pipelines["pl1/f1/params"]; +// params["reduction_op"] = "sum"; +// params["var"] = "ones"; +// params["output_field"] = "binning"; +// // reduced dataset of only the bins +// params["output_type"] = "bins"; +// +// conduit::Node &axis0 = params["axes"].append(); +// axis0["var"] = "x"; +// axis0["num_bins"] = 3; +// // axis0["min_val"] = 1.0; +// // axis0["max_val"] = 3.0; +// // axis0["clamp"] = 1; +// +// conduit::Node &axis1 = params["axes"].append(); +// axis1["var"] = "y"; +// axis1["num_bins"] = 3; +// // axis1["clamp"] = 0; +// +// // conduit::Node &axis2 = params["axes"].append(); +// // axis2["var"] = "z"; +// // axis2["num_bins"] = 3; +// // axis2["min_val"] = 1.0; +// // axis2["max_val"] = 3.0; +// // axis2["clamp"] = 0; +// +// // add the scenes +// conduit::Node &add_scenes= actions.append(); +// add_scenes["action"] = "add_scenes"; +// conduit::Node &scenes = add_scenes["scenes"]; +// +// scenes["s1/plots/p1/type"] = "pseudocolor"; +// scenes["s1/plots/p1/field"] = "binning"; +// scenes["s1/plots/p1/pipeline"] = "pl1"; +// scenes["s1/image_prefix"] = output_file; +// +// // add extract +// conduit::Node &add_extracts= actions.append(); +// add_extracts["action"] = "add_extracts"; +// conduit::Node &extracts = add_extracts["extracts"]; +// +// extracts["e1/type"] = "relay"; +// extracts["e1/pipeline"] = "pl1"; +// extracts["e1/params/path"] = conduit::utils::join_file_path(output_path,"tout_recti_bin_result"); +// extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// ascent.open(); +// ascent.publish(data); +// ascent.execute(actions); +// ascent.close(); +// +// check_test_image(output_file, 0.1); +// } //----------------------------------------------------------------------------- int From 7470908c8d040b163716608e9d6383fac2fbe946 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Mon, 18 Dec 2023 16:47:05 -0800 Subject: [PATCH 06/12] enhance html diff report --- src/tests/CMakeLists.txt | 2 +- .../_test_resources/bootstrap.bundle.min.js | 7 + src/tests/_test_resources/bootstrap.min.css | 6 + src/tests/_test_resources/sortable.js | 495 ++++++++++++++++++ src/tests/gen_img_compare_html_report.py | 45 +- 5 files changed, 552 insertions(+), 3 deletions(-) create mode 100644 src/tests/_test_resources/bootstrap.bundle.min.js create mode 100644 src/tests/_test_resources/bootstrap.min.css create mode 100644 src/tests/_test_resources/sortable.js diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 61afb9bfd..ed1b76dfd 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -71,5 +71,5 @@ if(PYTHON_FOUND) add_custom_target(gen_report ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/gen_img_compare_html_report.py WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - COMMENT "Generating html summary of image compare tests (tests/_output/tout_img_report.html)") + COMMENT "Generating html summary of image compare tests (tests/_output/index.html)") endif() diff --git a/src/tests/_test_resources/bootstrap.bundle.min.js b/src/tests/_test_resources/bootstrap.bundle.min.js new file mode 100644 index 000000000..b1999d9a9 --- /dev/null +++ b/src/tests/_test_resources/bootstrap.bundle.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t=new Map,e={set(e,i,n){t.has(e)||t.set(e,new Map);const s=t.get(e);s.has(i)||0===s.size?s.set(i,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(s.keys())[0]}.`)},get:(e,i)=>t.has(e)&&t.get(e).get(i)||null,remove(e,i){if(!t.has(e))return;const n=t.get(e);n.delete(i),0===n.size&&t.delete(e)}},i="transitionend",n=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),s=t=>{t.dispatchEvent(new Event(i))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(n(t)):null,a=t=>{if(!o(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},l=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),c=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?c(t.parentNode):null},h=()=>{},d=t=>{t.offsetHeight},u=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,f=[],p=()=>"rtl"===document.documentElement.dir,m=t=>{var e;e=()=>{const e=u();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(f.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of f)t()})),f.push(e)):e()},g=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,_=(t,e,n=!0)=>{if(!n)return void g(t);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let r=!1;const a=({target:n})=>{n===e&&(r=!0,e.removeEventListener(i,a),g(t))};e.addEventListener(i,a),setTimeout((()=>{r||s(e)}),o)},b=(t,e,i,n)=>{const s=t.length;let o=t.indexOf(e);return-1===o?!i&&n?t[s-1]:t[0]:(o+=i?1:-1,n&&(o=(o+s)%s),t[Math.max(0,Math.min(o,s-1))])},v=/[^.]*(?=\..*)\.|.*/,y=/\..*/,w=/::\d+$/,A={};let E=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},C=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function O(t,e){return e&&`${e}::${E++}`||t.uidEvent||E++}function x(t){const e=O(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function L(t,e,i){const n="string"==typeof e,s=n?i:e||i;let o=I(t);return C.has(o)||(o=t),[n,s,o]}function S(t,e,i,n,s){if("string"!=typeof e||!t)return;let[o,r,a]=L(e,i,n);if(e in T){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=x(t),c=l[a]||(l[a]={}),h=k(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=O(r,e.replace(v,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return P(s,{delegateTarget:r}),n.oneOff&&N.off(t,s.type,e,i),i.apply(r,[s])}}(t,i,r):function(t,e){return function i(n){return P(n,{delegateTarget:t}),i.oneOff&&N.off(t,n.type,e),e.apply(t,[n])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function D(t,e,i,n,s){const o=k(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function $(t,e,i,n){const s=e[i]||{};for(const[o,r]of Object.entries(s))o.includes(n)&&D(t,e,i,r.callable,r.delegationSelector)}function I(t){return t=t.replace(y,""),T[t]||t}const N={on(t,e,i,n){S(t,e,i,n,!1)},one(t,e,i,n){S(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=L(e,i,n),a=r!==e,l=x(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))$(t,l,i,e.slice(1));for(const[i,n]of Object.entries(c)){const s=i.replace(w,"");a&&!e.includes(s)||D(t,l,r,n.callable,n.delegationSelector)}}else{if(!Object.keys(c).length)return;D(t,l,r,o,s?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=u();let s=null,o=!0,r=!0,a=!1;e!==I(e)&&n&&(s=n.Event(e,i),n(t).trigger(s),o=!s.isPropagationStopped(),r=!s.isImmediatePropagationStopped(),a=s.isDefaultPrevented());const l=P(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&s&&s.preventDefault(),l}};function P(t,e={}){for(const[i,n]of Object.entries(e))try{t[i]=n}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>n})}return t}function M(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function j(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const F={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${j(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${j(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const n of i){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=M(t.dataset[n])}return e},getDataAttribute:(t,e)=>M(t.getAttribute(`data-bs-${j(e)}`))};class H{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=o(e)?F.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...o(e)?F.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[n,s]of Object.entries(e)){const e=t[n],r=o(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${s}".`)}var i}}class W extends H{constructor(t,i){super(),(t=r(t))&&(this._element=t,this._config=this._getConfig(i),e.set(this._element,this.constructor.DATA_KEY,this))}dispose(){e.remove(this._element,this.constructor.DATA_KEY),N.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){_(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return e.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const B=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?n(i.trim()):null}return e},z={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode.closest(e);for(;n;)i.push(n),n=n.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!l(t)&&a(t)))},getSelectorFromElement(t){const e=B(t);return e&&z.findOne(e)?e:null},getElementFromSelector(t){const e=B(t);return e?z.findOne(e):null},getMultipleElementsFromSelector(t){const e=B(t);return e?z.find(e):[]}},R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,n=t.NAME;N.on(document,i,`[data-bs-dismiss="${n}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),l(this))return;const s=z.getElementFromSelector(this)||this.closest(`.${n}`);t.getOrCreateInstance(s)[e]()}))},q=".bs.alert",V=`close${q}`,K=`closed${q}`;class Q extends W{static get NAME(){return"alert"}close(){if(N.trigger(this._element,V).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),N.trigger(this._element,K),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=Q.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(Q,"close"),m(Q);const X='[data-bs-toggle="button"]';class Y extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=Y.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}N.on(document,"click.bs.button.data-api",X,(t=>{t.preventDefault();const e=t.target.closest(X);Y.getOrCreateInstance(e).toggle()})),m(Y);const U=".bs.swipe",G=`touchstart${U}`,J=`touchmove${U}`,Z=`touchend${U}`,tt=`pointerdown${U}`,et=`pointerup${U}`,it={endCallback:null,leftCallback:null,rightCallback:null},nt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class st extends H{constructor(t,e){super(),this._element=t,t&&st.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return it}static get DefaultType(){return nt}static get NAME(){return"swipe"}dispose(){N.off(this._element,U)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),g(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&g(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(N.on(this._element,tt,(t=>this._start(t))),N.on(this._element,et,(t=>this._end(t))),this._element.classList.add("pointer-event")):(N.on(this._element,G,(t=>this._start(t))),N.on(this._element,J,(t=>this._move(t))),N.on(this._element,Z,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const ot=".bs.carousel",rt=".data-api",at="next",lt="prev",ct="left",ht="right",dt=`slide${ot}`,ut=`slid${ot}`,ft=`keydown${ot}`,pt=`mouseenter${ot}`,mt=`mouseleave${ot}`,gt=`dragstart${ot}`,_t=`load${ot}${rt}`,bt=`click${ot}${rt}`,vt="carousel",yt="active",wt=".active",At=".carousel-item",Et=wt+At,Tt={ArrowLeft:ht,ArrowRight:ct},Ct={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Ot={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class xt extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=z.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===vt&&this.cycle()}static get Default(){return Ct}static get DefaultType(){return Ot}static get NAME(){return"carousel"}next(){this._slide(at)}nextWhenVisible(){!document.hidden&&a(this._element)&&this.next()}prev(){this._slide(lt)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?N.one(this._element,ut,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void N.one(this._element,ut,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const n=t>i?at:lt;this._slide(n,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&N.on(this._element,ft,(t=>this._keydown(t))),"hover"===this._config.pause&&(N.on(this._element,pt,(()=>this.pause())),N.on(this._element,mt,(()=>this._maybeEnableCycle()))),this._config.touch&&st.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of z.find(".carousel-item img",this._element))N.on(t,gt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ct)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new st(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Tt[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=z.findOne(wt,this._indicatorsElement);e.classList.remove(yt),e.removeAttribute("aria-current");const i=z.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(yt),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),n=t===at,s=e||b(this._getItems(),i,n,this._config.wrap);if(s===i)return;const o=this._getItemIndex(s),r=e=>N.trigger(this._element,e,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(dt).defaultPrevented)return;if(!i||!s)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const l=n?"carousel-item-start":"carousel-item-end",c=n?"carousel-item-next":"carousel-item-prev";s.classList.add(c),d(s),i.classList.add(l),s.classList.add(l),this._queueCallback((()=>{s.classList.remove(l,c),s.classList.add(yt),i.classList.remove(yt,c,l),this._isSliding=!1,r(ut)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return z.findOne(Et,this._element)}_getItems(){return z.find(At,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ct?lt:at:t===ct?at:lt}_orderToDirection(t){return p()?t===lt?ct:ht:t===lt?ht:ct}static jQueryInterface(t){return this.each((function(){const e=xt.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}N.on(document,bt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=z.getElementFromSelector(this);if(!e||!e.classList.contains(vt))return;t.preventDefault();const i=xt.getOrCreateInstance(e),n=this.getAttribute("data-bs-slide-to");return n?(i.to(n),void i._maybeEnableCycle()):"next"===F.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),N.on(window,_t,(()=>{const t=z.find('[data-bs-ride="carousel"]');for(const e of t)xt.getOrCreateInstance(e)})),m(xt);const kt=".bs.collapse",Lt=`show${kt}`,St=`shown${kt}`,Dt=`hide${kt}`,$t=`hidden${kt}`,It=`click${kt}.data-api`,Nt="show",Pt="collapse",Mt="collapsing",jt=`:scope .${Pt} .${Pt}`,Ft='[data-bs-toggle="collapse"]',Ht={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Bt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=z.find(Ft);for(const t of i){const e=z.getSelectorFromElement(t),i=z.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return Ht}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Bt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(N.trigger(this._element,Lt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Pt),this._element.classList.add(Mt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt,Nt),this._element.style[e]="",N.trigger(this._element,St)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(N.trigger(this._element,Dt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,d(this._element),this._element.classList.add(Mt),this._element.classList.remove(Pt,Nt);for(const t of this._triggerArray){const e=z.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(Mt),this._element.classList.add(Pt),N.trigger(this._element,$t)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(Nt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=r(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Ft);for(const e of t){const t=z.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=z.find(jt,this._config.parent);return z.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Bt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}N.on(document,It,Ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of z.getMultipleElementsFromSelector(this))Bt.getOrCreateInstance(t,{toggle:!1}).toggle()})),m(Bt);var zt="top",Rt="bottom",qt="right",Vt="left",Kt="auto",Qt=[zt,Rt,qt,Vt],Xt="start",Yt="end",Ut="clippingParents",Gt="viewport",Jt="popper",Zt="reference",te=Qt.reduce((function(t,e){return t.concat([e+"-"+Xt,e+"-"+Yt])}),[]),ee=[].concat(Qt,[Kt]).reduce((function(t,e){return t.concat([e,e+"-"+Xt,e+"-"+Yt])}),[]),ie="beforeRead",ne="read",se="afterRead",oe="beforeMain",re="main",ae="afterMain",le="beforeWrite",ce="write",he="afterWrite",de=[ie,ne,se,oe,re,ae,le,ce,he];function ue(t){return t?(t.nodeName||"").toLowerCase():null}function fe(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function pe(t){return t instanceof fe(t).Element||t instanceof Element}function me(t){return t instanceof fe(t).HTMLElement||t instanceof HTMLElement}function ge(t){return"undefined"!=typeof ShadowRoot&&(t instanceof fe(t).ShadowRoot||t instanceof ShadowRoot)}const _e={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];me(s)&&ue(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});me(n)&&ue(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function be(t){return t.split("-")[0]}var ve=Math.max,ye=Math.min,we=Math.round;function Ae(){var t=navigator.userAgentData;return null!=t&&t.brands&&Array.isArray(t.brands)?t.brands.map((function(t){return t.brand+"/"+t.version})).join(" "):navigator.userAgent}function Ee(){return!/^((?!chrome|android).)*safari/i.test(Ae())}function Te(t,e,i){void 0===e&&(e=!1),void 0===i&&(i=!1);var n=t.getBoundingClientRect(),s=1,o=1;e&&me(t)&&(s=t.offsetWidth>0&&we(n.width)/t.offsetWidth||1,o=t.offsetHeight>0&&we(n.height)/t.offsetHeight||1);var r=(pe(t)?fe(t):window).visualViewport,a=!Ee()&&i,l=(n.left+(a&&r?r.offsetLeft:0))/s,c=(n.top+(a&&r?r.offsetTop:0))/o,h=n.width/s,d=n.height/o;return{width:h,height:d,top:c,right:l+h,bottom:c+d,left:l,x:l,y:c}}function Ce(t){var e=Te(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Oe(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&ge(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function xe(t){return fe(t).getComputedStyle(t)}function ke(t){return["table","td","th"].indexOf(ue(t))>=0}function Le(t){return((pe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Se(t){return"html"===ue(t)?t:t.assignedSlot||t.parentNode||(ge(t)?t.host:null)||Le(t)}function De(t){return me(t)&&"fixed"!==xe(t).position?t.offsetParent:null}function $e(t){for(var e=fe(t),i=De(t);i&&ke(i)&&"static"===xe(i).position;)i=De(i);return i&&("html"===ue(i)||"body"===ue(i)&&"static"===xe(i).position)?e:i||function(t){var e=/firefox/i.test(Ae());if(/Trident/i.test(Ae())&&me(t)&&"fixed"===xe(t).position)return null;var i=Se(t);for(ge(i)&&(i=i.host);me(i)&&["html","body"].indexOf(ue(i))<0;){var n=xe(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function Ie(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}function Ne(t,e,i){return ve(t,ye(e,i))}function Pe(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Me(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const je={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=be(i.placement),l=Ie(a),c=[Vt,qt].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return Pe("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Me(t,Qt))}(s.padding,i),d=Ce(o),u="y"===l?zt:Vt,f="y"===l?Rt:qt,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=$e(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,A=Ne(v,w,y),E=l;i.modifiersData[n]=((e={})[E]=A,e.centerOffset=A-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Oe(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Fe(t){return t.split("-")[1]}var He={top:"auto",right:"auto",bottom:"auto",left:"auto"};function We(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=t.isFixed,u=r.x,f=void 0===u?0:u,p=r.y,m=void 0===p?0:p,g="function"==typeof h?h({x:f,y:m}):{x:f,y:m};f=g.x,m=g.y;var _=r.hasOwnProperty("x"),b=r.hasOwnProperty("y"),v=Vt,y=zt,w=window;if(c){var A=$e(i),E="clientHeight",T="clientWidth";A===fe(i)&&"static"!==xe(A=Le(i)).position&&"absolute"===a&&(E="scrollHeight",T="scrollWidth"),(s===zt||(s===Vt||s===qt)&&o===Yt)&&(y=Rt,m-=(d&&A===w&&w.visualViewport?w.visualViewport.height:A[E])-n.height,m*=l?1:-1),s!==Vt&&(s!==zt&&s!==Rt||o!==Yt)||(v=qt,f-=(d&&A===w&&w.visualViewport?w.visualViewport.width:A[T])-n.width,f*=l?1:-1)}var C,O=Object.assign({position:a},c&&He),x=!0===h?function(t,e){var i=t.x,n=t.y,s=e.devicePixelRatio||1;return{x:we(i*s)/s||0,y:we(n*s)/s||0}}({x:f,y:m},fe(i)):{x:f,y:m};return f=x.x,m=x.y,l?Object.assign({},O,((C={})[y]=b?"0":"",C[v]=_?"0":"",C.transform=(w.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",C)):Object.assign({},O,((e={})[y]=b?m+"px":"",e[v]=_?f+"px":"",e.transform="",e))}const Be={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:be(e.placement),variation:Fe(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s,isFixed:"fixed"===e.options.strategy};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,We(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,We(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var ze={passive:!0};const Re={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=fe(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,ze)})),a&&l.addEventListener("resize",i.update,ze),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,ze)})),a&&l.removeEventListener("resize",i.update,ze)}},data:{}};var qe={left:"right",right:"left",bottom:"top",top:"bottom"};function Ve(t){return t.replace(/left|right|bottom|top/g,(function(t){return qe[t]}))}var Ke={start:"end",end:"start"};function Qe(t){return t.replace(/start|end/g,(function(t){return Ke[t]}))}function Xe(t){var e=fe(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Ye(t){return Te(Le(t)).left+Xe(t).scrollLeft}function Ue(t){var e=xe(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ge(t){return["html","body","#document"].indexOf(ue(t))>=0?t.ownerDocument.body:me(t)&&Ue(t)?t:Ge(Se(t))}function Je(t,e){var i;void 0===e&&(e=[]);var n=Ge(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=fe(n),r=s?[o].concat(o.visualViewport||[],Ue(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Je(Se(r)))}function Ze(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function ti(t,e,i){return e===Gt?Ze(function(t,e){var i=fe(t),n=Le(t),s=i.visualViewport,o=n.clientWidth,r=n.clientHeight,a=0,l=0;if(s){o=s.width,r=s.height;var c=Ee();(c||!c&&"fixed"===e)&&(a=s.offsetLeft,l=s.offsetTop)}return{width:o,height:r,x:a+Ye(t),y:l}}(t,i)):pe(e)?function(t,e){var i=Te(t,!1,"fixed"===e);return i.top=i.top+t.clientTop,i.left=i.left+t.clientLeft,i.bottom=i.top+t.clientHeight,i.right=i.left+t.clientWidth,i.width=t.clientWidth,i.height=t.clientHeight,i.x=i.left,i.y=i.top,i}(e,i):Ze(function(t){var e,i=Le(t),n=Xe(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ve(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ve(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+Ye(t),l=-n.scrollTop;return"rtl"===xe(s||i).direction&&(a+=ve(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Le(t)))}function ei(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?be(s):null,r=s?Fe(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case zt:e={x:a,y:i.y-n.height};break;case Rt:e={x:a,y:i.y+i.height};break;case qt:e={x:i.x+i.width,y:l};break;case Vt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?Ie(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case Xt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Yt:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ii(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.strategy,r=void 0===o?t.strategy:o,a=i.boundary,l=void 0===a?Ut:a,c=i.rootBoundary,h=void 0===c?Gt:c,d=i.elementContext,u=void 0===d?Jt:d,f=i.altBoundary,p=void 0!==f&&f,m=i.padding,g=void 0===m?0:m,_=Pe("number"!=typeof g?g:Me(g,Qt)),b=u===Jt?Zt:Jt,v=t.rects.popper,y=t.elements[p?b:u],w=function(t,e,i,n){var s="clippingParents"===e?function(t){var e=Je(Se(t)),i=["absolute","fixed"].indexOf(xe(t).position)>=0&&me(t)?$e(t):t;return pe(i)?e.filter((function(t){return pe(t)&&Oe(t,i)&&"body"!==ue(t)})):[]}(t):[].concat(e),o=[].concat(s,[i]),r=o[0],a=o.reduce((function(e,i){var s=ti(t,i,n);return e.top=ve(s.top,e.top),e.right=ye(s.right,e.right),e.bottom=ye(s.bottom,e.bottom),e.left=ve(s.left,e.left),e}),ti(t,r,n));return a.width=a.right-a.left,a.height=a.bottom-a.top,a.x=a.left,a.y=a.top,a}(pe(y)?y:y.contextElement||Le(t.elements.popper),l,h,r),A=Te(t.elements.reference),E=ei({reference:A,element:v,strategy:"absolute",placement:s}),T=Ze(Object.assign({},v,E)),C=u===Jt?T:A,O={top:w.top-C.top+_.top,bottom:C.bottom-w.bottom+_.bottom,left:w.left-C.left+_.left,right:C.right-w.right+_.right},x=t.modifiersData.offset;if(u===Jt&&x){var k=x[s];Object.keys(O).forEach((function(t){var e=[qt,Rt].indexOf(t)>=0?1:-1,i=[zt,Rt].indexOf(t)>=0?"y":"x";O[t]+=k[i]*e}))}return O}function ni(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?ee:l,h=Fe(n),d=h?a?te:te.filter((function(t){return Fe(t)===h})):Qt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ii(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[be(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const si={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=be(g),b=l||(_!==g&&p?function(t){if(be(t)===Kt)return[];var e=Ve(t);return[Qe(t),e,Qe(e)]}(g):[Ve(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(be(i)===Kt?ni(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,A=new Map,E=!0,T=v[0],C=0;C=0,S=L?"width":"height",D=ii(e,{placement:O,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),$=L?k?qt:Vt:k?Rt:zt;y[S]>w[S]&&($=Ve($));var I=Ve($),N=[];if(o&&N.push(D[x]<=0),a&&N.push(D[$]<=0,D[I]<=0),N.every((function(t){return t}))){T=O,E=!1;break}A.set(O,N)}if(E)for(var P=function(t){var e=v.find((function(e){var i=A.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==P(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function oi(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function ri(t){return[zt,qt,Rt,Vt].some((function(e){return t[e]>=0}))}const ai={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ii(e,{elementContext:"reference"}),a=ii(e,{altBoundary:!0}),l=oi(r,n),c=oi(a,s,o),h=ri(l),d=ri(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},li={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=ee.reduce((function(t,i){return t[i]=function(t,e,i){var n=be(t),s=[Vt,zt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[Vt,qt].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},ci={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=ei({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},hi={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ii(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=be(e.placement),b=Fe(e.placement),v=!b,y=Ie(_),w="x"===y?"y":"x",A=e.modifiersData.popperOffsets,E=e.rects.reference,T=e.rects.popper,C="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,O="number"==typeof C?{mainAxis:C,altAxis:C}:Object.assign({mainAxis:0,altAxis:0},C),x=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,k={x:0,y:0};if(A){if(o){var L,S="y"===y?zt:Vt,D="y"===y?Rt:qt,$="y"===y?"height":"width",I=A[y],N=I+g[S],P=I-g[D],M=f?-T[$]/2:0,j=b===Xt?E[$]:T[$],F=b===Xt?-T[$]:-E[$],H=e.elements.arrow,W=f&&H?Ce(H):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},z=B[S],R=B[D],q=Ne(0,E[$],W[$]),V=v?E[$]/2-M-q-z-O.mainAxis:j-q-z-O.mainAxis,K=v?-E[$]/2+M+q+R+O.mainAxis:F+q+R+O.mainAxis,Q=e.elements.arrow&&$e(e.elements.arrow),X=Q?"y"===y?Q.clientTop||0:Q.clientLeft||0:0,Y=null!=(L=null==x?void 0:x[y])?L:0,U=I+K-Y,G=Ne(f?ye(N,I+V-Y-X):N,I,f?ve(P,U):P);A[y]=G,k[y]=G-I}if(a){var J,Z="x"===y?zt:Vt,tt="x"===y?Rt:qt,et=A[w],it="y"===w?"height":"width",nt=et+g[Z],st=et-g[tt],ot=-1!==[zt,Vt].indexOf(_),rt=null!=(J=null==x?void 0:x[w])?J:0,at=ot?nt:et-E[it]-T[it]-rt+O.altAxis,lt=ot?et+E[it]+T[it]-rt-O.altAxis:st,ct=f&&ot?function(t,e,i){var n=Ne(t,e,i);return n>i?i:n}(at,et,lt):Ne(f?at:nt,et,f?lt:st);A[w]=ct,k[w]=ct-et}e.modifiersData[n]=k}},requiresIfExists:["offset"]};function di(t,e,i){void 0===i&&(i=!1);var n,s,o=me(e),r=me(e)&&function(t){var e=t.getBoundingClientRect(),i=we(e.width)/t.offsetWidth||1,n=we(e.height)/t.offsetHeight||1;return 1!==i||1!==n}(e),a=Le(e),l=Te(t,r,i),c={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(o||!o&&!i)&&(("body"!==ue(e)||Ue(a))&&(c=(n=e)!==fe(n)&&me(n)?{scrollLeft:(s=n).scrollLeft,scrollTop:s.scrollTop}:Xe(n)),me(e)?((h=Te(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):a&&(h.x=Ye(a))),{x:l.left+c.scrollLeft-h.x,y:l.top+c.scrollTop-h.y,width:l.width,height:l.height}}function ui(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var fi={placement:"bottom",modifiers:[],strategy:"absolute"};function pi(){for(var t=arguments.length,e=new Array(t),i=0;iNumber.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(F.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...g(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>a(t)));i.length&&b(i,e,t===Ti,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=z.find(Ni);for(const i of e){const e=qi.getInstance(i);if(!e||!1===e._config.autoClose)continue;const n=t.composedPath(),s=n.includes(e._menu);if(n.includes(e._element)||"inside"===e._config.autoClose&&!s||"outside"===e._config.autoClose&&s)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,n=[Ei,Ti].includes(t.key);if(!n&&!i)return;if(e&&!i)return;t.preventDefault();const s=this.matches(Ii)?this:z.prev(this,Ii)[0]||z.next(this,Ii)[0]||z.findOne(Ii,t.delegateTarget.parentNode),o=qi.getOrCreateInstance(s);if(n)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}N.on(document,Si,Ii,qi.dataApiKeydownHandler),N.on(document,Si,Pi,qi.dataApiKeydownHandler),N.on(document,Li,qi.clearMenus),N.on(document,Di,qi.clearMenus),N.on(document,Li,Ii,(function(t){t.preventDefault(),qi.getOrCreateInstance(this).toggle()})),m(qi);const Vi="backdrop",Ki="show",Qi=`mousedown.bs.${Vi}`,Xi={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Yi={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ui extends H{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return Xi}static get DefaultType(){return Yi}static get NAME(){return Vi}show(t){if(!this._config.isVisible)return void g(t);this._append();const e=this._getElement();this._config.isAnimated&&d(e),e.classList.add(Ki),this._emulateAnimation((()=>{g(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(Ki),this._emulateAnimation((()=>{this.dispose(),g(t)}))):g(t)}dispose(){this._isAppended&&(N.off(this._element,Qi),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=r(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),N.on(t,Qi,(()=>{g(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){_(t,this._getElement(),this._config.isAnimated)}}const Gi=".bs.focustrap",Ji=`focusin${Gi}`,Zi=`keydown.tab${Gi}`,tn="backward",en={autofocus:!0,trapElement:null},nn={autofocus:"boolean",trapElement:"element"};class sn extends H{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return en}static get DefaultType(){return nn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),N.off(document,Gi),N.on(document,Ji,(t=>this._handleFocusin(t))),N.on(document,Zi,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,N.off(document,Gi))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=z.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===tn?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?tn:"forward")}}const on=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",rn=".sticky-top",an="padding-right",ln="margin-right";class cn{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,an,(e=>e+t)),this._setElementAttributes(on,an,(e=>e+t)),this._setElementAttributes(rn,ln,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,an),this._resetElementAttributes(on,an),this._resetElementAttributes(rn,ln)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(s))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&F.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=F.getDataAttribute(t,e);null!==i?(F.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(o(t))e(t);else for(const i of z.find(t,this._element))e(i)}}const hn=".bs.modal",dn=`hide${hn}`,un=`hidePrevented${hn}`,fn=`hidden${hn}`,pn=`show${hn}`,mn=`shown${hn}`,gn=`resize${hn}`,_n=`click.dismiss${hn}`,bn=`mousedown.dismiss${hn}`,vn=`keydown.dismiss${hn}`,yn=`click${hn}.data-api`,wn="modal-open",An="show",En="modal-static",Tn={backdrop:!0,focus:!0,keyboard:!0},Cn={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class On extends W{constructor(t,e){super(t,e),this._dialog=z.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new cn,this._addEventListeners()}static get Default(){return Tn}static get DefaultType(){return Cn}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||N.trigger(this._element,pn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(wn),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(N.trigger(this._element,dn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(An),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){N.off(window,hn),N.off(this._dialog,hn),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ui({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=z.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),d(this._element),this._element.classList.add(An),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,N.trigger(this._element,mn,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){N.on(this._element,vn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),N.on(window,gn,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),N.on(this._element,bn,(t=>{N.one(this._element,_n,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(wn),this._resetAdjustments(),this._scrollBar.reset(),N.trigger(this._element,fn)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(N.trigger(this._element,un).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(En)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(En),this._queueCallback((()=>{this._element.classList.remove(En),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=On.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}N.on(document,yn,'[data-bs-toggle="modal"]',(function(t){const e=z.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),N.one(e,pn,(t=>{t.defaultPrevented||N.one(e,fn,(()=>{a(this)&&this.focus()}))}));const i=z.findOne(".modal.show");i&&On.getInstance(i).hide(),On.getOrCreateInstance(e).toggle(this)})),R(On),m(On);const xn=".bs.offcanvas",kn=".data-api",Ln=`load${xn}${kn}`,Sn="show",Dn="showing",$n="hiding",In=".offcanvas.show",Nn=`show${xn}`,Pn=`shown${xn}`,Mn=`hide${xn}`,jn=`hidePrevented${xn}`,Fn=`hidden${xn}`,Hn=`resize${xn}`,Wn=`click${xn}${kn}`,Bn=`keydown.dismiss${xn}`,zn={backdrop:!0,keyboard:!0,scroll:!1},Rn={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class qn extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return zn}static get DefaultType(){return Rn}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||N.trigger(this._element,Nn,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new cn).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(Dn),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(Sn),this._element.classList.remove(Dn),N.trigger(this._element,Pn,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(N.trigger(this._element,Mn).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add($n),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(Sn,$n),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new cn).reset(),N.trigger(this._element,Fn)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new Ui({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():N.trigger(this._element,jn)}:null})}_initializeFocusTrap(){return new sn({trapElement:this._element})}_addEventListeners(){N.on(this._element,Bn,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():N.trigger(this._element,jn))}))}static jQueryInterface(t){return this.each((function(){const e=qn.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}N.on(document,Wn,'[data-bs-toggle="offcanvas"]',(function(t){const e=z.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this))return;N.one(e,Fn,(()=>{a(this)&&this.focus()}));const i=z.findOne(In);i&&i!==e&&qn.getInstance(i).hide(),qn.getOrCreateInstance(e).toggle(this)})),N.on(window,Ln,(()=>{for(const t of z.find(In))qn.getOrCreateInstance(t).show()})),N.on(window,Hn,(()=>{for(const t of z.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&qn.getOrCreateInstance(t).hide()})),R(qn),m(qn);const Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Kn=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Qn=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Xn=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!Kn.has(i)||Boolean(Qn.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},Yn={allowList:Vn,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Un={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Gn={entry:"(string|element|function|null)",selector:"(string|element)"};class Jn extends H{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Yn}static get DefaultType(){return Un}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},Gn)}_setContent(t,e,i){const n=z.findOne(i,t);n&&((e=this._resolvePossibleFunction(e))?o(e)?this._putElementInTemplate(r(e),n):this._config.html?n.innerHTML=this._maybeSanitize(e):n.textContent=e:n.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const n=(new window.DOMParser).parseFromString(t,"text/html"),s=[].concat(...n.body.querySelectorAll("*"));for(const t of s){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const n=[].concat(...t.attributes),s=[].concat(e["*"]||[],e[i]||[]);for(const e of n)Xn(e,s)||t.removeAttribute(e.nodeName)}return n.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return g(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Zn=new Set(["sanitize","allowList","sanitizeFn"]),ts="fade",es="show",is=".modal",ns="hide.bs.modal",ss="hover",os="focus",rs={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},as={allowList:Vn,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},ls={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class cs extends W{constructor(t,e){if(void 0===vi)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return as}static get DefaultType(){return ls}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),N.off(this._element.closest(is),ns,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=N.trigger(this._element,this.constructor.eventName("show")),e=(c(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:n}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(n.append(i),N.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.on(t,"mouseover",h);this._queueCallback((()=>{N.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!N.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(es),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))N.off(t,"mouseover",h);this._activeTrigger.click=!1,this._activeTrigger[os]=!1,this._activeTrigger[ss]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),N.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(ts,es),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(ts),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Jn({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(ts)}_isShown(){return this.tip&&this.tip.classList.contains(es)}_createPopper(t){const e=g(this._config.placement,[this,t,this._element]),i=rs[e.toUpperCase()];return bi(this._element,t,this._getPopperConfig(i))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return g(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...g(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)N.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===ss?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===ss?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");N.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?os:ss]=!0,e._enter()})),N.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?os:ss]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},N.on(this._element.closest(is),ns,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=F.getDataAttributes(this._element);for(const t of Object.keys(e))Zn.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=cs.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(cs);const hs={...cs.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},ds={...cs.DefaultType,content:"(null|string|element|function)"};class us extends cs{static get Default(){return hs}static get DefaultType(){return ds}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=us.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}m(us);const fs=".bs.scrollspy",ps=`activate${fs}`,ms=`click${fs}`,gs=`load${fs}.data-api`,_s="active",bs="[href]",vs=".nav-link",ys=`${vs}, .nav-item > ${vs}, .list-group-item`,ws={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},As={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Es extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return ws}static get DefaultType(){return As}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=r(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(N.off(this._config.target,ms),N.on(this._config.target,ms,bs,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,n=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:n,behavior:"smooth"});i.scrollTop=n}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},n=(this._rootElement||document.documentElement).scrollTop,s=n>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=n;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&t){if(i(o),!n)return}else s||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=z.find(bs,this._config.target);for(const e of t){if(!e.hash||l(e))continue;const t=z.findOne(decodeURI(e.hash),this._element);a(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(_s),this._activateParents(t),N.trigger(this._element,ps,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))z.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(_s);else for(const e of z.parents(t,".nav, .list-group"))for(const t of z.prev(e,ys))t.classList.add(_s)}_clearActiveClass(t){t.classList.remove(_s);const e=z.find(`${bs}.${_s}`,t);for(const t of e)t.classList.remove(_s)}static jQueryInterface(t){return this.each((function(){const e=Es.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(window,gs,(()=>{for(const t of z.find('[data-bs-spy="scroll"]'))Es.getOrCreateInstance(t)})),m(Es);const Ts=".bs.tab",Cs=`hide${Ts}`,Os=`hidden${Ts}`,xs=`show${Ts}`,ks=`shown${Ts}`,Ls=`click${Ts}`,Ss=`keydown${Ts}`,Ds=`load${Ts}`,$s="ArrowLeft",Is="ArrowRight",Ns="ArrowUp",Ps="ArrowDown",Ms="Home",js="End",Fs="active",Hs="fade",Ws="show",Bs=".dropdown-toggle",zs=`:not(${Bs})`,Rs='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',qs=`.nav-link${zs}, .list-group-item${zs}, [role="tab"]${zs}, ${Rs}`,Vs=`.${Fs}[data-bs-toggle="tab"], .${Fs}[data-bs-toggle="pill"], .${Fs}[data-bs-toggle="list"]`;class Ks extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),N.on(this._element,Ss,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?N.trigger(e,Cs,{relatedTarget:t}):null;N.trigger(t,xs,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(Fs),this._activate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),N.trigger(t,ks,{relatedTarget:e})):t.classList.add(Ws)}),t,t.classList.contains(Hs)))}_deactivate(t,e){t&&(t.classList.remove(Fs),t.blur(),this._deactivate(z.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),N.trigger(t,Os,{relatedTarget:e})):t.classList.remove(Ws)}),t,t.classList.contains(Hs)))}_keydown(t){if(![$s,Is,Ns,Ps,Ms,js].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!l(t)));let i;if([Ms,js].includes(t.key))i=e[t.key===Ms?0:e.length-1];else{const n=[Is,Ps].includes(t.key);i=b(e,t.target,n,!0)}i&&(i.focus({preventScroll:!0}),Ks.getOrCreateInstance(i).show())}_getChildren(){return z.find(qs,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=z.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const n=(t,n)=>{const s=z.findOne(t,i);s&&s.classList.toggle(n,e)};n(Bs,Fs),n(".dropdown-menu",Ws),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(Fs)}_getInnerElement(t){return t.matches(qs)?t:z.findOne(qs,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=Ks.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}N.on(document,Ls,Rs,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),l(this)||Ks.getOrCreateInstance(this).show()})),N.on(window,Ds,(()=>{for(const t of z.find(Vs))Ks.getOrCreateInstance(t)})),m(Ks);const Qs=".bs.toast",Xs=`mouseover${Qs}`,Ys=`mouseout${Qs}`,Us=`focusin${Qs}`,Gs=`focusout${Qs}`,Js=`hide${Qs}`,Zs=`hidden${Qs}`,to=`show${Qs}`,eo=`shown${Qs}`,io="hide",no="show",so="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:5e3};class ao extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return ro}static get DefaultType(){return oo}static get NAME(){return"toast"}show(){N.trigger(this._element,to).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(io),d(this._element),this._element.classList.add(no,so),this._queueCallback((()=>{this._element.classList.remove(so),N.trigger(this._element,eo),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(N.trigger(this._element,Js).defaultPrevented||(this._element.classList.add(so),this._queueCallback((()=>{this._element.classList.add(io),this._element.classList.remove(so,no),N.trigger(this._element,Zs)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(no),super.dispose()}isShown(){return this._element.classList.contains(no)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){N.on(this._element,Xs,(t=>this._onInteraction(t,!0))),N.on(this._element,Ys,(t=>this._onInteraction(t,!1))),N.on(this._element,Us,(t=>this._onInteraction(t,!0))),N.on(this._element,Gs,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=ao.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return R(ao),m(ao),{Alert:Q,Button:Y,Carousel:xt,Collapse:Bt,Dropdown:qi,Modal:On,Offcanvas:qn,Popover:us,ScrollSpy:Es,Tab:Ks,Toast:ao,Tooltip:cs}})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/src/tests/_test_resources/bootstrap.min.css b/src/tests/_test_resources/bootstrap.min.css new file mode 100644 index 000000000..f5910accb --- /dev/null +++ b/src/tests/_test_resources/bootstrap.min.css @@ -0,0 +1,6 @@ +@charset "UTF-8";/*! + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root,[data-bs-theme=light]{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-black:#000;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-primary-text-emphasis:#052c65;--bs-secondary-text-emphasis:#2b2f32;--bs-success-text-emphasis:#0a3622;--bs-info-text-emphasis:#055160;--bs-warning-text-emphasis:#664d03;--bs-danger-text-emphasis:#58151c;--bs-light-text-emphasis:#495057;--bs-dark-text-emphasis:#495057;--bs-primary-bg-subtle:#cfe2ff;--bs-secondary-bg-subtle:#e2e3e5;--bs-success-bg-subtle:#d1e7dd;--bs-info-bg-subtle:#cff4fc;--bs-warning-bg-subtle:#fff3cd;--bs-danger-bg-subtle:#f8d7da;--bs-light-bg-subtle:#fcfcfd;--bs-dark-bg-subtle:#ced4da;--bs-primary-border-subtle:#9ec5fe;--bs-secondary-border-subtle:#c4c8cb;--bs-success-border-subtle:#a3cfbb;--bs-info-border-subtle:#9eeaf9;--bs-warning-border-subtle:#ffe69c;--bs-danger-border-subtle:#f1aeb5;--bs-light-border-subtle:#e9ecef;--bs-dark-border-subtle:#adb5bd;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans","Liberation Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-color-rgb:33,37,41;--bs-body-bg:#fff;--bs-body-bg-rgb:255,255,255;--bs-emphasis-color:#000;--bs-emphasis-color-rgb:0,0,0;--bs-secondary-color:rgba(33, 37, 41, 0.75);--bs-secondary-color-rgb:33,37,41;--bs-secondary-bg:#e9ecef;--bs-secondary-bg-rgb:233,236,239;--bs-tertiary-color:rgba(33, 37, 41, 0.5);--bs-tertiary-color-rgb:33,37,41;--bs-tertiary-bg:#f8f9fa;--bs-tertiary-bg-rgb:248,249,250;--bs-heading-color:inherit;--bs-link-color:#0d6efd;--bs-link-color-rgb:13,110,253;--bs-link-decoration:underline;--bs-link-hover-color:#0a58ca;--bs-link-hover-color-rgb:10,88,202;--bs-code-color:#d63384;--bs-highlight-color:#212529;--bs-highlight-bg:#fff3cd;--bs-border-width:1px;--bs-border-style:solid;--bs-border-color:#dee2e6;--bs-border-color-translucent:rgba(0, 0, 0, 0.175);--bs-border-radius:0.375rem;--bs-border-radius-sm:0.25rem;--bs-border-radius-lg:0.5rem;--bs-border-radius-xl:1rem;--bs-border-radius-xxl:2rem;--bs-border-radius-2xl:var(--bs-border-radius-xxl);--bs-border-radius-pill:50rem;--bs-box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15);--bs-box-shadow-sm:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);--bs-box-shadow-lg:0 1rem 3rem rgba(0, 0, 0, 0.175);--bs-box-shadow-inset:inset 0 1px 2px rgba(0, 0, 0, 0.075);--bs-focus-ring-width:0.25rem;--bs-focus-ring-opacity:0.25;--bs-focus-ring-color:rgba(13, 110, 253, 0.25);--bs-form-valid-color:#198754;--bs-form-valid-border-color:#198754;--bs-form-invalid-color:#dc3545;--bs-form-invalid-border-color:#dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color:#dee2e6;--bs-body-color-rgb:222,226,230;--bs-body-bg:#212529;--bs-body-bg-rgb:33,37,41;--bs-emphasis-color:#fff;--bs-emphasis-color-rgb:255,255,255;--bs-secondary-color:rgba(222, 226, 230, 0.75);--bs-secondary-color-rgb:222,226,230;--bs-secondary-bg:#343a40;--bs-secondary-bg-rgb:52,58,64;--bs-tertiary-color:rgba(222, 226, 230, 0.5);--bs-tertiary-color-rgb:222,226,230;--bs-tertiary-bg:#2b3035;--bs-tertiary-bg-rgb:43,48,53;--bs-primary-text-emphasis:#6ea8fe;--bs-secondary-text-emphasis:#a7acb1;--bs-success-text-emphasis:#75b798;--bs-info-text-emphasis:#6edff6;--bs-warning-text-emphasis:#ffda6a;--bs-danger-text-emphasis:#ea868f;--bs-light-text-emphasis:#f8f9fa;--bs-dark-text-emphasis:#dee2e6;--bs-primary-bg-subtle:#031633;--bs-secondary-bg-subtle:#161719;--bs-success-bg-subtle:#051b11;--bs-info-bg-subtle:#032830;--bs-warning-bg-subtle:#332701;--bs-danger-bg-subtle:#2c0b0e;--bs-light-bg-subtle:#343a40;--bs-dark-bg-subtle:#1a1d20;--bs-primary-border-subtle:#084298;--bs-secondary-border-subtle:#41464b;--bs-success-border-subtle:#0f5132;--bs-info-border-subtle:#087990;--bs-warning-border-subtle:#997404;--bs-danger-border-subtle:#842029;--bs-light-border-subtle:#495057;--bs-dark-border-subtle:#343a40;--bs-heading-color:inherit;--bs-link-color:#6ea8fe;--bs-link-hover-color:#8bb9fe;--bs-link-color-rgb:110,168,254;--bs-link-hover-color-rgb:139,185,254;--bs-code-color:#e685b5;--bs-highlight-color:#dee2e6;--bs-highlight-bg:#664d03;--bs-border-color:#495057;--bs-border-color-translucent:rgba(255, 255, 255, 0.15);--bs-form-valid-color:#75b798;--bs-form-valid-border-color:#75b798;--bs-form-invalid-color:#ea868f;--bs-form-invalid-border-color:#ea868f}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,1));text-decoration:underline}a:hover{--bs-link-color-rgb:var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}:root{--bs-breakpoint-xs:0;--bs-breakpoint-sm:576px;--bs-breakpoint-md:768px;--bs-breakpoint-lg:992px;--bs-breakpoint-xl:1200px;--bs-breakpoint-xxl:1400px}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-color-type:initial;--bs-table-bg-type:initial;--bs-table-color-state:initial;--bs-table-bg-state:initial;--bs-table-color:var(--bs-emphasis-color);--bs-table-bg:var(--bs-body-bg);--bs-table-border-color:var(--bs-border-color);--bs-table-accent-bg:transparent;--bs-table-striped-color:var(--bs-emphasis-color);--bs-table-striped-bg:rgba(var(--bs-emphasis-color-rgb), 0.05);--bs-table-active-color:var(--bs-emphasis-color);--bs-table-active-bg:rgba(var(--bs-emphasis-color-rgb), 0.1);--bs-table-hover-color:var(--bs-emphasis-color);--bs-table-hover-bg:rgba(var(--bs-emphasis-color-rgb), 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem .5rem;color:var(--bs-table-color-state,var(--bs-table-color-type,var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state,var(--bs-table-bg-type,var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type:var(--bs-table-striped-color);--bs-table-bg-type:var(--bs-table-striped-bg)}.table-active{--bs-table-color-state:var(--bs-table-active-color);--bs-table-bg-state:var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state:var(--bs-table-hover-color);--bs-table-bg-state:var(--bs-table-hover-bg)}.table-primary{--bs-table-color:#000;--bs-table-bg:#cfe2ff;--bs-table-border-color:#a6b5cc;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color:#000;--bs-table-bg:#e2e3e5;--bs-table-border-color:#b5b6b7;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color:#000;--bs-table-bg:#d1e7dd;--bs-table-border-color:#a7b9b1;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color:#000;--bs-table-bg:#cff4fc;--bs-table-border-color:#a6c3ca;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color:#000;--bs-table-bg:#fff3cd;--bs-table-border-color:#ccc2a4;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color:#000;--bs-table-bg:#f8d7da;--bs-table-border-color:#c6acae;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color:#000;--bs-table-bg:#f8f9fa;--bs-table-border-color:#c6c7c8;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color:#fff;--bs-table-bg:#212529;--bs-table-border-color:#4d5154;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::-moz-placeholder{color:var(--bs-secondary-color);opacity:1}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg:var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;height:100%;padding:1rem .75rem;overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control-plaintext::-moz-placeholder,.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control-plaintext::placeholder,.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control-plaintext:not(:-moz-placeholder-shown),.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown),.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control-plaintext:-webkit-autofill,.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label,.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:not(:-moz-placeholder-shown)~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control-plaintext~label::after,.form-floating>.form-control:focus~label::after,.form-floating>.form-control:not(:placeholder-shown)~label::after,.form-floating>.form-select~label::after{position:absolute;inset:1rem 0.375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>.form-control:-webkit-autofill~label{color:rgba(var(--bs-body-color-rgb),.65);transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>.form-control:disabled~label,.form-floating>:disabled~label{color:#6c757d}.form-floating>.form-control:disabled~label::after,.form-floating>:disabled~label::after{background-color:var(--bs-secondary-bg)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-floating,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-floating:focus-within,.input-group>.form-select:focus{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select,.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select,.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(var(--bs-border-width) * -1);border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:var(--bs-form-valid-border-color)}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-control-color.is-valid,.was-validated .form-control-color:valid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:var(--bs-form-valid-border-color)}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:var(--bs-form-valid-color)}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-valid,.input-group>.form-floating:not(:focus-within).is-valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-control:not(:focus):valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.was-validated .input-group>.form-select:not(:focus):valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:var(--bs-form-invalid-border-color)}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-control-color.is-invalid,.was-validated .form-control-color:invalid{width:calc(3rem + calc(1.5em + .75rem))}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:var(--bs-form-invalid-border-color)}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:var(--bs-form-invalid-color)}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group>.form-control:not(:focus).is-invalid,.input-group>.form-floating:not(:focus-within).is-invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-control:not(:focus):invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.was-validated .input-group>.form-select:not(:focus):invalid{z-index:4}.btn{--bs-btn-padding-x:0.75rem;--bs-btn-padding-y:0.375rem;--bs-btn-font-family: ;--bs-btn-font-size:1rem;--bs-btn-font-weight:400;--bs-btn-line-height:1.5;--bs-btn-color:var(--bs-body-color);--bs-btn-bg:transparent;--bs-btn-border-width:var(--bs-border-width);--bs-btn-border-color:transparent;--bs-btn-border-radius:var(--bs-border-radius);--bs-btn-hover-border-color:transparent;--bs-btn-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.15),0 1px 1px rgba(0, 0, 0, 0.075);--bs-btn-disabled-opacity:0.65;--bs-btn-focus-box-shadow:0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,.btn.active,.btn.show,.btn:first-child:active,:not(.btn-check)+.btn:active{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible,.btn:first-child:active:focus-visible,:not(.btn-check)+.btn:active:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0b5ed7;--bs-btn-hover-border-color:#0a58ca;--bs-btn-focus-shadow-rgb:49,132,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0a58ca;--bs-btn-active-border-color:#0a53be;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#0d6efd;--bs-btn-disabled-border-color:#0d6efd}.btn-secondary{--bs-btn-color:#fff;--bs-btn-bg:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#5c636a;--bs-btn-hover-border-color:#565e64;--bs-btn-focus-shadow-rgb:130,138,145;--bs-btn-active-color:#fff;--bs-btn-active-bg:#565e64;--bs-btn-active-border-color:#51585e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#6c757d;--bs-btn-disabled-border-color:#6c757d}.btn-success{--bs-btn-color:#fff;--bs-btn-bg:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#157347;--bs-btn-hover-border-color:#146c43;--bs-btn-focus-shadow-rgb:60,153,110;--bs-btn-active-color:#fff;--bs-btn-active-bg:#146c43;--bs-btn-active-border-color:#13653f;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#198754;--bs-btn-disabled-border-color:#198754}.btn-info{--bs-btn-color:#000;--bs-btn-bg:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#31d2f2;--bs-btn-hover-border-color:#25cff2;--bs-btn-focus-shadow-rgb:11,172,204;--bs-btn-active-color:#000;--bs-btn-active-bg:#3dd5f3;--bs-btn-active-border-color:#25cff2;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#0dcaf0;--bs-btn-disabled-border-color:#0dcaf0}.btn-warning{--bs-btn-color:#000;--bs-btn-bg:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffca2c;--bs-btn-hover-border-color:#ffc720;--bs-btn-focus-shadow-rgb:217,164,6;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffcd39;--bs-btn-active-border-color:#ffc720;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#ffc107;--bs-btn-disabled-border-color:#ffc107}.btn-danger{--bs-btn-color:#fff;--bs-btn-bg:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#bb2d3b;--bs-btn-hover-border-color:#b02a37;--bs-btn-focus-shadow-rgb:225,83,97;--bs-btn-active-color:#fff;--bs-btn-active-bg:#b02a37;--bs-btn-active-border-color:#a52834;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#dc3545;--bs-btn-disabled-border-color:#dc3545}.btn-light{--bs-btn-color:#000;--bs-btn-bg:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#d3d4d5;--bs-btn-hover-border-color:#c6c7c8;--bs-btn-focus-shadow-rgb:211,212,213;--bs-btn-active-color:#000;--bs-btn-active-bg:#c6c7c8;--bs-btn-active-border-color:#babbbc;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#000;--bs-btn-disabled-bg:#f8f9fa;--bs-btn-disabled-border-color:#f8f9fa}.btn-dark{--bs-btn-color:#fff;--bs-btn-bg:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#424649;--bs-btn-hover-border-color:#373b3e;--bs-btn-focus-shadow-rgb:66,70,73;--bs-btn-active-color:#fff;--bs-btn-active-bg:#4d5154;--bs-btn-active-border-color:#373b3e;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#fff;--bs-btn-disabled-bg:#212529;--bs-btn-disabled-border-color:#212529}.btn-outline-primary{--bs-btn-color:#0d6efd;--bs-btn-border-color:#0d6efd;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#0d6efd;--bs-btn-hover-border-color:#0d6efd;--bs-btn-focus-shadow-rgb:13,110,253;--bs-btn-active-color:#fff;--bs-btn-active-bg:#0d6efd;--bs-btn-active-border-color:#0d6efd;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0d6efd;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0d6efd;--bs-gradient:none}.btn-outline-secondary{--bs-btn-color:#6c757d;--bs-btn-border-color:#6c757d;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#6c757d;--bs-btn-hover-border-color:#6c757d;--bs-btn-focus-shadow-rgb:108,117,125;--bs-btn-active-color:#fff;--bs-btn-active-bg:#6c757d;--bs-btn-active-border-color:#6c757d;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#6c757d;--bs-gradient:none}.btn-outline-success{--bs-btn-color:#198754;--bs-btn-border-color:#198754;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#198754;--bs-btn-hover-border-color:#198754;--bs-btn-focus-shadow-rgb:25,135,84;--bs-btn-active-color:#fff;--bs-btn-active-bg:#198754;--bs-btn-active-border-color:#198754;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#198754;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#198754;--bs-gradient:none}.btn-outline-info{--bs-btn-color:#0dcaf0;--bs-btn-border-color:#0dcaf0;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#0dcaf0;--bs-btn-hover-border-color:#0dcaf0;--bs-btn-focus-shadow-rgb:13,202,240;--bs-btn-active-color:#000;--bs-btn-active-bg:#0dcaf0;--bs-btn-active-border-color:#0dcaf0;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#0dcaf0;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#0dcaf0;--bs-gradient:none}.btn-outline-warning{--bs-btn-color:#ffc107;--bs-btn-border-color:#ffc107;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#ffc107;--bs-btn-hover-border-color:#ffc107;--bs-btn-focus-shadow-rgb:255,193,7;--bs-btn-active-color:#000;--bs-btn-active-bg:#ffc107;--bs-btn-active-border-color:#ffc107;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#ffc107;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#ffc107;--bs-gradient:none}.btn-outline-danger{--bs-btn-color:#dc3545;--bs-btn-border-color:#dc3545;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#dc3545;--bs-btn-hover-border-color:#dc3545;--bs-btn-focus-shadow-rgb:220,53,69;--bs-btn-active-color:#fff;--bs-btn-active-bg:#dc3545;--bs-btn-active-border-color:#dc3545;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#dc3545;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#dc3545;--bs-gradient:none}.btn-outline-light{--bs-btn-color:#f8f9fa;--bs-btn-border-color:#f8f9fa;--bs-btn-hover-color:#000;--bs-btn-hover-bg:#f8f9fa;--bs-btn-hover-border-color:#f8f9fa;--bs-btn-focus-shadow-rgb:248,249,250;--bs-btn-active-color:#000;--bs-btn-active-bg:#f8f9fa;--bs-btn-active-border-color:#f8f9fa;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#f8f9fa;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#f8f9fa;--bs-gradient:none}.btn-outline-dark{--bs-btn-color:#212529;--bs-btn-border-color:#212529;--bs-btn-hover-color:#fff;--bs-btn-hover-bg:#212529;--bs-btn-hover-border-color:#212529;--bs-btn-focus-shadow-rgb:33,37,41;--bs-btn-active-color:#fff;--bs-btn-active-bg:#212529;--bs-btn-active-border-color:#212529;--bs-btn-active-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);--bs-btn-disabled-color:#212529;--bs-btn-disabled-bg:transparent;--bs-btn-disabled-border-color:#212529;--bs-gradient:none}.btn-link{--bs-btn-font-weight:400;--bs-btn-color:var(--bs-link-color);--bs-btn-bg:transparent;--bs-btn-border-color:transparent;--bs-btn-hover-color:var(--bs-link-hover-color);--bs-btn-hover-border-color:transparent;--bs-btn-active-color:var(--bs-link-hover-color);--bs-btn-active-border-color:transparent;--bs-btn-disabled-color:#6c757d;--bs-btn-disabled-border-color:transparent;--bs-btn-box-shadow:0 0 0 #000;--bs-btn-focus-shadow-rgb:49,132,253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-group-lg>.btn,.btn-lg{--bs-btn-padding-y:0.5rem;--bs-btn-padding-x:1rem;--bs-btn-font-size:1.25rem;--bs-btn-border-radius:var(--bs-border-radius-lg)}.btn-group-sm>.btn,.btn-sm{--bs-btn-padding-y:0.25rem;--bs-btn-padding-x:0.5rem;--bs-btn-font-size:0.875rem;--bs-btn-border-radius:var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropdown-center,.dropend,.dropstart,.dropup,.dropup-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex:1000;--bs-dropdown-min-width:10rem;--bs-dropdown-padding-x:0;--bs-dropdown-padding-y:0.5rem;--bs-dropdown-spacer:0.125rem;--bs-dropdown-font-size:1rem;--bs-dropdown-color:var(--bs-body-color);--bs-dropdown-bg:var(--bs-body-bg);--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-border-radius:var(--bs-border-radius);--bs-dropdown-border-width:var(--bs-border-width);--bs-dropdown-inner-border-radius:calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y:0.5rem;--bs-dropdown-box-shadow:var(--bs-box-shadow);--bs-dropdown-link-color:var(--bs-body-color);--bs-dropdown-link-hover-color:var(--bs-body-color);--bs-dropdown-link-hover-bg:var(--bs-tertiary-bg);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:var(--bs-tertiary-color);--bs-dropdown-item-padding-x:1rem;--bs-dropdown-item-padding-y:0.25rem;--bs-dropdown-header-color:#6c757d;--bs-dropdown-header-padding-x:1rem;--bs-dropdown-header-padding-y:0.5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius,0)}.dropdown-item:focus,.dropdown-item:hover{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color:#dee2e6;--bs-dropdown-bg:#343a40;--bs-dropdown-border-color:var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color:#dee2e6;--bs-dropdown-link-hover-color:#fff;--bs-dropdown-divider-bg:var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg:rgba(255, 255, 255, 0.15);--bs-dropdown-link-active-color:#fff;--bs-dropdown-link-active-bg:#0d6efd;--bs-dropdown-link-disabled-color:#adb5bd;--bs-dropdown-header-color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>.btn-group:not(:first-child),.btn-group>:not(.btn-check:first-child)+.btn{margin-left:calc(var(--bs-border-width) * -1)}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:calc(var(--bs-border-width) * -1)}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x:1rem;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-link-color);--bs-nav-link-hover-color:var(--bs-link-hover-color);--bs-nav-link-disabled-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:0 0;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width:var(--bs-border-width);--bs-nav-tabs-border-color:var(--bs-border-color);--bs-nav-tabs-border-radius:var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color:var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color:var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg:var(--bs-body-bg);--bs-nav-tabs-link-active-border-color:var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius:var(--bs-border-radius);--bs-nav-pills-link-active-color:#fff;--bs-nav-pills-link-active-bg:#0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap:1rem;--bs-nav-underline-border-width:0.125rem;--bs-nav-underline-link-active-color:var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:focus,.nav-underline .nav-link:hover{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x:0;--bs-navbar-padding-y:0.5rem;--bs-navbar-color:rgba(var(--bs-emphasis-color-rgb), 0.65);--bs-navbar-hover-color:rgba(var(--bs-emphasis-color-rgb), 0.8);--bs-navbar-disabled-color:rgba(var(--bs-emphasis-color-rgb), 0.3);--bs-navbar-active-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y:0.3125rem;--bs-navbar-brand-margin-end:1rem;--bs-navbar-brand-font-size:1.25rem;--bs-navbar-brand-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color:rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x:0.5rem;--bs-navbar-toggler-padding-y:0.25rem;--bs-navbar-toggler-padding-x:0.75rem;--bs-navbar-toggler-font-size:1.25rem;--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color:rgba(var(--bs-emphasis-color-rgb), 0.15);--bs-navbar-toggler-border-radius:var(--bs-border-radius);--bs-navbar-toggler-focus-width:0.25rem;--bs-navbar-toggler-transition:box-shadow 0.15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x:0;--bs-nav-link-padding-y:0.5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color:var(--bs-navbar-color);--bs-nav-link-hover-color:var(--bs-navbar-hover-color);--bs-nav-link-disabled-color:var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:focus,.navbar-text a:hover{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color:rgba(255, 255, 255, 0.55);--bs-navbar-hover-color:rgba(255, 255, 255, 0.75);--bs-navbar-disabled-color:rgba(255, 255, 255, 0.25);--bs-navbar-active-color:#fff;--bs-navbar-brand-color:#fff;--bs-navbar-brand-hover-color:#fff;--bs-navbar-toggler-border-color:rgba(255, 255, 255, 0.1);--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y:1rem;--bs-card-spacer-x:1rem;--bs-card-title-spacer-y:0.5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width:var(--bs-border-width);--bs-card-border-color:var(--bs-border-color-translucent);--bs-card-border-radius:var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y:0.5rem;--bs-card-cap-padding-x:1rem;--bs-card-cap-bg:rgba(var(--bs-body-color-rgb), 0.03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg:var(--bs-body-bg);--bs-card-img-overlay-padding:1rem;--bs-card-group-margin:0.75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion{--bs-accordion-color:var(--bs-body-color);--bs-accordion-bg:var(--bs-body-bg);--bs-accordion-transition:color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,border-radius 0.15s ease;--bs-accordion-border-color:var(--bs-border-color);--bs-accordion-border-width:var(--bs-border-width);--bs-accordion-border-radius:var(--bs-border-radius);--bs-accordion-inner-border-radius:calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x:1.25rem;--bs-accordion-btn-padding-y:1rem;--bs-accordion-btn-color:var(--bs-body-color);--bs-accordion-btn-bg:var(--bs-accordion-bg);--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width:1.25rem;--bs-accordion-btn-icon-transform:rotate(-180deg);--bs-accordion-btn-icon-transition:transform 0.2s ease-in-out;--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-focus-border-color:#86b7fe;--bs-accordion-btn-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-accordion-body-padding-x:1.25rem;--bs-accordion-body-padding-y:1rem;--bs-accordion-active-color:var(--bs-primary-text-emphasis);--bs-accordion-active-bg:var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed)::after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button::after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:var(--bs-accordion-btn-focus-border-color);outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button,.accordion-flush .accordion-item .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button::after{--bs-accordion-btn-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x:0;--bs-breadcrumb-padding-y:0;--bs-breadcrumb-margin-bottom:1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color:var(--bs-secondary-color);--bs-breadcrumb-item-padding-x:0.5rem;--bs-breadcrumb-item-active-color:var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x:0.75rem;--bs-pagination-padding-y:0.375rem;--bs-pagination-font-size:1rem;--bs-pagination-color:var(--bs-link-color);--bs-pagination-bg:var(--bs-body-bg);--bs-pagination-border-width:var(--bs-border-width);--bs-pagination-border-color:var(--bs-border-color);--bs-pagination-border-radius:var(--bs-border-radius);--bs-pagination-hover-color:var(--bs-link-hover-color);--bs-pagination-hover-bg:var(--bs-tertiary-bg);--bs-pagination-hover-border-color:var(--bs-border-color);--bs-pagination-focus-color:var(--bs-link-hover-color);--bs-pagination-focus-bg:var(--bs-secondary-bg);--bs-pagination-focus-box-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-pagination-active-color:#fff;--bs-pagination-active-bg:#0d6efd;--bs-pagination-active-border-color:#0d6efd;--bs-pagination-disabled-color:var(--bs-secondary-color);--bs-pagination-disabled-bg:var(--bs-secondary-bg);--bs-pagination-disabled-border-color:var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.active>.page-link,.page-link.active{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.disabled>.page-link,.page-link.disabled{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(var(--bs-border-width) * -1)}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x:1.5rem;--bs-pagination-padding-y:0.75rem;--bs-pagination-font-size:1.25rem;--bs-pagination-border-radius:var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x:0.5rem;--bs-pagination-padding-y:0.25rem;--bs-pagination-font-size:0.875rem;--bs-pagination-border-radius:var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x:0.65em;--bs-badge-padding-y:0.35em;--bs-badge-font-size:0.75em;--bs-badge-font-weight:700;--bs-badge-color:#fff;--bs-badge-border-radius:var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg:transparent;--bs-alert-padding-x:1rem;--bs-alert-padding-y:1rem;--bs-alert-margin-bottom:1rem;--bs-alert-color:inherit;--bs-alert-border-color:transparent;--bs-alert-border:var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius:var(--bs-border-radius);--bs-alert-link-color:inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color:var(--bs-primary-text-emphasis);--bs-alert-bg:var(--bs-primary-bg-subtle);--bs-alert-border-color:var(--bs-primary-border-subtle);--bs-alert-link-color:var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color:var(--bs-secondary-text-emphasis);--bs-alert-bg:var(--bs-secondary-bg-subtle);--bs-alert-border-color:var(--bs-secondary-border-subtle);--bs-alert-link-color:var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color:var(--bs-success-text-emphasis);--bs-alert-bg:var(--bs-success-bg-subtle);--bs-alert-border-color:var(--bs-success-border-subtle);--bs-alert-link-color:var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color:var(--bs-info-text-emphasis);--bs-alert-bg:var(--bs-info-bg-subtle);--bs-alert-border-color:var(--bs-info-border-subtle);--bs-alert-link-color:var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color:var(--bs-warning-text-emphasis);--bs-alert-bg:var(--bs-warning-bg-subtle);--bs-alert-border-color:var(--bs-warning-border-subtle);--bs-alert-link-color:var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color:var(--bs-danger-text-emphasis);--bs-alert-bg:var(--bs-danger-bg-subtle);--bs-alert-border-color:var(--bs-danger-border-subtle);--bs-alert-link-color:var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color:var(--bs-light-text-emphasis);--bs-alert-bg:var(--bs-light-bg-subtle);--bs-alert-border-color:var(--bs-light-border-subtle);--bs-alert-link-color:var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color:var(--bs-dark-text-emphasis);--bs-alert-bg:var(--bs-dark-bg-subtle);--bs-alert-border-color:var(--bs-dark-border-subtle);--bs-alert-link-color:var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress,.progress-stacked{--bs-progress-height:1rem;--bs-progress-font-size:0.75rem;--bs-progress-bg:var(--bs-secondary-bg);--bs-progress-border-radius:var(--bs-border-radius);--bs-progress-box-shadow:var(--bs-box-shadow-inset);--bs-progress-bar-color:#fff;--bs-progress-bar-bg:#0d6efd;--bs-progress-bar-transition:width 0.6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color:var(--bs-body-color);--bs-list-group-bg:var(--bs-body-bg);--bs-list-group-border-color:var(--bs-border-color);--bs-list-group-border-width:var(--bs-border-width);--bs-list-group-border-radius:var(--bs-border-radius);--bs-list-group-item-padding-x:1rem;--bs-list-group-item-padding-y:0.5rem;--bs-list-group-action-color:var(--bs-secondary-color);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-tertiary-bg);--bs-list-group-action-active-color:var(--bs-body-color);--bs-list-group-action-active-bg:var(--bs-secondary-bg);--bs-list-group-disabled-color:var(--bs-secondary-color);--bs-list-group-disabled-bg:var(--bs-body-bg);--bs-list-group-active-color:#fff;--bs-list-group-active-bg:#0d6efd;--bs-list-group-active-border-color:#0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color:var(--bs-primary-text-emphasis);--bs-list-group-bg:var(--bs-primary-bg-subtle);--bs-list-group-border-color:var(--bs-primary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-primary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-primary-border-subtle);--bs-list-group-active-color:var(--bs-primary-bg-subtle);--bs-list-group-active-bg:var(--bs-primary-text-emphasis);--bs-list-group-active-border-color:var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color:var(--bs-secondary-text-emphasis);--bs-list-group-bg:var(--bs-secondary-bg-subtle);--bs-list-group-border-color:var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-secondary-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-secondary-border-subtle);--bs-list-group-active-color:var(--bs-secondary-bg-subtle);--bs-list-group-active-bg:var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color:var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color:var(--bs-success-text-emphasis);--bs-list-group-bg:var(--bs-success-bg-subtle);--bs-list-group-border-color:var(--bs-success-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-success-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-success-border-subtle);--bs-list-group-active-color:var(--bs-success-bg-subtle);--bs-list-group-active-bg:var(--bs-success-text-emphasis);--bs-list-group-active-border-color:var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color:var(--bs-info-text-emphasis);--bs-list-group-bg:var(--bs-info-bg-subtle);--bs-list-group-border-color:var(--bs-info-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-info-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-info-border-subtle);--bs-list-group-active-color:var(--bs-info-bg-subtle);--bs-list-group-active-bg:var(--bs-info-text-emphasis);--bs-list-group-active-border-color:var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color:var(--bs-warning-text-emphasis);--bs-list-group-bg:var(--bs-warning-bg-subtle);--bs-list-group-border-color:var(--bs-warning-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-warning-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-warning-border-subtle);--bs-list-group-active-color:var(--bs-warning-bg-subtle);--bs-list-group-active-bg:var(--bs-warning-text-emphasis);--bs-list-group-active-border-color:var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color:var(--bs-danger-text-emphasis);--bs-list-group-bg:var(--bs-danger-bg-subtle);--bs-list-group-border-color:var(--bs-danger-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-danger-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-danger-border-subtle);--bs-list-group-active-color:var(--bs-danger-bg-subtle);--bs-list-group-active-bg:var(--bs-danger-text-emphasis);--bs-list-group-active-border-color:var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color:var(--bs-light-text-emphasis);--bs-list-group-bg:var(--bs-light-bg-subtle);--bs-list-group-border-color:var(--bs-light-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-light-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-light-border-subtle);--bs-list-group-active-color:var(--bs-light-bg-subtle);--bs-list-group-active-bg:var(--bs-light-text-emphasis);--bs-list-group-active-border-color:var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color:var(--bs-dark-text-emphasis);--bs-list-group-bg:var(--bs-dark-bg-subtle);--bs-list-group-border-color:var(--bs-dark-border-subtle);--bs-list-group-action-hover-color:var(--bs-emphasis-color);--bs-list-group-action-hover-bg:var(--bs-dark-border-subtle);--bs-list-group-action-active-color:var(--bs-emphasis-color);--bs-list-group-action-active-bg:var(--bs-dark-border-subtle);--bs-list-group-active-color:var(--bs-dark-bg-subtle);--bs-list-group-active-bg:var(--bs-dark-text-emphasis);--bs-list-group-active-border-color:var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color:#000;--bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");--bs-btn-close-opacity:0.5;--bs-btn-close-hover-opacity:0.75;--bs-btn-close-focus-shadow:0 0 0 0.25rem rgba(13, 110, 253, 0.25);--bs-btn-close-focus-opacity:1;--bs-btn-close-disabled-opacity:0.25;--bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{filter:var(--bs-btn-close-white-filter)}[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter)}.toast{--bs-toast-zindex:1090;--bs-toast-padding-x:0.75rem;--bs-toast-padding-y:0.5rem;--bs-toast-spacing:1.5rem;--bs-toast-max-width:350px;--bs-toast-font-size:0.875rem;--bs-toast-color: ;--bs-toast-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-border-width:var(--bs-border-width);--bs-toast-border-color:var(--bs-border-color-translucent);--bs-toast-border-radius:var(--bs-border-radius);--bs-toast-box-shadow:var(--bs-box-shadow);--bs-toast-header-color:var(--bs-secondary-color);--bs-toast-header-bg:rgba(var(--bs-body-bg-rgb), 0.85);--bs-toast-header-border-color:var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex:1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex:1055;--bs-modal-width:500px;--bs-modal-padding:1rem;--bs-modal-margin:0.5rem;--bs-modal-color: ;--bs-modal-bg:var(--bs-body-bg);--bs-modal-border-color:var(--bs-border-color-translucent);--bs-modal-border-width:var(--bs-border-width);--bs-modal-border-radius:var(--bs-border-radius-lg);--bs-modal-box-shadow:var(--bs-box-shadow-sm);--bs-modal-inner-border-radius:calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x:1rem;--bs-modal-header-padding-y:1rem;--bs-modal-header-padding:1rem 1rem;--bs-modal-header-border-color:var(--bs-border-color);--bs-modal-header-border-width:var(--bs-border-width);--bs-modal-title-line-height:1.5;--bs-modal-footer-gap:0.5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color:var(--bs-border-color);--bs-modal-footer-border-width:var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex:1050;--bs-backdrop-bg:#000;--bs-backdrop-opacity:0.5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin:calc(-.5 * var(--bs-modal-header-padding-y)) calc(-.5 * var(--bs-modal-header-padding-x)) calc(-.5 * var(--bs-modal-header-padding-y)) auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width:576px){.modal{--bs-modal-margin:1.75rem;--bs-modal-box-shadow:var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{--bs-modal-width:800px}}@media (min-width:1200px){.modal-xl{--bs-modal-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex:1080;--bs-tooltip-max-width:200px;--bs-tooltip-padding-x:0.5rem;--bs-tooltip-padding-y:0.25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size:0.875rem;--bs-tooltip-color:var(--bs-body-bg);--bs-tooltip-bg:var(--bs-emphasis-color);--bs-tooltip-border-radius:var(--bs-border-radius);--bs-tooltip-opacity:0.9;--bs-tooltip-arrow-width:0.8rem;--bs-tooltip-arrow-height:0.4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex:1070;--bs-popover-max-width:276px;--bs-popover-font-size:0.875rem;--bs-popover-bg:var(--bs-body-bg);--bs-popover-border-width:var(--bs-border-width);--bs-popover-border-color:var(--bs-border-color-translucent);--bs-popover-border-radius:var(--bs-border-radius-lg);--bs-popover-inner-border-radius:calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow:var(--bs-box-shadow);--bs-popover-header-padding-x:1rem;--bs-popover-header-padding-y:0.5rem;--bs-popover-header-font-size:1rem;--bs-popover-header-color:inherit;--bs-popover-header-bg:var(--bs-secondary-bg);--bs-popover-body-padding-x:1rem;--bs-popover-body-padding-y:1rem;--bs-popover-body-color:var(--bs-body-color);--bs-popover-arrow-width:1rem;--bs-popover-arrow-height:0.5rem;--bs-popover-arrow-border:var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::after,.bs-popover-top>.popover-arrow::before{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::after,.bs-popover-end>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::before{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::after,.bs-popover-start>.popover-arrow::before{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}[data-bs-theme=dark] .carousel .carousel-control-next-icon,[data-bs-theme=dark] .carousel .carousel-control-prev-icon,[data-bs-theme=dark].carousel .carousel-control-next-icon,[data-bs-theme=dark].carousel .carousel-control-prev-icon{filter:invert(1) grayscale(100)}[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target],[data-bs-theme=dark].carousel .carousel-indicators [data-bs-target]{background-color:#000}[data-bs-theme=dark] .carousel .carousel-caption,[data-bs-theme=dark].carousel .carousel-caption{color:#000}.spinner-border,.spinner-grow{display:inline-block;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-border-width:0.25em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem;--bs-spinner-border-width:0.2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width:2rem;--bs-spinner-height:2rem;--bs-spinner-vertical-align:-0.125em;--bs-spinner-animation-speed:0.75s;--bs-spinner-animation-name:spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width:1rem;--bs-spinner-height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed:1.5s}}.offcanvas,.offcanvas-lg,.offcanvas-md,.offcanvas-sm,.offcanvas-xl,.offcanvas-xxl{--bs-offcanvas-zindex:1045;--bs-offcanvas-width:400px;--bs-offcanvas-height:30vh;--bs-offcanvas-padding-x:1rem;--bs-offcanvas-padding-y:1rem;--bs-offcanvas-color:var(--bs-body-color);--bs-offcanvas-bg:var(--bs-body-bg);--bs-offcanvas-border-width:var(--bs-border-width);--bs-offcanvas-border-color:var(--bs-border-color-translucent);--bs-offcanvas-box-shadow:var(--bs-box-shadow-sm);--bs-offcanvas-transition:transform 0.3s ease-in-out;--bs-offcanvas-title-line-height:1.5}@media (max-width:575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:575.98px) and (prefers-reduced-motion:reduce){.offcanvas-sm{transition:none}}@media (max-width:575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.show:not(.hiding),.offcanvas-sm.showing{transform:none}.offcanvas-sm.hiding,.offcanvas-sm.show,.offcanvas-sm.showing{visibility:visible}}@media (min-width:576px){.offcanvas-sm{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:767.98px) and (prefers-reduced-motion:reduce){.offcanvas-md{transition:none}}@media (max-width:767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.show:not(.hiding),.offcanvas-md.showing{transform:none}.offcanvas-md.hiding,.offcanvas-md.show,.offcanvas-md.showing{visibility:visible}}@media (min-width:768px){.offcanvas-md{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:991.98px) and (prefers-reduced-motion:reduce){.offcanvas-lg{transition:none}}@media (max-width:991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.show:not(.hiding),.offcanvas-lg.showing{transform:none}.offcanvas-lg.hiding,.offcanvas-lg.show,.offcanvas-lg.showing{visibility:visible}}@media (min-width:992px){.offcanvas-lg{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1199.98px) and (prefers-reduced-motion:reduce){.offcanvas-xl{transition:none}}@media (max-width:1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.show:not(.hiding),.offcanvas-xl.showing{transform:none}.offcanvas-xl.hiding,.offcanvas-xl.show,.offcanvas-xl.showing{visibility:visible}}@media (min-width:1200px){.offcanvas-xl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width:1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width:1399.98px) and (prefers-reduced-motion:reduce){.offcanvas-xxl{transition:none}}@media (max-width:1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.show:not(.hiding),.offcanvas-xxl.showing{transform:none}.offcanvas-xxl.hiding,.offcanvas-xxl.show,.offcanvas-xxl.showing{visibility:visible}}@media (min-width:1400px){.offcanvas-xxl{--bs-offcanvas-height:auto;--bs-offcanvas-border-width:0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateX(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.show:not(.hiding),.offcanvas.showing{transform:none}.offcanvas.hiding,.offcanvas.show,.offcanvas.showing{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y))}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity,1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity,1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity,1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity,1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity,1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity,1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity,1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity,1))!important}.link-primary:focus,.link-primary:hover{color:RGBA(10,88,202,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity,1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity,1))!important}.link-secondary:focus,.link-secondary:hover{color:RGBA(86,94,100,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity,1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity,1))!important}.link-success:focus,.link-success:hover{color:RGBA(20,108,67,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity,1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity,1))!important}.link-info:focus,.link-info:hover{color:RGBA(61,213,243,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity,1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity,1))!important}.link-warning:focus,.link-warning:hover{color:RGBA(255,205,57,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity,1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity,1))!important}.link-danger:focus,.link-danger:hover{color:RGBA(176,42,55,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity,1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity,1))!important}.link-light:focus,.link-light:hover{color:RGBA(249,250,251,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity,1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity,1))!important}.link-dark:focus,.link-dark:hover{color:RGBA(26,30,33,var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity,1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-body-emphasis:focus,.link-body-emphasis:hover{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity,.75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity,0.75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x,0) var(--bs-focus-ring-y,0) var(--bs-focus-ring-blur,0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity,0.5));text-underline-offset:0.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion:reduce){.icon-link>.bi{transition:none}}.icon-link-hover:focus-visible>.bi,.icon-link-hover:hover>.bi{transform:var(--bs-icon-link-transform,translate3d(.25em,0,0))}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:75%}.ratio-16x9{--bs-aspect-ratio:56.25%}.ratio-21x9{--bs-aspect-ratio:42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption),.visually-hidden:not(caption){position:absolute!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color:rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color:rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color:rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color:rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color:rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color:rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color:rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color:rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity:1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity:1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity:1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity:1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity:1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity:1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity:1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity:1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity:1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity:1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity:0.1}.border-opacity-25{--bs-border-opacity:0.25}.border-opacity-50{--bs-border-opacity:0.5}.border-opacity-75{--bs-border-opacity:0.75}.border-opacity-100{--bs-border-opacity:1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-body-secondary{--bs-text-opacity:1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity:1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity:1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10{--bs-link-opacity:0.1}.link-opacity-10-hover:hover{--bs-link-opacity:0.1}.link-opacity-25{--bs-link-opacity:0.25}.link-opacity-25-hover:hover{--bs-link-opacity:0.25}.link-opacity-50{--bs-link-opacity:0.5}.link-opacity-50-hover:hover{--bs-link-opacity:0.5}.link-opacity-75{--bs-link-opacity:0.75}.link-opacity-75-hover:hover{--bs-link-opacity:0.75}.link-opacity-100{--bs-link-opacity:1}.link-opacity-100-hover:hover{--bs-link-opacity:1}.link-offset-1{text-underline-offset:0.125em!important}.link-offset-1-hover:hover{text-underline-offset:0.125em!important}.link-offset-2{text-underline-offset:0.25em!important}.link-offset-2-hover:hover{text-underline-offset:0.25em!important}.link-offset-3{text-underline-offset:0.375em!important}.link-offset-3-hover:hover{text-underline-offset:0.375em!important}.link-underline-primary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity:1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity,1))!important}.link-underline-opacity-0{--bs-link-underline-opacity:0}.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity:0}.link-underline-opacity-10{--bs-link-underline-opacity:0.1}.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity:0.1}.link-underline-opacity-25{--bs-link-underline-opacity:0.25}.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity:0.25}.link-underline-opacity-50{--bs-link-underline-opacity:0.5}.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity:0.5}.link-underline-opacity-75{--bs-link-underline-opacity:0.75}.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity:0.75}.link-underline-opacity-100{--bs-link-underline-opacity:1}.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity:1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:0.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:0.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/tests/_test_resources/sortable.js b/src/tests/_test_resources/sortable.js new file mode 100644 index 000000000..38b0fc627 --- /dev/null +++ b/src/tests/_test_resources/sortable.js @@ -0,0 +1,495 @@ +/* + SortTable + version 2 + 7th April 2007 + Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/ + + Instructions: + Download this file + Add to your HTML + Add class="sortable" to any table you'd like to make sortable + Click on the headers to sort + + Thanks to many, many people for contributions and suggestions. + Licenced as X11: http://www.kryogenix.org/code/browser/licence.html + This basically means: do what you want with it. +*/ + + +var stIsIE = /*@cc_on!@*/false; + +sorttable = { + init: function() { + // quit if this function has already been called + if (arguments.callee.done) return; + // flag this function so we don't do the same thing twice + arguments.callee.done = true; + // kill the timer + if (_timer) clearInterval(_timer); + + if (!document.createElement || !document.getElementsByTagName) return; + + sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/; + + forEach(document.getElementsByTagName('table'), function(table) { + if (table.className.search(/\bsortable\b/) != -1) { + sorttable.makeSortable(table); + } + }); + + }, + + makeSortable: function(table) { + if (table.getElementsByTagName('thead').length == 0) { + // table doesn't have a tHead. Since it should have, create one and + // put the first table row in it. + the = document.createElement('thead'); + the.appendChild(table.rows[0]); + table.insertBefore(the,table.firstChild); + } + // Safari doesn't support table.tHead, sigh + if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0]; + + if (table.tHead.rows.length != 1) return; // can't cope with two header rows + + // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as + // "total" rows, for example). This is B&R, since what you're supposed + // to do is put them in a tfoot. So, if there are sortbottom rows, + // for backwards compatibility, move them to tfoot (creating it if needed). + sortbottomrows = []; + for (var i=0; i5' : ' ▴'; + this.appendChild(sortrevind); + return; + } + if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) { + // if we're already sorted by this column in reverse, just + // re-reverse the table, which is quicker + sorttable.reverse(this.sorttable_tbody); + this.className = this.className.replace('sorttable_sorted_reverse', + 'sorttable_sorted'); + this.removeChild(document.getElementById('sorttable_sortrevind')); + sortfwdind = document.createElement('span'); + sortfwdind.id = "sorttable_sortfwdind"; + sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; + this.appendChild(sortfwdind); + return; + } + + // remove sorttable_sorted classes + theadrow = this.parentNode; + forEach(theadrow.childNodes, function(cell) { + if (cell.nodeType == 1) { // an element + cell.className = cell.className.replace('sorttable_sorted_reverse',''); + cell.className = cell.className.replace('sorttable_sorted',''); + } + }); + sortfwdind = document.getElementById('sorttable_sortfwdind'); + if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); } + sortrevind = document.getElementById('sorttable_sortrevind'); + if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); } + + this.className += ' sorttable_sorted'; + sortfwdind = document.createElement('span'); + sortfwdind.id = "sorttable_sortfwdind"; + sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; + this.appendChild(sortfwdind); + + // build an array to sort. This is a Schwartzian transform thing, + // i.e., we "decorate" each row with the actual sort key, + // sort based on the sort keys, and then put the rows back in order + // which is a lot faster because you only do getInnerText once per row + row_array = []; + col = this.sorttable_columnindex; + rows = this.sorttable_tbody.rows; + for (var j=0; j 12) { + // definitely dd/mm + return sorttable.sort_ddmm; + } else if (second > 12) { + return sorttable.sort_mmdd; + } else { + // looks like a date, but we can't tell which, so assume + // that it's dd/mm (English imperialism!) and keep looking + sortfn = sorttable.sort_ddmm; + } + } + } + } + return sortfn; + }, + + getInnerText: function(node) { + // gets the text we want to use for sorting for a cell. + // strips leading and trailing whitespace. + // this is *not* a generic getInnerText function; it's special to sorttable. + // for example, you can override the cell text with a customkey attribute. + // it also gets .value for fields. + + if (!node) return ""; + + hasInputs = (typeof node.getElementsByTagName == 'function') && + node.getElementsByTagName('input').length; + + if (node.getAttribute("sorttable_customkey") != null) { + return node.getAttribute("sorttable_customkey"); + } + else if (typeof node.textContent != 'undefined' && !hasInputs) { + return node.textContent.replace(/^\s+|\s+$/g, ''); + } + else if (typeof node.innerText != 'undefined' && !hasInputs) { + return node.innerText.replace(/^\s+|\s+$/g, ''); + } + else if (typeof node.text != 'undefined' && !hasInputs) { + return node.text.replace(/^\s+|\s+$/g, ''); + } + else { + switch (node.nodeType) { + case 3: + if (node.nodeName.toLowerCase() == 'input') { + return node.value.replace(/^\s+|\s+$/g, ''); + } + case 4: + return node.nodeValue.replace(/^\s+|\s+$/g, ''); + break; + case 1: + case 11: + var innerText = ''; + for (var i = 0; i < node.childNodes.length; i++) { + innerText += sorttable.getInnerText(node.childNodes[i]); + } + return innerText.replace(/^\s+|\s+$/g, ''); + break; + default: + return ''; + } + } + }, + + reverse: function(tbody) { + // reverse the rows in a tbody + newrows = []; + for (var i=0; i=0; i--) { + tbody.appendChild(newrows[i]); + } + delete newrows; + }, + + /* sort functions + each sort function takes two parameters, a and b + you are comparing a[0] and b[0] */ + sort_numeric: function(a,b) { + aa = parseFloat(a[0].replace(/[^0-9.-]/g,'')); + if (isNaN(aa)) aa = 0; + bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); + if (isNaN(bb)) bb = 0; + return aa-bb; + }, + sort_alpha: function(a,b) { + if (a[0]==b[0]) return 0; + if (a[0] 0 ) { + var q = list[i]; list[i] = list[i+1]; list[i+1] = q; + swap = true; + } + } // for + t--; + + if (!swap) break; + + for(var i = t; i > b; --i) { + if ( comp_func(list[i], list[i-1]) < 0 ) { + var q = list[i]; list[i] = list[i-1]; list[i-1] = q; + swap = true; + } + } // for + b++; + + } // while(swap) + } +} + +/* ****************************************************************** + Supporting functions: bundled here to avoid depending on a library + ****************************************************************** */ + +// Dean Edwards/Matthias Miller/John Resig + +/* for Mozilla/Opera9 */ +if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", sorttable.init, false); +} + +/* for Internet Explorer */ +/*@cc_on @*/ +/*@if (@_win32) + document.write(" + + + + + + + + + + + + """ + def gen_html_report(): - ofile = open(pjoin("_output","tout_img_report.html"),"w") - ofile.write("
CaseStatusDetailsCurrentBaselineDiff
\n") + gen_html_resources() + ofile = open(pjoin("_output","index.html"),"w") + ofile.write(gen_report_header()) for res in find_img_compare_results(): v = json.load(open(res)) ofile.write("\n") + # case name ofile.write("\n") + # status + ofile.write("\n") + # details + # put all info in details + ofile.write("\n") # details # put all info in details From f089daf486045dee452d7c7232369ef0ec2d3920 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Wed, 20 Dec 2023 12:39:57 -0800 Subject: [PATCH 08/12] wip progress --- src/tests/ascent/t_ascent_data_binning.cpp | 1335 ++++++++++------- src/tests/ascent/t_ascent_mpi_expressions.cpp | 27 +- 2 files changed, 808 insertions(+), 554 deletions(-) diff --git a/src/tests/ascent/t_ascent_data_binning.cpp b/src/tests/ascent/t_ascent_data_binning.cpp index 0579fa588..e47fa9898 100644 --- a/src/tests/ascent/t_ascent_data_binning.cpp +++ b/src/tests/ascent/t_ascent_data_binning.cpp @@ -59,7 +59,8 @@ void generate_2d_basic_test_mesh(const std::string &mtype, Node verify_info; conduit::blueprint::mesh::examples::basic(mtype, nverts_x, nverts_y, 0, single_domain); - int num_eles = (nverts_x -1) * (nverts_y -1); + int num_verts = nverts_x * nverts_y; + int num_eles = (nverts_x -1) * (nverts_y -1); // add an extra field single_domain["fields/ones/association"] = "element"; @@ -69,6 +70,14 @@ void generate_2d_basic_test_mesh(const std::string &mtype, float64_array ones_vals = single_domain["fields/ones/values"].value(); ones_vals.fill(1.0); + // add an extra field + single_domain["fields/ones_verts/association"] = "vertex"; + single_domain["fields/ones_verts/topology"] = single_domain["topologies"][0].name(); + single_domain["fields/ones_verts/values"].set(DataType::float64(verts)); + + float64_array ones_verts_vals = single_domain["fields/ones_verts/values"].value(); + ones_verts_vals.fill(1.0); + // ascent normally adds this but we are doing an end around single_domain["state/cycle"] = 100; single_domain["state/time"] = 1.3; @@ -248,7 +257,6 @@ void test_binning_basic_mesh_2d_quads(const std::string &tag,Node &data) } - // ----------------------------------------------------------------- // tests 2d meshes tri mesh cases void test_binning_basic_mesh_2d_tris(const std::string &tag, @@ -293,7 +301,51 @@ void test_binning_basic_mesh_2d_tris(const std::string &tag, print_result(tag + "_single_avg",expr,res); } - + +// ----------------------------------------------------------------- +// tests 3d meshes tet mesh cases +void test_binning_basic_mesh_3d_tets(const std::string &tag, + Node &data) +{ + std::cout << " --------------------------- " << std::endl + << tag << std::endl + << " --------------------------- " << std::endl; + + conduit::Node res; + std::string expr; + + runtime::expressions::register_builtin(); + runtime::expressions::ExpressionEval eval(&data); + + // single bin, should be the same as the sum of input field + // -10 -- 10 : = 0 + 1 + 2 + 3 + 4 + 6 + 6 + 7 + expr = "binning('field', 'sum', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"28.0"); + print_result(tag + "_single_sum",expr,res); + + // single bin, should be the same as the min of input field + // -10 -- 10 : = min (0 1 2 3 4 5 6 7) + expr = "binning('field', 'min', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"0.0"); + print_result(tag + "_single_min",expr,res); + + // single bin, should be the same as the max of input field + // -10 -- 10 : = max (0 1 2 3 4 5 6 7) + expr = "binning('field', 'max', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"7.0"); + print_result(tag + "_single_max",expr,res); + + // single bin, should be the same as the avg of input field + // -10 -- 10 : = (0 + 1 + 2 + 3 ) / 4.0 + expr = "binning('field', 'avg', [axis('x', [-10, 10])])"; + res = eval.evaluate(expr); + EXPECT_EQ(res["attrs/value/value"].to_yaml(),"3.5"); + print_result(tag + "_single_avg",expr,res); + +} //----------------------------------------------------------------------------- @@ -317,9 +369,10 @@ TEST(ascent_binning, binning_basic_meshes_2d) // extents of basic are -10, 10 // with 3x3 nodes, there are 4 elements // - + // "uniform", "rectilinear", "structured","tris", "quads", "polygons" + Node data; generate_2d_basic_test_mesh("uniform", 3, 3,data); test_binning_basic_mesh_2d_quads("2d_uniform_3_3_0",data); @@ -374,7 +427,7 @@ void generate_3d_basic_test_mesh(const std::string &mtype, single_domain["state/time"] = 1.3; single_domain["state/domain_id"] = 0; blueprint::mesh::to_multi_domain(single_domain, multi_domain); - + data.set(multi_domain); std::string ofname = conduit_fmt::format("tout_data_binning_input_mesh_basic_3d_{}_{}_{}_{}.yaml", @@ -441,7 +494,7 @@ void test_binning_basic_mesh_3d_quads(const std::string &tag, res = eval.evaluate(expr); EXPECT_EQ(res["attrs/value/value"].to_yaml(),"2.29128784747792"); print_result(tag + "_single_std",expr,res); - + // single bin, var // ( (0 - 3.5)^2 + (1 - 3.5)^2 + (2 - 3.5)^2 // (3 - 3.5)^2 + (4 - 3.5)^2 + (5 - 3.5)^2 @@ -450,7 +503,7 @@ void test_binning_basic_mesh_3d_quads(const std::string &tag, res = eval.evaluate(expr); EXPECT_EQ(res["attrs/value/value"].to_yaml(),"5.25"); print_result(tag + "_single_var",expr,res); - + // single bin, rms // sqrt( ( 0^2 + 1^2 + 2^2 // ( 3^2 + 4^2 + 5^2 @@ -631,9 +684,8 @@ TEST(ascent_binning, binning_basic_meshes_3d) generate_3d_basic_test_mesh("hexs", 3, 3, 3,data); test_binning_basic_mesh_3d_quads("3d_hexs_3_3_3",data); - // // TODO NOT SUPPORTED - // generate_3d_basic_test_mesh("tets", 3, 3, 3,data); - // test_binning_basic_mesh_3d_quads("3d_tets_3_3_3",data); + generate_3d_basic_test_mesh("tets", 3, 3, 3,data); + test_binning_basic_mesh_3d_tets("3d_tets_3_3_3",data); // // TODO NOT SUPPORTED // generate_3d_basic_test_mesh("polyhedra", 3, 3, 3,data); @@ -643,548 +695,727 @@ TEST(ascent_binning, binning_basic_meshes_3d) } -// -// TEST(ascent_binning, binning_errors) -// { -// return; -// // the vtkm runtime is currently our only rendering runtime -// Node n; -// ascent::about(n); -// // only run this test if ascent was built with vtkm support -// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") -// { -// ASCENT_INFO("Ascent support disabled, skipping test"); -// return; -// } -// -// // -// // Create an example mesh. -// // -// Node data, verify_info; -// conduit::blueprint::mesh::examples::braid("hexs", -// EXAMPLE_MESH_SIDE_DIM, -// EXAMPLE_MESH_SIDE_DIM, -// EXAMPLE_MESH_SIDE_DIM, -// data); -// // ascent normally adds this but we are doing an end around -// data["state/domain_id"] = 0; -// Node multi_dom; -// blueprint::mesh::to_multi_domain(data, multi_dom); -// -// runtime::expressions::register_builtin(); -// runtime::expressions::ExpressionEval eval(&multi_dom); -// -// conduit::Node res; -// std::string expr; -// -// bool threw = false; -// try -// { -// expr = "binning('', 'avg', [axis('x'), axis('y')])"; -// res = eval.evaluate(expr); -// } -// catch(...) -// { -// threw = true; -// } -// EXPECT_EQ(threw, true); -// -// threw = false; -// try -// { -// expr = "binning('braid', 'sum', [axis('x'), axis('vel')])"; -// res = eval.evaluate(expr); -// } -// catch(...) -// { -// threw = true; -// } -// EXPECT_EQ(threw, true); -// -// threw = false; -// try -// { -// expr = "binning('vel', 'sum', [axis('x'), axis('y')])"; -// res = eval.evaluate(expr); -// } -// catch(...) -// { -// threw = true; -// } -// EXPECT_EQ(threw, true); -// -// threw = false; -// try -// { -// expr = "binning('braid', 'sum', [axis('x', bins=[1,2], num_bins=1), " -// "axis('y')])"; -// res = eval.evaluate(expr); -// } -// catch(...) -// { -// threw = true; -// } -// EXPECT_EQ(threw, true); -// -// threw = false; -// try -// { -// expr = "binning('braid', 'sum', [axis('x', bins=[1]), axis('y')])"; -// res = eval.evaluate(expr); -// } -// catch(...) -// { -// threw = true; -// } -// EXPECT_EQ(threw, true); -// } -// -// //----------------------------------------------------------------------------- -// TEST(ascent_binning, filter_braid_binning_mesh) -// { -// // the vtkm runtime is currently our only rendering runtime -// Node n; -// ascent::about(n); -// // only run this test if ascent was built with vtkm support -// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") -// { -// ASCENT_INFO("Ascent support disabled, skipping test"); -// return; -// } -// -// string output_path = prepare_output_dir(); -// std::string output_file = -// conduit::utils::join_file_path(output_path, "tout_binning_filter"); -// -// remove_test_image(output_file); -// // -// // Create an example mesh. -// // -// Node data, verify_info; -// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); -// -// conduit::Node pipelines; -// // pipeline 1 -// pipelines["pl1/f1/type"] = "binning"; -// // filter knobs -// conduit::Node ¶ms = pipelines["pl1/f1/params"]; -// params["reduction_op"] = "sum"; -// params["reduction_field"] = "braid"; -// params["output_field"] = "binning"; -// // paint the field onto the original mesh -// params["output_type"] = "mesh"; -// -// conduit::Node &axis0 = params["axes"].append(); -// axis0["field"] = "x"; -// axis0["num_bins"] = 10; -// axis0["min_val"] = -10.0; -// axis0["max_val"] = 10.0; -// axis0["clamp"] = 1; -// -// conduit::Node &axis1 = params["axes"].append(); -// axis1["field"] = "y"; -// axis1["num_bins"] = 10; -// axis1["clamp"] = 0; -// -// conduit::Node &axis2 = params["axes"].append(); -// axis2["field"] = "z"; -// axis2["num_bins"] = 10; -// axis2["clamp"] = 10; -// -// conduit::Node scenes; -// scenes["s1/plots/p1/type"] = "pseudocolor"; -// scenes["s1/plots/p1/field"] = "binning"; -// scenes["s1/plots/p1/pipeline"] = "pl1"; -// scenes["s1/image_prefix"] = output_file; -// -// conduit::Node actions; -// // add the pipeline -// conduit::Node &add_pipelines= actions.append(); -// add_pipelines["action"] = "add_pipelines"; -// add_pipelines["pipelines"] = pipelines; -// // add the scenes -// conduit::Node &add_scenes= actions.append(); -// add_scenes["action"] = "add_scenes"; -// add_scenes["scenes"] = scenes; -// -// // -// // Run Ascent -// // -// -// Ascent ascent; -// ascent.open(); -// ascent.publish(data); -// ascent.execute(actions); -// ascent.close(); -// -// EXPECT_TRUE(check_test_image(output_file, 0.1)); -// } -// -// //----------------------------------------------------------------------------- -// TEST(ascent_binning, filter_braid_binning_bins) -// { -// // the vtkm runtime is currently our only rendering runtime -// Node n; -// ascent::about(n); -// // only run this test if ascent was built with vtkm support -// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") -// { -// ASCENT_INFO("Ascent support disabled, skipping test"); -// return; -// } -// -// string output_path = prepare_output_dir(); -// std::string output_file = -// conduit::utils::join_file_path(output_path, "tout_binning_filter_bins"); -// -// remove_test_image(output_file); -// // -// // Create an example mesh. -// // -// Node data, verify_info; -// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); -// -// conduit::Node pipelines; -// // pipeline 1 -// pipelines["pl1/f1/type"] = "binning"; -// // filter knobs -// conduit::Node ¶ms = pipelines["pl1/f1/params"]; -// params["reduction_op"] = "sum"; -// params["reduction_field"] = "braid"; -// params["output_field"] = "binning"; -// // reduced dataset of only the bins -// params["output_type"] = "bins"; -// -// conduit::Node &axis0 = params["axes"].append(); -// axis0["field"] = "x"; -// axis0["num_bins"] = 10; -// axis0["min_val"] = -10.0; -// axis0["max_val"] = 10.0; -// axis0["clamp"] = 1; -// -// conduit::Node &axis1 = params["axes"].append(); -// axis1["field"] = "y"; -// axis1["num_bins"] = 10; -// axis1["clamp"] = 0; -// -// conduit::Node &axis2 = params["axes"].append(); -// axis2["field"] = "z"; -// axis2["num_bins"] = 10; -// axis2["clamp"] = 10; -// -// conduit::Node scenes; -// scenes["s1/plots/p1/type"] = "pseudocolor"; -// scenes["s1/plots/p1/field"] = "binning"; -// scenes["s1/plots/p1/pipeline"] = "pl1"; -// scenes["s1/image_prefix"] = output_file; -// -// conduit::Node actions; -// // add the pipeline -// conduit::Node &add_pipelines= actions.append(); -// add_pipelines["action"] = "add_pipelines"; -// add_pipelines["pipelines"] = pipelines; -// // add the scenes -// conduit::Node &add_scenes= actions.append(); -// add_scenes["action"] = "add_scenes"; -// add_scenes["scenes"] = scenes; -// -// // -// // Run Ascent -// // -// -// Ascent ascent; -// ascent.open(); -// ascent.publish(data); -// ascent.execute(actions); -// ascent.close(); -// -// EXPECT_TRUE(check_test_image(output_file, 0.1)); -// std::string msg = "An example of data binning, binning spatially and summing a field."; -// ASCENT_ACTIONS_DUMP(actions,output_file,msg); -// } -// -// -// //----------------------------------------------------------------------------- -// // this is here b/c there was a bug with using int64 for num_bins -// // that caused a conduit access error b/c we expected int32 only -// //----------------------------------------------------------------------------- -// TEST(ascent_binning, filter_braid_binning_bins_int64_params) -// { -// // the vtkm runtime is currently our only rendering runtime -// Node n; -// ascent::about(n); -// // only run this test if ascent was built with vtkm support -// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") -// { -// ASCENT_INFO("Ascent support disabled, skipping test"); -// return; -// } -// -// string output_path = prepare_output_dir(); -// std::string output_file = -// conduit::utils::join_file_path(output_path, "tout_binning_filter_bins_int64"); -// -// remove_test_image(output_file); -// // -// // Create an example mesh. -// // -// Node data, verify_info; -// conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); -// -// conduit::Node pipelines; -// // pipeline 1 -// pipelines["pl1/f1/type"] = "binning"; -// // filter knobs -// conduit::Node ¶ms = pipelines["pl1/f1/params"]; -// params["reduction_op"] = "sum"; -// params["reduction_field"] = "braid"; -// params["output_field"] = "binning"; -// // reduced dataset of only the bins -// params["output_type"] = "bins"; -// -// conduit::Node &axis0 = params["axes"].append(); -// axis0["field"] = "x"; -// axis0["num_bins"] = (int64)10; -// axis0["min_val"] = -10.0; -// axis0["max_val"] = 10.0; -// axis0["clamp"] = (int64)1; -// -// conduit::Node &axis1 = params["axes"].append(); -// axis1["field"] = "y"; -// axis1["num_bins"] = (int64)10; -// axis1["clamp"] = (int64)0; -// -// conduit::Node &axis2 = params["axes"].append(); -// axis2["field"] = "z"; -// axis2["num_bins"] = (int64)10; -// axis2["clamp"] = 1; // <--? -// -// conduit::Node scenes; -// scenes["s1/plots/p1/type"] = "pseudocolor"; -// scenes["s1/plots/p1/field"] = "binning"; -// scenes["s1/plots/p1/pipeline"] = "pl1"; -// scenes["s1/image_prefix"] = output_file; -// -// conduit::Node actions; -// // add the pipeline -// conduit::Node &add_pipelines= actions.append(); -// add_pipelines["action"] = "add_pipelines"; -// add_pipelines["pipelines"] = pipelines; -// // add the scenes -// conduit::Node &add_scenes= actions.append(); -// add_scenes["action"] = "add_scenes"; -// add_scenes["scenes"] = scenes; -// -// // -// // Run Ascent -// // -// -// Ascent ascent; -// ascent.open(); -// ascent.publish(data); -// ascent.execute(actions); -// ascent.close(); -// -// EXPECT_TRUE(check_test_image(output_file, 0.1)); -// } -// -// -// //----------------------------------------------------------------------------- -// TEST(ascent_binning, expr_braid_non_spatial_bins) -// { -// // -// // Create an example mesh. -// // -// Node data, verify_info; -// conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); -// -// conduit::Node pipelines; -// -// // braid is vertex-assoced -// // radial is element-assoced -// -// // recenter braid to be element-assoced -// // so we can same assoc for binning -// -// -// // pipeline 1 -// pipelines["pl1/f1/type"] = "recenter"; -// pipelines["pl1/f1/params/field"] = "braid"; -// pipelines["pl1/f1/params/association"] = "element"; -// -// -// conduit::Node actions; -// // add the pipeline -// conduit::Node &add_pipelines= actions.append(); -// add_pipelines["action"] = "add_pipelines"; -// add_pipelines["pipelines"] = pipelines; -// -// Node &add_act = actions.append(); -// add_act["action"] = "add_queries"; -// -// // declare a queries to ask some questions -// Node &queries = add_act["queries"]; -// -// // Create a 2D binning projected onto the x-y plane -// queries["q2/params/expression"] = "binning('radial','max', [axis('radial',num_bins=10), axis( 'braid' ,num_bins=10)])"; -// queries["q2/params/name"] = "my_binning"; -// queries["q2/pipeline"] = "pl1"; -// -// // print our full actions tree -// std::cout << actions.to_yaml() << std::endl; -// -// // -// // Run Ascent -// // -// -// Ascent ascent; -// ascent.open(); -// ascent.publish(data); -// ascent.execute(actions); -// Node ascent_info; -// ascent.info(ascent_info); -// ascent_info["expressions/my_binning"].print(); -// -// ascent.close(); -// -// } -// -// //----------------------------------------------------------------------------- -// TEST(ascent_binning, binning_recti_mesh) -// { -// // the vtkm runtime is currently our only rendering runtime -// Node n; -// ascent::about(n); -// // only run this test if ascent was built with vtkm support -// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") -// { -// ASCENT_INFO("Ascent vtkm support disabled, skipping test"); -// return; -// } -// -// int par_rank = 0; -// int par_size = 1; -// -// // Create the data. -// // -// Node data, verify_info; -// int dims = 3; -// // create_3d_example_dataset(data,dims,par_rank,par_size); -// -// // int nx = size / par_size; -// // int ny = size; -// // int nz = size; -// // -// // float64 dx = 1; -// // float64 dy = 1; -// // float64 dz = 1; -// // -// // index_t npts = (nx+1)*(ny+1)*(nz+1); -// // index_t nele = nx*ny*nz; -// -// -// data["state/time"] = (float64)3.1415; -// data["state/domain_id"] = (uint64) par_rank; -// data["state/cycle"] = (uint64) 100; -// data["coordsets/coords/type"] = "rectilinear"; -// -// data["coordsets/coords/values/x"].set({0.0,1.0,2.0,3.0}); -// data["coordsets/coords/values/y"].set({0.0,1.0,2.0,3.0}); -// // data["coordsets/coords/values/z"].set({0.0,1.0,2.0,3.0}); -// -// data["topologies/mesh/type"] = "rectilinear"; -// data["topologies/mesh/coordset"] = "coords"; -// -// data["fields/ones/association"] = "element"; -// data["fields/ones/topology"] = "mesh"; -// data["fields/ones/values"].set(DataType::float64(9)); -// // data["fields/ones/values"].set(DataType::float64(3*3*3)); -// -// float64_array vals = data["fields/ones/values"].value(); -// vals.fill(1.0); -// -// Node multi_dom; -// blueprint::mesh::to_multi_domain(data, multi_dom); -// -// // TODO: OUTPUT DIR CYRUS ... -// conduit::relay::io::blueprint::save_mesh(data,"tout_data_binning_3d_recti_example","hdf5"); -// -// conduit::blueprint::mesh::verify(data,verify_info); -// -// string output_path = prepare_output_dir(); -// string output_file = conduit::utils::join_file_path(output_path,"tout_binning_recti_mesh"); -// -// // remove old images before rendering -// remove_test_image(output_file); -// -// conduit::Node actions; -// -// // add the pipeline -// conduit::Node &add_pipelines= actions.append(); -// add_pipelines["action"] = "add_pipelines"; -// conduit::Node &pipelines = add_pipelines["pipelines"]; -// -// // pipeline 1 -// pipelines["pl1/f1/type"] = "binning"; -// // filter knobs -// conduit::Node ¶ms = pipelines["pl1/f1/params"]; -// params["reduction_op"] = "sum"; -// params["var"] = "ones"; -// params["output_field"] = "binning"; -// // reduced dataset of only the bins -// params["output_type"] = "bins"; -// -// conduit::Node &axis0 = params["axes"].append(); -// axis0["var"] = "x"; -// axis0["num_bins"] = 3; -// // axis0["min_val"] = 1.0; -// // axis0["max_val"] = 3.0; -// // axis0["clamp"] = 1; -// -// conduit::Node &axis1 = params["axes"].append(); -// axis1["var"] = "y"; -// axis1["num_bins"] = 3; -// // axis1["clamp"] = 0; -// -// // conduit::Node &axis2 = params["axes"].append(); -// // axis2["var"] = "z"; -// // axis2["num_bins"] = 3; -// // axis2["min_val"] = 1.0; -// // axis2["max_val"] = 3.0; -// // axis2["clamp"] = 0; -// -// // add the scenes -// conduit::Node &add_scenes= actions.append(); -// add_scenes["action"] = "add_scenes"; -// conduit::Node &scenes = add_scenes["scenes"]; -// -// scenes["s1/plots/p1/type"] = "pseudocolor"; -// scenes["s1/plots/p1/field"] = "binning"; -// scenes["s1/plots/p1/pipeline"] = "pl1"; -// scenes["s1/image_prefix"] = output_file; -// -// // add extract -// conduit::Node &add_extracts= actions.append(); -// add_extracts["action"] = "add_extracts"; -// conduit::Node &extracts = add_extracts["extracts"]; -// -// extracts["e1/type"] = "relay"; -// extracts["e1/pipeline"] = "pl1"; -// extracts["e1/params/path"] = conduit::utils::join_file_path(output_path,"tout_recti_bin_result"); -// extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; -// -// // -// // Run Ascent -// // -// -// Ascent ascent; -// ascent.open(); -// ascent.publish(data); -// ascent.execute(actions); -// ascent.close(); -// -// check_test_image(output_file, 0.1); -// } + +TEST(ascent_binning, binning_errors) +{ + return; + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent support disabled, skipping test"); + return; + } + + // + // Create an example mesh. + // + Node data, verify_info; + conduit::blueprint::mesh::examples::braid("hexs", + EXAMPLE_MESH_SIDE_DIM, + EXAMPLE_MESH_SIDE_DIM, + EXAMPLE_MESH_SIDE_DIM, + data); + // ascent normally adds this but we are doing an end around + data["state/domain_id"] = 0; + Node multi_dom; + blueprint::mesh::to_multi_domain(data, multi_dom); + + runtime::expressions::register_builtin(); + runtime::expressions::ExpressionEval eval(&multi_dom); + + conduit::Node res; + std::string expr; + + bool threw = false; + try + { + expr = "binning('', 'avg', [axis('x'), axis('y')])"; + res = eval.evaluate(expr); + } + catch(...) + { + threw = true; + } + EXPECT_EQ(threw, true); + + threw = false; + try + { + expr = "binning('braid', 'sum', [axis('x'), axis('vel')])"; + res = eval.evaluate(expr); + } + catch(...) + { + threw = true; + } + EXPECT_EQ(threw, true); + + threw = false; + try + { + expr = "binning('vel', 'sum', [axis('x'), axis('y')])"; + res = eval.evaluate(expr); + } + catch(...) + { + threw = true; + } + EXPECT_EQ(threw, true); + + threw = false; + try + { + expr = "binning('braid', 'sum', [axis('x', bins=[1,2], num_bins=1), " + "axis('y')])"; + res = eval.evaluate(expr); + } + catch(...) + { + threw = true; + } + EXPECT_EQ(threw, true); + + threw = false; + try + { + expr = "binning('braid', 'sum', [axis('x', bins=[1]), axis('y')])"; + res = eval.evaluate(expr); + } + catch(...) + { + threw = true; + } + EXPECT_EQ(threw, true); +} + +//----------------------------------------------------------------------------- +TEST(ascent_binning, filter_braid_binning_mesh) +{ + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent support disabled, skipping test"); + return; + } + + string output_path = prepare_output_dir(); + std::string output_file = + conduit::utils::join_file_path(output_path, "tout_binning_filter"); + + remove_test_image(output_file); + // + // Create an example mesh. + // + Node data, verify_info; + conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); + + conduit::Node pipelines; + // pipeline 1 + pipelines["pl1/f1/type"] = "binning"; + // filter knobs + conduit::Node ¶ms = pipelines["pl1/f1/params"]; + params["reduction_op"] = "sum"; + params["reduction_field"] = "braid"; + params["output_field"] = "binning"; + // paint the field onto the original mesh + params["output_type"] = "mesh"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["field"] = "x"; + axis0["num_bins"] = 10; + axis0["min_val"] = -10.0; + axis0["max_val"] = 10.0; + axis0["clamp"] = 1; + + conduit::Node &axis1 = params["axes"].append(); + axis1["field"] = "y"; + axis1["num_bins"] = 10; + axis1["clamp"] = 0; + + conduit::Node &axis2 = params["axes"].append(); + axis2["field"] = "z"; + axis2["num_bins"] = 10; + axis2["clamp"] = 10; + + conduit::Node scenes; + scenes["s1/plots/p1/type"] = "pseudocolor"; + scenes["s1/plots/p1/field"] = "binning"; + scenes["s1/plots/p1/pipeline"] = "pl1"; + scenes["s1/image_prefix"] = output_file; + + conduit::Node actions; + // add the pipeline + conduit::Node &add_pipelines= actions.append(); + add_pipelines["action"] = "add_pipelines"; + add_pipelines["pipelines"] = pipelines; + // add the scenes + conduit::Node &add_scenes= actions.append(); + add_scenes["action"] = "add_scenes"; + add_scenes["scenes"] = scenes; + + // + // Run Ascent + // + + Ascent ascent; + ascent.open(); + ascent.publish(data); + ascent.execute(actions); + ascent.close(); + + EXPECT_TRUE(check_test_image(output_file, 0.1)); +} + +//----------------------------------------------------------------------------- +TEST(ascent_binning, filter_braid_binning_bins) +{ + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent support disabled, skipping test"); + return; + } + + string output_path = prepare_output_dir(); + std::string output_file = + conduit::utils::join_file_path(output_path, "tout_binning_filter_bins"); + + remove_test_image(output_file); + // + // Create an example mesh. + // + Node data, verify_info; + conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); + + conduit::Node pipelines; + // pipeline 1 + pipelines["pl1/f1/type"] = "binning"; + // filter knobs + conduit::Node ¶ms = pipelines["pl1/f1/params"]; + params["reduction_op"] = "sum"; + params["reduction_field"] = "braid"; + params["output_field"] = "binning"; + // reduced dataset of only the bins + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["field"] = "x"; + axis0["num_bins"] = 10; + axis0["min_val"] = -10.0; + axis0["max_val"] = 10.0; + axis0["clamp"] = 1; + + conduit::Node &axis1 = params["axes"].append(); + axis1["field"] = "y"; + axis1["num_bins"] = 10; + axis1["clamp"] = 0; + + conduit::Node &axis2 = params["axes"].append(); + axis2["field"] = "z"; + axis2["num_bins"] = 10; + axis2["clamp"] = 10; + + conduit::Node scenes; + scenes["s1/plots/p1/type"] = "pseudocolor"; + scenes["s1/plots/p1/field"] = "binning"; + scenes["s1/plots/p1/pipeline"] = "pl1"; + scenes["s1/image_prefix"] = output_file; + + conduit::Node actions; + // add the pipeline + conduit::Node &add_pipelines= actions.append(); + add_pipelines["action"] = "add_pipelines"; + add_pipelines["pipelines"] = pipelines; + // add the scenes + conduit::Node &add_scenes= actions.append(); + add_scenes["action"] = "add_scenes"; + add_scenes["scenes"] = scenes; + + // + // Run Ascent + // + + Ascent ascent; + ascent.open(); + ascent.publish(data); + ascent.execute(actions); + ascent.close(); + + EXPECT_TRUE(check_test_image(output_file, 0.1)); + std::string msg = "An example of data binning, binning spatially and summing a field."; + ASCENT_ACTIONS_DUMP(actions,output_file,msg); +} + + +//----------------------------------------------------------------------------- +// this is here b/c there was a bug with using int64 for num_bins +// that caused a conduit access error b/c we expected int32 only +//----------------------------------------------------------------------------- +TEST(ascent_binning, filter_braid_binning_bins_int64_params) +{ + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent support disabled, skipping test"); + return; + } + + string output_path = prepare_output_dir(); + std::string output_file = + conduit::utils::join_file_path(output_path, "tout_binning_filter_bins_int64"); + + remove_test_image(output_file); + // + // Create an example mesh. + // + Node data, verify_info; + conduit::blueprint::mesh::examples::braid("hexs", 20, 20, 20, data); + + conduit::Node pipelines; + // pipeline 1 + pipelines["pl1/f1/type"] = "binning"; + // filter knobs + conduit::Node ¶ms = pipelines["pl1/f1/params"]; + params["reduction_op"] = "sum"; + params["reduction_field"] = "braid"; + params["output_field"] = "binning"; + // reduced dataset of only the bins + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["field"] = "x"; + axis0["num_bins"] = (int64)10; + axis0["min_val"] = -10.0; + axis0["max_val"] = 10.0; + axis0["clamp"] = (int64)1; + + conduit::Node &axis1 = params["axes"].append(); + axis1["field"] = "y"; + axis1["num_bins"] = (int64)10; + axis1["clamp"] = (int64)0; + + conduit::Node &axis2 = params["axes"].append(); + axis2["field"] = "z"; + axis2["num_bins"] = (int64)10; + axis2["clamp"] = 1; // <--? + + conduit::Node scenes; + scenes["s1/plots/p1/type"] = "pseudocolor"; + scenes["s1/plots/p1/field"] = "binning"; + scenes["s1/plots/p1/pipeline"] = "pl1"; + scenes["s1/image_prefix"] = output_file; + + conduit::Node actions; + // add the pipeline + conduit::Node &add_pipelines= actions.append(); + add_pipelines["action"] = "add_pipelines"; + add_pipelines["pipelines"] = pipelines; + // add the scenes + conduit::Node &add_scenes= actions.append(); + add_scenes["action"] = "add_scenes"; + add_scenes["scenes"] = scenes; + + // + // Run Ascent + // + + Ascent ascent; + ascent.open(); + ascent.publish(data); + ascent.execute(actions); + ascent.close(); + + EXPECT_TRUE(check_test_image(output_file, 0.1)); +} + + +//----------------------------------------------------------------------------- +TEST(ascent_binning, expr_braid_non_spatial_bins) +{ + // + // Create an example mesh. + // + Node data, verify_info; + conduit::blueprint::mesh::examples::braid("hexs", 50, 50, 50, data); + + conduit::Node pipelines; + + // braid is vertex-assoced + // radial is element-assoced + + // recenter braid to be element-assoced + // so we can same assoc for binning + + + // pipeline 1 + pipelines["pl1/f1/type"] = "recenter"; + pipelines["pl1/f1/params/field"] = "braid"; + pipelines["pl1/f1/params/association"] = "element"; + + + conduit::Node actions; + // add the pipeline + conduit::Node &add_pipelines= actions.append(); + add_pipelines["action"] = "add_pipelines"; + add_pipelines["pipelines"] = pipelines; + + Node &add_act = actions.append(); + add_act["action"] = "add_queries"; + + // declare a queries to ask some questions + Node &queries = add_act["queries"]; + + // Create a 2D binning projected onto the x-y plane + queries["q2/params/expression"] = "binning('radial','max', [axis('radial',num_bins=10), axis( 'braid' ,num_bins=10)])"; + queries["q2/params/name"] = "my_binning"; + queries["q2/pipeline"] = "pl1"; + + // print our full actions tree + std::cout << actions.to_yaml() << std::endl; + + // + // Run Ascent + // + + Ascent ascent; + ascent.open(); + ascent.publish(data); + ascent.execute(actions); + Node ascent_info; + ascent.info(ascent_info); + ascent_info["expressions/my_binning"].print(); + + ascent.close(); + +} + +//----------------------------------------------------------------------------- +void test_binning_pipline_filter(const std::string &tag, + Node &data, + const Node &binning_filter_def) +{ + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent vtkm support disabled, skipping test"); + return; + } + + string output_path = prepare_output_dir(); + string output_file = conduit::utils::join_file_path(output_path,"tout_" + tag + "_result_render"); + + // remove old images before rendering + remove_test_image(output_file); + + conduit::Node actions; + + // add the pipeline + conduit::Node &add_pipelines= actions.append(); + add_pipelines["action"] = "add_pipelines"; + conduit::Node &pipelines = add_pipelines["pipelines"]; + + // pipeline 1 + pipelines["pl1/f1"] = binning_filter_def; + + conduit::Node &add_scenes= actions.append(); + add_scenes["action"] = "add_scenes"; + conduit::Node &scenes = add_scenes["scenes"]; + scenes["s1/plots/p1/type"] = "pseudocolor"; + scenes["s1/plots/p1/field"] = "binning"; + scenes["s1/plots/p1/pipeline"] = "pl1"; + scenes["s1/plots/p2/type"] = "mesh"; + scenes["s1/plots/p2/pipeline"] = "pl1"; + + + // scenes["s1/renders/r1/image_name"] = output_file; + scenes["s1/image_prefix"] = output_file; + + // add extract + conduit::Node &add_extracts = actions.append(); + add_extracts["action"] = "add_extracts"; + conduit::Node &extracts = add_extracts["extracts"]; + + extracts["e1/type"] = "relay"; + extracts["e1/pipeline"] = "pl1"; + extracts["e1/params/path"] = conduit::utils::join_file_path(output_path, + "tout_" + tag + "_result_extract"); + extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; + + actions.print(); + + // + // Run Ascent + // + Ascent ascent; + ascent.open(); + ascent.publish(data); + ascent.execute(actions); + ascent.close(); + + EXPECT_TRUE(check_test_image(output_file, 0.1)); +} + +//----------------------------------------------------------------------------- +TEST(ascent_binning, binning_render_basic_mesh_cases) +{ + // the vtkm runtime is currently our only rendering runtime + Node n; + ascent::about(n); + // only run this test if ascent was built with vtkm support + if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") + { + ASCENT_INFO("Ascent vtkm support disabled, skipping test"); + return; + } + + Node data; + + + std::vector mesh_types_2d = {"uniform", + "rectilinear", + // "structured", + "tris", + "quads"}; + + for( auto mesh_type : mesh_types_2d) + { + data.reset(); + generate_2d_basic_test_mesh(mesh_type,3,3,data); + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 2; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 2; + + test_binning_pipline_filter( mesh_type + "_2d_full_ones",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "field"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 2; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 2; + + test_binning_pipline_filter( mesh_type + "_2d_full_field",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 3; + axis0["min_val"] = 1.0; + axis0["max_val"] = 3.0; + axis0["clamp"] = 1; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 3; + axis1["min_val"] = 1.0; + axis1["max_val"] = 3.0; + axis1["clamp"] = 1; + test_binning_pipline_filter( mesh_type + "_2d_clamp",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 3; + axis0["min_val"] = 1.0; + axis0["max_val"] = 3.0; + axis0["clamp"] = 0; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 3; + axis1["min_val"] = 1.0; + axis1["max_val"] = 3.0; + axis1["clamp"] = 0; + test_binning_pipline_filter( mesh_type + "_2d_no_clamp",data,filter); + } + } + + std::vector mesh_types_3d = {"uniform", + "rectilinear", + // "structured", + "tets", + "hexs"}; + + + for( auto mesh_type : mesh_types_3d) + { + data.reset(); + generate_3d_basic_test_mesh(mesh_type,3,3,3,data); + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 2; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 2; + + conduit::Node &axis2 = params["axes"].append(); + axis2["var"] = "z"; + axis2["num_bins"] = 2; + + test_binning_pipline_filter( mesh_type + "_3d_full_ones",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "field"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 2; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 2; + + conduit::Node &axis2 = params["axes"].append(); + axis2["var"] = "z"; + axis2["num_bins"] = 2; + + test_binning_pipline_filter( mesh_type + "_3d_full_field",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 3; + axis0["min_val"] = 1.0; + axis0["max_val"] = 3.0; + axis0["clamp"] = 1; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 3; + axis1["min_val"] = 1.0; + axis1["max_val"] = 3.0; + axis1["clamp"] = 1; + + conduit::Node &axis2 = params["axes"].append(); + axis2["var"] = "z"; + axis2["num_bins"] = 3; + axis2["min_val"] = 1.0; + axis2["max_val"] = 3.0; + axis2["clamp"] = 1; + + test_binning_pipline_filter( mesh_type + "_3d_clamp",data,filter); + } + + { + Node filter; + filter["type"] = "binning"; + conduit::Node ¶ms = filter["params"]; + params["reduction_op"] = "sum"; + params["var"] = "ones"; + params["output_field"] = "binning"; + params["output_type"] = "bins"; + + conduit::Node &axis0 = params["axes"].append(); + axis0["var"] = "x"; + axis0["num_bins"] = 3; + axis0["min_val"] = 1.0; + axis0["max_val"] = 3.0; + axis0["clamp"] = 0; + + conduit::Node &axis1 = params["axes"].append(); + axis1["var"] = "y"; + axis1["num_bins"] = 3; + axis1["min_val"] = 1.0; + axis1["max_val"] = 3.0; + axis1["clamp"] = 0; + + conduit::Node &axis2 = params["axes"].append(); + axis2["var"] = "z"; + axis2["num_bins"] = 3; + axis2["min_val"] = 1.0; + axis2["max_val"] = 3.0; + axis2["clamp"] = 0; + + test_binning_pipline_filter( mesh_type + "_3d_no_clamp",data,filter); + } + } + +} //----------------------------------------------------------------------------- int diff --git a/src/tests/ascent/t_ascent_mpi_expressions.cpp b/src/tests/ascent/t_ascent_mpi_expressions.cpp index 7ad08b656..a42b96014 100644 --- a/src/tests/ascent/t_ascent_mpi_expressions.cpp +++ b/src/tests/ascent/t_ascent_mpi_expressions.cpp @@ -23,6 +23,7 @@ #include #include +#include "conduit_relay_mpi_io_blueprint.hpp" #include "t_config.hpp" #include "t_utils.hpp" @@ -195,7 +196,18 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) output_path = output_dir(); } - string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins"); + string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins_input"); + + Node opts; + + conduit::relay::mpi::io::blueprint::save_mesh(data, + output_file, + "hdf5", + opts, + comm); + + // for render + output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins"); // remove old images before rendering remove_test_image(output_file); @@ -227,7 +239,7 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) conduit::Node &axis2 = params["axes"].append(); axis2["var"] = "z"; axis2["num_bins"] = 10; - axis2["clamp"] = 10; + axis2["clamp"] = 0; conduit::Node scenes; scenes["s1/plots/p1/type"] = "pseudocolor"; @@ -245,6 +257,17 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) add_scenes["action"] = "add_scenes"; add_scenes["scenes"] = scenes; + // add extract + conduit::Node &add_extracts = actions.append(); + add_extracts["action"] = "add_extracts"; + conduit::Node &extracts = add_extracts["extracts"]; + + extracts["e1/type"] = "relay"; + extracts["e1/pipeline"] = "pl1"; + extracts["e1/params/path"] = conduit::utils::join_file_path(output_path, + "tout_mpi_binning_bins_result_extract"); + extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; + // // Run Ascent // From e83d06133fc08cd044e7ea67d7391d76bf221686 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Wed, 20 Dec 2023 13:31:44 -0800 Subject: [PATCH 09/12] fixes --- .../_baseline_images/tout_binning_filter.png | Bin 0 -> 503604 bytes .../tout_binning_filter_bins100.png | Bin 410292 -> 410292 bytes .../tout_binning_filter_bins_int64100.png | Bin 410292 -> 410292 bytes ...binning_hexs_3d_clamp_result_render100.png | Bin 0 -> 404592 bytes ...ng_hexs_3d_full_field_result_render100.png | Bin 0 -> 404227 bytes ...ing_hexs_3d_full_ones_result_render100.png | Bin 0 -> 401302 bytes ...ning_hexs_3d_no_clamp_result_render100.png | Bin 0 -> 403351 bytes ...inning_quads_2d_clamp_result_render100.png | Bin 0 -> 400123 bytes ...g_quads_2d_full_field_result_render100.png | Bin 0 -> 399970 bytes ...ng_quads_2d_full_ones_result_render100.png | Bin 0 -> 397271 bytes ...ing_quads_2d_no_clamp_result_render100.png | Bin 0 -> 398776 bytes ..._rectilinear_2d_clamp_result_render100.png | Bin 0 -> 400123 bytes ...ilinear_2d_full_field_result_render100.png | Bin 0 -> 399970 bytes ...tilinear_2d_full_ones_result_render100.png | Bin 0 -> 397271 bytes ...ctilinear_2d_no_clamp_result_render100.png | Bin 0 -> 398776 bytes ..._rectilinear_3d_clamp_result_render100.png | Bin 0 -> 404592 bytes ...ilinear_3d_full_field_result_render100.png | Bin 0 -> 404227 bytes ...tilinear_3d_full_ones_result_render100.png | Bin 0 -> 401302 bytes ...ctilinear_3d_no_clamp_result_render100.png | Bin 0 -> 403351 bytes ...binning_tets_3d_clamp_result_render100.png | Bin 0 -> 403876 bytes ...ng_tets_3d_full_field_result_render100.png | Bin 0 -> 404465 bytes ...ing_tets_3d_full_ones_result_render100.png | Bin 0 -> 403278 bytes ...ning_tets_3d_no_clamp_result_render100.png | Bin 0 -> 403351 bytes ...binning_tris_2d_clamp_result_render100.png | Bin 0 -> 398781 bytes ...ng_tris_2d_full_field_result_render100.png | Bin 0 -> 398367 bytes ...ing_tris_2d_full_ones_result_render100.png | Bin 0 -> 398736 bytes ...ning_tris_2d_no_clamp_result_render100.png | Bin 0 -> 398776 bytes ...ning_uniform_2d_clamp_result_render100.png | Bin 0 -> 400123 bytes ...uniform_2d_full_field_result_render100.png | Bin 0 -> 399970 bytes ..._uniform_2d_full_ones_result_render100.png | Bin 0 -> 397271 bytes ...g_uniform_2d_no_clamp_result_render100.png | Bin 0 -> 398776 bytes ...ning_uniform_3d_clamp_result_render100.png | Bin 0 -> 404592 bytes ...uniform_3d_full_field_result_render100.png | Bin 0 -> 404227 bytes ..._uniform_3d_full_ones_result_render100.png | Bin 0 -> 401302 bytes ...g_uniform_3d_no_clamp_result_render100.png | Bin 0 -> 403351 bytes src/tests/ascent/t_ascent_data_binning.cpp | 579 ++++++++++-------- 36 files changed, 330 insertions(+), 249 deletions(-) create mode 100644 src/tests/_baseline_images/tout_binning_filter.png create mode 100644 src/tests/_baseline_images/tout_binning_hexs_3d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_hexs_3d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_hexs_3d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_hexs_3d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_quads_2d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_quads_2d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_quads_2d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_quads_2d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_2d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_2d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_2d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_2d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_3d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_3d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_3d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_rectilinear_3d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tets_3d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tets_3d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tets_3d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tets_3d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tris_2d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tris_2d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tris_2d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_tris_2d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_2d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_2d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_2d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_2d_no_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_3d_clamp_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_3d_full_field_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_3d_full_ones_result_render100.png create mode 100644 src/tests/_baseline_images/tout_binning_uniform_3d_no_clamp_result_render100.png diff --git a/src/tests/_baseline_images/tout_binning_filter.png b/src/tests/_baseline_images/tout_binning_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..1fa8a7c46042076755fb0567b1eae7ed69dba8e2 GIT binary patch literal 503604 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%0DOU-c`-JpAo5un-U#ynDTIP%(6E*}XX+M0oJd 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 delta 24090 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 J@o(?Ma^|scEVrvzv$l!z)85EV7gj%&;2f$R1 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 delta 24090 zcmch<2Ut|+);7HN%m5Y;O9YgrQBk7;ic+NJn8X-sV!^!>&(R&sz6d>t4_8 zLz8YFnv^U(xcpw)6(j&`Z~e;@GL^Tf-dqO;G6eqFcAOV8i?bi>neyS)7y{^`+` z*1NRPG4RfW)N9eR>e^1v(XzNIRaOvs^*nfQkBR@QYf6c`n+X_tgF~9eBcd5Rfe=@FO4(^>v`cw z4tQ7G32;%P#37QQYWYxKtfgPw>q6nulX?S>J?*%ZI9AaZYp{6VyZc8cB;^b?b<~e2 zhz;#5ys`GWaO%_PLI-cNPv*L0bZ?RjZYT@zD!sX1)=@xH8&kIA%ljnuTOS-ReT8cc z4!pa(GRB;lKaO))d&A9*eoA>?@!9!TQUjZQyK%(ez>bn@E2AUA`EG;H8T7o&DgKk` zlhjrDvI4$L#2*r&J8p_MZq-B8eRcgE_5N=k)6{>wHn;n#Nx~*kV(NzVUw*SbDXa6V zvVertwbxh4t0eL&HT(X%$4qi`4&I%z>{N7gv_?@%>n5IZ4-J(SEAj8Gk3#tAPt$}uE}NN(4{F+_`8O0b zmRw(b(PqCwHb7Ckt1^15B?Cp<85i?_rr&0-z2+R+k*{m9$0k_H_&wwv*84wQ5zgP3 zv9B>Bp!t+d&u?qZJRYC54r(K>zFpdu-B&%GqUL`4%j;_~d*VK!C~3_>&9=&P|H1A? z%=1NizT)}Ssg#tINWQFI zXtdJl&hD4ZNx61@bt~?ZxABtqcfIvWOjlKQ7%Ke=XD}Be>ATv?};|J&WKZa22Pyp`?h)AjaAwktDVon}YNxE#WWUd8R& zy;~h(c%V5UenY}nd;6ueLAgU!xVR$Szro#<^!AQ-MRdgXQw5uRvIAbktzS0A&`#DC zlp9i=wI65o)KxL)Rd>8~qa(ujk#>VSyu6hPxkaUK9>o9Im8A{EvC7UzCWh95yLapu zK?!DF4E`~-7e}~MvX3Mupt*GYi}G?E>ANeDcS?KPCHy=M3w2FRNpSs%2}Uc#<>lpM zHK6;gmFW{K!)5&#_K@C|m!7dao0lhsvoJLlvs@PE6)UA|Ale=S>4Z<6dqbLqRW zI*j@B#PArIoVD<&HsKFE`uv#IiO5JUB?xItpIL}yUfq4o!dsFf|22BroDDaF-=6bK z4jtHwK{Bkl7}B^Nz);D1-#onQ{xqO!u&0^m zmQa4pKjtL9>l@m-b?Z=HyIW4^Kv_<2s!w=VjHoJ5m!i_pRY}*yzT=URZqR@fRN4vnGjMf~pqjs1Lu2&KhirPkZ}= zS8}*~aQeZ!?$9HYz|6C#Mn9uDafm1sucYkW1fQ_xj`{++M&8cnkKg_B7iQcZ6}GE} zX^q!nR1eY=CH`TNmy_4QyEU~(3{?ejllArUU!{7HzI?A$dh^>7CtY<_O?#OsweH2c zce6?pT}G1$HS8Cw`C{20RMWH@cr9#)xNb;r>d7|=??^3k&1{N`rznVmPePcy+08z* z-xNI`extxm+2dA#g*L{(rvJ5YbxwO&`|?xUFqn=m0TYvhJGM|>Wr-@%rud{S5C1uP z<1gDrJ}4+CzGyp|vh;tej@ebEC{3dkXQczhe1p8aJc*)LB<#qaM$A)m6mNoi{y!$_ zsH@@(J0k8_HkdP^Th16-Rp^()=L?`C+;{AF2jeC$TpixY@CTSk+urhb@7@hG#O7`- zI9WPb;1gP}3&m~gS9gC%q6{bYOniH1iRr?H`x>t@iq|vk_qU}t2(U2P%2TeS9$qFi zx*TU3(z~02YWg%+Qt;2&YfW{aW^{CQmy`uilyh+HAy~Z&3rFmHj^4urq0!TYlCz}I zW6v(~(qgB>v-o2E_ai5e7RO#b&VSc)U`Ik&n}2M`P=!QsbaiN*ZTtS>y8L6%fiqW~ zCsH$+h?HZ3(;_=NNZVf0Qp(Be!(HLs@1EUtH(k7Vv7H@s>;2XI!4ixQg(0M-j1=5; z7eJv?>s6?JxkM?Sw)EtR3yTBx?du+FPLl9$d1?w62OF;Osn@fkqs9o$fBJiLl-lU0 z0s3*HC~|M9@Y9A_(NXL9P+wbNqS`XsRehmR@qwa|zK!w88EVT+2^;DyedU8~o`5`N`EF*Xc}}^yzqtI*@GuiDOrQFt+X}zrTzxcU(7-s=@L+Yw7oKj`WZT z86))eLVIWf)P1CZ?E#GPjOAzCVFn4dsXICo0t2meB#!gN7hgoZet+-9;JT61@Amgw z3NSijNw0E-s@i`{HTQnCkP<(AIyPL<70X@L+g6pi>%}KF^6rvbUwRh9!YyPw;*jyv z^8f9>(ZZ)^ZRZJ~{_yai_Ub=;fmQjIJYRfy$&shcJs63}lke&JWU*r~*7x1hsoe)` zDeCay!%~bnS^r{SB#2;0cJ+5Eqp2ETy8@}y)Hu8QdEBmqC+D%k&|$0ue8HNE>?*SM z!4XH-{WB=4{FY~Ne}8aN*`{Q7dW`hu}#-wGoUgTKp`NS_g?@ZS3Rz=%cpk@$E<@SZ-ihOJD9U84|?40(8FPi-R zC0Vl0N96eJ9pf-5z|TUP-tw*Gzic0UAiMhaC-lED;U6u16~R>#K#2*_4A>k^8!6@6 zQa-=@THHu)F-vn6;1?j_lRlJ zrX3lh&!NaFhZ=Z#d5M^-X_M^nWU`)3@L2IYQDtX;ePl6~c)qqxlnKmB2!N>qrYQxutIRdTyQk>| zY0mnv+R<*}MP<%iy15;?mOw2}EF_^_Pb|1pU|Zz?a4iSp<8T0a+JN!h!ChcixvylU zp{zzNA}G7rMIO$_O0riD6sN#o0Vb*0D>@>zOd%aY_J-^W^OOdcb{*q>%n4j9-J!v>evZ9hBP%@En)@Z%!Z4 zG=$+Rhv|T(43YJBU{a}K+rCN|13yeuTvOi=mbC&_F$a(j*m1_EUK(kTq}Y%)tD5qZ zt+za$+{5CE+XZ7vY%NvkSD+7E*$!DzBksksrG_q{WSOJ;Ck^fGJd22P z2gO?D7B-rE`|t@aOHrya^a!5AxE8$P`Sf_uPW*U#+hSA8K_|bTY$&BZjkQ7%IJ+e@r`eSa@H-nbX93 zD{&o=R7J^Z`|Qnms_v4UFv!#-Vrt2IG4q?Ug8kOJ_~lPbNPYI~8HV`y@#FAUwgF76 z@9Bu-hoX^;>w!irD~L}UAhi}Hn9lFe=BI=XbcW|DWnGJl`Tco@;q@mh1d@RZl7ag( z?Xc#({jBqs(of8Tvb}<$B*YryciH+-c3~D%yl$#~K(z ziGhjRa+QinW*)aoS6x`#^K^-(_p93@`=1`M+gG3;gclgf-z{w}P2d9Z%72{}sji_x z13nOQ*p|_39362;E8a0F{B`tFXkzO4i4#>plCYqv0PX0A!`~PVK0VTwRzC(F*%d?i zj;f3RG4QtG{@2l$FHfbQ8v1ZGFyy~AnoR3!<$*bW?n-cj(ngbsILNhhkP?UltKQZ( z)cVKlm=MdOnX|fT}3SOC-oirjPWj^2wR^D_gps5)6MXePgL#w^pfIEwA zy425@xQ$7PFr|gQRi6kQ$~A;zW2|Nnm&<4WqfI%3FOvSNYr)=SoMp>nx=*uV zx2O&tzL$1j{Hka};m*tRgw=7Agi8zbqN8@>=;m)YN0=2ixFdv@2GxXyeHy}ycRqN_ zr1w^3`7b+5jQ(VD*cWck@B>=b9;0U|coFZ2kjEqfM1)z2!DfKX;hxX}=Gg-J6Ylh7 zw{Tva-lR)$isnJdAK!-Wj<)hJ;e3fjO4MSS ziPfT~2v=N~r6rg+XG0e7HiA?Sp$Rn+-#{EdggAf&Ei^1#%8XHRr%&%5k{c?dN8p^1 zV4rNDi>As+1Z92vDN0-%-g^s{S15Tq<3HOW(LM8L3@(_lT4v8&ZlUKzN2!|KgrR}D z_Vx*>_-UEYqxhl*B~B1kXY6_rHyxHPyf0H?>rOt5%C{rQbI4dP;3@zNA zv6S(>%bjK}PISpkOsgA})%(gz8@TW#fTg`MloG?|#eDrZVdg4C5JnT-An7<6bly5> z526&psVzny=4ih#`H8;H`ks2-B<`OF&e2ApF0{R{U~CO(C7$h**?Om)uN=Bnm+>Wy zPB23Y>2X3|g)V0qN9c5U!3=RD~wQv#VlomwPOg|0s zOAHL=#2qV7QY;p^202fVo{mKknv2Xj1`KXXh2rR3Ts+Igo^yh@AbeejX$|N!_5+E4Cz8HhZi+(tlr{%BeGpJ zDFIAKR>uQfVMMF;u%x%)EjrK)Q?RsWju*_^bmvm4c~F}(>%(Aq-im0LN(<+R$< zDcr31guCq2bZ9~gVOhbLi3sB+Hpev;S^tjKDQa09kv%OMa;!5vINVcOl+g96xlWBZ zg1a&MKo6qAG(wk)3K1k!AdDs4-M>0I>iPS{HWKUJ&zzpjv{}<57`Zh)7Na%oD*@b? zjyn~5xYeC!M3+)~fx##A-_;C9Y|*0<;Woe#=)ilBn7)>mW(yYlvaRqGLZ<6p6xj7b z&%ggnS+;%#8KIA8;nPk{#vqs;MLJIw$ux8LbVt!71B8g-wO*LNRWihLRI)Sq_pgvL^hiI?I|QRICe z9=mS+c;Oo96mHxnBZaCR(-y2h{oZF{FTwS=;KS7vh2Zla|GX3zB{XR@m^O9fACJb3 zTK303*Q{Sg9zU{U3Kx$T&h0SN62yJ=hwhOk;UY@7xkFc#yzu8ZW?V3>Gilw6V}||z zro-It<|$Q$IW^|dQDcRhddAM0ej{%BA7AHi>Q4`+sP`8LHJX!!`mKhn{I_>%zF!Zc znU6GSM`2~x*pL3|PSOxV7&R64q;Oo1p3tVxAUevNOuld)mQ;I-CUbE*Jw7^Wl+d_W z6M}9?ghHL@*NvowTr_|@Mpx}aOOoENOnu1s?=4Xm&hBy)I`xeE!*!E{+xrcLwY`SS zsuT1WVL-noXUZ~SG4*iq7}9h-ywp%Atu=Vx7(=Xab*3>u#gGltjAh!#(j&%wnDtYL zUf?5q^kx+v_eFG+#_&S_1olc3ogw#Y{H|e)g%%GqMy^>;?hwRrgkuJOX1q1gkkx~l z!ji$o!lQ!*^r`5G$;4c)6i$(7sK$*-vLBjo?+4u^7cx^(a`ci^mG^=1CgmZ z{e~mlShtjY$`d!*Q1mm8-a@1QKu6;+W>|zjGUB}|h77J{$IXC-kNJ=C~v}PL}LBH4dBGX`WMub*H(3~&f-|LH#_tV>X z%=roEY3?zc^Nqon+=lr^gO6ZrYW(lTWMe)FdiYj93ah=4|9M=rlNGC-tlrn48}T>DzPsG=%~#zJ zwjq9X>&jR=yBc6(RX>g;+5pJrK%6_OJ%=5p`zs=kz9?!zm{(;ZzBfVk7@ce$3*5-n)(d{0F}& zZJ!U->{h<3a{62%DD-kL^ZYD9s0{hJy*Kqa(f)#%JsHRY?71h(mAAr^${KhZvluX?9Z%!dwE5@)6CUDFeQ&&JkNzIyAX0qFC9!x3e%tjFv#%; z(zOI;BH*hcKth)UJni}6@Zj0_^n{fqWOk{j>A*hZAMx#zsgG966-UQ@zScokY7|awu_5*pRB48cF1rZ;fP^!c6-CB2&bTWc$hZ zEulXWMm1@0K8_YWTSKp*w+bSx+n1MoGx*bd+kna(RCXg+nR^hU>(l9?x8XqtTWL+!x9W(7jD?>{l- z-h=gqN=r-2V1$g3LG2+?bA#~yS_~^9H^_L~t57oJj?N*8tcCy=LY?H^attma#Jywz zAo7J!E|P-Q;WA4B33ir#_`$>1iA;?(t*x@HOTZc-!Fk*wBiED zB4cQuLDdDOTxx}L!UUIvWs={gh7cF}N%q?*0qGOtjmeivG0mq4BJVE>%HdKZpa0eD zWyqUK_GMP>5mmGXf>dw>t89;G2pV{EaBy%(T|QFlv7x_Iv~GdNOh)p9?=PxyqgT`0 z!yc82zR)^*u`Q?52l=6OR%w_n={|NjJZCyv$NvEHdpB_$;Y?&wi9xI`!v zQUa$rYrI-}4%iPqizM+or)K2%PtS2g@@!WE`!Eu-{arxL9#HD_h}!0UIEU`G zvt-9oJYluXGh)Dske5}h>C07y&3=P`FZe2CE#28u^$!G*X-az4B<#j;ci;Cqv&wGY zyRiu3RO}JKqR9{ppSd&DiKLDwo9?GexLj^|F45l*)Q_Wu2b(4{0&`lG=82{T)2nE{ zgIxOE(L_byK>5ScdCQw$%xN_IGUUv{T|S-VhJw z(1gVX>ywET!l?-}mLval${GF}@;GEEQx2lb$7omDQP?1NqkSEakEhljh-B@5e* z-uMG04qnv-3l^$VFt}JyuRyXuB<`MeP81Kk14t}#CRjZ@Q+S&zR;(Cq0F_pM(i$9% zEXXS2#W!8ECp%m(8Nhne5b8;$i;@D#;=Ohqn$8{jOv37Fg-j#>6T`7tY^66>BWwcWL%}FV_+`z(NhptjD z0+cWLmjPb^FyFf|k^HWC@KQ*A&yDHw#BZ)|x`oj1iY_FX1)=Cw)%x3 zf_{0I!ivujk7M$rHD1|+NeChQ@gta|DH|=CGL815MS#;B?gs?-K1N5zsGdU*V5M40 z)EruL?mGZG(W=e#D<1ndZY!g?Kc^ZIME42J;LL`9;eeDVb^85-7(B>=AghT?^mN)V zC2BOyoIgZ6@=jeU{o&T-`?F~VFWES3lxNWl0OVTE8ZQ>Ir$nhBmT`gp2C!63A9J zFEsS!F7~FHR&q1_lnfpdH43QKWE#P*>}YU)Tlg<*ONM~MWu!Z~hN9%@WK7UgjD+!d z_z1%YnHl?coMe$O{Uy8jfso&DL`812fd1E=c=*I{`gxi*$(r)8 zuy)CX*NoBpqc`GBPdIILzL|Rc;?}Y~k5^{=_|NQJS8aFSJpSy6_mPy7pPs9UaC#Si z@6uzf!5=GJkDs*qdCrKfs~=~7d#*Ils*&G8o0(O75pN_qYLshJ6{`%O1sl$qbI_^(;{p1T2=_) zJ}csP(N8dFsiB-tY3FkPdhfDog?*Ck-r`jIzT95@1CqTB#$>6GsG%G12&iI)ENse)u0q-MK=FcWBdM&s4>yRW`q8p9 z_$A0yknAloA0bGxgB0YnjwIksl$|EI$mnX?cB?#%l@-P^k^P+MqV{Z}DBUFq?Wr4o z?y?Wt-~4zr6Vr}it9`k#t(;%ADJg4PHeiu;ukvxP?T}yR>%wC2Q%EAxO_uK_du}3s z4r?Im<171!UlG_|eFC_cq-Rwqq{7FuLDIhL_OM`NT9H77Q~&SREF9lotH}>;O)X0- zYleOA)Kt`H5>=X+JCsSr_l}Q50VqBI+Ig>!sCmA14OshYtO=9EPMUa|}mRePE6hFY6~P)9^Qr;cox}RFM8X3WA@l zqQ4%G4hFj^1b`0g7>TkRaX}Wf3E-aA0WC(_D=fi$MfNzey2n_SXD`c3k{iBCqRDI# zek)-T0nUXWZ-Z?VJ!LN4 zh1~h((<Yel`Yw5W@h2z81i= zOypg07>k1#7T9`2{1Sk>TT6&H6r~)9RSq1>?LP+h5)9S1k86m8(M(4*?Lmf80=no3ShJw)QBkKT+2R5*a?zH{de_!hTQQ+vSv0u|&S9*ocbd;!wV z1xTZ;zquhEG)p$b_*b2cQ0070^LzEO!qWY7_)o#?iyrt zssW}-n|t=A+knh0%IQg1Y8dtr+l>GD0zHsG3cvsWxdy(83^Jud?h>pp5*BV-aBlb) zV^c^^q$j0%vu&w5P=+Pcc+bl|qx&sMZF)FR)Xg%lxmu&wHTMj{uZo4UV8MO}y=Awz z_dKm*gr$w_Dhuo{IVF{WF(!vgki&K5m&{&%nUN2YAnL*EnFdpP(dyT zh#;A4eV}_5#rihqRxqZ8^i+|O$5}zoFRxUZwWleNc-yO}d?_sEByV&M>2G_vF;28f zUY2hL?}c(`UWAUBo16RgG_7Z(4{1I4I7m+tRU;-|y|!y`?K#hjFU!k=TT%*un8PWs zk%R02pNk%o&^>sxLr5i2Ysk9wAodJe+?Mu9bgs-e(7~ac?f7HFyXW>9=7eaCZtiKy zRpdfMiP$wSC#cKZ!lI+Mf*jDZ4r~F|g!C+CDTbsW6rnnRJA*KJS#92th;vq;&w|$! zM-&MmpVHLXNw|!)z3&wUk9PEZBYSDFS~eDXL0Q{Zyye-8IoD&AIXxr~EzY-atFZCS z#%<)?NIl@7d$#LV5Bz378~2I!?!wixlS%VHTXGcbQssEi{FcmC{^KoI zdS1Y_*hJX>6|Vty%=lDqtZeZEv1c)DMOw< zRpC!kF~*K23j3O-s|hFcty3UfPysX;@O*1C;sjtcd&=DS;6@ZZhEvl)lwm)nG}GBQ zzL>A*Vo3soh#OoSQhhLgO9wb|YQ&q%0SzPhITp!zX+@CDw8Lw)rC>^f6Hb^iAWjheT^Z4$%w|u{G)7R#vr=*BkvB+4^jMT57t*hFc{MWY zF~a#GUGAJ?`ULOQWL)6`FC&WlX01KYiZ0K@PFld8d6qi{zqxvLU@zr+u`1x+3ws{SvA`kxyh{XO_{y*@V>J_sxk~|Nr?<=*^0IX6M_liT%_4Ax=a+%+JF3{ z$)BziU4BZy1ydcmb!!EBD0tLR%+Z#FhI#mHZ?+NioL=4#-hFS8nvVnu6vPI)=Hcl% z{K4z|L6RdQ1`WqavSwW;B|J~&yzpp}eh}RWo_b>S4V8cC4U!q2o+3<(SxW%&*eNsj*q-it2 zlF8aHZkZ@X{C;})x1QC$X(Dk89Yr(HeimGZMP?}xfU0m-4A>()@#A%82~;*9z7=Di z3P9VO3&3q=Mu7Be`lFBk;v-7=k@lyVU;F7PjHU|5OteMHGojDa(Q8MsT92aQ9yK$U z>)|T}Z!W81*TW6%KGI5_;FgaI@xpYuv39>;q$l&-d-|E-NtvgeOOiAy3Q)`K$vUIW zaIcDcS)>Ad@W~wMRQyCOj)CaKT_DKlsA(e6ZGzHCOGIc1p#8PCU{`!3p}|C$Lx1$y zUwlLl?m}d7vvBuSIA2fMCw(l!Grpslq{Wj`NCO zrCh)5E7n(<( zo%1Z_x9HD5p8rGC&spNAOUc?E>&KSywG?0FoOL~zh(fjXqXZ7(O7 z$G98e>&49+B5ofuzTg>&T=#PJzdsSXi_^woYSK9~MFt1RSN8HhAJyUx-@lMD6@|2K zD>1LXzuSD1UG9Op+>M!RtconwiwBx+kOB^r%-jc71a+%I zY3RQ8inr8+`pSD5*>28qNm7wwz(ic>-M3;-8f-Y>Pk?L*=x}z05elU$bHc0zpvaK` zK1c|}Cqv?+qXp&x1r>NLd`eQVgujPSCIR&XWUvKvM<5(xYruPoG_=nlfhV}0^&7Cv ze*F?IE?=u{Kv!t>q;!?Cw#i=ZvA5oBr83`5cV<^+pQ|EMTi}-m(g}xROGYRP8V=74 z2|&Wk6BRqid!P_U_S<#4R8*FLXv&hV5y-=z2S9|{OjtVqK=?et4TJ~5W*y(=1QFOv zu}WD3qH_1WMVu;Cre*^IU1*IZ_h(aeGP4*VowwSJ4}DxWS$8dU4jbYZ73Em-3+#k9 z(p4NcxGzw1+~9apIi4!5QXaByO9Qr3&r802`+HIi2QKVfDGD710qh7MCiw`$hh{5= zj@Ji+c$%M|-w?|;AXOZ94?-2!TN=QA`uTN$e6B_jSg)o4z;M&ZV+_7fnZd|sb1YQF zrt0sT2Z!;j+rBq@Z@qkV&Yp8NTj{x7=g2^S%eQw;&s|ELGtUi!Z{-jBwHuty3qjTA zVq=vL9dkG=uysWlkDp!yQbCv?4&{qN05peW%)s6!%x-Y-C<-|u7iVW1@Z!N-1=(r2 zN%q2%^+;R#qx1_CSaXm!jnTZ0=!wo@8jD|*cG>8XBYVXM8UMQaZ%y09ruSaVA>v5E zyjcVILJs_6hx9yd0hWrNKYtF^v}w!}6q6y~jG^lWFnjEAi%qAHqAyYvN2A}t7WZ!m)j;do)#xES5rTez$Z`+gMUtHOiU7~Mj zwrbeS5nzJaqD{eY1aX99K~L5bY!9;uNrlt7O|JkbQI1dmk0Qv2xb3B-rNkXzo+;?r z%$Vz(Me6E#Y>ymLhh!3BgP0sojv?3a*buSrDq@MeESCj!+UB9iHcnO%z>$}bb6kNW zgBV9$URHn8$FM!z^7O4NkO=jw*cl!15#PKrTw=QFu-_J)#~uwzX>O^xgm+VSrjErP zm%b#$BKPK#jYa&UhYlS&eVULXYTiA&f^3_sv$Jz5jmj zx|gY^ms2|K=WhoFv_2n5UEbi7`A~qcJDVjSX)n}|5^8*&DN>0F#EmUcZix88zIRVe z)e%(ROa5vYBqi_ZA&;)M1@~+Y-qk%_O`XG zvj1x;?LbG%A?45BfxI5v~75!&kI z1{Fe~EFv}(g;RtwO=-vti!*KBD}&_L&QL=6z2BbjVu-SLVv@a6sb zrJLDO9ArOk-?`I!4jw;JMZlTc4+o z_EAoQr)sPbBZhnJzOsht*^QaTOVW!{-P&pvjs8Sug@dt1K6_;g<}3`71i(cGsx zw4?5Gis&8+aR<-v@Nn}OTO>izCQve<@M52M5OyF#1h83WgQFvqpP;~yAF6Zs#fulC*i6~Z|M)bX zu&5RzU9XmT`}S=V2#cQ1=6KWm(lfl7gsIAqYtwj?vF4l)rgYa41nN53WyWW&YQU{Fc8~~OqXnY!l6ly3&Rim5{-ro4_ zw@^=F`0$a?d`v_T_mkmQ@=Z5c55@4$x@PXIDvdeZnDz2iQ+l6ck!&ROL&6356Z;jV z32s4oPwFc<9`TPDMQ86dmsm<#f?y-8K^~ifTK!m}kARoLcA1You;unHUOM)ZYb z**TQ7?wASUV|~!I7z>g_LjX9W``y?0iy9|JxW;04xfB(BoS>J{y&G$|s&W)--v-PEgI(rET66pEEr(dM>7$ur&#zDetw=w4*G?Nes z5DMW2lz#MrV=Us&;RNxB@iZn!fk(x6IP*mOs|2tnM#8`Nuh#;`nx^75Q!_m5{nLMc z&VM^cuz>~d(mhjkHrbLcqNgx;frW~xdLA&A`!^iIR-3}iO6F`nbBr^R`E(6uIQJ$= z=geYy)^cn`TcteY+oan8l+ny6nzZo0z3<;ze~f;gpR+2h5x< zm+4*0S(p-KOw&7^L&;0UmjZ;dtzU>j4 zC4K3&XWE}Jlg<^MKNs@lzEkv=p!UG6|Fqp`lswf!uKn=U#U+g;R<`nRMH$<*=%_tN z4sJeZaHpDwwzgzpfSAYMV@h*x@z6lQ5129W9r6|K-7Lo2ggY}O%7zvVJcLU%JmUg4 zoEAYk1ia{|sh9?11~*%9FU7?X&kRXZ-_LO?LLUps^VB%Bg9yCNQ8e>(EasC45c5d` zXQ8_Lf^)1auIcG^9CpAT>dqYgQk9!SQkcBN^gd7a23?<;b89ThmJ@-;Xv|}J3dsDL z(DVZmv;B`z`EQqtKC9)pfjP6H!D9DI|K?I%pNa$Znda^Lhlr6B%eFgur`PIl^2zdU z&Z)SQ(|SQSs0|v5QuIeEgZKZ}&j6`tWEl|HD&$)yClX_0a=K@LOB8~X3E_glpCY?r zfJC@DOuuO@EIbG|AWl37B0qEH%t-^=L6W5C>gr-DuOU|Qwgq8m0B%aq!?1cI*Zeo#sRfN~u(~ftjiLa$bN%YSz>Nenf;S*V zbuFERESHOu(K7R5fyT9(3ql;F+ zL;?H$TgKxP3GBpc)N%KAw4JF<`F1=V}0&;e1jykFM8F{OJo|&t$iuS7ic} zm`^~MQojJZEy(I7Iy!eC=D2(N_U-VdVk9yn!ICeJjKM|_*#~-GdXk+CWG&clg6xxW zygqGn-eD4`C3VD!8BK9bAdBRndTmdxycgK34vd;xw{BrqgITO}GxRZzJ~J|#Gxoh~ zsRK8xENk<8{_4;h?Th*OU7k$1^zn?LY8Bz9(>&g4`*z6E&6e^<+&mu|MmA%36bNGA z{=mRq0@x@$6k(H{4`_-M={z{0i)}}`P?4dDy$b9IbdX`Z@8*HthwNiJNFFlSB5f@# zaBHm3!AY-Gwdwfm{sh$5hrpj5h~*D9UiU%E9~oz=le*Q5wjokN<^Tdv2}ikL2MJJv z$7E@5uS7+G^x0BF5~~;dzC18fXNwZ@8n4*%E_J--%OzLylsCq?f0ycycW4xXx87^)6cuaz|3yLZp>B%!Mb$W|PPy2q@#PU?gF2Hr5(Q=|nO(6AXe z*V`7F-Bq?Jz764c|vKcNcq6Pc+PXczgAW_~Yi^?Fy zav%sb0ofDhf#pdssb-SmZnK*oRk*oV?e%-XQX_52DWqr8^7(v@YB(5532l~uWe_pZGRFdMC_ zeW%?it!}3K0=l~Qj)*8RO3~w{4Dj%HOL8Vif{@*LCL%va36M$Mx@XTAid1$4AOzD~ zmLy5u%tgIzj*o=o1dvP3Ek`oaZs=w4$$C{ber(DH2~83Rt!63|f$5>br>_oORVwa$ zF;{W_#I0kSJWGA_-o7n((dE8i(ltyeAmKo%D2E6pj0!1`zfU40?j9bh*wFwB645A@ zLI6K)o)}(+U0-@J91TRjLa`Nr^0eE)X~1&0O4&f_&~=#4_YNk-cu9F$@0adK$H`}-sLbYTd2e`^ZB^{%NpB}h-VI$l45>W3e< z7tDs1%Ji<22pM%6J)FaD2nuh2Pnm&&Fxnk@0ZtWSSl&H7Nql)jcv}P7&d`%MQ-?_? zh^!mZ{E~pt!p)L_8k zPsUbM*OJ0lqT0~Z8l+V7u%83`awJwgJUwX&ytxO^`xHe&Ql$8w>^m`tH0^%udZm0B zD}RYuh`{DXZzqzyn(FH6EKic%UJ%4#1BB5L9}^1;a}@7m;AS1NtF`4u>aFXgMHii{ zLz-lTTQ`2YSakv=pfKpImtI&zf-(SVHKBuJLW%o9I2{yA3)xJ>3>CW@WT@Ze7-P?+ z=EO`09!aZVqoM+m(IMF<5Wq?J!^MTIqbHjb;1hjl>K|q}us30?{UD@M+p%c2un>!2 zw9h>HtoqvH+8dr(epk3{amg!)8vJ?ODsUUT>h{B`>x8uk{vH+>6lz&%sfULL_GIaT zFTjC6Y^Fd8RFC8r5p(I=z&P(Mgta8Xdg&hQBx@oE1|SBl6)K{36j%|oHsg0on0DtM zCt&u@R)jWgJ6qS1qCC`Gq>53>q&cHSYid`&>7(iN@rYfPwhMgc%uRl{* zh;2zGQnA==3^V7rVFOs_ey|_YkhWiZ!444)N_qq}q#(-Xfn9NkD2>shN5{vg?`KSEbuB8Lb|Y`pvYNP0CovEq6 zcpuWpd#bYr$Xci2FH4}O)8Mks6pqvYoVWUKp3yS!?B#%xttj-Elyl&PFbhbCk zz5L+xRf`R0PSO;j7f(&iM9K1**P2UXRy-IT-w`h)vgJLL4T{il9Z{CA{=q$EuN9VA3-B2 z^e4EH>=W{W1&tzjxa7(^JR?2vzQryZH|i90kYaEt;iZA81wp|!471obV>5Zes8eRSW@4fa_5dJWr;n2-oAbNuQM9r$B)%N0XOBC z_WW}z{&je~_~FA*hc{Cc9E#0)OCc~66Yb5>W{M*a;CC3u>HnKd$-8^^tJ?v3s!zN4 zp`N3DboHD+_WNtE=Vl1TzB-z=%Ra4Xyz>DK<80dRbo^M+kJGn24>Z1XZT+aPyzTn0 z9i0?@0p6qooaK)E8PnjQVRI>p>JE#{-$D@2rBuYHfB!hF4~VfPE@=O@RFb>rJX+06 zwd3k>YU@dkf9{|OIa#iUUDc3nmcJwnXl}oBK7P^e%-tXrJ#K$rmoOsyqv$9Hq?c!m z5x;pe<8aNy%EsaN!;>d& zWcq5F3z=sxk(rSNOD%9fwZAte$;k^!kr@@pT_{T1$2~b=rfl_Cy}A+mkwHA)UR&_- z{PIIL9sGE!KK(LH(=o1X{jQjmyW)NjffMl+O~wgY4U-H#7j+mv**zLkq7ZBOzkZ6y zn%OwAY2Tmzk%5Ow{W6oca8ykj=11TyuJR`0iK8akyoI8jAXs3hjMD#KJs{5??M|E( zkWRXiu<^@eu2fMqY$PfqN;X->_#}}Tt10N?vlG)VEAU}2?0Lj|Js%U(-`_kF2MDgy zE7Bki|5W2L(in#IIE&__*qx>z|_yD_;PQ2Q#E$PvRb3>CZq|jY+M|9 zXi1tNd%`TciwvIjLZp1fvrs1@Kblz_%Nd&zWx>905hqAZq*UcDr1+S%}_t^Uxav0xkZ%wds?HomOY| zmkqCZ2G=iS>|b+LMXwL?d{kyh?LYNB{_*$p;jeuak?TJjtI{z_>i{*{XR7Ol;!E-k zo34%c>DR!B?-`am6dm<9Vx-t98aXc|Y6VSWt1`1uEccQUG)U}+*Y2?bvUYhj#U^Ze zl_!q89?2fa%T$tX_jfBu(J<<|`*MAT#jVReY4}S6Gkj^Q+iF~@QqxoB6U3z0b1ljA zEMnSqd8(rMtI0wDNU;)qKUd`|*2V&z1V9Pn_}oK~sWnyl>>q4%>pRHE@wf0SIRbXz zpw$3ORK}AD{mUUz^9>@a;ysE%*1(FhE=YuC;Q0g!iFW)QQbC5?^8E>j3?6AgPGBxb zp!WR+RG|F{hQsvuA_w?H%|ZT?;%~61FpCA*@`fRTcEH< z4wqCzbCVJia>Rhd<-x>3KiRr!a*8c5!6{JQ(>a^-^`K?#B;SBz;A~i6^oTzgt5tC@f z-%n*R*&@w~8+C3RxfX*CvuP>%aVMEyCB42C|MJ80VY>&z}c-juG(F}xh$$6JDoydZ!J=&B2+ani0 zc|wc9gn{$Mmk+}Ee18Lm(`a6sBsVuF$F-~n0b1C%J(3(-u&K|HEp~o^w}qHX}Kf9TjSQ-$9O_VxD5CFfu0z_;#k`dz$U?)H*daq7;BHX7b<=UN1Aj755`o?o+OsZY#!9lr`#>| zwjg{%1_z(_1O63ZeSIJTT$HDprr;r3>S0U z@0F|UX)FP}<>OD_g;}gDS@`?E_C6LDTzNL)>PHl6>h5k^z#gEev7+do5u+2z`V2|* zkZ?eoGE@cFX^SXf3TgE312Z+KvllNu=ROWTL2ORs0L=1^yJV3Tnmb)%9^1AgZ z+umZU0VLG>68U+t+pE7` zqTU}n#S;8;eCl$^dQ6GhyDcTkQ+M>}@3`!kPf^5^r6-s;R&mJua>R_a{^a6ipRf8X J@o(%M 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 PiQoFC%Nq&v_+S2iN6CBJ literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_hexs_3d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_hexs_3d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..2adb0fed767e601a25ca0bface257605515db235 GIT binary patch literal 401302 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 s+Oy?4iXzFI)ijOzqJK7r-7` z8svowpaE1nR2uBai>w+DfD51jR6A6{1+W8_23Z9SbV8*a1mFVL0ZW6dZ~-)cYKKa= z0CvFAA}d?~EvTy3X;7aPIkg}F7eEWD>UF{eP|r$>oC1Z?u`PSUurrB*pQVUEaT^lS zP2c$O?O>@5G4>On-4?@b%&*1$&E8xBx9IoN;7uhEdpTApjSk zg@rSY-~u>B!Ubqy;fy1=0M4LpW)m)e84M>J8k}GgCd~-I z1u%o*ghRLhPJnJ^QZPHlp%Vze1#kj%Gm~%u%wRa-5H5fdpqrb73t&z||6_yxCSlQ> z09*ib8u}l@1<;?lxkbS|fMfj$zy;8sxw%Ce7hqh=RxxZ;GKWchTtFciu*f9Dccu`9 zhy?+IMU2V_d_qYjC|lWR?nEY?8#l$`Db^NTRp~SvR!xe>ruSB*ADL_spdAo$oxOUt z2s)ZB&?&&?JUVVNQW%qyfuduSK}TCKB|`vDGcr(gjKY|lj<97+2{Lhr(vbkhNID>wsU`dVuTmU&L`o+No(2up8B|$C{arzN} z3!oosIZJQ>xB&88^olj;We9fU3BU!A=b~3ETmZdD%i9s;qYI+9cYbN=TqlW)9hQ>VX;`mw{%y0#DZf3nwt zoIjq}x@>H(wDx_v&z(E>jy}D6je9g=?1)aCyFC5#-}^q<=cQ4PbgzDC^&eiDkJ~B$ z(peGk#RM5ElyrLf(uqNe6#=}!l@&=kJ&|-`kYYvPc2a#tO&pfU`3Kn51arxZp@_M1TaHM zr-DN;1{%bU@A3{PA!^L9KCtJicGGV z5^ywWrE~~O6C&D}A?yv;E_|TBbs}GpjM$<5Z;n<<7yS(t- zD;wN>LMNv@_U-YvV^TYCSqE0QJ^%dkTtV^0q=N?!X2u&^JP1^dV>MzXt;(I?gUa$o z8f*7%$%!}Ck?Ks_^Uln--+tRW!e?>OpTfKCQnpN4_rm>ErMW@H7j9`*{_)ydslA+L zB{--jpsIf{3|c$tXVPqP_IS^~khoxY?!s7(|Mu<6dot3}dfj}3aBBN>kC96rjYz7h zsg3Y4Hlg*M_H_HEWBhfHfU0SV^1^coyXRkgZTxuBKsIfF!^$1ItFkwPdZnTdk5)A%Es@73i<6T->%5m|bHBW9h-q_Fci65!z zs8m~V>5S?tV`9{ugSv4A`I$bW8hdio1k+2$_B|>mC+EfEk2d{x^NOcT_JubGJ@G&X z?zij(10#|e+elLlF)g2~D*Msqi3e1d7w*~8#;|ztU8cMR6~)tkOr6d7MyDLe%j<7b z92x8+;Cquz0XKKAVRO&6=b9QxdhDW<6DNkR@4`i9=Kr&PWX7frWUz}sq|F-`pAzjC z;kEd-2DO1Dmy}ojZ3*@*wCqfr)BVOqet&_2fzJ&hFh`dNuj2N83LA^|5cBU$b@3 zp31WaS3b3(OGri0`I@S-XTsb^2A2=aOWTd6qXw&8d3ZIsg%c-E{P(|PZa@h1no7Jz z|BSthN!@JP#3u%mzuCt(V2n}?N4xTLRg-&Hz?q+Z`GqXL5K?3244AsNlY!jVV&-Ie z&-?S&vi!{GsrxGP(nqM#gghVs0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w8d$5~%CezGMAM+I_3X<2^;!YAvGNAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4ea zAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00Jxt7@i35tk?Im@iCTqX>_%XdtvA=@sD^uY!d$a-$swx@}yzu F{{fKQl4Ae> literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_hexs_3d_no_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_hexs_3d_no_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..e4503ae7d8ad6e0e3f26aaaf613e1522b1633d50 GIT binary patch literal 403351 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 b@c5}oryqRvgM-cc@xrsChwpsad(r;`%uK>N literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_quads_2d_full_field_result_render100.png b/src/tests/_baseline_images/tout_binning_quads_2d_full_field_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..19132b2e8ec0210958c6185ae1e1473a38f26a92 GIT binary patch literal 399970 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�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 Zgp6-_kI&a#%sVph#UU?j{)hkE{{!o8)R+JO literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_quads_2d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_quads_2d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9ebd49c77e3a2c0ef8a8ee3690342265bfe58d GIT binary patch literal 397271 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 literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_2d_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_2d_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..8e17c0c20a31eed10f35ae7d3056cac9e8e2f2cf GIT binary patch literal 400123 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 b@c5}oryqRvgM-cc@xrsChwpsad(r;`%uK>N literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_2d_full_field_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_2d_full_field_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..19132b2e8ec0210958c6185ae1e1473a38f26a92 GIT binary patch literal 399970 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�RsPNGTi*-MS+^|mFFYGp4jT&kK=m2VjR07gCa`;wqHEQi3u%!R2;uFiYJ8x!G z%=a_=JU_Y0)ufVHW4z%O5Lz_e^ef<}ON?dbvr^61Da79747gxQ=3__gv@2sH!}LDh zDLXG`_75@(^esPocxI)>^ha>T%{oO4Uh6P8@IU&qtHw7^4?L80Ye^Z)( z;g=muX+oq_N&m=-!nb;$Zo&tL~jqTqTB-=k0(~{tJsp* zr$>;Xy6eU@1I*DHVqg8YA7w`q*5eSdQ&b*r=XsA1oRgiLSbfGPre96*jmc5^>;cCO zzYa319wSTRtViZUQ=3`b*6&xvob`(4H^3Wx>aFXs%zxU&*LIm2uq^FbcbE1l`M_= zQd|2#kAua0-g2rCOrODbR7_)v0&U0R`#d7t_<1b*-&guGM!eNDQy*8!0qdFIzD$m1I=hcWXi{8NQVVyDi;OAHB7SfWtrrg!$$-WWU9|0_MbJg4V84Te*TNQ^TfW0+NM^@dq*$90oEV z%r`}{-%2HC0C=Cnt-K?cJk#cSWQ8V*@^(Z=4b_w+SRt)%*V;-cIXA1 zjMVN0D@(g@7^vL=oh)BCHC;@VWybO%84%{1SY^i?sWQQ#4PLX5>EKZiG9b)1Z5bos zjKmzfOz;=kwrta%eE(n88k@=q*tFh`yc$e-QbfoI*zOCmKy0!mAYTD|pDaOJ*)}#= z6KHV0Apc=abOmelay^^70=Jvx=vZ%Cd8ieR1=hgjdNv;m=n6SH*4q}os`h|vjEbef ztf9;GuqIMYgxj{Y2kKx+p4wew>04{ErNIJxLG51PY|%#V7WzYBqgym-7a6Wi&6(Xk zx}c<8W(TczLEngWA2*%&mlkW^|J&AOOLS*G8r*$U;9Y~?n{@n{Z|^tg_V-M=|M^$9 zObu@)EOn-}Q+f1A3$ z{N)Q{W%bykC7@|ZR*+vnA-6`Yasmw=3lGY)&=oQu%s0^$%#qqFXv>mVD;HJlO^vue z2sC)ZTfRsiUGWDqmHt3is03EItS!^U4$5T_p@={)*)>C1uuis(P1Xd&2EJ7N>c3Azyb=XdTim@?2#nmkOURA9qZi^``sRNhKdN}?f`at&or`O?G!mqnX-30g zj|iREkykc%MIdg}`f%{H4?5=i8OM3P;%BJU1rtq=&G1=kv1GW&4F?HaGRgvL4>oclf_MVK{SJtJv2wRJe%n6UW*+lr#xVY=_&Yd^c{(A6`wtT$q;>id4 z>W|E6?Ctg2Q=4PS=Te<4F*a!kY%QCY{Orn?NBX%68#4M*P&h5CxaB_D_ zNTGW{<8DuP$t*lt^IIO|ztZMU@3y&cis++@h!;_nY;MXlcC5pnHg#@*84z6;X6G_DKs zGWsn&+@zzS`tb|eh?{fbqIVah6hv>@WHvEtPG%`J%IqZ2ZDrf91Yyc#|L!lF6*4z^ zj|#YQFd!myR$&X_<*Qe_nQU!u#j@o|JI1CypWz!hJLB!{Z+OkjJLr9}?y&?mKiH-< zd3<8$?mKJPxCLkYO%HW?qFKp=vF1f%ncu`{#~W6h?maGQZ%!LQ7wwvyur;JK&@VAC zt#iCf@KN`e{)V*lq~MF!|K?GZx!HHBx%Y;W@!{-9=A*2(o&H3#)>j7zI{hcBwoW%4 zU8bqqHe+#A$Cj>sXA{3OnmX~TL7VRuGC!$!Gw|HejJ6NA+PT+wWK{e`a|g$gllhaY zQLBhR@YO-a4-W5tPVkQ?d#T;ovYw`B^ECTlR8mOCI;CwpW*!^7-27+kdg4nqz|hr2 z<3DT&Y|U8}H6wUz>qFV6hBT6jei|HH+%nSqfP~5YYCakhk@QBCpK+jRcwatcd`3u? zui^4GLAY;Gvk{RKyP9_Z>(tqFgF=-N7i#~ru*7h4mJnb#()obCujlrirt2W4@qsiY zIcV9!bLYQkBy3D7yV%*sZ@NAqJ>qIgWD_AL%&>0EnD*Y`*SDBQ5}21Mq|Tz<8C&VB!>F5zX7F^L5ikGf=DD~Wh` z+q?yW5PY@V^Z2f!4$U?USgm*U@i1;^l^ksBu=McTW&bJpeCO03_Ze%7w)q+A&aa)w zdyBConUAvCtvPcFo-1qR*RSe)Mdx-kUyO~&{>LzFV!`DCzn~7%;PF#DeAW%}?bBFz zcywq_)4a3Jz z|2fA_`(dp|<$1l8UvJ>Nlcw}rvjURcZrzP($A<^pS|YTTZDW%)0o$*5u+9uU83A;K z3<$r?Z-}$t^|BqqIzSl^=9{*!cw(L!g0~VtSKP{j(6mdog=mFS8<$! z2gi4buHXp&*3`JAa4QeqTliWq?;iLgzex1&;j)KgV^U55ly@CqwyjoeB zW$#`f?soz|TQO#gqkbo)*1s4>sYTX4U5umbgU%|`$$*lwGysM`^&)w#X;!}hg0cp#R_JtvyJZB2UNO8_J~ zEb3quEGV+mz#3b2EGd=X+mrwqhht$UW1y6BSWQR?kX^XK)r5Gs0z34Ul~Ty}P<580 zP|A#e%_k>x1vBOi2-!a0Za@IVtO#HT#fl^w9fiJ)rRQw0H>^TlLx`p44UBgtRe z_ovlIycGiQZYzKsT#dEt4hG(EI!xyqX2YRI;pHxPx7vLK?^c_z6@7TO6+jNIw)q<# znBuA3Gw^P;2`kcvcPqlBeq(sI`izMg;N3(#4zI*DbB7}*Cd4&!A|8iVDjQJkbol-` zTfz~zaL%{OVc>lE%d^A4yD>LxP1?;ll4{F)k$^B9An9O@ZEAUAG>QaFS&(XUKd($esXW0(fWeJpj2%}9YD=5QdlKbBBNI}|R zd}7JPu(}f)ra6rG(#f1nsA@8@nIO$9>wKf#rMgqrQ)ETlgD3N`yLMZGX{Pz}+;e6D zd}Y*bj4T5)3y*l66$JnBuI^8pb(LMa+)BQ3z;Z{OODnTDdG!8q;|1aDInTKV1}!&V z1IzSGHnt&SfWwpd*jpVb$dhX&y zsWx;9Y{Xvb*5X>_hZb%gAM-`xrEOhnv&$l%3k}XbGBZ9gAoRxh>sR8F-K+_i>R~E2 zK(eRFjb#0ijQq&TX~yd}+;JcX z0yqF1io0GiUA+<%IFtYm0EgnPmrPf$1O*NyfCIpxxa%d;)hj`PLkZvja47D2$#nHf zP~cDkH~<`qyIwL~y%H2SlmHF@hvKf6OjoZ21r8;E1HhrU>m}3GD?x!n3E%*5DDHa6 zboEM5;7|fM033?DUNT+15)?R;01g0$;;xrWSFZ#G4kdsCz@fP7CDYX_L4iXF-~eza z?s~~|^-56SPy#pr9E!VMGF`nA6gZRs4giPZu9r+#uLK1SB{12_1Ew9iGk0RLLSvJC z`|cP0TZ`Wr0=g``=jH1Y8ZDgnZP-Z4HzW1xabda*&&{DsqiT5Jn>AGts%B7MyovfL zkbyv;1)&aA>Jt#vPk{_10{H0@5*_vHU;yefCS`yDkm#siC#s(U8At?R03G001SXcNBue&fclI{8DIb;I_lSn>Zd>k5&;+hiH`bpFaY%#lQO^n zNOaV%6V*?F3?u?D01_Sb>tF!tGbUw#0g&jZUni=c0vSjIU;rdK>es;l)Mre}00SV= zQNK=9KLs+72*3bHbkwhd0jSTIlmP}nqN9GDsD27$AQ6B8km#si2Ln)_F)0HKfJ8_A zI#K-;$Uq_h10c~+zYYeVK4Ve_7yyZm`gNlEDUg9g00uy!qkbI>Kz+uf3@`u^9rf!( z^-~}Ni2w|ML`VHP7=ZeWNf}@OBs%KXiR!071`+`n0Ev$Jbua++8Iv-=07!JyuM^cz zfea)9FaQ!A_3K~&>N6%~fB}%`s9z_lp8^?31YiIpI_lTK0Mutp$^Zi((NVunR6hkW zkO;s4NOaV%g8`_|n3MqqK%%35ov3~aWFQfM0g&jZUk3wFpD`%|41h#O{W?+o6v#j# z00SV=QNPYE1JHT5Xm{4UZ%w~5X#1(Zlg^Ssa+WuGyS~pxx9g5M$$m9;lJ|MLzD>>T zx?@hVUy_r&&)fEG!T|Vo4Ge%Ue+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQ zzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RC zPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm z01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+J zdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXH ze+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQ zzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RC zPM=+JdIFpQzySDm01SXHe+}RCPM=+JdIFpQzySDm01SXHe+}RCPM=-6a|q~~?3;7H zX?LX-dB!!3@0|Tsu%|8x+M+3Y0!`RULQw&M77E&;DSHAUdr2rNApiqVLW_M{7yx^w zN)%xLN@%ffE3%h_q7niy04228w}k<)XR1UI2B3r%`?ex`Nhm5I00U4$i+x)d0DGoN z6kz~LXt8fAvX_LS5&|#)CA8SLg#oZ0Z_nW5UOFI0SWsFNcM*!k_7=6 z01JxtYrp{PXU8H^!$Jfab`y~7jzl060x$q380{8;0oaX>NuY*_3PkKBAlVy;I5q@e z0Bktgs{#YCmmHfo4I3G#*hxULGY(;l2*3asfwWTw24E*RMqwI8I*_rCfMj17qF51t z0k9%zpAHPbK5nd{G^~W6V;2F*t|$aCBLD+nhSDw}7=T^am<4H=DM82{0+KyJh+#(n z2EdM`JxVYDd#JIC(Xf+(k{tvjJ7N&RkN^yTAxt}@U;uVNV;G`gs0AtI1SI7lh+s(o z2EdZ0axEBua%L)EI06Ao3BUlD;#4dK15k{NX@G{Q8pMA?V$@nYRt!&(q}iU>%GTB9*@0x$sPNEHdf02JY3-dMw25rRqxNJ<)`Eqekm z0QO9kD8c}g&|=?K!(I}K3J6FF+M=ln1YiIvKvf_K15f}x@5s0slXfGSvR7KH)Wj7pV;8dX#wYAXTB)`n=O z4gnZ|I$Uj4g#p+~N}YBZb!4GxBLT_Ac4(#&0T_TvU~QDOXaLeZa~roc3;gwrae%9h zN@zw+par!81ZW6|G{K0aC*VRa0R;*IO(2a=K+ljyL8J*rEIk1j06jw*1sDJg zJ^EM}06jw*1(7BgvGfFB0Q3xL6kq@}^yp(@0Q3xL6hxX}#L^Rh0njs~QGfx^(4&uq z0njs~Q4nc@5lc@120+h{MgayuLytZd20+h{MnR+rMl3x67yvy(8U+{t4L$l;7yvy( z8U>Li7_syOU;y+CX%t`pH1z0WVF2_DX%s}7V8qfBfC11mq)~tY(9olgg#pkrq)`xQ zf)Ptk00uzMkVXLpKtqo{76w4ikVZkI2}UeE0T=*1LmCAb01Z9*SQr33LmCB~0npH+kA(ryGo(=vX@U_;PXGo$ z&yYp|20%lPJ{AT*&yYqzqzOhWJpmX1JwqA=7yu1D`dAnMJwqA=ktP_i^aNl4^bBbf zU;s4q=wo33^bBbfM4Dj4(i4CI&@-e_fC13ZqmP9F&@-e_5NU!DOHTj>K+ljy0R})r zk3JR#K+ljyL8J*rEIk1j06jw*1sDJgJ^EM}06jw*1(7BgvGfFB0Q3xL6kq@}^yp(@ z0Q3xL6hxX}#L^Rh0njs~QGfx^(4&uq0njs~Q4nc@5lc@120+h{MgayuLytc8HZp(} zn!Xy-8yeI4{k)8-M)Ys(4peZ?cYXVGRMXpMSDbQBG*0=hZ=W|U-9EeGoO=QT;M?yo z0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}p za0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+ zeA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa z;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9 zcFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N( z0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}p za0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0UPa;M)N(0KWV+ zeA7F9cFE}pa0UPa;M)N(0KWV+eA7F9cFE}pa0W27E$1EJoxXBzrdYQR9~j@|y)RA1 Zgp6-_kI&a#%sVph#UU?j{)hkE{{!o8)R+JO literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_2d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_2d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9ebd49c77e3a2c0ef8a8ee3690342265bfe58d GIT binary patch literal 397271 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 literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_3d_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_3d_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..8124124cb6619e43045cc9cc8913bd8cb836bce3 GIT binary patch literal 404592 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 PiQoFC%Nq&v_+S2iN6CBJ literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_3d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_3d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..2adb0fed767e601a25ca0bface257605515db235 GIT binary patch literal 401302 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 s+Oy?4iXzFI)ijOzqJK7r-7` z8svowpaE1nR2uBai>w+DfD51jR6A6{1+W8_23Z9SbV8*a1mFVL0ZW6dZ~-)cYKKa= z0CvFAA}d?~EvTy3X;7aPIkg}F7eEWD>UF{eP|r$>oC1Z?u`PSUurrB*pQVUEaT^lS zP2c$O?O>@5G4>On-4?@b%&*1$&E8xBx9IoN;7uhEdpTApjSk zg@rSY-~u>B!Ubqy;fy1=0M4LpW)m)e84M>J8k}GgCd~-I z1u%o*ghRLhPJnJ^QZPHlp%Vze1#kj%Gm~%u%wRa-5H5fdpqrb73t&z||6_yxCSlQ> z09*ib8u}l@1<;?lxkbS|fMfj$zy;8sxw%Ce7hqh=RxxZ;GKWchTtFciu*f9Dccu`9 zhy?+IMU2V_d_qYjC|lWR?nEY?8#l$`Db^NTRp~SvR!xe>ruSB*ADL_spdAo$oxOUt z2s)ZB&?&&?JUVVNQW%qyfuduSK}TCKB|`vDGcr(gjKY|lj<97+2{Lhr(vbkhNID>wsU`dVuTmU&L`o+No(2up8B|$C{arzN} z3!oosIZJQ>xB&88^olj;We9fU3BU!A=b~3ETmZdD%i9s;qYI+9cYbN=TqlW)9hQ>VX;`mw{%y0#DZf3nwt zoIjq}x@>H(wDx_v&z(E>jy}D6je9g=?1)aCyFC5#-}^q<=cQ4PbgzDC^&eiDkJ~B$ z(peGk#RM5ElyrLf(uqNe6#=}!l@&=kJ&|-`kYYvPc2a#tO&pfU`3Kn51arxZp@_M1TaHM zr-DN;1{%bU@A3{PA!^L9KCtJicGGV z5^ywWrE~~O6C&D}A?yv;E_|TBbs}GpjM$<5Z;n<<7yS(t- zD;wN>LMNv@_U-YvV^TYCSqE0QJ^%dkTtV^0q=N?!X2u&^JP1^dV>MzXt;(I?gUa$o z8f*7%$%!}Ck?Ks_^Uln--+tRW!e?>OpTfKCQnpN4_rm>ErMW@H7j9`*{_)ydslA+L zB{--jpsIf{3|c$tXVPqP_IS^~khoxY?!s7(|Mu<6dot3}dfj}3aBBN>kC96rjYz7h zsg3Y4Hlg*M_H_HEWBhfHfU0SV^1^coyXRkgZTxuBKsIfF!^$1ItFkwPdZnTdk5)A%Es@73i<6T->%5m|bHBW9h-q_Fci65!z zs8m~V>5S?tV`9{ugSv4A`I$bW8hdio1k+2$_B|>mC+EfEk2d{x^NOcT_JubGJ@G&X z?zij(10#|e+elLlF)g2~D*Msqi3e1d7w*~8#;|ztU8cMR6~)tkOr6d7MyDLe%j<7b z92x8+;Cquz0XKKAVRO&6=b9QxdhDW<6DNkR@4`i9=Kr&PWX7frWUz}sq|F-`pAzjC z;kEd-2DO1Dmy}ojZ3*@*wCqfr)BVOqet&_2fzJ&hFh`dNuj2N83LA^|5cBU$b@3 zp31WaS3b3(OGri0`I@S-XTsb^2A2=aOWTd6qXw&8d3ZIsg%c-E{P(|PZa@h1no7Jz z|BSthN!@JP#3u%mzuCt(V2n}?N4xTLRg-&Hz?q+Z`GqXL5K?3244AsNlY!jVV&-Ie z&-?S&vi!{GsrxGP(nqM#gghVs0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w8d$5~%CezGMAM+I_3X<2^;!YAvGNAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4ea zAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00Jxt7@i35tk?Im@iCTqX>_%XdtvA=@sD^uY!d$a-$swx@}yzu F{{fKQl4Ae> literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_rectilinear_3d_no_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_rectilinear_3d_no_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..e4503ae7d8ad6e0e3f26aaaf613e1522b1633d50 GIT binary patch literal 403351 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 literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_tets_3d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_tets_3d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..f398a5ce0f9a2662a3d9beebfdc70e37b24cd9e3 GIT binary patch literal 403278 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 I-V%TH|Ev4oVE_OC literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_tets_3d_no_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_tets_3d_no_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..e4503ae7d8ad6e0e3f26aaaf613e1522b1633d50 GIT binary patch literal 403351 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 De-zCh literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_tris_2d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_tris_2d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..fd0f37dc55a1aa54877cfa605aeb31edd999b160 GIT binary patch literal 398736 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 NgM<37dtl_u{}1r)d#L~b literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_tris_2d_no_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_tris_2d_no_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..03ef55fed608d207c4032c6cfeff61b6cf765d65 GIT binary patch literal 398776 zcmeI5349dQ;l~F-gK`9F6%i#39XBuWJ-kcb>X5|VI+Gn)WOHs}5~+lum>yq%f%W*-0UZ$GwV-tqg*e&5Xg z=FPGD?o$K%HM{QS>m*5P*8hpV&qz`u_n(cV##g!jDURE;SGwkgxc+?~elD^>qi@EH z{iyV?R8Uy6pnT}GH|ORhbr|Khaq!zGt3$t9+j{*UGQWFhamurQdwKcIJHMUVWpURg zFAoeJeE(MeDz(d;KhJpL@h{?UpZV&76~}uVjk&AujD24}=Nf(YM?aQbd?RyezUxBY zQ6HCGY~H|aEAZ8!?V;Q~J?jvNe0{elA!^!mk!#@g77ao0+ZS%H3SR>sUx5}r{{Dr( z{kjOkOB?}3oHd;52s8!;u>=Gkjf#EqSAe^G1+0TluL33kVuxQ9YY%r!0t9aZm;{I& z07a}l+%X9dybWLyAa(#`vG#DsBtYyopo+DJJ0<~ww*gE7#14QW)*kMd1PI;+FbNPl z0J2znxMLC^b{kN|+QS`_0KwY;CIMmxKoM&XcT55VZv&VFh#de~tUcT@2@tytsABEm zj!A&vZ2*%1u>+upwTC+<0fM&yOajCXfGpM??wACK-3C;#_Hf4}K=3wzNr2b^P{i89 z9g_gT+W;m3Vh2DLYY%r!0>o|us#trtV-g^E8^9z$>;NcY?ct6|fZ%NalK`;;Ad9t! zJ0<~Qw*ghGJ=`$~5WEdw5+HT}6tVVj$0R`THh@Wh*a48m+QS`_0I}PED%KwEm;_j` z4HV3a7~5mY`l`eEVeSu@12H+3!>6bE_nOrDXRnN+oc#ekb7KlV-SKmg*1!04(xSpx zHaP$3K||)8>XCkc7~np`b+|bi$n#7cX3Wsp_7NcO=H9U0T%oql;D{ z$`}bab3#^)9Fy7a53^qyx-74}xGH&5ml-h;!D~NHEsfv)-MNUgnQxxEH9PoFZ1E3~ z-P)Wx>-hfow{JW+wetH@f9w=}P1CWC^+l)4-kQF3%}*mo#P#dgYVMBhd-@Fwn0mNt zXnt_3ai_-Dyz<6`ss+jU)Anp^lib^}G9s%_$<70{o7)Wec;W{m)1I4pETf;>v{`{) z{*ah$EAu-X>-y23&Q}Mz9LKXWt4BGue!1sDRM}=fjW>!-LIVnO(Y?E-M)$a{d)Fa( zd-pvxC}C-_n#WtCueSbZM7$i^773j7fW@|I^QYU)1(M=bl3z zoKiht?CH@XNAEm$a!B_6kCUH!X7BI6O7-iuGxLR+x4M2equEbAuHTovb-gp;?u45s z4vJnrYCy!8z8hx0essyIZs~E3JJMqcjx7(1ozXkB(Nqg?vr!SrfZgo}m_#uBhpZw|e<>T)fwlAbtb#>pUAq|%PUSs_+ zqtJlDT-4#-=YnFwn`g{Fb^IMi*;@DBv~%9F=?fF2=6!n3Jos@_a#4C_NxM@S$$5>6 zw?|%EI=M@?$t&MG`qavQ`uC}95MHo-_rx`?X{{3mPm2m`nS1c0g5{@PTd`!8`zSUu z^TP)3y_flLqhI|cg-(62|FhDKH!gqYwz`khmQCWHmwHqjeo)IAgQP`;wQR`?&r0t9 z^>yn!H>d7{ZArU3f7V=*9RKvnFQm?;`+oOx(Xao-b&Oxr;Pv;h3$3M*gXe#DxWp-T%M|EiXl@5M_)6LLUph98 zt*bs+z4dSR5KTOb@6b-LXmvoDcLMU9cRNpged)>vTt_}Fy8p>X-xzmz|F7jC zhvKrnJ2&RK&z~v%pkcs_CqGobIlT1wW*f@$5*u7Iy}f%{ye_$*p_$_Ltt;GRHkd4v4wW@9as zj`=L*LDv??y2Y1{JAU<+ln=ic732_n=%*gpy{q@;M}M_iBK~};*TxNtBkVfp3O|}M zrqkws9-cKTcKzB3g<8iLVlLiP2RAlz?~beD z|NT(w_@t!oue#%|lh0K)yyvceHXr?X<3IgHzU{rM?s)(Ezuw;Asm?9lelu^y-ly+; zZQ8|(nvETG!1-TmvVL04VZS~TD*iQMkpJc{do9h)`8c*Fwfom?dufe!(*N4qzhd7{ z=+U$7G*?bVLTPfbt?&oioM5C$;AYKI6xu~V!I79Zq*r8b{pm>^x~kTt10DU)#2W!;Uiaoj`RnfPGV}2h zh3yk-oeTdsJ>;dHQ(n8tTTgdA4pwzQGSeiZBx{9xRGMVhR)?QE;0V09eMewLMacA* zqsLF(=07k%&+hQcotb9V0DbBuFf(@29VN5k#>Z70dp@+LU&6$Rb5drlSdn&L{wp_W zoz@_PFu@>z@LC)Y|3LZ9S8rL6xBgmbadz0Q*N2a(IQ?$64tX5%>VRaX$%~m`aX;1rxb8l?oT@_>Dosp>) z8Q(tg@-6)&>Gd@&AGlVB0w#qzAem^QzFe2tYD*nmuhY>6O^g#ztNa(r_e#>m(f=6e zc|@eg)WgJc0vSvF6Ny8s4#thpLl1%4;>9cd(_G)}zvte)acz5FtuE-W5y6yP3HU| zAr;>)k8d*hSn-aGu{U)ZwsFmbDc9F|yzk`*%}X_})$~1`g4~Ln!p!{IBZV*cw;jB2 z?bzDmyVqrhjSq8A``xd#{pm=aqF1BVG=YrrIQPjg&r9|)gT&5ZnzFu*>Ys@mC%Pfl z2_W1T>n54B7p9anIy~xr#4f-Cqj?P+yP9Xmr{@#&``eHLd@$Fqf)uEqjXgC;0ed*t z>w;aNUNkmUU>C3nbbU6M4%bJPlE0wEVRBm zkZ6KMCIX{~=X^R7_e)?OV8W}T^XIy~xd!#WR& z3>yFR^6e#Fsu`To)k8of4n0XM7yyz8=Vj$3x*(2&=zQ2~aU8_XkVyf@K}`5Kbk_Vy zt6y|+Ao>dnYyQH4s5M-5tKvXZH!5oyD)hWlcjIh+4x{w<-=qb)&MV zAws|+uzF>2AgY&?MeT4PY7tnyvMRkHE{oCmu-CqiQ_}1ZSrl+enuQ*ZzE99aa7}>D zhrJdl%+8QWLHUv19lHRX4|^>>gV-4|Dd01R2_JiB+#A8pkVyg81eow~=!|Ou93Zkt z;F^_}kxkN1iRu|I24L z|EbN*T^sJ{mmKkWk)!Gp;=z|oW)}b9<)$t#&n8&Ba=svc1N}{60O)+!YrQ;a?B#3I z*!_K7L2XATa1Xs2waf&N0n7;51n?2W#*ekPiUD9n$k^ZWi%#`x;3%kmHhgMu7|MsE zX%&0~nMTK@BQk&sMg|dN00TUhu0^SZ|5_9hTfTkWEq5me+!7pJdHVXG-kx9c^Y)AI zm>si#r}Ql-xe(Di(sl0Y^~ar+M;;v!SngW#a_>EE+;LczKE}{&A40_OS}jaf9bz@<*1ym6Kjs-OX`{I z?$JlKEUx=Lu#8vloB!u_bGFm|A#UGS@f9+>hUIddjF|FI-dnW56?N_!si3&B=!=9C zd*6+zYvbkS*uj_UV2KxjPafJZYuvg9QuxuW&8xO~;={`U8!mD1Vo&JoA9g^JLUSJW zTwEuEooI`5j06x~i_^2GxPRMd=dc5}j;oVQqU)}vSEJS}0cUm-zkggMg}Mg!h#c-$ zr{d+5qo6xd%)Y<>H~lj9q(@H}{zcctVb@4!9sa9^_O4rXm3qj#j2tTrjy2<*k?5*C zy?e&WPokXnNVydYbN1(rO>hib?>VRP`p$oJ8NT(s)?Ib|L98HV`veePiv|DQ*D$*H z&2??#_Ow;ErPt=2ul#0rU~R=ibp{)5-r#{XFR_#1EF0Fja4v!OkeyHMWsCkVCq2sD>q=ZGE3Cdn|u58w>1rfPZ z9EaMEe=u!Iznq|s!zxZ?g?KtV_dNAQh+=L@0O7WnUb$;PKuvCPz|@lq9O>nI^M=K3 zs6HJL8(vWy?m4JaiL+yba|XSdXpKb!1UmMr$bGwg;(w3KFxxbM&Wfhw5i{X|E0+Wi z?u%X$onFm-ZG2Bqp%ca#d8;=G+&p15VQ>1_1H2KkwjKwg*7EhL?&W*xLNTrOijb{A z61_XFcF_5-*WxNTJ3}S~_q9LT3+G*Fba>R^Oau>#3>r7n`(h8E^I@;W9>C6!Ndf2L znDDW8#zdH%A&UYg!YuSS^u5lHMD80G$teE%pF* zhD-`L6~u&(y)!1l>LJd8V1V}h868RNyhbrM|>N1=2+?6n7Q zIe;A^lLC%{nDDW8#^nHZhD-|dhXC-5025ptopBVT1Co_ZlIY?%3ZnC2uRVYaV28-0 zfJ?$m_}Dws@4dyXx$K1L3Q6<k^G^Y2)bMkaP%(d!Dx&+Qe(D|^}{y>+&OpMNly*7z1fjxlE zhrRXyjzifYvMAub6c&0M`r?WV2Z$^ZtFNW^#&IZ}4|^>x2(U9`QOLj#;j-Z4&=;pe zIY4BQ7(%}!gP9l$Ts?gidLx_;rSoB~bp^Gkek(Tirb)NN<|S6;b}E^D@{X3nhc7NMW(tfZCMq-=1ELT4n;CpMk7jr3d{Zs{W3s z(Mceb-VOsm=fhq*5_4g8h%5@23$xJU(HDn7JSdviP`lClVlGVQW4<=B^msx*RYh3b z`8KP<@=`Ap@5{1l`<=)djIr3mEGgY%R`nej5)D8#IuaWEzF6o*ijx=nUYm|t}yLlQ7cF7w`bP%Dff59JEoO* z?s1ZLe02}yKVo0XzPDRp`{_s)x|L7fOk@ahIq!TN4P+j;`q%jDn7B-Efe znqMMNUDz`se5@o54Gt)ZKIggTtfj__NDUlRT>{AW4>ha$r_>3zM3v3&*FYLH$S-eN zm1kZ?kM<9-CgH>~7C8|p4sxCUXuAKwO=TYxN(FB_B9CmE@?n1TQO`%% ztCUHg*hIT6Sh5|;l>dAh4jSoEO>q(tX&NA9MG!o%sVZBca&8TCw1x@;x< zasLkigx8`PQt4b7AZlN;&rj*cLxQhejS%q^HIKYK~98Y7|~jD5mQc0EF208W(395 zy8qYqKU&|@C6PLGKJ2x)>y(`#lR^@4nw}8DvmXQy{)=7)0GCbpBfm^heMjSUSqt|( z1<#-nM0hVMUUmaKgT|XUq37)kydTjXi@XWkrtu;kK1Lk#hED2v+YRs#2uY0hGA_sR zCTdX6%d@b!1Za?_;pTlcUgYDKI7MU_tHBQU)7#@Vcsd{UT3m5pXUL?WF)x0H{8D)A z226-`blyvEgLBk$KJ2yL&QY^FK!Hj?)|eRIM)bgLKmg&sm_)x~T)^EBf|nD(Zg4pd zF-u4TG2Ab?CVlwKpYHrz>;En_`OhDChJpaXeNm=goWxZ#?!*Z}Z&%Ie<3osH(F6gF zd-Pip2TIrtOmH>S1-pSET>KlW^+ocBxPZx@HdWEv1x#GWr{d#KsUs3_9iIbds)Two zwOaB#%|&m5S|$QoC+&zdkZ?Bz6Ji~mAE39v#e6y+_F9c=`F+WY`S>tm=S)}7GYa@H zqBCT#^>S+$b^~_AbcK3OoPPMsbwoehUPJ)lzKFZ*xFaP* zPdeih$v9VIJx0@;;|YH{ANE>3_uJvah@CTCL3b|T)<-%>_FCKl%+8QWp@Zgq7Ik|F zA&YPzfN)>bKNQ5}XYOm_^Mavt0@xSmeAsLC?+ff+P@odPF)J01O_exiwF$I$8*h*6 zcvnCRCIT(A?!O=u2VYGTV39Kc=a%#|LNfYfl>2M&fBjOg&oBQb(26^fR9E}Pv5(Yt zJSojgPfIMU>UDDO!PnRB|NP-sliq#z@ea!$j_dIE;Lif(g|i>)zGeIaoi|1{eyHz) z(Qh{T%jASxXUi`&z3tlBH~fBIhjD9Dn*Mp>tgNpK%Zp0MyBB`_R*1g~6MIgmKK39{ zYWHFfSMIw<+hSx2J2A@cLII^qge~`}VNj>{}`G2mU=j%2wrM7yIF{QSe zux@=!sdb~WxS^u`{U`2yg-C@Ai&q5ldagF%0M_d51P8EI6V|Jb16aMJEN`d#i?Tv3 zUlm_B(0%rGFcILs4vydZFV2YZOLU%(YQA}L)QdxN4h2?KA77jpZ5kAEn6&4}Mx z`M6T#>5IMn10xH+lE(L39b59j@WjfKJ=2OmZ{^|Q1v{?XS+w;Gj6HI4i+|pz3CB+- z1ofJFc+ISu6A|fgDGyCMHa9Hpg6AhJF$J**zHV9d*;#Fe+?c$1%FzpphdIy1Cl8Bx z%~7(a)v)RgFK#+s_Q1m0k{wdc|wQ)rq zZ6}2~wq7&czsNH%xS_-}Qs$05qDT6TyGklJv8&mXuRV9}B4U`KvI(e@$2=@aKU_1{ zGk3&UdN!KOy)*Jko6U7kUDl+8t_i49!zCoc%vju`MTBFv<-E;2~JZo zB4zGgP!Te0#{Az^zSafcj=Up$MzxUO|kpjInY7Gz=v2g0C zon1S5KEou*%PxRxGzQ3;X{tZ&&8VY~0Rm6ednSw!!Ck`y5blf5QLn5#PxxV?LIB~u zSnr-e&OvaIi#z+v1##l*avlPgaIQ-rd<|>lw+0k3MYv=lhP#F<{YVNosc0axvIzNY zC0#?>$ZtcqEN_hbwj8lu1LU_}QkJ(vep`;%hyn832rWz7BEK!gYgiolZ5WwV9dQ2K zDzfHuasJ#KH~zg;>ivn!$m^^~E>pzy@5^wATzHB;)%foXBR{Vp9;*JCgjN40 zHKQxzOQ`95*lX!K1kRna6E>uPxwj!)RyNih+o4vj1+?7+me7xA2}ZbgjR3-Z5$Ddi zBQ-0C{5DI@l77f-~ zRV6OBQX8Yv1OeTLQK2Tp(ZvV>-Lq{x>1_n7nYQ$cNp}&FxCMa#!hO+LY~x%A_W`(E z5a&WJ=OKDYq3<8Ww;QSCEjyxDpTWO6QFb;dO}8E5a|~rJVQnZyeR4^~hH~ zYdP)d9|HdVS;9&GcLr_$EcM%tZEiXg*>Y0L$u-H-jQZ{HUE-(Qimxd5{C7$va6RH;qI~08`^FH#*PXw9#(HO7!Run8`H;l7~^GiYu)D^ zr&zrvKCgd2{X|wMz1rvTu>&x8jSAzzj-0BX`!U(oR2fvV6EJqU5aYp4oUUMSJn(QP z9Vc^blILgc>X&I!e-&zY5HNVU5#zxFI!#0GuXCxynMax?>dX)@c;*-5VFt2+J_g6* zRs+&#YKFj*^iG56)u?4AVC+kHFdodny$E1Dya2Mf8slLza4&Yo#^V4^6nf#wS{+LN z4Xg}$HLE-N8~rg;jEBYBOcMPvE5RT8hsDETbpL2>_4@d_zS@pX;4HlwwWbM#yEeCP zTXjA)DDC)xucy`&oIKKXP-1lDe@;4)H%${R7!?8tx5b4$;>sWO&;4?oI%Jk3%~||Y zQ0%dDAzAL3we&pGb0f{je*QL9*?ASMd&${TU zgmO=FdeW176mB>q81q^TFZy6j&WVo(jgPL)U6USFbi7r_L)HJT7?4#{5*L|&sJ+MM zNxd&(t#HPR0K#i=#jb>~obToY#x{`Brq%xV=hQ=G^Mf{fu9joJ;su#Wr%&0Z>&A^) z9$OY4*H9Xt+c?o#JgQD`$x@v!;^YhFI!wb+f9HbQsG#vXo$1-*uacUFH66I%fS(@sO3xRG2;o++)W^y}sURpsRG>qJ(h?6K8#LwVIkYv1)wS zM~-3Zo7UIimvS8a{=$OqUxQY)EqKd6t<;%NCiN;QEgzqd?LV`&Br99To`MU+e8=LF znws1@_S7jyoI61_Iv4r5%F45w`_C$h&K|dImZM#M)#2AJHLd>-Jj_r(8>X6!xZ0?i zHu;r%O3$o`8+&MS;koid6OZgan)=}B_N|huFBWF&kk7!iG98r6G$|OAKK0b1#H!Lo z{^=KL$`>5W$*Fy#VxObB;QZmkdIWK~Mh_)3ZPX?~z2goqE!2@Ml7y+e8N?j>;F=3Z zm?oq!Ei?g*XBQkn@uX=&>qZlO(1jlXOuPB9G^Kx6TG{8*Y%!X&^9HI98S z3E&9RgcK$LCZO@`f=K{RnkKX`2`~YTV;4*UIKng|g-L)JY8?Au62K9r2`NkhOhDt= z1(N`tG>vOv5@4Je*B+PzaK&j{43hxk%y{;|B!DMP6Iz%An1IH!3nl?PX&TqUB)~W` zu01db;EL0*7$yORk@4+-NdRA-hSe|$FpP|A2TTIE;xsOXNq})?Tzg;=z!j%qF-!ss zBjeivlK{RvjjCZ1V3Zi=_Lu~425M9elK`W{__oI+fGRb*gV}Eg5I@WD zn|c&jOQ5l}@=*6eK=x9PYHJCo*2+WO8vz7>H$v9dBLJ-B>rGwu)&TXE5>PEwhqzY) z2mr5$ENy@QuoSOXaoKANG_aC@YNa@|y%RtHcxPl~3j~0bbiHfK-kYF>g#=U!wIQv8 z00KYJpZ9wL&AS2&h&GLsuUG1b{wHR<%L^SVdN!uB@*aT3JLuwMZAT zItd^Ebb_*|83Mo}usUUBo$b)f8Um^{vQX7a00E$vlr`-T0M>BTt19blh<26`P%Tk~ zsBQuX0Nto8X@~%@1gmaQS$9h`w1R+Yg(x)j6F>myXJti81b`J(^=r!do1&!!1XK$& zA!&dB0>A()3z{MTEP!f2QZ~>QP5Bd0`Ab642mu6u5nBA)A^`X^HKHgRX^ghq38>r^ zA!vvI0>BV1?u`)u+>sg*lnu2;W8MT*-h$9GMgRd|j2G|L2mszhjp@n8nxi#m0xD-c z$QdMn05AxQb8`d$XP^e5j5DeZ;7LH`DF!X$1P}nmneps_0N_c}xRz|Z3wm%QpmNlL zlnDX|029zSc0mAeglR%bHqi%N_z_S|N&Q3aA-g-ieA8dg1b`+M+X@xi zoM5C$00E$h#kN8OfNiKXjSv8uSZpg)Y;%Hj;pBLsjZ7TXFH+nive zNdN($iN&@;1b}U*HH{DenpkWrRBUsCktP8IfF>5(3K0Odq1H4)0BB;dtx&Pe2}YU( z5CEE3Y%4?n*oIou2mzpp#kNAlHYXTq55(3KiR&V5CU^0icP+ zwn7AeZKySk5CEE3Y%5f3bApj30R(_17TXFD0JfplG(rGqVzI4IvCRoangkF4npkWr zL;%=^TGI#tpozt{Ld7;G7-1b`+M+X@xioM5C$00E$h#kN8O zfNiKXjly#@i?7JS$iEb*jno#BdZ6}=Yuj~Rd2OSpiZ)l|nzF7`T6x}JKUNX8{uzfR zu4u?6!Q49{>&xcMB1{4*Q*U%;CU6zA0t8qHG-m0HzRUz0hAYq<>YQ8Ia@*sc!;6c&6 z1_Ho5J03k{9wN{%O+Yo>6CJq_Kmc&TXj%jTU>Y5ljxrY&h?pgyn(c^wdQR{LpM$Y5CEJ&nv_8Rm;}eEo6JcEGUf=V=DML5F9HYvUL?)w zAOOs9C&ko;_rqV$d>7KsDS09k>!e0C2@=SPTJR7#Y_NGFLT-86}_^?SS@t2_OLY@-(W3 z05D37Z+n@q9MlXFPz|<6bIt@10GxpultTa*1jf0!%vld|#t5j!nxi#u0tf)!M2+bo z0F3eC-CE`?2t7jtR70)Nm^%Rk0C%K@1Q7s+aB*)eb613*5dx}_#%Rl*00MwNQzME9 z03)>cx0U%zLeT&L)j(S`wSWKuzyhcSBoP1xU|G;qwm=h-`U$A|o1&!^1P}mLP}Q%A z0MO6Mik7k!qR`Y$K-Jw64J{#n0I&qBZczk)Zd8^ulr2&H-w{<4ZUYDavHTGLV)-j#?ct695W5W^0L1b~0Ep$Uh_#110zm9GfB+E7 z9|0hizarKi?g#*}+W-PUEPn)mSpJGwd$=P2#BKu!0I~cL0Al$oV(sCM01&$kAOOVj zM*xWBuZXpWI|4xLHh=&S%O3$CmcJs_9_|PLvD*LwKrDX*fLQ*DSbMl50K{$s2mrDC z5ddQOD`M^8jsOt54Ilu-@<#xO<*$gfhdTm5>^6V^5X&C{AeO%()*kK%0I}Nu0zfQ( z1b|rnidcKNBLKv10|)@I{1E_R`72`W;f??hyA2=!#PUY~h~=+{wTC+bKZUYDavHTGLV)-j#?ct695W5W^0L1b~ z0Ep$Uh_#110zm9GfB+E7UpoMJ_+7KDA0$ z`P93;^4@IYD{qy2YK>%{dbd~Jn^mv8Rr0MhLI8*zZv=o?{<2tmpLbV%o`7Hg2mrAI zfB+E7Ulwcc^X{t86A%ml0U&k&5CCHN%VO<)-d**10)hb`0K^Ue0zfQ(S**R!yQ@A= zKrjFVfY<>*0Ep!;i?#Q8ch%LAeO%@ z*52pcRi7sy7ytr5>;NDD#PXNL+WWk_>hlBy13&32@AK}e&l3;~00AI&01yCT`O9MMecoO5c>;m~AOOS;00KZPe_5=(&%3KW zPe3pL1c2B9Kmds4FN?MJd3V+42?z#&01!I>2mrDCWwG`?@2>hh0l@$e0AdFK0U(yY zEY{xV-Bq6_AQ%7wK*hr5X)Z{Ywz>!s?QS;3;+Qjb^s6nV)@Hr?S0-|^?3q<0U!Xx4gdl`EPq+7{jc3S zKOC;Om%r`YI6M8q)xWOsnZFzP%sag@-)M^~bG3YCtrVYmr&s73ZE%IIm#?fA0zm9Y zBLKwmSH#-G9RVPA8$bYv<&OXm%U=;|4|fEB*lhp-AeKJ@KrDYntUcTj0AjZR1b|rn z2mrDC6|wekM*xW31`q&Z`6B?t@>j&#!yN%2b{jwdh~fY@yS0U(w? z0zfQ(MXWvC5ddPh0R(_p{s;iE{1vhGa7O@$-3AZ5l3qg2 literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_2d_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_2d_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..8e17c0c20a31eed10f35ae7d3056cac9e8e2f2cf GIT binary patch literal 400123 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 b@c5}oryqRvgM-cc@xrsChwpsad(r;`%uK>N literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_2d_full_field_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_2d_full_field_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..19132b2e8ec0210958c6185ae1e1473a38f26a92 GIT binary patch literal 399970 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�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 Zgp6-_kI&a#%sVph#UU?j{)hkE{{!o8)R+JO literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_2d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_2d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..5e9ebd49c77e3a2c0ef8a8ee3690342265bfe58d GIT binary patch literal 397271 zcmeI54}6Vf|Hsc*Au;_D6>&eM=+6@sZL#bwJm`-U9z?d^QxE+j6Y{5--FW)>QzVf` z!dj0g*((3S*ilJ-`4@`Owu6M0ZCRtS?fkZ8Z1=8nopayUb*`^DpS@n?+}Cw~Kc92n z_n*(XuKPacOzqySbDgVhyvpHl)alx#<5LbtaPh-nN6l)*|K!9a?{!=mvaoB%hkA|) z3f>emWKLd?V^?nB*|hZGYZr&KcxJ*=V^f1Vw0P|P#y7NmX1WFzBq| zTtc88FwhbxdGm!oIs!VKHJnQb)C2}v0vH6)^4DnX;f_H7?LJ`8+QS`#0OEZBg83tuB4!E++tIya!e*0kXGxO8O+)&oU_*ZANp-GT{vAbnj<3abOo?Tol zl-ldt!$WRc@!U0KqWY-sKMR|`^{&3W<3hWz9m~q_uN(q{Mn}AxIB!v-CRdc{g{?n# zXyo>SA9GriwJ`oQu4go&NdkeNn%@?koDou{WE6b$)ATdvc<-9DvUTyVL;^;;vqcBS z9Vs~dVeRd2HOy*!c66`Y22p9R{dN11>=z%%sQYo)$f&__gHFb-|E02#^V>iFc4qav(OW*- zayt5CcKidf0H_5PlrXl(pR^?d%=c7`@fsaP! z=|8J)+j?}$;oYfshD5yGsL9%b-OE}ee)Rg`gr0qG|G&`mS&0k#tvWflO}p%lf0iT&MmICgaBpO&<5Iqk^Nhz)UvMyJe6T-b10560^=7;R`0 zC151v?EE@=L3;A~%zo!0lh&15W_ zgr!9vc6PiPeCw(<8*03D2jfCdUHg_JC$(QT z%g10fqD_#1KC7iezxS;g#Unv|*3Rl(nmHWJ^23deC6_3=6#w_tKNoiyIM5MwYIiS| z6D}pOsED@JT(R5HJv^y#{?@K$saLn&-mz1VWB2#D=AM#eoz;joK>}K@_MPhowdmVt zQs#nZ%vy=br`k@t_Xfw({d>(_e=g%%9}|mM;}q?y-%d7cd-#FAt&@LW7B;`@saIcn zqv*d(qRu%H1-EZK)}igH!-GPqJsMXq>G0S&rgi>Y#KabhieQ`3V#YmV^IzzCvf=93 zQ>&XzeRy`Wty@xJZVe5ubVziFUN~>`mfmwC@}09fpPrVG(D&9JO(W;^TElt@nDk;% z5p8SV_S6@@H}6n=%fZBrr|0ISxL+Q)HDTVTQ%8gp{-fY<4X5+dA4c{%nzv`rgb7EM zpZH~M_2vhHe)`|PeZ3=Z`lvIG>RbBl`F=!=ZY!&QQ)l|?3o;v>%nG`4#;OmN-I27Y z{cCqN@3v#W>M_3-#05pU#`Np@`1jwmYdB%e{Oo6n2h-&fsn@rnf0Pv1{6-kU5EK`z9RQ z+JIrFU(IMllOG6-j6Jq#`tqIIpYFeBf5yBn2`wI(^<2)*1&fkThcet~wu{qUYvQC` zLxRKVI(KHfi_-IM9lZR#j#HoRG37sx&7NAjd1&+Dhg=E$Z?F48Xv4*6qy9dB{!?}9 z*6sKB-p`k2ufF-s*vPfx2IRfcgz`T*864W6fK!Ckj1O!oPi9nR4wXw2v0yqGqBef(L zWod1!ES&%j0O?3A3C3Gm8!P)xKwmee=-1y9CpYc?Oh(brGyn9Zvc4}XVI3O;LXz{( z9$6Ik+2@~5NbTd((CfmzmNwi_!XYr`P{GLDt(`wzSGaR{=1|Ux7rUy;l<380Ttyyz zlK)lu*$nsivDrs5a~Jvaq@#RV3oBVCkhpVv!ReyHWk;^{saCJzS37)qkt8eah#bqB zvSU0KOr0~JC~R^n^nw+G01f~K6opMrgG5fd5v+k2za9rrgq*lFOx{9kIje%O3; z`??Yu1 zwWx>pp%#HjUmfp5r6aW_i1(q^cu8Ly??a^{wI-l>C{5xf)LQF`TfXH6NgtTm;R`rU1Wt8`a4~p^V$mqjR zSO!G_4Ge_^;K?ZU^2^0I1<8QS)4(Z+M@K;)PC*JF^DHnM$D^a550~W?K;~J@^m1<& zzOsWyPePx8`ywPz6p+Au5d!d}lwvwm3P#%^m=3j#PEsMhyH65Gn=%HbLv50iRff3; zStM=h;0Uk@PF5MdIj)SPD{i8z&(X|@6OJ6uFIX5IlGm(D{WqWA-+j{jdMmrMZXMR( zfoY-L!$#H`pbuWwp-23)9qP4i&@A}qO*L2b8v15(LB@zOA+`T{`9=w++Gi7hZcF*E zxfQ<~y}|^%+&AInTk?hN171M?^XEA{W4PXP7kZ=+@G@O$`k5^$mJlgNz{~BsQRP;} zLw^wH$rr^Lh|fp7cLrYqZ-V%I#Cz}HOL)27#xF*%4+Qu>HDmC<7SIQMtimVIoliK5 zUyWX20%82Gz;_B8K)?fmmot}iPTCk#xH)5I+_>y#|6D8H%bR{L-5#9K?3I8svuSKj z(UGLlC#r49f3$S<>-bfeq2Tke-8(FIep2F(YtvpT$j)%@7|_1PpGuf9wGC9PFmc?d z`9`zD;H#F%@mc5RN_x#-9If_>{F&jBwr$m-;G{j0*C-%gkl1S05N`|)$x1*L;#mp^yS1KnS03 zvB6isD2&fXyceS|afTuah+q+V5^52_5+I65EUC+{#w~GtKH|NYiWX-mq7ct7#+x8M zAMxJvU;N=o2;cbOiHxLn+z=!Qq+J63RN&;z9 zW*7eqWbnIfnxgC?fnj%Ce9U@;aWIRD%r=aJWzw{+rSnVh8Erlv@!ll}VR48e3Yd%* zp(mjh-)<=ZqJRY61PQ>CQhF0#1tHAmBi@T!Qp6dGD7d`*0xZU1B6NMJ#W>6tO8#3X zo-d8-k$gVlz1=Vl6Nf0GfN_`zJqfkV`P0o&5-cFWBY^8+JUagG!xdrwGv+(g<9FkG z%J_UldvoF@x+1T*`s`KC<7-oX48CSku)EGx3H9pt48Epg{i~Nwsyl0Y*O#u@w7K*1 zYr^&Sp8K|cmvt{^{ab&e_KRDFOi1h+zjD{gaSzroe&#=qD1OfHi_z-?fhhhupYXfU zD@>p@|Mo?LKiU?yhk(<|j8Ow1@-G1c8^FJSy{g~GU!xDd8@<8=?&T|B1MvBX_ip1$ z;C(2ck9hAld5DJ$6*0HL z=Of;W>27g`b`)HTliJ4=Zi$}oZFc|7@8%xLj;kHM(Y>!m=+Khs)hNCs4hudX+r6&s zk>kf4I?&nCD(2A9q@c z5K_Cv#^g0aBa&ZkX}EFB-#Z8f#{MSk zMIRf$3m|`Yd)ok}QNWC9|65t9|t zky;aEB?2ZZtT7Z`+qjW0fqUxse8hWMmoUxa0o+q3&Y7#AW6qAt$N!za%-Lbe$j{rs zU|h$XV)DdSGn;@&U-a_b*e>aY5Ufa`J9E~wWG1!ZdJfE3n1D!M#EgY>q}Bv|p0U8y zeQRK?uZ;n-b!O5lFkqIB)S{p-17>^#$0Ag#s~hYq%f;`JOmi2w(ZVWPtLvL@v}k1# zz!aVdi1bB|!-cC%R=D-c1Vs9x$Lnk6-_^vFs&w`yLH=x=!S6O{VbMAP-|zpz-7nVZ zTB`8nb87gMjwPfvR`z)+12%V!KnUlGC_-D~E#a#*ZOa6Fo*_g`TV`vmAl_q2m~^5{%UG06 zz?WMKaPdMmb+g_t=8r#^R=^p_1Vr{C&PcL}+Sc=!4H!Y#W@@j{mz%-=~&XTG-xWr*3vQoEtKVO16aIWkwxWIApOm>3lxoPEw@!E1BaYRS5}I1MZcgBG2~4=K$DT)VJa!rJlJ5 zN1UWQfFWweNs0)3CEIxJ6yZmv&j>gx)uTZ!0eqrTE>8h9{w-72nUrx0n+b^QMSSdA zHc{JpOZlN;(#3tYCLq!meZGYaCn@RdD+*e?&lZ&BWHd3ogEcugP0Lu6O#oRT zo2Zx`vO}_Jvx4XDj@0eop%Td0FU>yMhxB)=`o*zna z1A-r*+LFW#2)3~Ktq4;genV?Z7*ip(u=%0L;#3H(?fGFFl$SJ`@GocMTa3!n^2cMJ zhj_RJ#2@&}Ya%Af)1Z88F(&vUbIKQTnRs{S-^XdPz=!U@GL&+BW>d!+e|b zW%MO@IdKzRk$IV4)Nvip56@WhRD&*iXFk8b`;__hR))219oD-31Jed~IJ9g3@heu2 zs{Z&xGai1Z-s9KRdT8y)>TUA2{B>4F?%4&G=zIL9`Fj|?u%6FHycd@S#Tm*}uy&5) z4=ZIpuK?A;rP@nt!~1?GqUqi8rS&o{hi9WV;=c- z4PoG31Xl8AHlnD0nm3=1crQ*+;tXXfSUW-Sr>$=UsI8B}@B2#VQAk%iJE?WZbCmxS$b5r87-lestH#pDYo3Issih z>`3ktEz>r>{7!yGihIF>Bbt=bFyDo1VubKE0g<)n+I?vAGGTtVJVwz}i~p#g_7aA=xR*6FMFU zSi5=0k)dhF35tfhCs)^7N$oxLm9{(i-RSi<0bJ$t zH(|cMli!VAe-prcQGO!qI+b>2K;iMbbAFvO_ocS&*5`j&-L>_Jl<Q6b9DNKF-O`u-re!@;pv&qSC`Fgnz25_yB02HcxPm54QF;_c({9a?c!p0_*pO0 zv?UHkkGz~8+t~8Dbc)i)o;~>Gh<%sN6SDP8a7&0SY|@G_#UTx)Js}(b_PEKa!T}(Q zq)i08xU1 z^*8_o0ScDm01yNyT8;xil%QBW4gfKJ!qqqcgb@k}-~bT9Cti#LK%Ak70uBHXdJ<}J z07!r+Ab|rw0G^Ce8~`#X+SkAVV4t0oN*n-EFxnQu0bm=QoI)G`ayZ&m!2w{GoTNG& z0Fpr3l)(XD6P&Cv900ON+S9=SV2_)$DjWdPP}&m00bmQ8yrQsP^0Wd{$>k2-^kf~U zR^RdI@LEsTyKlpkd2h!iuM%Z3cwm;7Z{rem@OyoDM$DNi{>9On-yy+(N5J59qR;;X zs`=jn4jckCIeqBzKLO4E7I5GYFgShaQa}I!pa3$*0s+8*qo7Mu-~kKI1Psqz=utrc z0ic4iXAcB`XErK&G!-WB@JPV$*n{+ zpoX(27X*MOGHTj2H8ybZK)~?Oj%Gy!5CDomd$2(OcmSiQSySW#8#V!h-HcXM1P}nK zNV9zq0BkO*S~XQh@L>`#n5}43MgRez3^mgT0l>tftWi_u1S1v!gVl&Obp#Lq>R7X! z5CAMH>e@7QR&ZhvFc@uUQb+&+pb$303IV`?qOeI*=mo3F1dPf}Xi-T30icq0WiJFk zWhN?HG?ixXszku3)Pe@31P}m9aaS@!08~Pvv_Vtq1~W4O!`y&nwFD3VYI&R85CCQ( zYL_*&c5pKhFigu>R7?N?pcuHx4gp{SqIgkL><7Dw1dNJ{SW-;@0ic?AMLz^UMINe` zG}VUit3bf0u!IHW1P}nqkykK8093%Cd_hz02*dIOjPeV3teyY@Kt1#FjtGGAG}J%V z)LX)_908-;V>~1vfB+zXUd|E$P!0ycLyf=_mKO;a7a!sg1px#A1@()b2!M+$C?07P zrtrK#z_{=T4@d|g07$T3Fhu}dKtb|ABXNak83Cj00sf^SfB>N3UgnAbC?i4huV%}3 z{6v@Y%Hm3WN}l_>AX^eBVh{*sw4q5IfqLq!;KU%HGuqIkkO0o*3Sl#>5C9A)3Y!oB z3Sl#>bVeJR6cRuHD1^|D+B-oiozxYfI`>|E1l7XCWQnL019Cbp019C+R00E#7Hp2=5z<{E#2?3xGHp5D1w4q5M0R(_T*bFNK z00WA`CIo;&*bFP3(S|041P}lUVKb}{01PM!n-BmBVKc0BMjM(G55C9A)3Y!oB3Sl#>bVeJR6cRuHD1^|D+B-oiozxYfI`>|E1l7X zCWQnL019CN~cK+9jFwGViABj5=T13&=KZU6)TEq{&HKH%MrfG0o<00BU|0T2MR{54wp zfOj_no&Yfb1OV*@KmgG4*J$kn-rWdz0>l6i0JIwb0YJ-NqqPrscO&2l5CcE}&~5+( z04;xw);{3fjesXW3;+Q@y8#dYwEQ(%`+#>h0-gXd00aQ-20#GN^4DnX1K!;Tcml)# z5CF6r00BVDU!%1Tcy}Y<2@nH70MKp#1OP36jn+Qk-Hm`JKnwr@K)V4D0JQuyTKj-^ zHv*mjF#rSr?FK*q(DK)4?E~K32zUa-01yDQ8vp^o=N~oE<-D?Z6@5yc`@10iy28En zgcTqlLO>TOMy)sje;;7t&+zhA2)?{u-X;I)5CF8BNT;=jI|6`qA3y-m@<#yB^4DqY z;f?^H-3Jf=wEPhOwET5id$=P2X!ijG04;w604;x=)*kK%0NQ;30YJ+i0YJ-Nr?rPW z0)TcOKmgG4M*z_B*JG;xFY~)_W=X|Eq??6Eq|TX9_|PL z+I;{4K+7KiK+9jJwTC+bfOa210MPPB0MPQ+Y3<>T0HECm5CF9N5dgIOby|D4BLHak z0R#Xoe*^$6f1TDI?g#+deE<~Zz*r6t`1_2BP7!LP5iq1FLC6*X1b{7U(uxoO(ootG(ri_sNEQJ@ zmJoF85kLUg<0h*L0U(Q{Jsr(n8LA`^FeK?f#wGy-fK70c$`AmOK-!eiY}TPn4go`s z3{>nAKmgb!C#MbpAcvz}70qrT>ZA}bq^Ll|HUR{HZFEu!5dcy!+7{7lSE5h`0Yioe zH0%>V0N7_IqY?oigQ9&6&3-8=B@i$qXh1@M00KY&o`g~afCPvF5}H6QO2r8n;u260 zA%Fl7p(kF801#&=qM(TsqgI%JA*=uaAp!^hA$-Ec2moP(LIRplHHt+E7@`8G7bAcG z5aTCWjQ|iOC|0kDm7`jafFW3qazO$J06~C)>ijRN%5fTU{^oF&=fdHW03v^n0xFY~) z_W=X|Eq??6Eq|TX9_|PL+I;{4K+7KiK+9jJwTC+bfOa210MPPB0MPQ+Y3<>T0HECm z5CF9N5dgIOby|D4BLHak0R#Xoe*^$6f1TDI?g#+deEG;xFY~)_W=X|Eq??6Eq|TX9_|PL+I;{4K+7KiK+9jJwTC+bfOa210MPPB0MPQ+ zY3<>T0HECm5CF9NhaIH#CwF%?46aeF39XBuWJ-kcb>X5|VI+Gn)WOHs}5~+lum>yq%f%W*-0UZ$GwV-tqg*e&5Xg z=FPGD?o$K%HM{QS>m*5P*8hpV&qz`u_n(cV##g!jDURE;SGwkgxc+?~elD^>qi@EH z{iyV?R8Uy6pnT}GH|ORhbr|Khaq!zGt3$t9+j{*UGQWFhamurQdwKcIJHMUVWpURg zFAoeJeE(MeDz(d;KhJpL@h{?UpZV&76~}uVjk&AujD24}=Nf(YM?aQbd?RyezUxBY zQ6HCGY~H|aEAZ8!?V;Q~J?jvNe0{elA!^!mk!#@g77ao0+ZS%H3SR>sUx5}r{{Dr( z{kjOkOB?}3oHd;52s8!;u>=Gkjf#EqSAe^G1+0TluL33kVuxQ9YY%r!0t9aZm;{I& z07a}l+%X9dybWLyAa(#`vG#DsBtYyopo+DJJ0<~ww*gE7#14QW)*kMd1PI;+FbNPl z0J2znxMLC^b{kN|+QS`_0KwY;CIMmxKoM&XcT55VZv&VFh#de~tUcT@2@tytsABEm zj!A&vZ2*%1u>+upwTC+<0fM&yOajCXfGpM??wACK-3C;#_Hf4}K=3wzNr2b^P{i89 z9g_gT+W;m3Vh2DLYY%r!0>o|us#trtV-g^E8^9z$>;NcY?ct6|fZ%NalK`;;Ad9t! zJ0<~Qw*ghGJ=`$~5WEdw5+HT}6tVVj$0R`THh@Wh*a48m+QS`_0I}PED%KwEm;_j` z4HV3a7~5mY`l`eEVeSu@12H+3!>6bE_nOrDXRnN+oc#ekb7KlV-SKmg*1!04(xSpx zHaP$3K||)8>XCkc7~np`b+|bi$n#7cX3Wsp_7NcO=H9U0T%oql;D{ z$`}bab3#^)9Fy7a53^qyx-74}xGH&5ml-h;!D~NHEsfv)-MNUgnQxxEH9PoFZ1E3~ z-P)Wx>-hfow{JW+wetH@f9w=}P1CWC^+l)4-kQF3%}*mo#P#dgYVMBhd-@Fwn0mNt zXnt_3ai_-Dyz<6`ss+jU)Anp^lib^}G9s%_$<70{o7)Wec;W{m)1I4pETf;>v{`{) z{*ah$EAu-X>-y23&Q}Mz9LKXWt4BGue!1sDRM}=fjW>!-LIVnO(Y?E-M)$a{d)Fa( zd-pvxC}C-_n#WtCueSbZM7$i^773j7fW@|I^QYU)1(M=bl3z zoKiht?CH@XNAEm$a!B_6kCUH!X7BI6O7-iuGxLR+x4M2equEbAuHTovb-gp;?u45s z4vJnrYCy!8z8hx0essyIZs~E3JJMqcjx7(1ozXkB(Nqg?vr!SrfZgo}m_#uBhpZw|e<>T)fwlAbtb#>pUAq|%PUSs_+ zqtJlDT-4#-=YnFwn`g{Fb^IMi*;@DBv~%9F=?fF2=6!n3Jos@_a#4C_NxM@S$$5>6 zw?|%EI=M@?$t&MG`qavQ`uC}95MHo-_rx`?X{{3mPm2m`nS1c0g5{@PTd`!8`zSUu z^TP)3y_flLqhI|cg-(62|FhDKH!gqYwz`khmQCWHmwHqjeo)IAgQP`;wQR`?&r0t9 z^>yn!H>d7{ZArU3f7V=*9RKvnFQm?;`+oOx(Xao-b&Oxr;Pv;h3$3M*gXe#DxWp-T%M|EiXl@5M_)6LLUph98 zt*bs+z4dSR5KTOb@6b-LXmvoDcLMU9cRNpged)>vTt_}Fy8p>X-xzmz|F7jC zhvKrnJ2&RK&z~v%pkcs_CqGobIlT1wW*f@$5*u7Iy}f%{ye_$*p_$_Ltt;GRHkd4v4wW@9as zj`=L*LDv??y2Y1{JAU<+ln=ic732_n=%*gpy{q@;M}M_iBK~};*TxNtBkVfp3O|}M zrqkws9-cKTcKzB3g<8iLVlLiP2RAlz?~beD z|NT(w_@t!oue#%|lh0K)yyvceHXr?X<3IgHzU{rM?s)(Ezuw;Asm?9lelu^y-ly+; zZQ8|(nvETG!1-TmvVL04VZS~TD*iQMkpJc{do9h)`8c*Fwfom?dufe!(*N4qzhd7{ z=+U$7G*?bVLTPfbt?&oioM5C$;AYKI6xu~V!I79Zq*r8b{pm>^x~kTt10DU)#2W!;Uiaoj`RnfPGV}2h zh3yk-oeTdsJ>;dHQ(n8tTTgdA4pwzQGSeiZBx{9xRGMVhR)?QE;0V09eMewLMacA* zqsLF(=07k%&+hQcotb9V0DbBuFf(@29VN5k#>Z70dp@+LU&6$Rb5drlSdn&L{wp_W zoz@_PFu@>z@LC)Y|3LZ9S8rL6xBgmbadz0Q*N2a(IQ?$64tX5%>VRaX$%~m`aX;1rxb8l?oT@_>Dosp>) z8Q(tg@-6)&>Gd@&AGlVB0w#qzAem^QzFe2tYD*nmuhY>6O^g#ztNa(r_e#>m(f=6e zc|@eg)WgJc0vSvF6Ny8s4#thpLl1%4;>9cd(_G)}zvte)acz5FtuE-W5y6yP3HU| zAr;>)k8d*hSn-aGu{U)ZwsFmbDc9F|yzk`*%}X_})$~1`g4~Ln!p!{IBZV*cw;jB2 z?bzDmyVqrhjSq8A``xd#{pm=aqF1BVG=YrrIQPjg&r9|)gT&5ZnzFu*>Ys@mC%Pfl z2_W1T>n54B7p9anIy~xr#4f-Cqj?P+yP9Xmr{@#&``eHLd@$Fqf)uEqjXgC;0ed*t z>w;aNUNkmUU>C3nbbU6M4%bJPlE0wEVRBm zkZ6KMCIX{~=X^R7_e)?OV8W}T^XIy~xd!#WR& z3>yFR^6e#Fsu`To)k8of4n0XM7yyz8=Vj$3x*(2&=zQ2~aU8_XkVyf@K}`5Kbk_Vy zt6y|+Ao>dnYyQH4s5M-5tKvXZH!5oyD)hWlcjIh+4x{w<-=qb)&MV zAws|+uzF>2AgY&?MeT4PY7tnyvMRkHE{oCmu-CqiQ_}1ZSrl+enuQ*ZzE99aa7}>D zhrJdl%+8QWLHUv19lHRX4|^>>gV-4|Dd01R2_JiB+#A8pkVyg81eow~=!|Ou93Zkt z;F^_}kxkN1iRu|I24L z|EbN*T^sJ{mmKkWk)!Gp;=z|oW)}b9<)$t#&n8&Ba=svc1N}{60O)+!YrQ;a?B#3I z*!_K7L2XATa1Xs2waf&N0n7;51n?2W#*ekPiUD9n$k^ZWi%#`x;3%kmHhgMu7|MsE zX%&0~nMTK@BQk&sMg|dN00TUhu0^SZ|5_9hTfTkWEq5me+!7pJdHVXG-kx9c^Y)AI zm>si#r}Ql-xe(Di(sl0Y^~ar+M;;v!SngW#a_>EE+;LczKE}{&A40_OS}jaf9bz@<*1ym6Kjs-OX`{I z?$JlKEUx=Lu#8vloB!u_bGFm|A#UGS@f9+>hUIddjF|FI-dnW56?N_!si3&B=!=9C zd*6+zYvbkS*uj_UV2KxjPafJZYuvg9QuxuW&8xO~;={`U8!mD1Vo&JoA9g^JLUSJW zTwEuEooI`5j06x~i_^2GxPRMd=dc5}j;oVQqU)}vSEJS}0cUm-zkggMg}Mg!h#c-$ zr{d+5qo6xd%)Y<>H~lj9q(@H}{zcctVb@4!9sa9^_O4rXm3qj#j2tTrjy2<*k?5*C zy?e&WPokXnNVydYbN1(rO>hib?>VRP`p$oJ8NT(s)?Ib|L98HV`veePiv|DQ*D$*H z&2??#_Ow;ErPt=2ul#0rU~R=ibp{)5-r#{XFR_#1EF0Fja4v!OkeyHMWsCkVCq2sD>q=ZGE3Cdn|u58w>1rfPZ z9EaMEe=u!Iznq|s!zxZ?g?KtV_dNAQh+=L@0O7WnUb$;PKuvCPz|@lq9O>nI^M=K3 zs6HJL8(vWy?m4JaiL+yba|XSdXpKb!1UmMr$bGwg;(w3KFxxbM&Wfhw5i{X|E0+Wi z?u%X$onFm-ZG2Bqp%ca#d8;=G+&p15VQ>1_1H2KkwjKwg*7EhL?&W*xLNTrOijb{A z61_XFcF_5-*WxNTJ3}S~_q9LT3+G*Fba>R^Oau>#3>r7n`(h8E^I@;W9>C6!Ndf2L znDDW8#zdH%A&UYg!YuSS^u5lHMD80G$teE%pF* zhD-`L6~u&(y)!1l>LJd8V1V}h868RNyhbrM|>N1=2+?6n7Q zIe;A^lLC%{nDDW8#^nHZhD-|dhXC-5025ptopBVT1Co_ZlIY?%3ZnC2uRVYaV28-0 zfJ?$m_}Dws@4dyXx$K1L3Q6<k^G^Y2)bMkaP%(d!Dx&+Qe(D|^}{y>+&OpMNly*7z1fjxlE zhrRXyjzifYvMAub6c&0M`r?WV2Z$^ZtFNW^#&IZ}4|^>x2(U9`QOLj#;j-Z4&=;pe zIY4BQ7(%}!gP9l$Ts?gidLx_;rSoB~bp^Gkek(Tirb)NN<|S6;b}E^D@{X3nhc7NMW(tfZCMq-=1ELT4n;CpMk7jr3d{Zs{W3s z(Mceb-VOsm=fhq*5_4g8h%5@23$xJU(HDn7JSdviP`lClVlGVQW4<=B^msx*RYh3b z`8KP<@=`Ap@5{1l`<=)djIr3mEGgY%R`nej5)D8#IuaWEzF6o*ijx=nUYm|t}yLlQ7cF7w`bP%Dff59JEoO* z?s1ZLe02}yKVo0XzPDRp`{_s)x|L7fOk@ahIq!TN4P+j;`q%jDn7B-Efe znqMMNUDz`se5@o54Gt)ZKIggTtfj__NDUlRT>{AW4>ha$r_>3zM3v3&*FYLH$S-eN zm1kZ?kM<9-CgH>~7C8|p4sxCUXuAKwO=TYxN(FB_B9CmE@?n1TQO`%% ztCUHg*hIT6Sh5|;l>dAh4jSoEO>q(tX&NA9MG!o%sVZBca&8TCw1x@;x< zasLkigx8`PQt4b7AZlN;&rj*cLxQhejS%q^HIKYK~98Y7|~jD5mQc0EF208W(395 zy8qYqKU&|@C6PLGKJ2x)>y(`#lR^@4nw}8DvmXQy{)=7)0GCbpBfm^heMjSUSqt|( z1<#-nM0hVMUUmaKgT|XUq37)kydTjXi@XWkrtu;kK1Lk#hED2v+YRs#2uY0hGA_sR zCTdX6%d@b!1Za?_;pTlcUgYDKI7MU_tHBQU)7#@Vcsd{UT3m5pXUL?WF)x0H{8D)A z226-`blyvEgLBk$KJ2yL&QY^FK!Hj?)|eRIM)bgLKmg&sm_)x~T)^EBf|nD(Zg4pd zF-u4TG2Ab?CVlwKpYHrz>;En_`OhDChJpaXeNm=goWxZ#?!*Z}Z&%Ie<3osH(F6gF zd-Pip2TIrtOmH>S1-pSET>KlW^+ocBxPZx@HdWEv1x#GWr{d#KsUs3_9iIbds)Two zwOaB#%|&m5S|$QoC+&zdkZ?Bz6Ji~mAE39v#e6y+_F9c=`F+WY`S>tm=S)}7GYa@H zqBCT#^>S+$b^~_AbcK3OoPPMsbwoehUPJ)lzKFZ*xFaP* zPdeih$v9VIJx0@;;|YH{ANE>3_uJvah@CTCL3b|T)<-%>_FCKl%+8QWp@Zgq7Ik|F zA&YPzfN)>bKNQ5}XYOm_^Mavt0@xSmeAsLC?+ff+P@odPF)J01O_exiwF$I$8*h*6 zcvnCRCIT(A?!O=u2VYGTV39Kc=a%#|LNfYfl>2M&fBjOg&oBQb(26^fR9E}Pv5(Yt zJSojgPfIMU>UDDO!PnRB|NP-sliq#z@ea!$j_dIE;Lif(g|i>)zGeIaoi|1{eyHz) z(Qh{T%jASxXUi`&z3tlBH~fBIhjD9Dn*Mp>tgNpK%Zp0MyBB`_R*1g~6MIgmKK39{ zYWHFfSMIw<+hSx2J2A@cLII^qge~`}VNj>{}`G2mU=j%2wrM7yIF{QSe zux@=!sdb~WxS^u`{U`2yg-C@Ai&q5ldagF%0M_d51P8EI6V|Jb16aMJEN`d#i?Tv3 zUlm_B(0%rGFcILs4vydZFV2YZOLU%(YQA}L)QdxN4h2?KA77jpZ5kAEn6&4}Mx z`M6T#>5IMn10xH+lE(L39b59j@WjfKJ=2OmZ{^|Q1v{?XS+w;Gj6HI4i+|pz3CB+- z1ofJFc+ISu6A|fgDGyCMHa9Hpg6AhJF$J**zHV9d*;#Fe+?c$1%FzpphdIy1Cl8Bx z%~7(a)v)RgFK#+s_Q1m0k{wdc|wQ)rq zZ6}2~wq7&czsNH%xS_-}Qs$05qDT6TyGklJv8&mXuRV9}B4U`KvI(e@$2=@aKU_1{ zGk3&UdN!KOy)*Jko6U7kUDl+8t_i49!zCoc%vju`MTBFv<-E;2~JZo zB4zGgP!Te0#{Az^zSafcj=Up$MzxUO|kpjInY7Gz=v2g0C zon1S5KEou*%PxRxGzQ3;X{tZ&&8VY~0Rm6ednSw!!Ck`y5blf5QLn5#PxxV?LIB~u zSnr-e&OvaIi#z+v1##l*avlPgaIQ-rd<|>lw+0k3MYv=lhP#F<{YVNosc0axvIzNY zC0#?>$ZtcqEN_hbwj8lu1LU_}QkJ(vep`;%hyn832rWz7BEK!gYgiolZ5WwV9dQ2K zDzfHuasJ#KH~zg;>ivn!$m^^~E>pzy@5^wATzHB;)%foXBR{Vp9;*JCgjN40 zHKQxzOQ`95*lX!K1kRna6E>uPxwj!)RyNih+o4vj1+?7+me7xA2}ZbgjR3-Z5$Ddi zBQ-0C{5DI@l77f-~ zRV6OBQX8Yv1OeTLQK2Tp(ZvV>-Lq{x>1_n7nYQ$cNp}&FxCMa#!hO+LY~x%A_W`(E z5a&WJ=OKDYq3<8Ww;QSCEjyxDpTWO6QFb;dO}8E5a|~rJVQnZyeR4^~hH~ zYdP)d9|HdVS;9&GcLr_$EcM%tZEiXg*>Y0L$u-H-jQZ{HUE-(Qimxd5{C7$va6RH;qI~08`^FH#*PXw9#(HO7!Run8`H;l7~^GiYu)D^ zr&zrvKCgd2{X|wMz1rvTu>&x8jSAzzj-0BX`!U(oR2fvV6EJqU5aYp4oUUMSJn(QP z9Vc^blILgc>X&I!e-&zY5HNVU5#zxFI!#0GuXCxynMax?>dX)@c;*-5VFt2+J_g6* zRs+&#YKFj*^iG56)u?4AVC+kHFdodny$E1Dya2Mf8slLza4&Yo#^V4^6nf#wS{+LN z4Xg}$HLE-N8~rg;jEBYBOcMPvE5RT8hsDETbpL2>_4@d_zS@pX;4HlwwWbM#yEeCP zTXjA)DDC)xucy`&oIKKXP-1lDe@;4)H%${R7!?8tx5b4$;>sWO&;4?oI%Jk3%~||Y zQ0%dDAzAL3we&pGb0f{je*QL9*?ASMd&${TU zgmO=FdeW176mB>q81q^TFZy6j&WVo(jgPL)U6USFbi7r_L)HJT7?4#{5*L|&sJ+MM zNxd&(t#HPR0K#i=#jb>~obToY#x{`Brq%xV=hQ=G^Mf{fu9joJ;su#Wr%&0Z>&A^) z9$OY4*H9Xt+c?o#JgQD`$x@v!;^YhFI!wb+f9HbQsG#vXo$1-*uacUFH66I%fS(@sO3xRG2;o++)W^y}sURpsRG>qJ(h?6K8#LwVIkYv1)wS zM~-3Zo7UIimvS8a{=$OqUxQY)EqKd6t<;%NCiN;QEgzqd?LV`&Br99To`MU+e8=LF znws1@_S7jyoI61_Iv4r5%F45w`_C$h&K|dImZM#M)#2AJHLd>-Jj_r(8>X6!xZ0?i zHu;r%O3$o`8+&MS;koid6OZgan)=}B_N|huFBWF&kk7!iG98r6G$|OAKK0b1#H!Lo z{^=KL$`>5W$*Fy#VxObB;QZmkdIWK~Mh_)3ZPX?~z2goqE!2@Ml7y+e8N?j>;F=3Z zm?oq!Ei?g*XBQkn@uX=&>qZlO(1jlXOuPB9G^Kx6TG{8*Y%!X&^9HI98S z3E&9RgcK$LCZO@`f=K{RnkKX`2`~YTV;4*UIKng|g-L)JY8?Au62K9r2`NkhOhDt= z1(N`tG>vOv5@4Je*B+PzaK&j{43hxk%y{;|B!DMP6Iz%An1IH!3nl?PX&TqUB)~W` zu01db;EL0*7$yORk@4+-NdRA-hSe|$FpP|A2TTIE;xsOXNq})?Tzg;=z!j%qF-!ss zBjeivlK{RvjjCZ1V3Zi=_Lu~425M9elK`W{__oI+fGRb*gV}Eg5I@WD zn|c&jOQ5l}@=*6eK=x9PYHJCo*2+WO8vz7>H$v9dBLJ-B>rGwu)&TXE5>PEwhqzY) z2mr5$ENy@QuoSOXaoKANG_aC@YNa@|y%RtHcxPl~3j~0bbiHfK-kYF>g#=U!wIQv8 z00KYJpZ9wL&AS2&h&GLsuUG1b{wHR<%L^SVdN!uB@*aT3JLuwMZAT zItd^Ebb_*|83Mo}usUUBo$b)f8Um^{vQX7a00E$vlr`-T0M>BTt19blh<26`P%Tk~ zsBQuX0Nto8X@~%@1gmaQS$9h`w1R+Yg(x)j6F>myXJti81b`J(^=r!do1&!!1XK$& zA!&dB0>A()3z{MTEP!f2QZ~>QP5Bd0`Ab642mu6u5nBA)A^`X^HKHgRX^ghq38>r^ zA!vvI0>BV1?u`)u+>sg*lnu2;W8MT*-h$9GMgRd|j2G|L2mszhjp@n8nxi#m0xD-c z$QdMn05AxQb8`d$XP^e5j5DeZ;7LH`DF!X$1P}nmneps_0N_c}xRz|Z3wm%QpmNlL zlnDX|029zSc0mAeglR%bHqi%N_z_S|N&Q3aA-g-ieA8dg1b`+M+X@xi zoM5C$00E$h#kN8OfNiKXjSv8uSZpg)Y;%Hj;pBLsjZ7TXFH+nive zNdN($iN&@;1b}U*HH{DenpkWrRBUsCktP8IfF>5(3K0Odq1H4)0BB;dtx&Pe2}YU( z5CEE3Y%4?n*oIou2mzpp#kNAlHYXTq55(3KiR&V5CU^0icP+ zwn7AeZKySk5CEE3Y%5f3bApj30R(_17TXFD0JfplG(rGqVzI4IvCRoangkF4npkWr zL;%=^TGI#tpozt{Ld7;G7-1b`+M+X@xioM5C$00E$h#kN8O zfNiKXjly#@i?7JS$iEb*jno#BdZ6}=Yuj~Rd2OSpiZ)l|nzF7`T6x}JKUNX8{uzfR zu4u?6!Q49{>&xcMB1{4*Q*U%;CU6zA0t8qHG-m0HzRUz0hAYq<>YQ8Ia@*sc!;6c&6 z1_Ho5J03k{9wN{%O+Yo>6CJq_Kmc&TXj%jTU>Y5ljxrY&h?pgyn(c^wdQR{LpM$Y5CEJ&nv_8Rm;}eEo6JcEGUf=V=DML5F9HYvUL?)w zAOOs9C&ko;_rqV$d>7KsDS09k>!e0C2@=SPTJR7#Y_NGFLT-86}_^?SS@t2_OLY@-(W3 z05D37Z+n@q9MlXFPz|<6bIt@10GxpultTa*1jf0!%vld|#t5j!nxi#u0tf)!M2+bo z0F3eC-CE`?2t7jtR70)Nm^%Rk0C%K@1Q7s+aB*)eb613*5dx}_#%Rl*00MwNQzME9 z03)>cx0U%zLeT&L)j(S`wSWKuzyhcSBoP1xU|G;qwm=h-`U$A|o1&!^1P}mLP}Q%A z0MO6Mik7k!qR`Y$K-Jw64J{#n0I&qBZczk)Zd8^ulr2&H-w{<4ZUYDavHTGLV)-j#?ct695W5W^0L1b~0Ep$Uh_#110zm9GfB+E7 z9|0hizarKi?g#*}+W-PUEPn)mSpJGwd$=P2#BKu!0I~cL0Al$oV(sCM01&$kAOOVj zM*xWBuZXpWI|4xLHh=&S%O3$CmcJs_9_|PLvD*LwKrDX*fLQ*DSbMl50K{$s2mrDC z5ddQOD`M^8jsOt54Ilu-@<#xO<*$gfhdTm5>^6V^5X&C{AeO%()*kK%0I}Nu0zfQ( z1b|rnidcKNBLKv10|)@I{1E_R`72`W;f??hyA2=!#PUY~h~=+{wTC+bKZUYDavHTGLV)-j#?ct695W5W^0L1b~ z0Ep$Uh_#110zm9GfB+E7UpoMJ_+7KDA0$ z`P93;^4@IYD{qy2YK>%{dbd~Jn^mv8Rr0MhLI8*zZv=o?{<2tmpLbV%o`7Hg2mrAI zfB+E7Ulwcc^X{t86A%ml0U&k&5CCHN%VO<)-d**10)hb`0K^Ue0zfQ(S**R!yQ@A= zKrjFVfY<>*0Ep!;i?#Q8ch%LAeO%@ z*52pcRi7sy7ytr5>;NDD#PXNL+WWk_>hlBy13&32@AK}e&l3;~00AI&01yCT`O9MMecoO5c>;m~AOOS;00KZPe_5=(&%3KW zPe3pL1c2B9Kmds4FN?MJd3V+42?z#&01!I>2mrDCWwG`?@2>hh0l@$e0AdFK0U(yY zEY{xV-Bq6_AQ%7wK*hr5X)Z{Ywz>!s?QS;3;+Qjb^s6nV)@Hr?S0-|^?3q<0U!Xx4gdl`EPq+7{jc3S zKOC;Om%r`YI6M8q)xWOsnZFzP%sag@-)M^~bG3YCtrVYmr&s73ZE%IIm#?fA0zm9Y zBLKwmSH#-G9RVPA8$bYv<&OXm%U=;|4|fEB*lhp-AeKJ@KrDYntUcTj0AjZR1b|rn z2mrDC6|wekM*xW31`q&Z`6B?t@>j&#!yN%2b{jwdh~fY@yS0U(w? z0zfQ(MXWvC5ddPh0R(_p{s;iE{1vhGa7O@$-3AZ5l3qg2 literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_3d_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_3d_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..8124124cb6619e43045cc9cc8913bd8cb836bce3 GIT binary patch literal 404592 zcmeHQ349bq)^896MFDjMSCGWx6BPsm<%Yy##cPFC5S1fQTu?z0&IEFe@+q%M z>h8HipBsF`b+=t72*M3dJ^A?ag3t^Fn+YwNqMw48t$zyFbm{%n+SlKH5&nO_Z_m5^ zFB?Do;N5!%FMRUiO=oY~^XQ`!W*>>DI2lovF{P$_5TXwkAOHve0)PM@00;mAfB+x> z2mk_r03ZMe00MvjAOHve0)PM@00;mAfB+x>2mk_r03ZMe00MvjAOHve0)PM@00;mA zfB+x>2mk_r03ZMe00MvjAOHve0)PM@00;mAfB+x>2mk_r03ZMe00MvjAOHve0)PM@ z00;mAfB+x>2mk_r03ZMe00MvjAOHve0)PM@00;mAfB+x>2mk_r03ZMe00MvjAOHw7 za0LFhf%9K4+0R-qWYC)r-If_$@qi!%_FDY*L$@U+CVE&sGI8VYZ(PXB6F)LTyIM4% zuUo}WGa<Qz4xu;X7l$4YM z=ccVZ_~_j?ohzC(b?Vf`ix(e0a%9oJ|NXHY4x$Bdk=lDgp5CS)){jJ~9F)zP7cjs&CUb;|F(7naG z8#X+=EG_rWrO&PT_S>IOYL^+|;kP#1e)K3Zt4p72K701;RmdtM`JmjT&yA0a?BKk3@xi>r{6PZ> z_x7x+s#^78&c5E6%`zhLx4p9J8WNk2k`f`!A_B*fqS_0;p6+qYH6rMf(to&m*-KrT z3ZXfN9uRiEb|XrAqu1i}N$s3V`-io;?!C2Z*CO|-vv4>wvpK2dJ4lI;W)XpYOIr!w zr@h_m5k%*=Nt=)jbIeG*K_nU|DY{#4y)|&NSh=jilz{wc{XTi} z)XCU@Ycirr(wqB55+@04VqwtP5%urT>Z@V*FF$bZtqn(WiXQ!P=%%!)3+q$P7xlxb zSC*cPU9ez*U)1H_FJ0;}>DcCr$oUJn^z&VKK`{=pBB5e2&42N}F{4JEDlA)*T-`4| zC7}55*s#1~Gqab5MOPJ#@Q+VveZvj8xw%cYjG7c49v%_VK5)Y;1N-&6zwNxht_$0D z?3j^}am~m$=l%DKi;D|(whQ`j{``)9epdw!iXXE4d9;3a&g+)6 zdEL5;yV{3bE-A^}77-Q|RrTeZjcH+Z0Tf>(IkMv-(4IrmyvOg{Hm3C>ZKfrrKl)|&fdi$b6xLwf2&FXM zKYZSeiK{D`RYpb^#vh8C*mK(ZZ!YcCWaOUjL;By{`QB+C&0pKAe|r0;wtm^-;{W~Y z+E0E8{qV@aH(q`0!*|BKas8{CZyb_!^*_FQ<&6hUq^(Xru`K8LqwSivf9C9mcisL( z|K$gIWJZznHrDkkFWPa|*)NAgUs|wj+qRHxMTgoY6}2sAhZNNbS>*NJ+`@Yx?Gz4qE`GiJ<~GDW-%t$Q&~?@?+SZG%F_=HwD|Tm96j zQvuZ%W2a{CUpg?NIBWat35UKV>=fDDGB3H3V^dSwhituAoECykd8Ccszhvg6UpguH zbLMW!9Mr#mVpK)(XPrm1YSoH(4+n2fK>*L9#W$nolS{VcZ_AI$-|^#*KVCY$#{?A` zb!+J_tsl4Vn-^A;mzNJ6{^Yx&RNradu{19%xurF_w$)y?Vnz1la|h6kIKfevosxfe z-ANSnlArGvfQ~J{yJgFkgDXdL>(Zr5P*MkPE&EW>?YG}HC0FIX_uhNxpcES4MVBx8k^v*Mzxd*d zTRU|4HX)$$ctbw%*jdRfp0)R}7kd;-|UaeDh66 zC@ZIiik+AE?QGx#^6&MCmwnCu{o_q$5a(HZ{2agtjlLR4Z1itv!=S_rNkKz zc;V~NcglZ~lVi|fEpHklWJa8y+%>qoqGI>%-StMt3Ll?3yl(88ZN*31C71q92uEgU z<#juD>|k`fHnW`Q`t#2}_wL<$d)ToiLP>g<-zyWm40P|;uU|kwYi|N06i7V5#i)R? zo)|p1{zyvLicSId56f#NWUY^{ns`%X!JGi%0VsB#e3JX$|Nghvq+=}v=i$S*qMLPw zL0e|HhEKX-f#@>}yGC7Dx4V1){uO(Is<}LF3#}QbnmQ&TH$5!#qjTrpG*HV`^sM0; z^{hhZ&Ra$-88CCo>0duv*md*|=l;96-Z1FgKD+rQbOLqak?(Hl{9^F9apQ6ht-`n) zE;<}{v*$*Gmr?PBBZcUkO}Cf7J9T2`yx!^44*1oS4#tqEyJ+_wJ-!>a@3!Dclkygg zk6W~OG3MAjiI!%Lgz|ru+@a>NAhT;cwrXqWqH?ZJ8Pva5ug_l}H|`92AO$_nV#21X zQL-&odVWN5zaBk$JoM1_Xwg4C=TKDHo}i3v5hcS%jP|U}{`>d*Z6z7ATMr5^+}9gZFm>3Y%SA<_qlyj+ zj{KOKiu|OCu9LQ$ZmZ?Tf9bS8p6X=e53V;F_-v~@(>wXd=E*0~<2+$Gt2R|vW(VLs z)S^~fDYyFhCFgETOGsF=Ccm<*Q24l+nghW z`1|e0L|)u^=x9()dFt5R^P30-C+2ml&T1Y|S1e)eI_KZse@t}Q>ATTWz?TLOx^$y} zjwRP@N-A1)cWgj)>C&)_Yvme_?D&}IY19592wBIrOhr$gi5Us!o#k)KC0xJ3sUz25 z(l)-fBsQjQr%qy}M^d6^?0H}lYCP-0k@b%~_E?>;p>5PD8tIUX55qEMX8-xk3+=j% zIrjaV2b|8p3AsPM*K*~HtGpr^g!WN0r>BlaM0Use)%>wANtDmBgfWK;Lezw_l9!al zsFMtNGg;`=VA-!DlD?Z&^w!>#6!Elee8sVBMA3m9^W76tS0jI_PjqD;tc|*g7F<3s zBqU?&Us3zW*C9SkSqH4GeLHRA+_`hnPAS^^4?_E*!npC{2P^lJK8zJF+1P)~X58OE z7iP_x^<4a*fqnY45c{cNim01r8xK$m%k#c7p%U#BH-=xA2uZ1bI&~;(GzxMWo780@lx~{ z!o*d7A2MW3P;#R@!>R`xGk;k^^!hh353KZ5P<1zTtw42@6?5E;+}}wIOYfBD4@;GgrTS5vMSQm6h*TWBQc>R}8 z`{!-GN)QjeXI2+)TJCpp$z@B-f)Se9_(onk%a|po2ppBSufZMV}EUp+X>V`0Zsw@WpZent~pxQbM3Q zsuOddqh?cUs;i#rIP=sev{xAD&}iJ*!w&wQGYES<#H0b$7Nml<>{q?Kew=vdw;&~^ zdMdIn=+XJ|hf_y+ma~q8r!mjFj)V|6{D10)#aou}DHVdi;Z^yuqp-!~q&_pSQ)0_J z@KPyxGSHhELlSd0CY;a7=^s-)K)Cyn;q?Ot4~GpP;Qs)dNw(XpsvCa!_rVJ;U%uR- z-?SD&UUE(K@@E#FC^)`DRR|&+2t4`e-A{4S!)vkw zV$j_p~;rwkH_!7*Pr9e%D&d?u%5~@ zuv_NXxpU_ypL~MO$qcM4K<9mT3>-Lcd`et;a!k!TS7E}g*O=57=Ke!CWTfEDUlBGI z9R8V+HIp&gMoKpbuhEe(Yv$!A)ZIdc96!aadC`};2E;5Qptn`VzS}7`?;H|Seqa-N zlMQqyv+cd=Q+$7xZIdLv_8*5sD1PWRrWos|ge5qnj;(nPbSKvH#<2=1* zVM%UU7|2o+nKacta7U2iMNXJ^JOBcL?IM za4S}h>z-27_`ESTQ^(nr?z;#E#;a7EbaD3U`@#x-LL3K&8 zpMah~7^)Q0-QO_oImwJR#$TGD)H_D?5EodngUavy{DF}((6gmY4{x44HYO%ueuuuw z9fnVb!BHv#l(?7SDH14sb#LzDj30aou{ENbvZLqt{nxi@)wOF^@mX#3X1HDG#W&3Z zO1Gm;IkZz(gr39Q9IB)w&32s4T6F0ecGEOniG0(V!-YXgpasD>C;D<{&j^qLoU5qS zTh9DjeErI=o!1;&`zm_iwY?)OGb$`4ZeY8vqm&c_KdmoEvXorad6@2h+44@5Eb;kX z^g259CC17PYogu`4i1ivu14>{+Id&(0Hu}`gr~3tPMt$jFBrh|je@5?)bJ^Cq~LGr z8HQ)e@q!;)cH4^n$Z_{CasgE*yvNDXv;>o zlAtU6DaJ7Foa2JiQt+nWbqO+MpNsL5;tt{S00$f!W(>Ocgu`TkH>9AX=bxLLGs4IJ zQ6E?Ie~NWP8qYN%IYnn`JBW=xTz)Eca2a5Am1X@^Tad~eDa^TLr>Q64V_H{6*rE!R zR}w{fP&Fm){zh$3lx4;7pp4^nm3absv5PX!x)Go=&@qs40qNLNOu;F65_HaNb8R=M z2)ZLrC0wUW))Sc^zO>DIsYj0EZf_0>skJcHkgBA~h`MzhiDRP$X#kZgg_}%V*W;p8 zvdkJVs2t~-N2aJ6dmHlF)Mbd>{o=VYq*-YTHUAxMcZ)pqltK9nq#B=bpUb=A38uSBIo0 z7j4PV(Jh84dn!267e1#Ncb*(6pksDScicI3+sGL~{n+HytQd+RAH}TkBuBvpSj`(aAG-_0hbY6Kcfl$xvZEyl9 zNFpKtD`FxnwU-DhVh`3?H8(eFen)iN)lKKbXZ8=e=godST79};_{hKBbu{adW>=4B zcjG_qix~Q^wyj4Fm^Od8e~Y#whPIs5=E5Bv=be4JRmX3Sws`uJ!#~`4|0@qJ8}{W( zzrEl6eB?_x&;D_yCa=)bMC}IdWj5!)??Et2L#7D?hOz7T?8Y^_*+!H*l-*Yl02?3c zxo@b>bZO|V)ucdz%?PlyJP5#MxV7X!09s6HGsU4gTB&I{n7t38DGv#T5qN@K1FSF` zAM3eavq>eJm~`u6Mh1A39)%|ix=b09KrYW&F5>7(&~Mdwz;Uz1e4Va=+X zA6BdXRijVSOT#=6eR-DW!jFubH1J5YFSDm@LlcQj{5r+YnHOfKTvb{yCm?d#v}wC< z58HbAk7ooS3w?ICfB*idor;PIXJSUt>ZME3iJDOPwLrd6gTl~#eLLIKw=0TF*2(oc)`Ang7d33g zjJW9XH-pEIZ;rmV+q`*mLHsVY>m#Z@T1zJM9nYqGMM;IbGmatAmllLy`lVAq`R}nO zo(U@d1APnGFQ)P$`VKkz%5HTA-MX#tcF0l9Z&0aEfKj{y+ zGg<&0NN+y4Yfrc2>xGw6Z}BVpd9YMw#OhH;GBO4Y7*M&ZcT$rq^a=XX-2v6I&(OUG z--WsGPHpqLDS^Yimu}%kSRg+lvm&(c%-;p)@4w%;e`$Z|3oYn-Em7J1Gy7&&{?utu z6JgJHS;c7~0RsjMK=0k3S$O7`Uw$ddNk#Ae8Y2O=?EjvB`o86aKbYlm$l`B=Fx%hd zwVO8088K$&)k49Vn5vd(X=!2;1v~tzLtp+pCv{EDsZIe+9IIA6uoZpSGBYi0$GG(` ze}4MmH8c02PmpyTv$cg-Tsb+s(?ky8FK{z$1jVM{QX}B}uFDrwn+oVdz3+*;;DJT+ z!?s@4I-s(<5WIiOk%`r1DKXKNC;bAZp4q#o=lDUz>tdHKS@Pk79g(M+o<3Tn<)F;E z<$qDPB)}dP28flYqkZp5!5=me4rgTS8n<55Xazst6+1B`#Lv$!rf_j)GvUI83xbeT zxHP}=9QrOv(VCcT8#WZ>hQw6N_N(+ivjo*}V0I1T=Oru-Q7Z_H2|s@Il77>#6V@gs z&O3Q>tVpXQGbW%KIV6%CR*%^>D>5>&B6m}KKukw*L%w^q&hZd@8^sELjlOPHPEbw1 zjhi+#5h5ZY!t=IdBSakM(RZ0je{7c|q2nC4{t?NS_?qSW`w${&M=@!$1(9aCqF#o;E&ObLPxB7#n^0E@5HU(fy{M z|MR2vz2hP;J(aa?cgK;bMT^GAAsNQhRBfJo61jkAgEKRzFZ=DW){=)$SP8gR2N<$&!UY4wQZy?GZEc~?Zy{}3J|T5=Rq>|e^vulU!u|a( z9v&OpWHZV|TVNRl@Ano2^g31XZ4BC-H?X<}hAO-Xp@OK-7gm!TR{B3%?Kc+lF-NmZ{l;3f^gbYh*)S%bkWMm;<{ZZ_}1B54Zx7GCe9iyy^Qq-A!DEImc5SzN+Z^^8l1}YdUTC%nBLQG|gX2) zP)ESa&4K`AB~`p6lT$-}Q60w4fAgnXRehDqP-#t@SzWGWG`e=(+{ z4q;scKmfWB`L@6~_L9})J3)QR^A$xs5Cl-S@^rA9H?tkYrUAXo-S9vo;)6WWr-d=3e$G2(vfn?O?5O(116k)wP^qAyBsx2xhzb zupQ@f@jS$Cfh`|)UC8A@U>Um*2!M@`_1y08)R=V;El~ggSc1=bWe|XM46RUb+{dg9 zYhfllc4WeRc{@R(r%!=Uf`){?!8iFVVfj~A=PO~3?Tf2&VBZYhbBta(pH?+W?n*D;gV{j``f7mTYojDokOL=h!M?EsoUKDK!NLA+Xcqf>=>VX0 z1SYacz_Z0{e5~hwY`-10&QxQf;9x%r2s+5;gTV)mkk5I(q8fMu{Gd9PC;QVmp|Gm; zwS3-YHvoPR8z1Yr;0Ia9&>96W0@m=eTHDc!Nx{LE53??0k`Wk{I3su0N9|+E_5_WI zDmplF)1;`A?K8!)Ni|jZ@k_~9)tTPO(yGmW@ca&ar=0rvle;(qxcI=NkY!>aRs4?X z;Epq2Zy%a6uw=l+pKgw?sm%5Z&qBg-#Ku&f9I<*73g*vBO_Um03rlYcV4JBLi@pYb zSL}fAau2NA6=68j`+Rf6YY{qPjw0?%bML9ElZ@&<>qckjhlH! z{6x8U{p|Xo{cT0dfOL}x^qGHhUr2P%q{5~7g7dM~1E)ntN24#`c8faqj38wFvHY2E zBp{jg+nkqN-u>GLi$l~Z0^(QS`_DgFSy?$Jpz;o37*cl01zS?0(EJ#+HT=dkN#*yu zn{Yh1>(;R!68_+KPnuih3F>1AAP4b=?Ck9Ebb0G`KY4`GH z77BtBeXPCUc8*9Wo2dOrp?+jGUL+a14Cl+BQhmN-G9$_UFiQ{;#n1oUVTvo zqQi=4?)90E1TqW-#ILyzsyLD|CMmM)(&;_or`hw4ZJF9(_sQ6R==^OZ(k3ZOYF+kV zt-`)428iXTBW+X2SfnA_bsgo5sV?*rgwWH!-Xb`M#FQUc+&iQ?FDyAR^!SfMqAx9& z;}?CacpO#l5Qb%*fPfl-tex$GenJ{h5H?4a^{BoW8zbe1R+Sea>75*yKeP4Px6?Md z|Fyr9aH$Cjp;#QERuOQb?TWD-c26!kKU{F0-m`FW;hDcnG()4K=S%l09Ivc;apl3c zHZXo3#<=K!#UW}Hfr7Nm>f(=jXB;lh4T)(l3@Tn1J9=yQy7KcQlCKk-U&Rh8KQXUc z#t+kTruAzgE_?7B;vhJyg2L-NkTE)OAinx?dRXQSSx3gl zrx%wb*Hods;PCU`tk}PQe_TXf->lC@jG39;KeMcOQ*zb#fQr8gl}NDtmOgiIVRGd^ zC6dHtnYdKL8hj3mL)0n)jv-O!U+5i@v31(HKad<(WXH!;7w4w=mH##;Z%cOE`3XT4 zw-vn8Ix_3m&pMZ6#sn1X397y%ZUXnuxHuo}V{NOvv?p~+lfU3)A z@fKZEk$F{kW<^FAa#t$ylWWitE}~$2^LGjh3&kODmtUFd*(rH9lFW$dCk)8sAQhRk z@n{b?FEKy*#N19DXPy1>z`4uErlv%l?i^H>9Z+*^)-RpnBQO2ZsYw=^rL6}PI7Q)x zL>Dd|v1ZJ`fPm!5CwHYLR~IcDGmGcpk6_b?AB+i#>}I;QUd7n07k`YYN~vL=Db%CF z$amJ11=XBP?v{kyci&u&!5QJN(x1;6R#Q?_h3#5x&3`8hJECOf`4Qjr=Srm-=$kWR z2|6dCu2eY9^y@8lC6jmfgGasxGGHU?%?zCY$v0m}R3S}?z~h8VnUBJz z578ff5i>OyVTgJVc-<2s2Fxg9H zxD#s=4j^HG*dN6YL8x0W^_Cqq35c-~fX4yY`1m}x&5ha%)BZ3Gd@hCG*e$?QF>HLS z=fX6wj-ho5U=6HeXor7{NfoX(IeJz%UJr zVQReeGM(Eu#wkJ#LkRGAMsOF?5Tqsw2eQxcXPF=gRSY4Z-MYTlbD>r3@Y9G}@!^flp^OJX8!_U?u$S^~ZcNNgSw5du7`1?=bxFK*6W@DvU&R#!6%nt2$|0ds(fDVFJjr$E+9TOl9^ z3~5@_fgPv7%E24cFhFdNI!I?+#5C9YS-tJSE~*y`ABBA48Tp9UE0HWL*6NK^c@}Hz z=~8dH(tsHu9)J{$1J)-qt|~?XqHF}-VrQFtfeV``haF zjsW36w#$LVs`zH%P*8L2yUA^aw0!j9j+Bc1VdEx_`~1~?)91ea#KdDi{#fn!$I|;2 zoV~N{?1%asS~_OhqIVza@cx2BFTc_0qw{xOxbywL~Z|d!Dx-Hfkg-cV6fCeRuW>-g5ImfP0DlAznVT9EG>3rB zK?5fk2Xnac*8=0fkCksrf^qOIz6PlC7zbEA7y#5%(R;}+cXSU6P!#q_1=ot@L!am@Vtquivz3Q(|I7b!A!Fq(t_E@d{SDV+#*O76gqW z&~?=2&=WshD+HDQv9P$fc+wB&{@Z!PYDA|?w{A6s@ihacoND3tYH(~^Kuq+62|1q( z?${(Q{KVWfF;zL}GfXFT&I>y>Svpg-jNLZea%JOVEVuOc*yw2|eww>u$BxX(Grf1m z`qiLs3P**8hMxNQlXhdm#W@m#zHA!Xq3@L3qZ=}-^1|Xvf9jM}vMqmG(V>wi`%IcR zaqs^9P2FLs0ie(9`3zxIm4O5UTL8ektvt=sy3hu4A^g*qf3vHYUc;O^Ey89{ze78Y9Z|;qrBh zG8Muu1VU3shaF!UmeEAGkehq_@Vc>5@_^E;*;A)ZOg27Cd`SW^P+wze8dq5I-XYaubC49S8m^EHkQ|P;h2($ZL}(Nw0w@ zKn_jFgb6K?Q4Cr$YD?2+@3}d${6Kt0diw3VZ!F1($PY^@T>8wyuIbSgxy_qPZmQ06 zlyLmU&cTM{F-&kwNL~HvtgIukbE=~2Mrj|tYCLQ^~KW*gEEdCi_DM6tXPy1IW8)y>izbU`b<4@{iLlI zcZEddj0|*}q%V0-hMLi!SCjzk?2KdS(%Z!apYZv@g%^v{Lc|qU>w%YlD@m@YTC`}< z(xpoe9z1xRkW}zqH$ezZ8CWuE%angcM_0eoykmIf#oZ4|OSA<1Y?his(4A^Lti>vk zg4})VSO+2N?C)QdqA7+{p#w=HYu)aSix(}LS$29MTA|-BHsajAy$MpHQhT!FNB+fF zx)qjc7$R1paWU0p$VCb3vFO;WoK?cwty@177juGR?;FkSaBav9%0jon}eZumNz20L>WZ9)o0cB4KLcx)g=;G>%{F+M(lPgP4#$M$_`=*tZ1ENcJ_(=+q z`wkq;KGX8jR&+*{q?cS+pR)SfZ$~9XmQ|J&PM9zO?VI%6xM@?9i6J4G5&7E|b{$=g zRO$SRyu^Iuo_swcEUf18ihw49ICVez=%d`++yg6y1jSSpiMBBvP3GbYFGp4v#s`fa zy>tKm{oSH3wiH_qWJ~S~Eq9P&8iA~1Tc#ohGuAJ%VEfqJ^P?`#3wpfh*wmD$!o``* z3XZpq34im=H>Xd(rSxcOQm^Z;nv`5MLl9mZF`{>`UZFXwHjUXFdVE*=kWnMW>#Brv z)5^bW9VH!UcCc9jDYEe~nA^U6`+(Bzt)nk3h(9)E&jV|=6(2<_i+SCWS_nf1m7S`r ztbC^1wq^s0{(PZx=gx@s_>{P-i%Uu}(T&5H%U}7SI~d6k2maps_KqFVHYl2_BZ8t_ zn_D`sQ4>8~Q&(V7+L6|5kJl7kSEbNP=R4VT#&$hrKyXumy<-c~n zo?2$;((0I0b*}SF%n)^o@B|izsND#_-ih6anx;qF_`qKh6KwKEs%gd=Uq$ljSWd<8 zfK@UEi0x7C_lbeMupN7hAlM5Gkh+Twll2kt7h8gY(eSyTXiq}jhqVm$0t3YMDA)_z zAvH^IC{a1diP%X7hncf1W;tt|^!dq27-3tYqCkATg}XYl zs)H@e5{Oi0?s_{VE^S~@z$R=lp(s3*o+XxgR#DVguwc&A#F##td?p=Z+|-NGS)c6g z%3uWl(15xq_*QB>d=P^Lxeq|KKoS<@7QnN$s(iSU?CRn^5$xjH3O<1t?BWtYshcD) z8g+v^tyM4@G-PT!-I&oZxhfBQ@6}styJHQuJx43{YR}|D{Lb#^@zG(!*=zj<3!43m z`+iSd_S2etZ9n%{CPkm_9^U%CH1FVJn7m_$txDiQBwifNmUFP)IglVdl%ybS(rhRw zK#+|9yx)qAPc7zt&72z84Gps|TB*hUH1wvppT@#O)6n}}|M&-^QNLtTJ8urEUwy96 z-1z!MYxTMB^^CV^>^&ne+dh{U(~C;Lnui4+28iuZcrAhLkeVe3X4@=szNrTbKHuPK zmMSdx%pzxZJ!1<#^G6Bo=KD&e7dXc!xA(48xO~tr?z>2L`JizisYHN#wGE%YRKn(q zFs$`_fvRbm#>_U{+%pX{XGK`>aROCK#f&ZZuArB>RK~oUmHoGy`wCeFh0!HZ`$lDK zAM^gGCqDhO<$Lo!|M$lKoj2v^?8WoueLv;n85=9#m|xwb`IJq~=M3+<|L5nA?&y5v zrhh&Buc}uUbC{94Ym}5pD07-TtVC=y3 zHFh=)v_p%p_G>=bw{z`eq_NU6wn$-1tFdBeXTQ1M17l~SK#PEY zvF#LCWDp>z8;EHUc!TYzqOT*uP|Wm$n{9s8jjpLVf<5$AnI*^IGp zKaVa99p1n|sWWzsxwg-k;Im6x*K3gQ2d7MsY8+MAKsmr@`+69F(e^dMI`nJBXzTC* z*9pa?LiC>+oQhsp=@XQiY6Egi|)FWFWB$8#UF1S>^F`` z-NwmwTTaDzdkLQ1#}KhQ>KMnS2siZD_?XW{--TY-EvUK*eF+nNY`F7?)mzKXEOwET zX9M{cYZ8213=rF*?YfTI9DeZxl2FX<+rutgxPU%RJ1{#Xz6O0H+Vx(q=PA#m;cxV2 zJ7u;p-1rEEpIg2#E~@y*&etZN{`IpJ@zLcO5&2b>g(=xfA|fJC)b$M~@ab!^I*HDTRLqqfZ|N~*}a3Vj4PpyI;%6>+o9|M|@eQX_EM$1bdm(fRPf=i&y; z4a=C>TzD>i(7^0bt6uDuT-ie;Vr+pA?t(Gkc}qKbj^F>`gJ+ibMVHay&3!Lhh^$cfd7dD2S8*gM0o zwTl~|qe8%$m)G^o5)5G5lB6GK8y z9^EiOl9e8HIButhkjebgvtPw_-*q@G?J7|oW7i+ypaa6-0Le^|(o1`~)u0WVov&Ri zP7Arpc``O2>6KLp>&K^X>?DI!%s|dj$2o5O_QI5abjRIk%-XdC&%(5 z7@S}ZfXx(%n|Wr@zH#d}Y$(cElN?>RuQ#&#;ibptgw2?dkUA#f1`e8Lj;V5xg(3w9 zh6F6_JN3+&eT&foC3ax(;RQnmZCSs*Ff*oRTM63YOs*NkffBf293Yu05?Oh1cTQ1x zWm(~hA@O6nE)0sPDq6WFX;xMFbPjrOj+Fx>b43znix=NEB-}YOhp}z7_{3yeb3h0~ zAQ+27w3ZP72db6<$C`tET?~-gj+$I@qerjVPYTs`KN@a(!6sOD-xF@?NZ{C2F+so4 zRWY+r3tsn?GzAt~gsLh8ICf)INg0KiMhL_!? zopuuhdd3idMSwB9Y%dLq0NWuoL@?M;X(((v0mF8d2}E&@ukX19(; zFWUI(tFJPnD{}u>{!HsZrT+G_0~8SgUAT@KW}zoQSd~~1`8-W(=Y(=e5q@<)tlO`E%11fMK5Xe<3>*UF?tBNWr&}-P4>h8e<_ogK;c9ed%*6Hpaxn#K)ueF>l(msj!T9Wz!f@HQ#3k*Oo|Db#?T((5R>z z1n1-q*@b^K-yYPYBfzC}oH;o;N%@EfGTwAjkYgSJCzs(4Mf~3H!wgpWQ5a4n{3H2b!9t7Ih zLk6grM8ILP9#pdl0ayaq1f)qa{wC`|HJcECC4fypnj`~D0F%JkR4vdZIzYxG0b&>H+ks!3wUaP16-aWfjotvjPDSDHJR_Q<)I8~ zG9HwCSH|Hx(m4UxppWPRSxy9C z3BU=IkBY$(z(>Gxl67#FgJM2H0G0qg0+y4kKW8~8<|71P3E(4OImyBjfD%9M+m?Yz(>GxlJ(~-2gQ7Z04xD~1S}_6SORbY z<)dPOKB5a`IT3&*04GpBDh5jc9|6lr*1=g0iuniuSOWM6SWdG3oaLaHj}U+*fRBLX zBnwLbPM~~LEYL@Efh;EiCYAsW?BTGD@bxQBu-V1>_Na`4;i3h76Dk3nMKZ?dj9s10V-w@fHj#}9enClO5grWbO%R zdEX2lPAfeEMI@mYINa2l%Z+@n6$uESh!A`h$Dw&&ND>_=B0(5#X$lB} z6+>Ws09cxV^`o+7J#dx9epqI}V*7PneOZD<4jfjDh}3rDRz!irE&Jpa4FM8@MN4FH z2-R_Q8+HcFFN!^VA3D6zZcuz}Wi2KHXw?vibZi(2GCK|G*OuvT-4Gzm90^wKQG){B z!>m(+95{cr{9H6jz`|4+w##J8sf53Jnvd z!v~sXZP+%^(5#OMq|LF%O*85=T~iPq*B()|%VV&>mG7$(HU<3eG~cYrdEjdBMoqgm z8Y>O$`jSBMJ}gK;FykG0uyAOfmAdl%RFVYRSlRdw_TXtI5J=E~Bo@ukuBUZKcEE}n zLftgun<~&D$l!`rM#R;b6*Yvgw0QqmxU;E3Ag-XbQym&|^(o_6;RkNV#JRhoFlW!r zW(SN@iy|kfVVva}Nik^~$4p;MZ5p{6ijQ66X;Iuo(p=7T)8ZAJDKRzCF%>sxh}x9k zj8E}PPKq?|mN>2>apLbu%&4v)g5oK_2v|6DEmM^zs2q3w5>=|YNP~(I-6VnJu^a7H zu+a*H@(%4z5-N3NnF*qG5CnpGBmkt7WPWlg2oq(1oF?stx1v%*3NA|^?~DtMso+F%XDHpyEkSI8L{vLO&i>m|eZqY9SxQ56kRMg)a> zMaB9bq;1ELr@rz2IE_~!*C1PE0o~(i;AbLfhQJutjV1Ej8lsp!91hO7d22u%3I5vK3lbyL@x;kyofM}mF2yP2>W3A-h`1~xvxs;>OJ>5o zK`th1zYt?tW31Oatedw8B6X5J5{RZk;-%quNQ})!qT&y1#sfC3j0KB;NRmfA%}W)} zFE@x+jG*)8w0lwH5k{OGG|08-R!o8@1>y*x^VATmGh?@xJiKTQp%!g&iq(BnGTdZd zMGlavrL26&{MCLcnyd-5Rw+&gQ9;pY5Ynxg1d$-wDIgq1l3QnVQZ7=5zYJqQ+YBK2 zh=zJ#%_N9TQARyubkt+Rz%T}AxDl73WFuin2o_C(Bn6@kqs&~1Ir=)(5bw4ZrmqZ8 zQ)C}Ruxby)PMBCFh-zKFyf{!M1leY|s-Zqpoe(eKS`M*H0$mbhootNt0mh0;r9;ES zpP|ZW&@7ZlrS01&D`Ks>O8lDDFwqwj1WGcCk~Yt&P2x&fmXMd1rz}ak)5@?A z;zGJU?Ps9r$+`nbHVhP3T?q|W*yQ2tVF%OGu?GYxh_fvi(sV1eW48 z!Wu(su*hJuK`ct#WkkD2Y)*9sA&Un)^Vntqb?$L;YwXUE>kv~-&Ic_m3ZoQ1Pp)4d zY&Fu3%zZ}MRG_Sw5YjK*}tU>xqt+_Q7B|*XO^Yg<|h-`BTgSZN+4U zW!vTgZFM7RB{pMqxwoM=52&ivremlsWSne(4CPYMrj90=yq;c`%h~;_ZU$m6OM`FzOj$V&z@=^5>#WGvi zT{1lzXl9ov9T5*bcS$TGx~}?TR4i%bk|rMYW`c(@W3@vDT*n{u5GDjHOb5zAajIgX zJ5ox%I5ARIF&Gv_&9kRyxFfVx6AyouRt;qN)0Pj29jdZbvHJD>KHK3yQof(?+7?yw zt_VYm8tyiMJeFi-Iv`C$++L(EIr&tR$f0OKxyCHk9d^_;)tJj=4}lNpYaNP5NUz`_ z$_QAR4>V1~a*giPb(`GWx@2MBlW;C6@VWtylLx)T8)biqQG+1>PgbxeWG+A%2Mo9w z_77)4T-u=vPc{)ZC|0_sB+hDb`&18wTwIfC-eq!;q8Kz9yJ95+qL8(erM)M&Jb7n> z$Rf*@QJiy%#uBM72S1y#a+qzKc$8L6PIn@SCV7Qw04LtD*^V(DKX>cQDAL z*@)lBnmS~HNWV$a@cyAJ#ywL>oKEOc-b<&E#?sjWq3T&Pox)lcte)u;>CsdsE#1Wf zwOcrgg!nSAR5(ILwDozp}eY8ARMri;f* z>`tmL;w@uWh-==_ai;mL=Ge1w8XyK}RvK;7aA;4Y8#qdt>!-375&*}RDPvcRE*xbu z++ouOI*`}|ojb<7R#0-mLpAn_lIDU4dnD)<9F-X&piFnu%k^LmcF092%Vhdg;5op7 znvyIfQr47Be=;+CsR;fLkmt!qnK4%=s>u8#cJlF0Dn%I(6c$Aae6zvT7FtQsrxl4E zoitI^@yq}h8J46dg@Saj!!bAVq045t*)qkzpf zzsS6rSt7V^HHsU_XyHV2dnf}&VuLl%2z*M?uqF=Vcp2O#VfqL(Ni-vH&zofCt=z7+ zZM#0B)gp`7QlP+iC3Op-53v$GQS2e>F*|Ba1Czi*gL$8Vl1WMS&}0Y9KCtV3CW~T~ z7(RwE6XD@s)GX-o#B~FrPD7V&IZXj(9U2GZSI=r_(-NGt40gIB;fKUTx1&q5$+UEd zGRIPy%z+DBHo)j6n)@Q#FEV9sDh+E_37W>GrF-eJL&5B9TCP*^lp<|Mg_iE3X~=SF z*bsdwy-QPxKY@KiRG_(Wv~=!5vXExFjjK+6epgOw69>r**4TsdSM+SAf8mB`J;Ezsq*KTbyw9b&@`p~FsXAPpbZXnUo(MyiquU4-HCv9InAuC2t1fd(jNkJJ8jbxw(b(SdQMfBx)wp4=+v2R z3ReC~9BV+j!KKd*eg>qHwipAE5`8e!$B~Cu)%^Z?b81jFv4ASakV#iXeJ6saG#adI)W6&@(+b z^r5cRQ2KMqLlzHMSsQ3r)FgOXnpdB4;p!KsaH-Cs>&_{%dJ65KcsD1mkUxR}S79 zB6NDoC~s+MNZJ9X=8`k$Mw#@6AB$UertN}T`)ELCXeIW8ePl2sJ;EB5lxlLasN%Tn zuw23Q%apx#*t<0ym!4BMq{MN?gKv17$BxCVvRXJhu9&s`#6CEr>jADZu9mVO7N_eY;M~)ebY)P}Bk; zmgc;ySO&MRpw->lS*zg2ydXp(uEQ9zNH8rRDIm`uMVm&0Y(WqJmu3QCo)~D@%8WpR zLuyGo1GL&o$r3_S88sVL3&kZIv$T};blh3(Fmp*Ju$hvG(Xjb_45=kI;2LAiTKR|- zO)Cwf{WDZvM*;-fZG%oi99mIJsJg6~THu}4o1)D5VAE{DdD3}YM^9gB&4SxfXqADc zWoClKiGZZwnul5jwTnzOBW%ydjAx{#uZek=Z<;JA0oiqOhMcOM?(Q|5rPZ@Y-6=O= z`qw=Uv}T%mhg@z-M<+?%j$GF2uVh15M07oA(nN7B+1N&q)u^0jc`gX@-AwIlKt7G! z4CPlx4x;fu7o{?PGRF#}$D2S^p-dz{hfu^yl5$yyOuwFsBsE18mD?zgCca7j%%~*wV{TZ(Zr)^}sB$@_ zA)smD(btmNS5dJL5&bR?`rLOhh@x;mb4cu`Sq@v9s2C~@XCMutPC&co(uJk6 zqmq?TXgODDBp7xzPcFHj``(bPItevtQW8Vc)6*%QqRb(Ak%Lser=#qEN}tO`-Pmf- zmGeEno)rboC0ehLb-t&nH-K96Mie3UWFR>uic*GyX4Mli6M>Y*rnPZ>gMH-+D%%%Oy7DCw+cL!HaF)2FE8 zQa9WKSy5BmyEZBU@jNSeOv`IH8rX8aiUH1uld~ML7+H~u+efbAw4)Ek#->Qi1t)Ek z5}A{Y1u>J6NL$v+8#R={g?dev9-}EmmPwQCqCj?4QJ(Dn$-FBXbOmKoqRC(;cx(c* z#~!mz8zwq!P_o_1lx8+qkKIrxs*Ao76liSEQ^3KjagZA z!g!7y6TxeMaq1}U!I$ZnVqh>v9-#>XNovKzo`W81rLLrE&6as!dZSgv3W_j>vh1j$ z6)@GbAqwh^XmPd7Dvh_#6&Kgj3j52{M53{Bmt_b+@Hf9CQL^k*Ml6I`n0flcmIHEF zRl*cOlaa8%nY*gAqE=$2Cua{cES=@iw^kXn!!C$CFej&HJn85fToOn%qe}^%x$a7P zAF8UlWIfrfvj}dF+_S zM&l)r4sJJ<<9uuFbq=JZyN&NRvrR3{5(38DhxO6Sf}J zr9&i6PPA`6Ao|SV;pN(-(wF81*W7T;0nxgUJIzi-6VP42BM)K)rUD?=U?c`J@{DKE zH#86}#o#h235g;1C>ITf=Rz4?>_z-tm+=nBHM~a2JAC9k<*%)>5S&WV*2DCDZ;>_v zOm4#4TRFw#uOtMMb+KyR*?|0Lg^P<7Ls53Fw!BV?t(pn7r87jl`kG`1ba?e?wqk&I zhYGPp=Cmi)U?*DM-Nwl?omW&?F~Sr$@zml)$Z6_d#)4CC*r^F&F-wOq=u*)4-;`ahD>0x+ z=y5_769R+C6Qz$8YqvZtdPejYoaxU6L1_(;NN8r>gMrNfgu2HP5cf>5_88MZ^FCUv zs!r6YldqS}n1zfinW|zSiZ_I6Qw&N8C>;fvHO(*G01AvO4H;5`6_X&+V=M_2jwq>R zDGiOrrrt~|8>e0>93iBJJeGh{`pODe3v^?R6{JO-v zG&$Y`%qWPPKi*8AghXYekU!TnWGE!0&n&ZP$7648oE{^m;fM15H+4CGLG?K}w0uBL zQ>eO(EwMI;iker2I2bK3O8GOYab}q|&+5nC=-z|qlJfAPbXUak;*>x`Ryk&Q$gs1i_=9gOGsUBt5O->wEm|IQiHQuYN9hzPSt9qO zc*97UE2b*r)G$jBf-U34?4&rT_`sXQK2u5Z%?ojV1DjovB<>I=hqc~{0+pr%Mjr_V zsX?9#S*?O=-@WQiA<)0Yqm>_3bzVcSWz*PEt5AA#SdQy)X+ZjXZAMU<8y|ciT5FsMF^y4EnZ=wU3_nsyLpN-8mS_kwMZxTfniN4lx#i&gVK$_o zC8|5|a!El0I+6p!C@bioAX8*^Ny75WDZM`l|iWHipd*narno>+0 z{+>%NN0|FOD<7FWdnhq=wM>HR*S3ivT4Gj<><+PND)T%rqd-$-L=}El7M=L3tZp() z9v>cJyi?UvfgT8^XBp1HEG1SSsTnNAN>mBBI&9;%t{%($nohr~!TLq`OR#4KTAp&N zX#O^RQBrRX+u9GOtv%40!pL#8wK*RV)0wkI3=9v4cAai@x20#b47e&h-20%6o(2+Z zGzAj-=FbUGdapM{@%0;pOkE}GuJ&|Pt#Q6>bdcPQ>#BP_U1huz_SMk!s&!P98BWaK z8YMX4E(Y{e5zj3!GhMMbh66d@ikMcd|#D()<%AIDG!`jjniqOt~uzDYm~lC6SxJAw0d3{NNBWyHNbtqDSt zfTtw z#~>hbOvB7tEqPec4cM}E$^?kr2_=IpNuYAlv=IO3qK72vx)`n{4;?piIzx#nXl38@ z!cM&cT>0!Ji%vgOEr`C1DnT0&i*R0KZR8;-Qt?Fe0`%D`)?_1~N86L{^n|Ph*kgm; z6|7~FZ;2H#A2oCeO~*JfwSfT^ZBb3AJsqDxr#A)|uC1ba^Vlu{2o|>T)L7`*08Xz& zO|$kE5ovS${7rxr3wFB)Z;*B(i>vUwrPM` z)dP+n0k=bBs3+{glDDg4sudJ;W`Vu0WUyh`reIx9L+Xt#1t}Di2ClACs;)zf85DqY zsGLa1lW5B!dJi?HCuB=N*XiSM^;L|x7GCtdb5&td#I!Cz7 zw9;qiP^uj^1oes5s5f1FZqDY*^zL>-B7G|9PX{#hIfk@;U)?)>hIS$tRFNWMMOeBh164+qGo%l3?4C0`c8NQLRwX1O5jy&D#7vva}qtQ%uIvqa=! zh^~RvTE|ntdLWQO0?jH)jxw1AG*5jcEk)SmvhC}GbS zi%pg<*F^B$z0Y8C9dx?BcgS4Fb7&>hIQ^cNw0muiJyI=6vJ@T2Cj{i(kqEofDDq|0 zP-IzKKr?+d&h-Hc0?9qKuyAvC)aAM=daVi~SAnYurtRiZ!K!9e5tB+urol9^%()^{ z5O0yN1`?7IOHf`ivi!FX#17 zPX{V$>r4V$L||baD9xXa9_Cujd3(;Z*xq7hLdK4U>&yX_ixNm#mFRP6b}Iu>Rt{Ia z;lgxD^|`E*5_dn5t8{w$6YU z5Tmy4BuVQ&9v@gnNY|TFsR4`2HcL}M+!vL(M!&if7y)a*DM1unYi30grh<|Mn(5PJH@8!0xVCoC;{8$B44jpd%$z#D?{~3Epp!I6OTNrIK-r4NkLh<%cDjfe=PvUwWQwjgnP<_?woyv5_|U?DH?Ne$MyyN-&1pSsq8d5}pf@XIM7-w# zTp^`4ltm@~aw!{0IV!2hEs=h41&4W8)?{JzxlhbesBQ$I&TtKPSErF8*V7^zbVMge zaT!)$+-ix?6>Li2KxlZ?NpR}q>t*VWaV^YB91Flz@1Vy84ct|rTk}^e=MoOoo;jRQe?hS~O(t-_}85${Idjhyh zrEua-_O%=gNXm;HD;2t1)$_(AERix;=x%^i#M8T@Nz38-7im*ahp>6AOSTpZko2Wy5@4pq#~h>j*CsY>m%!0oeD2F<#sw05-|lavoZkw(3CR9yVB}sQ_Y*bs)?FItBiX_r_(Ha9^ zxY;J{vVwO_P^*&!tbicp`pH`d$x=tCIDfpmATxje88dI7cTTTeJOo2c^ z%Q}*SR>P3{jnk6`F`+hIjuMw7K*AR*k0yeaLp1I+k|CHmjFg$E-IhV(fuNTNs|HjQ zfyBkM3rxRpffp1Q9Jt zNq@_E`oC-Si?B-Q>|_wTN$b3b3a=Gl@x+xUx(noj#0;WlR@5ijBt^bX@Fksmy=)yZ z5cL@HtSEj8(kT|yu^z9Ud;~Ow0rE`MTWwpL24}kLKv?>DYDfXg3QOSzCI{=nl)urtExz()mBN+WSFL4J>)1l6^${UDjrY! zdI2<7i8g|4(UjC|=|D>*MYCa=qv54T^Lr=?z+2Jg5D9APP#~{Ml^p3RDrI46*t$WG zNb8RW+L%HJXf-YxnEG<1_KBK7Hu+*>mK4sU&)EF>@;}c zMXL}Zs^nBukK#{wDWVWri>ZomMQoZ3;+~+sw@aVlNDw5%CFsa2Tdv-@3rTZ}h!}Ay zx@yr!jkjsqEb^A%4Rzrys9TQV|9R>%`i3AU3(_SEa-N4UH6TqY+QNh)eUTW&T&vo# z(VKQCj|i(8F&?3*e-$P2xR;8Ekhv#?#*U&a=~B^RN5r8{vG_ZP3FPXEM-WmctZVG#Z?hm7UGr?Ngv7b5Pww_l@VD2L@A(xq6Z*Knkfmi%%Qj7 zZH=hyyxGP=cFqdaG7&+XBeoHg)QMO{(n@$;IW7XqzBCg{t}0CxG2&@S&Qbre*_6wY zZcfU1W`6Bh$|>6AQ=q7;RJcT9B4iR#*JM!8Hy4!Vnrr4Vr>MXM8_QkB$1GN>QAB&1 zy+iFZ3yZOb3%$burBO*Gw8Y!#U zv(**BYEY0fk<53OB0MH0dGqGYKm35L;JzM5Jk)7|52!Mc3xcfDQv6ZKgL}DZLLm+W z_@)C!2=oyKh?OXx!Nytu=M@9QO4QWJzG0?!u&l6ph1NB7gyRcXGuSsAOlcweng>ee z@52Fhb|7F%1=-Os&~PDO$`b|fY(s!=7tfKClarPLXw9wqqs`3)XCSdjxk+YmU+MQL+#a=?HA=#WbI%$abfjSDg; z1PA~EfB+x>2mk_r03ZMe00MvjAOHve0)PM@00;mAfB+x>2mk_r03ZMe00MvjAOHve z0)PM@00;mAfB+x>2mk_r03ZMe00MvjAOHve0)PM@00;mAfB+x>2mk_r03ZMe00Mvj zAOHve0)PM@00;mA4HtoefJZ|8CH8-cdAQ+r12_i+00BS%5C8-K0YCr{00aO5KmZT` z1ONd*01yBK00BS%5C8-K0YCr{00aO5KmZT`1ONd*01yBK00BS%5C8-K0YCr{00aO5 zKmZT`1ONd*01yBK00BS%5C8-K0YCr{00aO5KmZT`1ONd*01yBK00BS%5C8-K0YCr{ z00aO5KmZT`1ONd*01yBK00BS%5C8-K0YCr{00aO5KmZT`1ONd*01yBK00BS%5C8-K z0YCr{00aO5KmZT`1ONd*01yBK00BS%5C8-K0YCr{00aO5KmZT`1nfhgZL{W0MQVYS iBd)TKswqnTTl!9W_vf00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx z0zd!=00AHX1b_e#00KY&2mk>f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx z0zd!=00AHX1b_e#00KY&2mk>f00e*l5C8%|00;m9AOHk_01$Y<34HZ{=l{OUzI2zX z(`VD4m4vlV#xUm@yVp*CHZ3i!E34Pm9KZN!b#1NokQrmYAr{6$z@Ih&@km$4C&IIA z1F0;lqa;r~~2cXZSJDi4$gKW?Fj&-l&X=iH?rW)TrAN6BA$f{;zGeVM8$I z9=kY)Ex~{`)uo@#M8NEf?q8{xh-A zQ0)pP0~;kRNAGuQYpccL2~Vf1+p3U?h=_=)sw(l_yAz)Lb`a+7>6wt2I1ts!sC-ap zl#6#r$QW^b{VTO;bxw|rIrb`*>hRL4^D`xbN`vb%mK}b?P&Vfo@&rFK2^43Bj>i7J zHSLi{w9wa;oERMY!K4A0Z`GB_*qM)?Kz^Uj*j=*DS{yYe;PIhbj~qFInpYFCs}hN& zA{7in>%~< zglD!pPl*_9V^dmM`pCk=OT%~W{P&sX|C3j-?dz{wT3Tdhti8V5xzonhcA&FUjO+gQ zk^L^-ZkL&I^l1Ir(LPPBt&)u3fY4CY-fcEP?KR2488!y)W1Im$@M43&GuGBIp)J?Y zFSxbVf`|HC(7=rXjSqacV+X$CL;9WB$OFhUK;ZJ{NuNwp6nY8fHeX(ZipBNCT?*+I zt1rg|)+7~XDsGQ9kOq364M1VTOIQ&djQSihx4-dxhNsnQk8eyXnYVZ9+_^ea3a5~p zLXpRelW))XD$~kdl`ipf@xC+a^L>%IpWb@&^;0kI$S8g4+$+^@Uv^IM)!XY|m@)m&(j_C4Mjp!vig4KV z@xNaC;{QFOx%}v3joTWpRT%h8;1E1~PU&um^0uAwlwGxdS~42s{=(8mevH>{|M1-@ z+z}7}0zd!=00AHX1c1N;M_||km*WQ`!@|VSn$@U(i{O`--Y}HJ&Cn>J;`Lc$1?mcc zy4+SHU*Oe-2E-jU-Mw6edh_<#s_ta8mZk;PmlcZCn@H&IgD5Uhvzyzh5;b?`^MdL! zTBmrX%bODgWBWie85QEO0mbzQW(7}OA1-RzZ)brC7sa_`plJxawu|A~*#z6I?ZQ-5 zUY(=WQg1=0=S$@9`5YCi@G+tTmGnmZXvmNLD%oT>ouOw$S|Bx86^4K-$ z_w#Kww^hbjV0M}EvPgUH30Pp``I$Z$%}ejmaX=;Qs=DlIfywfDs(ew)YSHm4ZE>2W zn6Sp(5`*LA`dlaJJ4v|2R$;O&mNtR>RS90A5g29@B0FjCox9lD&NChLK&?x?^@C0h5q7irDrOpjy3Kr%N>=^%{o3R5Jc)t>OLxjuYmF-{IAPGLal z=88KP_tj;#*VdP3S)?l)vI9ys6(+4NT$ggg;B>9N&nE+fL)wcZ=oZrwQDHURxoG7i zCvh7>>L2Ss^gitzJE!Hets0GT|CY2aQ?bfXadQ{u+tyU63KJF8*o4VHBB7h@D8i&G zXjF)glS6z4{n7)!r?^{Un;(jlg#Ngc3!R zF!^&XdmN}guI6UKSbE>PmtU@KZQrtGASOoBzP}kc-lZ$5vP9G#ptf?5m&1$r0x8o;kdJG>~?ck*_Drp|VZ-cNbkN3Cl`OB-%wA3(s?%#h#N z7p||G8`l)C%9iUKB~Db|Oo-vSrn&d^tNGk5?Rr6i ze^R^$l}p^sU8PnF%1`r@x_^U&5{;^3?teO(8HP$0!^Sv;jH(l9oNy|*aEeF!qBIwWo>hRabu$EM2}fiOTq5r1>8XD*JXkCT%J5k<|FxH(p&4j+0LEhMA4FXHG!v^`zAWXiEbNOgjr_ zUGnb8ESuo_!=}{UtF$=PuQ0(QUiXfqs9K7U(VOFlX4-awP)3Ow1FkHSTWM}|noMgy zU$p!B zb!jfgIc>W2_YbK3?S5k8qk(AtZurof36D*y4d!IXQXi>O6J5t>zV7 zkT^$at2vE&vwQx;B|aKKPY-mh9|IR?$SIzfn7#o`5+8sG(K4BR^TW$_#VBv0kG+3d z$qy6VJcDbJvLoyy{zYqNmTb(=acsKqdY)tBeep^g=i7TBrwi<%;Gqvy6S7d0=(usyRk-E|W*yP+?{@hc}b zR$dadxoPfxJ3bmii@CRk3zX&P`xq=~w~?V?s;IfaEvXgJb3){@3a8dt(zfO*S2Xe2 zKF{&KXm_QfK|Jrg=+N5KiV?O>%GA8j5h-D+wnZq9_st_CJ2lKML|JZYiD8oV(pF(I zTF;L9=JL=O3~IviT2u2Z3KP8qcMrxzZ@%5tza^^@sdfKQzmM+MW%=np5S=d4-wUCj z!Bu?@J%WjAl9xN8g*~o3)pSgXmWMd{-F{~<=7Z+2qo!)d==dS+hD1%3`5m7^v?gdi zPcFSLN*;4=Mm@YSPN6|*C7Eci2xRQtK}*Uyaoi7o57-El^{AiPC%MSYE3_HyTA)Hh zaJ_P7-#CY-=qmS)VBfpjI!v(c*rXc{y3wU!Uh-2pIXSD2p#kXm(P3?$VS%VKTysVw zw=Oud-CEREkf@eg^5io$wt<_Z; z+-pMKsFN!zcmh>hvzPLWS9+KVEzy&ootgPw1{${FH80{dqh+p|b1}+usAo8{y`-+J zF-GHv&lR|d3Hym>}3jimdIOh$KKzm?;$FNM8L&pY(dvO(VW`%)4+I8qv7s z9Wz)MiJGfJYekwcC=_Z0CX@W(q*CkCL=D}csHCJ)43pj1W?SledN?xLa3aBJg1`mh zd6Ile!#2K3`TFYCU<^Z3IsX0nwh_2j(nMAu_|vX_NP{e>4Z>Zm@&5_6JJHDLm1PFS zfu~Ud%ZQ)cHN?R}LJM_wneGen#(C*Qdk}{s)xuoyXHS zURj1_rw-DMKw3|6zn5GXNvwvF7IPw_xeNEjZxwC?u}7waB#j)MA%uUICiM_x^76hO zlQNn6`zXSv6l~KZ+%P}2$!}sbKHw`sV;zCzJ220X`ZIU!)Ma*_0@Z!8IORSn6cbrl zLiocaCU3{6OC{~W8mX;vAV007%vQBe(1g}S3>L^N1+ojTTiwX^Qa7M79DydAqdDg3 zE!S5^*m-5vpaF;zmA^(RZh5I!;&g-41OXFmY=fJY84@Y|!Ob%j&8D-!#3xUlytr@v z7pMcTu46D|s<5gsk%u;r@oK+b*qPXV(fv`YO|^fzGfUk5B>*DM+0(An;J$rfYK<~f zKg;Bsf6}eio^p8>4~@5Ewr12>$ahHOJJ4jK`uZ$eUT9mBe_CjBftz+;G;)gu^z+f* zT_$=F#?j>?j66s;DYNN*iX`qQVOE=QX+%KytJKo%8eAJsUR|fgZS_WBklA=fAcTm( zAGl8!E-q<13C+Mii1s2=%}1+Y(cG1Q`m!^L0#y}G95_i4Fw0aTvsmOv$vRE8Kw+0$ zydfKvR_iXFVi$&`%geTV=k7U(NzqCy?TiM!W&nTH1X7u2J<_UQiJw{4GjLA<5s;rE zHSK~l+>E#4mLd&q$}1@=2`!h>pq87rQ)8rd#kg+lKzh>BRy$8(6ME5t(X5jnm#G^uYRPo6FYn_ewQNIYUViK$q949tJIr(jgqo%pb^g&6 zS!y%|QET9$NqQcuYg*gAV?v+7R^3MPXH(F6ecaPwS}w#uCqtOip-X09N?v9y(#|%6 z@pI-LH{v!N>0XNac2y~Jq}Z2aqVY#|5M8`3`E(AN)Fr7qdWE26jO)bW%BhDHS8a3U z)XS5;gQ4+tUq!=8v@&+hjL{)z?y|lLaFHV5%*>P%qa*9MhmTaA`b8vhj&@CV@899x zUOj!tE)X%k{?hqX`fx|4vho`=PRV}H0tE*X1AtI*^U#n_*5iv~Kg+0XwPdvBb{ zPWRT%gusu0k$tOt(Nf{!07>Y~(!dvl)?Oh;+qR43+fff~*M^EvY=)mtT*Ig<(!#f2 z-v8hC4g3$+<{~p_A-iQKP@rCf39?F8!LzFmqm3;zb7k6nPr@3`jjz{+p4vKW+laA2 zs80yLVp7>)rN z=){lI)7z{Db}sx&N(}9>hDqCNjr(qcvuCLpqG7D7Ul^$<*Qm04CPx*OK$#@Ly^Lfg zxM)|KqGie`CF-3WA@)(8^(jWvkivOtIa(Z(TvVey=oxJ)6Q;L|oAC4dWjsWm0=F)s zqtC*n#2LdiPKYCShoXTF*}~&Z(at49j^;uMYJ(45%!sRil8Qq1Ty&_ZV>8I#$9ni}fhMN3(EuMw?q_M?4Gmc@g zKi?;_9Sq%Cx1at!>X!zFXOEjWfpc~X#W20+sAqugnsi?tE+ziMhC_}O=)VlO)IFW} z!aSt+;9^Ko&)AGy(BJZIrZZ% z)T>kpNa$C97$qnEYexL7>zP4*&q}jrK*u%N?(beHafU6ivsY?z9tEhwo#CJ1PBv;v zh~eWxdx{nseSvhbs4cG4UlpVO!1DFK`P%IyyMOu#QN`FDgs$}8A+df5XcrLn__3sv ztvu+zsXguk!x$QX=#be{&s2N)E`dB*?;D|~xi1~O`X*6(ORaZb>NKv)J3(bU5POLr z47H7kziI?&g*?SJLHqbV$ z*G@^PO7HWn4};P5u==9GMT!9N3L(1oAt}`mNlSpB$*m2hYkX+a!jBArSiR1qUMc8y zTJ;hH9>xfmXe?3M6v3Dd@FyT(VilI)uY{;_Q3mA!az4*(#M-EO;ZQpN;e5+!`>p2G$p_*uP$OIQZ6Q6vW>< z>HTEz3BgU0fDj6RBq^4nIln+CnEw0#La`9oO~AyM1MLYK-5TJEkN^|_As+SvP0S@E zv2hCfd3>lfOodvQ+wyfL{>mTWHh29&I}`x7rEIFRm3UCpXx?w{A)ZrXG+}=XFkuSN zEP};;F8vXv$$J(@+IwHw({9x)*eZ|Ss6C;7u=jc)C70A4N}$quIw?Smd#R8)jvld@66N{Ci#XQI7oXBPVo z6t2kHiOvCD6dWAvrTE)TXcZ>gqKhdVTNl{T2}%6DGO-Dl!Tjhv3-%l%ZsZwH`cQ`) zKYrY|rTUsrSmSQYx4!J3=w=;Ti~Uexo!*Vk^wk~|fli~Iy}98gIyZFZm{}Xznks!l z%C$S(KXN=ddA*|HR$f@kF-+K4k*AyWA4`nu8RB50q0X;X{AM(;9|s(nG%Px_sX#k4rXWwW?L|4-N;7ZdimfYw*>diHA#iq{g<@orlX@< zJ5D##or^7#p45I9QB^kJ$CW3W(au_xm-eqNOvq5TRTU<9q@fMC&g~knD_)_YU8A&q zPvO`aKRgW=5u79loE;^0ZKEgFCyScNEu)C8XPM zp>^92dm`Zr^LLJM43s6L)t(5ff8G-vY*kWHftkNc&cV+_sO|EWfcWYgC?7dv!)@ zsczs3ittIRIlg>d>aCnedrbD{NY_c((<&S{-PJW|oQ-T(`#yfFAD9iG zUm|9?#N}w;(7z`pqBk_8E?Cmu5Ft`l@H7hTp}4A+qWEFfQ`>vErr<`--gf9+ooksCF~t;8>H z?)-3@GmUvXK}+?A+6=?AKeLLBT4GsgYi4V4s^6SBbI|t}{eJSRt*g@>UybC%pa$r~ zVpKvHHij3bY^uypLFet}Ma>CN%Inc+MTtP8LRIMIw#vA=v^po9W)sUYa7GBV%tCA& z0qZI5DV4wOw$Z+Kwjr{!qkWWFJazqHpU^66k$f=bh&KC0=dP95=Q$2kqJwxd(R+(p zLufohg1IGnh8CukqOrqowZ~fq6tB-(bxcuitC8=w3;j$W(Ag}ec8J2|hrILl9!;Id z<^C9T@-2En(<;B>K|c3v##CmF&g<&e?xkpIMS7b^qwDwS4%?}$5a7JPkm$z4&K0cB zV23MdsZao1;7GSDk7l(sL)~|E))O@P^pN70-!>Rg}Bp+WzwBjOe_^by9va0UmCiC0x(2{ zNxxWPVNd|Xe9RAp0x+MUSrVWC%))1WVkiLf8JZ=5odV$Jeu$e^X;vm5?!+ec1f)4X zXW{u-6CZAF4BnkHZX_5dnosj#MrH6G&7`;-^aH1fC4+P)!A!`3_kirv6H6SCwn1=c z)_7vc5ZXzAh05Ueo=)NLmka^o308C#!glQb4$EQ5(AUO+St?{nu@nyqfF-bG#XA<3YbO*y zUlYga`xWQLIl&gj0b$%3ODquzfS8Z@p;KW@#(aooNq_<{3!mAE!4@_fp_u~45vHem z%KT4$O9|ydU>5L#w zVt)`XLz5DB0d{2#f3YV1$Z)(LxQ!6doqA^^48!Oa0e|$NwMKifD^y5aXVR?+y5z%! zDFV|7BM3(l21B6v1db3-tAKUI<|8JS;LLnIOso(>aRg@I-1<)V2I=!)!No#Dh=p7} z#3Ey%9mH|z5+5ckew5?vJ^bqbfOZhKg$(T=Zuw&vJKdsO-_--8|2lDAM-T@?D0Kp| zg2b?9A3=Ljww*}XkZp%f*cE6lhKFfKVYG*PqT?S8{(>9Mjn`Eee|@h#;C$AGn`AC< z`GZ;=2gH1*Z*6g^_7M4y#`Bn`rmav=>lYJ@4uPyqt%yec12Lghh;*Q}ohK?_bh4wR zP9xZV=7XmsL3(Nbf|-&KzfF~w_RqK3d{cY=?Y?lQw!K!NcTQ~`=IU7g=kn49G|9=g zzU-gMDlbjjrHITySW1YZqr32b2(`g$MTmz^;PH%#xpgPexyNA|RqH@o)t&k1lPL+4 zZLtl>-(8B{C0|u@VR?a@mr9W*=&YtploD}!n@%qKdzzUg8}re5(VDXDc46wq7)zn{ z{91>dXu^RM9TXqfT;SHpd@aczj;KRtdYnHv=@JlY%jy* zw$4sR&5=&2CVGfFqrqS12n1?Rc9)&DDv!}9(PRX1&uS2d4)E|@l=%)6VuU)wh$Fr%@1y#iX3kzzmiSbL)sE6&qLM5Psyb||mTmJ%z4fD=K#?7zyg9xu zr5rUAwat4>oEO$|jHglLiIDM~7d5AK7mA>6ubZ!(0DhG?Tb)f!;#d$$fq>9fBhT_` zzh3Cnel4#wti8r+Zqvd|MQf8otCmZ2HJ!9FE+(udsZdrMAR2x3_}Zd-|As$d;D^)f zfOCV>Yyv)kr$?98?+n1OO!NYIWduEKPg-_(X?y|EA6!O!ac*#$ zOF(QTke{xI4z7*#j!yNxF#zL_o`7LCA+nPqb#r2botIOT3nr{e6xp~Xxa&&o6QUaI zM_j{0YHt1@J&u4-+c8{(8jP*-^6-J;nVI!F8Y}Y3XNnZVwOt>3qM|%bYd@rPVH$Dm97EuAKaUW%Qj4*!vQhh z86XL5-M=8BHoY+yHTQ31w$~2yMaJII@X*HstB+>o#_%+k7r9!bH0I8U32Un?@)4=d zj`mUhHQ#A~JF*|NAL7u~5?$}ViDBodbTccwD^Ry?p_`i7bj2+hG3uDYjE>5nCSS1@n5zJK=@7X-w>Qqcnxqs7(FpnK45nclvkiK>gdV^l$BBedOdJr#og`XD7>r^vjvXg( zA#t}HEO*86V%+I$pw|xVN2K=yGffW%3l0(=BdC*E;I1zcnx^_Z`rHL(TAw2~rV!o* zV`TcspY*#x+=A+(+&j5~$KW@UG7x7MkV9m7E>_)m(_0A_1t^&{_(`%|Jy$LiK}Ii3*XqMDE8~jGWT}E)<;R6L`s3Lm1cW5}U6IBoGrYFzpq; ziyrY_hs5F`lnepVorW-~O$Mhqag24}?#Bt`Kbnuut{%fKuHtYXWq}641OwTt~ zvEZi_3?rF0h(?Bh6dn0I%fI?+bD>xGySry-zfURcwP`*nH_#CFub-W2sVVxx(k76< za^>KsF{$M*VC|IJ65U5sEgpZju z02{Spk5g#S=FN(HSKi>IOP9(jVg$8C$yV5r%uLt{b7!cSAtm)%cY-nn~H(P`UGYWa$L1X8LJ(pu^y zqN7LGOT`x0f&~jc@bc1q_)r96^;ECXT^gS+ z4@*d^o$a0;xPH^7<^ngblA|lKtawV9y1mXTGo<5CFXCx)Vmb>n@6}WbX%uqjZ9MdU zWlj06l90yp0*$J5U%1myZ2Or3R!(y1neEnDqZ~HgxiF_L-S5V!ttDvzUKv5UHOdQ# zp*%wz4573LNVixy{q$>PQ)NCnHrqmY=HoBU@1ChaEkcp9A^Ysvv$;`o+}zyiQp$G@ zvz}7CA$zh`i;(!Op<7SUx`BR^D5Wm5{mPXqsPPxG#nNg3mb+(GV|h3)v-!&M<;T}t zOADyW4An-+l$Q-#Q*xp?snB!ap^o2BWAi2P3y0{o2>VST(7I9Cjcv9r`Au220@M(E z6qEh+LO6!`%A_Z=Bkb%ZPu8{>=ZD*z(KV?L5Vr!vv@!sRhzam3a-$s9mvuB1+!8&{ z+&;fsSGg}C{NaScJXahLCY(alK=8T#$7d^6l%qD^Aguc8(Q?$DXhV%Z3+#hs%TBem z&DQFHQ6eU2)0H7B+ivHQzY$r!L$MHU0}9k*Y;@~eKdpk`q?s>@1`uN@tR+V#js_sN8Yy8+^Cc_pSd z{Qbp1ON@W?1IPM5M~X``f~{gS09C_zP&m9)ha?Km{ETLw{ zKx~iW=7zo7Y-Vq|ix$nIz9tcB(4!9D#@e*HQvag0qeqXf$cquEnhOQ(H8XW$O>{iG zgV#;kU7*R3`;d;!YD9Ijm!?rvSaN?ngyN9`&9rxopKP>vzPjC3pNH&<0N-N)bKUh3 zG4CSXKg+yokf=uhCaCD);L@>>(1^u-V1>}B&30MAtar8vla&v%-pP_;J>G$PUDbyF z;Km!otY@d+D6w zB-j{cz+*Hi*cgoBG)EZN80OGpJ}uZ7%rm7YG1jozea{y^B?-nc=usx03dS+Wvtl=< zknqizfKv_|_uzmq?u6C0j3cEhknqhogp&$$!f`+tcY>k8I8wR-sTmr$!40xX4@@PP zkU~~Se~EX2cvEh=qu%f2Pk(pO65XoY{zB5M`y}i?$77^3wAA_L4K=Zp)~vgDxDu1? zDm+5tw#E0Bi7%#+wqGWBiSVxJex?Y8LSRn<(5UT6gY#=>)N)<~of+t?S`EJ;xJInF zGZp-0ivaYVvqhGwToAJh>Ce%fN8=``;b6e{1r7+~ zPM9dgI8w6&lI{I~@e8vslSu4L*g2@%A*zQI;{Mzo5#f?10kHRIf@3Ke*n2F2r7V`3 zy$Ac4PzFpf!G(VjCxH2C#C*&TC3|KK-+Wadfsg=cV;f98LXHdsf~m&g2Sj4Naz&=d>*x31T=?3A0}I~^ zKDK?G`njhrzw^Vuy<4QQTV}pB_UWNZ#%x-@@rn5-f3bP#M9RO%O?l?qA-86~^g;gK zSKrOgj0x6lamexg7*H>K(ST>S7tAZ^X2H@`XEkH^FHR{`J~$wZJE8Jn9I06XsZ~B^ zse;5L2#_5X`2hM>NYFGVif|QiYA66=KIVtQbQ1F!GAIFhxEO?Ko+#+yGLIkAsSO(! zoxV72M_>pYM}%?bd18rB0K|OE5A74P0=-}6=d_@>1*fAJfH{YJe0rr*;vAAk_*Z}TCVB?0Phv+yyU z80v4PiJB*mTK!GK<~A>T{Vw&-#8ooPlVR7qOE z7xy~#=Mna7;&-Tlp?a2zQmJmQ`{3|W3>(7>8#B|VbkL70iMw#L`G6%=ER}}5Dc|*# zvksf?K7~o;_2pNKiim3xT{ieEWv1VYm6eC{Y{rhAoZV2HRyRPr$aQYg(WCE0@dP9m zrh;|J*5lLC(&F1veeLk!$yme`k7YmJI=f?Zgq;_O`M-SV|7WRCJVWZwWMpKVKYyO5 zmX}w=2%H=o0?WP~e>^!kKDjiA%&tvf>$6lgzRh!wPHbB3=ht{{d`!sgNN-dy zb;YTTH@4Yo`=d!{hIfYqBwA5qii#MYwQD_6d~f7L+E+EV#l?gLHJ+cTLEXIAP-zU)(3Li4M7Flv~`Q)NOEVc-M5x^E%a&o~4 zAjgTdSYQOOhL)UQFapSNVk?%IEx{m{904!_$Z=vV78n7np(Q1lPbwBfVvPV80j!}V zB^ZnVQkd9_1V#XRY)MH5BY+ep)*^{nlMI4M5db5A6eji}kuw5>+pX<9GlDh=1e!da zM%j>U2Qw1cDU;Qt#ER`i$_;HzpJ8_CvQuic`gN^#!^YgDZg zf#Oy~e3ngc^`GC4q^cC+lOZ4`6A3%A?6AuohgT|!OG*aIP%(`iGv>FY@r@OEOw?bZxey$O&q|AZCM!6TA=B#&U#b#>)v zcN)vyg22ao0^|wZ!~2;90{oL+=z>KjEoQIE`Vm>qe`YTYK6 zbh1F|vn6e4c(PG320L=}=ofKuzBIm|qM~B@yY21m+SkO_-=9=X zMM^eA>Op|i2Ma4LEj>GG=FFK`LPEl-W7o2>vTAB3_mBdYj1ibh>SHTDckY}@r9xZM zWoKsxWt0{b6x&o`Qru9Y(Lk<>loHg`%*q@b>N77cX9{t({_HW8>oL zN~%bWiiH3p1jv26j<`=rK7KqQF|n|!xum4zv0$>7AXU1d-FaemPNnMsR^(2sj zNdjO3FiDfTEHDA6Gh;G^kV#=6i#h=?0jM)$GQ~J1g@G*U1i%EK&Wy!-1jkS^Iz|CQszD4Q;0zSFB>>|B-0}w#fLs1TZq$G-|w{xp+&^)Gw>L<>ifNRe!nNcF#y>9klO;#?gI)x?g)sv zQw^H61i%E~_Bj9(fLs1x0&vS80~3JT0^oD29<+lA!0j^tCIGkm#oVd~?O+0M`wV~y zz%73;0l4K4CIH9$`5f!-_v&ew0M1LgfBl{xGXSh;hzYPni581Xme5EGNqP~G(j1U~ zx^_e_S>Qp3fSAU&NUH}5fDUa#X}}yXM5XWiz#Qm1)&@1fh=4&XedfvUGfkk#AOV_H zut8biNu2v0x%*#of(rUzyx5DCUse00#IkhXbLa^7{y6h7@u+q zNWdroFaa3FNm&?}0F;q2nn28`G!RCa0GI%jkujP8OaMl4QWgd#0A*y%CIAzFS)Np- z@u?<&_{2KQ5={66oD}uUCgjN5J!;!m;e-kF&v$a39z_(Vc1}Xv(rz- z$!OfSZ-6$@LYnKDXefNBlSpZDbl#fwI=lpoJQ_Ciq%6EqOD`d$!V_@BdysQWp#aE% zG93%-G1H9Li~;r-n{-Xf7MqR&G1w#k_86OVP0OZZkC~PVF~|~tAsMoySc(TjGAw~5 zDV9$%9zWI{$LSs%O8$#jHbMHiGzcOMY|6QGYk8&Lx$ zfDtf#)E)dD7fQ8axL!0!_+pu{KvFaeCB>5~930r~{9Q6*xdA;tq1 zb{`@3wDDLFLY@Gfbx9rTF`VK2D)N{KVhSw@0*QhS)Q*6cfCv!jFq&0?@X(1lq;)_< zA_7vHOY90@X&4b!3SnXjaeG7+ra?Ql2M%*C!6G(?p809{=8FIc<`94{i8=JlPfN2I zWWHjMpd%m#4%`xeK{0Om!=McIry_7MORfLs1zZqLhfR#bAfhUWb=}kw=4ORSMtSNuP?GJ;^$Yo6Aah&HU?6kLU(Bs~&`z^e1mGAVK(h*F zNIQsuF*1&y0az^0Z2|DPRS(+11mN}=026>){$g&`gLW_hxP1n|1mKoGm;l`JhiP&g z^XGG{zu&6|6M)-C089XG`HQ(#58A;5;Px2+6M$R(U;=Q;JU+)w8E z<~Z9Aje7n=b0-hzjerTjZNY&Fz%73E{ zM1_EuN@R%3JOLOLV4f)zi8QS+Dk>l@0Rb=p2;lTZ5SRdcLD{$tzQLf7FQt;CgQDTs zoy|@&AAK_6zeARM_5Ab8PQE6ydVKPfd1E*JzR2?AhJ_xjF>WS{CjVFHbuVg-QPBs`WaLKo-7a$!Ul>gP^BPpA%(aQl?4JrS&#`L z$rEsfO?1h_Vk72DYzPIJU{nIMt^fu|_Mg{aIE03(2Trj#Ut5kLtS z^O3;_V4f)ziC_d!p~XU6FalVBN<}0X0aR!)A2*hHksy%@0s2M&Kd*il6-^I&Tz`-B z5p?g7z9}G_o8`Jr?V~%EiLUmCESY_{R^~9kFL&#Gu=44w-xz6PtZ*Y>GTND{ebdZ^%hx9t4aTJ9S>eZy9m8ae6?u`7krI)hdu}}xj(H{0BQ>e6ZK0)=O?rsp_k^mN znza}voD)!+lbh@E;x6yJ=$fMBy4&Y>@4NVEYi)^-B(uAtWSaf+Jru#EIRr>e!ualA z`@RWO%GY}oqH-Aj8W8oMz4U5~=}`1r=gMsccNMYQAQX_4;)Wt5`tUT1!sSN&^H z=QaE_lR)?5Pax=Oaj~O7tvq!KeHxvYEGbzRFfB4CFK^(T*7oJgmoHi3k>)?VGdUP4 zog~cvORo2%S|ZY%*=~*0eXwlVg#AiYyY@92KE*wyGY9a-bdq4;FZr>hob%^DaMZDB`Vd}5YGjUr~)L2ZM=q0*Px$$0fu<1>4qY_TOFqXz| z%^8F#+gq)kxc6E>Nl+neDz52ol=#x6_w%Q}+xbrwW~-Gs_1PT@-?qRu&K~>DizDwT z=`0~rIw70{fypN0jG5#ATf%D0A*f0BI!Uu5>^@B{!h{D8zPx7b+RjSEq!@@mmcSn- zBg*bv+&6N(3+616=*C`(MFPS4^+)q7F)S#5$yRpU6s;o34*qA!-r%hl8nUudBK79WCdGz6WY}@I|%Fp;KSKhi?5Wi%J zMWmvwxys%LtFYQOK5b943s4Mlz4EY~1dQ0lie|IkIwdI8sr>rkm zwYQRy1aW`>5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx0zd!=00AHX1b_e#00KY& z2mk>f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx0zd!=00AHX1b_e#00KY& z2mk>f00e*l5C8%XDgm|Y<6}DZ(y8}?4W%B`QiOa10U!VbfB+Bx0zd!=00AHX1b_e# z00KY&2mk>f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx0zd!=00AHX1b_e# z00KY&2mk>f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx0zd!=00AHX1b_e# z00KY&2mk>f00e*l5C8%|00;m9AOHk_01yBIKmZ5;0U!VbfB+Bx0zd!=00AHX1b_e# z00KY&2mk>f00e*l5C8%|00;m9AOHk_0FwlSgHL{;llQo$fJwP@WDQv{?|;23+XCaX PiQoFC%Nq&v_+S2iN6CBJ literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_3d_full_ones_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_3d_full_ones_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..2adb0fed767e601a25ca0bface257605515db235 GIT binary patch literal 401302 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 s+Oy?4iXzFI)ijOzqJK7r-7` z8svowpaE1nR2uBai>w+DfD51jR6A6{1+W8_23Z9SbV8*a1mFVL0ZW6dZ~-)cYKKa= z0CvFAA}d?~EvTy3X;7aPIkg}F7eEWD>UF{eP|r$>oC1Z?u`PSUurrB*pQVUEaT^lS zP2c$O?O>@5G4>On-4?@b%&*1$&E8xBx9IoN;7uhEdpTApjSk zg@rSY-~u>B!Ubqy;fy1=0M4LpW)m)e84M>J8k}GgCd~-I z1u%o*ghRLhPJnJ^QZPHlp%Vze1#kj%Gm~%u%wRa-5H5fdpqrb73t&z||6_yxCSlQ> z09*ib8u}l@1<;?lxkbS|fMfj$zy;8sxw%Ce7hqh=RxxZ;GKWchTtFciu*f9Dccu`9 zhy?+IMU2V_d_qYjC|lWR?nEY?8#l$`Db^NTRp~SvR!xe>ruSB*ADL_spdAo$oxOUt z2s)ZB&?&&?JUVVNQW%qyfuduSK}TCKB|`vDGcr(gjKY|lj<97+2{Lhr(vbkhNID>wsU`dVuTmU&L`o+No(2up8B|$C{arzN} z3!oosIZJQ>xB&88^olj;We9fU3BU!A=b~3ETmZdD%i9s;qYI+9cYbN=TqlW)9hQ>VX;`mw{%y0#DZf3nwt zoIjq}x@>H(wDx_v&z(E>jy}D6je9g=?1)aCyFC5#-}^q<=cQ4PbgzDC^&eiDkJ~B$ z(peGk#RM5ElyrLf(uqNe6#=}!l@&=kJ&|-`kYYvPc2a#tO&pfU`3Kn51arxZp@_M1TaHM zr-DN;1{%bU@A3{PA!^L9KCtJicGGV z5^ywWrE~~O6C&D}A?yv;E_|TBbs}GpjM$<5Z;n<<7yS(t- zD;wN>LMNv@_U-YvV^TYCSqE0QJ^%dkTtV^0q=N?!X2u&^JP1^dV>MzXt;(I?gUa$o z8f*7%$%!}Ck?Ks_^Uln--+tRW!e?>OpTfKCQnpN4_rm>ErMW@H7j9`*{_)ydslA+L zB{--jpsIf{3|c$tXVPqP_IS^~khoxY?!s7(|Mu<6dot3}dfj}3aBBN>kC96rjYz7h zsg3Y4Hlg*M_H_HEWBhfHfU0SV^1^coyXRkgZTxuBKsIfF!^$1ItFkwPdZnTdk5)A%Es@73i<6T->%5m|bHBW9h-q_Fci65!z zs8m~V>5S?tV`9{ugSv4A`I$bW8hdio1k+2$_B|>mC+EfEk2d{x^NOcT_JubGJ@G&X z?zij(10#|e+elLlF)g2~D*Msqi3e1d7w*~8#;|ztU8cMR6~)tkOr6d7MyDLe%j<7b z92x8+;Cquz0XKKAVRO&6=b9QxdhDW<6DNkR@4`i9=Kr&PWX7frWUz}sq|F-`pAzjC z;kEd-2DO1Dmy}ojZ3*@*wCqfr)BVOqet&_2fzJ&hFh`dNuj2N83LA^|5cBU$b@3 zp31WaS3b3(OGri0`I@S-XTsb^2A2=aOWTd6qXw&8d3ZIsg%c-E{P(|PZa@h1no7Jz z|BSthN!@JP#3u%mzuCt(V2n}?N4xTLRg-&Hz?q+Z`GqXL5K?3244AsNlY!jVV&-Ie z&-?S&vi!{GsrxGP(nqM#gghVs0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w8d$5~%CezGMAM+I_3X<2^;!YAvGNAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY z0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4ea zAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd&00JNY0w4eaAOHd& z00JNY0w4eaAOHd&00Jxt7@i35tk?Im@iCTqX>_%XdtvA=@sD^uY!d$a-$swx@}yzu F{{fKQl4Ae> literal 0 HcmV?d00001 diff --git a/src/tests/_baseline_images/tout_binning_uniform_3d_no_clamp_result_render100.png b/src/tests/_baseline_images/tout_binning_uniform_3d_no_clamp_result_render100.png new file mode 100644 index 0000000000000000000000000000000000000000..e4503ae7d8ad6e0e3f26aaaf613e1522b1633d50 GIT binary patch literal 403351 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 Date: Thu, 9 May 2024 12:30:49 -0700 Subject: [PATCH 10/12] make dray isosurface test cheaper --- .../_baseline_images/dray/isosurface.png | Bin 98363 -> 11455 bytes .../dray/isosurface_simple.png | Bin 63701 -> 7994 bytes src/tests/dray/t_dray_isosurface.cpp | 12 ++++++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/tests/_baseline_images/dray/isosurface.png b/src/tests/_baseline_images/dray/isosurface.png index aded236d286402961d97fe9023c7f318dc795cd4..dd7d1910e6312fc13f735c9f0e851e9204d8d42d 100644 GIT binary patch literal 11455 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 S*B=8YA2Z|IMhymTvHu70c0~XH diff --git a/src/tests/_baseline_images/dray/isosurface_simple.png b/src/tests/_baseline_images/dray/isosurface_simple.png index f495c66227214edba9a6d85b732a0501f13cd981..e6f4c997198d985725e085b5bde5a0cfbcb20016 100644 GIT binary patch literal 7994 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 diff --git a/src/tests/dray/t_dray_isosurface.cpp b/src/tests/dray/t_dray_isosurface.cpp index 6fd5b0b87..4792f6197 100644 --- a/src/tests/dray/t_dray_isosurface.cpp +++ b/src/tests/dray/t_dray_isosurface.cpp @@ -15,6 +15,10 @@ #include #include +int RENDER_WIDTH = 128; +int RENDER_HEIGHT = 128; + + //---------------------------------------------------------------------------// bool mfem_enabled() @@ -49,8 +53,8 @@ TEST (dray_isosurface, simple) collection = vc.execute(collection); // Camera - const int c_width = 512; - const int c_height = 512; + const int c_width = RENDER_WIDTH; + const int c_height = RENDER_HEIGHT; dray::Camera camera; camera.set_width (c_width); camera.set_height (c_height); @@ -104,8 +108,8 @@ TEST (dray_isosurface, complex) collection = vc.execute(collection); // Camera - const int c_width = 512; - const int c_height = 512; + const int c_width = RENDER_WIDTH; + const int c_height = RENDER_HEIGHT; dray::Camera camera; camera.set_width (c_width); camera.set_height (c_height); From b0aecec69098230cc32316a52db9a32c43dd3ce4 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Fri, 10 May 2024 11:34:12 -0700 Subject: [PATCH 11/12] interium state for mpi binning test --- .../ascent_blueprint_architect.cpp | 467 +++++++++++++++++- .../ascent_blueprint_architect.hpp | 14 + .../expressions/ascent_data_binning.cpp | 296 ++++++++++- .../expressions/ascent_data_binning.hpp | 11 + .../expressions/ascent_expression_filters.cpp | 121 ++++- .../ascent_runtime_blueprint_filters.cpp | 16 + .../tout_mpi_binning_bins100.png | Bin 409760 -> 399176 bytes .../tout_mpi_binning_mesh100.png | Bin 417376 -> 401980 bytes src/tests/ascent/t_ascent_mpi_expressions.cpp | 354 +++++++------ src/tests/ascent/t_ascent_python_extract.cpp | 2 +- src/tests/t_utils.hpp | 13 + 11 files changed, 1132 insertions(+), 162 deletions(-) diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp index ac508ac43..7bb4e8ce2 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.cpp @@ -1484,6 +1484,470 @@ populate_homes(const conduit::Node &dom, } +void +update_bin(double *bins, + const int i, + const double value, + const std::string &reduction_op) +{ + if(reduction_op == "min") + { + bins[i] = std::min(bins[i], value); + } + else if(reduction_op == "max") + { + bins[i] = std::max(bins[i], value); + } + else if(reduction_op == "avg" || reduction_op == "sum" || + reduction_op == "pdf") + { + bins[2 * i] += value; + bins[2 * i + 1] += 1; + } + else if(reduction_op == "rms") + { + bins[2 * i] += value * value; + bins[2 * i + 1] += 1; + } + else if(reduction_op == "var" || reduction_op == "std") + { + bins[3 * i] += value * value; + bins[3 * i + 1] += value; + bins[3 * i + 2] += 1; + } +} + + +void init_bins(double *bins, + const int size, + const std::string reduction_op) +{ + if(reduction_op != "max" && reduction_op != "min") + { + // already init to 0, so do nothing + return; + } + + double init_val; + if(reduction_op == "max") + { + init_val = std::numeric_limits::lowest(); + } + else + { + init_val = std::numeric_limits::max(); + } + +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < size; ++i) + { + bins[i] = init_val; + } + +} + + +// +// NOTE THERE IS A RAJA VERSION IN ascent_data_binning +// that we want to supercede this one, it needs more work. +// + +conduit::Node +binning(const conduit::Node &dataset, + conduit::Node &bin_axes, + const std::string &reduction_var, + const std::string &reduction_op, + const double empty_bin_val, + const std::string &component) +{ + std::vector var_names = bin_axes.child_names(); + if(!reduction_var.empty()) + { + var_names.push_back(reduction_var); + } + const conduit::Node &topo_and_assoc = + global_topo_and_assoc(dataset, var_names); + const std::string topo_name = topo_and_assoc["topo_name"].as_string(); + const std::string assoc_str = topo_and_assoc["assoc_str"].as_string(); + + const conduit::Node &bounds = global_bounds(dataset, topo_name); + const double *min_coords = bounds["min_coords"].value(); + const double *max_coords = bounds["max_coords"].value(); + const std::string axes[3][3] = { + {"x", "i", "dx"}, {"y", "j", "dy"}, {"z", "k", "dz"}}; + // populate min_val, max_val, for x,y,z + for(int axis_num = 0; axis_num < 3; ++axis_num) + { + if(bin_axes.has_path(axes[axis_num][0])) + { + conduit::Node &axis = bin_axes[axes[axis_num][0]]; + + if(axis.has_path("bins")) + { + // rectilinear binning was specified + continue; + } + + if(min_coords[axis_num] == std::numeric_limits::max()) + { + ASCENT_ERROR("Could not finds bounds for axis: " + << axes[axis_num][0] + << ". It probably doesn't exist in the topology: " + << topo_name); + } + + if(!axis.has_path("min_val")) + { + axis["min_val"] = min_coords[axis_num]; + } + + if(!axis.has_path("max_val")) + { + // We add eps because the last bin isn't inclusive + double min_val = axis["min_val"].to_float64(); + double length = max_coords[axis_num] - min_val; + double eps = length * 1e-8; + axis["max_val"] = max_coords[axis_num] + eps; + } + } + } + + int num_axes = bin_axes.number_of_children(); + + // create bins + index_t num_bins = 1; + for(int axis_index = 0; axis_index < num_axes; ++axis_index) + { + conduit::Node &axis = bin_axes.child(axis_index); + const std::string axis_name = axis.name(); + + if(!bin_axes.child(axis_index).has_child("min_val")) + { + axis["min_val"] = field_min(dataset, axis_name)["value"].to_float64(); + } + if(!axis.has_child("max_val")) + { + // TODO: FIXME THE BASELINES REQUIRE +1 here, not good. + axis["max_val"] = field_max(dataset, axis_name)["value"].to_float64() + 1.0; + } + + if(bin_axes.child(axis_index).has_path("num_bins")) + { + // uniform axis + num_bins *= bin_axes.child(axis_index)["num_bins"].to_index_t(); + } + else + { + // rectilinear axis + num_bins *= + bin_axes.child(axis_index)["bins"].dtype().number_of_elements() - 1; + } + } + // number of variables held per bin (e.g. sum and cnt for average) + int num_bin_vars = 2; + if(reduction_op == "var" || reduction_op == "std") + { + num_bin_vars = 3; + } + else if(reduction_op == "min" || reduction_op == "max") + { + num_bin_vars = 1; + } + const int bins_size = num_bins * num_bin_vars; + double *bins = new double[bins_size](); + init_bins(bins, bins_size, reduction_op); + + for(int dom_index = 0; dom_index < dataset.number_of_children(); ++dom_index) + { + const conduit::Node &dom = dataset.child(dom_index); + if(!dom.has_path("topologies/"+topo_name)) + { + continue; + } + + conduit::Node n_homes; + populate_homes(dom, bin_axes, topo_name, assoc_str, n_homes); + + if(n_homes.has_path("error")) + { + ASCENT_INFO("Binning: not binning domain " + << dom_index << " because field: '" + << n_homes["error/field_name"].to_string() + << "' was not found."); + continue; + } + const int *homes = n_homes.as_int_ptr(); + const int homes_size = n_homes.dtype().number_of_elements(); + + // update bins + if(reduction_var.empty()) + { +//#ifdef ASCENT_OPENMP_ENABLED +//#pragma omp parallel for +//#endif + for(int i = 0; i < homes_size; ++i) + { + if(homes[i] != -1) + { + update_bin(bins, homes[i], 1, reduction_op); + } + } + } + else if(dom.has_path("fields/" + reduction_var)) + { + const std::string comp_path = component == "" ? "" : "/" + component; + const std::string values_path + = "fields/" + reduction_var + "/values" + comp_path; + + if(dom[values_path].dtype().is_float32()) + { + const conduit::float32_array values = dom[values_path].value(); +//#ifdef ASCENT_OPENMP_ENABLED +//#pragma omp parallel for +//#endif + for(int i = 0; i < homes_size; ++i) + { + if(homes[i] != -1) + { + update_bin(bins, homes[i], values[i], reduction_op); + } + } + } + else + { + const conduit::float64_array values = dom[values_path].value(); +//#ifdef ASCENT_OPENMP_ENABLED +//#pragma omp parallel for +//#endif + for(int i = 0; i < homes_size; ++i) + { + if(homes[i] != -1) + { + update_bin(bins, homes[i], values[i], reduction_op); + } + } + } + } + else if(is_xyz(reduction_var)) + { + int coord = reduction_var[0] - 'x'; +//#ifdef ASCENT_OPENMP_ENABLED +//#pragma omp parallel for +//#endif + for(int i = 0; i < homes_size; ++i) + { + conduit::Node n_loc; + if(assoc_str == "vertex") + { + n_loc = vert_location(dom, i, topo_name); + } + else if(assoc_str == "element") + { + n_loc = element_location(dom, i, topo_name); + } + const double *loc = n_loc.value(); + if(homes[i] != -1) + { + update_bin(bins, homes[i], loc[coord], reduction_op); + } + } + } + else + { + ASCENT_INFO("Binning: not binning domain " + << dom_index << " because field: '" << reduction_var + << "' was not found."); + } + } + +#ifdef ASCENT_MPI_ENABLED + MPI_Comm mpi_comm = MPI_Comm_f2c(flow::Workspace::default_mpi_comm()); + double *global_bins = new double[bins_size]; + if(reduction_op == "sum" || reduction_op == "pdf" || reduction_op == "avg" || + reduction_op == "std" || reduction_op == "var" || reduction_op == "rms") + { + MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_SUM, mpi_comm); + } + else if(reduction_op == "min") + { + MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MIN, mpi_comm); + } + else if(reduction_op == "max") + { + MPI_Allreduce(bins, global_bins, bins_size, MPI_DOUBLE, MPI_MAX, mpi_comm); + } + delete[] bins; + bins = global_bins; +#endif + + + conduit::Node res; + res["value"].set(conduit::DataType::c_double(num_bins)); + double *res_bins = res["value"].value(); + if(reduction_op == "pdf") + { + double total = 0; +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for reduction(+ : total) +#endif + for(int i = 0; i < num_bins; ++i) + { + total += bins[2 * i]; + } +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + if(bins[2 * i + 1] == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = bins[2 * i] / total; + } + } + } + else if(reduction_op == "min") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + if(bins[i] == std::numeric_limits::max()) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = bins[i]; + } + } + } + else if(reduction_op == "max") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + if(bins[i] == std::numeric_limits::lowest()) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = bins[i]; + } + } + + } + else if(reduction_op == "sum") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + if(bins[2 * i + 1] == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = bins[2 * i]; + } + } + } + else if(reduction_op == "avg") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + const double sumX = bins[2 * i]; + const double n = bins[2 * i + 1]; + if(n == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = sumX / n; + } + } + } + else if(reduction_op == "rms") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + const double sumX = bins[2 * i]; + const double n = bins[2 * i + 1]; + if(n == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = std::sqrt(sumX / n); + } + } + } + else if(reduction_op == "var") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + const double sumX2 = bins[3 * i]; + const double sumX = bins[3 * i + 1]; + const double n = bins[3 * i + 2]; + if(n == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = (sumX2 / n) - std::pow(sumX / n, 2); + } + } + } + else if(reduction_op == "std") + { +#ifdef ASCENT_OPENMP_ENABLED +#pragma omp parallel for +#endif + for(int i = 0; i < num_bins; ++i) + { + const double sumX2 = bins[3 * i]; + const double sumX = bins[3 * i + 1]; + const double n = bins[3 * i + 2]; + if(n == 0) + { + res_bins[i] = empty_bin_val; + } + else + { + res_bins[i] = std::sqrt((sumX2 / n) - std::pow(sumX / n, 2)); + } + } + } + res["association"] = assoc_str; + delete[] bins; + return res; +} + + +/// TODO MOVE TO ascent_data_binning.cpp void paint_binning(const conduit::Node &binning, conduit::Node &dataset, @@ -1574,6 +2038,7 @@ paint_binning(const conduit::Node &binning, } +/// TODO MOVE TO ascent_data_binning.cpp void binning_mesh(const conduit::Node &binning, conduit::Node &mesh, @@ -1582,7 +2047,7 @@ binning_mesh(const conduit::Node &binning, int num_axes = binning["attrs/bin_axes/value"].number_of_children(); - std::cout << "Creating binning mesh from " << binning.to_yaml(); + // std::cout << "Creating binning mesh from " << binning.to_yaml(); if(num_axes > 3) { diff --git a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp index 410abb0d6..0d745ac80 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp +++ b/src/libs/ascent/runtimes/expressions/ascent_blueprint_architect.hpp @@ -96,6 +96,20 @@ void derived_field_add_fields(conduit::Node &dataset, const std::vector &field_names, const std::string &output_field_name); +// +// NOTE: ascent_data_binning contains a RAJA version +// of binning that needs more work, but should eventually +// supersede these versions +// + +ASCENT_API +conduit::Node binning(const conduit::Node &dataset, + conduit::Node &bin_axes, + const std::string &reduction_var, + const std::string &reduction_op, + const double empty_bin_val, + const std::string &component); + // TODO: Create RAJA version of paint_binning + binning_mesh ASCENT_API void ASCENT_API paint_binning(const conduit::Node &binning, diff --git a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp index 67a9aef49..67612655a 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_data_binning.cpp @@ -579,15 +579,72 @@ Array cast_field_values(conduit::Node &field, const std::string componen return res; } +template +void copy_array_values(const Array &src, + const int num_entries, + const int src_offset, + const int src_stride, + Array &dest, + const int des_offset, + const int des_stride, + Exec) +{ + using for_policy = typename Exec::for_policy; + const std::string mem_space = Exec::memory_space; + + const T *src_ptr = src.get_ptr_const(mem_space); + T *dest_ptr = dest.get_ptr(mem_space); + + ascent::forall(0, num_entries, [=] ASCENT_LAMBDA(index_t i) + { + // std::cout<<"**** bindex idx "<< i <<"\n"; + // calc location of bin result + const int src_index = i * src_stride + src_offset; + const int dest_index = i * des_stride + des_offset; + dest_ptr[dest_index] = src_ptr[src_index]; + }); + ASCENT_DEVICE_ERROR_CHECK(); +} + +// template +// void extract_component(const Array &values, +// const int num_components, +// const int component_id, +// Array &component_values, +// Exec) +// { +// const std::string mem_space = Exec::memory_space; +// // the bin extents for given axis +// const double *vals_ptr = values.get_ptr_const(mem_space); +// +// const int comp_vals_size = values.size() / num_components; +// +// component_values.resize(comp_vals_size); +// array_memset(component_values, 0); +// +// double *comp_vals_ptr = component_values.get_ptr(mem_space); +// +// using for_policy = typename Exec::for_policy; +// +// ascent::forall(0, comp_vals_size, [=] ASCENT_LAMBDA(index_t i) +// { +// // std::cout<<"**** bindex idx "<< i <<"\n"; +// // calc location of bin result +// const int v_offset = i * num_components + component_id; +// comp_vals_ptr[i] = vals_ptr[v_offset]; +// }); +// ASCENT_DEVICE_ERROR_CHECK(); +// } + struct BinningFunctor { // per domain bindexes // per domain values - std::map> &m_bindexes; + std::map> &m_bindexes; std::map> &m_values; - Array &m_bins; - const std::string m_op; - std::vector m_domain_ids; + Array &m_bins; + const std::string m_op; + std::vector m_domain_ids; BinningFunctor() = delete; @@ -745,6 +802,191 @@ struct BinningFunctor } }; +struct SamplesFunctor +{ + + // inputs: + const conduit::Node &m_axes; + conduit::Node &m_dataset; + const std::string m_topo_name; + const std::string m_assoc; + const std::string m_component; + const std::string m_reduction_var; + + // results: + int m_sample_dims; + std::map > m_sample_points; + std::map > m_sample_values; + + + SamplesFunctor(conduit::Node &dataset, + const conduit::Node &axes, + const std::string topo_name, + const std::string assoc, + const std::string component, + const std::string reduction_var) + : m_axes(axes), + m_dataset(dataset), + m_topo_name(topo_name), + m_assoc(assoc), + m_component(component), + m_reduction_var(reduction_var), + m_sample_dims(-1), + m_sample_points(), + m_sample_values() + {} + + template + void operator()(const Exec &) + { + m_sample_points.clear(); + m_sample_values.clear(); + + const int num_domains = m_dataset.number_of_children(); + const int num_axes = m_axes.number_of_children(); + + // loop over domains + for(int dom_index = 0; dom_index < num_domains; ++dom_index) + { + // ensure this domain has the necessary topo and fields + conduit::Node &dom = m_dataset.child(dom_index); + + if(!dom["topologies"].has_child(m_topo_name)) + { + continue; + } + + for(int axis_index = 0; axis_index < num_axes; ++axis_index) + { + const conduit::Node &axis = m_axes.child(axis_index); + const std::string axis_name = axis.name(); + // skip the axis name is not one of the spatial axes + // or if the domain is missing the named field + if(!dom.has_path("fields/" + axis_name) && !is_xyz(axis_name)) + { + continue; + } + } + + // find the coordset name for the topo + std::string coords_name = dom["topologies"][m_topo_name]["coordset"].as_string(); + // find the coordset dims + int coords_dims = conduit::blueprint::mesh::coordset::dims(dom["coordsets"][coords_name]); + + // Calculate the size of homes + conduit::index_t num_samples = 0; + if(m_assoc== "vertex") + { + num_samples = num_points(dom, m_topo_name); + } + else if(m_assoc == "element") + { + num_samples = num_cells(dom, m_topo_name); + } + + // we have the assumption that ascent ensured that there + // are in fact domain ids + + const int domain_id = dom["state/domain_id"].to_int(); + + // the sample points will be # of samples * num axes + m_sample_points[domain_id].resize(num_samples * num_axes); + + // will hold vertex locations or centroids based on the + // centering of the reduction variable + Array spatial_values; + + + bool reduction_op_values_found = false; + bool do_once = true; + + for(int axis_index = 0; axis_index < num_axes; ++axis_index) + { + const conduit::Node &axis = m_axes.child(axis_index); + const std::string axis_name = axis.name(); + // std::cout << "axis index = " << axis_index << " " << axis_name << std::endl; + // case where bin axis is a field + if(dom.has_path("fields/" + axis_name)) + { + Array values; + //std::cout<<"**** Casting field to double\n"; + conduit::Node &field = dom["fields/"+axis_name]; + values = cast_field_values(field, m_component, Exec()); + + copy_array_values(values, // src + num_samples, // num_entries + 0, // src offset + 1, // src stride + m_sample_points[domain_id], // dest + num_samples * axis_index, // dest offset + 1, // dest stride + Exec()); + + if(axis_name == m_reduction_var) + { + reduction_op_values_found = true; + m_sample_values[domain_id] = values; + } + } + // case where bin axis is one of the spatial axes + else // this is a spatial axis + { + // this is a coordinate axis so we need the spatial information + if(do_once) + { + do_once = false; + if(m_assoc == "vertex") + { + std::cout<<"**** Getting vertices\n"; + spatial_values = vertices(dom, m_topo_name); + } + else + { + std::cout<<"**** Getting centroids\n"; + spatial_values = centroids(dom, m_topo_name); + // double *sval_ptr = spatial_values.get_host_ptr(); + //std::cout<<"*** spatial values "< > &points, + std::map > &values) +{ + // bin_axes.print(); + + // first verify that all variables have matching associations + // and are part of the same topology + std::vector var_names = bin_axes.child_names(); + if(!reduction_var.empty()) + { + var_names.push_back(reduction_var); + } + const conduit::Node &topo_and_assoc = + detail::verify_topo_and_assoc(dataset, var_names); + const std::string topo_name = topo_and_assoc["topo_name"].as_string(); + const std::string assoc_str = topo_and_assoc["assoc_str"].as_string(); + + // expand optional / automatic axes into explicit bins + conduit::Node axes = detail::create_bins_axes(bin_axes, dataset, topo_name); + + detail::SamplesFunctor samples(dataset, + axes, + topo_name, + assoc_str, + component, + reduction_var); + exec_dispatch_function(samples); + + points = samples.m_sample_points; + values = samples.m_sample_values; + + //std::cout<<"res "<> &bindexes); + +ASCENT_API +void data_binning_samples(conduit::Node &dataset, + conduit::Node &bin_axes, + const std::string &reduction_var, + const std::string &reduction_op, + const double empty_bin_val, + const std::string &component, + std::map > &points, + std::map > &values); + //----------------------------------------------------------------------------- }; //----------------------------------------------------------------------------- diff --git a/src/libs/ascent/runtimes/expressions/ascent_expression_filters.cpp b/src/libs/ascent/runtimes/expressions/ascent_expression_filters.cpp index 393b2c1ab..6bdd9cd12 100644 --- a/src/libs/ascent/runtimes/expressions/ascent_expression_filters.cpp +++ b/src/libs/ascent/runtimes/expressions/ascent_expression_filters.cpp @@ -43,8 +43,11 @@ #include #endif +#include + #ifdef ASCENT_MPI_ENABLED #include +#include "conduit_relay_mpi_io_blueprint.hpp" #endif using namespace conduit; @@ -794,14 +797,115 @@ void binning_interface(const std::string &reduction_var, empty_bin_val = n_empty_bin_val["value"].to_float64(); } - std::map> bindexes; - n_binning = data_binning(dataset, - n_output_axes, - reduction_var, - reduction_op, - empty_bin_val, - component, - bindexes); + n_binning = binning(dataset, + n_output_axes, + reduction_var, + reduction_op, + empty_bin_val, + component); + + // // TODO THIS IS THE RAJA VERSION + // std::map> bindexes; + // n_binning = data_binning(dataset, + // n_output_axes, + // reduction_var, + // reduction_op, + // empty_bin_val, + // component, + // bindexes); + + +// TODO: Internal work testing the raja version samples +// // void data_binning_samples(conduit::Node &dataset, +// // conduit::Node &bin_axes, +// // const std::string &reduction_var, +// // const std::string &reduction_op, +// // const double empty_bin_val, +// // const std::string &component, +// // std::map > &points, +// // std::map > &values); +// +// std::map> sample_points; +// std::map> sample_values; +// data_binning_samples(dataset, +// n_output_axes, +// reduction_var, +// reduction_op, +// empty_bin_val, +// component, +// sample_points, +// sample_values); +// +// Node bp_samples_mesh; +// +// std::cout << " GAH: points stuff" << std::endl; +// for( const auto &pts_items : sample_points ) +// { +// Node &dom = bp_samples_mesh.append(); +// index_t npts = pts_items.second.size() / 3; +// dom["state/domain_id"] = pts_items.first; +// +// dom["coordsets/coords/type"] = "explicit"; +// dom["coordsets/coords/values/x"].set(DataType::float64(npts)); +// dom["coordsets/coords/values/y"].set(DataType::float64(npts)); +// dom["coordsets/coords/values/z"].set(DataType::float64(npts)); +// dom["topologies/points/coordset"] = "coords"; +// dom["topologies/points/type"] = "points"; +// +// float64_array x_vals = dom["coordsets/coords/values/x"].value(); +// float64_array y_vals = dom["coordsets/coords/values/y"].value(); +// float64_array z_vals = dom["coordsets/coords/values/z"].value(); +// // int idx = 0; +// // for(index_t i=0;i("dataset"); diff --git a/src/libs/ascent/runtimes/flow_filters/ascent_runtime_blueprint_filters.cpp b/src/libs/ascent/runtimes/flow_filters/ascent_runtime_blueprint_filters.cpp index 0880fcf16..230820e0b 100644 --- a/src/libs/ascent/runtimes/flow_filters/ascent_runtime_blueprint_filters.cpp +++ b/src/libs/ascent/runtimes/flow_filters/ascent_runtime_blueprint_filters.cpp @@ -692,6 +692,22 @@ DataBinning::execute() expressions::paint_binning(mesh_in, *n_input.get(), output_field); set_output(d_output); } + else if(output_type== "samples") + { + // create a point mesh that has the sample points and value + + DataObject *d_output = new DataObject(); + d_output->reset(n_input); + expressions::paint_binning(mesh_in, *n_input.get()); + set_output(d_output); + + // // we are taking the shared pointer from the input so + // // we don't copy anything extra + // DataObject *d_output = new DataObject(); + // d_output->reset(n_input); + // expressions::paint_binning(mesh_in, *n_input.get(), output_field); + // set_output(d_output); + } else { //we already checked so this should not happen diff --git a/src/tests/_baseline_images/tout_mpi_binning_bins100.png b/src/tests/_baseline_images/tout_mpi_binning_bins100.png index 92e19e0d9d07b850825742f354f2e7da33b70ded..6eb6d2409575e87a9ed8a406f1618d7b41ee866c 100644 GIT binary patch literal 399176 zcmeI53w#vS*~XVkA%Yrckstz@T57ByL0buzkW3Yew-V$-QErKXfKo| zEo!77NmV{nJ_s~IfROA`1mqH;B1R0kK$HL>7f3>`oBby1rDRyn&hDAX3(T{>7BhR! zd7qj8IkV4s&&sZR+6T{osf{ zkBw^6e&@r}bLW~&h2{3}ce+s*B@Z@gusumauZ`rX?p%yu0D<5d&X-5ESOP;Na`Ci7&A@bgZ9F#owfDVr6p%wp`i4hzR|LAas(^BR3Fv$h>$~&U zKy>jMIEJhG5Oj8!tC~%#?0lP6QGv+i2nd%e!27L3pgI4*i;jRqCk^Fh0!RXg#{rT6 z+71wD<)MxwfOrfb383u&fmR;sNCIfbfJ7?~btD1AV*p72Z3l?7@=!+-Ks*MJ1kiSX zKr0V*BmuNzK%$k0I+6h5F@Pk1wgW_3d8i`^ARYrq0%$uxpp}O@k^tH zBMBfL14sgBJ3yqBhdPn~;xT|EfVKk!T6w4=37{PV60JPckpvKr0VDxBbU^I+eSW3$ z8Y(K};hp?M|1G(tOMLu)A>D1s?s@5P=T0zxGX_&59r|T;)QMN8-d$H)l+ey(>fgVA z-{t$ZZ5#5lkhEygqN#Te2?*%;^E*!dD|B%3Cf?G3z~hfU{_L~Qepfo^=UCSL`}ZF_ z_(*yl3wam0C-KsQfS;dVz^r4xM7HkRw{O`k0l#cJ`9pB>9^T?5AX%E~ORB0q%_*6i zo>x>B<#UGSq=a_twCLXTk58B|A@|#FKguat|Mhwm!=i;T=tjLqm2#a zmc+!wHeqw;ZXUmW%lP#x10uS2TC{uj?iriwcX6h=!D$S&;62%9nEj_ymAB_tHBn6`S~)Vm*k_~Cy2 z`VAgFeA(Wj({t+ArDR4|9~oz9C>ypa*c=}h*ZaLue%+VMjEJz*om}Z1R2vr9$C)!C zhvn>Rr_KNJm%mJoJ-54fbxhgY<0fyjH#LNWgp3?HGPt%-cDxP?+x+|J*$Wru-TLMO zeSbY}!^BtLpB@?M)8qOMpFf+Lo16RU2)SV5wikc@+WUEVlT4<1ThMKOes+1{vuV?& zIYWmJ8Z@urLTQ)(tWApVw8M5G_t9=|KeT4-9r8b~?LP5ALeOi+XFFRQb@raqy~mqw z5NNC^Femzlb{L(KbFRK5Meg2SzP{z9rEP`{8z!IGrrEKvJJQlRo;`b3c>5taFQ{s; z?cROADQCl^UA47?SDTyaq5|_v=M_Yk+$khw2dw<7Gi@Z=&ZzLdw>7R|km>6g_dN2* zBXX!?+vj!`*NkanD*R^s1k)XFH~$vt7pLdQC#y6pvP}4!R9!uH)v8q{>kkJKo#l5T z@9vp=i3>Rz2$#TRYyB2UcdN0`L{w}ef7FI>61(!J-*IKYm?yY zO}xiRVBnxZ9ZcSV6{fQMjLwQ!h4~pVJ#N0ajr7QEPLsP|7E%=Lu*pMU`SRtDc54%L z>R*d14u=FQKb~sOAMlr_8YUs}fU>ArRN_%a+shDmwA*jHFX`R8_nO1cz4g$VsdpbO zuSwgoMOitvsjk=-Z=N%!N}jm2&5tS1`1s>LC@VE@W2wX$70&mhC;I<=#^!%!J$uWt zJ+lX2|J&<3EX)pS_`f4Fl&6U`A-JjbtB3vLYL73L^YyLenGJHsC5`Me-&q1B_2Aqu zGSG~PMzLyDzo`@{jk7rvbmS$1rGODgO+#K9tbb&}joGVyb!mZ??}TlO>2`ltjUrn2?Ag=Vf5*n{+oQ|#hZhznnd8rV zytb*aGJDY?XUFl1^32v~KM+Pqz}MXP!qE5P>rbyuio0-BK1I_;-yT@^{qkMM2PS1Z zn;K#*Qi)KfZEJW+#szuRIH<8=*XHpzJlgGs4h!WK<))Ppna<9R&ve=icG%h^p|;}< z|M|{tiVg}WSlRx4uNS&JTH$^Ej4)u-fSX6WaH{hwUFN*twcu3YC#ODKxZtJk9XsCd z_p9HPh9}=Qbj}^!9@_VHQ}UXd|GDK~e|zWN5AQi`d(YXBWADP%Um6-;_rt-12aEP5 zWWP5oC&vCmV(5lYOH*!y#aTy>zWNXNDmjAL_NF-JyLyB3xAAT(5lD7+VziPrWMl$= z0tHe666<~q(mgYX_!kB_&MWpXdtR}7W{e#ZjW|r`kXHBbS`lPY1^tB1==%SC6;_MaCSxwl75O<6{4-FbQO zLIosGsuX4i+do^>*~e6PG<8~S#qnKx_NYnhoLw^UL>_Gv1iJh9$oFP@_ZnPLnH_AF zFFDHhc}|nPfByOJdlVg6H%?LA*{0y^O)cM>vNXGXq?Q4l#ENY^-q1QKeVwSQdP}~4 zx@mbx(27;7+HXuxZ#c1g$t?l1RJ6p(i3&&_Rp}EHyY=7y{wk*6*s(_W%5Jc&>acHo z?Qi$Vv$BAK*mhw{@7mL2isB!(P%^t1rJfRa_n-gV9#bl)yb@t zhu4P46Xuxbp1bZrIr6|gwV^h}w-Fj6i|q`gXn51DpVzT-;OX~p%b zd__lKg58pzW?O;grr4!lj*qE2)z#E%=$z@%(LLofv^l)=mbzCr#l9%F6~)-}lt4jz zL#cevV01;{PWcAH)kEi=IemDoe7{S>fBy5I&EYxY!|n2<;_ZGv&cRoBF=a%>`Nph_ zLiGfs-}sG+mG9+T?CraHW%H|DMNX(WD?7XV>{&+?`I|Yc*X^uAlzC2|LjHoA@347i zKY#OgA*%z2#5dM{_St7APoDhhtFQL&|8aSG`ft!To&)A-`F|-Xp&8LP{S@LWb|@GO zn-72K=OfrLR9wwr2SBL{0w1zhFq2(0M=>t}aXdQ$P60L_{?e(pvSYB%5O!OXsv!U$ zRzpe0IuEcf%_E7^k-a0d^eI~bQ&Bb_{!*L*{0zAw;1uA(r$OTf6l>v%khrH&0Yvjn z;ZAl)%tYCI_)EWHUx&jfz>k<6L15oqjhQGLAAc!qn4ckE1k6PF_;I(!DZq`8Ge8%1 zd(4B_eE3T-58`LY6#=OL7d{Od|AQR^D{^c;{H2%&@iXL#fO!xXJ`EZ_faM4cC~|~= z4RgTLq$zAz6O5h*`GVaP^B^`K{!+|?_!)9VkX(E<63Y=>cvUpUa)b&cuK1teXoyupr+c@Ucqe<|ic{0zAwU>?MUPlLvo2WbG2CxnOvIUaocZ7~t$XUG)+ z6HzXF8Z^d50SzGXgb?v<86JH6Z7~t$XUG=;6Hz{X+^sPYh6 z831?basuRSj(a0`339f_k~Akk?&kQq7&k($0B~V0d>S-6dJ}dPANNMMBBXOUt_kQ2*j0F36L3XH=W<*V&>67H@K}v-iAdiHaAAGVDTN<7eLb&u*K%7QBDsh#vp5(|6|U8M(H&Z1#iFf0onyzoXd^f5R?DDK~+! z>@^R5c|_>R{^)xIgmfm5%#ME>yBMY11YpA42>AlQg!%Y!x9$NC z;AY4bU^F^_iywF6WOf9YFq;p5=|}7k=m0h!{?dW$ublPZS3m@(1O^WuZmZ4-m4ElL z+}u=G+}PN-&^zeInqR1VDdJk&E8f7SMg)#TSZrHTQx{f8FKZ}EFW*+YI_BhxX?@I% z=gKYiKFuO7ocwx?b_8J*1S*b<3oSi+_WyE9YVukqv*EHw7q zj}Omz=nre&8sqFAMKpZcDS&9TS@`D2K0CdG8!PtrOEH!2s63Qjp1Gu<++u#|CC6H8 zvh(hF=nsmAA4%*9vsSxnz&L{j4XP+jD`;yiNwK^>BO=1PnZfACSTAMYV9{2makC*M zrFhley?afwUwm;vb+qk(zr~@nl&#l+U5rvs3Di~{4tXIes`k6^ls0m=tX;cyaBy(P z=4j&Oj7Ir8o9y30@^r`0&J-yBdVHwac29n6W!AcN>zb$6DrR_k55BGgM-jm z)~DKI3X2H?RDB3YSy@>zHDymd*?p{a#^&g%FGo7ak9IasYkp6Ws9N>eD?~K~H`Nv$ zKYqNlw6wGTj*a8jKfdnB&Ye5uld8IKp?7@U4~Z*RuC)HU{{bie!{;CI_>mSaT)4PT zw3ol7@%&=nc(2CB%Ix&?^nieX+}vDWbK_k{3vr%MahBu@V1o0960zH#kM zX=!QW#*K?C&mTT?sN-`E*T(dr?jovm;K0LUy#p((N#>^OOfQW(cI=p=#ZtwjKoMr3 zVjG(p5r}FiO-p>{<9xF{&J=a#7mgMM-%PkqKQD_fj_no3PHdPbYx^?T| zVZ&l-k1tM&J-;tCH8mut?)!w`rl<=?r}@U5-E`*s`SbGfoMV{)_j{?vs%ga=y}d2+ zlC{ld%gD$$eE5G%%?Z(OLINGT$#5C=Rhnj%rtf}-a!B=$7t zUC$$87tEr;MQ7M_-7B_0M`S6!wL5QCrSA^;8*7yiw^WiT|W{1E>5StHw zDL#Vu8FEFyYBU!<{>E5|;AhAc0V@$)`1l)RC4!$JPXw$)@X*tst;oK09~ZCq&Hy~@v#`{0+8OtB3l5D4`lPv5I;kn z2pf?I@Zi&+Ej&O2h&&I-JfQd(oLL>rOP~?b#?+0+e)1qmAn1B`- zJ&%D)VxF_pq-8QY3KoOdeE3VBU_UPww?*(HW=Ftn5o|uXmxgs^O5l-YOgvf?Vl6@o zik`=i*09^ch1q=gO9f^K-Pa>sEHwUwq-I)wpqp-rfpfLZLg9|GfPSs7` zR@Qe><`=L3_KS)S*1X*J&Z(b|KGk>YoUW@T&iQrk6MgGCf0noN&pYq$HDXd}-}i;B zTfG*H$-1xWf)^^D>HLq|YKn(+G=0kc;#nbk;>CZwRzII|oq<=JD^7}k@torq_4s%A zvJrgEP3*_@}G1XM8Ot8z25xfMT2$>gI!;q&YmaA7td{?gCcAx5!_QOZpq3@*&g zkSl=Lf!TaE`=ThbEeh2TkOnbpNqR2@G1U!GIFNai=l~`jEebzn=UT{xwSdfufn1nH zr!~qj4QdU_m)8()xqO*iVr73qG25b$ML-&v&?ip*%}aYzjm2J>WDlHw{(HaRx*yjb z#MgTbdGY(t-~8Q36@PS8$RK%B0MTl5V`;hB-mvVJfZ6lsznUZew0XbKy8VfnRcpM1 z8!JN0^^O^<)kR*R)y^PJO9E1Xd?p3VI<|Gkj>az&;^$PKIkIkCN>FTVMO|fa%8v8< zBjPK6{H$~G3-lNLEPczUrrC;ZY-&V6swptbmsBg0EOl8CZG&rfddJu9@;$LEAYcB4 zV28%kC*OJI^8Zs9Q=vw?g)mA2<2Fp(>DyG%(NudVGIQa~v{`wMrIAlJt9vQ?N$(pD zl)G=3?d+uB;OxpKTZ5^h;`n_NCr@rFjW9c=*DmsW_7vPO{IoyN#`B4m&+^hEEw<8# zb~WV%=BiU&R|n2_oIc_NbuZ=goIShXKZen9t#T*L>DIX|XqKmAyD-wykhid-_lAkv z&Y#%5PiI->W?Q*xw{P};sz4g+U^3oYD=WEnA$}pk!`kb^$ z@=WjSwBUA9qJLWW z&Yf^PYDYN0T6s|38LV8@(`e5Srg@!c-OS*oa|vw;~Q&zEVa9X?RDAy=DGvkeFDF|aQ0|w zL|n;)<~@*JRu`c%u$-J;R z<)>*G?m_d2qIQk&F{K?#&m!H!Y=(Q#n0T}(#Ki$ED00LY;pC+V2SZi>(S8$O3DTaa zTM_SO*2Y>r6OR^!uQ+)r;^K2i0Yv*vd=6>P)UAjvK8LXI=N3&5Do zA9zI(6wt2zg#@3 z;YNK_5%m`WUAkWSQruSqJN|{1UVlty2S!@J=EGkKJLYG|AHl`)1a4{ON6e1!)|iL> zu*TUxie^|VRRGa`6Kkc~Gj%H>K8)PLrF~@;o{Y~S?XfE&y7(MYZSmq`KGHI>NFQbKm~zI*DAUye_95Qcvdjed{cDsh-b|O5l}$@r-1?p#U@Sz z3hEbYsyPiVu8+TUARswO(;VNDx=0HTZMz7DE`Pqk&cpCsXkDmZ6g1h{s%i6kj&Da_ zR1w#dFM^@VpSY&13s&_(M_+EqLhm;2s1_0;H7V^8%Td^&mgsV;u|LWLV=-FRcC0VjkrXKs6c`K<#MBqz7&dheWy zz1{D7AisEs;;;<8se0C>SU)#3G<^=<#rL8g(MJ_ge<7gy+7W)o{ugFC{c*Xgc*+}( z2P%?7op#5-VMQm`FWM`3+@{#Zrq%>h+qAN4wB8ZKyWBFB@=DUXK&3MQ!O1$6a+=y% z=Y2r<(d=6Y!jwG%Vj2@ry-^}7CO@X!Vh@^CkeQL0>3H-s684t3T7N4%JiJ!^jB8Vv6;SY5k15lpIqqv4{TS<| z@Ed%{>D6rm{QX~uit;jz963^UAWKtyzh)(Ts_DgBZQR(Vy5esO3d}{z0;FBLb`=#( zS+#n#!*SF+?j3UiwVd6oH#zp)Zg~RTUH<=t-Me?2?Kb&`;0x|dJdm22nwK}p5e<2c zn^3i`ZmqAcmw#aV(WjQS>7RIDvA3_|yunI<)|}mq7cYON*=)9wl9I&9(a&w0I3V#r zMn;D0IVELz>7iy@b$$KNpQi7pSgYe zcgK!3Rviv``K~=ZrYvpoPdi+Z(YO=b4Y%X`{(e)I${FiEza*2jy1IJz?qA(_^19!<^4`l~$A^J$Kz`dUtZ54F+E1%biCh7B7sWSiOEba-t@$f!|44QEq><@M{j z;v{p`sV{pJH8wU@=Y%>|6RyDU|{(s*{Nb7J`p~B4cun3}ppr%!@2%;%Yo?uu6;i0E_ zTO=BqBjpOHI?-Tf=v@1N#ts70m6!2aa>4CtEqUm$g;|siP(2TcS(NAOG;WDml*T~$ z!eJK0$4~3ls%KGnVw~3KmGPJtGCon%-l*8drsf3JE53E15Wo|V6hJiJRQ>fNe6d(_ z_KJXNFD2o6w*s8zo0vdpj+85)dpG1@7R3cyMPs*SQMmH0f+$xN_pW?jLr?lDG%qMD z7+1c{yRf3#wyI%Oeuta({O_v+PV^oA`_o}>JaK3Dr=Je{_1|Z`*wpr}Z?Et0>m@zf z_gn7uo32YnyuVZU>!^XXcYXZ736=4~bFR?U>o3@&;t6&!O1TLnGe78*kKVy!+PHzc z2;km2qv95J7qL<7HUamh$#^uY+ko9{p!SN0)Z5L#sO~O->FjkaShu@C-K`Jnc9)pG z^;Iu!!L{}62oqdeXTWZTcW-eE*6k)f~d9A&BhSN)C-|C44DZNHSVO3R?{9EL8 zmD$1e`jV8?)YO^+v#&$Vy%cbmUVCWtxEp8YuAh)LVAA%#t=PGHiBD2Y*|xPw@%88S z`r4Zs${j1U%KO(^BE!kkl80tnQc7n1nXlG7{Kv|&^zuHvn_qcbUnnZeORqWhQnpWM ztfO<>vzlw@o?gv3YZ55x`!`2c?D7uYaejY4Yi@+ac4%06VP-?wu)sja?*skm9(6Cp zr4gK5n)J@4L8OHX+r>7NrkN_f3r~3}cT2x<8yuC~n@G32G%()LfeqQOkoRrXx z(k%hA!k&$9s+-mvSG<84-O9e3j@cH4ECNZf=dT+zYSiSo>c;w|>-oX~`X1c$K*7D`cD=RB~ zCPzJGDJZXLST`=ENzRJA11qd@Mms+$%Il|#W;bEZ&|2NX(kVQ1WSw_VtuQ&h?g#n5 zrrOhMlLmxlHp(jx6SvMj{y{=e^vM;|HqN|-6~s{{VZGWVBabRrANJ4qbY||s*xKWZ zO|#?UGbYRfHl6)o|#6cvy>sj{Q` zn+Zp@%q-8S>0=74`+m94fQi;=NpT%q$Fi!Z<2nkX#^|`{+JTI6Es8>H<$FWCeRV#R z!jJ8?ttx!L`4JVK%v$L^ylV8^l5f^01UJ>n3)LPFX!%Aal_f#=lxPWQKp^*0T62O*jXNb*!V zJZHnC%-A|P9}Nx)3K~4Pwlu9EU(QkG8CowDl)^fysDvsW5Rl~Sa`N?ruBw{iVRx!9 z=~oHYaP(uVCNh@9)KJo~4zdp&;i?IZMSL}s^s9rb!uqjQ6&W`etHPvPC9KfuhE`o* zBmwF;=~fF#fNp421x6B}3X^`7kOb(*R#jvq0jenJ`BmwGK=~5F(fG${72i5-(ELZ!}DdcC}v1wZE*Dd&EBBtQG4DogW!yjjuVV;-NBZxa`s}i{4XsoezM0cqlb_fdMH2fm9vh z5)jZ5fC13*hXK&?7ii@TuPzy$05Jd<0Br}r0BHFOwDN{mmkdvU7yt}_wgX@QwEP8H zdBdwqh9^J_00uzY0Wbhs{sOJM;ngL>6Cefv1EB2y7yvDQfmYt|>XP9J5Ceb#&~^X} zfR?{ND{pvp$?yb-0l)xgI{*ei%U__CH@v!Jcml)#U;wlo00W@qFVM;xUR^Rg0b&3! z0NM_K0nqXnXypyBE*YKxF#s3db% zCqN7U20+^ZFaTQq0l7d0JI$d1EA$E(8?QLT{1iYVgN7z+75sL z(DD~($Rqpk* zv(xRbokO`QkEF|0x!2duPK(#hpM#J>F#rRg6Cefv1EB2y z7yvDQfmYt|>XP9J5Ceb#&~^X}fR?{ND{pvp$?yb-0l)xgI{*ei%U__CH@v!Jcml)# zU;wlo00W@qFVM;xUR^Rg0b&3!0NM_K0nqXnXypyBE*YKxF#s3db%CqN7U20+^ZFaTQq0l7d0JI$d z1EA$E(8?QLT{1iYVgN7z+75sL(DD~(y@9>4!E%@M8>CYzV-r8Bu-nDf84O6mF@e!U)pbNVgr8*N3b&iklE(qvt11{tZUkn4F9Re@_TK*!fJk((T zv||7UK+7KnK+9jGm4`YEfOZVP0BHHc0BHG(wDM4g0nm;C7yvDQ7yvDQkyak+FaX*y z00W@q4+Eg(FVf0G9R@%<24DcR{9ypJ{6$)MsKWqg#{dj~mOl)DmcK|V4|Ny-?HGUo z(DH`?(DD~)<)ID(pdAA+09yVq09yVctvu9W0JLKO20+Un20+VSq?Ly{41jhFzyN6Z z!vJXci?s4khXK%z0T=)+e;5EQf00%m>M#J>F#rRg6Cefv1EB2y z7yvDQfmYt|>XP9J5Ceb#&~^X}fR?{ND{pvp$?yb-0l)xgI{*ei%U__CH@v!Jcml)# zU;wlo00W@qFVM;xUR^Rg0b&3!0NM_K0nqXnXypyBE*YKxF#s3dbI4gqWXoo(8fOkTT$iS|Q2SI&O5;+}MAMJ-5ONM#J>F#rRgk&YAh2Ste)hLt|LoDD_l*r_^fnjp ztI9+(61NmNMqC{>J!Bt$*YPC}A8h|=*GC4Q-S}(5w_Jz+zV}-r^+eM8`q4I~;ab(J z7CfcSNpgI?Wc;|Q-^zoN=gu1xzju0e=uA^~U|?;NT^0}`_F|QU1k>s>Eqk%-#5H~p z{uFx{Y8|;YAmjB`CwDV&9K6t!YW0FPCraR;4 zO&P&rQ5C&cJJV=>J=`(x`n-VY6>O&D#7Q2ER+9=o^Fp zLI5Fv5I_hZ1P}rU0fYcT03m=7&`1PWxE4=}i-DUK-r;&jE%wWIAf=K|$io4Z6p#Fg zQs2QwL;g}}P!1>e(4fqA#jGCbiiOgoGR@Vb%yz}Rj_Hbp(xfsC(xl9G!Mrlw?}CNW zq#_|TfM9MRHGp6SAT@ws1|T(nU1$(E+e2WJe z>-IDcJZBPy%HGPoMc6G;lnH~rg)n&(4Ln*ZF1AOeW>Z`0G;65h#jP)%Gp6*F zCidds}#}Db24}+{p>@%y{#O{2Q|OvaP7)d28v*ey#p6X%uL@ zGm$k=s~n1z{Z&q)jReThBb}4EzWjOd;uFpHA1r=#ZI{0AZ{-hPe2c#?eY3TP=N7z5 zw1sptxmF%7KJzM5(l=!u;stqewUHI7e~mP?4m+1Pi9b?WU~j=Cy>^&Ttgdg8@k``{ zj!Kj!r8vY7mWV!0LZs;jG0r8Xgs!%71EHvOmEWn8o>E%m;e*m_ zcHKzw=OCG5K#Nv;UKn<|BO zk+8e3YuS>QZ*;d`;+u?BtY^JnT;1mw<``3*Flg-jl=O6F&7JX<%QxQkw-0LENfEAa zbabTA#05L`bXV?~@?s9WyKxF*O(nd@LEbe`5r49Yo1}@u4NCWB;44hl@(^E zy`0wgj48;gGHbZ#>r;19Pu-s8goE=U1H?-Kj&Y4ez?syvG;yJx1Y;!qy6N%Skb(fV za0~{GYH+`P{l*4vzMpEyCeH+ydbvlqxoWbhsVLORr=NSCt7RW73%0rc^{b^;R{R2O z`g>TWM8uX9Trazz*rP|iP!T|lcw?4F-Mv}%t5-Kv<_RjC=)*DR#%F#jSF9-b=g(0X zBRhNPF$pF@Q}J1OM{@#@N2SyUGHDYorW4AxCSxWiGbZ6k7@!cwW>%GZm-X;zu@izCILGb^~>!k{owSUJLAKs z>()Vo@%JC5W9-(IgfosYyD{z0QL|``$#$@^eSOZ=3K&a$DPrg*S}xYr4LSRCX4LQt zeU*tlL>oC-4HY>dAt8xFnN68ttLdvXtvW|IGUK?WT@qaI$DflH^LeF)MAFz9f zzHN+0^^@B&0ZC&zJ)ta&83)f@(q?Eu!~Ez%TvO?)KBWM_5=IsIR zMCN;rXN)j*OG!(M9#Z@5ffvHY=#LT+V^I^8GnTs)JQGHfb z_T^%3LA-!h#Rj6^4Y9dmpB}VRk2X{R$dd;sc&P423{$U$$4upFKFmewS+ay{@7NgxIRovTQ@gqV`0s+WIb>0jc3Vz>FMcV%Oci!dV1deeK0Fw z@9?a@mtNjdTNL4tm6n>iBKy)RUcOfqG@eSPgti{OO+7j-z|hGy+N~ltSLg6VYqzRc zp6<-e&&7hO#B+m_5LlFhfUU~fzuVJCbt#DXHKgO?SJ_9W+bIVe9q~Ym%1ykYU!~aJa~{u5m$rIS+^*->A~8NKsVsz0SmLnG~=q?7;Y(X$hr_) zxX<|Tgr%2$P1LuZZ3edG;t9+_@>G4@Zne)JUoGgSb0vQcCa9~7%1%1HT6t4i|2@8xY3QutIUIktn%{mn>Twh4B6g;4kYz9%-cL@-w5Nrn1yM* z%(5P7VTe|%r8((Jp~)1AHU{ct^BQap2zxkZb`2WaTt<9zlqDCI@49wv2KMN(y|$u) zBep0)rK8U#8yNJ$s%X6E>V_OA`5xY*IM5vzC^3hJe=8DaNVaK4N3kHw_w!BbA57`X z;DKk3NBPA!)+Y-2iIfBo+AwNi!d^vrM()3gQ0eHimHp>hSTJF-4dlJVv_NCONj5Vn z6nf5vNcpD0zvoMv3Q;vlW7#m#z^aI3$F0j$Xfh*(7THl`NcVk4Mh1)`>5n5Ev~^9a z=8ZY9efxG?US}|!NmvmDt4Ag(m zbg%r{NTz5&6nNNGfsn87UC?Ax;2=}2Q#8j8%_ zl)TE%#tn>i%-S?#Rt6Yd#9$@0lQd<4TQSV-zHw!|@dQ0k2?DGvFw}u%j?RzQi+j3% zjxAkOKhgT?a_1X;GK*3J6jd<98WqrV=f zXb>hME2^RyzBc16lLO5gK&px?O1D)6TDJ0S^)>W@st{P9NMcYGF_i9`2()a8{pNG@ zL`?{wAwW$)zl97M0^S0Qx*nq;prc6RPRH}lXReD_7P>_K$Meaqu^0!I$MNw++At3k zY_#zSxFmy~Fa#4m9ZOlO@T($!d&rep(>>oHlP#Ar*X4m>4P&GR7=kCg#BAdenByD! z{rBIyl|Q;SbpS?<-!TC6PG&y%uN@d`5m*1v8f`2z>YUp|~(dib0! z7tGopJ%XkFcMgrOuFJ5{Umg`65`z0buZ_&{@$mtZ`h>fAd3#|Enf5^W%ht2x6oyeH zVo^qjg+2rus@N2mAa;uu?Y0yCa^tr?_;fNIRy{}LRHUV)fv=ne3%tjTyc){So;}MH zKGTO8G`n!>4Sa%g*REar_U#L`j&$3+S!sz{A{WR{QMch6mAvx9!XIb1!_KafJiKe7 z)b;DjVLHqhqh?*O0VYzQi-tMMfq&aXe*#lvuy$jbGt7awySvjxWp+$3;hsBp6fQHL znF$FA14qnkUcnI`A1@M#1`Qf?;J^VJ8yjqO%8@B_u{SuMimv83_Iem*$8;{ZY2j14 z2)c-&Iy%RU-6w(bA?_#F)B5WA8JnK|1M5cuPG1A>yULi_`K^}*iD9i{)ao03`}PGl z@@dnixx(@W4EpfW%E|=Xl^O$&xUy?5#WQEl#9d`KySe?cd2_Ra6z(Jo)7&d+i&8NL zv{vwl_9#vZ9B$~?n^91(V)WPhaldO55AJxo#t$%|u$ZEMit6nAVXJw;7{qUb0+~G3 zT*{XJt>>AHZwO(j$AxpHV8+h@xAv{z`#i?~=uuB$bz%<;T-YlrEAd8s^z@C3D-&0z z9c#o5{!e!6(+ai^ftgnr*w?) z%-GdSYvA%N&kkXjccn}4oZsw3rIu~L<3StVQTZ!B;NA7{gPPiDW0*6{ho^(<`ld}a zqx2fzW8jNI)JMQhsImtSm0~cE-=MSAh+AOWv@DQFj3bFR$CsweAxwN<<~?k^EGW~ z%WU^Fl{2vG6M$tL^!@mHpFsEg9(OY`ww*l-Q|;huwDa`Z1zFQzgxy&B;H;mm=h}7a z)|K2pWniDS9K6=ghs8Ao@nW>BK%p9Jx%{4EWLRv&#Ud`Qa zv`t~@0iH|TQwbzEUteE~dGqS)>ej=G15r~w^v^{G!60J&;N(=r=kup!Ew8=VPapf@ z)WL;6j+6VRytHIcy)}7gZbp~O>ZLt;3#_&T`5EIpzjyM?Iat~btA_UY`W7~CZbOA- zNg)=&mF4Ba`+jj#O-zKqe8YJzd~QLQPlW@X3cm45FX-s=qurh8bjia|YaZy>PHZ#G z*QDm3MA&O;bfT{wy~>O2Rg^Le!^bu(To#~3|(zx*E& z`REjyROp)@!NPZp3S#n^bL$@dy%b}t%{X0vFIND!cRt?;@5{j&k{)OrdGM>1348vO zx!}zeu$XPss8QhR2D%n_&0AgHTypEyx3FN#j6d>^r{MNxnCsjNL^e~W{1_MpTC)AW z*+<{`Pp;r>yb{Dy2fDcqKto~oLXc4X|VM4HeI!5L!UJTZbff$J4Gd4V)itqja zlDHVwV>f}>RJWy9*tc(zZA{d`-}+68Ivyr-ojlnKRBf=(KqD8#!3J}njRhHP{OjD8 z7z&XS*xoJt+m+k4b0qnn*MU;X`?FracVL<4QQ3ToPGmVWmvVC}Yo02E? zQgqp;9lNo}!gSi?$<9fi`tPHJOaZE=f)kBZ#XhO9zTtV_LNjflAKZ*lm`;HwuU{AK3d-tZy zoY@5Jyx_svMYtn-QF^d%K|#U1fawJk*a8AXggN7&Pq+iMVmq!WfE+lt2A0dix<$w> zb@S#c=g-3;Seq<6x+%A*EDTi4u!A*^9l|PLHGGP{0n7$~)qm-%S&2|xL7cpM_im7> z*ST{uz4=^NXAavHfJ_3GJRF{b3&juI-+#Sm{NR-mIe%QzSaDy^sV3dAj?HkHY-TnP z!@z2P%?b8s!F2;*7i@#@$?-f#ijW&0FnvSMN!OqM1xA~?`uchve)T$a@SB|jC)!+Z zws~Q&>iH>bi2+{k*I}0gyuS1rI()b_m<4a$x@E|0Og(olyk%RFUYK*{V#^KexMpQ> zp&Uo$pgS(tDab{m+tv|a%+lTR6t*A8jc|ZDJJ26YxSVa;Vo(jEO3$4yy)K4@?H6Ic zX6Vm*4IMEekU|&Z4)HL%Gs!9(w$3Vr4Sj}BU+)1P^3XDym$|@rVeD3pLA8m4rS5(D zeUb|U3E1#Qj2Hp-B0;q;UHJT@Z%=&VTBtUkK_1KVV~68eUEr#`CmV^sM2hR+!l31} z8PcreMwYIS-nAOai?xxy!?^em?4ruAxEiJ*ZboalSOX5|f8N?S@$%)4|Nb~GdQwbF zLw=Q*H$OuDFfdY>UteXgD+Wf6P|kER7*V<+?$R=upOc0ag-{z%gi2>V8@X6{YU`9o zqu353@W(#oNuV~M9G{NIj#O?LA;)xg$BRkg6#l1ZlO<_>&B?H9n>0IJF|@Fc(o!MS zP$@i}5qVaskSIzHSzi>P(wWZ~KO=RZGx2PHTILFOTal(SO&UZYl_2l~5`|QPYugh= zqEOqhQq7yKtQA4}m}+2`rm8VEiBkthOLN_|LdY^lG(R<_70mu|oaQ=rw!-C+%HxrB zR5?B!kNrbaRD#jtU{PJyyfmgK>YDIFss2ztkxw4$To-Ny8laec(Pg`!mX@sn9g+D* z%~@qER6e7jxjog30=}&PXtL~W$aLCs4d{qEt*qos2w8{-=1VJk3Xn%0A{Zytk=K~n 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 RyP=9yzOeWClh5f#{{!el=CA+& diff --git a/src/tests/_baseline_images/tout_mpi_binning_mesh100.png b/src/tests/_baseline_images/tout_mpi_binning_mesh100.png index 1ade13139e707e45251015127dca1b332f830290..9fed68100415dc7c956e36f4a462ac5130a838fe 100644 GIT binary patch literal 401980 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 CHU?_| literal 417376 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 N6VHv__PF}Z{|6s(#=!sp diff --git a/src/tests/ascent/t_ascent_mpi_expressions.cpp b/src/tests/ascent/t_ascent_mpi_expressions.cpp index a42b96014..80bec9aed 100644 --- a/src/tests/ascent/t_ascent_mpi_expressions.cpp +++ b/src/tests/ascent/t_ascent_mpi_expressions.cpp @@ -63,7 +63,7 @@ TEST(ascent_mpi_expressions, mpi_binning_mesh) // Create the data. // Node data, verify_info; - int dims = 32; + int dims = 2; create_3d_example_dataset(data,dims,par_rank,par_size); Node multi_dom; blueprint::mesh::to_multi_domain(data, multi_dom); @@ -80,123 +80,7 @@ TEST(ascent_mpi_expressions, mpi_binning_mesh) output_path = output_dir(); } - string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_mesh"); - - // remove old images before rendering - remove_test_image(output_file); - - - conduit::Node pipelines; - // pipeline 1 - pipelines["pl1/f1/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f1/params"]; - params["reduction_op"] = "sum"; - params["var"] = "radial_vert"; - params["output_field"] = "binning"; - params["output_type"] = "mesh"; - - conduit::Node &axis0 = params["axes"].append(); - axis0["var"] = "x"; - axis0["num_bins"] = 10; - axis0["min_val"] = -10.0; - axis0["max_val"] = 10.0; - axis0["clamp"] = 1; - - conduit::Node &axis1 = params["axes"].append(); - axis1["var"] = "y"; - axis1["num_bins"] = 10; - axis1["clamp"] = 0; - - conduit::Node &axis2 = params["axes"].append(); - axis2["var"] = "z"; - axis2["num_bins"] = 10; - axis2["clamp"] = 10; - - conduit::Node scenes; - scenes["s1/plots/p1/type"] = "pseudocolor"; - scenes["s1/plots/p1/field"] = "binning"; - scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; - - conduit::Node actions; - // add the pipeline - conduit::Node &add_pipelines= actions.append(); - add_pipelines["action"] = "add_pipelines"; - add_pipelines["pipelines"] = pipelines; - // add the scenes - conduit::Node &add_scenes= actions.append(); - add_scenes["action"] = "add_scenes"; - add_scenes["scenes"] = scenes; - - // - // Run Ascent - // - - Ascent ascent; - - Node ascent_opts; - ascent_opts["runtime/type"] = "ascent"; - ascent_opts["mpi_comm"] = MPI_Comm_c2f(comm); - ascent.open(ascent_opts); - ascent.publish(data); - ascent.execute(actions); - ascent.close(); - - if(par_rank == 0) - { - EXPECT_TRUE(check_test_image(output_file, 0.1)); - } -} - -//----------------------------------------------------------------------------- -TEST(ascent_mpi_expressions, mpi_binning_bins) -{ - // the vtkm runtime is currently our only rendering runtime - Node n; - ascent::about(n); - // only run this test if ascent was built with vtkm support - if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") - { - ASCENT_INFO("Ascent vtkm support disabled, skipping test"); - return; - } - // - // Set Up MPI - // - int par_rank; - int par_size; - MPI_Comm comm = MPI_COMM_WORLD; - MPI_Comm_rank(comm, &par_rank); - MPI_Comm_size(comm, &par_size); - - ASCENT_INFO("Rank " - << par_rank - << " of " - << par_size - << " reporting"); - // - // Create the data. - // - Node data, verify_info; - int dims = 32; - create_3d_example_dataset(data,dims,par_rank,par_size); - Node multi_dom; - blueprint::mesh::to_multi_domain(data, multi_dom); - - conduit::blueprint::mesh::verify(data,verify_info); - - string output_path = ""; - if(par_rank == 0) - { - output_path = prepare_output_dir(); - } - else - { - output_path = output_dir(); - } - - string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins_input"); + string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_input"); Node opts; @@ -206,46 +90,63 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) opts, comm); - // for render - output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins"); + std::string output_file_mesh = conduit::utils::join_file_path(output_path,"tout_mpi_binning_mesh"); + std::string output_file_bins = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins"); // remove old images before rendering - remove_test_image(output_file); - + remove_test_image(output_file_mesh); + remove_test_image(output_file_bins); conduit::Node pipelines; - // pipeline 1 - pipelines["pl1/f1/type"] = "binning"; - // filter knobs - conduit::Node ¶ms = pipelines["pl1/f1/params"]; - params["reduction_op"] = "sum"; - params["var"] = "radial_vert"; - params["output_field"] = "binning"; - // reduced dataset of only the bins - params["output_type"] = "bins"; - - conduit::Node &axis0 = params["axes"].append(); + + // use same axes for both pipelines + conduit::Node axes; + conduit::Node &axis0 = axes.append(); axis0["var"] = "x"; - axis0["num_bins"] = 10; - axis0["min_val"] = -10.0; - axis0["max_val"] = 10.0; + axis0["num_bins"] = 2; + axis0["min_val"] = -1.0; + axis0["max_val"] = 1.0; axis0["clamp"] = 1; - - conduit::Node &axis1 = params["axes"].append(); + + conduit::Node &axis1 = axes.append(); axis1["var"] = "y"; - axis1["num_bins"] = 10; + axis1["num_bins"] = 4; axis1["clamp"] = 0; - conduit::Node &axis2 = params["axes"].append(); - axis2["var"] = "z"; - axis2["num_bins"] = 10; - axis2["clamp"] = 0; + // pipeline 1 (result is on mesh) + pipelines["pl1/f1/type"] = "binning"; + // filter knobs + conduit::Node &pl1_params = pipelines["pl1/f1/params"]; + pl1_params["reduction_op"] = "sum"; + pl1_params["reduction_field"] = "ones_ele"; + pl1_params["output_field"] = "binning"; + pl1_params["output_type"] = "mesh"; + pl1_params["axes"].set(axes); + + // pipeline 2 (result is bins) + pipelines["pl2/f1/type"] = "binning"; + // filter knobs + conduit::Node &pl2_params = pipelines["pl2/f1/params"]; + pl2_params["reduction_op"] = "sum"; + pl2_params["reduction_field"] = "ones_ele"; + pl2_params["output_field"] = "binning"; + pl2_params["output_type"] = "bins"; + pl2_params["axes"].set(axes); conduit::Node scenes; scenes["s1/plots/p1/type"] = "pseudocolor"; scenes["s1/plots/p1/field"] = "binning"; scenes["s1/plots/p1/pipeline"] = "pl1"; - scenes["s1/image_prefix"] = output_file; + scenes["s1/plots/p2/type"] = "mesh"; + scenes["s1/plots/p2/pipeline"] = "pl1"; + scenes["s1/image_prefix"] = output_file_mesh; + + scenes["s2/plots/p1/type"] = "pseudocolor"; + scenes["s2/plots/p1/field"] = "binning"; + scenes["s2/plots/p1/pipeline"] = "pl2"; + scenes["s2/plots/p2/type"] = "mesh"; + scenes["s2/plots/p2/pipeline"] = "pl2"; + scenes["s2/image_prefix"] = output_file_bins; conduit::Node actions; // add the pipeline @@ -256,7 +157,6 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) conduit::Node &add_scenes= actions.append(); add_scenes["action"] = "add_scenes"; add_scenes["scenes"] = scenes; - // add extract conduit::Node &add_extracts = actions.append(); add_extracts["action"] = "add_extracts"; @@ -264,9 +164,16 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) extracts["e1/type"] = "relay"; extracts["e1/pipeline"] = "pl1"; + extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; extracts["e1/params/path"] = conduit::utils::join_file_path(output_path, + "tout_mpi_binning_mesh_result_extract"); + + extracts["e2/type"] = "relay"; + extracts["e2/pipeline"] = "pl2"; + extracts["e2/params/protocol"] = "blueprint/mesh/hdf5"; + extracts["e2/params/path"] = conduit::utils::join_file_path(output_path, "tout_mpi_binning_bins_result_extract"); - extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; + // // Run Ascent @@ -284,12 +191,163 @@ TEST(ascent_mpi_expressions, mpi_binning_bins) if(par_rank == 0) { - EXPECT_TRUE(check_test_image(output_file, 0.1)); + EXPECT_TRUE(check_test_image(output_file_mesh, 0.1)); + EXPECT_TRUE(check_test_image(output_file_bins, 0.1)); } } +// +// //----------------------------------------------------------------------------- +// TEST(ascent_mpi_expressions, mpi_binning_bins) +// { +// // the vtkm runtime is currently our only rendering runtime +// Node n; +// ascent::about(n); +// // only run this test if ascent was built with vtkm support +// if(n["runtimes/ascent/vtkm/status"].as_string() == "disabled") +// { +// ASCENT_INFO("Ascent vtkm support disabled, skipping test"); +// return; +// } +// // +// // Set Up MPI +// // +// int par_rank; +// int par_size; +// MPI_Comm comm = MPI_COMM_WORLD; +// MPI_Comm_rank(comm, &par_rank); +// MPI_Comm_size(comm, &par_size); +// +// ASCENT_INFO("Rank " +// << par_rank +// << " of " +// << par_size +// << " reporting"); +// // +// // Create the data. +// // +// Node data, verify_info; +// // this is per mpi task +// int dims = 3; +// create_3d_example_dataset(data,dims,par_rank,par_size); +// Node multi_dom; +// blueprint::mesh::to_multi_domain(data, multi_dom); +// +// conduit::blueprint::mesh::verify(data,verify_info); +// +// string output_path = ""; +// if(par_rank == 0) +// { +// output_path = prepare_output_dir(); +// } +// else +// { +// output_path = output_dir(); +// } +// +// string output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins_input"); +// +// Node opts; +// +// conduit::relay::mpi::io::blueprint::save_mesh(data, +// output_file, +// "hdf5", +// opts, +// comm); +// +// // for render +// output_file = conduit::utils::join_file_path(output_path,"tout_mpi_binning_bins"); +// +// // remove old images before rendering +// remove_test_image(output_file); +// +// +// conduit::Node pipelines; +// // pipeline 1 +// pipelines["pl1/f1/type"] = "binning"; +// // filter knobs +// conduit::Node ¶ms = pipelines["pl1/f1/params"]; +// params["reduction_op"] = "count"; +// params["var"] = "radial_ele"; +// params["output_field"] = "binning"; +// // reduced dataset of only the bins +// params["output_type"] = "bins"; +// +// conduit::Node &axis0 = params["axes"].append(); +// axis0["var"] = "x"; +// axis0["num_bins"] = 3; +// axis0["min_val"] = -5.0; +// axis0["max_val"] = 5.0; +// axis0["clamp"] = 1; +// // axis0["var"] = "x"; +// // axis0["num_bins"] = 10; +// // axis0["min_val"] = -10.0; +// // axis0["max_val"] = 10.0; +// // axis0["clamp"] = 1; +// // +// conduit::Node &axis1 = params["axes"].append(); +// axis1["var"] = "y"; +// axis1["num_bins"] = 6; +// axis1["clamp"] = 0; +// // +// conduit::Node &axis2 = params["axes"].append(); +// axis2["var"] = "z"; +// axis2["num_bins"] = 1; +// axis2["clamp"] = 1; +// +// conduit::Node scenes; +// scenes["s1/plots/p1/type"] = "pseudocolor"; +// scenes["s1/plots/p1/field"] = "radial_ele"; +// scenes["s1/image_prefix"] = output_file + "_input"; +// +// scenes["s2/plots/p1/type"] = "pseudocolor"; +// scenes["s2/plots/p1/field"] = "binning"; +// scenes["s2/plots/p1/pipeline"] = "pl1"; +// scenes["s2/image_prefix"] = output_file; +// +// conduit::Node actions; +// // add the pipeline +// conduit::Node &add_pipelines= actions.append(); +// add_pipelines["action"] = "add_pipelines"; +// add_pipelines["pipelines"] = pipelines; +// // add the scenes +// conduit::Node &add_scenes= actions.append(); +// add_scenes["action"] = "add_scenes"; +// add_scenes["scenes"] = scenes; +// +// // add extract +// conduit::Node &add_extracts = actions.append(); +// add_extracts["action"] = "add_extracts"; +// conduit::Node &extracts = add_extracts["extracts"]; +// +// extracts["e1/type"] = "relay"; +// extracts["e1/pipeline"] = "pl1"; +// extracts["e1/params/path"] = conduit::utils::join_file_path(output_path, +// "tout_mpi_binning_bins_result_extract"); +// extracts["e1/params/protocol"] = "blueprint/mesh/hdf5"; +// +// // +// // Run Ascent +// // +// +// Ascent ascent; +// +// Node ascent_opts; +// ascent_opts["runtime/type"] = "ascent"; +// ascent_opts["mpi_comm"] = MPI_Comm_c2f(comm); +// ascent.open(ascent_opts); +// ascent.publish(data); +// ascent.execute(actions); +// ascent.close(); +// +// if(par_rank == 0) +// { +// EXPECT_TRUE(check_test_image(output_file + "_input", 0.1)); +// EXPECT_TRUE(check_test_image(output_file, 0.1)); +// } +// } //----------------------------------------------------------------------------- -TEST(ascent_mpi_expressions, mpi_expressoins) +TEST(ascent_mpi_expressions, mpi_expressions) { // the vtkm runtime is currently our only rendering runtime Node n; diff --git a/src/tests/ascent/t_ascent_python_extract.cpp b/src/tests/ascent/t_ascent_python_extract.cpp index 22d2476bb..13f293a19 100644 --- a/src/tests/ascent/t_ascent_python_extract.cpp +++ b/src/tests/ascent/t_ascent_python_extract.cpp @@ -101,7 +101,7 @@ TEST(ascent_runtime, test_python_script_extract_from_file) conduit::Node extracts; extracts["e1/type"] = "python"; - extracts["e1/params/file"] = "t_my_test_script.py"; + extracts["e1/params/file"] = "t_my_test_script2.py"; conduit::Node actions; // add the extracts diff --git a/src/tests/t_utils.hpp b/src/tests/t_utils.hpp index 02edfd7c6..c0c01d94c 100644 --- a/src/tests/t_utils.hpp +++ b/src/tests/t_utils.hpp @@ -384,6 +384,19 @@ create_3d_example_dataset(Node &data, data["fields/rank_ele/topology"] = "mesh"; data["fields/rank_ele/values"].set(DataType::float64(nele)); + data["fields/ones_ele/association"] = "element"; + data["fields/ones_ele/topology"] = "mesh"; + data["fields/ones_ele/values"].set(DataType::float64(nele)); + + data["fields/ones_vert/association"] = "vertex"; + data["fields/ones_vert/topology"] = "mesh"; + data["fields/ones_vert/values"].set(DataType::float64(npts)); + + float64_array ones_ele_vals = data["fields/ones_ele/values"].value(); + ones_ele_vals.fill(1.0); + + float64_array ones_vert_vals = data["fields/ones_vert/values"].value(); + ones_vert_vals.fill(1.0); float64 *x_vals = data["coordsets/coords/values/x"].value(); float64 *y_vals = data["coordsets/coords/values/y"].value(); From 09bb8fd560223f41ba24284bf03c268f7b11f168 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Fri, 10 May 2024 13:54:58 -0700 Subject: [PATCH 12/12] stray 2 --- src/tests/ascent/t_ascent_python_extract.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/ascent/t_ascent_python_extract.cpp b/src/tests/ascent/t_ascent_python_extract.cpp index 13f293a19..22d2476bb 100644 --- a/src/tests/ascent/t_ascent_python_extract.cpp +++ b/src/tests/ascent/t_ascent_python_extract.cpp @@ -101,7 +101,7 @@ TEST(ascent_runtime, test_python_script_extract_from_file) conduit::Node extracts; extracts["e1/type"] = "python"; - extracts["e1/params/file"] = "t_my_test_script2.py"; + extracts["e1/params/file"] = "t_my_test_script.py"; conduit::Node actions; // add the extracts

f$tOF5?#`DK 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

\n") case_name = os.path.split(v["test_file"]["path"])[1] + ofile.write(case_name) + ofile.write("\n") + if "pass" in v.keys(): + ofile.write(v["pass"]) + else: + ofile.write(v["unknown"]) + ofile.write("\n") ofile.write("case: {0}
\n".format(case_name)) if "pass" in v.keys(): ofile.write("pass: {0}
\n".format(v["pass"])) From 4e15d4599d42b402bd36c86bfddc73b25d10fb82 Mon Sep 17 00:00:00 2001 From: Cyrus Harrison Date: Wed, 20 Dec 2023 10:49:26 -0800 Subject: [PATCH 07/12] fix typo --- .../tout_binning_recti_mesh100.png | Bin 0 -> 397224 bytes src/tests/gen_img_compare_html_report.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/tests/_baseline_images/tout_binning_recti_mesh100.png diff --git a/src/tests/_baseline_images/tout_binning_recti_mesh100.png b/src/tests/_baseline_images/tout_binning_recti_mesh100.png new file mode 100644 index 0000000000000000000000000000000000000000..4daab7e662082de8c250bc76d2483afb3796b584 GIT binary patch literal 397224 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 literal 0 HcmV?d00001 diff --git a/src/tests/gen_img_compare_html_report.py b/src/tests/gen_img_compare_html_report.py index 2ef67f9f0..a1c530b0f 100644 --- a/src/tests/gen_img_compare_html_report.py +++ b/src/tests/gen_img_compare_html_report.py @@ -77,7 +77,7 @@ def gen_html_report(): if "pass" in v.keys(): ofile.write(v["pass"]) else: - ofile.write(v["unknown"]) + ofile.write("unknown") ofile.write("