diff --git a/gallery/bitcoin.png b/gallery/bitcoin.png index fa3e9ee..777e415 100644 Binary files a/gallery/bitcoin.png and b/gallery/bitcoin.png differ diff --git a/gallery/bode_rlc.svg b/gallery/bode_rlc.svg index 49adf0f..cf87283 100644 --- a/gallery/bode_rlc.svg +++ b/gallery/bode_rlc.svg @@ -2,7 +2,7 @@ - + diff --git a/gallery/bode_rlc_macchiato.png b/gallery/bode_rlc_macchiato.png index 1253a94..a2bf612 100644 Binary files a/gallery/bode_rlc_macchiato.png and b/gallery/bode_rlc_macchiato.png differ diff --git a/gallery/bode_rlc_mocha.png b/gallery/bode_rlc_mocha.png index 3b2e2eb..184c0bb 100644 Binary files a/gallery/bode_rlc_mocha.png and b/gallery/bode_rlc_mocha.png differ diff --git a/gallery/bouncing_ball.png b/gallery/bouncing_ball.png index 1b4a733..7a13bf6 100644 Binary files a/gallery/bouncing_ball.png and b/gallery/bouncing_ball.png differ diff --git a/gallery/gauss.png b/gallery/gauss.png index 5541b4e..100e570 100644 Binary files a/gallery/gauss.png and b/gallery/gauss.png differ diff --git a/gallery/iris.png b/gallery/iris.png index c3af101..1e3fa12 100644 Binary files a/gallery/iris.png and b/gallery/iris.png differ diff --git a/gallery/sine.png b/gallery/sine.png index a7c0883..9a659d3 100644 Binary files a/gallery/sine.png and b/gallery/sine.png differ diff --git a/gallery/stars.png b/gallery/stars.png new file mode 100644 index 0000000..805f6b7 Binary files /dev/null and b/gallery/stars.png differ diff --git a/src/des.rs b/src/des.rs index 10fda1f..27814d1 100644 --- a/src/des.rs +++ b/src/des.rs @@ -14,7 +14,7 @@ pub mod series; pub use annot::Annotation; pub use axis::Axis; -pub use colorbar::{ColorBar, ColorBarPos}; +pub use colorbar::ColorBar; pub use figure::{FigLegend, Figure}; pub use legend::Legend; pub use plot::{Plot, PlotLegend, Subplots}; diff --git a/src/des/cmap.rs b/src/des/cmap.rs index e1fc36a..56f3e06 100644 --- a/src/des/cmap.rs +++ b/src/des/cmap.rs @@ -1,6 +1,7 @@ //! A module for defining color maps that can be used in the design of plots to map scalar values to colors. use crate::color::Rgb8; +use crate::des::axis; /// Describes how to interpolate between colors in a color map, either in linear RGB or perceptual color space. #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] @@ -21,6 +22,7 @@ pub struct LerpColorMap { end: Rgb8, stops: Vec<(f32, Rgb8)>, data_range: Option<(f64, f64)>, + locator: Option, } impl LerpColorMap { @@ -31,6 +33,7 @@ impl LerpColorMap { start, end, data_range: None, + locator: None, stops: Vec::new(), } } @@ -45,8 +48,11 @@ impl LerpColorMap { self } - /// Set the range of scalar values that this color map maps to, as (min, max). - pub fn with_data_range(mut self, range: (f64, f64)) -> Self { + /// Force the range of scalar data values that this color map maps to, as (min, max). + /// + /// By default, the colormap will map the range of data values in the plot, but this can be overridden with this method. + /// Use this if only a specific range of data are meaningful to map to colors. + pub fn force_data_range(mut self, range: (f64, f64)) -> Self { assert!( range.0.is_finite() && range.1.is_finite(), "Color map data range must be finite" @@ -59,6 +65,14 @@ impl LerpColorMap { self } + /// Force the ticks of colorbar mapping this colormap to be located according to the given locator. + /// By default, the locator is automatic, but this can be overridden with this method. + /// Use this if you want to have specific control over the ticks of the colorbar, for example to place them at specific data values. + pub fn force_ticks_locator(mut self, locator: axis::ticks::Locator) -> Self { + self.locator = Some(locator); + self + } + /// Get the interpolation method used by this color map. pub fn method(&self) -> LerpMethod { self.method @@ -79,11 +93,16 @@ impl LerpColorMap { &self.stops } - /// Get the range of scalar values that this color map maps to, if it has one. + /// Get the range of scalar values that this colormap is forced to map to, if it has one. /// If None, the color map is assumed to map the range of data values in the plot. - pub fn data_range(&self) -> Option<(f64, f64)> { + pub fn forced_data_range(&self) -> Option<(f64, f64)> { self.data_range } + + /// Get the ticks locator that this colormap is forced to use for its colorbar, if it has one. + pub fn forced_ticks_locator(&self) -> Option<&axis::ticks::Locator> { + self.locator.as_ref() + } } impl From<(LerpMethod, &[Rgb8])> for LerpColorMap { @@ -154,8 +173,14 @@ pub fn stellar() -> LerpColorMap { .with_stop(stop_for_temp(8000.0)) .with_stop(stop_for_temp(9000.0)) .with_stop(stop_for_temp(10000.0)) - .with_stop(stop_for_temp(12000.0)) - .with_data_range((MIN_TEMP, MAX_TEMP)) + .with_stop(stop_for_temp(12500.0)) + .force_data_range((MIN_TEMP, MAX_TEMP)) + .force_ticks_locator(axis::ticks::Locator::List( + vec![ + 1000.0, 2000.0, 3000.0, 4000.0, 5000.0, 6500.0, 8000.0, 10000.0, 12500.0, 15000.0, + ] + .into(), + )) } /// The famous "viridis" color map from matplotlib diff --git a/src/des/colorbar.rs b/src/des/colorbar.rs index 95c9b44..e23ee98 100644 --- a/src/des/colorbar.rs +++ b/src/des/colorbar.rs @@ -1,4 +1,5 @@ //! Color bar configuration +use crate::des::axis; use crate::style::{defaults, theme}; use crate::text; @@ -12,7 +13,7 @@ impl Default for TitleProps { /// Position of a color bar relatively to the plot #[derive(Debug, Default, Clone, Copy)] -pub enum ColorBarPos { +pub enum Pos { /// Position the color bar above the plot area Top, /// Position the color bar to the right of the plot area (default) @@ -48,18 +49,19 @@ impl Default for TicksFont { /// ColorBar configuration for a plot #[derive(Debug, Clone)] pub struct ColorBar { - pos: ColorBarPos, + pos: Pos, width: f32, title: Option, ticks_font: TicksFont, border: Option<theme::Stroke>, + locator: axis::ticks::Locator, margin: f32, } impl Default for ColorBar { fn default() -> Self { Self { - pos: ColorBarPos::default(), + pos: Pos::default(), width: defaults::COLORBAR_WIDTH, title: None, ticks_font: TicksFont::default(), @@ -69,6 +71,7 @@ impl Default for ColorBar { pattern: Default::default(), opacity: None, }), + locator: axis::ticks::Locator::Auto, margin: defaults::COLORBAR_MARGIN, } } @@ -76,7 +79,7 @@ impl Default for ColorBar { impl ColorBar { /// Create a new color bar with the specified position - pub fn new(pos: ColorBarPos) -> Self { + pub fn new(pos: Pos) -> Self { Self { pos, ..Default::default() @@ -107,6 +110,12 @@ impl ColorBar { self } + /// Set the ticks locator and return self for chaining + pub fn with_ticks_locator(mut self, locator: axis::ticks::Locator) -> Self { + self.locator = locator; + self + } + /// Set the margin between the color bar and the plot area and return self for chaining pub fn with_margin(mut self, margin: f32) -> Self { self.margin = margin; @@ -114,7 +123,7 @@ impl ColorBar { } /// Get the position of the color bar - pub fn pos(&self) -> ColorBarPos { + pub fn pos(&self) -> Pos { self.pos } @@ -138,14 +147,19 @@ impl ColorBar { self.border.as_ref() } + /// Get the ticks locator + pub fn ticks_locator(&self) -> &axis::ticks::Locator { + &self.locator + } + /// Get the margin between the color bar and the plot area pub fn margin(&self) -> f32 { self.margin } } -impl From<ColorBarPos> for ColorBar { - fn from(pos: ColorBarPos) -> Self { +impl From<Pos> for ColorBar { + fn from(pos: Pos) -> Self { Self::new(pos) } } diff --git a/src/drawing/cmap.rs b/src/drawing/cmap.rs index 6856b83..988d900 100644 --- a/src/drawing/cmap.rs +++ b/src/drawing/cmap.rs @@ -1,6 +1,7 @@ use std::sync::Arc; use crate::color::{Lerp, LinRgb, OkLab, Rgb8, Xyz}; +use crate::des; use crate::des::cmap::{LerpColorMap, LerpMethod}; use crate::drawing::axis; @@ -14,7 +15,8 @@ pub trait ColorMap { pub trait AsColorMap { fn hash(&self) -> u64; - fn data_range(&self) -> Option<axis::Bounds>; + fn forced_data_range(&self) -> Option<axis::Bounds>; + fn forced_ticks_locator(&self) -> Option<&des::axis::ticks::Locator>; /// Convert this type to a `ColorMap` implementation that can be used for color mapping. fn as_color_map(&self) -> Arc<dyn ColorMap>; @@ -36,18 +38,23 @@ impl AsColorMap for LerpColorMap { pos_bits.hash(&mut hasher); stop.1.hash(&mut hasher); } - if let Some(range) = self.data_range() { + if let Some(range) = self.forced_data_range() { range.0.to_bits().hash(&mut hasher); range.1.to_bits().hash(&mut hasher); } + // TODO: hash the locator hasher.finish() } - fn data_range(&self) -> Option<axis::Bounds> { - self.data_range() + fn forced_data_range(&self) -> Option<axis::Bounds> { + self.forced_data_range() .map(|rng| axis::NumBounds::from(rng).into()) } + fn forced_ticks_locator(&self) -> Option<&des::axis::ticks::Locator> { + self.forced_ticks_locator() + } + fn as_color_map(&self) -> Arc<dyn ColorMap> { let start = self.start(); let end = self.end(); diff --git a/src/drawing/colorbar.rs b/src/drawing/colorbar.rs index ee320e3..a8b380e 100644 --- a/src/drawing/colorbar.rs +++ b/src/drawing/colorbar.rs @@ -1,7 +1,8 @@ use std::fmt; use std::sync::Arc; -use crate::des::{self, ColorBarPos}; +use crate::des::axis::ticks::Locator; +use crate::des::{self, colorbar}; use crate::drawing::axis::{self, AsBoundRef}; use crate::drawing::cmap::{AsColorMap, ColorMap}; use crate::drawing::{Ctx, Text, ticks}; @@ -27,14 +28,21 @@ pub struct ColorBarBuilder { hash: u64, cmap: Arc<dyn ColorMap>, data_bounds: axis::Bounds, + locator: Locator, } impl ColorBarBuilder { - pub fn new(hash: u64, cmap: Arc<dyn ColorMap>, data_bounds: axis::Bounds) -> Self { + pub fn new( + hash: u64, + cmap: Arc<dyn ColorMap>, + data_bounds: axis::Bounds, + locator: Locator, + ) -> Self { Self { hash, cmap, data_bounds, + locator, } } @@ -55,10 +63,10 @@ impl ColorBarBuilder { D: data::Source + ?Sized, { let side = match des.pos() { - ColorBarPos::Right => axis::Side::Right, - ColorBarPos::Left => axis::Side::Left, - ColorBarPos::Top => axis::Side::Top, - ColorBarPos::Bottom => axis::Side::Bottom, + colorbar::Pos::Right => axis::Side::Right, + colorbar::Pos::Left => axis::Side::Left, + colorbar::Pos::Top => axis::Side::Top, + colorbar::Pos::Bottom => axis::Side::Bottom, }; let title = des @@ -74,10 +82,10 @@ impl ColorBarBuilder { let font = des.ticks_font().clone(); let scale: des::axis::Scale = des::axis::Range::new(Some(nb.start()), Some(nb.end())).into(); - let locator = des::axis::ticks::Locator::Auto; let formatter = des::axis::ticks::Formatter::Auto; - let ticks = ticks::locate_num(&locator, *nb, &scale)?; - let formatter = ticks::num_label_formatter(&locator, Some(&formatter), *nb, &scale); + let ticks = ticks::locate_num(&self.locator, *nb, &scale)?; + let formatter = + ticks::num_label_formatter(&self.locator, Some(&formatter), *nb, &scale); ticks .into_iter() .map(|t| -> Result<_, super::Error> { @@ -166,7 +174,7 @@ impl ColorDataMap for ColorBar { } impl ColorBar { - pub fn pos(&self) -> ColorBarPos { + pub fn pos(&self) -> colorbar::Pos { self.des.pos() } diff --git a/src/drawing/plot.rs b/src/drawing/plot.rs index 817901d..35f4737 100644 --- a/src/drawing/plot.rs +++ b/src/drawing/plot.rs @@ -2,7 +2,7 @@ use std::cell::RefCell; use std::f32; use std::rc::Rc; -use crate::des::{PlotIdx, annot}; +use crate::des::{PlotIdx, annot, colorbar}; use crate::drawing::annot::Annot; use crate::drawing::axis::{AsBoundRef, Axis, AxisScale, Bounds, Side}; use crate::drawing::colorbar::{ColorBar, ColorBarBuilder}; @@ -515,7 +515,7 @@ where for_each_series(des_plot, |s| { if let Some(entry) = s.colorbar_entry() { - let forced_bounds = entry.cmap.data_range(); + let forced_bounds = entry.cmap.forced_data_range(); let has_forced_bounds = forced_bounds.is_some(); let bounds = if let Some(range) = forced_bounds { range @@ -525,6 +525,10 @@ where .expect("Should get bounds for colormap data column") }; + let locator = entry + .cmap + .forced_ticks_locator() + .unwrap_or(des_colorbar.ticks_locator()); let hash = entry.cmap.hash(); if let Some(cbb) = builders.iter_mut().find(|b| b.hash() == hash) { @@ -541,6 +545,7 @@ where hash, entry.cmap.as_color_map(), bounds, + locator.clone(), )); } } @@ -912,18 +917,18 @@ fn y_side_matches_out_legend_pos(side: des::axis::Side, legend_pos: des::plot::L } } -fn x_side_matches_colorbar_pos(side: des::axis::Side, pos: des::ColorBarPos) -> bool { +fn x_side_matches_colorbar_pos(side: des::axis::Side, pos: colorbar::Pos) -> bool { match (side, pos) { - (des::axis::Side::Main, des::ColorBarPos::Bottom) => true, - (des::axis::Side::Opposite, des::ColorBarPos::Top) => true, + (des::axis::Side::Main, colorbar::Pos::Bottom) => true, + (des::axis::Side::Opposite, colorbar::Pos::Top) => true, _ => false, } } -fn y_side_matches_colorbar_pos(side: des::axis::Side, pos: des::ColorBarPos) -> bool { +fn y_side_matches_colorbar_pos(side: des::axis::Side, pos: colorbar::Pos) -> bool { match (side, pos) { - (des::axis::Side::Main, des::ColorBarPos::Left) => true, - (des::axis::Side::Opposite, des::ColorBarPos::Right) => true, + (des::axis::Side::Main, colorbar::Pos::Left) => true, + (des::axis::Side::Opposite, colorbar::Pos::Right) => true, _ => false, } } diff --git a/tests/refs/colorbar/auto-range.png b/tests/refs/colorbar/auto-range.png new file mode 100644 index 0000000..04a429c Binary files /dev/null and b/tests/refs/colorbar/auto-range.png differ diff --git a/tests/refs/colorbar/auto-range.svg b/tests/refs/colorbar/auto-range.svg new file mode 100644 index 0000000..8734bf4 --- /dev/null +++ b/tests/refs/colorbar/auto-range.svg @@ -0,0 +1,302 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="260" width="292.328" x="20" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#440154" fill-opacity="0.7019608" stroke="#440154" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 188.61476 112.57182)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#461f63" fill-opacity="0.7019608" stroke="#461f63" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 177.85916 65.19423)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#453472" fill-opacity="0.7019608" stroke="#453472" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 200.01393 182.75821)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#404882" fill-opacity="0.7019608" stroke="#404882" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 166.96925 137.4275)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3a5a8b" fill-opacity="0.7019608" stroke="#3a5a8b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 128.45457)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#356c8c" fill-opacity="0.7019608" stroke="#356c8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 145.17426 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#2d7e8c" fill-opacity="0.7019608" stroke="#2d7e8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 158.51772 221.95265)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#208f8c" fill-opacity="0.7019608" stroke="#208f8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 62.066555 179.70654)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#329f84" fill-opacity="0.7019608" stroke="#329f84" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 103.237564 119.84299)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#42b079" fill-opacity="0.7019608" stroke="#42b079" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 212.52838 107.928925)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#53c06b" fill-opacity="0.7019608" stroke="#53c06b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.03935 123.19487)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#79cd5e" fill-opacity="0.7019608" stroke="#79cd5e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 265.7857 73.18942)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#a9d652" fill-opacity="0.7019608" stroke="#a9d652" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 292.328 186.15048)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#d4df42" fill-opacity="0.7019608" stroke="#d4df42" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 45.502457 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#fde724" fill-opacity="0.7019608" stroke="#fde724" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 141.46219 56.149902)"/> +</g> +<rect fill="none" height="260" stroke="#000000" stroke-width="1" width="292.328" x="20" y="20"/> +<path d="M324.328,280 L324.328,279.5 L344.328,279.5 L344.328,280" fill="#440154" stroke="none"/> +<path d="M324.328,279.5 L324.328,278.5 L344.328,278.5 L344.328,279.5" fill="#440355" stroke="none"/> +<path d="M324.328,278.5 L324.328,277.5 L344.328,277.5 L344.328,278.5" fill="#440556" stroke="none"/> +<path d="M324.328,277.5 L324.328,276.5 L344.328,276.5 L344.328,277.5" fill="#440756" stroke="none"/> +<path d="M324.328,276.5 L324.328,275.5 L344.328,275.5 L344.328,276.5" fill="#450957" stroke="none"/> +<path d="M324.328,275.5 L324.328,274.5 L344.328,274.5 L344.328,275.5" fill="#450b58" stroke="none"/> +<path d="M324.328,274.5 L324.328,273.5 L344.328,273.5 L344.328,274.5" fill="#450d59" stroke="none"/> +<path d="M324.328,273.5 L324.328,272.5 L344.328,272.5 L344.328,273.5" fill="#450f5a" stroke="none"/> +<path d="M324.328,272.5 L324.328,271.5 L344.328,271.5 L344.328,272.5" fill="#45105a" stroke="none"/> +<path d="M324.328,271.5 L324.328,270.5 L344.328,270.5 L344.328,271.5" fill="#45125b" stroke="none"/> +<path d="M324.328,270.5 L324.328,269.5 L344.328,269.5 L344.328,270.5" fill="#45145c" stroke="none"/> +<path d="M324.328,269.5 L324.328,268.5 L344.328,268.5 L344.328,269.5" fill="#45155d" stroke="none"/> +<path d="M324.328,268.5 L324.328,267.5 L344.328,267.5 L344.328,268.5" fill="#45165e" stroke="none"/> +<path d="M324.328,267.5 L324.328,266.5 L344.328,266.5 L344.328,267.5" fill="#46185e" stroke="none"/> +<path d="M324.328,266.5 L324.328,265.5 L344.328,265.5 L344.328,266.5" fill="#46195f" stroke="none"/> +<path d="M324.328,265.5 L324.328,264.5 L344.328,264.5 L344.328,265.5" fill="#461b60" stroke="none"/> +<path d="M324.328,264.5 L324.328,263.5 L344.328,263.5 L344.328,264.5" fill="#461c61" stroke="none"/> +<path d="M324.328,263.5 L324.328,262.5 L344.328,262.5 L344.328,263.5" fill="#461d62" stroke="none"/> +<path d="M324.328,262.5 L324.328,261.5 L344.328,261.5 L344.328,262.5" fill="#461e63" stroke="none"/> +<path d="M324.328,261.5 L324.328,260.5 L344.328,260.5 L344.328,261.5" fill="#462063" stroke="none"/> +<path d="M324.328,260.5 L324.328,259.5 L344.328,259.5 L344.328,260.5" fill="#462164" stroke="none"/> +<path d="M324.328,259.5 L324.328,258.5 L344.328,258.5 L344.328,259.5" fill="#462265" stroke="none"/> +<path d="M324.328,258.5 L324.328,257.5 L344.328,257.5 L344.328,258.5" fill="#462366" stroke="none"/> +<path d="M324.328,257.5 L324.328,256.5 L344.328,256.5 L344.328,257.5" fill="#462467" stroke="none"/> +<path d="M324.328,256.5 L324.328,255.5 L344.328,255.5 L344.328,256.5" fill="#462667" stroke="none"/> +<path d="M324.328,255.5 L324.328,254.5 L344.328,254.5 L344.328,255.5" fill="#462768" stroke="none"/> +<path d="M324.328,254.5 L324.328,253.5 L344.328,253.5 L344.328,254.5" fill="#462869" stroke="none"/> +<path d="M324.328,253.5 L324.328,252.5 L344.328,252.5 L344.328,253.5" fill="#46296a" stroke="none"/> +<path d="M324.328,252.5 L324.328,251.5 L344.328,251.5 L344.328,252.5" fill="#462a6b" stroke="none"/> +<path d="M324.328,251.5 L324.328,250.5 L344.328,250.5 L344.328,251.5" fill="#462b6c" stroke="none"/> +<path d="M324.328,250.5 L324.328,249.5 L344.328,249.5 L344.328,250.5" fill="#452c6c" stroke="none"/> +<path d="M324.328,249.5 L324.328,248.5 L344.328,248.5 L344.328,249.5" fill="#452e6d" stroke="none"/> +<path d="M324.328,248.5 L324.328,247.5 L344.328,247.5 L344.328,248.5" fill="#452f6e" stroke="none"/> +<path d="M324.328,247.5 L324.328,246.5 L344.328,246.5 L344.328,247.5" fill="#45306f" stroke="none"/> +<path d="M324.328,246.5 L324.328,245.5 L344.328,245.5 L344.328,246.5" fill="#453170" stroke="none"/> +<path d="M324.328,245.5 L324.328,244.5 L344.328,244.5 L344.328,245.5" fill="#453271" stroke="none"/> +<path d="M324.328,244.5 L324.328,243.5 L344.328,243.5 L344.328,244.5" fill="#453371" stroke="none"/> +<path d="M324.328,243.5 L324.328,242.5 L344.328,242.5 L344.328,243.5" fill="#453472" stroke="none"/> +<path d="M324.328,242.5 L324.328,241.5 L344.328,241.5 L344.328,242.5" fill="#453573" stroke="none"/> +<path d="M324.328,241.5 L324.328,240.5 L344.328,240.5 L344.328,241.5" fill="#443674" stroke="none"/> +<path d="M324.328,240.5 L324.328,239.5 L344.328,239.5 L344.328,240.5" fill="#443775" stroke="none"/> +<path d="M324.328,239.5 L324.328,238.5 L344.328,238.5 L344.328,239.5" fill="#443876" stroke="none"/> +<path d="M324.328,238.5 L324.328,237.5 L344.328,237.5 L344.328,238.5" fill="#443976" stroke="none"/> +<path d="M324.328,237.5 L324.328,236.5 L344.328,236.5 L344.328,237.5" fill="#443a77" stroke="none"/> +<path d="M324.328,236.5 L324.328,235.5 L344.328,235.5 L344.328,236.5" fill="#433b78" stroke="none"/> +<path d="M324.328,235.5 L324.328,234.5 L344.328,234.5 L344.328,235.5" fill="#433c79" stroke="none"/> +<path d="M324.328,234.5 L324.328,233.5 L344.328,233.5 L344.328,234.5" fill="#433e7a" stroke="none"/> +<path d="M324.328,233.5 L324.328,232.5 L344.328,232.5 L344.328,233.5" fill="#433f7b" stroke="none"/> +<path d="M324.328,232.5 L324.328,231.5 L344.328,231.5 L344.328,232.5" fill="#42407c" stroke="none"/> +<path d="M324.328,231.5 L324.328,230.5 L344.328,230.5 L344.328,231.5" fill="#42417c" stroke="none"/> +<path d="M324.328,230.5 L324.328,229.5 L344.328,229.5 L344.328,230.5" fill="#42427d" stroke="none"/> +<path d="M324.328,229.5 L324.328,228.5 L344.328,228.5 L344.328,229.5" fill="#41437e" stroke="none"/> +<path d="M324.328,228.5 L324.328,227.5 L344.328,227.5 L344.328,228.5" fill="#41447f" stroke="none"/> +<path d="M324.328,227.5 L324.328,226.5 L344.328,226.5 L344.328,227.5" fill="#414580" stroke="none"/> +<path d="M324.328,226.5 L324.328,225.5 L344.328,225.5 L344.328,226.5" fill="#404681" stroke="none"/> +<path d="M324.328,225.5 L324.328,224.5 L344.328,224.5 L344.328,225.5" fill="#404781" stroke="none"/> +<path d="M324.328,224.5 L324.328,223.5 L344.328,223.5 L344.328,224.5" fill="#3f4882" stroke="none"/> +<path d="M324.328,223.5 L324.328,222.5 L344.328,222.5 L344.328,223.5" fill="#3f4983" stroke="none"/> +<path d="M324.328,222.5 L324.328,221.5 L344.328,221.5 L344.328,222.5" fill="#3f4a84" stroke="none"/> +<path d="M324.328,221.5 L324.328,220.5 L344.328,220.5 L344.328,221.5" fill="#3e4b85" stroke="none"/> +<path d="M324.328,220.5 L324.328,219.5 L344.328,219.5 L344.328,220.5" fill="#3e4c86" stroke="none"/> +<path d="M324.328,219.5 L324.328,218.5 L344.328,218.5 L344.328,219.5" fill="#3d4d87" stroke="none"/> +<path d="M324.328,218.5 L324.328,217.5 L344.328,217.5 L344.328,218.5" fill="#3d4e87" stroke="none"/> +<path d="M324.328,217.5 L324.328,216.5 L344.328,216.5 L344.328,217.5" fill="#3c4f88" stroke="none"/> +<path d="M324.328,216.5 L324.328,215.5 L344.328,215.5 L344.328,216.5" fill="#3c5089" stroke="none"/> +<path d="M324.328,215.5 L324.328,214.5 L344.328,214.5 L344.328,215.5" fill="#3b518a" stroke="none"/> +<path d="M324.328,214.5 L324.328,213.5 L344.328,213.5 L344.328,214.5" fill="#3b528a" stroke="none"/> +<path d="M324.328,213.5 L324.328,212.5 L344.328,212.5 L344.328,213.5" fill="#3b538a" stroke="none"/> +<path d="M324.328,212.5 L324.328,211.5 L344.328,211.5 L344.328,212.5" fill="#3b548a" stroke="none"/> +<path d="M324.328,211.5 L324.328,210.5 L344.328,210.5 L344.328,211.5" fill="#3a558a" stroke="none"/> +<path d="M324.328,210.5 L324.328,209.5 L344.328,209.5 L344.328,210.5" fill="#3a568a" stroke="none"/> +<path d="M324.328,209.5 L324.328,208.5 L344.328,208.5 L344.328,209.5" fill="#3a578b" stroke="none"/> +<path d="M324.328,208.5 L324.328,207.5 L344.328,207.5 L344.328,208.5" fill="#3a588b" stroke="none"/> +<path d="M324.328,207.5 L324.328,206.5 L344.328,206.5 L344.328,207.5" fill="#3a598b" stroke="none"/> +<path d="M324.328,206.5 L324.328,205.5 L344.328,205.5 L344.328,206.5" fill="#3a5a8b" stroke="none"/> +<path d="M324.328,205.5 L324.328,204.5 L344.328,204.5 L344.328,205.5" fill="#395b8b" stroke="none"/> +<path d="M324.328,204.5 L324.328,203.5 L344.328,203.5 L344.328,204.5" fill="#395c8b" stroke="none"/> +<path d="M324.328,203.5 L324.328,202.5 L344.328,202.5 L344.328,203.5" fill="#395d8b" stroke="none"/> +<path d="M324.328,202.5 L324.328,201.5 L344.328,201.5 L344.328,202.5" fill="#395e8b" stroke="none"/> +<path d="M324.328,201.5 L324.328,200.5 L344.328,200.5 L344.328,201.5" fill="#395f8b" stroke="none"/> +<path d="M324.328,200.5 L324.328,199.5 L344.328,199.5 L344.328,200.5" fill="#38608b" stroke="none"/> +<path d="M324.328,199.5 L324.328,198.5 L344.328,198.5 L344.328,199.5" fill="#38618b" stroke="none"/> +<path d="M324.328,198.5 L324.328,197.5 L344.328,197.5 L344.328,198.5" fill="#38628b" stroke="none"/> +<path d="M324.328,197.5 L324.328,196.5 L344.328,196.5 L344.328,197.5" fill="#38638b" stroke="none"/> +<path d="M324.328,196.5 L324.328,195.5 L344.328,195.5 L344.328,196.5" fill="#37648b" stroke="none"/> +<path d="M324.328,195.5 L324.328,194.5 L344.328,194.5 L344.328,195.5" fill="#37658b" stroke="none"/> +<path d="M324.328,194.5 L324.328,193.5 L344.328,193.5 L344.328,194.5" fill="#37658c" stroke="none"/> +<path d="M324.328,193.5 L324.328,192.5 L344.328,192.5 L344.328,193.5" fill="#37668c" stroke="none"/> +<path d="M324.328,192.5 L324.328,191.5 L344.328,191.5 L344.328,192.5" fill="#36678c" stroke="none"/> +<path d="M324.328,191.5 L324.328,190.5 L344.328,190.5 L344.328,191.5" fill="#36688c" stroke="none"/> +<path d="M324.328,190.5 L324.328,189.5 L344.328,189.5 L344.328,190.5" fill="#36698c" stroke="none"/> +<path d="M324.328,189.5 L324.328,188.5 L344.328,188.5 L344.328,189.5" fill="#366a8c" stroke="none"/> +<path d="M324.328,188.5 L324.328,187.5 L344.328,187.5 L344.328,188.5" fill="#356b8c" stroke="none"/> +<path d="M324.328,187.5 L324.328,186.5 L344.328,186.5 L344.328,187.5" fill="#356c8c" stroke="none"/> +<path d="M324.328,186.5 L324.328,185.5 L344.328,185.5 L344.328,186.5" fill="#356d8c" stroke="none"/> +<path d="M324.328,185.5 L324.328,184.5 L344.328,184.5 L344.328,185.5" fill="#346e8c" stroke="none"/> +<path d="M324.328,184.5 L324.328,183.5 L344.328,183.5 L344.328,184.5" fill="#346f8c" stroke="none"/> +<path d="M324.328,183.5 L324.328,182.5 L344.328,182.5 L344.328,183.5" fill="#34708c" stroke="none"/> +<path d="M324.328,182.5 L324.328,181.5 L344.328,181.5 L344.328,182.5" fill="#33718c" stroke="none"/> +<path d="M324.328,181.5 L324.328,180.5 L344.328,180.5 L344.328,181.5" fill="#33728c" stroke="none"/> +<path d="M324.328,180.5 L324.328,179.5 L344.328,179.5 L344.328,180.5" fill="#33738c" stroke="none"/> +<path d="M324.328,179.5 L324.328,178.5 L344.328,178.5 L344.328,179.5" fill="#32748c" stroke="none"/> +<path d="M324.328,178.5 L324.328,177.5 L344.328,177.5 L344.328,178.5" fill="#32758c" stroke="none"/> +<path d="M324.328,177.5 L324.328,176.5 L344.328,176.5 L344.328,177.5" fill="#31768c" stroke="none"/> +<path d="M324.328,176.5 L324.328,175.5 L344.328,175.5 L344.328,176.5" fill="#31778c" stroke="none"/> +<path d="M324.328,175.5 L324.328,174.5 L344.328,174.5 L344.328,175.5" fill="#30788c" stroke="none"/> +<path d="M324.328,174.5 L324.328,173.5 L344.328,173.5 L344.328,174.5" fill="#30788c" stroke="none"/> +<path d="M324.328,173.5 L324.328,172.5 L344.328,172.5 L344.328,173.5" fill="#30798c" stroke="none"/> +<path d="M324.328,172.5 L324.328,171.5 L344.328,171.5 L344.328,172.5" fill="#2f7a8c" stroke="none"/> +<path d="M324.328,171.5 L324.328,170.5 L344.328,170.5 L344.328,171.5" fill="#2f7b8c" stroke="none"/> +<path d="M324.328,170.5 L324.328,169.5 L344.328,169.5 L344.328,170.5" fill="#2e7c8c" stroke="none"/> +<path d="M324.328,169.5 L324.328,168.5 L344.328,168.5 L344.328,169.5" fill="#2e7d8c" stroke="none"/> +<path d="M324.328,168.5 L324.328,167.5 L344.328,167.5 L344.328,168.5" fill="#2d7e8c" stroke="none"/> +<path d="M324.328,167.5 L324.328,166.5 L344.328,166.5 L344.328,167.5" fill="#2d7f8c" stroke="none"/> +<path d="M324.328,166.5 L324.328,165.5 L344.328,165.5 L344.328,166.5" fill="#2c808c" stroke="none"/> +<path d="M324.328,165.5 L324.328,164.5 L344.328,164.5 L344.328,165.5" fill="#2b818c" stroke="none"/> +<path d="M324.328,164.5 L324.328,163.5 L344.328,163.5 L344.328,164.5" fill="#2b828c" stroke="none"/> +<path d="M324.328,163.5 L324.328,162.5 L344.328,162.5 L344.328,163.5" fill="#2a838c" stroke="none"/> +<path d="M324.328,162.5 L324.328,161.5 L344.328,161.5 L344.328,162.5" fill="#2a848c" stroke="none"/> +<path d="M324.328,161.5 L324.328,160.5 L344.328,160.5 L344.328,161.5" fill="#29858c" stroke="none"/> +<path d="M324.328,160.5 L324.328,159.5 L344.328,159.5 L344.328,160.5" fill="#28868c" stroke="none"/> +<path d="M324.328,159.5 L324.328,158.5 L344.328,158.5 L344.328,159.5" fill="#28878c" stroke="none"/> +<path d="M324.328,158.5 L324.328,157.5 L344.328,157.5 L344.328,158.5" fill="#27888c" stroke="none"/> +<path d="M324.328,157.5 L324.328,156.5 L344.328,156.5 L344.328,157.5" fill="#26888c" stroke="none"/> +<path d="M324.328,156.5 L324.328,155.5 L344.328,155.5 L344.328,156.5" fill="#25898c" stroke="none"/> +<path d="M324.328,155.5 L324.328,154.5 L344.328,154.5 L344.328,155.5" fill="#248a8c" stroke="none"/> +<path d="M324.328,154.5 L324.328,153.5 L344.328,153.5 L344.328,154.5" fill="#248b8c" stroke="none"/> +<path d="M324.328,153.5 L324.328,152.5 L344.328,152.5 L344.328,153.5" fill="#238c8c" stroke="none"/> +<path d="M324.328,152.5 L324.328,151.5 L344.328,151.5 L344.328,152.5" fill="#228d8c" stroke="none"/> +<path d="M324.328,151.5 L324.328,150.5 L344.328,150.5 L344.328,151.5" fill="#218e8c" stroke="none"/> +<path d="M324.328,150.5 L324.328,149.5 L344.328,149.5 L344.328,150.5" fill="#208f8c" stroke="none"/> +<path d="M324.328,149.5 L324.328,148.5 L344.328,148.5 L344.328,149.5" fill="#21908c" stroke="none"/> +<path d="M324.328,148.5 L324.328,147.5 L344.328,147.5 L344.328,148.5" fill="#22918b" stroke="none"/> +<path d="M324.328,147.5 L324.328,146.5 L344.328,146.5 L344.328,147.5" fill="#23928b" stroke="none"/> +<path d="M324.328,146.5 L324.328,145.5 L344.328,145.5 L344.328,146.5" fill="#24938a" stroke="none"/> +<path d="M324.328,145.5 L324.328,144.5 L344.328,144.5 L344.328,145.5" fill="#25938a" stroke="none"/> +<path d="M324.328,144.5 L324.328,143.5 L344.328,143.5 L344.328,144.5" fill="#269489" stroke="none"/> +<path d="M324.328,143.5 L324.328,142.5 L344.328,142.5 L344.328,143.5" fill="#279589" stroke="none"/> +<path d="M324.328,142.5 L324.328,141.5 L344.328,141.5 L344.328,142.5" fill="#289689" stroke="none"/> +<path d="M324.328,141.5 L324.328,140.5 L344.328,140.5 L344.328,141.5" fill="#299788" stroke="none"/> +<path d="M324.328,140.5 L324.328,139.5 L344.328,139.5 L344.328,140.5" fill="#2a9888" stroke="none"/> +<path d="M324.328,139.5 L324.328,138.5 L344.328,138.5 L344.328,139.5" fill="#2b9987" stroke="none"/> +<path d="M324.328,138.5 L324.328,137.5 L344.328,137.5 L344.328,138.5" fill="#2c9a87" stroke="none"/> +<path d="M324.328,137.5 L324.328,136.5 L344.328,136.5 L344.328,137.5" fill="#2d9b86" stroke="none"/> +<path d="M324.328,136.5 L324.328,135.5 L344.328,135.5 L344.328,136.5" fill="#2e9b86" stroke="none"/> +<path d="M324.328,135.5 L324.328,134.5 L344.328,134.5 L344.328,135.5" fill="#2e9c85" stroke="none"/> +<path d="M324.328,134.5 L324.328,133.5 L344.328,133.5 L344.328,134.5" fill="#2f9d85" stroke="none"/> +<path d="M324.328,133.5 L324.328,132.5 L344.328,132.5 L344.328,133.5" fill="#309e84" stroke="none"/> +<path d="M324.328,132.5 L324.328,131.5 L344.328,131.5 L344.328,132.5" fill="#319f84" stroke="none"/> +<path d="M324.328,131.5 L324.328,130.5 L344.328,130.5 L344.328,131.5" fill="#32a083" stroke="none"/> +<path d="M324.328,130.5 L324.328,129.5 L344.328,129.5 L344.328,130.5" fill="#33a183" stroke="none"/> +<path d="M324.328,129.5 L324.328,128.5 L344.328,128.5 L344.328,129.5" fill="#34a282" stroke="none"/> +<path d="M324.328,128.5 L324.328,127.5 L344.328,127.5 L344.328,128.5" fill="#35a282" stroke="none"/> +<path d="M324.328,127.5 L324.328,126.5 L344.328,126.5 L344.328,127.5" fill="#36a381" stroke="none"/> +<path d="M324.328,126.5 L324.328,125.5 L344.328,125.5 L344.328,126.5" fill="#37a481" stroke="none"/> +<path d="M324.328,125.5 L324.328,124.5 L344.328,124.5 L344.328,125.5" fill="#38a580" stroke="none"/> +<path d="M324.328,124.5 L324.328,123.5 L344.328,123.5 L344.328,124.5" fill="#39a680" stroke="none"/> +<path d="M324.328,123.5 L324.328,122.5 L344.328,122.5 L344.328,123.5" fill="#39a77f" stroke="none"/> +<path d="M324.328,122.5 L324.328,121.5 L344.328,121.5 L344.328,122.5" fill="#3aa87e" stroke="none"/> +<path d="M324.328,121.5 L324.328,120.5 L344.328,120.5 L344.328,121.5" fill="#3ba97e" stroke="none"/> +<path d="M324.328,120.5 L324.328,119.5 L344.328,119.5 L344.328,120.5" fill="#3caa7d" stroke="none"/> +<path d="M324.328,119.5 L324.328,118.5 L344.328,118.5 L344.328,119.5" fill="#3daa7d" stroke="none"/> +<path d="M324.328,118.5 L324.328,117.5 L344.328,117.5 L344.328,118.5" fill="#3eab7c" stroke="none"/> +<path d="M324.328,117.5 L324.328,116.5 L344.328,116.5 L344.328,117.5" fill="#3fac7b" stroke="none"/> +<path d="M324.328,116.5 L324.328,115.5 L344.328,115.5 L344.328,116.5" fill="#40ad7b" stroke="none"/> +<path d="M324.328,115.5 L324.328,114.5 L344.328,114.5 L344.328,115.5" fill="#41ae7a" stroke="none"/> +<path d="M324.328,114.5 L324.328,113.5 L344.328,113.5 L344.328,114.5" fill="#41af79" stroke="none"/> +<path d="M324.328,113.5 L324.328,112.5 L344.328,112.5 L344.328,113.5" fill="#42b079" stroke="none"/> +<path d="M324.328,112.5 L324.328,111.5 L344.328,111.5 L344.328,112.5" fill="#43b178" stroke="none"/> +<path d="M324.328,111.5 L324.328,110.5 L344.328,110.5 L344.328,111.5" fill="#44b178" stroke="none"/> +<path d="M324.328,110.5 L324.328,109.5 L344.328,109.5 L344.328,110.5" fill="#45b277" stroke="none"/> +<path d="M324.328,109.5 L324.328,108.5 L344.328,108.5 L344.328,109.5" fill="#46b376" stroke="none"/> +<path d="M324.328,108.5 L324.328,107.5 L344.328,107.5 L344.328,108.5" fill="#47b475" stroke="none"/> +<path d="M324.328,107.5 L324.328,106.5 L344.328,106.5 L344.328,107.5" fill="#48b575" stroke="none"/> +<path d="M324.328,106.5 L324.328,105.5 L344.328,105.5 L344.328,106.5" fill="#49b674" stroke="none"/> +<path d="M324.328,105.5 L324.328,104.5 L344.328,104.5 L344.328,105.5" fill="#49b773" stroke="none"/> +<path d="M324.328,104.5 L324.328,103.5 L344.328,103.5 L344.328,104.5" fill="#4ab773" stroke="none"/> +<path d="M324.328,103.5 L324.328,102.5 L344.328,102.5 L344.328,103.5" fill="#4bb872" stroke="none"/> +<path d="M324.328,102.5 L324.328,101.5 L344.328,101.5 L344.328,102.5" fill="#4cb971" stroke="none"/> +<path d="M324.328,101.5 L324.328,100.5 L344.328,100.5 L344.328,101.5" fill="#4dba70" stroke="none"/> +<path d="M324.328,100.5 L324.328,99.5 L344.328,99.5 L344.328,100.5" fill="#4ebb6f" stroke="none"/> +<path d="M324.328,99.5 L324.328,98.5 L344.328,98.5 L344.328,99.5" fill="#4fbc6f" stroke="none"/> +<path d="M324.328,98.5 L324.328,97.5 L344.328,97.5 L344.328,98.5" fill="#50bd6e" stroke="none"/> +<path d="M324.328,97.5 L324.328,96.5 L344.328,96.5 L344.328,97.5" fill="#50be6d" stroke="none"/> +<path d="M324.328,96.5 L324.328,95.5 L344.328,95.5 L344.328,96.5" fill="#51be6c" stroke="none"/> +<path d="M324.328,95.5 L324.328,94.5 L344.328,94.5 L344.328,95.5" fill="#52bf6b" stroke="none"/> +<path d="M324.328,94.5 L324.328,93.5 L344.328,93.5 L344.328,94.5" fill="#53c06b" stroke="none"/> +<path d="M324.328,93.5 L324.328,92.5 L344.328,92.5 L344.328,93.5" fill="#54c16a" stroke="none"/> +<path d="M324.328,92.5 L324.328,91.5 L344.328,91.5 L344.328,92.5" fill="#55c269" stroke="none"/> +<path d="M324.328,91.5 L324.328,90.5 L344.328,90.5 L344.328,91.5" fill="#56c368" stroke="none"/> +<path d="M324.328,90.5 L324.328,89.5 L344.328,89.5 L344.328,90.5" fill="#57c467" stroke="none"/> +<path d="M324.328,89.5 L324.328,88.5 L344.328,88.5 L344.328,89.5" fill="#57c566" stroke="none"/> +<path d="M324.328,88.5 L324.328,87.5 L344.328,87.5 L344.328,88.5" fill="#58c565" stroke="none"/> +<path d="M324.328,87.5 L324.328,86.5 L344.328,86.5 L344.328,87.5" fill="#59c664" stroke="none"/> +<path d="M324.328,86.5 L324.328,85.5 L344.328,85.5 L344.328,86.5" fill="#5ac763" stroke="none"/> +<path d="M324.328,85.5 L324.328,84.5 L344.328,84.5 L344.328,85.5" fill="#5bc862" stroke="none"/> +<path d="M324.328,84.5 L324.328,83.5 L344.328,83.5 L344.328,84.5" fill="#5fc962" stroke="none"/> +<path d="M324.328,83.5 L324.328,82.5 L344.328,82.5 L344.328,83.5" fill="#62c961" stroke="none"/> +<path d="M324.328,82.5 L324.328,81.5 L344.328,81.5 L344.328,82.5" fill="#65ca61" stroke="none"/> +<path d="M324.328,81.5 L324.328,80.5 L344.328,80.5 L344.328,81.5" fill="#69ca60" stroke="none"/> +<path d="M324.328,80.5 L324.328,79.5 L344.328,79.5 L344.328,80.5" fill="#6ccb60" stroke="none"/> +<path d="M324.328,79.5 L324.328,78.5 L344.328,78.5 L344.328,79.5" fill="#6fcb5f" stroke="none"/> +<path d="M324.328,78.5 L324.328,77.5 L344.328,77.5 L344.328,78.5" fill="#72cc5f" stroke="none"/> +<path d="M324.328,77.5 L324.328,76.5 L344.328,76.5 L344.328,77.5" fill="#75cc5e" stroke="none"/> +<path d="M324.328,76.5 L324.328,75.5 L344.328,75.5 L344.328,76.5" fill="#78cd5e" stroke="none"/> +<path d="M324.328,75.5 L324.328,74.5 L344.328,74.5 L344.328,75.5" fill="#7bcd5d" stroke="none"/> +<path d="M324.328,74.5 L324.328,73.5 L344.328,73.5 L344.328,74.5" fill="#7ece5d" stroke="none"/> +<path d="M324.328,73.5 L324.328,72.5 L344.328,72.5 L344.328,73.5" fill="#80ce5c" stroke="none"/> +<path d="M324.328,72.5 L324.328,71.5 L344.328,71.5 L344.328,72.5" fill="#83cf5c" stroke="none"/> +<path d="M324.328,71.5 L324.328,70.5 L344.328,70.5 L344.328,71.5" fill="#86cf5b" stroke="none"/> +<path d="M324.328,70.5 L324.328,69.5 L344.328,69.5 L344.328,70.5" fill="#89d05b" stroke="none"/> +<path d="M324.328,69.5 L324.328,68.5 L344.328,68.5 L344.328,69.5" fill="#8bd05a" stroke="none"/> +<path d="M324.328,68.5 L324.328,67.5 L344.328,67.5 L344.328,68.5" fill="#8ed159" stroke="none"/> +<path d="M324.328,67.5 L324.328,66.5 L344.328,66.5 L344.328,67.5" fill="#91d159" stroke="none"/> +<path d="M324.328,66.5 L324.328,65.5 L344.328,65.5 L344.328,66.5" fill="#93d258" stroke="none"/> +<path d="M324.328,65.5 L324.328,64.5 L344.328,64.5 L344.328,65.5" fill="#96d258" stroke="none"/> +<path d="M324.328,64.5 L324.328,63.5 L344.328,63.5 L344.328,64.5" fill="#98d357" stroke="none"/> +<path d="M324.328,63.5 L324.328,62.5 L344.328,62.5 L344.328,63.5" fill="#9bd356" stroke="none"/> +<path d="M324.328,62.5 L324.328,61.5 L344.328,61.5 L344.328,62.5" fill="#9dd456" stroke="none"/> +<path d="M324.328,61.5 L324.328,60.5 L344.328,60.5 L344.328,61.5" fill="#a0d455" stroke="none"/> +<path d="M324.328,60.5 L324.328,59.5 L344.328,59.5 L344.328,60.5" fill="#a2d554" stroke="none"/> +<path d="M324.328,59.5 L324.328,58.5 L344.328,58.5 L344.328,59.5" fill="#a5d554" stroke="none"/> +<path d="M324.328,58.5 L324.328,57.5 L344.328,57.5 L344.328,58.5" fill="#a7d653" stroke="none"/> +<path d="M324.328,57.5 L324.328,56.5 L344.328,56.5 L344.328,57.5" fill="#aad652" stroke="none"/> +<path d="M324.328,56.5 L324.328,55.5 L344.328,55.5 L344.328,56.5" fill="#acd752" stroke="none"/> +<path d="M324.328,55.5 L324.328,54.5 L344.328,54.5 L344.328,55.5" fill="#afd751" stroke="none"/> +<path d="M324.328,54.5 L324.328,53.5 L344.328,53.5 L344.328,54.5" fill="#b1d850" stroke="none"/> +<path d="M324.328,53.5 L324.328,52.5 L344.328,52.5 L344.328,53.5" fill="#b3d84f" stroke="none"/> +<path d="M324.328,52.5 L324.328,51.5 L344.328,51.5 L344.328,52.5" fill="#b6d94f" stroke="none"/> +<path d="M324.328,51.5 L324.328,50.5 L344.328,50.5 L344.328,51.5" fill="#b8d94e" stroke="none"/> +<path d="M324.328,50.5 L324.328,49.5 L344.328,49.5 L344.328,50.5" fill="#bada4d" stroke="none"/> +<path d="M324.328,49.5 L324.328,48.5 L344.328,48.5 L344.328,49.5" fill="#bdda4c" stroke="none"/> +<path d="M324.328,48.5 L324.328,47.5 L344.328,47.5 L344.328,48.5" fill="#bfdb4b" stroke="none"/> +<path d="M324.328,47.5 L324.328,46.5 L344.328,46.5 L344.328,47.5" fill="#c1db4a" stroke="none"/> +<path d="M324.328,46.5 L324.328,45.5 L344.328,45.5 L344.328,46.5" fill="#c4dc49" stroke="none"/> +<path d="M324.328,45.5 L324.328,44.5 L344.328,44.5 L344.328,45.5" fill="#c6dc48" stroke="none"/> +<path d="M324.328,44.5 L324.328,43.5 L344.328,43.5 L344.328,44.5" fill="#c8dd47" stroke="none"/> +<path d="M324.328,43.5 L324.328,42.5 L344.328,42.5 L344.328,43.5" fill="#cadd46" stroke="none"/> +<path d="M324.328,42.5 L324.328,41.5 L344.328,41.5 L344.328,42.5" fill="#cddd45" stroke="none"/> +<path d="M324.328,41.5 L324.328,40.5 L344.328,40.5 L344.328,41.5" fill="#cfde44" stroke="none"/> +<path d="M324.328,40.5 L324.328,39.5 L344.328,39.5 L344.328,40.5" fill="#d1de43" stroke="none"/> +<path d="M324.328,39.5 L324.328,38.5 L344.328,38.5 L344.328,39.5" fill="#d3df42" stroke="none"/> +<path d="M324.328,38.5 L324.328,37.5 L344.328,37.5 L344.328,38.5" fill="#d6df41" stroke="none"/> +<path d="M324.328,37.5 L324.328,36.5 L344.328,36.5 L344.328,37.5" fill="#d8e040" stroke="none"/> +<path d="M324.328,36.5 L324.328,35.5 L344.328,35.5 L344.328,36.5" fill="#dae03f" stroke="none"/> +<path d="M324.328,35.5 L324.328,34.5 L344.328,34.5 L344.328,35.5" fill="#dce13e" stroke="none"/> +<path d="M324.328,34.5 L324.328,33.5 L344.328,33.5 L344.328,34.5" fill="#dfe13c" stroke="none"/> +<path d="M324.328,33.5 L324.328,32.5 L344.328,32.5 L344.328,33.5" fill="#e1e13b" stroke="none"/> +<path d="M324.328,32.5 L324.328,31.5 L344.328,31.5 L344.328,32.5" fill="#e3e23a" stroke="none"/> +<path d="M324.328,31.5 L324.328,30.5 L344.328,30.5 L344.328,31.5" fill="#e5e238" stroke="none"/> +<path d="M324.328,30.5 L324.328,29.5 L344.328,29.5 L344.328,30.5" fill="#e7e337" stroke="none"/> +<path d="M324.328,29.5 L324.328,28.5 L344.328,28.5 L344.328,29.5" fill="#eae335" stroke="none"/> +<path d="M324.328,28.5 L324.328,27.5 L344.328,27.5 L344.328,28.5" fill="#ece434" stroke="none"/> +<path d="M324.328,27.5 L324.328,26.5 L344.328,26.5 L344.328,27.5" fill="#eee432" stroke="none"/> +<path d="M324.328,26.5 L324.328,25.5 L344.328,25.5 L344.328,26.5" fill="#f0e530" stroke="none"/> +<path d="M324.328,25.5 L324.328,24.5 L344.328,24.5 L344.328,25.5" fill="#f2e52f" stroke="none"/> +<path d="M324.328,24.5 L324.328,23.5 L344.328,23.5 L344.328,24.5" fill="#f4e52d" stroke="none"/> +<path d="M324.328,23.5 L324.328,22.5 L344.328,22.5 L344.328,23.5" fill="#f7e62b" stroke="none"/> +<path d="M324.328,22.5 L324.328,21.5 L344.328,21.5 L344.328,22.5" fill="#f9e629" stroke="none"/> +<path d="M324.328,21.5 L324.328,20.5 L344.328,20.5 L344.328,21.5" fill="#fbe726" stroke="none"/> +<path d="M324.328,20.5 L324.328,20 L344.328,20 L344.328,20.5" fill="#fde724" stroke="none"/> +<path d="M324.328,20 L344.328,20 L344.328,280 L324.328,280 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M344.328,280 L348.328,280" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M0.48000002,0.46800017 L0.48000002,-0.46799994 L3.384,-0.46799994 L3.384,0.46800017 L0.48000002,0.46800017 z M8.124001,3.216 L7.092,3.216 L7.092,-2.7719998 Q7.092,-3.12,7.098,-3.3600001 Q7.104,-3.6,7.116,-3.81 Q7.1280003,-4.02,7.1400003,-4.248 Q6.948,-4.0559998,6.792,-3.9239998 Q6.636,-3.7919998,6.396,-3.5879998 L5.484,-2.8439999 L4.932,-3.552 L7.248,-5.3519998 L8.124001,-5.3519998 L8.124001,3.216 z M11.592,2.568 Q11.592,2.124,11.808,1.9440001 Q12.024,1.764,12.323999,1.764 Q12.636,1.764,12.858,1.9440001 Q13.08,2.124,13.08,2.568 Q13.08,3,12.858,3.1920002 Q12.636,3.384,12.323999,3.384 Q12.024,3.384,11.808,3.1920002 Q11.592,3,11.592,2.568 z M20.220001,-1.0799999 Q20.220001,-0.036000013,20.064,0.78 Q19.908,1.5960001,19.566,2.1660001 Q19.224,2.736,18.678001,3.036 Q18.132,3.336,17.364,3.336 Q16.404,3.336,15.774,2.808 Q15.144,2.2800002,14.838,1.2900001 Q14.532001,0.29999995,14.532001,-1.0799999 Q14.532001,-2.4720001,14.814,-3.4559999 Q15.096001,-4.44,15.72,-4.9620004 Q16.344,-5.4839997,17.364,-5.4839997 Q18.324001,-5.4839997,18.960001,-4.9620004 Q19.596,-4.44,19.908,-3.4559999 Q20.220001,-2.4720001,20.220001,-1.0799999 z M15.588,-1.0799999 Q15.588,0.095999956,15.762,0.87600017 Q15.936,1.656,16.326,2.046 Q16.716,2.436,17.364,2.436 Q18.012001,2.436,18.402,2.052 Q18.792,1.6680001,18.972,0.88199997 Q19.152,0.095999956,19.152,-1.0799999 Q19.152,-2.256,18.972,-3.0300002 Q18.792,-3.804,18.402,-4.194 Q18.012001,-4.584,17.364,-4.584 Q16.716,-4.584,16.326,-4.194 Q15.936,-3.804,15.762,-3.0300002 Q15.588,-2.256,15.588,-1.0799999 z M27.084,-1.0799999 Q27.084,-0.036000013,26.928001,0.78 Q26.772001,1.5960001,26.43,2.1660001 Q26.088001,2.736,25.542,3.036 Q24.996,3.336,24.228,3.336 Q23.268002,3.336,22.638,2.808 Q22.008001,2.2800002,21.702,1.2900001 Q21.396,0.29999995,21.396,-1.0799999 Q21.396,-2.4720001,21.678001,-3.4559999 Q21.960001,-4.44,22.584,-4.9620004 Q23.208,-5.4839997,24.228,-5.4839997 Q25.188,-5.4839997,25.824001,-4.9620004 Q26.460001,-4.44,26.772001,-3.4559999 Q27.084,-2.4720001,27.084,-1.0799999 z M22.452,-1.0799999 Q22.452,0.095999956,22.626001,0.87600017 Q22.800001,1.656,23.19,2.046 Q23.58,2.436,24.228,2.436 Q24.876,2.436,25.266,2.052 Q25.656,1.6680001,25.836,0.88199997 Q26.016,0.095999956,26.016,-1.0799999 Q26.016,-2.256,25.836,-3.0300002 Q25.656,-3.804,25.266,-4.194 Q24.876,-4.584,24.228,-4.584 Q23.58,-4.584,23.19,-4.194 Q22.800001,-3.804,22.626001,-3.0300002 Q22.452,-2.256,22.452,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 280)"/> +<path d="M344.328,242.85715 L348.328,242.85715" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 242.85715)"/> +<path d="M344.328,205.71428 L348.328,205.71428" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 205.71428)"/> +<path d="M344.328,168.57143 L348.328,168.57143" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.2400002,3.216 L0.576,3.216 L0.576,2.3400002 L2.82,0.07200003 Q3.468,-0.576,3.912,-1.0799999 Q4.356,-1.5840001,4.584,-2.0700002 Q4.8120003,-2.5559998,4.8120003,-3.132 Q4.8120003,-3.8400002,4.392,-4.206 Q3.9720001,-4.572,3.3,-4.572 Q2.676,-4.572,2.202,-4.356 Q1.728,-4.14,1.2360001,-3.756 L0.672,-4.464 Q1.008,-4.752,1.41,-4.98 Q1.812,-5.2079997,2.286,-5.3399997 Q2.76,-5.4719996,3.3,-5.4719996 Q4.104,-5.4719996,4.68,-5.1959996 Q5.256,-4.9199996,5.574,-4.41 Q5.892,-3.9,5.892,-3.192 Q5.892,-2.52,5.616,-1.9320002 Q5.34,-1.3439999,4.848,-0.7739999 Q4.356,-0.204,3.696,0.444 L1.908,2.2080002 L1.908,2.256 L6.2400002,2.256 L6.2400002,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 168.57143)"/> +<path d="M344.328,131.42856 L348.328,131.42856" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M5.916,-3.348 Q5.916,-2.7719998,5.7000003,-2.3519998 Q5.484,-1.9320002,5.0820003,-1.6679997 Q4.68,-1.4039998,4.14,-1.296 L4.14,-1.2480001 Q5.172,-1.1279998,5.676,-0.5999999 Q6.18,-0.07200003,6.18,0.78 Q6.18,1.524,5.8320003,2.106 Q5.484,2.6880002,4.758,3.012 Q4.032,3.336,2.892,3.336 Q2.22,3.336,1.644,3.234 Q1.068,3.132,0.54,2.868 L0.54,1.8840001 Q1.08,2.1480002,1.704,2.298 Q2.328,2.448,2.904,2.448 Q4.056,2.448,4.566,1.998 Q5.076,1.5480001,5.076,0.75600004 Q5.076,0.21600008,4.794,-0.11399984 Q4.512,-0.444,3.9720001,-0.5999999 Q3.432,-0.75600004,2.676,-0.75600004 L1.848,-0.75600004 L1.848,-1.6560001 L2.688,-1.6560001 Q3.3960001,-1.6560001,3.8700001,-1.8600001 Q4.344,-2.0640001,4.59,-2.4299998 Q4.836,-2.796,4.836,-3.276 Q4.836,-3.9,4.416,-4.242 Q3.996,-4.584,3.276,-4.584 Q2.82,-4.584,2.448,-4.494 Q2.076,-4.404,1.758,-4.242 Q1.44,-4.08,1.116,-3.8639998 L0.588,-4.584 Q1.044,-4.944,1.722,-5.2079997 Q2.4,-5.4719996,3.264,-5.4719996 Q4.608,-5.4719996,5.262,-4.872 Q5.916,-4.272,5.916,-3.348 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 131.42856)"/> +<path d="M344.328,94.285706 L348.328,94.285706" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.624,1.2720001 L5.376,1.2720001 L5.376,3.216 L4.356,3.216 L4.356,1.2720001 L0.252,1.2720001 L0.252,0.37199998 L4.284,-5.4 L5.376,-5.4 L5.376,0.32400012 L6.624,0.32400012 L6.624,1.2720001 z M4.356,-2.376 Q4.356,-2.6880002,4.362,-2.946 Q4.368,-3.204,4.38,-3.4320002 Q4.392,-3.6599998,4.3980002,-3.87 Q4.404,-4.08,4.416,-4.272 L4.368,-4.272 Q4.272,-4.044,4.1280003,-3.7800002 Q3.984,-3.5159998,3.852,-3.336 L1.284,0.32400012 L4.356,0.32400012 L4.356,-2.376 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 94.285706)"/> +<path d="M344.328,57.142853 L348.328,57.142853" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M3.3,-2.04 Q4.176,-2.04,4.824,-1.7399998 Q5.472,-1.44,5.826,-0.88199997 Q6.18,-0.32399988,6.18,0.48000002 Q6.18,1.368,5.796,2.0100002 Q5.412,2.652,4.698,2.994 Q3.984,3.336,2.976,3.336 Q2.316,3.336,1.734,3.216 Q1.152,3.0960002,0.756,2.868 L0.756,1.8720001 Q1.188,2.1360002,1.806,2.286 Q2.424,2.436,2.988,2.436 Q3.624,2.436,4.098,2.2380002 Q4.572,2.04,4.836,1.626 Q5.1,1.2120001,5.1,0.58800006 Q5.1,-0.25199986,4.584,-0.7019999 Q4.068,-1.152,2.9520001,-1.152 Q2.616,-1.152,2.184,-1.092 Q1.752,-1.0320001,1.488,-0.9720001 L0.96000004,-1.3080001 L1.284,-5.3519998 L5.58,-5.3519998 L5.58,-4.392 L2.184,-4.392 L1.98,-1.908 Q2.184,-1.9439998,2.532,-1.9920001 Q2.88,-2.04,3.3,-2.04 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 57.142853)"/> +<path d="M344.328,20 L348.328,20" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M0.66,-0.444 Q0.66,-1.1879997,0.762,-1.908 Q0.864,-2.6279998,1.116,-3.27 Q1.368,-3.9120002,1.812,-4.41 Q2.256,-4.9079995,2.934,-5.19 Q3.612,-5.4719996,4.584,-5.4719996 Q4.836,-5.4719996,5.142,-5.4480004 Q5.448,-5.4240003,5.64,-5.364 L5.64,-4.464 Q5.4240003,-4.536,5.1540003,-4.572 Q4.884,-4.608,4.608,-4.608 Q3.78,-4.608,3.228,-4.332 Q2.676,-4.0559998,2.358,-3.5760002 Q2.04,-3.0960002,1.896,-2.4720001 Q1.752,-1.848,1.716,-1.1399999 L1.788,-1.1399999 Q1.968,-1.428,2.244,-1.6560001 Q2.52,-1.8839998,2.91,-2.0159998 Q3.3,-2.1479998,3.816,-2.1479998 Q4.56,-2.1479998,5.118,-1.842 Q5.676,-1.5359998,5.988,-0.954 Q6.3,-0.37199998,6.3,0.4560001 Q6.3,1.3440001,5.964,1.9920001 Q5.6280003,2.64,5.022,2.9880002 Q4.416,3.336,3.576,3.336 Q2.964,3.336,2.436,3.108 Q1.908,2.88,1.506,2.4120002 Q1.104,1.9440001,0.882,1.23 Q0.66,0.51600003,0.66,-0.444 z M3.5640001,2.448 Q4.32,2.448,4.788,1.962 Q5.256,1.4760001,5.256,0.4560001 Q5.256,-0.3599999,4.842,-0.84000015 Q4.428,-1.3200002,3.6000001,-1.3200002 Q3.036,-1.3200002,2.616,-1.086 Q2.196,-0.85199976,1.962,-0.49199986 Q1.728,-0.13199997,1.728,0.2520001 Q1.728,0.648,1.842,1.0320001 Q1.956,1.416,2.19,1.74 Q2.424,2.0640001,2.766,2.256 Q3.108,2.448,3.5640001,2.448 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 352.328 20)"/> +</svg> \ No newline at end of file diff --git a/tests/refs/colorbar/forced-scale.png b/tests/refs/colorbar/forced-range.png similarity index 100% rename from tests/refs/colorbar/forced-scale.png rename to tests/refs/colorbar/forced-range.png diff --git a/tests/refs/colorbar/forced-scale.svg b/tests/refs/colorbar/forced-range.svg similarity index 100% rename from tests/refs/colorbar/forced-scale.svg rename to tests/refs/colorbar/forced-range.svg diff --git a/tests/refs/colorbar/locator.png b/tests/refs/colorbar/locator.png new file mode 100644 index 0000000..87acfd5 Binary files /dev/null and b/tests/refs/colorbar/locator.png differ diff --git a/tests/refs/colorbar/locator.svg b/tests/refs/colorbar/locator.svg new file mode 100644 index 0000000..e7be6fe --- /dev/null +++ b/tests/refs/colorbar/locator.svg @@ -0,0 +1,296 @@ +<svg height="300" viewBox="0 0 400 300" width="400" xmlns="http://www.w3.org/2000/svg"> +<rect fill="#ffffff" height="100%" width="100%"/> +<clipPath id="plotive-clip1"> +<rect height="260" width="296.19202" x="20" y="20"/> +</clipPath> +<g clip-path="url(#plotive-clip1)"> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#51be6d" fill-opacity="0.7019608" stroke="#51be6d" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 190.89055 112.57182)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#3aa87f" fill-opacity="0.7019608" stroke="#3aa87f" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 179.97026 65.19423)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#80ce5c" fill-opacity="0.7019608" stroke="#80ce5c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 202.46431 182.75821)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#46185e" fill-opacity="0.7019608" stroke="#46185e" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 168.9136 137.4275)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#34a282" fill-opacity="0.7019608" stroke="#34a282" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 40 128.45457)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#2f7a8c" fill-opacity="0.7019608" stroke="#2f7a8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 146.78484 40)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#60c961" fill-opacity="0.7019608" stroke="#60c961" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 160.33264 221.95265)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#36698c" fill-opacity="0.7019608" stroke="#36698c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 62.404472 179.70654)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#356d8c" fill-opacity="0.7019608" stroke="#356d8c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 104.20594 119.84299)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#e7e337" fill-opacity="0.7019608" stroke="#e7e337" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 215.1704 107.928925)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#33a083" fill-opacity="0.7019608" stroke="#33a083" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 170.00009 123.19487)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#80ce5c" fill-opacity="0.7019608" stroke="#80ce5c" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 269.2433 73.18942)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#462a6b" fill-opacity="0.7019608" stroke="#462a6b" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 296.19202 186.15048)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#59c665" fill-opacity="0.7019608" stroke="#59c665" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 45.586716 260)"/> +<path d="M0.5,0 Q0.49999997,0.20710677,0.35355338,0.35355338 Q0.20710677,0.49999997,0,0.5 Q-0.20710677,0.49999997,-0.35355338,0.35355338 Q-0.49999997,0.20710677,-0.5,0 Q-0.49999997,-0.20710677,-0.35355338,-0.35355338 Q-0.20710677,-0.49999997,0,-0.5 Q0.20710677,-0.49999997,0.35355338,-0.35355338 Q0.49999997,-0.20710677,0.5,0 z" fill="#289688" fill-opacity="0.7019608" stroke="#289688" stroke-width="0.23529412" transform="matrix(8.5 0 0 8.5 143.01593 56.149902)"/> +</g> +<rect fill="none" height="260" stroke="#000000" stroke-width="1" width="296.19202" x="20" y="20"/> +<path d="M328.19202,280 L328.19202,279.5 L348.19202,279.5 L348.19202,280" fill="#440154" stroke="none"/> +<path d="M328.19202,279.5 L328.19202,278.5 L348.19202,278.5 L348.19202,279.5" fill="#440355" stroke="none"/> +<path d="M328.19202,278.5 L328.19202,277.5 L348.19202,277.5 L348.19202,278.5" fill="#440556" stroke="none"/> +<path d="M328.19202,277.5 L328.19202,276.5 L348.19202,276.5 L348.19202,277.5" fill="#440756" stroke="none"/> +<path d="M328.19202,276.5 L328.19202,275.5 L348.19202,275.5 L348.19202,276.5" fill="#450957" stroke="none"/> +<path d="M328.19202,275.5 L328.19202,274.5 L348.19202,274.5 L348.19202,275.5" fill="#450b58" stroke="none"/> +<path d="M328.19202,274.5 L328.19202,273.5 L348.19202,273.5 L348.19202,274.5" fill="#450d59" stroke="none"/> +<path d="M328.19202,273.5 L328.19202,272.5 L348.19202,272.5 L348.19202,273.5" fill="#450f5a" stroke="none"/> +<path d="M328.19202,272.5 L328.19202,271.5 L348.19202,271.5 L348.19202,272.5" fill="#45105a" stroke="none"/> +<path d="M328.19202,271.5 L328.19202,270.5 L348.19202,270.5 L348.19202,271.5" fill="#45125b" stroke="none"/> +<path d="M328.19202,270.5 L328.19202,269.5 L348.19202,269.5 L348.19202,270.5" fill="#45145c" stroke="none"/> +<path d="M328.19202,269.5 L328.19202,268.5 L348.19202,268.5 L348.19202,269.5" fill="#45155d" stroke="none"/> +<path d="M328.19202,268.5 L328.19202,267.5 L348.19202,267.5 L348.19202,268.5" fill="#45165e" stroke="none"/> +<path d="M328.19202,267.5 L328.19202,266.5 L348.19202,266.5 L348.19202,267.5" fill="#46185e" stroke="none"/> +<path d="M328.19202,266.5 L328.19202,265.5 L348.19202,265.5 L348.19202,266.5" fill="#46195f" stroke="none"/> +<path d="M328.19202,265.5 L328.19202,264.5 L348.19202,264.5 L348.19202,265.5" fill="#461b60" stroke="none"/> +<path d="M328.19202,264.5 L328.19202,263.5 L348.19202,263.5 L348.19202,264.5" fill="#461c61" stroke="none"/> +<path d="M328.19202,263.5 L328.19202,262.5 L348.19202,262.5 L348.19202,263.5" fill="#461d62" stroke="none"/> +<path d="M328.19202,262.5 L328.19202,261.5 L348.19202,261.5 L348.19202,262.5" fill="#461e63" stroke="none"/> +<path d="M328.19202,261.5 L328.19202,260.5 L348.19202,260.5 L348.19202,261.5" fill="#462063" stroke="none"/> +<path d="M328.19202,260.5 L328.19202,259.5 L348.19202,259.5 L348.19202,260.5" fill="#462164" stroke="none"/> +<path d="M328.19202,259.5 L328.19202,258.5 L348.19202,258.5 L348.19202,259.5" fill="#462265" stroke="none"/> +<path d="M328.19202,258.5 L328.19202,257.5 L348.19202,257.5 L348.19202,258.5" fill="#462366" stroke="none"/> +<path d="M328.19202,257.5 L328.19202,256.5 L348.19202,256.5 L348.19202,257.5" fill="#462467" stroke="none"/> +<path d="M328.19202,256.5 L328.19202,255.5 L348.19202,255.5 L348.19202,256.5" fill="#462667" stroke="none"/> +<path d="M328.19202,255.5 L328.19202,254.5 L348.19202,254.5 L348.19202,255.5" fill="#462768" stroke="none"/> +<path d="M328.19202,254.5 L328.19202,253.5 L348.19202,253.5 L348.19202,254.5" fill="#462869" stroke="none"/> +<path d="M328.19202,253.5 L328.19202,252.5 L348.19202,252.5 L348.19202,253.5" fill="#46296a" stroke="none"/> +<path d="M328.19202,252.5 L328.19202,251.5 L348.19202,251.5 L348.19202,252.5" fill="#462a6b" stroke="none"/> +<path d="M328.19202,251.5 L328.19202,250.5 L348.19202,250.5 L348.19202,251.5" fill="#462b6c" stroke="none"/> +<path d="M328.19202,250.5 L328.19202,249.5 L348.19202,249.5 L348.19202,250.5" fill="#452c6c" stroke="none"/> +<path d="M328.19202,249.5 L328.19202,248.5 L348.19202,248.5 L348.19202,249.5" fill="#452e6d" stroke="none"/> +<path d="M328.19202,248.5 L328.19202,247.5 L348.19202,247.5 L348.19202,248.5" fill="#452f6e" stroke="none"/> +<path d="M328.19202,247.5 L328.19202,246.5 L348.19202,246.5 L348.19202,247.5" fill="#45306f" stroke="none"/> +<path d="M328.19202,246.5 L328.19202,245.5 L348.19202,245.5 L348.19202,246.5" fill="#453170" stroke="none"/> +<path d="M328.19202,245.5 L328.19202,244.5 L348.19202,244.5 L348.19202,245.5" fill="#453271" stroke="none"/> +<path d="M328.19202,244.5 L328.19202,243.5 L348.19202,243.5 L348.19202,244.5" fill="#453371" stroke="none"/> +<path d="M328.19202,243.5 L328.19202,242.5 L348.19202,242.5 L348.19202,243.5" fill="#453472" stroke="none"/> +<path d="M328.19202,242.5 L328.19202,241.5 L348.19202,241.5 L348.19202,242.5" fill="#453573" stroke="none"/> +<path d="M328.19202,241.5 L328.19202,240.5 L348.19202,240.5 L348.19202,241.5" fill="#443674" stroke="none"/> +<path d="M328.19202,240.5 L328.19202,239.5 L348.19202,239.5 L348.19202,240.5" fill="#443775" stroke="none"/> +<path d="M328.19202,239.5 L328.19202,238.5 L348.19202,238.5 L348.19202,239.5" fill="#443876" stroke="none"/> +<path d="M328.19202,238.5 L328.19202,237.5 L348.19202,237.5 L348.19202,238.5" fill="#443976" stroke="none"/> +<path d="M328.19202,237.5 L328.19202,236.5 L348.19202,236.5 L348.19202,237.5" fill="#443a77" stroke="none"/> +<path d="M328.19202,236.5 L328.19202,235.5 L348.19202,235.5 L348.19202,236.5" fill="#433b78" stroke="none"/> +<path d="M328.19202,235.5 L328.19202,234.5 L348.19202,234.5 L348.19202,235.5" fill="#433c79" stroke="none"/> +<path d="M328.19202,234.5 L328.19202,233.5 L348.19202,233.5 L348.19202,234.5" fill="#433e7a" stroke="none"/> +<path d="M328.19202,233.5 L328.19202,232.5 L348.19202,232.5 L348.19202,233.5" fill="#433f7b" stroke="none"/> +<path d="M328.19202,232.5 L328.19202,231.5 L348.19202,231.5 L348.19202,232.5" fill="#42407c" stroke="none"/> +<path d="M328.19202,231.5 L328.19202,230.5 L348.19202,230.5 L348.19202,231.5" fill="#42417c" stroke="none"/> +<path d="M328.19202,230.5 L328.19202,229.5 L348.19202,229.5 L348.19202,230.5" fill="#42427d" stroke="none"/> +<path d="M328.19202,229.5 L328.19202,228.5 L348.19202,228.5 L348.19202,229.5" fill="#41437e" stroke="none"/> +<path d="M328.19202,228.5 L328.19202,227.5 L348.19202,227.5 L348.19202,228.5" fill="#41447f" stroke="none"/> +<path d="M328.19202,227.5 L328.19202,226.5 L348.19202,226.5 L348.19202,227.5" fill="#414580" stroke="none"/> +<path d="M328.19202,226.5 L328.19202,225.5 L348.19202,225.5 L348.19202,226.5" fill="#404681" stroke="none"/> +<path d="M328.19202,225.5 L328.19202,224.5 L348.19202,224.5 L348.19202,225.5" fill="#404781" stroke="none"/> +<path d="M328.19202,224.5 L328.19202,223.5 L348.19202,223.5 L348.19202,224.5" fill="#3f4882" stroke="none"/> +<path d="M328.19202,223.5 L328.19202,222.5 L348.19202,222.5 L348.19202,223.5" fill="#3f4983" stroke="none"/> +<path d="M328.19202,222.5 L328.19202,221.5 L348.19202,221.5 L348.19202,222.5" fill="#3f4a84" stroke="none"/> +<path d="M328.19202,221.5 L328.19202,220.5 L348.19202,220.5 L348.19202,221.5" fill="#3e4b85" stroke="none"/> +<path d="M328.19202,220.5 L328.19202,219.5 L348.19202,219.5 L348.19202,220.5" fill="#3e4c86" stroke="none"/> +<path d="M328.19202,219.5 L328.19202,218.5 L348.19202,218.5 L348.19202,219.5" fill="#3d4d87" stroke="none"/> +<path d="M328.19202,218.5 L328.19202,217.5 L348.19202,217.5 L348.19202,218.5" fill="#3d4e87" stroke="none"/> +<path d="M328.19202,217.5 L328.19202,216.5 L348.19202,216.5 L348.19202,217.5" fill="#3c4f88" stroke="none"/> +<path d="M328.19202,216.5 L328.19202,215.5 L348.19202,215.5 L348.19202,216.5" fill="#3c5089" stroke="none"/> +<path d="M328.19202,215.5 L328.19202,214.5 L348.19202,214.5 L348.19202,215.5" fill="#3b518a" stroke="none"/> +<path d="M328.19202,214.5 L328.19202,213.5 L348.19202,213.5 L348.19202,214.5" fill="#3b528a" stroke="none"/> +<path d="M328.19202,213.5 L328.19202,212.5 L348.19202,212.5 L348.19202,213.5" fill="#3b538a" stroke="none"/> +<path d="M328.19202,212.5 L328.19202,211.5 L348.19202,211.5 L348.19202,212.5" fill="#3b548a" stroke="none"/> +<path d="M328.19202,211.5 L328.19202,210.5 L348.19202,210.5 L348.19202,211.5" fill="#3a558a" stroke="none"/> +<path d="M328.19202,210.5 L328.19202,209.5 L348.19202,209.5 L348.19202,210.5" fill="#3a568a" stroke="none"/> +<path d="M328.19202,209.5 L328.19202,208.5 L348.19202,208.5 L348.19202,209.5" fill="#3a578b" stroke="none"/> +<path d="M328.19202,208.5 L328.19202,207.5 L348.19202,207.5 L348.19202,208.5" fill="#3a588b" stroke="none"/> +<path d="M328.19202,207.5 L328.19202,206.5 L348.19202,206.5 L348.19202,207.5" fill="#3a598b" stroke="none"/> +<path d="M328.19202,206.5 L328.19202,205.5 L348.19202,205.5 L348.19202,206.5" fill="#3a5a8b" stroke="none"/> +<path d="M328.19202,205.5 L328.19202,204.5 L348.19202,204.5 L348.19202,205.5" fill="#395b8b" stroke="none"/> +<path d="M328.19202,204.5 L328.19202,203.5 L348.19202,203.5 L348.19202,204.5" fill="#395c8b" stroke="none"/> +<path d="M328.19202,203.5 L328.19202,202.5 L348.19202,202.5 L348.19202,203.5" fill="#395d8b" stroke="none"/> +<path d="M328.19202,202.5 L328.19202,201.5 L348.19202,201.5 L348.19202,202.5" fill="#395e8b" stroke="none"/> +<path d="M328.19202,201.5 L328.19202,200.5 L348.19202,200.5 L348.19202,201.5" fill="#395f8b" stroke="none"/> +<path d="M328.19202,200.5 L328.19202,199.5 L348.19202,199.5 L348.19202,200.5" fill="#38608b" stroke="none"/> +<path d="M328.19202,199.5 L328.19202,198.5 L348.19202,198.5 L348.19202,199.5" fill="#38618b" stroke="none"/> +<path d="M328.19202,198.5 L328.19202,197.5 L348.19202,197.5 L348.19202,198.5" fill="#38628b" stroke="none"/> +<path d="M328.19202,197.5 L328.19202,196.5 L348.19202,196.5 L348.19202,197.5" fill="#38638b" stroke="none"/> +<path d="M328.19202,196.5 L328.19202,195.5 L348.19202,195.5 L348.19202,196.5" fill="#37648b" stroke="none"/> +<path d="M328.19202,195.5 L328.19202,194.5 L348.19202,194.5 L348.19202,195.5" fill="#37658b" stroke="none"/> +<path d="M328.19202,194.5 L328.19202,193.5 L348.19202,193.5 L348.19202,194.5" fill="#37658c" stroke="none"/> +<path d="M328.19202,193.5 L328.19202,192.5 L348.19202,192.5 L348.19202,193.5" fill="#37668c" stroke="none"/> +<path d="M328.19202,192.5 L328.19202,191.5 L348.19202,191.5 L348.19202,192.5" fill="#36678c" stroke="none"/> +<path d="M328.19202,191.5 L328.19202,190.5 L348.19202,190.5 L348.19202,191.5" fill="#36688c" stroke="none"/> +<path d="M328.19202,190.5 L328.19202,189.5 L348.19202,189.5 L348.19202,190.5" fill="#36698c" stroke="none"/> +<path d="M328.19202,189.5 L328.19202,188.5 L348.19202,188.5 L348.19202,189.5" fill="#366a8c" stroke="none"/> +<path d="M328.19202,188.5 L328.19202,187.5 L348.19202,187.5 L348.19202,188.5" fill="#356b8c" stroke="none"/> +<path d="M328.19202,187.5 L328.19202,186.5 L348.19202,186.5 L348.19202,187.5" fill="#356c8c" stroke="none"/> +<path d="M328.19202,186.5 L328.19202,185.5 L348.19202,185.5 L348.19202,186.5" fill="#356d8c" stroke="none"/> +<path d="M328.19202,185.5 L328.19202,184.5 L348.19202,184.5 L348.19202,185.5" fill="#346e8c" stroke="none"/> +<path d="M328.19202,184.5 L328.19202,183.5 L348.19202,183.5 L348.19202,184.5" fill="#346f8c" stroke="none"/> +<path d="M328.19202,183.5 L328.19202,182.5 L348.19202,182.5 L348.19202,183.5" fill="#34708c" stroke="none"/> +<path d="M328.19202,182.5 L328.19202,181.5 L348.19202,181.5 L348.19202,182.5" fill="#33718c" stroke="none"/> +<path d="M328.19202,181.5 L328.19202,180.5 L348.19202,180.5 L348.19202,181.5" fill="#33728c" stroke="none"/> +<path d="M328.19202,180.5 L328.19202,179.5 L348.19202,179.5 L348.19202,180.5" fill="#33738c" stroke="none"/> +<path d="M328.19202,179.5 L328.19202,178.5 L348.19202,178.5 L348.19202,179.5" fill="#32748c" stroke="none"/> +<path d="M328.19202,178.5 L328.19202,177.5 L348.19202,177.5 L348.19202,178.5" fill="#32758c" stroke="none"/> +<path d="M328.19202,177.5 L328.19202,176.5 L348.19202,176.5 L348.19202,177.5" fill="#31768c" stroke="none"/> +<path d="M328.19202,176.5 L328.19202,175.5 L348.19202,175.5 L348.19202,176.5" fill="#31778c" stroke="none"/> +<path d="M328.19202,175.5 L328.19202,174.5 L348.19202,174.5 L348.19202,175.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,174.5 L328.19202,173.5 L348.19202,173.5 L348.19202,174.5" fill="#30788c" stroke="none"/> +<path d="M328.19202,173.5 L328.19202,172.5 L348.19202,172.5 L348.19202,173.5" fill="#30798c" stroke="none"/> +<path d="M328.19202,172.5 L328.19202,171.5 L348.19202,171.5 L348.19202,172.5" fill="#2f7a8c" stroke="none"/> +<path d="M328.19202,171.5 L328.19202,170.5 L348.19202,170.5 L348.19202,171.5" fill="#2f7b8c" stroke="none"/> +<path d="M328.19202,170.5 L328.19202,169.5 L348.19202,169.5 L348.19202,170.5" fill="#2e7c8c" stroke="none"/> +<path d="M328.19202,169.5 L328.19202,168.5 L348.19202,168.5 L348.19202,169.5" fill="#2e7d8c" stroke="none"/> +<path d="M328.19202,168.5 L328.19202,167.5 L348.19202,167.5 L348.19202,168.5" fill="#2d7e8c" stroke="none"/> +<path d="M328.19202,167.5 L328.19202,166.5 L348.19202,166.5 L348.19202,167.5" fill="#2d7f8c" stroke="none"/> +<path d="M328.19202,166.5 L328.19202,165.5 L348.19202,165.5 L348.19202,166.5" fill="#2c808c" stroke="none"/> +<path d="M328.19202,165.5 L328.19202,164.5 L348.19202,164.5 L348.19202,165.5" fill="#2b818c" stroke="none"/> +<path d="M328.19202,164.5 L328.19202,163.5 L348.19202,163.5 L348.19202,164.5" fill="#2b828c" stroke="none"/> +<path d="M328.19202,163.5 L328.19202,162.5 L348.19202,162.5 L348.19202,163.5" fill="#2a838c" stroke="none"/> +<path d="M328.19202,162.5 L328.19202,161.5 L348.19202,161.5 L348.19202,162.5" fill="#2a848c" stroke="none"/> +<path d="M328.19202,161.5 L328.19202,160.5 L348.19202,160.5 L348.19202,161.5" fill="#29858c" stroke="none"/> +<path d="M328.19202,160.5 L328.19202,159.5 L348.19202,159.5 L348.19202,160.5" fill="#28868c" stroke="none"/> +<path d="M328.19202,159.5 L328.19202,158.5 L348.19202,158.5 L348.19202,159.5" fill="#28878c" stroke="none"/> +<path d="M328.19202,158.5 L328.19202,157.5 L348.19202,157.5 L348.19202,158.5" fill="#27888c" stroke="none"/> +<path d="M328.19202,157.5 L328.19202,156.5 L348.19202,156.5 L348.19202,157.5" fill="#26888c" stroke="none"/> +<path d="M328.19202,156.5 L328.19202,155.5 L348.19202,155.5 L348.19202,156.5" fill="#25898c" stroke="none"/> +<path d="M328.19202,155.5 L328.19202,154.5 L348.19202,154.5 L348.19202,155.5" fill="#248a8c" stroke="none"/> +<path d="M328.19202,154.5 L328.19202,153.5 L348.19202,153.5 L348.19202,154.5" fill="#248b8c" stroke="none"/> +<path d="M328.19202,153.5 L328.19202,152.5 L348.19202,152.5 L348.19202,153.5" fill="#238c8c" stroke="none"/> +<path d="M328.19202,152.5 L328.19202,151.5 L348.19202,151.5 L348.19202,152.5" fill="#228d8c" stroke="none"/> +<path d="M328.19202,151.5 L328.19202,150.5 L348.19202,150.5 L348.19202,151.5" fill="#218e8c" stroke="none"/> +<path d="M328.19202,150.5 L328.19202,149.5 L348.19202,149.5 L348.19202,150.5" fill="#208f8c" stroke="none"/> +<path d="M328.19202,149.5 L328.19202,148.5 L348.19202,148.5 L348.19202,149.5" fill="#21908c" stroke="none"/> +<path d="M328.19202,148.5 L328.19202,147.5 L348.19202,147.5 L348.19202,148.5" fill="#22918b" stroke="none"/> +<path d="M328.19202,147.5 L328.19202,146.5 L348.19202,146.5 L348.19202,147.5" fill="#23928b" stroke="none"/> +<path d="M328.19202,146.5 L328.19202,145.5 L348.19202,145.5 L348.19202,146.5" fill="#24938a" stroke="none"/> +<path d="M328.19202,145.5 L328.19202,144.5 L348.19202,144.5 L348.19202,145.5" fill="#25938a" stroke="none"/> +<path d="M328.19202,144.5 L328.19202,143.5 L348.19202,143.5 L348.19202,144.5" fill="#269489" stroke="none"/> +<path d="M328.19202,143.5 L328.19202,142.5 L348.19202,142.5 L348.19202,143.5" fill="#279589" stroke="none"/> +<path d="M328.19202,142.5 L328.19202,141.5 L348.19202,141.5 L348.19202,142.5" fill="#289689" stroke="none"/> +<path d="M328.19202,141.5 L328.19202,140.5 L348.19202,140.5 L348.19202,141.5" fill="#299788" stroke="none"/> +<path d="M328.19202,140.5 L328.19202,139.5 L348.19202,139.5 L348.19202,140.5" fill="#2a9888" stroke="none"/> +<path d="M328.19202,139.5 L328.19202,138.5 L348.19202,138.5 L348.19202,139.5" fill="#2b9987" stroke="none"/> +<path d="M328.19202,138.5 L328.19202,137.5 L348.19202,137.5 L348.19202,138.5" fill="#2c9a87" stroke="none"/> +<path d="M328.19202,137.5 L328.19202,136.5 L348.19202,136.5 L348.19202,137.5" fill="#2d9b86" stroke="none"/> +<path d="M328.19202,136.5 L328.19202,135.5 L348.19202,135.5 L348.19202,136.5" fill="#2e9b86" stroke="none"/> +<path d="M328.19202,135.5 L328.19202,134.5 L348.19202,134.5 L348.19202,135.5" fill="#2e9c85" stroke="none"/> +<path d="M328.19202,134.5 L328.19202,133.5 L348.19202,133.5 L348.19202,134.5" fill="#2f9d85" stroke="none"/> +<path d="M328.19202,133.5 L328.19202,132.5 L348.19202,132.5 L348.19202,133.5" fill="#309e84" stroke="none"/> +<path d="M328.19202,132.5 L328.19202,131.5 L348.19202,131.5 L348.19202,132.5" fill="#319f84" stroke="none"/> +<path d="M328.19202,131.5 L328.19202,130.5 L348.19202,130.5 L348.19202,131.5" fill="#32a083" stroke="none"/> +<path d="M328.19202,130.5 L328.19202,129.5 L348.19202,129.5 L348.19202,130.5" fill="#33a183" stroke="none"/> +<path d="M328.19202,129.5 L328.19202,128.5 L348.19202,128.5 L348.19202,129.5" fill="#34a282" stroke="none"/> +<path d="M328.19202,128.5 L328.19202,127.5 L348.19202,127.5 L348.19202,128.5" fill="#35a282" stroke="none"/> +<path d="M328.19202,127.5 L328.19202,126.5 L348.19202,126.5 L348.19202,127.5" fill="#36a381" stroke="none"/> +<path d="M328.19202,126.5 L328.19202,125.5 L348.19202,125.5 L348.19202,126.5" fill="#37a481" stroke="none"/> +<path d="M328.19202,125.5 L328.19202,124.5 L348.19202,124.5 L348.19202,125.5" fill="#38a580" stroke="none"/> +<path d="M328.19202,124.5 L328.19202,123.5 L348.19202,123.5 L348.19202,124.5" fill="#39a680" stroke="none"/> +<path d="M328.19202,123.5 L328.19202,122.5 L348.19202,122.5 L348.19202,123.5" fill="#39a77f" stroke="none"/> +<path d="M328.19202,122.5 L328.19202,121.5 L348.19202,121.5 L348.19202,122.5" fill="#3aa87e" stroke="none"/> +<path d="M328.19202,121.5 L328.19202,120.5 L348.19202,120.5 L348.19202,121.5" fill="#3ba97e" stroke="none"/> +<path d="M328.19202,120.5 L328.19202,119.5 L348.19202,119.5 L348.19202,120.5" fill="#3caa7d" stroke="none"/> +<path d="M328.19202,119.5 L328.19202,118.5 L348.19202,118.5 L348.19202,119.5" fill="#3daa7d" stroke="none"/> +<path d="M328.19202,118.5 L328.19202,117.5 L348.19202,117.5 L348.19202,118.5" fill="#3eab7c" stroke="none"/> +<path d="M328.19202,117.5 L328.19202,116.5 L348.19202,116.5 L348.19202,117.5" fill="#3fac7b" stroke="none"/> +<path d="M328.19202,116.5 L328.19202,115.5 L348.19202,115.5 L348.19202,116.5" fill="#40ad7b" stroke="none"/> +<path d="M328.19202,115.5 L328.19202,114.5 L348.19202,114.5 L348.19202,115.5" fill="#41ae7a" stroke="none"/> +<path d="M328.19202,114.5 L328.19202,113.5 L348.19202,113.5 L348.19202,114.5" fill="#41af79" stroke="none"/> +<path d="M328.19202,113.5 L328.19202,112.5 L348.19202,112.5 L348.19202,113.5" fill="#42b079" stroke="none"/> +<path d="M328.19202,112.5 L328.19202,111.5 L348.19202,111.5 L348.19202,112.5" fill="#43b178" stroke="none"/> +<path d="M328.19202,111.5 L328.19202,110.5 L348.19202,110.5 L348.19202,111.5" fill="#44b178" stroke="none"/> +<path d="M328.19202,110.5 L328.19202,109.5 L348.19202,109.5 L348.19202,110.5" fill="#45b277" stroke="none"/> +<path d="M328.19202,109.5 L328.19202,108.5 L348.19202,108.5 L348.19202,109.5" fill="#46b376" stroke="none"/> +<path d="M328.19202,108.5 L328.19202,107.5 L348.19202,107.5 L348.19202,108.5" fill="#47b475" stroke="none"/> +<path d="M328.19202,107.5 L328.19202,106.5 L348.19202,106.5 L348.19202,107.5" fill="#48b575" stroke="none"/> +<path d="M328.19202,106.5 L328.19202,105.5 L348.19202,105.5 L348.19202,106.5" fill="#49b674" stroke="none"/> +<path d="M328.19202,105.5 L328.19202,104.5 L348.19202,104.5 L348.19202,105.5" fill="#49b773" stroke="none"/> +<path d="M328.19202,104.5 L328.19202,103.5 L348.19202,103.5 L348.19202,104.5" fill="#4ab773" stroke="none"/> +<path d="M328.19202,103.5 L328.19202,102.5 L348.19202,102.5 L348.19202,103.5" fill="#4bb872" stroke="none"/> +<path d="M328.19202,102.5 L328.19202,101.5 L348.19202,101.5 L348.19202,102.5" fill="#4cb971" stroke="none"/> +<path d="M328.19202,101.5 L328.19202,100.5 L348.19202,100.5 L348.19202,101.5" fill="#4dba70" stroke="none"/> +<path d="M328.19202,100.5 L328.19202,99.5 L348.19202,99.5 L348.19202,100.5" fill="#4ebb6f" stroke="none"/> +<path d="M328.19202,99.5 L328.19202,98.5 L348.19202,98.5 L348.19202,99.5" fill="#4fbc6f" stroke="none"/> +<path d="M328.19202,98.5 L328.19202,97.5 L348.19202,97.5 L348.19202,98.5" fill="#50bd6e" stroke="none"/> +<path d="M328.19202,97.5 L328.19202,96.5 L348.19202,96.5 L348.19202,97.5" fill="#50be6d" stroke="none"/> +<path d="M328.19202,96.5 L328.19202,95.5 L348.19202,95.5 L348.19202,96.5" fill="#51be6c" stroke="none"/> +<path d="M328.19202,95.5 L328.19202,94.5 L348.19202,94.5 L348.19202,95.5" fill="#52bf6b" stroke="none"/> +<path d="M328.19202,94.5 L328.19202,93.5 L348.19202,93.5 L348.19202,94.5" fill="#53c06b" stroke="none"/> +<path d="M328.19202,93.5 L328.19202,92.5 L348.19202,92.5 L348.19202,93.5" fill="#54c16a" stroke="none"/> +<path d="M328.19202,92.5 L328.19202,91.5 L348.19202,91.5 L348.19202,92.5" fill="#55c269" stroke="none"/> +<path d="M328.19202,91.5 L328.19202,90.5 L348.19202,90.5 L348.19202,91.5" fill="#56c368" stroke="none"/> +<path d="M328.19202,90.5 L328.19202,89.5 L348.19202,89.5 L348.19202,90.5" fill="#57c467" stroke="none"/> +<path d="M328.19202,89.5 L328.19202,88.5 L348.19202,88.5 L348.19202,89.5" fill="#57c566" stroke="none"/> +<path d="M328.19202,88.5 L328.19202,87.5 L348.19202,87.5 L348.19202,88.5" fill="#58c565" stroke="none"/> +<path d="M328.19202,87.5 L328.19202,86.5 L348.19202,86.5 L348.19202,87.5" fill="#59c664" stroke="none"/> +<path d="M328.19202,86.5 L328.19202,85.5 L348.19202,85.5 L348.19202,86.5" fill="#5ac763" stroke="none"/> +<path d="M328.19202,85.5 L328.19202,84.5 L348.19202,84.5 L348.19202,85.5" fill="#5bc862" stroke="none"/> +<path d="M328.19202,84.5 L328.19202,83.5 L348.19202,83.5 L348.19202,84.5" fill="#5fc962" stroke="none"/> +<path d="M328.19202,83.5 L328.19202,82.5 L348.19202,82.5 L348.19202,83.5" fill="#62c961" stroke="none"/> +<path d="M328.19202,82.5 L328.19202,81.5 L348.19202,81.5 L348.19202,82.5" fill="#65ca61" stroke="none"/> +<path d="M328.19202,81.5 L328.19202,80.5 L348.19202,80.5 L348.19202,81.5" fill="#69ca60" stroke="none"/> +<path d="M328.19202,80.5 L328.19202,79.5 L348.19202,79.5 L348.19202,80.5" fill="#6ccb60" stroke="none"/> +<path d="M328.19202,79.5 L328.19202,78.5 L348.19202,78.5 L348.19202,79.5" fill="#6fcb5f" stroke="none"/> +<path d="M328.19202,78.5 L328.19202,77.5 L348.19202,77.5 L348.19202,78.5" fill="#72cc5f" stroke="none"/> +<path d="M328.19202,77.5 L328.19202,76.5 L348.19202,76.5 L348.19202,77.5" fill="#75cc5e" stroke="none"/> +<path d="M328.19202,76.5 L328.19202,75.5 L348.19202,75.5 L348.19202,76.5" fill="#78cd5e" stroke="none"/> +<path d="M328.19202,75.5 L328.19202,74.5 L348.19202,74.5 L348.19202,75.5" fill="#7bcd5d" stroke="none"/> +<path d="M328.19202,74.5 L328.19202,73.5 L348.19202,73.5 L348.19202,74.5" fill="#7ece5d" stroke="none"/> +<path d="M328.19202,73.5 L328.19202,72.5 L348.19202,72.5 L348.19202,73.5" fill="#80ce5c" stroke="none"/> +<path d="M328.19202,72.5 L328.19202,71.5 L348.19202,71.5 L348.19202,72.5" fill="#83cf5c" stroke="none"/> +<path d="M328.19202,71.5 L328.19202,70.5 L348.19202,70.5 L348.19202,71.5" fill="#86cf5b" stroke="none"/> +<path d="M328.19202,70.5 L328.19202,69.5 L348.19202,69.5 L348.19202,70.5" fill="#89d05b" stroke="none"/> +<path d="M328.19202,69.5 L328.19202,68.5 L348.19202,68.5 L348.19202,69.5" fill="#8bd05a" stroke="none"/> +<path d="M328.19202,68.5 L328.19202,67.5 L348.19202,67.5 L348.19202,68.5" fill="#8ed159" stroke="none"/> +<path d="M328.19202,67.5 L328.19202,66.5 L348.19202,66.5 L348.19202,67.5" fill="#91d159" stroke="none"/> +<path d="M328.19202,66.5 L328.19202,65.5 L348.19202,65.5 L348.19202,66.5" fill="#93d258" stroke="none"/> +<path d="M328.19202,65.5 L328.19202,64.5 L348.19202,64.5 L348.19202,65.5" fill="#96d258" stroke="none"/> +<path d="M328.19202,64.5 L328.19202,63.5 L348.19202,63.5 L348.19202,64.5" fill="#98d357" stroke="none"/> +<path d="M328.19202,63.5 L328.19202,62.5 L348.19202,62.5 L348.19202,63.5" fill="#9bd356" stroke="none"/> +<path d="M328.19202,62.5 L328.19202,61.5 L348.19202,61.5 L348.19202,62.5" fill="#9dd456" stroke="none"/> +<path d="M328.19202,61.5 L328.19202,60.5 L348.19202,60.5 L348.19202,61.5" fill="#a0d455" stroke="none"/> +<path d="M328.19202,60.5 L328.19202,59.5 L348.19202,59.5 L348.19202,60.5" fill="#a2d554" stroke="none"/> +<path d="M328.19202,59.5 L328.19202,58.5 L348.19202,58.5 L348.19202,59.5" fill="#a5d554" stroke="none"/> +<path d="M328.19202,58.5 L328.19202,57.5 L348.19202,57.5 L348.19202,58.5" fill="#a7d653" stroke="none"/> +<path d="M328.19202,57.5 L328.19202,56.5 L348.19202,56.5 L348.19202,57.5" fill="#aad652" stroke="none"/> +<path d="M328.19202,56.5 L328.19202,55.5 L348.19202,55.5 L348.19202,56.5" fill="#acd752" stroke="none"/> +<path d="M328.19202,55.5 L328.19202,54.5 L348.19202,54.5 L348.19202,55.5" fill="#afd751" stroke="none"/> +<path d="M328.19202,54.5 L328.19202,53.5 L348.19202,53.5 L348.19202,54.5" fill="#b1d850" stroke="none"/> +<path d="M328.19202,53.5 L328.19202,52.5 L348.19202,52.5 L348.19202,53.5" fill="#b3d84f" stroke="none"/> +<path d="M328.19202,52.5 L328.19202,51.5 L348.19202,51.5 L348.19202,52.5" fill="#b6d94f" stroke="none"/> +<path d="M328.19202,51.5 L328.19202,50.5 L348.19202,50.5 L348.19202,51.5" fill="#b8d94e" stroke="none"/> +<path d="M328.19202,50.5 L328.19202,49.5 L348.19202,49.5 L348.19202,50.5" fill="#bada4d" stroke="none"/> +<path d="M328.19202,49.5 L328.19202,48.5 L348.19202,48.5 L348.19202,49.5" fill="#bdda4c" stroke="none"/> +<path d="M328.19202,48.5 L328.19202,47.5 L348.19202,47.5 L348.19202,48.5" fill="#bfdb4b" stroke="none"/> +<path d="M328.19202,47.5 L328.19202,46.5 L348.19202,46.5 L348.19202,47.5" fill="#c1db4a" stroke="none"/> +<path d="M328.19202,46.5 L328.19202,45.5 L348.19202,45.5 L348.19202,46.5" fill="#c4dc49" stroke="none"/> +<path d="M328.19202,45.5 L328.19202,44.5 L348.19202,44.5 L348.19202,45.5" fill="#c6dc48" stroke="none"/> +<path d="M328.19202,44.5 L328.19202,43.5 L348.19202,43.5 L348.19202,44.5" fill="#c8dd47" stroke="none"/> +<path d="M328.19202,43.5 L328.19202,42.5 L348.19202,42.5 L348.19202,43.5" fill="#cadd46" stroke="none"/> +<path d="M328.19202,42.5 L328.19202,41.5 L348.19202,41.5 L348.19202,42.5" fill="#cddd45" stroke="none"/> +<path d="M328.19202,41.5 L328.19202,40.5 L348.19202,40.5 L348.19202,41.5" fill="#cfde44" stroke="none"/> +<path d="M328.19202,40.5 L328.19202,39.5 L348.19202,39.5 L348.19202,40.5" fill="#d1de43" stroke="none"/> +<path d="M328.19202,39.5 L328.19202,38.5 L348.19202,38.5 L348.19202,39.5" fill="#d3df42" stroke="none"/> +<path d="M328.19202,38.5 L328.19202,37.5 L348.19202,37.5 L348.19202,38.5" fill="#d6df41" stroke="none"/> +<path d="M328.19202,37.5 L328.19202,36.5 L348.19202,36.5 L348.19202,37.5" fill="#d8e040" stroke="none"/> +<path d="M328.19202,36.5 L328.19202,35.5 L348.19202,35.5 L348.19202,36.5" fill="#dae03f" stroke="none"/> +<path d="M328.19202,35.5 L328.19202,34.5 L348.19202,34.5 L348.19202,35.5" fill="#dce13e" stroke="none"/> +<path d="M328.19202,34.5 L328.19202,33.5 L348.19202,33.5 L348.19202,34.5" fill="#dfe13c" stroke="none"/> +<path d="M328.19202,33.5 L328.19202,32.5 L348.19202,32.5 L348.19202,33.5" fill="#e1e13b" stroke="none"/> +<path d="M328.19202,32.5 L328.19202,31.5 L348.19202,31.5 L348.19202,32.5" fill="#e3e23a" stroke="none"/> +<path d="M328.19202,31.5 L328.19202,30.5 L348.19202,30.5 L348.19202,31.5" fill="#e5e238" stroke="none"/> +<path d="M328.19202,30.5 L328.19202,29.5 L348.19202,29.5 L348.19202,30.5" fill="#e7e337" stroke="none"/> +<path d="M328.19202,29.5 L328.19202,28.5 L348.19202,28.5 L348.19202,29.5" fill="#eae335" stroke="none"/> +<path d="M328.19202,28.5 L328.19202,27.5 L348.19202,27.5 L348.19202,28.5" fill="#ece434" stroke="none"/> +<path d="M328.19202,27.5 L328.19202,26.5 L348.19202,26.5 L348.19202,27.5" fill="#eee432" stroke="none"/> +<path d="M328.19202,26.5 L328.19202,25.5 L348.19202,25.5 L348.19202,26.5" fill="#f0e530" stroke="none"/> +<path d="M328.19202,25.5 L328.19202,24.5 L348.19202,24.5 L348.19202,25.5" fill="#f2e52f" stroke="none"/> +<path d="M328.19202,24.5 L328.19202,23.5 L348.19202,23.5 L348.19202,24.5" fill="#f4e52d" stroke="none"/> +<path d="M328.19202,23.5 L328.19202,22.5 L348.19202,22.5 L348.19202,23.5" fill="#f7e62b" stroke="none"/> +<path d="M328.19202,22.5 L328.19202,21.5 L348.19202,21.5 L348.19202,22.5" fill="#f9e629" stroke="none"/> +<path d="M328.19202,21.5 L328.19202,20.5 L348.19202,20.5 L348.19202,21.5" fill="#fbe726" stroke="none"/> +<path d="M328.19202,20.5 L328.19202,20 L348.19202,20 L348.19202,20.5" fill="#fde724" stroke="none"/> +<path d="M328.19202,20 L348.19202,20 L348.19202,280 L328.19202,280 z" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M348.19202,280 L352.19202,280" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 280)"/> +<path d="M348.19202,215 L352.19202,215" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.32,3.216 L10.656,3.216 L10.656,2.3400002 L12.9,0.07200003 Q13.548,-0.576,13.992,-1.0799999 Q14.436,-1.5840001,14.664,-2.0700002 Q14.892,-2.5559998,14.892,-3.132 Q14.892,-3.8400002,14.472,-4.206 Q14.052,-4.572,13.38,-4.572 Q12.7560005,-4.572,12.282,-4.356 Q11.808,-4.14,11.316,-3.756 L10.752,-4.464 Q11.088,-4.752,11.49,-4.98 Q11.892,-5.2079997,12.366,-5.3399997 Q12.84,-5.4719996,13.38,-5.4719996 Q14.184,-5.4719996,14.76,-5.1959996 Q15.336,-4.9199996,15.653999,-4.41 Q15.972,-3.9,15.972,-3.192 Q15.972,-2.52,15.696,-1.9320002 Q15.42,-1.3439999,14.9279995,-0.7739999 Q14.436,-0.204,13.776,0.444 L11.988,2.2080002 L11.988,2.256 L16.32,2.256 L16.32,3.216 z M20.244,-2.04 Q21.12,-2.04,21.768,-1.7399998 Q22.416,-1.44,22.77,-0.88199997 Q23.124,-0.32399988,23.124,0.48000002 Q23.124,1.368,22.74,2.0100002 Q22.356,2.652,21.642,2.994 Q20.928,3.336,19.92,3.336 Q19.26,3.336,18.678,3.216 Q18.096,3.0960002,17.7,2.868 L17.7,1.8720001 Q18.132,2.1360002,18.75,2.286 Q19.368,2.436,19.932,2.436 Q20.568,2.436,21.042,2.2380002 Q21.516,2.04,21.78,1.626 Q22.044,1.2120001,22.044,0.58800006 Q22.044,-0.25199986,21.528,-0.7019999 Q21.012001,-1.152,19.896,-1.152 Q19.56,-1.152,19.128,-1.092 Q18.696001,-1.0320001,18.432001,-0.9720001 L17.904,-1.3080001 L18.228,-5.3519998 L22.524,-5.3519998 L22.524,-4.392 L19.128,-4.392 L18.924,-1.908 Q19.128,-1.9439998,19.476,-1.9920001 Q19.824001,-2.04,20.244,-2.04 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 215)"/> +<path d="M348.19202,150 L352.19202,150" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M13.38,-2.04 Q14.2560005,-2.04,14.903999,-1.7399998 Q15.552,-1.44,15.906,-0.88199997 Q16.26,-0.32399988,16.26,0.48000002 Q16.26,1.368,15.875999,2.0100002 Q15.492001,2.652,14.778,2.994 Q14.064,3.336,13.056,3.336 Q12.396,3.336,11.814,3.216 Q11.232,3.0960002,10.8359995,2.868 L10.8359995,1.8720001 Q11.268,2.1360002,11.886,2.286 Q12.504,2.436,13.068,2.436 Q13.704,2.436,14.1779995,2.2380002 Q14.652,2.04,14.916,1.626 Q15.18,1.2120001,15.18,0.58800006 Q15.18,-0.25199986,14.664,-0.7019999 Q14.148,-1.152,13.032,-1.152 Q12.696,-1.152,12.264,-1.092 Q11.832,-1.0320001,11.568,-0.9720001 L11.04,-1.3080001 L11.364,-5.3519998 L15.66,-5.3519998 L15.66,-4.392 L12.264,-4.392 L12.059999,-1.908 Q12.264,-1.9439998,12.6119995,-1.9920001 Q12.96,-2.04,13.38,-2.04 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 150)"/> +<path d="M348.19202,85 L352.19202,85" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M6.276,-1.0799999 Q6.276,-0.036000013,6.12,0.78 Q5.964,1.5960001,5.622,2.1660001 Q5.28,2.736,4.734,3.036 Q4.188,3.336,3.42,3.336 Q2.46,3.336,1.83,2.808 Q1.2,2.2800002,0.894,1.2900001 Q0.588,0.29999995,0.588,-1.0799999 Q0.588,-2.4720001,0.87,-3.4559999 Q1.152,-4.44,1.776,-4.9620004 Q2.4,-5.4839997,3.42,-5.4839997 Q4.38,-5.4839997,5.0160003,-4.9620004 Q5.652,-4.44,5.964,-3.4559999 Q6.276,-2.4720001,6.276,-1.0799999 z M1.644,-1.0799999 Q1.644,0.095999956,1.818,0.87600017 Q1.992,1.656,2.382,2.046 Q2.772,2.436,3.42,2.436 Q4.068,2.436,4.458,2.052 Q4.848,1.6680001,5.028,0.88199997 Q5.208,0.095999956,5.208,-1.0799999 Q5.208,-2.256,5.028,-3.0300002 Q4.848,-3.804,4.458,-4.194 Q4.068,-4.584,3.42,-4.584 Q2.772,-4.584,2.382,-4.194 Q1.992,-3.804,1.818,-3.0300002 Q1.644,-2.256,1.644,-1.0799999 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M11.712,3.216 L15.228001,-4.392 L10.608,-4.392 L10.608,-5.3519998 L16.355999,-5.3519998 L16.355999,-4.536 L12.875999,3.216 L11.712,3.216 z M20.244,-2.04 Q21.12,-2.04,21.768,-1.7399998 Q22.416,-1.44,22.77,-0.88199997 Q23.124,-0.32399988,23.124,0.48000002 Q23.124,1.368,22.74,2.0100002 Q22.356,2.652,21.642,2.994 Q20.928,3.336,19.92,3.336 Q19.26,3.336,18.678,3.216 Q18.096,3.0960002,17.7,2.868 L17.7,1.8720001 Q18.132,2.1360002,18.75,2.286 Q19.368,2.436,19.932,2.436 Q20.568,2.436,21.042,2.2380002 Q21.516,2.04,21.78,1.626 Q22.044,1.2120001,22.044,0.58800006 Q22.044,-0.25199986,21.528,-0.7019999 Q21.012001,-1.152,19.896,-1.152 Q19.56,-1.152,19.128,-1.092 Q18.696001,-1.0320001,18.432001,-0.9720001 L17.904,-1.3080001 L18.228,-5.3519998 L22.524,-5.3519998 L22.524,-4.392 L19.128,-4.392 L18.924,-1.908 Q19.128,-1.9439998,19.476,-1.9920001 Q19.824001,-2.04,20.244,-2.04 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 85)"/> +<path d="M348.19202,20 L352.19202,20" fill="none" stroke="#000000" stroke-width="1"/> +<path d="M4.26,3.216 L3.228,3.216 L3.228,-2.7719998 Q3.228,-3.12,3.234,-3.3600001 Q3.24,-3.6,3.252,-3.81 Q3.264,-4.02,3.276,-4.248 Q3.084,-4.0559998,2.928,-3.9239998 Q2.772,-3.7919998,2.532,-3.5879998 L1.62,-2.8439999 L1.068,-3.552 L3.384,-5.3519998 L4.26,-5.3519998 L4.26,3.216 z M7.7279997,2.568 Q7.7279997,2.124,7.944,1.9440001 Q8.16,1.764,8.46,1.764 Q8.771999,1.764,8.9939995,1.9440001 Q9.216,2.124,9.216,2.568 Q9.216,3,8.9939995,3.1920002 Q8.771999,3.384,8.46,3.384 Q8.16,3.384,7.944,3.1920002 Q7.7279997,3,7.7279997,2.568 z M16.355999,-1.0799999 Q16.355999,-0.036000013,16.2,0.78 Q16.044,1.5960001,15.702,2.1660001 Q15.360001,2.736,14.814,3.036 Q14.268,3.336,13.5,3.336 Q12.54,3.336,11.91,2.808 Q11.28,2.2800002,10.974,1.2900001 Q10.668,0.29999995,10.668,-1.0799999 Q10.668,-2.4720001,10.95,-3.4559999 Q11.232,-4.44,11.856,-4.9620004 Q12.48,-5.4839997,13.5,-5.4839997 Q14.46,-5.4839997,15.096001,-4.9620004 Q15.732,-4.44,16.044,-3.4559999 Q16.355999,-2.4720001,16.355999,-1.0799999 z M11.724,-1.0799999 Q11.724,0.095999956,11.898,0.87600017 Q12.072,1.656,12.462,2.046 Q12.852,2.436,13.5,2.436 Q14.148,2.436,14.538,2.052 Q14.9279995,1.6680001,15.108,0.88199997 Q15.288,0.095999956,15.288,-1.0799999 Q15.288,-2.256,15.108,-3.0300002 Q14.9279995,-3.804,14.538,-4.194 Q14.148,-4.584,13.5,-4.584 Q12.852,-4.584,12.462,-4.194 Q12.072,-3.804,11.898,-3.0300002 Q11.724,-2.256,11.724,-1.0799999 z M23.220001,-1.0799999 Q23.220001,-0.036000013,23.064,0.78 Q22.908,1.5960001,22.566,2.1660001 Q22.224,2.736,21.678001,3.036 Q21.132,3.336,20.364,3.336 Q19.404,3.336,18.774,2.808 Q18.144001,2.2800002,17.838,1.2900001 Q17.532,0.29999995,17.532,-1.0799999 Q17.532,-2.4720001,17.814001,-3.4559999 Q18.096,-4.44,18.720001,-4.9620004 Q19.344,-5.4839997,20.364,-5.4839997 Q21.324001,-5.4839997,21.960001,-4.9620004 Q22.596,-4.44,22.908,-3.4559999 Q23.220001,-2.4720001,23.220001,-1.0799999 z M18.588001,-1.0799999 Q18.588001,0.095999956,18.762001,0.87600017 Q18.936,1.656,19.326,2.046 Q19.716,2.436,20.364,2.436 Q21.012001,2.436,21.402,2.052 Q21.792,1.6680001,21.972,0.88199997 Q22.152,0.095999956,22.152,-1.0799999 Q22.152,-2.256,21.972,-3.0300002 Q21.792,-3.804,21.402,-4.194 Q21.012001,-4.584,20.364,-4.584 Q19.716,-4.584,19.326,-4.194 Q18.936,-3.804,18.762001,-3.0300002 Q18.588001,-2.256,18.588001,-1.0799999 z" fill="#000000" stroke="none" transform="matrix(1 0 0 1 356.19202 20)"/> +</svg> \ No newline at end of file diff --git a/tests/src/tests.rs b/tests/src/tests.rs index d8ab900..04aa504 100644 --- a/tests/src/tests.rs +++ b/tests/src/tests.rs @@ -43,17 +43,33 @@ fn line2(x: &[f64], y: &[f64]) -> des::series::Line { des::series::Line::new(x.into(), y.into()) } -/// Get a predictable random number generator -fn rng(seed: Option<u64>) -> impl rand::Rng { - let seed = seed.unwrap_or(1234567890987654321); - rand_chacha::ChaCha8Rng::seed_from_u64(seed) +/// Seed for NotRandom generator +struct RngSeed(u64); + +impl Default for RngSeed { + fn default() -> Self { + RngSeed(1234567890987654321) + } } -fn make_col<D>(n: usize, distr: D, rng: &mut impl rand::Rng) -> Vec<f64> -where - D: rand_distr::Distribution<f64>, -{ - (0..n).map(|_| distr.sample(rng)).collect() +/// Predictable random number generator +struct NotRandom { + rng: rand_chacha::ChaCha8Rng, +} + +impl NotRandom { + fn new(seed: RngSeed) -> Self { + NotRandom { + rng: rand_chacha::ChaCha8Rng::seed_from_u64(seed.0), + } + } + + fn make_col<D>(&mut self, n: usize, distr: D) -> Vec<f64> + where + D: rand_distr::Distribution<f64>, + { + (0..n).map(|_| distr.sample(&mut self.rng)).collect() + } } mod axes; diff --git a/tests/src/tests/colorbar.rs b/tests/src/tests/colorbar.rs index 6782e54..9c3dc89 100644 --- a/tests/src/tests/colorbar.rs +++ b/tests/src/tests/colorbar.rs @@ -1,33 +1,38 @@ -use plotive::des::cmap; -use plotive::{des, style}; +use plotive::des::{self, ColorBar, cmap, colorbar}; +use plotive::style; use rand_distr::Uniform; use crate::tests::fig_small; use crate::{TestHarness, assert_fig_eq_ref}; fn columns() -> (Vec<f64>, Vec<f64>, Vec<f64>) { - let mut rng = super::rng(None); + use super::{NotRandom, RngSeed}; + + let mut rng = NotRandom::new(RngSeed::default()); let distr = Uniform::new(0.0, 1.0).unwrap(); - let x = super::make_col(15, distr, &mut rng); - let y = super::make_col(15, distr, &mut rng); - let col = super::make_col(15, distr, &mut rng); + let x = rng.make_col(15, distr); + let y = rng.make_col(15, distr); + let col = rng.make_col(15, distr); (x, y, col) } +fn scatter(x: Vec<f64>, y: Vec<f64>) -> des::series::Scatter { + des::series::Scatter::new(des::data_inline(x), des::data_inline(y)).with_marker( + style::series::Marker::default() + .with_fill_opacity(0.7) + .with_stroke_width(2.0), + ) +} + #[test] fn colorbar_default() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data(des::data_inline(col), cmap::viridis()) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), - ) .into(), ]) .with_colorbar(Default::default()); @@ -36,18 +41,53 @@ fn colorbar_default() { assert_fig_eq_ref!(&fig, "colorbar/default"); } +#[test] +fn colorbar_locator() { + let (x, y, col) = columns(); + let ticks = vec![0.0, 0.25, 0.5, 0.75, 1.0]; + + let plot = des::Plot::new(vec![ + scatter(x, y) + .with_color_data( + des::data_inline(col), + cmap::viridis().force_data_range((0.0, 1.0)), + ) + .into(), + ]) + .with_colorbar(ColorBar::default().with_ticks_locator(ticks.into())); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/locator"); +} + +#[test] +fn colorbar_cmap_locator() { + let (x, y, col) = columns(); + let ticks = vec![0.0, 0.25, 0.5, 0.75, 1.0]; + + let plot = des::Plot::new(vec![ + scatter(x, y) + .with_color_data( + des::data_inline(col), + cmap::viridis() + .force_data_range((0.0, 1.0)) + .force_ticks_locator(ticks.into()), + ) + .into(), + ]) + .with_colorbar(ColorBar::default()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/locator"); +} + #[test] fn colorbar_default_with_axes() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data(des::data_inline(col), cmap::viridis()) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), - ) .into(), ]) .with_x_axis( @@ -67,26 +107,39 @@ fn colorbar_default_with_axes() { } #[test] -fn colorbar_forced_scale() { +fn colorbar_auto_range() { + let (x, y, _) = columns(); + let col = vec![ + -1.0, -0.5, 0.0, 0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, + ]; + + let plot = des::Plot::new(vec![ + scatter(x, y) + .with_color_data(des::data_inline(col), cmap::viridis()) + .into(), + ]) + .with_colorbar(Default::default()); + let fig = fig_small(plot); + + assert_fig_eq_ref!(&fig, "colorbar/auto-range"); +} + +#[test] +fn colorbar_forced_range() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data( des::data_inline(col), - cmap::viridis().with_data_range((0.0, 2.0)), - ) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), + cmap::viridis().force_data_range((0.0, 2.0)), ) .into(), ]) .with_colorbar(Default::default()); let fig = fig_small(plot); - assert_fig_eq_ref!(&fig, "colorbar/forced-scale"); + assert_fig_eq_ref!(&fig, "colorbar/forced-range"); } #[test] @@ -94,16 +147,11 @@ fn colorbar_left() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data(des::data_inline(col), cmap::viridis()) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), - ) .into(), ]) - .with_colorbar(des::ColorBarPos::Left.into()); + .with_colorbar(colorbar::Pos::Left.into()); let fig = fig_small(plot); assert_fig_eq_ref!(&fig, "colorbar/left"); @@ -114,16 +162,11 @@ fn colorbar_top() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data(des::data_inline(col), cmap::viridis()) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), - ) .into(), ]) - .with_colorbar(des::ColorBarPos::Top.into()); + .with_colorbar(colorbar::Pos::Top.into()); let fig = fig_small(plot); assert_fig_eq_ref!(&fig, "colorbar/top"); @@ -134,16 +177,11 @@ fn colorbar_bottom() { let (x, y, col) = columns(); let plot = des::Plot::new(vec![ - des::series::Scatter::new(des::data_inline(x), des::data_inline(y)) + scatter(x, y) .with_color_data(des::data_inline(col), cmap::viridis()) - .with_marker( - style::series::Marker::default() - .with_fill_opacity(0.7) - .with_stroke_width(2.0), - ) .into(), ]) - .with_colorbar(des::ColorBarPos::Bottom.into()); + .with_colorbar(colorbar::Pos::Bottom.into()); let fig = fig_small(plot); assert_fig_eq_ref!(&fig, "colorbar/bottom");