1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-08-21 07:51:49 +02:00
This commit is contained in:
Pomax
2020-09-07 13:10:20 -07:00
parent 42b9818441
commit ebe69a732a
24 changed files with 1288 additions and 713 deletions

View File

@@ -11,6 +11,9 @@ setup() {
{x:560,y:170}
];
setMovable(points);
if (this.parameters.showCurves) {
addSlider(`highlight`, `highlight`, 1, 4, 1, 1);
}
}
draw() {
@@ -26,13 +29,19 @@ draw() {
line(p.x, p.y, n.x, n.y);
}
setColor(`black`);
this.drawSplineData();
points.forEach((p,i) => {
circle(p.x, p.y, 3)
if (this.parameters.showCurves) {
if (this.highlight - 1 <= i && i <= this.highlight + 2) {
setColor(`red`);
circle(p.x, p.y, 5);
}
}
setColor(`black`);
circle(p.x, p.y, 3);
text(`${i+1}`, p.x+5, p.y+5);
});
this.drawSplineData();
}
drawSplineData() {
@@ -41,15 +50,19 @@ drawSplineData() {
if (this.parameters.showCurves) {
for(let i=0; i<points.length-3; i++) {
let c = new Bezier(this, points.slice(i,i+4));
c.drawCurve(randomColor());
const c = new Bezier(this, points.slice(i,i+4));
const highlight = this.highlight === i+1;
if (highlight) c.drawSkeleton();
setWidth(highlight ? 3 : 1);
c.drawCurve(randomColor(highlight? 1 : 0.4));
}
setWidth(1);
}
let spline = new BSpline(this, points);
noFill();
setStroke(this.parameters.showCurves ? `#00000040` : `black`);
setStroke(this.parameters.showCurves ? `#000000CC` : `black`);
start();
spline.getLUT((points.length - 3) * 20).forEach(p => vertex(p.x, p.y));
end();
@@ -62,6 +75,9 @@ onMouseDown() {
y: this.cursor.y
});
resetMovable(points);
if (this.parameters.showCurves) {
updateSlider(`highlight`, 1, points.length-3, 1, 1);
}
redraw();
}
}

View File

@@ -2,7 +2,7 @@
No discussion on Bézier curves is complete without also giving mention of that other beast in the curve design space: B-Splines. Easily confused to mean Bézier splines, that's not actually what they are; they are "basis function" splines, which makes a lot of difference, and we'll be looking at those differences in this section. We're not going to dive as deep into B-Splines as we have for Bézier curves (that would be an entire primer on its own) but we'll be looking at how B-Splines work, what kind of maths is involved in computing them, and how to draw them based on a number of parameters that you can pick for individual B-Splines.
First off: B-Splines are [piecewise polynomial interpolation curves](https://en.wikipedia.org/wiki/Piecewise), where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.
First off: B-Splines are [piecewise](https://en.wikipedia.org/wiki/Piecewise), [polynomial interpolation curves](https://en.wikipedia.org/wiki/Spline_(mathematics)), where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.
What do they look like? They look like this! Tap on the graphic to add more points, and move points around to see how they map to the spline curve drawn.
@@ -15,9 +15,11 @@ Consider the difference to be this:
- for Bézier curves, the curve is defined as an interpolation of points, but:
- for B-Splines, the curve is defined as an interpolation of *curves*.
In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points defined one curve:
In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points define one curve:
<graphics-element title="The components of a B-Spline " width="600" height="300" src="./basic.js" data-show-curves="true"></graphics-element>
<graphics-element title="The components of a B-Spline " width="600" height="300" src="./basic.js" data-show-curves="true">
<!-- basis curve highlighter goes here -->
</graphics-element>
In order to make this interpolation of curves work, the maths is necessarily more complex than the maths for Bézier curves, so let's have a look at how things work.
@@ -69,7 +71,9 @@ This is another recursive function, with *k* values decreasing from the curve or
\alpha_{i,k} = \frac{t - knots[i]}{knots[i+1+n-k] - knots[i]}
\]
That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers and once we have our alpha value, computing (1-alpha) is literally just "computing one minus alpha". Computing this d() function is thus simply a matter of "computing simple arithmetics but with recursion", which might be computationally expensive because we're doing "a lot of" steps, but is also computationally cheap because each step only involves very simple maths. Of course as before the recursion has to stop:
That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers. And, once we have our alpha value, we also have `(1-alpha)` because it's a trivial subtraction. Computing the `d()` function is thus mostly a matter of computing pretty simple arithmetical statements, with some caching of results so we can refer to them as we recurve. While the recursion might see computationally expensive, the total algorithm is cheap, as each step only involves very simple maths.
Of course, the recursion does need a stop condition:
\[
d^k_0(t) = 0, \ d^0_i(t) = N_{i,1}(t) =
@@ -79,46 +83,69 @@ That looks complicated, but it's not. Computing alpha is just a fraction involvi
\end{matrix}\right.
\]
So, we see two stopping conditions: either `i` becomes 0, in which case d() is zero, or `k` becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.
So, we actually see two stopping conditions: either `i` becomes 0, in which case `d()` is zero, or `k` becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.
Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily: we just need to compute a triangle of interconnected values. For instance, d() for i=3, k=3 yields the following triangle:
Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily using the same kind of linear interpolation we saw in de Casteljau's algorithm. For instance, if we write out `d()` for `i=3` and `k=3`, we get the following recursion diagram:
\[
\begin{array}{ccccccc}
d^3_3 && d^2_3 && d^1_3 && d^0_3 (= 0 \text{ or } 1) \\
&+^{α^3_3 \times …}_{(1-{α^3_3}) \times …}& &+^{α^2_3 \times …}_{(1-{α^2_3}) \times …}& &+^{α^1_3 \times …}_{(1-{α^1_3}) \times …}&\\
&& && && \\
& & d^2_2 && d^1_2 && d^0_2 (= 0 \text{ or } 1) \\
& & &+^{α^2_2 \times …}_{(1-{α^2_2}) \times …}& &+^{α^1_2 \times …}_{(1-{α^1_2}) \times …}&\\
& & && && \\
& & & & d^1_1 && d^0_1 (= 0 \text{ or } 1) \\
& & & & &+^{α^1_1 \times …}_{(1-{α^1_1}) \times …}&\\
& & & & && \\
& & & & & & d^0_0 (= 0)
\end{array}
d^3_3 = \left \{
\begin{aligned}
\alpha^3_3 \times d^2_3, & \ \textit{ with } d^2_3 = \left \{
\begin{aligned}
\alpha^2_3 \times d^1_3, & \ \textit{ with } d^1_3 =
\left \{
\begin{aligned}
\alpha^1_3 \times d^0_3, & \ \textit{ with } d^0_3 \textit{ either 0 or 1} \\
+ & \\
\left ( 1 - \alpha^1_3 \right ) \times d^0_2, & \ \textit{ with } d^0_2 \textit{ either 0 or 1} \\
\end{aligned}
\right . \\
+ & \\
\left ( 1 - \alpha^2_3 \right ) \times d^1_2, & \ \textit{ with } d^1_2 =
\left \{
\begin{aligned}
\alpha^1_2 \times d^0_2 & \\
+ & \\
\left ( 1 - \alpha^1_2 \right ) \times d^0_1, & \ \textit{ with } d^0_1 \textit{ either 0 or 1} \\
\end{aligned}
\right . \\
\end{aligned}
\right . \\
+ & \\
\left ( 1 - \alpha^3_3 \right ) \times d^2_2, & \ \textit{ with } d^2_2 = \left \{
\begin{aligned}
\alpha^2_2 \times d^1_2 & \\
& \\
+ & \\
\left ( 1 - \alpha^2_2 \right ) \times d^1_1, & \ \textit{ with } d^1_1 =
\left \{
\begin{aligned}
\alpha^1_1 \times d^0_1 \\
+ & \\
\left ( 1 - \alpha^1_1 \right ) \times d^0_0, & \ \textit{ with } d^0_0 \textit{ either 0 or 1} \\
\end{aligned}
\right . \\
\end{aligned}
\right .
\end{aligned}
\right .
\]
That is, we compute d(3,3) as a mixture of d(2,3) and d(2,2): d(3,3) = a(3,3) x d(2,3) + (1-a(3,3)) x d(2,2)... and we simply keep expanding our triangle until we reach the terminating function parameters. Done deal!
One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the `d(..., k)` values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point: that's pretty essential!
If we run this computation "down", starting at d(3,3), then without special code in place we would be computing quite a few terms multiple times at each step. On the other hand, we can also start with that last "column", we can generate the terminating d() values first, then compute the a() constants, perform our multiplications, generate the previous step's d() values, compute their a() constants, do the multiplications, etc. until we end up all the way back at the top. If we run our computation this way, we don't need any explicit caching, we can just "recycle" the list of numbers we start with and simply update them as we move up the triangle. So, let's implement that!
That is, we compute `d(3,3)` as a mixture of `d(2,3)` and `d(2,2)`, where those two are themselves a mixture of `d(1,3)` and `d(1,2)`, and `d(1,2)` and `d(1,1)`, respectively, which are themselves a mixture of etc. etc. We simply keep expanding our terms until we reach the stop conditions, and then sum everything back up. It's really quite elegant.
One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the `d(..., k)` values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point, rather than first starting "on the left", working our way "to the right" and then summing back up "to the left". We can just start on the right and work our way left immediately.
<!--
## Cool, cool... but I don't know what to do with that information
I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).
<!-- THIS GRAPH IS EXTREMELY NOT-USEFUL, BUT WE'RE PORTING IT FIRST, AND REWRITING IT LATER -->
<graphics-element title="Visualising relative interpolation strengths" width="600" height="300" src="./interpolation.js">
<!-- weight factors go here, similar to curve fitting sliders -->
</graphics-element>
<graphics-element title="Visualising relative interpolation strengths" width="600" height="300" src="./interpolation.js"></graphics-element>
Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual *shape* of the curve inside that hull.
After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!
-->
## Running the computation
@@ -172,7 +199,7 @@ The most important thing to understand when it comes to B-Splines is that they w
The most straightforward type of B-Spline is the uniform spline. In a uniform spline, the knots are distributed uniformly over the entire curve interval. For instance, if we have a knot vector of length twelve, then a uniform knot vector would be [0,1,2,3,...,9,10,11]. Or [4,5,6,...,13,14,15], which defines *the same intervals*, or even [0,2,3,...,18,20,22], which also defines *the same intervals*, just scaled by a constant factor, which becomes normalised during interpolation and so does not contribute to the curvature.
<graphics-element title="A uniform B-Spline" width="400" height="400" src="./uniform.js">
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
This is an important point: the intervals that the knot vector defines are *relative* intervals, so it doesn't matter if every interval is size 1, or size 100 - the relative differences between the intervals is what shapes any particular curve.
@@ -185,7 +212,7 @@ The problem with uniform knot vectors is that, as we need `order` control points
Collapsing knot intervals, by making two or more consecutive knots have the same value, allows us to reduce the curve complexity in the sections that are affected by the knots involved. This can have drastic effects: for every interval collapse, the curve order goes down, and curve continuity goes down, to the point where collapsing `order` knots creates a situation where all continuity is lost and the curve "kinks".
<graphics-element title="A reduced uniform B-Spline" width="400" height="400" src="./reduced.js">
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -196,7 +223,7 @@ By combining knot interval collapsing at the start and end of the curve, with un
For any curve of degree `D` with control points `N`, we can define a knot vector of length `N+D+1` in which the values `0 ... D+1` are the same, the values `D+1 ... N+1` follow the "uniform" pattern, and the values `N+1 ... N+D+1` are the same again. For example, a cubic B-Spline with 7 control points can have a knot vector [0,0,0,0,1,2,3,4,4,4,4], or it might have the "identical" knot vector [0,0,0,0,2,4,6,8,8,8,8], etc. Again, it is the relative differences that determine the curve shape.
<graphics-element title="An open, uniform B-Spline" width="400" height="400" src="./uniform.js" data-open="true">
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -209,7 +236,7 @@ This is essentially the "free form" version of a B-Spline, and also the least in
While it is true that this section on B-Splines is running quite long already, there is one more thing we need to talk about, and that's "Rational" splines, where the rationality applies to the "ratio", or relative weights, of the control points themselves. By introducing a ratio vector with weights to apply to each control point, we greatly increase our influence over the final curve shape: the more weight a control point carries, the closer to that point the spline curve will lie, a bit like turning up the gravity of a control pointl, just like for rational Bézier curves.
<graphics-element title="A (closed) rational, uniform B-Spline" width="400" height="400" src="rational-uniform.js">
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
Of course this brings us to the final topic that any text on B-Splines must touch on before calling it a day: the [NURBS](https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline), or Non-Uniform Rational B-Spline (NURBS is not a plural, the capital S actually just stands for "spline", but a lot of people mistakenly treat it as if it is, so now you know better). NURBS is an important type of curve in computer-facilitated design, used a lot in 3D modelling (typically as NURBS surfaces) as well as in arbitrary-precision 2D design due to the level of control a NURBS curve offers designers.

View File

@@ -1,22 +1,10 @@
let cache = { N: [] },
points,
degree = 3,
spline,
pad=20,
knots,
colors = [
'#C00',
'#CC0',
'#0C0',
'#0CC',
'#00C',
'#C0C',
'#600',
'#660',
'#060',
'#066',
'#006',
'#606'
];
colors = ['#C00','#CC0','#0C0','#0CC','#00C','#C0C','#600','#660','#060','#066','#006','#606'];
setup() {
points = [
@@ -44,6 +32,7 @@ setKnotValue(i, v) {
draw() {
clear();
setWidth(1);
setStroke(`lightgrey`);
drawGrid(pad);
@@ -52,7 +41,6 @@ draw() {
var y = this.height - pad;
this.line(0,y,this.width,y);
var degree = 3;
var n = points.length || 4;
for (let i=0, e=n+degree+1; i<e; i++) {
@@ -67,7 +55,8 @@ drawN(i, k, pad, w, h) {
start()
for (let start=i-1, t=start, step=0.1, end=i+k+1; t<end; t+=step) {
let x = pad + i*w + t*w;
let y = this.height - pad - this.N(i, k, t) * h;
let v = this.N(i, k, t);
let y = this.height - pad - h * v;
vertex(x, y);
}
end();
@@ -79,10 +68,20 @@ N(i, k, t) {
let t_ik1 = knots[i+k-1];
let t_ik = knots[i+k];
// terminal condition: if the degree is one, then
// the return value is either 1 ("contributes to
// the interpolation at this point"), or 0 ("does
// not contribute").
if (k===1) {
return (t_i <= t && t <= t_i1) ? 1 : 0;
}
// If we're not at k=1 yet, we can still determine
// whether we need to "do work", or whether the
// index and degree such that we know this knot
// contributes nothing:
let n1 = t - t_i;
let d1 = t_ik1 - t_i;
let a1 = d1===0? 0: n1/d1;
@@ -93,30 +92,34 @@ N(i, k, t) {
let N1 = 0;
if (a1 !== 0) {
// iteration: get the current index's (k-1)th value
let n1v = this.ensureN(i,k-1,t);
N1 = n1v === undefined ? this.N(i,k-1,t) : n1v;
}
let v1 = a1 * N1;
let N2 = 0;
if (a2 !== 0) {
// iteration: get the next index's (k-1)th value
let n2v = this.ensureN(i+1,k-1,t);
N2 = n2v === undefined ? this.N(i+1,k-1,t) : n2v;
}
let v2 = a2 * N2;
this.cacheN(i,k,t, a1 * N1 + a2 * N2);
// store their interpolation
this.cacheN(i,k,t, v1 + v2);
return cache.N[i][k][t];
}
ensureN(i,k,t) {
if (!cache.N) { cache.N = []; }
let N = cache.N;
if (!N[i]) { N[i] = []; }
if (!N[i][k]) { N[i][k] = []; }
return N[i][k][t];
}
cacheN(i,k,t,value) {
this.ensureN(i,k,t);
cache.N[i][k][t] = value;
}
ensureN(i,k,t) {
const N = cache.N ?? [];
N[i] = N[i] ?? [];
N[i][k] = N[i][k] ?? [];
cache.N = N;
return N[i][k][t];
}

View File

@@ -12,7 +12,7 @@ setup() {
weights = new BSpline(this, points, !!this.parameters.open).formWeights();
points.forEach((_,i) => {
addSlider(`slide-control`, `!weight ${i+1}`, 0, 10, 0.1, i%2===1? 2 : 6, v => this.setWeight(i, v));
addSlider(`slide-control`, `!weight ${i+1}`, 0, 10, 0.1, i%2===1? 2 : 8, v => this.setWeight(i, v));
});
points = points.concat(points.slice(0,3));

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -1,535 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="419px" height="217px" viewBox="0 0 314 163">
<svg overflow="visible" x="-.285" y="10.745">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="6.219" y="6.404">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="5.932" y="14.041">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="41.406" y="10.745">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
<svg overflow="visible" x="83.285" y="10.745">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="89.792" y="6.404">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="89.505" y="13.874">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="124.979" y="10.745">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
<svg overflow="visible" x="166.858" y="10.745">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="173.365" y="6.404">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="173.078" y="13.874">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="208.553" y="10.745">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
<svg overflow="visible" x="250.432" y="10.745">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="256.939" y="6.404">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="256.652" y="14.041">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="262.199" y="10.745">
<path d="M4.156 2.719c0-.047-.078-.172-.11-.203-1.234-.922-2-3.22-2-5.141v-1c0-1.906.767-4.203 2-5.14a.457.457 0 00.11-.188c0-.063-.25-.25-.312-.25a1.01 1.01 0 00-.203.062C2.312-8.156 1-5.67 1-3.625v1C1-.578 2.313 1.906 3.64 2.906c.016.016.188.063.204.063.062 0 .312-.203.312-.25zm0 0"/>
</svg>
<svg overflow="visible" x="266.85" y="10.745">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="279.462" y="10.745">
<path d="M5.688-3.953c0-.953-.063-1.922-.47-2.797-.562-1.156-1.734-1.469-2.234-1.469-.718 0-1.796.438-2.28 1.547-.376.828-.438 1.766-.438 2.719 0 .89.109 2.062.593 2.969.516.968 1.532 1.25 2.11 1.25.656 0 1.75-.391 2.281-1.516.375-.828.438-1.766.438-2.703zm-1.391-.14c0 .89 0 1.702-.125 2.468C4-.485 3.516-.265 2.969-.265 2.516-.266 2-.438 1.78-1.579c-.125-.719-.125-1.813-.125-2.516 0-.765 0-1.562.094-2.203.219-1.422.922-1.406 1.219-1.406.406 0 .984.094 1.219 1.266.109.671.109 1.578.109 2.343zm0 0"/>
</svg>
<svg overflow="visible" x="289.347" y="10.745">
<path d="M5.64-2.703c0-1.547-1.327-2.922-2.718-2.922C1.5-5.625.187-4.203.187-2.703c0 1.531 1.36 2.828 2.735 2.828 1.406 0 2.719-1.313 2.719-2.828zm-1.234-.11c0 .422.047 1.063-.265 1.626-.329.562-.766.75-1.22.75-.437 0-.858-.141-1.218-.735-.312-.531-.281-1.14-.281-1.64 0-.454-.047-1.079.328-1.61.328-.516.75-.672 1.172-.672.453 0 .844.188 1.172.64.36.563.312 1.204.312 1.641zm0 0"/>
</svg>
<svg overflow="visible" x="295.205" y="10.745">
<path d="M4.375-4.719c0-.36-.484-.843-1-.843-1.016 0-1.516 1.25-1.547 1.312h.266v-1.328l-1.922.156v.625c.969 0 .906-.062.906.531v3.235c0 .547.031.39-.906.39v.657c.5-.047 1.156-.047 1.516-.047.328 0 1.171 0 1.593.062V-.64h-.39c-.875 0-.735.016-.735-.406v-1.875c0-1.172.313-2.11 1.235-2.11.093 0 .125 0 .171.016l-.124-.25a.618.618 0 00-.329.547c0 .344.438.625.625.625.25 0 .641-.312.641-.625zm0 0"/>
</svg>
<svg overflow="visible" x="303.657" y="10.745">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="309.635" y="10.745">
<path d="M3.64-2.625v-1c0-2.047-1.328-4.531-2.64-5.516a.774.774 0 00-.203-.062c-.063 0-.313.187-.313.25 0 .031.079.172.094.187 1.25.938 2.016 3.235 2.016 5.141v1c0 1.922-.766 4.219-2.016 5.14-.015.032-.094.157-.094.204 0 .047.25.25.313.25A.774.774 0 001 2.906c1.313-1 2.64-3.484 2.64-5.531zm0 0"/>
</svg>
<svg overflow="visible" x="21.441" y="28.755">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="30.742" y="22.098">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="36.96" y="19.059">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="36.96" y="24.511">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="41.529" y="22.098">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="48.04" y="22.098">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="30.742" y="33.547">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="33.997" y="33.547">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="38.759" y="33.547">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="45.27" y="33.547">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="51.488" y="30.536">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="51.488" y="35.988">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="56.057" y="33.547">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="59.312" y="33.547">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="65.823" y="33.547">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="105.015" y="28.755">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="114.316" y="22.229">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="120.534" y="19.191">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="120.534" y="24.511">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="125.102" y="22.229">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="131.613" y="22.229">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="114.316" y="33.415">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="117.571" y="33.415">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="122.333" y="33.415">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="128.844" y="33.415">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="135.061" y="30.536">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="135.061" y="35.856">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="139.63" y="33.415">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="142.885" y="33.415">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="149.396" y="33.415">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="188.588" y="28.755">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="197.889" y="22.229">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="204.107" y="19.191">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
<svg overflow="visible" x="204.107" y="24.511">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="208.676" y="22.229">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="215.187" y="22.229">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="197.889" y="33.415">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="201.144" y="33.415">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="205.906" y="33.415">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="212.417" y="33.415">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="218.635" y="30.536">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
<svg overflow="visible" x="218.635" y="35.856">
<path d="M3.781-1.219c0-.5-.625-1.093-1.312-1.25v.36c.719-.235 1.11-.86 1.11-1.204 0-.484-.813-1.03-1.563-1.03-.735 0-1.532.484-1.532 1.03 0 .282.438.532.547.532.172 0 .532-.313.532-.516 0-.14-.266-.484-.11-.469.031-.03.422 0 .547 0 .438 0 .547.047.547.454 0 .343-.031.718-.656.75-.172 0-.188.015-.344.015-.063.016-.344.188-.344.281 0 .11.266.282.375.282h.39c.563 0 .72.171.72.75 0 .625-.172.765-.704.765-.062 0-.64.047-.703-.015-.14.03.125-.344.125-.485 0-.219-.36-.547-.562-.547-.188 0-.563.313-.563.563C.281-.328 1.187.125 2 .125c.984 0 1.781-.766 1.781-1.344zm0 0"/>
</svg>
<svg overflow="visible" x="223.204" y="33.415">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="226.459" y="33.415">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="232.97" y="33.415">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="41.406" y="46.231">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
<svg overflow="visible" x="124.979" y="46.231">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
<svg overflow="visible" x="208.553" y="46.231">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
<svg overflow="visible" x="83.288" y="60.677">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="89.792" y="56.337">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="89.505" y="63.807">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="124.979" y="60.677">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
<svg overflow="visible" x="166.858" y="60.677">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="173.365" y="56.337">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="173.078" y="63.807">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="208.553" y="60.677">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
<svg overflow="visible" x="250.432" y="60.677">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="256.939" y="56.337">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="256.652" y="63.974">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="262.199" y="60.677">
<path d="M4.156 2.719c0-.047-.078-.172-.11-.203-1.234-.922-2-3.22-2-5.141v-1c0-1.906.767-4.203 2-5.14a.457.457 0 00.11-.188c0-.063-.25-.25-.312-.25a1.01 1.01 0 00-.203.062C2.312-8.156 1-5.67 1-3.625v1C1-.578 2.313 1.906 3.64 2.906c.016.016.188.063.204.063.062 0 .312-.203.312-.25zm0 0"/>
</svg>
<svg overflow="visible" x="266.85" y="60.677">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="279.462" y="60.677">
<path d="M5.688-3.953c0-.953-.063-1.922-.47-2.797-.562-1.156-1.734-1.469-2.234-1.469-.718 0-1.796.438-2.28 1.547-.376.828-.438 1.766-.438 2.719 0 .89.109 2.062.593 2.969.516.968 1.532 1.25 2.11 1.25.656 0 1.75-.391 2.281-1.516.375-.828.438-1.766.438-2.703zm-1.391-.14c0 .89 0 1.702-.125 2.468C4-.485 3.516-.265 2.969-.265 2.516-.266 2-.438 1.78-1.579c-.125-.719-.125-1.813-.125-2.516 0-.765 0-1.562.094-2.203.219-1.422.922-1.406 1.219-1.406.406 0 .984.094 1.219 1.266.109.671.109 1.578.109 2.343zm0 0"/>
</svg>
<svg overflow="visible" x="289.347" y="60.677">
<path d="M5.64-2.703c0-1.547-1.327-2.922-2.718-2.922C1.5-5.625.187-4.203.187-2.703c0 1.531 1.36 2.828 2.735 2.828 1.406 0 2.719-1.313 2.719-2.828zm-1.234-.11c0 .422.047 1.063-.265 1.626-.329.562-.766.75-1.22.75-.437 0-.858-.141-1.218-.735-.312-.531-.281-1.14-.281-1.64 0-.454-.047-1.079.328-1.61.328-.516.75-.672 1.172-.672.453 0 .844.188 1.172.64.36.563.312 1.204.312 1.641zm0 0"/>
</svg>
<svg overflow="visible" x="295.205" y="60.677">
<path d="M4.375-4.719c0-.36-.484-.843-1-.843-1.016 0-1.516 1.25-1.547 1.312h.266v-1.328l-1.922.156v.625c.969 0 .906-.062.906.531v3.235c0 .547.031.39-.906.39v.657c.5-.047 1.156-.047 1.516-.047.328 0 1.171 0 1.593.062V-.64h-.39c-.875 0-.735.016-.735-.406v-1.875c0-1.172.313-2.11 1.235-2.11.093 0 .125 0 .171.016l-.124-.25a.618.618 0 00-.329.547c0 .344.438.625.625.625.25 0 .641-.312.641-.625zm0 0"/>
</svg>
<svg overflow="visible" x="303.657" y="60.677">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="309.635" y="60.677">
<path d="M3.64-2.625v-1c0-2.047-1.328-4.531-2.64-5.516a.774.774 0 00-.203-.062c-.063 0-.313.187-.313.25 0 .031.079.172.094.187 1.25.938 2.016 3.235 2.016 5.141v1c0 1.922-.766 4.219-2.016 5.14-.015.032-.094.157-.094.204 0 .047.25.25.313.25A.774.774 0 001 2.906c1.313-1 2.64-3.484 2.64-5.531zm0 0"/>
</svg>
<svg overflow="visible" x="105.015" y="78.425">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="114.316" y="72.03">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="120.534" y="68.992">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="120.534" y="74.312">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="125.102" y="72.03">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="131.613" y="72.03">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="114.316" y="83.085">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="117.571" y="83.085">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="122.333" y="83.085">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="128.844" y="83.085">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="135.061" y="80.206">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="135.061" y="85.526">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="139.63" y="83.085">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="142.885" y="83.085">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="149.396" y="83.085">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="188.588" y="78.425">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="197.889" y="72.03">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<svg overflow="visible" x="204.107" y="68.992">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
<svg overflow="visible" x="204.107" y="74.312">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
<svg overflow="visible" x="208.676" y="72.03">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="215.187" y="72.03">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
<svg overflow="visible" x="197.889" y="83.085">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="201.144" y="83.085">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="205.906" y="83.085">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="212.417" y="83.085">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
<g>
<svg overflow="visible" x="218.635" y="80.206">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="218.635" y="85.526">
<path d="M3.531-1.516h-.437c-.047.297-.047.547-.14.594-.048.047-.407-.015-.5-.015H1.28l.14.312c.391-.297.845-.625 1.204-.875.531-.36 1.094-.844 1.094-1.469 0-.765-.922-1.375-1.781-1.375-.797 0-1.594.64-1.594 1.235 0 .312.469.546.547.546.156 0 .546-.296.546-.53 0-.22-.343-.516-.234-.5 0 0 .219-.126.61-.126.593 0 .875.172.875.75 0 .5-.297.766-.75 1.156L.468-.577a.397.397 0 00-.124.219V0H3.5l.25-1.516zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="223.204" y="83.085">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="226.459" y="83.085">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="232.97" y="83.085">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="124.979" y="95.638">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="208.553" y="95.638">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="166.862" y="110.084">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="173.365" y="105.744">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="173.078" y="113.213">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="208.553" y="110.084">
<path d="M11.469-3.125c0-.063-.25-.25-.297-.281-.688-.235-1.078-.672-1.516-1.203-.328-.438-.531-.86-.625-1.422-.031-.11-.312-.328-.437-.328s-.438.234-.438.375v.046c.125.625.469 1.313.86 1.813.265.328.578.625.921.86l.157-.22H.938c-.141 0-.454.235-.454.36 0 .14.313.375.454.375h9.156l-.156-.219a3.997 3.997 0 00-.922.86c-.391.5-.735 1.171-.86 1.812v.047c0 .125.313.375.438.375S9-.094 9.03-.203c.094-.563.297-.984.625-1.422.438-.531.828-.984 1.516-1.203.047-.031.297-.219.297-.297zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="250.432" y="110.084">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="256.939" y="105.744">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="256.652" y="113.381">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="262.199" y="110.084">
<path d="M4.156 2.719c0-.047-.078-.172-.11-.203-1.234-.922-2-3.22-2-5.141v-1c0-1.906.767-4.203 2-5.14a.457.457 0 00.11-.188c0-.063-.25-.25-.312-.25a1.01 1.01 0 00-.203.062C2.312-8.156 1-5.67 1-3.625v1C1-.578 2.313 1.906 3.64 2.906c.016.016.188.063.204.063.062 0 .312-.203.312-.25zm0 0"/>
</svg>
<svg overflow="visible" x="266.85" y="110.084">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="279.462" y="110.084">
<path d="M5.688-3.953c0-.953-.063-1.922-.47-2.797-.562-1.156-1.734-1.469-2.234-1.469-.718 0-1.796.438-2.28 1.547-.376.828-.438 1.766-.438 2.719 0 .89.109 2.062.593 2.969.516.968 1.532 1.25 2.11 1.25.656 0 1.75-.391 2.281-1.516.375-.828.438-1.766.438-2.703zm-1.391-.14c0 .89 0 1.702-.125 2.468C4-.485 3.516-.265 2.969-.265 2.516-.266 2-.438 1.78-1.579c-.125-.719-.125-1.813-.125-2.516 0-.765 0-1.562.094-2.203.219-1.422.922-1.406 1.219-1.406.406 0 .984.094 1.219 1.266.109.671.109 1.578.109 2.343zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="289.346" y="110.084">
<path d="M5.64-2.703c0-1.547-1.327-2.922-2.718-2.922C1.5-5.625.187-4.203.187-2.703c0 1.531 1.36 2.828 2.735 2.828 1.406 0 2.719-1.313 2.719-2.828zm-1.234-.11c0 .422.047 1.063-.265 1.626-.329.562-.766.75-1.22.75-.437 0-.858-.141-1.218-.735-.312-.531-.281-1.14-.281-1.64 0-.454-.047-1.079.328-1.61.328-.516.75-.672 1.172-.672.453 0 .844.188 1.172.64.36.563.312 1.204.312 1.641zm0 0"/>
</svg>
<svg overflow="visible" x="295.204" y="110.084">
<path d="M4.375-4.719c0-.36-.484-.843-1-.843-1.016 0-1.516 1.25-1.547 1.312h.266v-1.328l-1.922.156v.625c.969 0 .906-.062.906.531v3.235c0 .547.031.39-.906.39v.657c.5-.047 1.156-.047 1.516-.047.328 0 1.171 0 1.593.062V-.64h-.39c-.875 0-.735.016-.735-.406v-1.875c0-1.172.313-2.11 1.235-2.11.093 0 .125 0 .171.016l-.124-.25a.618.618 0 00-.329.547c0 .344.438.625.625.625.25 0 .641-.312.641-.625zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="303.657" y="110.084">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="309.635" y="110.084">
<path d="M3.64-2.625v-1c0-2.047-1.328-4.531-2.64-5.516a.774.774 0 00-.203-.062c-.063 0-.313.187-.313.25 0 .031.079.172.094.187 1.25.938 2.016 3.235 2.016 5.141v1c0 1.922-.766 4.219-2.016 5.14-.015.032-.094.157-.094.204 0 .047.25.25.313.25A.774.774 0 001 2.906c1.313-1 2.64-3.484 2.64-5.531zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="188.588" y="127.831">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="197.889" y="121.437">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="204.107" y="118.399">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="204.107" y="123.719">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="208.676" y="121.437">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="215.187" y="121.437">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="197.889" y="132.492">
<path d="M2.984 1.828a.933.933 0 00-.093-.172C2.016 1 1.5-.562 1.5-1.906v-.703c0-1.329.516-2.891 1.39-3.547a.702.702 0 00.094-.188c0-.031-.25-.234-.28-.234a1.01 1.01 0 00-.204.062C1.578-5.828.64-4.03.64-2.609v.703c0 1.437.938 3.234 1.86 3.922.016.015.188.062.203.062.031 0 .281-.203.281-.25zm0 0"/>
</svg>
<svg overflow="visible" x="201.144" y="132.492">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="205.906" y="132.492">
<path d="M6.25-2.25c0-.094-.281-.328-.375-.328H.641c-.094 0-.375.234-.375.328s.28.328.375.328h5.234c.094 0 .375-.234.375-.328zm0 0"/>
</svg>
<svg overflow="visible" x="212.417" y="132.492">
<path d="M5.875-3.344c0-.11-.313-.265-.36-.265-.109 0-.327.187-.374.375a3.796 3.796 0 01-.735 1.406l.375.11c-.015-.126-.031-.688-.047-.766-.125-.829-.968-1.532-1.796-1.532C1.702-4.016.312-2.703.312-1.53c0 .765.766 1.61 1.735 1.61.781 0 1.61-.392 1.828-.563.094.312.734.562.984.562.485 0 1-.562 1-.734 0-.11-.312-.266-.359-.266-.11 0-.328.188-.344.25-.125.313-.172.203-.281.203-.11 0-.047.156-.078-.828.703-.719 1.078-1.953 1.078-2.047zM3.781-1.172c-.828.672-1.39.703-1.703.703-.547 0-.656-.203-.656-.765 0-.25.047-1.047.484-1.625.39-.5.719-.594 1.016-.594.672 0 .656.484.719 1 .046.36.03.953.062 1.344zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="218.635" y="129.613">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="218.635" y="134.933">
<path d="M3.516-.172v-.453h-.5c-.641 0-.438.11-.438-.063v-3.296c0-.188-.219-.36-.5-.36-.484.438-1 .375-1.125.375H.656v.625h.297c.14 0 .531-.015.672-.078v2.735c0 .171.203.062-.422.062H.687v.64C1.235-.03 1.766-.03 2.11-.03c.344 0 .875 0 1.407.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="223.204" y="132.492">
<path d="M2.625-1.906v-.703c0-1.422-.953-3.22-1.875-3.907a.88.88 0 00-.188-.062c-.046 0-.296.203-.296.234 0 .032.078.172.093.188C1.234-5.5 1.75-3.938 1.75-2.61v.703C1.75-.563 1.234 1 .36 1.656a.933.933 0 00-.094.172c0 .047.25.25.296.25a.88.88 0 00.188-.062c.922-.688 1.875-2.485 1.875-3.922zm0 0"/>
</svg>
<svg overflow="visible" x="226.459" y="132.492">
<path d="M5.375-.172c.063-.047.063-.39 0-.453L3.75-2.25l1.625-1.625c.063-.063.063-.39 0-.453s-.469-.063-.531 0L3.25-2.734 1.672-4.328c-.078-.063-.469-.063-.531 0-.063.062-.063.39 0 .453L2.766-2.25 1.14-.625c-.063.063-.063.406 0 .453.062.078.453.078.53 0l1.595-1.594L4.844-.172c.062.078.468.078.531 0zm0 0"/>
</svg>
<svg overflow="visible" x="232.97" y="132.492">
<path d="M1.828-.61c0-.234-.406-.593-.656-.593s-.656.36-.656.594c0 .25.406.609.656.609s.656-.36.656-.61zm2.328 0c0-.234-.406-.593-.64-.593-.25 0-.657.36-.657.594 0 .25.407.609.657.609.234 0 .64-.36.64-.61zm2.344 0c0-.234-.406-.593-.656-.593-.235 0-.657.36-.657.594 0 .25.422.609.657.609.25 0 .656-.36.656-.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="208.553" y="145.045">
<path d="M11.656-1.875c0-.14-.297-.375-.437-.375a.843.843 0 00-.344.14 5.124 5.124 0 00-.719 1.876 4.41 4.41 0 00.047 1.28l.344-.109-9.5-9.5C1-8.608.813-8.671.734-8.671c-.125 0-.437.25-.437.375 0 .078.078.235.14.266L9.61 1.14c.047.015-.375 0-.796.046-.626.094-1.376.344-1.922.704-.063.046-.172.218-.172.296 0 .126.312.376.437.376a.834.834 0 00.282-.079c.468-.328.875-.468 1.437-.546.672-.079 1.234-.079 1.875.234.031.015.203.047.219.047.094 0 .344-.203.344-.281a.762.762 0 00-.063-.172c-.328-.641-.297-1.25-.219-1.938.078-.547.203-.984.531-1.469.016-.046.094-.171.094-.234zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="262.528" y="159.491">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="269.031" y="155.151">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="268.745" y="162.787">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="274.291" y="159.491">
<path d="M4.156 2.719c0-.047-.078-.172-.11-.203-1.234-.922-2-3.22-2-5.141v-1c0-1.906.767-4.203 2-5.14a.457.457 0 00.11-.188c0-.063-.25-.25-.312-.25a1.01 1.01 0 00-.203.062C2.312-8.156 1-5.67 1-3.625v1C1-.578 2.313 1.906 3.64 2.906c.016.016.188.063.204.063.062 0 .312-.203.312-.25zm0 0"/>
</svg>
<svg overflow="visible" x="278.942" y="159.491">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="291.554" y="159.491">
<path d="M5.688-3.953c0-.953-.063-1.922-.47-2.797-.562-1.156-1.734-1.469-2.234-1.469-.718 0-1.796.438-2.28 1.547-.376.828-.438 1.766-.438 2.719 0 .89.109 2.062.593 2.969.516.968 1.532 1.25 2.11 1.25.656 0 1.75-.391 2.281-1.516.375-.828.438-1.766.438-2.703zm-1.391-.14c0 .89 0 1.702-.125 2.468C4-.485 3.516-.265 2.969-.265 2.516-.266 2-.438 1.78-1.579c-.125-.719-.125-1.813-.125-2.516 0-.765 0-1.562.094-2.203.219-1.422.922-1.406 1.219-1.406.406 0 .984.094 1.219 1.266.109.671.109 1.578.109 2.343zm0 0"/>
</svg>
<svg overflow="visible" x="297.532" y="159.491">
<path d="M3.64-2.625v-1c0-2.047-1.328-4.531-2.64-5.516a.774.774 0 00-.203-.062c-.063 0-.313.187-.313.25 0 .031.079.172.094.187 1.25.938 2.016 3.235 2.016 5.141v1c0 1.922-.766 4.219-2.016 5.14-.015.032-.094.157-.094.204 0 .047.25.25.313.25A.774.774 0 001 2.906c1.313-1 2.64-3.484 2.64-5.531zm0 0"/>
</svg>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,993 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="688" height="328" viewBox="0 0 516 246">
<svg overflow="visible" x=".057" y="126.615">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="6.561" y="122.275">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="6.274" y="129.912">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="15.142" y="126.615">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="12.045">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="20.684">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="29.255">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="37.825">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="46.396">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="54.967">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="63.538">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="72.109">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="80.68">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="89.251">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="97.822">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="106.393">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="114.963">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="132.593">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="141.232">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="149.802">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="158.373">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="166.944">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="175.515">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="184.086">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="192.657">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="201.228">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="209.799">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="218.37">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="226.94">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="235.511">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="27.764" y="244.174">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
<svg overflow="visible" x="69.23" y="64.1">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="76.882" y="59.76">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="76.882" y="67.397">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="84.799" y="64.1">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="96.754" y="64.1">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="103.26" y="59.76">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="102.973" y="67.229">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="108.52" y="64.1">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="119.925" y="64.1">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="127.696" y="64.1">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="131.282" y="64.1">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="135.168" y="64.1">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="145.33" y="64.1">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="151.834" y="59.76">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="151.547" y="67.229">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="160.415" y="64.1">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="12.045">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="20.437">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="28.502">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="36.566">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="44.63">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="52.694">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="70.077">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="78.47">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="86.534">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="94.598">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="102.662">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="110.727">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="119.143">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
<svg overflow="visible" x="214.503" y="28.234">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="222.155" y="23.894">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="222.155" y="31.364">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="230.072" y="28.234">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="242.027" y="28.234">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="248.533" y="23.894">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="248.246" y="31.364">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="253.793" y="28.234">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="265.198" y="28.234">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="272.969" y="28.234">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="276.555" y="28.234">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="280.441" y="28.234">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="290.603" y="28.234">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="297.107" y="23.894">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="296.82" y="31.364">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="305.688" y="28.234">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="11.995">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="18.608">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="34.212">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="40.825">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="47.462">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
<svg overflow="visible" x="359.776" y="10.7">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="367.428" y="6.36">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="367.428" y="13.829">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="375.345" y="10.7">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="387.3" y="10.7">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="393.806" y="6.36">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="393.519" y="13.997">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="399.066" y="10.7">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="410.471" y="10.7">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="418.242" y="10.7">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="421.828" y="10.7">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="425.714" y="10.7">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="435.876" y="10.7">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="442.38" y="6.36">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="442.093" y="13.997">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="451.824" y="10.7">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="457.204" y="10.7">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="460.79" y="10.7">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="464.676" y="10.7">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="470.653" y="10.7">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="476.033" y="10.7">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="485.143" y="10.7">
<path d="M5.719-2.047c.375-.828.953-2.89.953-4.031 0-.328-.188-2.14-1.703-2.14-2.828 0-3.782 5.5-3.782 6.359 0 .703.391 2.109 1.735 2.109.969 0 2.094-.813 2.797-2.297zM4.64-2.25c-.188.516-.516 2-1.672 2-.5 0-.703-.297-.703-1.047 0-.937.828-4.531 1.343-5.437.438-.735.891-.97 1.297-.97.313 0 .719.032.719 1.016 0 1.125-.922 4.22-.984 4.438zm0 0"/>
</svg>
<svg overflow="visible" x="495.317" y="10.7">
<path d="M6.125-3.469c0-1.234-.953-2.062-1.844-2.062-1.453 0-3.156 1.812-3.156 3.578 0 1.297.984 2.078 1.844 2.078 1.469 0 3.156-1.844 3.156-3.594zm-1.14-.453c0 .516-.235 1.766-.61 2.422-.484.86-.969 1.125-1.39 1.125-.5 0-.72-.313-.72-1.125 0-.547.22-1.766.61-2.438.453-.765.938-1.093 1.375-1.093.61 0 .734.422.734 1.11zm0 0"/>
</svg>
<svg overflow="visible" x="501.295" y="10.7">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="510.416" y="10.7">
<path d="M5.047-.344c0-.14-.266-.265-.469-.265h-.094c-.843 0-.671.03-.671-.125l-.063.093s.063-.171.11-.343l1.703-6.813a.555.555 0 00.03-.156c0-.063-.218-.266-.296-.266-.063 0-.203.063-.313.203-.5.688-1.03 1.25-1.906 1.329-.14.03-.422.156-.422.359 0 .094.25.266.36.266.328 0 .953-.188 1.03-.25L2.72-.984c-.094.406 0 .375-.906.375h-.11c-.203 0-.516.125-.516.359 0 .125.313.25.391.25l1.5-.031L4.625 0c.11 0 .422-.125.422-.344zm0 0"/>
</svg>
<svg overflow="visible" x="393.089" y="28.134">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="329.094" y="45.569">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="334.139" y="45.569">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="342.771" y="45.569">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="354.726" y="45.569">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="362.383" y="41.229">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="362.383" y="48.698">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="367.643" y="45.569">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
<svg overflow="visible" x="375.342" y="45.569">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="387.297" y="45.569">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="393.806" y="41.229">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="393.519" y="48.866">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="399.066" y="45.569">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="410.471" y="45.569">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="418.242" y="45.569">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="421.828" y="45.569">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="425.714" y="45.569">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="435.876" y="45.569">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="442.38" y="41.229">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="442.093" y="48.866">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="451.824" y="45.569">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="457.204" y="45.569">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="460.79" y="45.569">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="464.676" y="45.569">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="470.653" y="45.569">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="476.033" y="45.569">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="485.143" y="45.569">
<path d="M5.719-2.047c.375-.828.953-2.89.953-4.031 0-.328-.188-2.14-1.703-2.14-2.828 0-3.782 5.5-3.782 6.359 0 .703.391 2.109 1.735 2.109.969 0 2.094-.813 2.797-2.297zM4.64-2.25c-.188.516-.516 2-1.672 2-.5 0-.703-.297-.703-1.047 0-.937.828-4.531 1.343-5.437.438-.735.891-.97 1.297-.97.313 0 .719.032.719 1.016 0 1.125-.922 4.22-.984 4.438zm0 0"/>
</svg>
<svg overflow="visible" x="495.317" y="45.569">
<path d="M6.125-3.469c0-1.234-.953-2.062-1.844-2.062-1.453 0-3.156 1.812-3.156 3.578 0 1.297.984 2.078 1.844 2.078 1.469 0 3.156-1.844 3.156-3.594zm-1.14-.453c0 .516-.235 1.766-.61 2.422-.484.86-.969 1.125-1.39 1.125-.5 0-.72-.313-.72-1.125 0-.547.22-1.766.61-2.438.453-.765.938-1.093 1.375-1.093.61 0 .734.422.734 1.11zm0 0"/>
</svg>
<svg overflow="visible" x="501.295" y="45.569">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="510.416" y="45.569">
<path d="M5.047-.344c0-.14-.266-.265-.469-.265h-.094c-.843 0-.671.03-.671-.125l-.063.093s.063-.171.11-.343l1.703-6.813a.555.555 0 00.03-.156c0-.063-.218-.266-.296-.266-.063 0-.203.063-.313.203-.5.688-1.03 1.25-1.906 1.329-.14.03-.422.156-.422.359 0 .094.25.266.36.266.328 0 .953-.188 1.03-.25L2.72-.984c-.094.406 0 .375-.906.375h-.11c-.203 0-.516.125-.516.359 0 .125.313.25.391.25l1.5-.031L4.625 0c.11 0 .422-.125.422-.344zm0 0"/>
</svg>
<svg overflow="visible" x="247.816" y="64">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="183.821" y="99.965">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="188.866" y="99.965">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="197.498" y="99.965">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="209.453" y="99.965">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="217.11" y="95.625">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="217.11" y="103.095">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="222.37" y="99.965">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
<svg overflow="visible" x="230.069" y="99.965">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="242.024" y="99.965">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="248.533" y="95.625">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="248.246" y="103.095">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="253.793" y="99.965">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="265.198" y="99.965">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="272.969" y="99.965">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="276.555" y="99.965">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="280.441" y="99.965">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="290.603" y="99.965">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="297.107" y="95.625">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="296.82" y="103.095">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="305.688" y="99.965">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="83.726">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="90.339">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="105.943">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="112.556">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="318.31" y="119.192">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
<svg overflow="visible" x="363.1" y="82.431">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="370.751" y="78.091">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="370.751" y="85.56">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="378.668" y="82.431">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="390.623" y="82.431">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="397.13" y="78.091">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="396.843" y="85.728">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="393.089" y="99.865">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="329.094" y="117.3">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="334.139" y="117.3">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="342.771" y="117.3">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="354.726" y="117.3">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="362.383" y="112.96">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="362.383" y="120.429">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="367.643" y="117.3">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
<svg overflow="visible" x="375.342" y="117.3">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="387.297" y="117.3">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="393.806" y="112.96">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="393.519" y="120.597">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="399.066" y="117.3">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="410.471" y="117.3">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="418.242" y="117.3">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="421.828" y="117.3">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="425.714" y="117.3">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="435.876" y="117.3">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="442.38" y="112.96">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
<svg overflow="visible" x="442.093" y="120.597">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="451.824" y="117.3">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="457.204" y="117.3">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="460.79" y="117.3">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="464.676" y="117.3">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="470.653" y="117.3">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="476.033" y="117.3">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="485.143" y="117.3">
<path d="M5.719-2.047c.375-.828.953-2.89.953-4.031 0-.328-.188-2.14-1.703-2.14-2.828 0-3.782 5.5-3.782 6.359 0 .703.391 2.109 1.735 2.109.969 0 2.094-.813 2.797-2.297zM4.64-2.25c-.188.516-.516 2-1.672 2-.5 0-.703-.297-.703-1.047 0-.937.828-4.531 1.343-5.437.438-.735.891-.97 1.297-.97.313 0 .719.032.719 1.016 0 1.125-.922 4.22-.984 4.438zm0 0"/>
</svg>
<svg overflow="visible" x="495.305" y="117.3">
<path d="M6.125-3.469c0-1.234-.953-2.062-1.844-2.062-1.453 0-3.156 1.812-3.156 3.578 0 1.297.984 2.078 1.844 2.078 1.469 0 3.156-1.844 3.156-3.594zm-1.14-.453c0 .516-.235 1.766-.61 2.422-.484.86-.969 1.125-1.39 1.125-.5 0-.72-.313-.72-1.125 0-.547.22-1.766.61-2.438.453-.765.938-1.093 1.375-1.093.61 0 .734.422.734 1.11zm0 0"/>
</svg>
<svg overflow="visible" x="501.283" y="117.3">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
<svg overflow="visible" x="510.404" y="117.3">
<path d="M5.047-.344c0-.14-.266-.265-.469-.265h-.094c-.843 0-.671.03-.671-.125l-.063.093s.063-.171.11-.343l1.703-6.813a.555.555 0 00.03-.156c0-.063-.218-.266-.296-.266-.063 0-.203.063-.313.203-.5.688-1.03 1.25-1.906 1.329-.14.03-.422.156-.422.359 0 .094.25.266.36.266.328 0 .953-.188 1.03-.25L2.72-.984c-.094.406 0 .375-.906.375h-.11c-.203 0-.516.125-.516.359 0 .125.313.25.391.25l1.5-.031L4.625 0c.11 0 .422-.125.422-.344zm0 0"/>
</svg>
<svg overflow="visible" x="102.542" y="135.731">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="38.548" y="198.346">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="43.593" y="198.346">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="52.225" y="198.346">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="64.18" y="198.346">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="71.837" y="194.006">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="71.837" y="201.643">
<path d="M4.516-1.61c0-.656-.75-1.468-1.672-1.656v.313c.89-.313 1.406-1.094 1.406-1.61 0-.656-.969-1.312-1.89-1.312-.938 0-1.86.61-1.86 1.281 0 .282.39.594.64.594.266 0 .641-.344.641-.578 0-.25-.375-.578-.297-.578.094-.11.532-.157.844-.157.375 0 .688.016.688.75 0 .344-.047.625-.266.891-.281.313-.36.281-.781.313-.203.015-.235.015-.266.015l.14.281s-.437-.109-.437-.015c0 .125.282.281.422.281h.453c.656 0 .922.297.922 1.188 0 1.046-.39 1.187-.89 1.187-.329 0-.922-.031-1.094-.266.078-.015.375-.453.375-.625 0-.265-.407-.625-.672-.625-.235 0-.672.297-.672.641C.25-.5 1.328.172 2.344.172 3.5.172 4.516-.766 4.516-1.61zm0 0"/>
</svg>
<svg overflow="visible" x="77.096" y="198.346">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
<svg overflow="visible" x="84.795" y="198.346">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="96.75" y="198.346">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="103.26" y="194.006">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="102.973" y="201.476">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="108.52" y="198.346">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
<svg overflow="visible" x="119.925" y="198.346">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="127.696" y="198.346">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="131.282" y="198.346">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="135.168" y="198.346">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="145.33" y="198.346">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="151.834" y="194.006">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="151.547" y="201.476">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="160.415" y="198.346">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="155.507">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="163.758">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="171.533">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="179.307">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="187.082">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="204.324">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="212.575">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="220.35">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="228.124">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="235.899">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
<svg overflow="visible" x="173.037" y="244.174">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
<svg overflow="visible" x="217.827" y="154.162">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="225.478" y="149.822">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="225.478" y="157.291">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="233.395" y="154.162">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
<svg overflow="visible" x="245.35" y="154.162">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
<svg overflow="visible" x="251.857" y="149.822">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
<svg overflow="visible" x="251.57" y="157.291">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<svg overflow="visible" x="247.816" y="189.031">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="183.821" y="224.996">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="188.866" y="224.996">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
<svg overflow="visible" x="197.498" y="224.996">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
<svg overflow="visible" x="209.453" y="224.996">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
<svg overflow="visible" x="217.11" y="220.656">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
<g>
<svg overflow="visible" x="217.11" y="228.126">
<path d="M4.234-1.844H3.75c-.047.344-.063.735-.172.813-.062.047-.562 0-.687 0H1.812c.563-.5.86-.735 1.36-1.125.625-.5 1.265-1.14 1.265-1.938 0-1-1.093-1.781-2.171-1.781-1.032 0-1.954.89-1.954 1.656 0 .422.579.625.657.625.203 0 .656-.297.656-.61 0-.14-.266-.593-.422-.593.188-.437.547-.469.938-.469.843 0 1.062.5 1.062 1.172 0 .735-.453 1.203-.719 1.5l-2.03 2C.374-.516.311-.39.311 0h3.844l.313-1.844zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="222.37" y="224.996">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="230.069" y="224.996">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="242.024" y="224.996">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="248.533" y="220.656">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="248.246" y="228.126">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="253.793" y="224.997">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="265.198" y="224.996">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="272.969" y="224.996">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="276.555" y="224.996">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="280.441" y="224.996">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="290.603" y="224.997">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="297.107" y="220.656">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="296.82" y="228.126">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="305.688" y="224.997">
<path d="M8.828-4.281c0-.125-.312-.375-.437-.375H.906c-.125 0-.437.25-.437.375 0 .14.312.375.437.375h7.485c.125 0 .437-.235.437-.375zm0 2.328c0-.14-.312-.375-.437-.375H.906c-.125 0-.437.234-.437.375 0 .125.312.36.437.36h7.485c.125 0 .437-.235.437-.36zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="318.31" y="208.758">
<path d="M9.219-8.781c0-.172-.344-.453-.5-.453-.047 0-.078.015-.11.03-2.015.735-4.03 2.782-4.03 4.595V0h1.609v-4.61c0-1.468.984-3.14 2.64-3.75.11-.046.39-.296.39-.421zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="318.31" y="215.371">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="318.31" y="230.974">
<path d="M6-18.188H4.578v4.61c0 1.64-.953 3.453-2.625 4.062-.11.032-.406.282-.406.422 0 .125.297.375.406.422 1.672.61 2.625 2.422 2.625 4.063V0h1.61v-4.61c0-1.765-1.485-3.687-3.032-4.484 1.547-.797 3.031-2.734 3.031-4.484v-4.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="318.31" y="237.587">
<path d="M6.188-.125v-9.078h-1.61V0h1.61zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="318.31" y="244.224">
<path d="M9.219-.438c0-.14-.281-.39-.39-.421-1.657-.61-2.642-2.282-2.642-3.75v-4.625H4.579v4.625c0 1.796 2.016 3.859 4.031 4.578A.226.226 0 008.72 0c.156 0 .5-.281.5-.438zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="363.1" y="207.462">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="370.751" y="203.122">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="370.751" y="210.591">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="378.668" y="207.462">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="390.623" y="207.462">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="397.13" y="203.122">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="396.843" y="210.759">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="393.089" y="224.896">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H5.078v-3.374c0-.141-.297-.375-.422-.375-.14 0-.453.234-.453.375v3.375H.906c-.125 0-.437.234-.437.359 0 .14.312.375.437.375h3.297V.625c0 .125.313.36.453.36.125 0 .422-.235.422-.36V-2.75h3.313c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="329.094" y="242.331">
<path d="M4.516 3.297c0-.031-.063-.172-.11-.188C3.078 2.11 2.25-.39 2.25-2.5v-1.234c0-2.11.828-4.61 2.156-5.61a.393.393 0 00.11-.187c0-.078-.235-.266-.313-.266-.016 0-.203.047-.203.063-1.438 1.062-2.813 3.765-2.813 6V-2.5C1.188-.266 2.563 2.422 4 3.484c0 .032.188.063.203.063.078 0 .313-.172.313-.25zm0 0"/>
</svg>
<svg overflow="visible" x="334.139" y="242.331">
<path d="M5.203-.125v-.516h-.578c-1.078 0-.922 0-.922-.437v-6.703c0-.282-.187-.438-.578-.438-.766.797-1.672.766-2.266.766v.625c.438 0 1.282-.031 1.563-.172v5.922c0 .437.172.437-.906.437H.937v.672C1.547-.03 2.595-.03 3.079-.03c.469 0 1.516 0 2.125.062zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="342.771" y="242.331">
<path d="M8.828-3.125c0-.125-.312-.36-.437-.36H.906c-.125 0-.437.235-.437.36 0 .14.312.375.437.375h7.485c.125 0 .437-.234.437-.375zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="354.726" y="242.331">
<path d="M7.328-4.61s-.14-.343-.281-.343c-.11 0-.313.156-.375.375-.219.75-.547 1.562-1.11 2.266l.329.093v-.734c0-1.875-1.297-2.594-2.188-2.594-1.64 0-3.422 1.844-3.422 3.531 0 1.11.922 2.141 2.14 2.141.75 0 1.75-.297 2.392-.813.093.313.687.813 1.218.813.64 0 1.203-.781 1.203-.969 0-.094-.265-.25-.343-.25-.079 0-.313.157-.36.25-.203.578-.328.672-.328.672L6.078-.39c-.375 0-.187-.796-.187-1.093 0-.25-.063-.172.062-.329 1.125-1.406 1.375-2.796 1.375-2.796zM4.75-1.405C3.703-.484 2.922-.391 2.453-.391c-.719 0-.89-.406-.89-1.171 0-.594.25-1.782.64-2.391.563-.875 1.078-1.063 1.485-1.063 1.187 0 .984 1.438.984 2.36 0 .437 0 1.14.016 1.312zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="362.383" y="237.991">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="362.383" y="245.461">
<path d="M4.172-.156v-.469H3.64c-.829 0-.625.063-.625-.219v-4.64c0-.235-.235-.391-.563-.391-.578.578-1.203.531-1.75.531v.625c.406 0 1.11-.047 1.219-.11v3.985c0 .281.203.219-.625.219H.766v.64L2.469-.03l1.703.047zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="367.643" y="242.331">
<path d="M3.844-2.5v-1.234c0-2.235-1.375-4.938-2.797-6a1.01 1.01 0 00-.203-.063c-.078 0-.328.188-.328.266 0 .031.062.156.109.187 1.328 1 2.156 3.5 2.156 5.61V-2.5c0 2.11-.828 4.61-2.156 5.61-.047.015-.11.156-.11.187 0 .078.25.25.329.25.015 0 .187-.031.203-.063C2.469 2.422 3.844-.266 3.844-2.5zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="375.342" y="242.331">
<path d="M7.594-.219c.093-.078.093-.422 0-.515L5.219-3.125 7.594-5.5c.093-.094.093-.438 0-.531-.094-.094-.516-.094-.61 0L4.656-3.688 2.313-6.03c-.094-.094-.532-.094-.61 0-.094.093-.094.437 0 .531l2.375 2.375-2.375 2.39c-.094.094-.094.438 0 .516.078.094.516.094.61 0L4.64-2.547 6.984-.219c.094.094.516.094.61 0zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="387.297" y="242.331">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="393.806" y="237.991">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="393.519" y="245.628">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="399.066" y="242.331">
<path d="M2.625-.14c0-.797-.5-1.391-.969-1.391-.39 0-.828.437-.828.765 0 .329.438.766.828.766.157 0 .438-.078.563-.188l.047-.046s-.313-.078-.313.093c0 .875-.344 1.5-.75 1.891-.125.14-.187.266-.187.297 0 .078.265.265.328.265.125 0 1.281-1.062 1.281-2.453zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="410.471" y="242.331">
<path d="M7.672-1.672c.187-.484.687-2.25.687-2.969 0-.609-.421-.89-.64-.89-.219 0-.719.36-.719.625 0 .11.094.265.203.39.266.313.25.672.25.86 0 .469-.39 1.75-.562 2.187-.25.64-.454 1.094-1.063 1.094-.61 0-.594-.406-.594-.875 0-.344.079-.656.235-1.281l.406-1.578c.063-.297.203-.829.203-.891 0-.172-.328-.422-.484-.422-.328 0-.61.438-.657.61l-.656 2.656c-.078.344-.093.64-.093.734 0 .172-.188 1.047-.829 1.047-.687 0-.64-.516-.64-.922 0-.516.203-1.219.594-2.328.171-.484.218-.61.218-.844 0-.484-.453-1.062-1.047-1.062-1.078 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.36.219-1.36.922-1.36.14 0 .078-.077.078.22 0 .296-.125.609-.375 1.296-.39 1.079-.516 1.641-.516 2.063C1.656-.281 2.72.125 3.328.125c.313 0 .844-.11 1.11-.547.109.344 1.03.547 1.359.547.906 0 1.547-.938 1.875-1.797zm0 0"/>
</svg>
<svg overflow="visible" x="418.242" y="242.331">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="421.828" y="242.331">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="425.714" y="242.331">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="435.876" y="242.331">
<path d="M6.297-8.203s-.125-.36-.281-.36c-.188 0-1.313.11-1.516.141-.094 0-.375.203-.375.36 0 .14.313.265.484.265.579 0 .407-.047.407.078l-.047.235-.719 2.828h.406c-.218-.438-.765-.89-1.297-.89-1.406 0-3.078 1.89-3.078 3.64 0 1.125.86 2.031 1.781 2.031.25 0 .97-.078 1.422-.61.032.094.657.61 1.22.61.421 0 .827-.297 1.015-.688l.062-.093c.203-.438.297-1.094.297-1.094l.063-.094c0-.11-.297-.25-.329-.25-.125 0-.343.188-.375.344-.203.781-.218 1.36-.703 1.36-.328 0-.171-.188-.171-.422 0-.282.03-.375.078-.579l1.718-6.906zm-2.188 4.11c0 .062-.015.14-.03.202l-.595 2.344c-.062.203 0 .14-.187.344-.531.656-.875.812-1.203.812-.594 0-.578-.53-.578-1 0-.593.328-1.968.593-2.515.375-.703.782-1.11 1.266-1.11.766 0 .734.844.734.922zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="442.38" y="237.991">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="442.093" y="245.628">
<path d="M4.531-2.828c0-.922-.172-1.688-.562-2.281-.266-.391-.922-.766-1.594-.766C.437-5.875.219-3.437.219-2.828c0 .594.218 3 2.156 3 1.953 0 2.156-2.406 2.156-3zm-1.187-.11c0 .626 0 1.235-.11 1.766-.156.766-.515.781-.859.781-.375 0-.688-.062-.844-.75-.125-.5-.125-1.171-.125-1.796 0-.61 0-1.25.125-1.704.172-.671.5-.687.844-.687.453 0 .688.125.828.61.14.452.14 1.046.14 1.78zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="451.824" y="242.331">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="457.204" y="242.331">
<path d="M4.047-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.14 0-.094.063-.094-.219 0-.312.157-.75.376-1.328l.703-1.937c.109-.297.14-.391.14-.61 0-.61-.578-1.062-1.047-1.062-1.093 0-1.687 1.89-1.687 1.953 0 .11.297.25.36.25.14 0 .343-.172.39-.344.094-.375.219-1.36.922-1.36.25 0 .062.095.062.22 0 .312-.062.515-.156.734l-.953 2.594c-.094.265-.094.421-.094.53 0 .688.656 1.079 1.047 1.079 1.11 0 1.672-1.922 1.672-1.969zm.312-5.578c0-.328-.421-.61-.656-.61-.36 0-.89.47-.89.813 0 .328.437.61.671.61.36 0 .875-.454.875-.813zm0 0"/>
</svg>
<svg overflow="visible" x="460.79" y="242.331">
<path d="M4.344-1.844c0-.11-.297-.234-.344-.234-.125 0-.328.156-.39.281-.141.375-.422 1.422-1.188 1.422-.188 0-.172.047-.172-.36 0-.171.047-.453.094-.624l.86-3.454h.843c.203 0 .5-.125.5-.343 0-.125-.25-.266-.453-.266h-.735l.438-1.766c-.047.094-.031-.03-.031-.03l.062-.095c0-.109-.265-.421-.5-.421-.297 0-.594.39-.64.578l-.422 1.734h-.86c-.218 0-.515.14-.515.36 0 .125.28.25.468.25h.75L1.281-1.5c-.062.25-.062.39-.062.438 0 .546.515 1.187 1.172 1.187 1.171 0 1.953-1.906 1.953-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="464.676" y="242.331">
<path d="M6.438-1.844c0-.11-.297-.234-.344-.234-.14 0-.344.172-.39.344-.11.406-.235 1.359-.907 1.359-.188 0-.094.047-.094-.234 0-.282.125-.657.219-.891.312-.875.719-1.984.719-2.688 0-.625-.454-1.343-1.375-1.343-.766 0-1.391.468-1.735.875l.313.11.89-3.61a.35.35 0 00.047-.156c0-.11-.265-.25-.453-.235l-1.203.11c-.172.015-.469.156-.469.374 0 .11.297.25.453.25.61 0 .407-.03.407.094 0 .047-.016.172-.032.219L.734-.531c-.03.156-.046.187-.046.219 0 .156.296.437.5.437.343 0 .593-.453.625-.531l.734-2.969c.078-.266.531-1.656 1.687-1.656.547 0 .36.468.36.672 0 .734-.532 2.171-.735 2.75-.109.312-.156.421-.156.671 0 .563.563 1.063 1.047 1.063 1.125 0 1.688-1.922 1.688-1.969zm0 0"/>
</svg>
<svg overflow="visible" x="470.653" y="242.331">
<path d="M5.64-1.39c0-.079-.28-.313-.343-.313a.51.51 0 00-.281.156c-.625.86-1.391 1.172-2 1.172-.797 0-.72-.813-.72-1.203 0-.531.079-.86.173-1.188h.281c.422 0 2.844-.14 2.844-1.64 0-.547-.625-1.125-1.328-1.125-1.235 0-3.094 1.343-3.094 3.453C1.172-.875 1.984.125 3 .125c1.484 0 2.64-1.344 2.64-1.516zm-.827-3.032c0 1.281-1.782 1.14-2.172 1.14h-.032c.438-1.765 1.438-1.75 1.641-1.75.484 0 .563.204.563.61zm0 0"/>
</svg>
<svg overflow="visible" x="476.033" y="242.331">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="485.143" y="242.331">
<path d="M5.719-2.047c.375-.828.953-2.89.953-4.031 0-.328-.188-2.14-1.703-2.14-2.828 0-3.782 5.5-3.782 6.359 0 .703.391 2.109 1.735 2.109.969 0 2.094-.813 2.797-2.297zM4.64-2.25c-.188.516-.516 2-1.672 2-.5 0-.703-.297-.703-1.047 0-.937.828-4.531 1.343-5.437.438-.735.891-.97 1.297-.97.313 0 .719.032.719 1.016 0 1.125-.922 4.22-.984 4.438zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="495.305" y="242.331">
<path d="M6.125-3.469c0-1.234-.953-2.062-1.844-2.062-1.453 0-3.156 1.812-3.156 3.578 0 1.297.984 2.078 1.844 2.078 1.469 0 3.156-1.844 3.156-3.594zm-1.14-.453c0 .516-.235 1.766-.61 2.422-.484.86-.969 1.125-1.39 1.125-.5 0-.72-.313-.72-1.125 0-.547.22-1.766.61-2.438.453-.765.938-1.093 1.375-1.093.61 0 .734.422.734 1.11zm0 0"/>
</svg>
<svg overflow="visible" x="501.283" y="242.331">
<path d="M5.922-4.703c0-.61-.984-.828-1.313-.828-.562 0-1.14.297-1.578.922l.297.093c-.094-.703-.797-1.015-1.11-1.015-.28 0-.78.25-1.14 1-.062.11.031 1.047.031 1.047l-.312-.094c0 .094.25.25.36.25.14 0 .327-.156.39-.422.187-.703.234-1.281.64-1.281.313 0 .126.218.126.36 0 .218-.047.484-.094.655L1.344-.53c-.047.172-.047.187-.047.234 0 .14.281.422.5.422.266 0 .562-.36.625-.563l.765-3.109c.047-.14.391-1.484 1.407-1.484.062 0 .265-.032.297-.016.171-.031-.235.281-.235.578 0 .25.375.469.563.469.203 0 .703-.281.703-.703zm0 0"/>
</svg>
</g>
<g>
<svg overflow="visible" x="510.404" y="242.331">
<path d="M5.047-.344c0-.14-.266-.265-.469-.265h-.094c-.843 0-.671.03-.671-.125l-.063.093s.063-.171.11-.343l1.703-6.813a.555.555 0 00.03-.156c0-.063-.218-.266-.296-.266-.063 0-.203.063-.313.203-.5.688-1.03 1.25-1.906 1.329-.14.03-.422.156-.422.359 0 .094.25.266.36.266.328 0 .953-.188 1.03-.25L2.72-.984c-.094.406 0 .375-.906.375h-.11c-.203 0-.516.125-.516.359 0 .125.313.25.391.25l1.5-.031L4.625 0c.11 0 .422-.125.422-.344zm0 0"/>
</svg>
</g>
</svg>

After

Width:  |  Height:  |  Size: 134 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -2331,12 +2331,12 @@ for p = 1 to points.length-3 (inclusive):
<section id="bsplines">
<h1><a href="#bsplines">B-Splines</a></h1>
<p>No discussion on Bézier curves is complete without also giving mention of that other beast in the curve design space: B-Splines. Easily confused to mean Bézier splines, that's not actually what they are; they are "basis function" splines, which makes a lot of difference, and we'll be looking at those differences in this section. We're not going to dive as deep into B-Splines as we have for Bézier curves (that would be an entire primer on its own) but we'll be looking at how B-Splines work, what kind of maths is involved in computing them, and how to draw them based on a number of parameters that you can pick for individual B-Splines.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise</a>, <a href="https://en.wikipedia.org/wiki/Spline_(mathematics)">polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>What do they look like? They look like this! Tap on the graphic to add more points, and move points around to see how they map to the spline curve drawn.</p>
<graphics-element title="A B-Spline example" width="600" height="300" src="./chapters/bsplines/basic.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\d9a99344a5de4b5be77824f8f8caa707.png">
<img width="600px" height="300px" src="images\chapters\bsplines\61f28e4b071beeaf755f8826c529fe0a.png">
<label></label>
</fallback-image></graphics-element>
@@ -2346,13 +2346,15 @@ for p = 1 to points.length-3 (inclusive):
<li>for Bézier curves, the curve is defined as an interpolation of points, but:</li>
<li>for B-Splines, the curve is defined as an interpolation of <em>curves</em>.</li>
</ul>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points defined one curve:</p>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points define one curve:</p>
<graphics-element title="The components of a B-Spline " width="600" height="300" src="./chapters/bsplines/basic.js" data-show-curves="true">
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\3f66c97dcdd56d201c2acda3bd403bbf.png">
<img width="600px" height="300px" src="images\chapters\bsplines\ac9e15a627ed2bc88c5e1b73147b7991.png">
<label></label>
</fallback-image></graphics-element>
</fallback-image>
<!-- basis curve highlighter goes here -->
</graphics-element>
<p>In order to make this interpolation of curves work, the maths is necessarily more complex than the maths for Bézier curves, so let's have a look at how things work.</p>
<h2>How to compute a B-Spline curve: some maths</h2>
@@ -2372,29 +2374,31 @@ Doing so for a degree <code>d</code> B-Spline with <code>n</code> control point
<img class="LaTeX SVG" src="./images/chapters/bsplines/763838ea6f9e6c6aa63ea5f9c6d9542f.svg" width="287px" height="21px" loading="lazy">
<p>This is another recursive function, with <em>k</em> values decreasing from the curve order to 1, and the value <em>α</em> (alpha) defined by:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/892209dad8fd1f839470dd061e870913.svg" width="261px" height="39px" loading="lazy">
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers and once we have our alpha value, computing (1-alpha) is literally just "computing one minus alpha". Computing this d() function is thus simply a matter of "computing simple arithmetics but with recursion", which might be computationally expensive because we're doing "a lot of" steps, but is also computationally cheap because each step only involves very simple maths. Of course as before the recursion has to stop:</p>
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers. And, once we have our alpha value, we also have <code>(1-alpha)</code> because it's a trivial subtraction. Computing the <code>d()</code> function is thus mostly a matter of computing pretty simple arithmetical statements, with some caching of results so we can refer to them as we recurve. While the recursion might see computationally expensive, the total algorithm is cheap, as each step only involves very simple maths.</p>
<p>Of course, the recursion does need a stop condition:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/4c8f9814c50c708757eeb5a68afabb7f.svg" width="376px" height="40px" loading="lazy">
<p>So, we see two stopping conditions: either <code>i</code> becomes 0, in which case d() is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily: we just need to compute a triangle of interconnected values. For instance, d() for i=3, k=3 yields the following triangle:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/7962d6fea86da6f53a7269fba30f0138.svg" width="419px" height="217px" loading="lazy">
<p>That is, we compute d(3,3) as a mixture of d(2,3) and d(2,2): d(3,3) = a(3,3) x d(2,3) + (1-a(3,3)) x d(2,2)... and we simply keep expanding our triangle until we reach the terminating function parameters. Done deal!</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point: that's pretty essential!</p>
<p>If we run this computation "down", starting at d(3,3), then without special code in place we would be computing quite a few terms multiple times at each step. On the other hand, we can also start with that last "column", we can generate the terminating d() values first, then compute the a() constants, perform our multiplications, generate the previous step's d() values, compute their a() constants, do the multiplications, etc. until we end up all the way back at the top. If we run our computation this way, we don't need any explicit caching, we can just "recycle" the list of numbers we start with and simply update them as we move up the triangle. So, let's implement that!</p>
<h2>Cool, cool... but I don't know what to do with that information</h2>
<p>I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).</p>
<!-- THIS GRAPH IS EXTREMELY NOT-USEFUL, BUT WE'RE PORTING IT FIRST, AND REWRITING IT LATER -->
<p>So, we actually see two stopping conditions: either <code>i</code> becomes 0, in which case <code>d()</code> is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily using the same kind of linear interpolation we saw in de Casteljau's algorithm. For instance, if we write out <code>d()</code> for <code>i=3</code> and <code>k=3</code>, we get the following recursion diagram:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/bd187c361b285ef878d0bc17af8a3900.svg" width="688px" height="328px" loading="lazy">
<p>That is, we compute <code>d(3,3)</code> as a mixture of <code>d(2,3)</code> and <code>d(2,2)</code>, where those two are themselves a mixture of <code>d(1,3)</code> and <code>d(1,2)</code>, and <code>d(1,2)</code> and <code>d(1,1)</code>, respectively, which are themselves a mixture of etc. etc. We simply keep expanding our terms until we reach the stop conditions, and then sum everything back up. It's really quite elegant.</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point, rather than first starting "on the left", working our way "to the right" and then summing back up "to the left". We can just start on the right and work our way left immediately.</p>
<!--
## Cool, cool... but I don't know what to do with that information
I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).
<graphics-element title="Visualising relative interpolation strengths" width="600" height="300" src="./chapters/bsplines/interpolation.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\bd03680e4661ae7f4d687b2f229d2495.png">
<img width="600px" height="300px" src="images\chapters\bsplines\c7fe4f9cba8d4bc06436f4f238d202ce.png">
<label></label>
</fallback-image>
<!-- weight factors go here, similar to curve fitting sliders -->
</graphics-element>
</fallback-image></graphics-element>
Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual *shape* of the curve inside that hull.
After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!
-->
<p>Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual <em>shape</em> of the curve inside that hull.</p>
<p>After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!</p>
<h2>Running the computation</h2>
<p>Unlike the de Casteljau algorithm, where the <code>t</code> value stays the same at every iteration, for B-Splines that is not the case, and so we end having to (for each point we evaluate) run a fairly involving bit of recursive computation. The algorithm is discussed on <a href="http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-Boor.html">this Michigan Tech</a> page, but an easier to read version is implemented by <a href="https://github.com/thibauts/b-spline/blob/master/index.js#L59-L71">b-spline.js</a>, so we'll look at its code.</p>
<p>Given an input value <code>t</code>, we first map the input to a value from the domain [0,1] to the domain [knots[degree], knots[knots.length - 1 - degree]. Then, we find the section number <code>s</code> that this mapped <code>t</code> value lies on:</p>
@@ -2432,7 +2436,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\3cfaf7bf5e950072437cfe70391155fa.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>This is an important point: the intervals that the knot vector defines are <em>relative</em> intervals, so it doesn't matter if every interval is size 1, or size 100 - the relative differences between the intervals is what shapes any particular curve.</p>
@@ -2445,7 +2449,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\6ba59877389e2c856234403ecbd953f9.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2458,7 +2462,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\9c4bbb753918e3cb8cbc5a770a2af9ee.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2469,10 +2473,10 @@ for(let L = 1; L &lt;= order; L++) {
<graphics-element title="A (closed) rational, uniform B-Spline" width="400" height="400" src="./chapters/bsplines/rational-uniform.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="400px" height="400px" src="images\chapters\bsplines\dda4911d5148032e005a02ef33b78978.png">
<img width="400px" height="400px" src="images\chapters\bsplines\e50d628696245ef68b691e28b2162d56.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>Of course this brings us to the final topic that any text on B-Splines must touch on before calling it a day: the <a href="https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline">NURBS</a>, or Non-Uniform Rational B-Spline (NURBS is not a plural, the capital S actually just stands for "spline", but a lot of people mistakenly treat it as if it is, so now you know better). NURBS is an important type of curve in computer-facilitated design, used a lot in 3D modelling (typically as NURBS surfaces) as well as in arbitrary-precision 2D design due to the level of control a NURBS curve offers designers.</p>

View File

@@ -2327,12 +2327,12 @@ for p = 1 to points.length-3 (inclusive):
<section id="bsplines">
<h1><a href="ja-JP/index.html#bsplines">B-Splines</a></h1>
<p>No discussion on Bézier curves is complete without also giving mention of that other beast in the curve design space: B-Splines. Easily confused to mean Bézier splines, that's not actually what they are; they are "basis function" splines, which makes a lot of difference, and we'll be looking at those differences in this section. We're not going to dive as deep into B-Splines as we have for Bézier curves (that would be an entire primer on its own) but we'll be looking at how B-Splines work, what kind of maths is involved in computing them, and how to draw them based on a number of parameters that you can pick for individual B-Splines.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise</a>, <a href="https://en.wikipedia.org/wiki/Spline_(mathematics)">polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>What do they look like? They look like this! Tap on the graphic to add more points, and move points around to see how they map to the spline curve drawn.</p>
<graphics-element title="A B-Spline example" width="600" height="300" src="./chapters/bsplines/basic.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\d9a99344a5de4b5be77824f8f8caa707.png">
<img width="600px" height="300px" src="images\chapters\bsplines\61f28e4b071beeaf755f8826c529fe0a.png">
<label></label>
</fallback-image></graphics-element>
@@ -2342,13 +2342,15 @@ for p = 1 to points.length-3 (inclusive):
<li>for Bézier curves, the curve is defined as an interpolation of points, but:</li>
<li>for B-Splines, the curve is defined as an interpolation of <em>curves</em>.</li>
</ul>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points defined one curve:</p>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points define one curve:</p>
<graphics-element title="The components of a B-Spline " width="600" height="300" src="./chapters/bsplines/basic.js" data-show-curves="true">
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\3f66c97dcdd56d201c2acda3bd403bbf.png">
<img width="600px" height="300px" src="images\chapters\bsplines\ac9e15a627ed2bc88c5e1b73147b7991.png">
<label></label>
</fallback-image></graphics-element>
</fallback-image>
<!-- basis curve highlighter goes here -->
</graphics-element>
<p>In order to make this interpolation of curves work, the maths is necessarily more complex than the maths for Bézier curves, so let's have a look at how things work.</p>
<h2>How to compute a B-Spline curve: some maths</h2>
@@ -2368,29 +2370,31 @@ Doing so for a degree <code>d</code> B-Spline with <code>n</code> control point
<img class="LaTeX SVG" src="./images/chapters/bsplines/763838ea6f9e6c6aa63ea5f9c6d9542f.svg" width="287px" height="21px" loading="lazy">
<p>This is another recursive function, with <em>k</em> values decreasing from the curve order to 1, and the value <em>α</em> (alpha) defined by:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/892209dad8fd1f839470dd061e870913.svg" width="261px" height="39px" loading="lazy">
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers and once we have our alpha value, computing (1-alpha) is literally just "computing one minus alpha". Computing this d() function is thus simply a matter of "computing simple arithmetics but with recursion", which might be computationally expensive because we're doing "a lot of" steps, but is also computationally cheap because each step only involves very simple maths. Of course as before the recursion has to stop:</p>
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers. And, once we have our alpha value, we also have <code>(1-alpha)</code> because it's a trivial subtraction. Computing the <code>d()</code> function is thus mostly a matter of computing pretty simple arithmetical statements, with some caching of results so we can refer to them as we recurve. While the recursion might see computationally expensive, the total algorithm is cheap, as each step only involves very simple maths.</p>
<p>Of course, the recursion does need a stop condition:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/4c8f9814c50c708757eeb5a68afabb7f.svg" width="376px" height="40px" loading="lazy">
<p>So, we see two stopping conditions: either <code>i</code> becomes 0, in which case d() is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily: we just need to compute a triangle of interconnected values. For instance, d() for i=3, k=3 yields the following triangle:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/7962d6fea86da6f53a7269fba30f0138.svg" width="419px" height="217px" loading="lazy">
<p>That is, we compute d(3,3) as a mixture of d(2,3) and d(2,2): d(3,3) = a(3,3) x d(2,3) + (1-a(3,3)) x d(2,2)... and we simply keep expanding our triangle until we reach the terminating function parameters. Done deal!</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point: that's pretty essential!</p>
<p>If we run this computation "down", starting at d(3,3), then without special code in place we would be computing quite a few terms multiple times at each step. On the other hand, we can also start with that last "column", we can generate the terminating d() values first, then compute the a() constants, perform our multiplications, generate the previous step's d() values, compute their a() constants, do the multiplications, etc. until we end up all the way back at the top. If we run our computation this way, we don't need any explicit caching, we can just "recycle" the list of numbers we start with and simply update them as we move up the triangle. So, let's implement that!</p>
<h2>Cool, cool... but I don't know what to do with that information</h2>
<p>I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).</p>
<!-- THIS GRAPH IS EXTREMELY NOT-USEFUL, BUT WE'RE PORTING IT FIRST, AND REWRITING IT LATER -->
<p>So, we actually see two stopping conditions: either <code>i</code> becomes 0, in which case <code>d()</code> is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily using the same kind of linear interpolation we saw in de Casteljau's algorithm. For instance, if we write out <code>d()</code> for <code>i=3</code> and <code>k=3</code>, we get the following recursion diagram:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/bd187c361b285ef878d0bc17af8a3900.svg" width="688px" height="328px" loading="lazy">
<p>That is, we compute <code>d(3,3)</code> as a mixture of <code>d(2,3)</code> and <code>d(2,2)</code>, where those two are themselves a mixture of <code>d(1,3)</code> and <code>d(1,2)</code>, and <code>d(1,2)</code> and <code>d(1,1)</code>, respectively, which are themselves a mixture of etc. etc. We simply keep expanding our terms until we reach the stop conditions, and then sum everything back up. It's really quite elegant.</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point, rather than first starting "on the left", working our way "to the right" and then summing back up "to the left". We can just start on the right and work our way left immediately.</p>
<!--
## Cool, cool... but I don't know what to do with that information
I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).
<graphics-element title="Visualising relative interpolation strengths" width="600" height="300" src="./chapters/bsplines/interpolation.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\bd03680e4661ae7f4d687b2f229d2495.png">
<img width="600px" height="300px" src="images\chapters\bsplines\c7fe4f9cba8d4bc06436f4f238d202ce.png">
<label></label>
</fallback-image>
<!-- weight factors go here, similar to curve fitting sliders -->
</graphics-element>
</fallback-image></graphics-element>
Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual *shape* of the curve inside that hull.
After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!
-->
<p>Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual <em>shape</em> of the curve inside that hull.</p>
<p>After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!</p>
<h2>Running the computation</h2>
<p>Unlike the de Casteljau algorithm, where the <code>t</code> value stays the same at every iteration, for B-Splines that is not the case, and so we end having to (for each point we evaluate) run a fairly involving bit of recursive computation. The algorithm is discussed on <a href="http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-Boor.html">this Michigan Tech</a> page, but an easier to read version is implemented by <a href="https://github.com/thibauts/b-spline/blob/master/index.js#L59-L71">b-spline.js</a>, so we'll look at its code.</p>
<p>Given an input value <code>t</code>, we first map the input to a value from the domain [0,1] to the domain [knots[degree], knots[knots.length - 1 - degree]. Then, we find the section number <code>s</code> that this mapped <code>t</code> value lies on:</p>
@@ -2428,7 +2432,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\3cfaf7bf5e950072437cfe70391155fa.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>This is an important point: the intervals that the knot vector defines are <em>relative</em> intervals, so it doesn't matter if every interval is size 1, or size 100 - the relative differences between the intervals is what shapes any particular curve.</p>
@@ -2441,7 +2445,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\6ba59877389e2c856234403ecbd953f9.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2454,7 +2458,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\9c4bbb753918e3cb8cbc5a770a2af9ee.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2465,10 +2469,10 @@ for(let L = 1; L &lt;= order; L++) {
<graphics-element title="A (closed) rational, uniform B-Spline" width="400" height="400" src="./chapters/bsplines/rational-uniform.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="400px" height="400px" src="images\chapters\bsplines\dda4911d5148032e005a02ef33b78978.png">
<img width="400px" height="400px" src="images\chapters\bsplines\e50d628696245ef68b691e28b2162d56.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>Of course this brings us to the final topic that any text on B-Splines must touch on before calling it a day: the <a href="https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline">NURBS</a>, or Non-Uniform Rational B-Spline (NURBS is not a plural, the capital S actually just stands for "spline", but a lot of people mistakenly treat it as if it is, so now you know better). NURBS is an important type of curve in computer-facilitated design, used a lot in 3D modelling (typically as NURBS surfaces) as well as in arbitrary-precision 2D design due to the level of control a NURBS curve offers designers.</p>

View File

@@ -194,6 +194,29 @@ class GraphicsAPI extends BaseAPI {
}
}
/**
* Update a slider with new min/max/step parameters, and value.
*
* @param {*} propname
* @param {*} min
* @param {*} max
* @param {*} step
* @param {*} value
*/
updateSlider(propname, min, max, step, value) {
let slider = this._sliders[propname];
if (!slider) {
throw new Error(`this.${propname} has no associated slider.`);
}
slider.setAttribute(`min`, min);
slider.setAttribute(`max`, max);
slider.setAttribute(`step`, step);
slider.setAttribute(`value`, value);
slider.updateProperty(value);
}
/**
* Set up a slider to control a named, numerical property in the sketch.
*
@@ -207,6 +230,8 @@ class GraphicsAPI extends BaseAPI {
throw new Error(`this.${propname} already exists: cannot bind slider.`);
}
this._sliders = this._sliders || {};
let propLabel = propname.replace(`!`, ``);
propname = propLabel === propname ? propname : false;
@@ -225,6 +250,7 @@ class GraphicsAPI extends BaseAPI {
wrapper.append(label);
slider.parentNode.replaceChild(wrapper, slider);
slider.setAttribute(`class`, `slider`);
this._sliders[propname] = slider;
wrapper.append(slider);
let valueField = create(`label`);
valueField.classList.add(`slider-value`);
@@ -239,7 +265,7 @@ class GraphicsAPI extends BaseAPI {
return undefined;
}
const updateProperty = (evt) => {
slider.updateProperty = (evt) => {
let value = parseFloat(slider.value);
ui.update(value);
try {
@@ -258,8 +284,8 @@ class GraphicsAPI extends BaseAPI {
};
slider.value = initial;
updateProperty({ target: { value: initial } });
slider.listen(`input`, updateProperty);
slider.updateProperty({ target: { value: initial } });
slider.listen(`input`, (evt) => slider.updateProperty(evt));
return slider;
}

View File

@@ -77,7 +77,6 @@ class Bezier extends Original {
drawCurve(color = `#333`) {
const ctx = this.ctx;
ctx.cacheStyle();
ctx.lineWidth = 1;
ctx.strokeStyle = color;
ctx.beginPath();
const lut = this.getLUT().slice();

View File

@@ -6,7 +6,14 @@ import performCodeSurgery from "./lib/perform-code-surgery.js";
const MODULE_URL = import.meta.url;
const MODULE_PATH = MODULE_URL.slice(0, MODULE_URL.lastIndexOf(`/`));
// Really wish this was baked into the DOM API...
// Until global `await` gets added to JS, we need to declare this "constant"
// using the `let` keyword instead, and then boostrap its value during the
// `loadSource` call (using the standard if(undefined){assignvalue} pattern).
let IMPORT_GLOBALS_FROM_GRAPHICS_API = undefined;
// Really wish this was baked into the DOM API. Having to use an
// IntersectionObserver with bounding box fallback is super dumb
// from an authoring perspective.
function isInViewport(e) {
if (typeof window === `undefined`) return true;
if (typeof document === `undefined`) return true;
@@ -110,6 +117,15 @@ class GraphicsElement extends CustomElement {
async loadSource() {
debugLog(`loading ${this.getAttribute(`src`)}`);
if (!IMPORT_GLOBALS_FROM_GRAPHICS_API) {
const importStatement = (
await fetch(`${MODULE_PATH}/api/graphics-api.js`).then((r) => r.text())
)
.match(/(export { [^}]+ })/)[0]
.replace(`export`, `import`);
IMPORT_GLOBALS_FROM_GRAPHICS_API = `${importStatement} from "${MODULE_PATH}/api/graphics-api.js"`;
}
let src = false;
let codeElement = this.querySelector(`program-code`);
@@ -207,7 +223,7 @@ class GraphicsElement extends CustomElement {
* Program source: ${src}
* Data attributes: ${JSON.stringify(this.dataset)}
*/
import { GraphicsAPI, Bezier, BSpline, Vector, Matrix, Shape } from "${MODULE_PATH}/api/graphics-api.js";
${IMPORT_GLOBALS_FROM_GRAPHICS_API};
${globalCode}

View File

@@ -162,7 +162,7 @@ graphics-element .slider-wrapper:first-of-type {
clear: both;
border-top: 1px solid black;
margin-top: 0.1em;
padding-top: 2px;
padding-top: 0.4em;
}
graphics-element .slider-wrapper:last-of-type {

View File

@@ -2321,12 +2321,12 @@ for p = 1 to points.length-3 (inclusive):
<section id="bsplines">
<h1><a href="zh-CN/index.html#bsplines">B-Splines</a></h1>
<p>No discussion on Bézier curves is complete without also giving mention of that other beast in the curve design space: B-Splines. Easily confused to mean Bézier splines, that's not actually what they are; they are "basis function" splines, which makes a lot of difference, and we'll be looking at those differences in this section. We're not going to dive as deep into B-Splines as we have for Bézier curves (that would be an entire primer on its own) but we'll be looking at how B-Splines work, what kind of maths is involved in computing them, and how to draw them based on a number of parameters that you can pick for individual B-Splines.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>First off: B-Splines are <a href="https://en.wikipedia.org/wiki/Piecewise">piecewise</a>, <a href="https://en.wikipedia.org/wiki/Spline_(mathematics)">polynomial interpolation curves</a>, where the "single curve" is built by performing polynomial interpolation over a set of points, using a sliding window of a fixed number of points. For instance, a "cubic" B-Spline defined by twelve points will have its curve built by evaluating the polynomial interpolation of four points, and the curve can be treated as a lot of different sections, each controlled by four points at a time, such that the full curve consists of smoothly connected sections defined by points {1,2,3,4}, {2,3,4,5}, ..., {8,9,10,11}, and finally {9,10,11,12}, for eight sections.</p>
<p>What do they look like? They look like this! Tap on the graphic to add more points, and move points around to see how they map to the spline curve drawn.</p>
<graphics-element title="A B-Spline example" width="600" height="300" src="./chapters/bsplines/basic.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\d9a99344a5de4b5be77824f8f8caa707.png">
<img width="600px" height="300px" src="images\chapters\bsplines\61f28e4b071beeaf755f8826c529fe0a.png">
<label></label>
</fallback-image></graphics-element>
@@ -2336,13 +2336,15 @@ for p = 1 to points.length-3 (inclusive):
<li>for Bézier curves, the curve is defined as an interpolation of points, but:</li>
<li>for B-Splines, the curve is defined as an interpolation of <em>curves</em>.</li>
</ul>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points defined one curve:</p>
<p>In fact, let's look at that again, but this time with the base curves shown, too. Each consecutive four points define one curve:</p>
<graphics-element title="The components of a B-Spline " width="600" height="300" src="./chapters/bsplines/basic.js" data-show-curves="true">
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\3f66c97dcdd56d201c2acda3bd403bbf.png">
<img width="600px" height="300px" src="images\chapters\bsplines\ac9e15a627ed2bc88c5e1b73147b7991.png">
<label></label>
</fallback-image></graphics-element>
</fallback-image>
<!-- basis curve highlighter goes here -->
</graphics-element>
<p>In order to make this interpolation of curves work, the maths is necessarily more complex than the maths for Bézier curves, so let's have a look at how things work.</p>
<h2>How to compute a B-Spline curve: some maths</h2>
@@ -2362,29 +2364,31 @@ Doing so for a degree <code>d</code> B-Spline with <code>n</code> control point
<img class="LaTeX SVG" src="./images/chapters/bsplines/763838ea6f9e6c6aa63ea5f9c6d9542f.svg" width="287px" height="21px" loading="lazy">
<p>This is another recursive function, with <em>k</em> values decreasing from the curve order to 1, and the value <em>α</em> (alpha) defined by:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/892209dad8fd1f839470dd061e870913.svg" width="261px" height="39px" loading="lazy">
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers and once we have our alpha value, computing (1-alpha) is literally just "computing one minus alpha". Computing this d() function is thus simply a matter of "computing simple arithmetics but with recursion", which might be computationally expensive because we're doing "a lot of" steps, but is also computationally cheap because each step only involves very simple maths. Of course as before the recursion has to stop:</p>
<p>That looks complicated, but it's not. Computing alpha is just a fraction involving known, plain numbers. And, once we have our alpha value, we also have <code>(1-alpha)</code> because it's a trivial subtraction. Computing the <code>d()</code> function is thus mostly a matter of computing pretty simple arithmetical statements, with some caching of results so we can refer to them as we recurve. While the recursion might see computationally expensive, the total algorithm is cheap, as each step only involves very simple maths.</p>
<p>Of course, the recursion does need a stop condition:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/4c8f9814c50c708757eeb5a68afabb7f.svg" width="376px" height="40px" loading="lazy">
<p>So, we see two stopping conditions: either <code>i</code> becomes 0, in which case d() is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily: we just need to compute a triangle of interconnected values. For instance, d() for i=3, k=3 yields the following triangle:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/7962d6fea86da6f53a7269fba30f0138.svg" width="419px" height="217px" loading="lazy">
<p>That is, we compute d(3,3) as a mixture of d(2,3) and d(2,2): d(3,3) = a(3,3) x d(2,3) + (1-a(3,3)) x d(2,2)... and we simply keep expanding our triangle until we reach the terminating function parameters. Done deal!</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point: that's pretty essential!</p>
<p>If we run this computation "down", starting at d(3,3), then without special code in place we would be computing quite a few terms multiple times at each step. On the other hand, we can also start with that last "column", we can generate the terminating d() values first, then compute the a() constants, perform our multiplications, generate the previous step's d() values, compute their a() constants, do the multiplications, etc. until we end up all the way back at the top. If we run our computation this way, we don't need any explicit caching, we can just "recycle" the list of numbers we start with and simply update them as we move up the triangle. So, let's implement that!</p>
<h2>Cool, cool... but I don't know what to do with that information</h2>
<p>I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).</p>
<!-- THIS GRAPH IS EXTREMELY NOT-USEFUL, BUT WE'RE PORTING IT FIRST, AND REWRITING IT LATER -->
<p>So, we actually see two stopping conditions: either <code>i</code> becomes 0, in which case <code>d()</code> is zero, or <code>k</code> becomes zero, in which case we get the same "either 1 or 0" that we saw in the N() function above.</p>
<p>Thanks to Cox and de Boor, we can compute points on a B-Spline pretty easily using the same kind of linear interpolation we saw in de Casteljau's algorithm. For instance, if we write out <code>d()</code> for <code>i=3</code> and <code>k=3</code>, we get the following recursion diagram:</p>
<img class="LaTeX SVG" src="./images/chapters/bsplines/bd187c361b285ef878d0bc17af8a3900.svg" width="688px" height="328px" loading="lazy">
<p>That is, we compute <code>d(3,3)</code> as a mixture of <code>d(2,3)</code> and <code>d(2,2)</code>, where those two are themselves a mixture of <code>d(1,3)</code> and <code>d(1,2)</code>, and <code>d(1,2)</code> and <code>d(1,1)</code>, respectively, which are themselves a mixture of etc. etc. We simply keep expanding our terms until we reach the stop conditions, and then sum everything back up. It's really quite elegant.</p>
<p>One thing we need to keep in mind is that we're working with a spline that is constrained by its control points, so even though the <code>d(..., k)</code> values are zero or one at the lowest level, they are really "zero or one, times their respective control point", so in the next section you'll see the algorithm for running through the computation in a way that starts with a copy of the control point vector and then works its way up to that single point, rather than first starting "on the left", working our way "to the right" and then summing back up "to the left". We can just start on the right and work our way left immediately.</p>
<!--
## Cool, cool... but I don't know what to do with that information
I know, this is pretty mathy, so let's have a look at what happens when we change parameters here. We can't change the maths for the interpolation functions, so that gives us only one way to control what happens here: the knot vector itself. As such, let's look at the graph that shows the interpolation functions for a cubic B-Spline with seven points with a uniform knot vector (so we see seven identical functions), representing how much each point (represented by one function each) influences the total curvature, given our knot values. And, because exploration is the key to discovery, let's make the knot vector a thing we can actually manipulate (you will notice that knots are constrained in their value: any knot must strictly be equal to, or greater than, the previous value).
<graphics-element title="Visualising relative interpolation strengths" width="600" height="300" src="./chapters/bsplines/interpolation.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="600px" height="300px" src="images\chapters\bsplines\bd03680e4661ae7f4d687b2f229d2495.png">
<img width="600px" height="300px" src="images\chapters\bsplines\c7fe4f9cba8d4bc06436f4f238d202ce.png">
<label></label>
</fallback-image>
<!-- weight factors go here, similar to curve fitting sliders -->
</graphics-element>
</fallback-image></graphics-element>
Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual *shape* of the curve inside that hull.
After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!
-->
<p>Changing the values in the knot vector changes how much each point influences the total curvature (with some clever knot value manipulation, we can even make the influence of certain points disappear entirely!), so we can see that while the control points define the hull inside of which we're going to be drawing a curve, it is actually the knot vector that determines the actual <em>shape</em> of the curve inside that hull.</p>
<p>After reading the rest of this section you may want to come back here to try some specific knot vectors, and see if the resulting interpolation landscape makes sense given what you will now think should happen!</p>
<h2>Running the computation</h2>
<p>Unlike the de Casteljau algorithm, where the <code>t</code> value stays the same at every iteration, for B-Splines that is not the case, and so we end having to (for each point we evaluate) run a fairly involving bit of recursive computation. The algorithm is discussed on <a href="http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/de-Boor.html">this Michigan Tech</a> page, but an easier to read version is implemented by <a href="https://github.com/thibauts/b-spline/blob/master/index.js#L59-L71">b-spline.js</a>, so we'll look at its code.</p>
<p>Given an input value <code>t</code>, we first map the input to a value from the domain [0,1] to the domain [knots[degree], knots[knots.length - 1 - degree]. Then, we find the section number <code>s</code> that this mapped <code>t</code> value lies on:</p>
@@ -2422,7 +2426,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\3cfaf7bf5e950072437cfe70391155fa.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>This is an important point: the intervals that the knot vector defines are <em>relative</em> intervals, so it doesn't matter if every interval is size 1, or size 100 - the relative differences between the intervals is what shapes any particular curve.</p>
@@ -2435,7 +2439,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\6ba59877389e2c856234403ecbd953f9.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2448,7 +2452,7 @@ for(let L = 1; L &lt;= order; L++) {
<img width="400px" height="400px" src="images\chapters\bsplines\9c4bbb753918e3cb8cbc5a770a2af9ee.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
@@ -2459,10 +2463,10 @@ for(let L = 1; L &lt;= order; L++) {
<graphics-element title="A (closed) rational, uniform B-Spline" width="400" height="400" src="./chapters/bsplines/rational-uniform.js" >
<fallback-image>
<span class="view-source">Scripts are disabled. Showing fallback image.</span>
<img width="400px" height="400px" src="images\chapters\bsplines\dda4911d5148032e005a02ef33b78978.png">
<img width="400px" height="400px" src="images\chapters\bsplines\e50d628696245ef68b691e28b2162d56.png">
<label></label>
</fallback-image>
<!-- knot sliders go here, similar to the curve fitter section -->
<!-- knot sliders go here -->
</graphics-element>
<p>Of course this brings us to the final topic that any text on B-Splines must touch on before calling it a day: the <a href="https://en.wikipedia.org/wiki/Non-uniform_rational_B-spline">NURBS</a>, or Non-Uniform Rational B-Spline (NURBS is not a plural, the capital S actually just stands for "spline", but a lot of people mistakenly treat it as if it is, so now you know better). NURBS is an important type of curve in computer-facilitated design, used a lot in 3D modelling (typically as NURBS surfaces) as well as in arbitrary-precision 2D design due to the level of control a NURBS curve offers designers.</p>

View File

@@ -1,9 +1,22 @@
import fs from "fs-extra";
import path from "path";
import paths from "../../project-paths.js";
import prettier from "prettier";
import splitCodeSections from "../../../docs/js/custom-element/lib/split-code-sections.js";
import performCodeSurgery from "../../../docs/js/custom-element/lib/perform-code-surgery.js";
// Get all the values we need to ensure our generated graphics code knows
// where it lives, and where it can find all its dependencies
const apiSource = fs
.readFileSync(
path.join(paths.sitejs, `custom-element`, `api`, `graphics-api.js`)
)
.toString(`utf-8`);
const API_IMPORTS = apiSource
.match(/(export { [^}]+ })/)[0]
.replace(`export`, `import`);
const GRAPHICS_API_LOCATION = path
.join(
path.relative(paths.temp, paths.public),
@@ -15,11 +28,28 @@ const GRAPHICS_API_LOCATION = path
.split(path.sep)
.join(path.posix.sep);
const IMPORT_GLOBALS_FROM_GRAPHICS_API = `${API_IMPORTS} from "${GRAPHICS_API_LOCATION}"`;
const RELATIVE_IMPORT_LOCATION = path
.relative(paths.temp, paths.chapters)
.split(path.sep)
.join(path.posix.sep);
/**
* Node does not have a native canvas available, so we need to shim a number
* of objects and functions to ensure it can generate a "first load" snapshot
* image use the node-canvas library, instead.
*/
const canvasBuilder = function canvasBuilder(w, h) {
const canvas = CanvasBuilder.createCanvas(w, h);
const ctx = canvas.getContext("2d");
canvas.addEventListener = canvas.setAttribute = noop;
canvas.classList = { add: noop };
canvas.style = {};
ctx.getTransform = () => ctx.currentTransform;
return { canvas, ctx };
};
/**
* ...docs go here...
*/
@@ -35,37 +65,23 @@ function generateGraphicsModule(chapter, code, width, height, dataset) {
const classCode = performCodeSurgery(split.classCode);
let moduleCode = `
import CanvasBuilder from 'canvas';
import { GraphicsAPI, Bezier, BSpline, Vector, Matrix, Shape } from "${GRAPHICS_API_LOCATION}";
import CanvasBuilder from 'canvas';
${IMPORT_GLOBALS_FROM_GRAPHICS_API};
${globalCode}
const noop = (()=>{});
const Image = CanvasBuilder.Image;
const noop = (()=>{});
const Image = CanvasBuilder.Image;
${globalCode}
class Example extends GraphicsAPI {
${classCode}
}
class Example extends GraphicsAPI { ${classCode} }
const example = new Example(undefined, ${width}, ${height}, (w,h) => {
const canvas = CanvasBuilder.createCanvas(w,h);
const ctx = canvas.getContext('2d');
const canvasBuilder = ${canvasBuilder}
const dataset = ${JSON.stringify(dataset)};
const example = new Example(undefined, ${width}, ${height}, canvasBuilder, dataset);
const canvas = example.canvas;
// as this is node-canvas, we need to shim some functions:
canvas.addEventListener = canvas.setAttribute = noop;
canvas.classList = { add: noop };
canvas.style = {};
ctx.getTransform = () => ctx.currentTransform;
return { canvas, ctx};
}, ${JSON.stringify(dataset)});
const canvas = example.canvas;
export { canvas };
`;
// return prettier.format(moduleCode, { parser: `babel` });
export { canvas };
`;
return moduleCode;
}

View File

@@ -17,6 +17,7 @@ const publicDir = path.join(project, `docs`); // yeah... "docs". Because Github
const images = path.join(publicDir, `images`);
const build = path.join(src, `build`);
const chapters = path.join(publicDir, `chapters`);
const sitejs = path.join(publicDir, `js`);
const temp = path.join(project, `temp`);
const paths = {
@@ -25,6 +26,7 @@ const paths = {
chapters,
images,
public: publicDir,
sitejs,
src,
temp,
};