diff options
Diffstat (limited to 'netem')
-rw-r--r-- | netem/.gitignore | 5 | ||||
-rw-r--r-- | netem/Makefile | 32 | ||||
-rw-r--r-- | netem/README.distribution | 97 | ||||
-rw-r--r-- | netem/experimental.dat | 13448 | ||||
-rw-r--r-- | netem/maketable.c | 235 | ||||
-rw-r--r-- | netem/normal.c | 52 | ||||
-rw-r--r-- | netem/pareto.c | 42 | ||||
-rw-r--r-- | netem/paretonormal.c | 82 | ||||
-rw-r--r-- | netem/stats.c | 78 |
9 files changed, 14071 insertions, 0 deletions
diff --git a/netem/.gitignore b/netem/.gitignore new file mode 100644 index 0000000..e36f396 --- /dev/null +++ b/netem/.gitignore @@ -0,0 +1,5 @@ +*.dist +maketable +normal +pareto +paretonormal diff --git a/netem/Makefile b/netem/Makefile new file mode 100644 index 0000000..ba4c5a7 --- /dev/null +++ b/netem/Makefile @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0 +include ../config.mk + +DISTGEN = maketable normal pareto paretonormal +DISTDATA = normal.dist pareto.dist paretonormal.dist experimental.dist + +HOSTCC ?= $(CC) +CCOPTS = $(CBUILD_CFLAGS) +LDLIBS += -lm + +all: $(DISTGEN) $(DISTDATA) + +$(DISTGEN): + $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm + +%.dist: % + ./$* > $@ + +experimental.dist: maketable experimental.dat + ./maketable experimental.dat > experimental.dist + +stats: stats.c + $(HOSTCC) $(CCOPTS) -I../include -o $@ $@.c -lm + +install: all + mkdir -p $(DESTDIR)$(LIBDIR)/tc + for i in $(DISTDATA); \ + do install -m 644 $$i $(DESTDIR)$(LIBDIR)/tc; \ + done + +clean: + rm -f $(DISTDATA) $(DISTGEN) diff --git a/netem/README.distribution b/netem/README.distribution new file mode 100644 index 0000000..6d52785 --- /dev/null +++ b/netem/README.distribution @@ -0,0 +1,97 @@ +Notes about distribution tables from Nistnet +------------------------------------------------------------------------------- +I. About the distribution tables + +The table used for "synthesizing" the distribution is essentially a scaled, +translated, inverse to the cumulative distribution function. + +Here's how to think about it: Let F() be the cumulative distribution +function for a probability distribution X. We'll assume we've scaled +things so that X has mean 0 and standard deviation 1, though that's not +so important here. Then: + + F(x) = P(X <= x) = \int_{-inf}^x f + +where f is the probability density function. + +F is monotonically increasing, so has an inverse function G, with range +0 to 1. Here, G(t) = the x such that P(X <= x) = t. (In general, G may +have singularities if X has point masses, i.e., points x such that +P(X = x) > 0.) + +Now we create a tabular representation of G as follows: Choose some table +size N, and for the ith entry, put in G(i/N). Let's call this table T. + +The claim now is, I can create a (discrete) random variable Y whose +distribution has the same approximate "shape" as X, simply by letting +Y = T(U), where U is a discrete uniform random variable with range 1 to N. +To see this, it's enough to show that Y's cumulative distribution function, +(let's call it H), is a discrete approximation to F. But + + H(x) = P(Y <= x) + = (# of entries in T <= x) / N -- as Y chosen uniformly from T + = i/N, where i is the largest integer such that G(i/N) <= x + = i/N, where i is the largest integer such that i/N <= F(x) + -- since G and F are inverse functions (and F is + increasing) + = floor(N*F(x))/N + +as desired. + +II. How to create distribution tables (in theory) + +How can we create this table in practice? In some cases, F may have a +simple expression which allows evaluating its inverse directly. The +pareto distribution is one example of this. In other cases, and +especially for matching an experimentally observed distribution, it's +easiest simply to create a table for F and "invert" it. Here, we give +a concrete example, namely how the new "experimental" distribution was +created. + +1. Collect enough data points to characterize the distribution. Here, I +collected 25,000 "ping" roundtrip times to a "distant" point (time.nist.gov). +That's far more data than is really necessary, but it was fairly painless to +collect it, so... + +2. Normalize the data so that it has mean 0 and standard deviation 1. + +3. Determine the cumulative distribution. The code I wrote creates a table +covering the range -10 to +10, with granularity .00005. Obviously, this +is absurdly over-precise, but since it's a one-time only computation, I +figured it hardly mattered. + +4. Invert the table: for each table entry F(x) = y, make the y*TABLESIZE +(here, 4096) entry be x*TABLEFACTOR (here, 8192). This creates a table +for the ("normalized") inverse of size TABLESIZE, covering its domain 0 +to 1 with granularity 1/TABLESIZE. Note that even with the granularity +used in creating the table for F, it's possible not all the entries in +the table for G will be filled in. So, make a pass through the +inverse's table, filling in any missing entries by linear interpolation. + +III. How to create distribution tables (in practice) + +If you want to do all this yourself, I've provided several tools to help: + +1. maketable does the steps 2-4 above, and then generates the appropriate +header file. So if you have your own time distribution, you can generate +the header simply by: + + maketable < time.values > header.h + +2. As explained in the other README file, the somewhat sleazy way I have +of generating correlated values needs correction. You can generate your +own correction tables by compiling makesigtable and makemutable with +your header file. Check the Makefile to see how this is done. + +3. Warning: maketable, makesigtable and especially makemutable do +enormous amounts of floating point arithmetic. Don't try running +these on an old 486. (NIST Net itself will run fine on such a +system, since in operation, it just needs to do a few simple integral +calculations. But getting there takes some work.) + +4. The tables produced are all normalized for mean 0 and standard +deviation 1. How do you know what values to use for real? Here, I've +provided a simple "stats" utility. Give it a series of floating point +values, and it will return their mean (mu), standard deviation (sigma), +and correlation coefficient (rho). You can then plug these values +directly into NIST Net. diff --git a/netem/experimental.dat b/netem/experimental.dat new file mode 100644 index 0000000..3663a3e --- /dev/null +++ b/netem/experimental.dat @@ -0,0 +1,13448 @@ +211.6 +205.6 +203.0 +218.6 +213.9 +199.1 +208.7 +207.7 +203.4 +201.7 +200.3 +213.8 +213.4 +209.8 +204.3 +201.8 +196.3 +216.2 +208.9 +202.4 +205.2 +211.1 +210.9 +208.5 +199.9 +211.6 +211.9 +204.6 +215.4 +202.5 +206.5 +201.1 +198.4 +220.2 +203.7 +219.5 +199.1 +207.6 +205.3 +202.3 +219.7 +230.0 +211.0 +202.7 +209.9 +215.4 +202.9 +209.6 +200.5 +197.3 +212.3 +207.6 +210.5 +202.7 +205.7 +211.2 +208.0 +211.0 +209.4 +204.8 +204.8 +208.7 +210.1 +205.3 +202.5 +210.4 +209.4 +204.5 +204.7 +215.0 +202.6 +209.9 +220.2 +203.8 +206.3 +199.4 +221.8 +200.0 +199.6 +209.3 +206.2 +215.8 +196.9 +211.6 +198.4 +201.2 +209.4 +204.3 +219.0 +212.7 +214.6 +196.3 +202.0 +201.9 +197.5 +229.5 +207.5 +213.8 +209.2 +212.9 +193.9 +200.8 +208.6 +196.8 +201.3 +204.9 +204.7 +209.5 +211.3 +215.3 +203.7 +190.1 +235.6 +203.8 +210.0 +209.7 +214.3 +213.0 +206.3 +197.7 +208.2 +226.3 +216.5 +198.0 +201.3 +211.3 +195.8 +210.9 +208.1 +201.2 +201.7 +213.1 +207.9 +206.6 +207.1 +202.2 +199.6 +205.5 +207.3 +219.7 +204.1 +204.4 +209.0 +212.7 +196.4 +214.0 +208.8 +209.7 +217.2 +196.2 +195.0 +227.7 +207.2 +233.3 +207.9 +204.0 +194.4 +219.2 +208.7 +198.6 +205.0 +204.0 +223.7 +207.4 +209.2 +208.7 +205.4 +212.8 +207.8 +203.0 +204.1 +221.0 +198.4 +217.7 +218.4 +374.2 +220.1 +210.8 +212.1 +214.3 +213.3 +210.3 +202.4 +209.7 +218.1 +205.0 +204.5 +220.3 +209.8 +218.3 +216.6 +206.0 +208.9 +221.0 +213.0 +202.1 +204.2 +220.6 +212.4 +226.1 +208.8 +206.1 +220.7 +219.3 +210.9 +211.2 +213.0 +201.4 +210.5 +206.2 +201.9 +224.5 +219.3 +201.1 +195.6 +223.6 +196.7 +213.7 +202.3 +215.6 +211.4 +209.6 +207.6 +212.4 +203.4 +205.4 +216.1 +216.7 +205.3 +213.9 +208.9 +208.4 +205.1 +199.3 +200.6 +199.1 +203.2 +207.6 +203.8 +201.9 +208.5 +196.4 +213.6 +217.6 +201.5 +210.1 +213.5 +203.8 +214.1 +211.9 +201.5 +186.9 +199.7 +209.1 +200.2 +205.8 +206.7 +200.0 +198.1 +209.3 +207.8 +208.7 +208.0 +208.6 +231.3 +214.5 +210.1 +200.8 +208.9 +216.9 +205.7 +214.9 +236.8 +200.9 +219.1 +204.6 +210.0 +214.0 +222.6 +209.6 +207.0 +196.3 +207.7 +207.9 +208.0 +220.2 +198.2 +204.9 +204.1 +201.0 +204.8 +213.3 +203.9 +222.5 +205.2 +203.5 +209.7 +212.1 +210.1 +221.1 +210.2 +208.0 +201.4 +209.0 +211.9 +201.6 +214.4 +199.6 +198.8 +210.2 +207.3 +206.5 +204.8 +196.3 +199.8 +206.4 +195.3 +202.8 +202.7 +203.8 +211.2 +208.4 +198.6 +202.0 +214.9 +204.2 +201.1 +195.9 +196.1 +211.2 +197.0 +207.7 +196.6 +205.7 +211.4 +201.4 +205.0 +195.5 +198.9 +214.4 +207.3 +204.2 +207.2 +198.5 +220.7 +214.1 +213.2 +207.7 +203.6 +265.8 +221.0 +213.1 +195.4 +197.3 +213.0 +207.7 +206.0 +198.4 +202.3 +213.9 +218.6 +207.6 +206.1 +212.8 +216.8 +213.7 +209.8 +198.1 +202.4 +205.3 +207.0 +209.2 +209.9 +204.4 +199.6 +205.5 +203.9 +216.0 +213.1 +202.4 +199.0 +219.5 +193.9 +197.3 +212.2 +216.7 +217.5 +201.0 +206.2 +202.9 +211.3 +203.1 +218.0 +208.6 +217.8 +209.0 +211.8 +220.1 +212.7 +207.2 +221.2 +215.2 +196.9 +216.6 +203.1 +207.1 +216.7 +206.7 +215.0 +219.3 +204.3 +219.6 +207.1 +211.8 +210.2 +217.2 +207.9 +219.9 +205.4 +201.1 +214.1 +205.8 +212.5 +222.8 +211.9 +217.4 +203.8 +222.9 +206.6 +207.6 +197.5 +206.2 +218.5 +220.3 +207.7 +203.5 +226.4 +216.8 +206.0 +193.2 +198.2 +201.3 +202.4 +208.5 +212.6 +205.0 +202.2 +210.0 +202.4 +203.9 +193.3 +212.4 +203.4 +212.1 +206.1 +206.9 +207.0 +216.1 +201.1 +204.7 +202.4 +207.5 +203.9 +200.9 +210.0 +207.1 +217.2 +197.4 +199.2 +210.8 +209.2 +218.4 +200.2 +211.7 +213.6 +203.3 +197.9 +203.0 +204.2 +207.9 +209.4 +225.4 +237.3 +209.5 +208.2 +207.5 +207.0 +203.0 +219.3 +228.3 +213.5 +205.1 +198.9 +212.7 +201.5 +210.0 +206.5 +203.3 +206.1 +210.1 +219.7 +206.8 +215.4 +220.4 +217.3 +211.4 +206.0 +208.3 +207.3 +205.5 +210.8 +209.3 +197.2 +207.2 +191.7 +204.2 +207.2 +216.1 +209.1 +203.8 +201.8 +208.7 +212.4 +214.5 +213.8 +201.3 +219.7 +214.8 +211.9 +223.8 +208.6 +203.5 +207.4 +207.0 +198.0 +208.2 +218.6 +205.1 +214.6 +215.2 +215.3 +204.3 +210.1 +221.9 +210.7 +198.2 +205.2 +201.1 +219.0 +207.2 +205.9 +203.8 +200.5 +217.5 +208.7 +208.4 +192.6 +211.0 +209.1 +206.5 +197.4 +202.1 +210.0 +198.3 +222.2 +211.9 +212.3 +222.2 +195.1 +200.7 +212.1 +208.3 +211.8 +211.7 +206.5 +211.8 +207.6 +214.2 +207.7 +204.7 +208.2 +208.4 +207.9 +212.1 +223.2 +206.3 +205.6 +201.8 +211.9 +207.6 +203.0 +221.2 +206.3 +222.4 +253.5 +204.4 +218.9 +211.9 +210.9 +214.0 +226.7 +214.4 +199.7 +213.8 +207.0 +201.8 +206.6 +203.1 +202.1 +203.6 +213.9 +196.9 +200.4 +204.6 +333.4 +204.5 +220.9 +207.3 +212.1 +203.7 +200.9 +198.2 +204.0 +201.4 +198.2 +209.6 +211.5 +201.2 +200.4 +207.4 +200.7 +213.8 +207.7 +188.0 +210.0 +210.5 +207.3 +198.6 +206.1 +186.9 +201.4 +204.0 +200.8 +207.8 +211.7 +198.7 +206.1 +213.0 +214.8 +212.8 +208.8 +210.4 +206.5 +210.1 +201.7 +202.7 +201.3 +194.1 +200.8 +196.8 +204.2 +217.5 +209.0 +198.7 +203.2 +213.8 +198.0 +207.1 +204.0 +215.3 +199.5 +214.1 +200.1 +206.9 +219.9 +204.8 +208.6 +207.8 +207.5 +203.8 +210.9 +210.6 +205.3 +202.1 +212.9 +214.8 +210.9 +217.2 +218.3 +221.5 +201.8 +212.7 +215.0 +206.7 +222.8 +210.9 +211.5 +202.0 +208.1 +268.9 +205.8 +204.0 +198.4 +206.3 +209.3 +206.4 +207.4 +226.9 +209.9 +199.6 +206.5 +210.9 +224.1 +211.9 +214.4 +212.2 +211.5 +209.4 +205.3 +204.8 +207.7 +208.9 +213.7 +201.0 +217.4 +198.1 +219.0 +206.5 +229.1 +220.1 +196.8 +203.1 +208.8 +201.7 +195.7 +207.0 +202.4 +206.6 +204.9 +196.6 +204.3 +198.6 +203.9 +215.8 +194.9 +202.7 +225.5 +205.9 +201.4 +213.1 +214.2 +218.8 +209.4 +204.4 +206.7 +209.8 +198.4 +211.8 +212.1 +209.1 +202.3 +213.7 +215.5 +218.3 +209.1 +216.6 +214.8 +206.4 +205.6 +214.4 +209.2 +211.7 +211.3 +211.0 +205.6 +204.2 +191.7 +213.8 +204.9 +205.3 +212.0 +199.9 +198.3 +211.8 +203.0 +212.2 +203.0 +201.8 +214.4 +214.1 +199.6 +205.3 +208.2 +196.7 +196.7 +209.1 +205.1 +212.5 +213.1 +197.3 +208.8 +218.0 +220.0 +198.4 +206.3 +206.9 +253.2 +194.3 +202.6 +210.6 +219.1 +197.8 +197.1 +194.0 +211.6 +209.6 +198.3 +213.0 +207.7 +207.0 +213.3 +206.9 +197.6 +204.8 +202.0 +200.0 +215.2 +204.5 +206.3 +206.7 +203.2 +194.9 +206.3 +209.9 +210.6 +214.2 +208.6 +207.4 +213.9 +210.4 +210.0 +200.6 +203.8 +202.7 +204.2 +202.7 +210.2 +192.5 +215.4 +211.7 +208.3 +204.8 +203.3 +197.7 +216.7 +200.9 +203.6 +208.6 +206.5 +209.9 +200.1 +198.4 +203.3 +210.4 +211.6 +202.0 +203.1 +204.0 +204.0 +215.0 +211.4 +202.0 +197.2 +197.6 +209.9 +205.4 +213.1 +199.1 +212.4 +216.1 +218.3 +214.6 +224.1 +206.9 +199.4 +213.4 +261.2 +199.4 +208.8 +209.9 +205.7 +203.1 +203.2 +204.6 +201.6 +210.6 +213.2 +214.8 +203.8 +204.9 +220.7 +201.5 +212.5 +216.8 +209.7 +203.1 +213.3 +204.7 +218.2 +215.5 +215.6 +211.6 +214.2 +205.1 +216.6 +216.3 +203.5 +200.8 +213.7 +221.9 +215.0 +210.2 +217.1 +214.7 +208.8 +217.4 +231.1 +213.7 +215.0 +213.5 +216.7 +207.7 +201.0 +210.4 +210.9 +206.7 +203.7 +199.2 +209.3 +206.3 +202.4 +210.1 +212.3 +202.2 +207.2 +197.8 +205.9 +202.0 +214.2 +203.5 +204.4 +200.0 +204.0 +193.8 +192.3 +229.0 +204.5 +194.8 +213.6 +215.9 +214.8 +221.6 +208.5 +201.5 +204.4 +206.4 +194.5 +199.4 +201.5 +209.7 +212.5 +202.1 +208.2 +205.4 +204.5 +199.4 +194.5 +199.6 +201.5 +206.2 +219.9 +198.5 +216.2 +195.7 +205.0 +208.0 +204.9 +195.9 +207.4 +216.9 +195.9 +204.4 +208.3 +206.1 +188.5 +202.3 +201.7 +200.5 +206.2 +191.5 +218.6 +206.5 +208.9 +209.9 +201.5 +212.7 +203.2 +209.7 +212.1 +208.4 +207.2 +206.5 +204.5 +222.7 +207.6 +207.4 +210.3 +212.2 +219.1 +215.2 +211.1 +205.9 +205.5 +205.9 +203.1 +205.4 +184.5 +205.0 +194.8 +213.5 +209.8 +195.4 +202.9 +205.3 +196.3 +202.0 +198.2 +201.5 +195.3 +230.9 +207.8 +212.6 +202.7 +204.8 +205.0 +202.8 +206.2 +200.2 +202.7 +203.5 +205.5 +196.9 +209.4 +212.1 +200.8 +205.0 +208.0 +207.1 +198.0 +204.8 +205.8 +200.9 +202.1 +202.4 +206.9 +209.1 +199.7 +197.1 +206.9 +200.2 +193.7 +195.0 +250.8 +207.5 +204.5 +208.8 +209.8 +194.8 +200.2 +205.1 +197.3 +208.3 +200.4 +204.7 +211.1 +203.4 +218.2 +194.6 +201.5 +202.2 +202.9 +198.8 +218.2 +201.7 +189.8 +210.1 +208.0 +204.3 +205.8 +204.2 +207.8 +200.2 +197.9 +198.9 +208.1 +202.4 +196.2 +195.5 +204.6 +211.0 +205.0 +193.6 +197.2 +198.6 +193.8 +198.9 +232.4 +201.8 +212.2 +208.6 +204.5 +199.3 +211.2 +203.1 +209.7 +214.3 +203.9 +200.3 +203.3 +206.1 +206.9 +209.1 +209.1 +199.3 +199.4 +198.8 +198.9 +199.9 +193.7 +204.6 +203.4 +199.7 +212.6 +200.7 +208.1 +198.8 +200.5 +209.2 +208.4 +205.7 +197.1 +202.6 +199.5 +208.4 +200.1 +204.9 +202.9 +201.5 +207.6 +200.6 +204.2 +210.0 +207.1 +205.1 +198.5 +204.9 +196.5 +208.0 +202.4 +202.7 +196.2 +206.9 +201.5 +203.3 +198.7 +211.9 +208.4 +206.7 +209.4 +204.0 +202.3 +205.0 +205.3 +206.0 +213.1 +205.7 +199.3 +206.2 +204.6 +209.3 +205.7 +202.7 +213.3 +202.3 +197.8 +196.5 +193.4 +211.6 +209.9 +195.5 +196.2 +210.2 +207.1 +207.0 +221.8 +217.2 +215.4 +207.0 +200.1 +207.5 +206.0 +200.7 +190.9 +209.8 +213.5 +206.3 +196.0 +213.1 +202.7 +211.6 +196.5 +209.9 +212.3 +199.9 +206.8 +225.1 +203.9 +204.3 +197.7 +203.5 +203.2 +193.5 +200.9 +201.4 +189.1 +203.9 +194.5 +205.4 +204.8 +204.9 +201.3 +208.4 +196.9 +206.8 +207.7 +201.6 +210.3 +211.6 +209.8 +200.2 +205.2 +197.6 +195.9 +212.8 +206.4 +201.0 +208.2 +207.5 +202.5 +193.3 +206.5 +221.2 +198.8 +216.6 +217.0 +209.1 +206.6 +197.7 +211.0 +199.9 +198.0 +210.4 +200.5 +211.7 +219.6 +206.8 +207.2 +210.6 +205.4 +203.8 +207.4 +206.2 +205.1 +208.7 +196.3 +204.7 +210.8 +214.4 +196.3 +206.5 +210.8 +193.2 +203.3 +203.9 +207.7 +194.9 +203.7 +195.5 +218.7 +201.1 +199.5 +207.6 +209.3 +207.5 +205.7 +203.9 +205.4 +201.3 +205.8 +205.4 +208.8 +214.3 +203.4 +207.5 +188.9 +205.5 +200.7 +212.5 +197.9 +219.0 +213.6 +197.3 +202.7 +216.3 +205.0 +210.2 +203.2 +203.9 +206.8 +213.6 +200.1 +204.4 +211.4 +213.4 +200.2 +208.4 +209.1 +198.8 +207.4 +195.0 +205.6 +200.5 +204.3 +201.9 +206.4 +199.0 +196.1 +207.6 +195.4 +197.2 +200.7 +190.8 +211.9 +191.5 +201.4 +193.5 +205.1 +206.8 +199.5 +207.4 +209.8 +199.1 +194.6 +201.6 +211.6 +206.8 +203.9 +196.8 +206.3 +210.1 +200.6 +227.4 +201.9 +210.8 +205.8 +217.2 +205.8 +196.1 +200.7 +213.8 +205.4 +211.6 +212.3 +213.6 +201.7 +199.9 +203.2 +212.6 +211.0 +208.1 +198.1 +201.7 +211.6 +207.4 +212.4 +207.3 +214.9 +214.5 +214.5 +202.7 +200.1 +206.4 +213.4 +189.7 +203.4 +202.2 +198.2 +206.5 +213.7 +207.6 +202.8 +209.2 +205.5 +196.4 +207.6 +207.4 +207.3 +188.8 +215.6 +195.4 +207.7 +208.2 +200.9 +208.4 +203.3 +210.8 +199.6 +208.3 +206.7 +201.6 +202.9 +197.5 +206.4 +209.0 +208.4 +211.6 +204.4 +210.0 +190.9 +199.3 +207.6 +202.5 +197.0 +200.8 +203.1 +204.0 +199.0 +208.0 +204.6 +196.6 +200.8 +205.2 +198.8 +203.0 +208.3 +200.1 +205.5 +203.7 +202.2 +203.8 +211.5 +201.8 +213.2 +207.4 +207.8 +202.2 +208.2 +204.2 +200.4 +186.1 +188.5 +220.4 +212.8 +193.3 +196.9 +203.0 +207.3 +202.4 +201.7 +204.8 +192.2 +218.7 +226.3 +209.5 +201.4 +207.3 +202.6 +210.7 +208.4 +208.4 +207.4 +210.4 +191.2 +203.6 +197.1 +207.5 +197.8 +206.2 +214.5 +208.2 +207.3 +204.7 +199.6 +206.3 +189.0 +214.4 +209.4 +208.1 +199.9 +190.5 +223.0 +198.8 +201.1 +192.4 +204.0 +209.0 +206.7 +204.3 +198.7 +210.9 +212.0 +204.8 +204.2 +199.5 +203.5 +203.0 +190.6 +207.9 +207.9 +193.2 +210.9 +200.1 +207.6 +193.6 +204.9 +197.7 +200.9 +213.0 +215.0 +204.4 +196.6 +209.6 +209.9 +199.8 +198.8 +202.1 +203.4 +205.4 +204.4 +196.2 +190.7 +210.9 +197.7 +194.7 +204.0 +201.5 +195.3 +209.0 +203.6 +196.1 +205.2 +206.7 +206.6 +191.4 +193.4 +206.6 +205.9 +207.9 +201.7 +213.3 +199.4 +202.8 +196.1 +208.3 +206.4 +205.2 +191.9 +207.3 +191.5 +210.8 +200.9 +210.4 +208.3 +211.0 +202.7 +198.8 +196.8 +202.7 +196.9 +214.6 +210.2 +226.1 +220.8 +213.5 +194.9 +210.4 +203.7 +203.7 +180.8 +213.7 +208.0 +209.8 +209.7 +213.8 +185.5 +208.5 +203.5 +212.8 +193.1 +199.2 +211.0 +217.4 +211.0 +202.7 +205.0 +208.6 +197.5 +197.1 +201.0 +195.9 +208.4 +205.7 +205.8 +194.0 +204.4 +194.5 +194.3 +200.1 +209.5 +218.0 +202.8 +197.5 +206.7 +199.8 +205.2 +201.4 +205.2 +186.0 +208.4 +218.4 +206.7 +201.9 +209.7 +208.0 +203.9 +193.1 +202.0 +198.0 +199.5 +211.0 +191.8 +198.7 +197.3 +195.6 +202.9 +203.4 +206.1 +205.6 +207.5 +220.8 +204.7 +207.7 +252.5 +203.9 +203.2 +201.3 +200.1 +201.1 +196.8 +197.6 +206.4 +209.6 +197.9 +199.4 +212.6 +205.4 +200.9 +197.5 +202.2 +199.5 +206.7 +215.1 +216.4 +221.9 +199.2 +246.4 +196.0 +205.1 +205.4 +207.8 +192.6 +204.6 +209.2 +213.4 +198.9 +205.3 +205.8 +201.1 +195.2 +199.4 +200.8 +210.5 +202.3 +217.9 +208.4 +220.8 +218.4 +195.7 +199.4 +198.8 +192.0 +210.9 +218.5 +194.5 +203.6 +195.0 +208.8 +197.4 +204.1 +200.7 +201.0 +206.6 +202.2 +208.7 +213.1 +198.3 +212.2 +201.9 +206.3 +203.4 +198.0 +198.0 +205.3 +199.6 +196.6 +202.8 +201.7 +208.7 +195.6 +199.4 +205.4 +205.2 +202.2 +193.3 +191.9 +195.1 +201.1 +210.5 +208.7 +196.9 +193.4 +200.8 +199.6 +204.1 +200.4 +197.6 +204.1 +206.9 +205.2 +206.9 +194.7 +200.4 +198.8 +201.7 +201.8 +207.0 +193.2 +199.9 +201.3 +192.5 +197.9 +206.9 +190.0 +203.8 +208.8 +200.9 +203.3 +194.5 +192.6 +204.9 +205.5 +196.6 +194.8 +197.9 +198.1 +211.2 +198.8 +202.2 +205.9 +199.5 +204.7 +201.6 +201.2 +203.4 +204.2 +190.7 +206.7 +205.4 +208.4 +203.1 +204.2 +198.4 +194.3 +191.6 +198.9 +203.5 +198.7 +192.2 +198.4 +194.5 +181.1 +200.9 +200.0 +209.2 +210.4 +200.0 +201.1 +193.9 +207.0 +193.4 +202.6 +192.8 +196.0 +203.8 +184.2 +179.3 +202.3 +191.4 +199.7 +195.4 +189.9 +197.0 +187.5 +192.1 +198.3 +202.2 +205.0 +212.3 +198.0 +205.5 +210.1 +197.6 +198.7 +206.6 +203.4 +194.3 +181.2 +199.0 +202.4 +189.1 +181.6 +200.4 +188.1 +180.1 +203.1 +201.1 +195.5 +201.6 +201.3 +197.6 +196.0 +205.5 +184.9 +186.5 +190.8 +188.6 +207.2 +199.5 +198.6 +199.8 +212.2 +208.1 +196.9 +199.6 +205.3 +196.9 +188.9 +205.4 +212.5 +197.5 +201.8 +188.8 +187.1 +199.9 +195.4 +188.7 +198.7 +185.0 +191.6 +193.3 +191.8 +209.4 +197.4 +195.2 +189.4 +189.7 +199.9 +199.3 +188.7 +188.3 +190.9 +181.6 +209.8 +194.6 +198.2 +199.9 +198.1 +186.8 +195.3 +190.9 +198.8 +189.3 +207.5 +179.2 +188.8 +185.6 +206.2 +184.8 +190.7 +203.5 +199.2 +202.0 +197.6 +197.2 +196.4 +210.4 +200.1 +194.8 +186.7 +198.2 +197.8 +186.5 +200.2 +192.7 +192.7 +190.4 +220.9 +207.5 +188.6 +198.5 +203.0 +202.2 +189.6 +177.3 +194.8 +195.2 +243.9 +196.5 +180.6 +214.6 +196.4 +220.6 +194.7 +200.5 +193.7 +199.7 +203.0 +201.4 +187.7 +199.8 +191.8 +203.9 +203.8 +191.3 +206.6 +201.7 +202.1 +202.6 +200.0 +203.6 +195.9 +204.8 +212.8 +199.2 +203.3 +206.6 +192.2 +205.0 +198.9 +205.3 +195.0 +198.1 +190.4 +203.7 +188.2 +204.2 +211.1 +192.5 +194.5 +198.3 +205.7 +198.5 +210.2 +206.8 +195.4 +200.8 +202.7 +220.0 +204.1 +209.5 +200.2 +187.1 +205.4 +202.6 +203.3 +214.1 +193.8 +207.4 +208.2 +204.9 +215.9 +202.6 +198.0 +193.8 +198.2 +206.2 +203.9 +190.6 +210.8 +195.6 +207.6 +206.6 +195.4 +189.9 +199.7 +203.1 +207.1 +192.2 +197.3 +197.6 +193.3 +207.9 +201.3 +206.8 +201.9 +195.7 +204.1 +201.1 +192.5 +206.7 +213.1 +195.2 +205.1 +196.2 +203.5 +195.5 +200.3 +194.7 +194.5 +200.6 +211.2 +202.1 +194.6 +199.9 +212.6 +206.8 +196.2 +205.8 +202.8 +201.6 +205.2 +205.8 +193.1 +202.0 +196.2 +208.1 +209.5 +199.8 +208.8 +192.3 +207.9 +201.3 +205.7 +205.9 +208.6 +210.3 +202.2 +212.1 +210.3 +199.6 +200.8 +209.1 +202.5 +215.0 +201.5 +209.2 +207.0 +215.3 +205.6 +213.7 +203.7 +199.8 +201.4 +194.7 +194.3 +188.7 +200.9 +203.8 +203.2 +212.5 +207.0 +211.3 +204.3 +204.5 +194.0 +210.7 +207.1 +207.5 +200.7 +200.8 +200.7 +200.1 +203.7 +191.1 +201.8 +194.8 +195.2 +197.4 +190.5 +192.7 +206.6 +200.8 +204.3 +206.5 +209.8 +202.5 +207.6 +198.4 +203.3 +202.1 +200.6 +198.4 +191.0 +203.5 +198.6 +184.3 +183.7 +189.1 +205.4 +187.8 +194.5 +199.2 +196.4 +210.9 +176.8 +191.6 +182.7 +181.3 +205.7 +203.2 +186.3 +187.6 +189.1 +180.8 +180.2 +187.6 +194.9 +192.8 +185.2 +198.3 +209.3 +177.5 +193.9 +193.1 +203.4 +192.1 +200.9 +182.6 +204.9 +197.6 +212.8 +206.9 +193.3 +201.0 +195.3 +197.1 +189.6 +198.5 +190.4 +188.8 +197.7 +189.9 +200.7 +196.8 +186.3 +181.5 +184.9 +200.2 +198.7 +205.8 +200.2 +198.3 +207.9 +206.1 +201.5 +197.8 +199.5 +198.1 +211.3 +201.6 +202.4 +196.0 +197.7 +209.2 +199.3 +205.5 +191.6 +206.4 +196.5 +209.5 +203.4 +201.4 +200.1 +205.2 +190.9 +205.1 +197.5 +196.1 +194.4 +194.7 +188.9 +180.8 +206.5 +199.8 +193.1 +195.2 +192.7 +199.2 +199.5 +188.1 +180.2 +191.0 +206.9 +208.2 +202.5 +200.0 +207.0 +201.6 +195.6 +195.6 +195.0 +196.3 +190.2 +194.0 +182.9 +192.1 +206.5 +181.4 +192.3 +199.6 +201.6 +192.4 +200.5 +207.1 +198.5 +198.8 +190.8 +200.3 +199.3 +200.5 +187.7 +208.3 +205.6 +189.3 +198.4 +204.9 +197.4 +198.7 +190.6 +214.5 +212.5 +207.6 +196.9 +183.4 +185.1 +205.8 +226.5 +202.5 +201.8 +202.9 +210.4 +189.7 +195.6 +198.7 +193.0 +198.8 +193.1 +202.5 +195.2 +195.0 +198.3 +203.6 +208.3 +195.9 +200.8 +189.4 +207.9 +182.8 +194.9 +199.7 +180.7 +187.2 +189.5 +196.1 +190.1 +192.5 +185.7 +212.2 +204.2 +191.9 +184.5 +182.5 +198.5 +191.0 +192.0 +195.6 +201.1 +193.7 +203.8 +200.5 +199.1 +190.3 +209.5 +195.0 +184.0 +193.6 +203.3 +191.4 +194.9 +195.5 +193.5 +182.7 +189.7 +196.1 +178.9 +199.5 +195.3 +185.9 +199.1 +210.0 +195.7 +193.8 +196.4 +195.3 +201.4 +209.5 +205.6 +197.5 +188.9 +193.8 +185.3 +193.3 +198.1 +201.4 +184.7 +182.5 +183.7 +185.5 +199.8 +200.3 +194.1 +176.9 +192.2 +200.0 +186.4 +191.6 +200.1 +202.3 +205.1 +186.4 +182.3 +194.7 +177.5 +201.4 +189.6 +195.5 +185.4 +194.8 +204.1 +188.0 +182.1 +181.7 +184.5 +234.2 +209.4 +193.3 +204.0 +184.7 +194.3 +193.4 +191.1 +188.3 +193.9 +198.2 +202.8 +198.1 +191.2 +200.9 +205.4 +203.6 +193.8 +215.8 +185.8 +195.4 +204.7 +190.3 +190.7 +177.7 +182.1 +193.2 +178.3 +199.3 +203.5 +187.3 +198.8 +187.8 +187.7 +186.7 +200.0 +190.0 +203.1 +181.7 +207.2 +183.8 +180.3 +193.5 +190.2 +193.7 +198.6 +195.6 +192.1 +200.5 +188.6 +190.9 +188.0 +192.8 +191.4 +179.9 +197.6 +200.6 +206.1 +201.3 +199.6 +198.8 +201.0 +180.2 +202.9 +197.3 +186.1 +200.5 +182.4 +192.7 +194.5 +182.8 +193.9 +195.1 +187.7 +201.0 +196.1 +194.0 +198.8 +192.8 +186.1 +200.6 +186.3 +187.6 +178.0 +175.8 +198.9 +199.3 +193.4 +193.3 +198.7 +194.5 +180.9 +197.3 +189.7 +193.0 +208.2 +200.1 +193.9 +211.2 +206.6 +210.2 +185.5 +180.8 +206.8 +185.5 +195.8 +199.3 +187.9 +194.9 +175.8 +198.1 +199.0 +200.6 +300.8 +194.0 +199.7 +181.2 +189.9 +195.3 +209.6 +198.1 +184.9 +192.5 +188.8 +193.8 +201.4 +208.2 +192.5 +199.9 +185.0 +207.5 +196.5 +198.8 +193.3 +200.1 +186.7 +194.4 +194.3 +197.2 +198.4 +192.8 +194.3 +188.6 +194.7 +190.7 +192.1 +194.5 +185.7 +194.6 +177.5 +203.6 +180.8 +185.0 +178.9 +205.7 +187.4 +185.9 +192.9 +182.7 +197.3 +198.0 +194.5 +194.7 +194.7 +198.2 +184.7 +199.0 +200.9 +195.4 +198.7 +188.1 +187.5 +190.6 +179.2 +190.2 +195.9 +188.8 +205.7 +191.9 +204.0 +193.3 +199.5 +200.7 +179.3 +190.4 +206.4 +199.8 +189.5 +194.1 +203.3 +196.9 +200.1 +179.6 +217.2 +199.0 +184.0 +177.4 +200.5 +205.3 +193.2 +198.8 +187.2 +191.2 +186.6 +188.3 +199.4 +192.8 +209.8 +181.5 +192.8 +176.0 +189.9 +203.5 +192.5 +193.1 +190.3 +193.1 +203.0 +194.6 +188.4 +199.8 +199.6 +195.0 +200.3 +195.5 +198.5 +203.1 +193.4 +203.6 +195.6 +186.2 +206.4 +197.3 +265.4 +203.7 +205.7 +197.0 +194.9 +193.6 +201.1 +200.6 +197.1 +196.0 +196.3 +195.4 +194.2 +198.4 +202.6 +197.1 +209.4 +204.7 +195.9 +192.8 +203.4 +193.3 +188.5 +190.7 +190.3 +197.6 +197.7 +199.1 +193.0 +198.3 +205.0 +191.4 +197.2 +201.3 +197.6 +197.7 +202.9 +203.4 +198.5 +198.8 +205.4 +194.6 +189.5 +193.3 +190.4 +193.0 +202.5 +198.2 +194.7 +198.5 +184.3 +187.8 +193.3 +190.8 +194.9 +190.3 +201.8 +192.9 +198.5 +195.9 +195.8 +210.1 +194.2 +202.6 +194.5 +197.6 +200.1 +191.8 +192.8 +199.4 +199.7 +199.3 +194.2 +196.9 +195.7 +189.9 +197.1 +205.9 +191.1 +196.5 +200.9 +200.6 +199.1 +203.0 +204.2 +198.7 +192.2 +194.9 +188.6 +194.3 +198.5 +190.6 +189.4 +205.8 +207.0 +200.9 +198.0 +196.9 +196.6 +187.3 +199.9 +196.1 +196.5 +200.0 +186.0 +182.7 +193.3 +195.2 +190.0 +195.9 +190.0 +201.7 +187.1 +199.1 +203.5 +191.8 +199.5 +195.1 +207.3 +205.6 +191.9 +200.1 +196.5 +205.4 +190.8 +195.9 +194.6 +190.2 +197.4 +204.4 +210.5 +289.6 +197.2 +191.4 +199.2 +196.6 +201.4 +191.7 +194.4 +191.9 +193.1 +182.9 +191.5 +202.0 +186.8 +195.5 +193.4 +189.8 +181.3 +199.9 +200.3 +193.5 +196.5 +190.5 +200.6 +209.8 +197.7 +199.5 +200.9 +205.0 +199.4 +206.3 +205.7 +202.7 +189.0 +203.6 +198.9 +188.4 +193.7 +204.1 +198.4 +208.8 +201.4 +198.0 +188.7 +208.9 +196.9 +235.5 +198.1 +202.8 +195.8 +193.2 +203.0 +204.2 +201.2 +201.4 +202.8 +213.8 +197.2 +197.0 +191.2 +196.2 +210.8 +203.5 +193.4 +211.7 +194.0 +204.6 +197.0 +200.0 +197.9 +204.2 +196.6 +184.4 +188.6 +194.4 +188.1 +202.4 +203.0 +204.4 +194.1 +195.8 +195.3 +201.9 +194.7 +205.8 +201.9 +208.6 +195.5 +209.5 +194.8 +202.7 +202.2 +204.4 +197.1 +205.9 +196.2 +197.1 +197.4 +198.6 +198.8 +201.1 +203.9 +200.3 +199.5 +224.5 +199.2 +196.2 +197.7 +194.7 +194.1 +202.5 +191.2 +203.1 +199.1 +197.5 +201.0 +198.7 +207.9 +191.7 +192.1 +191.7 +208.7 +178.3 +202.0 +200.4 +202.1 +206.8 +194.2 +197.0 +203.3 +195.1 +210.0 +193.9 +191.1 +200.1 +192.9 +202.3 +189.5 +193.9 +200.8 +205.5 +198.7 +205.4 +184.7 +198.6 +189.7 +187.8 +202.5 +196.2 +203.5 +213.4 +199.7 +207.5 +207.3 +204.7 +190.5 +194.9 +184.7 +198.0 +200.9 +189.8 +208.9 +189.5 +218.6 +202.8 +189.0 +202.2 +204.3 +191.5 +193.6 +201.6 +204.6 +197.0 +200.9 +186.0 +205.9 +194.1 +203.3 +197.3 +200.3 +195.9 +207.3 +206.7 +206.7 +193.0 +203.1 +238.1 +192.2 +193.3 +197.4 +212.3 +202.5 +197.5 +204.1 +196.6 +183.8 +204.5 +188.1 +217.6 +194.5 +199.1 +210.9 +200.9 +187.7 +199.2 +195.0 +191.0 +198.3 +194.1 +191.9 +213.8 +199.0 +201.8 +197.5 +201.5 +195.6 +207.5 +200.6 +194.2 +210.5 +192.7 +188.1 +203.0 +237.1 +204.7 +205.1 +205.2 +200.3 +188.5 +202.2 +213.1 +195.0 +201.4 +204.2 +195.9 +186.5 +192.2 +206.5 +177.5 +189.9 +192.0 +214.9 +204.0 +194.2 +200.9 +197.1 +200.0 +196.4 +197.2 +189.0 +194.3 +206.5 +192.5 +190.5 +204.1 +196.7 +194.4 +181.9 +193.0 +190.6 +193.6 +178.0 +178.2 +200.9 +189.5 +194.2 +182.1 +183.6 +183.7 +176.9 +181.7 +194.9 +190.7 +187.4 +178.6 +182.0 +186.5 +183.7 +182.1 +186.2 +199.6 +192.4 +189.2 +194.7 +176.3 +184.6 +203.2 +201.9 +195.2 +192.7 +186.7 +195.2 +187.0 +201.1 +202.1 +187.7 +195.9 +181.7 +189.7 +179.9 +177.3 +180.3 +198.3 +184.6 +183.3 +196.9 +178.6 +184.3 +185.3 +183.2 +193.9 +194.7 +195.5 +199.6 +192.0 +189.4 +195.0 +193.6 +200.5 +177.6 +181.0 +200.0 +190.3 +189.7 +205.5 +178.5 +201.7 +192.7 +196.8 +189.2 +177.6 +198.0 +191.8 +178.6 +206.8 +190.0 +192.3 +180.1 +194.6 +179.7 +207.1 +195.6 +200.5 +186.7 +190.1 +178.6 +205.7 +346.2 +188.8 +204.4 +200.7 +176.5 +193.8 +195.9 +193.0 +186.5 +189.5 +190.6 +178.0 +188.6 +186.7 +180.9 +193.8 +194.0 +180.6 +196.7 +178.7 +180.1 +187.7 +179.6 +201.3 +219.2 +184.0 +206.3 +186.7 +192.0 +179.4 +190.1 +187.0 +191.6 +194.7 +195.5 +194.2 +195.8 +200.6 +180.3 +195.6 +209.9 +197.2 +201.1 +196.9 +186.3 +202.7 +182.7 +200.4 +201.2 +196.2 +181.1 +182.6 +187.2 +225.3 +186.8 +197.6 +192.0 +185.0 +199.8 +191.7 +187.4 +192.5 +189.1 +210.9 +187.0 +191.2 +190.9 +207.1 +198.7 +208.8 +190.6 +193.7 +186.5 +182.9 +178.7 +194.1 +184.3 +194.0 +185.4 +215.7 +194.6 +207.9 +204.7 +183.7 +189.3 +196.0 +202.6 +206.2 +190.1 +216.6 +179.8 +206.9 +188.4 +190.8 +181.7 +197.7 +195.7 +178.3 +179.0 +179.3 +203.2 +178.4 +180.1 +175.7 +194.1 +193.0 +203.2 +192.6 +194.0 +190.7 +193.0 +194.2 +183.7 +197.2 +188.4 +176.1 +184.3 +192.2 +195.7 +186.0 +193.7 +196.2 +183.7 +180.7 +181.0 +189.4 +199.3 +201.5 +199.8 +197.2 +201.7 +199.9 +192.2 +188.2 +187.5 +176.6 +205.3 +199.0 +190.0 +202.4 +201.8 +216.8 +208.2 +197.4 +194.3 +205.9 +179.0 +193.5 +182.9 +188.0 +198.3 +197.7 +177.6 +183.8 +182.3 +198.8 +192.5 +183.2 +208.4 +192.4 +193.8 +198.6 +196.2 +183.9 +186.2 +197.8 +180.6 +204.7 +195.3 +182.8 +192.5 +216.3 +203.8 +197.4 +179.5 +188.5 +196.8 +194.4 +189.2 +199.8 +200.7 +205.1 +183.4 +181.5 +193.6 +207.9 +177.4 +191.5 +197.3 +189.8 +191.9 +189.5 +201.2 +211.0 +201.4 +205.5 +201.1 +199.3 +193.5 +203.5 +191.6 +194.0 +196.7 +188.5 +189.8 +195.9 +181.1 +193.2 +197.2 +201.0 +186.2 +200.9 +183.5 +183.0 +207.9 +189.7 +193.8 +182.9 +232.1 +186.2 +200.3 +194.6 +184.2 +192.2 +182.9 +193.6 +207.4 +203.3 +185.6 +197.6 +205.9 +193.0 +182.3 +190.1 +193.3 +200.2 +183.9 +195.7 +186.9 +200.1 +189.6 +194.2 +195.5 +178.3 +183.9 +183.0 +179.2 +209.8 +199.6 +185.4 +210.9 +188.6 +188.9 +185.4 +177.0 +183.0 +186.1 +191.7 +190.7 +192.1 +195.2 +185.0 +186.6 +194.2 +189.5 +187.7 +187.9 +191.8 +181.1 +180.2 +180.0 +185.6 +181.8 +187.9 +192.9 +198.7 +182.0 +182.7 +175.8 +202.0 +190.6 +195.3 +191.0 +201.4 +194.3 +179.5 +185.0 +240.3 +187.1 +197.8 +204.8 +210.7 +203.2 +202.0 +197.8 +203.5 +205.1 +190.0 +190.3 +204.1 +197.9 +198.6 +199.3 +182.1 +200.8 +196.0 +197.1 +203.5 +198.6 +200.7 +201.1 +189.1 +175.8 +199.9 +203.7 +192.2 +182.5 +185.0 +195.9 +204.1 +197.0 +195.5 +202.0 +201.5 +187.1 +186.7 +198.2 +211.8 +197.6 +178.5 +198.5 +196.4 +188.1 +185.0 +199.5 +200.9 +201.7 +193.5 +188.3 +180.9 +190.6 +202.8 +183.9 +190.1 +205.3 +198.6 +183.2 +198.0 +200.9 +198.8 +194.8 +198.3 +195.8 +204.6 +202.6 +207.0 +185.9 +201.9 +195.9 +207.6 +197.4 +206.7 +188.2 +184.7 +183.9 +198.3 +186.4 +191.0 +208.8 +209.4 +187.7 +208.0 +198.4 +191.9 +187.1 +188.5 +189.2 +190.7 +179.9 +204.1 +195.5 +183.7 +183.1 +183.7 +194.6 +187.9 +183.5 +184.7 +203.2 +197.8 +179.4 +185.8 +205.3 +179.8 +194.8 +186.7 +191.5 +197.4 +197.0 +209.2 +194.1 +187.8 +192.9 +202.2 +194.4 +206.6 +191.6 +190.8 +187.5 +193.5 +205.2 +185.1 +185.6 +189.9 +196.0 +203.6 +195.4 +209.9 +196.5 +200.8 +190.1 +191.5 +232.8 +209.2 +193.1 +183.4 +199.5 +187.2 +199.4 +203.6 +198.3 +204.1 +196.4 +202.0 +180.6 +191.6 +202.9 +184.9 +180.8 +192.3 +205.2 +205.5 +179.0 +183.3 +203.1 +184.1 +188.6 +180.9 +195.8 +195.0 +181.1 +198.3 +190.7 +191.8 +192.1 +191.5 +257.4 +197.3 +206.5 +213.4 +184.2 +193.5 +208.6 +209.8 +192.0 +201.5 +198.6 +205.2 +198.9 +212.6 +195.9 +213.7 +215.9 +209.2 +215.2 +207.4 +208.9 +192.2 +192.3 +193.8 +185.1 +206.0 +179.1 +199.9 +198.3 +201.6 +186.8 +202.3 +190.4 +183.6 +191.8 +190.6 +194.7 +184.1 +184.4 +193.8 +194.0 +195.6 +204.5 +194.9 +196.1 +201.1 +196.1 +210.9 +198.7 +192.1 +208.3 +192.8 +193.6 +205.1 +191.5 +190.7 +179.2 +191.6 +192.1 +182.3 +176.1 +185.5 +187.1 +183.4 +191.9 +176.1 +178.0 +185.2 +191.3 +181.3 +178.1 +181.7 +200.3 +187.5 +201.6 +192.3 +177.7 +180.6 +192.9 +185.4 +183.1 +178.4 +196.9 +191.9 +186.1 +195.7 +177.7 +184.1 +195.4 +184.2 +188.8 +179.6 +182.0 +182.9 +185.1 +183.8 +189.3 +216.9 +196.6 +185.7 +235.5 +184.9 +181.8 +180.0 +186.6 +188.4 +190.7 +185.4 +210.9 +184.1 +203.0 +203.5 +198.9 +204.2 +199.7 +182.1 +178.1 +205.1 +179.4 +184.5 +180.7 +200.5 +197.3 +178.2 +178.8 +180.9 +219.2 +180.2 +192.5 +198.6 +238.0 +201.1 +182.4 +203.3 +182.0 +188.9 +201.2 +184.6 +182.7 +187.7 +188.5 +202.5 +199.8 +189.4 +191.1 +181.2 +191.7 +194.6 +181.3 +185.3 +192.8 +182.4 +191.6 +188.3 +202.6 +212.1 +179.6 +185.9 +183.4 +187.8 +184.4 +186.8 +197.0 +191.3 +186.7 +201.9 +187.2 +195.7 +178.5 +187.3 +190.8 +198.4 +198.8 +189.1 +189.6 +197.6 +201.0 +185.0 +182.2 +184.2 +193.2 +191.6 +187.4 +196.3 +190.7 +184.5 +206.1 +200.7 +193.0 +196.2 +195.1 +177.1 +180.7 +187.3 +188.3 +181.5 +180.7 +216.9 +185.7 +196.1 +193.2 +185.5 +186.9 +190.4 +189.7 +196.1 +193.9 +193.6 +185.7 +190.3 +199.8 +190.4 +187.4 +195.5 +190.0 +188.7 +190.2 +195.6 +195.2 +184.7 +186.9 +187.4 +179.3 +184.7 +206.7 +194.3 +198.9 +179.0 +185.7 +185.2 +206.7 +184.3 +202.8 +183.5 +178.9 +238.3 +181.1 +189.5 +176.7 +178.7 +183.4 +180.3 +192.4 +193.6 +186.6 +190.0 +184.0 +188.5 +188.6 +196.3 +182.2 +191.9 +191.1 +197.7 +188.4 +194.2 +201.7 +204.3 +199.6 +190.7 +183.0 +189.9 +192.9 +187.6 +182.8 +203.3 +189.3 +194.0 +189.4 +188.0 +194.4 +211.7 +186.3 +185.3 +187.2 +182.9 +194.9 +187.4 +190.4 +197.5 +184.5 +184.8 +180.0 +197.9 +205.9 +189.2 +196.5 +188.1 +185.4 +195.5 +185.0 +203.1 +188.6 +202.3 +180.6 +191.3 +204.4 +208.2 +189.2 +226.9 +200.0 +178.8 +181.5 +197.7 +204.1 +184.8 +178.5 +186.5 +190.9 +190.4 +181.4 +189.8 +179.2 +189.8 +179.6 +203.8 +205.4 +184.2 +192.8 +204.7 +186.6 +195.5 +203.7 +197.2 +178.0 +180.3 +187.0 +179.1 +187.5 +187.9 +183.4 +181.8 +184.1 +181.3 +184.0 +180.6 +230.8 +193.0 +190.5 +200.4 +187.9 +175.9 +204.2 +206.5 +183.2 +194.2 +187.2 +200.2 +189.6 +188.6 +188.6 +175.4 +184.2 +174.0 +177.2 +180.6 +181.5 +182.3 +187.1 +180.0 +184.7 +179.3 +195.7 +180.5 +179.5 +184.8 +204.0 +202.1 +178.7 +189.4 +196.4 +190.8 +184.3 +189.2 +182.8 +184.6 +178.4 +183.9 +185.0 +184.6 +179.2 +179.0 +182.4 +197.0 +188.4 +188.5 +196.0 +179.6 +188.1 +180.3 +196.1 +189.0 +178.4 +176.5 +186.4 +179.3 +187.7 +187.9 +184.8 +176.9 +188.7 +182.8 +192.3 +190.0 +197.2 +191.6 +197.8 +182.3 +184.2 +187.3 +188.2 +207.3 +189.2 +190.7 +202.3 +191.7 +195.4 +196.2 +190.1 +204.2 +194.8 +187.8 +209.1 +192.1 +193.1 +199.3 +192.1 +204.9 +190.8 +186.5 +189.3 +181.9 +193.3 +182.4 +195.2 +189.1 +196.8 +200.8 +187.6 +201.1 +197.0 +196.6 +177.7 +188.9 +186.2 +186.0 +199.9 +203.8 +190.2 +190.2 +186.3 +179.1 +198.8 +186.3 +192.4 +201.5 +190.2 +191.0 +178.0 +194.1 +197.9 +189.9 +180.2 +176.2 +193.5 +201.9 +201.3 +200.7 +190.3 +198.4 +186.0 +190.2 +182.7 +186.0 +190.0 +196.8 +193.0 +201.5 +184.7 +187.7 +190.8 +187.2 +183.5 +178.1 +178.9 +195.8 +178.2 +188.0 +177.2 +182.5 +184.2 +180.7 +189.6 +203.4 +181.7 +185.1 +177.5 +180.9 +194.0 +190.1 +190.1 +182.9 +184.4 +201.8 +191.1 +184.9 +197.7 +193.3 +190.3 +197.2 +188.2 +191.5 +190.0 +188.0 +187.5 +182.5 +186.6 +183.6 +193.9 +187.5 +186.9 +197.3 +187.2 +177.2 +186.8 +191.9 +186.9 +198.7 +179.7 +191.7 +193.6 +184.2 +178.4 +187.4 +203.3 +196.8 +195.4 +182.9 +187.7 +189.4 +192.5 +190.0 +190.0 +185.4 +194.6 +183.7 +180.2 +199.6 +190.5 +205.9 +176.4 +182.8 +179.0 +199.9 +186.7 +188.8 +189.5 +189.8 +193.5 +203.0 +183.8 +204.2 +176.4 +206.5 +184.7 +174.9 +183.2 +174.4 +196.2 +179.1 +183.7 +180.2 +174.5 +185.5 +203.5 +174.7 +186.1 +175.1 +198.2 +200.3 +184.2 +180.4 +187.9 +194.3 +194.9 +181.3 +180.2 +186.0 +187.6 +180.2 +188.1 +196.5 +175.9 +184.0 +194.4 +186.3 +207.6 +188.1 +185.2 +207.5 +177.7 +204.2 +203.3 +180.8 +176.0 +181.5 +202.3 +191.6 +186.8 +183.0 +189.7 +191.2 +179.2 +196.2 +185.9 +184.3 +183.3 +186.8 +179.3 +188.6 +184.8 +176.7 +189.6 +177.5 +186.3 +197.2 +178.1 +189.8 +175.8 +178.9 +191.9 +176.9 +186.8 +186.6 +194.1 +179.3 +178.7 +183.9 +220.3 +181.6 +183.7 +196.7 +180.2 +176.9 +189.5 +187.5 +185.8 +184.3 +179.9 +186.0 +178.5 +179.5 +227.6 +187.1 +199.2 +183.4 +177.2 +181.3 +190.7 +197.8 +180.1 +203.4 +198.1 +196.8 +184.3 +188.5 +189.6 +187.9 +200.7 +187.1 +193.3 +183.0 +199.1 +187.3 +181.8 +184.0 +178.0 +198.7 +177.4 +195.6 +184.1 +183.4 +186.0 +183.1 +181.8 +190.6 +188.8 +184.8 +196.5 +186.2 +184.7 +182.6 +187.4 +194.1 +185.3 +181.6 +198.4 +190.1 +200.2 +214.9 +195.1 +192.9 +190.8 +179.4 +194.9 +206.0 +193.2 +186.6 +214.1 +216.1 +189.0 +184.2 +201.1 +182.1 +200.2 +188.5 +193.0 +184.8 +188.8 +186.6 +188.3 +193.9 +202.4 +196.8 +214.5 +202.1 +186.7 +197.3 +184.2 +186.5 +202.6 +187.3 +204.3 +176.1 +183.9 +189.2 +189.7 +180.8 +199.4 +185.7 +193.3 +192.7 +192.8 +204.9 +188.7 +196.5 +187.9 +177.4 +189.6 +177.2 +197.3 +183.9 +189.7 +184.6 +191.0 +195.4 +175.7 +179.1 +184.4 +193.2 +180.4 +191.2 +187.2 +181.1 +203.5 +189.2 +186.4 +176.3 +191.5 +193.6 +187.0 +186.8 +187.3 +184.8 +197.6 +207.3 +191.8 +187.1 +196.3 +206.9 +199.9 +186.3 +189.9 +179.8 +200.0 +193.8 +190.9 +180.9 +176.3 +189.1 +180.4 +190.9 +182.4 +182.8 +181.1 +193.9 +184.0 +185.9 +199.1 +199.5 +204.2 +181.9 +199.0 +184.1 +207.4 +194.8 +216.5 +188.4 +206.7 +199.2 +179.3 +186.7 +200.7 +186.3 +195.5 +204.9 +194.0 +187.5 +196.3 +181.4 +186.0 +197.8 +198.1 +196.1 +184.3 +183.3 +211.3 +192.8 +187.9 +183.4 +192.9 +187.4 +194.2 +177.1 +200.0 +199.3 +177.2 +180.1 +178.6 +182.3 +189.1 +191.3 +197.7 +187.6 +187.3 +203.9 +204.4 +180.4 +186.5 +188.4 +176.1 +206.5 +187.7 +194.1 +193.5 +203.7 +186.8 +200.1 +187.0 +203.3 +196.3 +208.1 +192.7 +202.1 +204.7 +183.9 +186.7 +198.2 +189.4 +186.4 +188.3 +195.2 +203.3 +202.3 +201.1 +180.1 +191.3 +180.4 +187.7 +193.4 +196.5 +208.8 +185.3 +186.8 +203.6 +179.0 +185.0 +181.1 +193.8 +196.9 +201.0 +187.3 +189.6 +190.8 +188.9 +197.6 +203.0 +193.2 +185.6 +195.6 +199.1 +191.8 +178.7 +183.6 +184.1 +192.0 +182.4 +183.8 +209.5 +205.7 +187.0 +187.6 +200.6 +187.1 +187.2 +184.9 +180.3 +189.4 +182.7 +196.8 +184.7 +185.8 +184.0 +194.1 +180.5 +199.1 +181.7 +205.3 +182.6 +186.8 +180.2 +181.9 +187.4 +187.9 +191.8 +204.8 +178.5 +181.6 +181.6 +179.5 +181.9 +190.1 +194.1 +180.0 +179.1 +181.2 +175.0 +186.3 +184.8 +182.6 +186.8 +185.3 +181.2 +190.0 +195.3 +186.9 +190.6 +187.3 +193.4 +176.9 +190.5 +194.6 +181.0 +175.8 +187.9 +183.2 +187.7 +191.4 +183.1 +178.6 +193.4 +185.5 +190.1 +194.6 +191.0 +177.7 +187.3 +201.3 +188.6 +182.5 +196.3 +176.2 +184.9 +189.6 +186.9 +227.9 +188.1 +185.0 +182.9 +196.4 +183.1 +179.8 +186.5 +185.2 +199.7 +187.7 +191.6 +191.9 +194.8 +183.9 +185.3 +188.2 +192.7 +180.8 +183.5 +199.8 +196.8 +184.2 +179.5 +204.2 +183.5 +175.4 +207.3 +192.5 +191.9 +208.6 +194.7 +195.2 +190.3 +180.8 +182.6 +203.2 +191.4 +189.7 +183.9 +185.7 +192.3 +190.7 +206.8 +182.9 +195.2 +193.1 +201.2 +177.0 +188.1 +182.3 +185.0 +198.5 +186.4 +183.9 +189.4 +181.8 +199.9 +198.7 +183.7 +191.8 +187.5 +209.4 +201.8 +178.0 +201.8 +198.0 +187.2 +185.5 +178.1 +195.7 +200.1 +174.8 +176.4 +187.6 +177.3 +178.1 +197.5 +183.7 +207.7 +180.6 +176.6 +190.8 +191.0 +180.1 +180.4 +178.8 +185.5 +194.8 +188.1 +185.8 +179.5 +181.0 +196.1 +192.6 +179.2 +180.7 +206.3 +175.9 +196.8 +179.4 +195.1 +187.5 +183.9 +183.8 +184.6 +208.6 +195.5 +202.9 +191.9 +187.0 +189.2 +178.5 +176.1 +186.6 +195.1 +181.6 +201.0 +192.1 +192.9 +202.2 +191.0 +205.8 +204.3 +191.8 +185.1 +190.1 +193.6 +192.4 +185.2 +180.6 +192.6 +185.7 +187.5 +189.2 +184.0 +189.1 +200.6 +185.2 +182.8 +182.0 +185.4 +178.3 +188.4 +193.2 +194.9 +197.1 +194.4 +184.8 +179.2 +195.6 +182.6 +204.3 +203.1 +180.0 +187.7 +187.7 +197.8 +178.7 +186.5 +194.6 +194.8 +176.4 +202.5 +195.4 +180.5 +220.0 +191.0 +217.1 +178.4 +196.1 +182.5 +190.8 +191.7 +202.0 +196.8 +199.4 +183.8 +183.2 +186.5 +178.1 +198.6 +186.1 +195.4 +196.6 +199.3 +196.5 +177.9 +186.3 +180.5 +198.9 +190.2 +188.5 +184.1 +188.6 +201.4 +185.4 +176.4 +182.0 +176.9 +184.4 +179.0 +178.4 +183.8 +190.9 +185.5 +184.4 +179.6 +197.5 +184.3 +179.1 +193.4 +194.2 +179.1 +189.0 +191.2 +180.8 +184.5 +187.9 +191.7 +177.2 +185.4 +183.6 +190.7 +187.5 +188.8 +199.7 +190.0 +176.0 +204.4 +191.1 +188.3 +182.1 +181.6 +191.4 +191.8 +193.1 +186.0 +188.1 +178.4 +193.7 +175.1 +179.0 +186.7 +185.3 +179.7 +182.7 +198.0 +180.2 +189.5 +183.1 +177.1 +182.3 +174.7 +175.6 +186.4 +189.2 +178.9 +180.4 +181.3 +182.3 +180.3 +180.8 +180.1 +197.2 +204.7 +181.6 +182.3 +184.0 +176.5 +214.9 +194.7 +178.3 +175.1 +174.3 +176.5 +190.9 +183.1 +176.8 +177.1 +183.8 +178.5 +189.2 +180.8 +177.6 +175.3 +185.3 +183.4 +175.2 +183.6 +177.0 +181.9 +180.3 +185.1 +179.1 +188.1 +184.4 +181.6 +188.0 +181.6 +190.6 +177.9 +182.7 +177.4 +183.2 +189.3 +187.6 +179.8 +192.3 +188.1 +194.6 +186.7 +181.6 +191.8 +195.6 +187.4 +185.5 +190.0 +184.0 +178.5 +178.0 +200.8 +199.2 +186.5 +174.9 +181.3 +181.0 +187.6 +186.8 +183.3 +183.8 +195.6 +190.6 +193.8 +176.4 +179.1 +182.9 +193.4 +184.4 +186.2 +180.3 +194.7 +182.6 +186.7 +196.4 +196.7 +196.2 +192.3 +189.1 +178.4 +182.3 +195.2 +184.1 +189.0 +184.7 +189.3 +184.1 +177.3 +189.5 +186.1 +186.4 +180.5 +196.1 +187.5 +188.4 +195.8 +192.0 +192.9 +182.4 +199.6 +189.6 +180.2 +176.1 +220.4 +206.6 +195.5 +176.5 +202.2 +187.5 +185.0 +205.6 +195.7 +192.8 +192.8 +174.9 +187.3 +181.9 +180.4 +183.9 +187.6 +192.5 +202.1 +185.2 +200.2 +184.1 +189.9 +194.7 +185.1 +191.9 +176.0 +197.7 +177.5 +178.6 +179.3 +206.0 +193.3 +196.2 +179.3 +181.3 +205.5 +178.1 +186.9 +183.5 +178.5 +193.1 +179.4 +186.1 +174.3 +194.4 +187.1 +195.8 +176.0 +187.6 +176.1 +183.7 +182.0 +183.7 +176.3 +201.0 +185.8 +180.6 +186.1 +180.1 +204.4 +186.1 +182.9 +181.7 +184.6 +177.3 +186.2 +188.7 +180.5 +182.1 +185.3 +177.7 +185.4 +188.2 +194.1 +185.6 +177.8 +192.7 +198.1 +196.0 +187.5 +186.4 +206.8 +207.4 +177.3 +181.3 +185.0 +175.7 +174.2 +191.5 +194.0 +190.8 +199.2 +176.4 +202.7 +193.1 +182.6 +186.0 +196.0 +186.1 +189.4 +203.4 +184.8 +194.3 +187.2 +183.5 +199.4 +196.7 +180.2 +195.2 +180.9 +182.7 +193.5 +200.0 +193.3 +184.4 +199.1 +206.2 +199.0 +195.8 +189.4 +194.1 +196.4 +201.5 +180.7 +189.7 +193.3 +200.3 +205.5 +189.9 +192.6 +187.1 +205.7 +194.9 +188.0 +189.2 +197.9 +188.5 +185.0 +182.7 +205.8 +186.7 +189.2 +185.1 +182.4 +205.1 +181.4 +185.6 +188.5 +195.9 +199.8 +185.4 +194.7 +201.2 +185.0 +202.1 +200.0 +181.9 +186.8 +195.9 +182.2 +186.6 +187.1 +184.9 +181.1 +190.1 +191.0 +186.7 +184.6 +181.8 +190.4 +185.7 +183.4 +187.0 +182.6 +183.5 +173.9 +181.8 +194.1 +182.2 +182.6 +181.8 +187.0 +192.2 +178.9 +206.9 +197.1 +180.7 +183.4 +176.7 +187.9 +194.5 +182.0 +182.0 +190.9 +177.9 +180.3 +190.8 +187.7 +179.1 +187.9 +183.7 +187.9 +183.5 +175.9 +186.5 +178.2 +180.7 +194.3 +184.8 +181.4 +182.8 +179.8 +187.0 +179.1 +178.8 +187.2 +185.9 +182.0 +187.7 +181.3 +186.0 +181.0 +183.2 +186.5 +189.3 +187.8 +182.8 +179.4 +199.0 +180.9 +193.8 +202.6 +185.8 +177.5 +182.7 +202.4 +213.8 +190.6 +189.8 +190.5 +185.0 +183.7 +191.0 +185.7 +182.2 +194.8 +183.1 +191.8 +186.6 +185.2 +181.7 +182.1 +185.7 +195.0 +181.5 +185.1 +181.5 +187.3 +186.5 +188.7 +185.2 +180.7 +178.3 +191.8 +185.4 +188.6 +184.5 +187.5 +191.5 +191.5 +195.8 +197.9 +194.2 +184.9 +182.7 +182.1 +185.6 +188.4 +178.8 +190.4 +179.3 +186.2 +206.0 +191.2 +195.1 +198.4 +189.9 +180.8 +181.1 +198.5 +203.4 +190.8 +177.1 +184.0 +181.0 +192.2 +175.9 +200.4 +192.2 +181.1 +202.0 +198.6 +203.6 +191.7 +193.4 +192.6 +186.5 +182.4 +195.8 +184.9 +191.0 +176.7 +182.7 +194.8 +181.9 +191.1 +205.5 +176.3 +200.1 +184.1 +208.8 +184.3 +196.2 +190.2 +197.1 +186.8 +181.7 +188.5 +188.6 +187.2 +195.3 +198.6 +205.7 +185.4 +187.5 +176.2 +186.1 +199.4 +294.6 +232.7 +200.5 +181.8 +189.1 +186.9 +190.7 +179.7 +181.3 +181.5 +200.5 +181.2 +181.7 +185.4 +195.5 +201.9 +199.7 +194.2 +179.6 +181.4 +205.5 +183.1 +499.4 +188.5 +184.5 +194.5 +195.5 +193.6 +189.0 +196.4 +188.3 +186.7 +190.6 +176.9 +188.1 +189.4 +198.2 +178.8 +196.5 +203.1 +192.3 +193.8 +188.4 +180.2 +192.3 +187.1 +195.2 +181.6 +185.5 +190.9 +185.2 +200.5 +190.0 +180.2 +194.4 +196.5 +187.7 +184.3 +189.5 +188.2 +189.5 +194.5 +192.4 +202.1 +177.9 +193.8 +191.7 +182.2 +190.1 +197.4 +196.6 +193.7 +195.9 +200.9 +178.8 +181.4 +193.6 +193.5 +177.7 +192.9 +190.9 +201.2 +184.9 +175.8 +197.9 +202.4 +192.3 +202.5 +198.3 +196.8 +185.2 +184.8 +198.1 +191.3 +174.0 +180.5 +193.4 +183.0 +185.1 +177.0 +190.4 +181.3 +179.0 +180.6 +179.1 +188.8 +207.2 +183.7 +186.6 +198.3 +176.6 +186.5 +187.4 +179.5 +189.2 +197.7 +181.5 +194.6 +195.5 +181.6 +197.3 +190.7 +202.0 +183.9 +193.0 +183.9 +196.9 +203.5 +189.4 +187.1 +185.2 +184.8 +199.8 +175.7 +180.6 +187.6 +185.4 +178.5 +185.5 +178.7 +187.5 +185.7 +191.9 +180.2 +186.7 +183.0 +196.7 +197.6 +197.1 +187.4 +194.8 +194.7 +191.0 +185.1 +187.0 +185.8 +197.6 +204.2 +187.9 +189.9 +217.5 +202.8 +192.4 +176.4 +178.8 +199.8 +192.5 +199.9 +190.8 +202.8 +187.0 +180.2 +196.6 +176.5 +187.6 +181.3 +191.0 +180.6 +184.7 +195.8 +191.5 +182.7 +181.3 +189.3 +182.5 +184.2 +187.9 +202.4 +195.7 +189.5 +195.4 +201.2 +186.1 +208.8 +199.6 +189.4 +180.5 +194.2 +184.5 +187.5 +196.6 +188.0 +210.1 +193.3 +187.6 +191.6 +188.5 +179.2 +192.5 +189.7 +181.6 +180.9 +187.9 +180.6 +181.1 +178.7 +175.7 +176.2 +187.1 +185.0 +186.9 +186.5 +190.0 +185.6 +201.2 +189.3 +189.3 +189.7 +188.2 +187.2 +175.0 +185.5 +185.0 +205.2 +187.3 +177.2 +179.2 +190.2 +183.0 +192.9 +183.2 +185.4 +179.2 +186.2 +183.1 +183.8 +186.6 +185.7 +192.4 +179.6 +196.2 +180.2 +185.9 +197.4 +192.2 +177.5 +180.7 +190.2 +176.9 +193.6 +186.2 +184.9 +182.0 +186.1 +187.4 +184.3 +196.2 +203.1 +180.6 +192.5 +196.2 +195.9 +181.6 +189.9 +183.3 +192.7 +187.3 +191.0 +200.2 +180.1 +187.0 +175.7 +179.9 +193.1 +190.2 +202.1 +174.1 +179.5 +185.1 +182.7 +196.7 +179.8 +186.7 +192.5 +189.2 +193.7 +184.1 +185.6 +184.6 +193.6 +181.0 +189.2 +179.9 +181.4 +183.7 +184.5 +193.1 +191.5 +182.9 +190.2 +185.2 +185.9 +216.6 +184.1 +195.7 +181.2 +182.8 +199.3 +187.4 +184.9 +177.6 +206.2 +184.1 +201.5 +200.7 +192.2 +187.0 +182.1 +196.6 +181.6 +189.2 +191.6 +188.8 +186.9 +193.6 +184.2 +191.3 +194.9 +194.6 +188.7 +179.2 +205.1 +181.0 +177.3 +183.7 +184.8 +183.7 +204.3 +190.7 +181.6 +191.6 +189.5 +195.5 +176.0 +193.0 +192.1 +195.9 +205.8 +192.2 +190.6 +198.3 +185.8 +186.7 +198.6 +184.2 +203.1 +199.6 +187.0 +204.3 +207.2 +190.8 +196.7 +188.8 +193.2 +188.7 +199.8 +204.3 +188.6 +192.0 +209.8 +180.3 +203.7 +196.4 +185.7 +182.1 +193.3 +200.9 +196.6 +181.9 +182.2 +179.2 +197.3 +189.3 +200.9 +184.5 +185.8 +185.6 +187.5 +187.5 +189.5 +186.9 +187.2 +195.7 +182.0 +179.0 +191.4 +188.5 +177.7 +185.7 +182.0 +189.0 +198.7 +188.4 +186.6 +180.4 +185.1 +184.2 +207.6 +184.2 +190.0 +181.5 +190.9 +191.2 +187.8 +177.8 +182.7 +191.8 +206.2 +201.4 +182.2 +189.2 +195.4 +187.9 +195.7 +190.4 +183.3 +183.2 +178.2 +189.0 +179.2 +175.5 +187.3 +181.1 +180.1 +188.1 +184.4 +183.9 +200.2 +185.4 +180.4 +184.0 +183.8 +181.2 +203.6 +201.1 +197.1 +192.3 +182.7 +182.4 +183.0 +177.3 +181.3 +185.3 +184.6 +188.7 +179.1 +179.1 +184.6 +176.0 +177.8 +186.9 +189.8 +180.3 +177.2 +184.2 +179.2 +177.4 +182.0 +186.6 +188.7 +194.2 +184.0 +178.9 +175.3 +191.6 +182.9 +188.3 +178.7 +201.6 +186.4 +180.8 +184.7 +186.7 +196.9 +177.7 +178.8 +175.3 +182.7 +184.0 +182.4 +196.6 +174.7 +178.0 +181.5 +198.1 +185.1 +177.5 +181.2 +188.1 +196.0 +183.6 +196.2 +185.9 +193.2 +186.7 +179.7 +195.3 +190.1 +206.8 +186.2 +178.5 +192.0 +187.6 +176.9 +191.8 +190.8 +193.6 +200.0 +192.3 +178.0 +184.6 +179.4 +178.2 +183.2 +179.9 +184.9 +183.7 +189.1 +176.4 +185.5 +184.8 +192.5 +185.3 +193.9 +179.6 +181.7 +179.1 +210.8 +185.6 +184.2 +181.3 +198.8 +180.2 +182.5 +191.9 +196.4 +186.6 +185.3 +182.5 +175.8 +182.0 +186.9 +186.6 +176.0 +175.4 +186.5 +175.4 +182.4 +199.5 +192.7 +182.0 +199.9 +181.1 +196.7 +186.2 +182.0 +175.9 +184.4 +183.8 +178.4 +191.3 +177.8 +196.1 +200.8 +200.6 +191.1 +190.4 +180.3 +200.6 +201.4 +181.3 +176.9 +183.2 +185.0 +178.4 +187.8 +172.7 +182.8 +186.3 +193.9 +179.2 +194.9 +176.8 +188.1 +190.7 +192.3 +178.4 +191.9 +196.6 +183.5 +197.8 +192.0 +176.0 +192.1 +191.5 +193.3 +209.5 +185.2 +187.6 +186.3 +190.9 +183.9 +190.2 +186.3 +184.7 +177.3 +185.0 +178.3 +193.0 +181.7 +190.9 +185.3 +174.9 +192.3 +194.5 +194.1 +177.0 +185.2 +193.2 +202.4 +202.0 +197.2 +199.3 +176.9 +185.7 +188.1 +186.8 +184.4 +204.5 +196.4 +181.3 +190.9 +177.2 +192.4 +179.9 +177.0 +194.1 +203.5 +189.1 +194.7 +181.5 +183.6 +199.8 +187.3 +185.1 +195.7 +177.8 +178.3 +189.8 +200.1 +176.9 +177.9 +188.9 +190.9 +198.7 +197.7 +186.9 +190.8 +201.4 +188.5 +180.4 +196.2 +185.8 +194.9 +193.3 +181.3 +195.4 +197.5 +201.3 +179.5 +177.7 +201.9 +199.9 +183.5 +177.6 +190.4 +183.7 +178.4 +203.6 +195.9 +199.5 +193.2 +175.0 +184.5 +190.6 +194.3 +178.2 +177.5 +188.4 +179.7 +183.8 +174.2 +186.5 +179.8 +196.9 +194.9 +178.4 +185.7 +190.1 +181.3 +180.0 +179.9 +181.7 +187.4 +185.9 +178.9 +184.6 +189.5 +186.6 +185.8 +188.4 +188.3 +174.7 +184.9 +192.5 +185.3 +174.9 +180.6 +179.5 +183.4 +177.7 +177.5 +187.4 +183.7 +188.0 +177.6 +180.7 +180.9 +181.9 +188.9 +201.1 +186.6 +176.3 +177.3 +177.6 +175.6 +201.5 +175.5 +188.2 +181.8 +176.9 +185.3 +179.6 +192.7 +203.8 +183.4 +179.4 +177.9 +182.8 +182.3 +174.9 +180.5 +180.2 +187.1 +190.4 +185.5 +184.6 +185.4 +190.3 +183.9 +180.0 +201.8 +198.1 +184.2 +192.8 +184.2 +195.7 +191.4 +188.8 +192.9 +184.8 +174.3 +191.8 +185.4 +183.8 +192.7 +192.6 +194.8 +177.9 +178.7 +181.5 +177.3 +192.5 +176.0 +178.9 +199.7 +181.0 +178.8 +177.1 +183.0 +176.7 +182.3 +180.9 +183.1 +183.9 +174.2 +178.7 +173.8 +174.4 +179.1 +178.4 +175.4 +181.4 +180.9 +178.2 +182.5 +184.2 +183.7 +182.6 +176.2 +177.2 +180.5 +183.9 +193.4 +174.9 +178.8 +176.0 +178.1 +176.1 +177.3 +178.7 +182.2 +191.0 +186.8 +188.4 +180.3 +177.8 +198.8 +176.7 +198.3 +178.5 +177.9 +179.9 +186.7 +178.0 +175.4 +186.6 +190.8 +190.7 +183.5 +196.3 +182.1 +184.4 +188.8 +186.3 +184.8 +191.3 +186.2 +191.0 +188.3 +178.8 +176.3 +181.2 +183.1 +180.4 +178.6 +176.2 +176.1 +177.5 +180.6 +178.1 +176.4 +195.4 +178.8 +179.6 +178.1 +179.7 +178.3 +181.9 +177.4 +181.4 +186.7 +174.6 +179.4 +177.5 +197.6 +196.5 +193.1 +179.2 +182.2 +178.1 +186.3 +182.1 +175.4 +177.5 +188.1 +182.9 +179.8 +179.2 +180.0 +176.9 +177.4 +192.5 +177.5 +177.4 +181.8 +175.6 +178.9 +180.6 +176.8 +182.8 +186.7 +182.5 +188.3 +183.7 +185.1 +195.4 +179.2 +180.7 +190.0 +187.5 +180.3 +183.0 +184.2 +184.3 +189.4 +180.1 +179.6 +182.3 +177.6 +186.3 +188.0 +182.1 +187.1 +186.2 +184.2 +202.3 +187.0 +188.0 +180.5 +194.6 +188.8 +190.7 +181.9 +182.1 +185.3 +183.1 +197.3 +195.0 +208.3 +195.7 +179.1 +196.3 +185.5 +185.4 +186.9 +193.9 +187.1 +184.2 +180.0 +184.8 +189.6 +192.3 +185.6 +185.8 +185.9 +187.9 +186.2 +177.3 +192.2 +201.9 +185.9 +181.7 +192.8 +185.4 +187.3 +187.5 +178.9 +187.6 +181.3 +186.9 +179.6 +179.3 +189.4 +177.5 +184.5 +176.4 +193.3 +178.7 +191.6 +182.7 +194.6 +187.4 +190.4 +199.1 +191.6 +193.1 +187.0 +181.7 +180.3 +196.6 +180.5 +180.0 +184.9 +176.9 +176.3 +179.3 +189.1 +180.4 +176.0 +174.9 +181.2 +177.6 +177.4 +177.6 +179.0 +178.7 +178.7 +184.8 +177.9 +179.4 +183.8 +181.9 +177.1 +175.8 +182.9 +183.2 +176.8 +181.7 +183.7 +192.1 +178.2 +181.4 +180.0 +176.8 +179.8 +194.3 +181.6 +180.7 +177.5 +187.4 +179.0 +180.0 +186.0 +182.0 +175.4 +178.9 +181.9 +192.0 +179.5 +178.5 +175.3 +184.1 +178.3 +177.1 +186.2 +196.9 +182.0 +178.0 +181.4 +181.4 +179.6 +180.2 +180.4 +183.1 +176.6 +182.9 +176.3 +191.5 +179.9 +178.1 +178.4 +189.3 +196.8 +188.2 +180.5 +185.2 +188.0 +176.3 +181.0 +187.4 +178.9 +179.1 +185.3 +183.4 +185.8 +178.5 +176.1 +188.9 +200.9 +193.9 +193.4 +184.0 +187.2 +178.1 +193.5 +182.0 +180.1 +182.8 +176.8 +177.0 +184.0 +185.2 +197.3 +180.8 +190.4 +177.3 +183.4 +191.3 +175.4 +176.8 +192.3 +177.3 +191.1 +185.1 +179.7 +190.8 +175.9 +181.2 +194.0 +176.5 +180.3 +175.1 +185.1 +181.3 +200.0 +187.0 +182.6 +182.0 +176.8 +190.1 +182.1 +181.7 +192.3 +177.0 +185.1 +181.3 +179.2 +182.1 +176.6 +185.0 +177.4 +183.5 +196.5 +184.2 +179.2 +180.5 +180.8 +181.9 +176.9 +178.6 +175.9 +192.0 +198.7 +189.6 +190.5 +186.3 +192.6 +196.0 +176.2 +175.9 +176.5 +195.4 +174.8 +177.4 +186.7 +174.9 +176.1 +183.0 +178.1 +177.4 +192.9 +179.7 +198.5 +178.1 +178.6 +195.4 +181.6 +179.9 +179.5 +186.4 +180.6 +180.3 +187.3 +193.9 +192.5 +178.1 +184.8 +194.9 +194.6 +181.4 +177.6 +180.4 +175.5 +180.5 +177.2 +186.6 +176.8 +176.3 +186.0 +179.8 +178.2 +177.9 +178.9 +190.1 +180.8 +180.1 +181.3 +193.5 +185.0 +198.7 +199.9 +183.4 +177.3 +176.2 +182.7 +178.2 +175.2 +177.7 +186.9 +182.1 +195.1 +181.3 +182.4 +175.7 +185.5 +180.8 +181.4 +181.6 +190.1 +183.7 +186.4 +194.3 +176.4 +176.7 +189.9 +175.6 +206.6 +178.9 +180.0 +178.8 +180.1 +184.1 +176.3 +177.9 +194.3 +188.5 +182.6 +178.6 +177.5 +190.9 +178.9 +180.3 +193.9 +187.4 +186.4 +190.1 +184.7 +199.2 +187.9 +177.7 +180.5 +189.4 +176.5 +192.8 +181.4 +178.0 +193.6 +175.8 +184.4 +184.1 +191.9 +176.2 +184.5 +180.4 +185.1 +180.0 +192.6 +187.6 +190.2 +183.0 +176.5 +194.4 +178.4 +184.5 +176.6 +179.0 +182.6 +187.2 +180.4 +183.3 +180.8 +179.1 +193.9 +181.9 +188.8 +180.0 +175.2 +194.5 +194.8 +187.7 +182.5 +199.3 +175.0 +175.9 +177.9 +179.6 +179.4 +176.0 +176.4 +175.8 +177.2 +176.8 +179.0 +180.4 +177.1 +174.9 +177.9 +180.6 +187.3 +176.6 +177.3 +184.4 +179.2 +177.2 +175.7 +183.3 +177.4 +180.7 +175.6 +173.6 +179.6 +177.2 +180.8 +176.4 +187.7 +178.4 +176.0 +192.5 +181.4 +183.5 +178.5 +186.6 +179.4 +180.1 +181.6 +178.3 +178.2 +184.1 +180.6 +178.3 +184.1 +181.6 +177.4 +183.4 +180.6 +178.8 +179.0 +175.1 +177.0 +180.8 +179.9 +177.7 +176.3 +177.3 +184.2 +176.9 +190.8 +183.0 +181.0 +184.0 +178.6 +175.2 +177.2 +177.9 +183.2 +180.9 +176.3 +177.0 +182.8 +178.5 +176.9 +178.1 +175.5 +184.7 +176.6 +177.2 +182.4 +189.5 +197.3 +179.9 +190.4 +182.4 +188.7 +185.5 +181.1 +182.6 +187.0 +184.4 +179.1 +180.1 +180.9 +187.2 +175.9 +194.1 +177.9 +177.4 +200.7 +201.4 +183.5 +180.8 +195.5 +181.0 +180.2 +181.5 +175.9 +175.3 +180.1 +182.1 +180.1 +176.5 +178.9 +200.5 +178.6 +176.6 +175.8 +175.8 +176.0 +199.3 +177.5 +180.9 +185.1 +200.3 +194.0 +177.7 +181.2 +182.1 +185.1 +183.4 +180.7 +188.8 +187.3 +179.1 +177.5 +185.5 +185.5 +177.2 +175.3 +178.6 +184.5 +180.0 +179.9 +177.1 +178.0 +187.8 +183.6 +189.6 +181.5 +179.7 +179.0 +188.8 +185.1 +177.0 +177.1 +176.3 +176.4 +199.6 +178.1 +188.2 +176.9 +191.5 +194.0 +182.6 +184.0 +186.4 +184.1 +180.0 +181.1 +187.3 +176.1 +174.5 +189.3 +188.9 +178.7 +177.2 +191.0 +194.3 +187.7 +177.0 +176.4 +183.3 +176.2 +181.3 +181.0 +176.8 +187.8 +178.2 +202.3 +191.6 +180.3 +174.8 +187.8 +176.9 +176.9 +181.1 +177.5 +186.1 +179.3 +187.2 +176.6 +178.6 +178.7 +179.0 +188.7 +188.5 +183.8 +192.2 +178.8 +180.4 +182.1 +177.0 +175.1 +180.1 +176.7 +176.0 +188.1 +191.3 +186.6 +202.0 +182.5 +175.9 +182.1 +195.6 +174.8 +194.5 +181.2 +191.8 +180.4 +178.7 +186.1 +180.9 +186.4 +177.0 +183.6 +179.7 +208.1 +179.4 +179.1 +178.5 +179.2 +180.7 +183.3 +180.4 +187.6 +176.9 +185.4 +187.5 +184.3 +183.5 +181.0 +190.8 +178.6 +180.0 +180.4 +191.0 +182.8 +186.9 +179.6 +189.1 +186.9 +202.3 +181.1 +192.1 +194.3 +176.7 +185.8 +177.3 +179.5 +177.2 +177.8 +190.5 +190.1 +184.1 +191.8 +178.7 +185.9 +178.3 +177.4 +176.4 +177.8 +179.0 +177.6 +179.7 +178.1 +190.5 +177.8 +180.4 +181.6 +181.3 +177.3 +182.1 +189.7 +178.2 +179.7 +181.3 +178.8 +194.0 +200.6 +179.6 +177.9 +181.0 +184.7 +180.8 +181.1 +187.8 +183.4 +186.2 +181.8 +175.8 +176.8 +176.3 +177.0 +186.7 +178.5 +183.0 +177.1 +182.3 +182.2 +180.6 +180.6 +185.2 +178.9 +192.3 +177.6 +212.1 +180.5 +186.4 +187.4 +196.4 +181.9 +194.5 +188.5 +179.4 +179.3 +181.4 +185.7 +176.9 +182.6 +185.0 +181.7 +178.9 +184.4 +180.4 +189.2 +187.5 +204.6 +189.7 +182.6 +182.1 +180.0 +182.3 +180.1 +189.3 +178.1 +183.8 +180.9 +184.8 +182.2 +177.7 +176.1 +197.5 +195.8 +183.3 +183.4 +199.0 +205.4 +183.6 +182.5 +182.2 +199.1 +187.1 +179.5 +182.9 +180.2 +177.5 +183.4 +189.4 +196.2 +181.2 +183.3 +178.6 +181.5 +185.5 +179.8 +184.3 +198.8 +184.9 +178.0 +177.7 +181.0 +186.0 +196.3 +178.1 +192.4 +178.7 +181.4 +192.5 +181.4 +192.5 +182.2 +178.9 +183.9 +185.3 +192.2 +186.0 +193.4 +178.4 +194.5 +179.9 +187.6 +185.9 +179.2 +185.0 +188.1 +189.4 +187.9 +190.0 +191.9 +187.5 +186.0 +189.6 +182.4 +185.6 +187.0 +192.4 +183.3 +189.2 +194.6 +195.9 +190.7 +186.4 +185.9 +185.3 +177.1 +184.6 +186.4 +183.1 +186.2 +180.0 +181.8 +184.7 +176.6 +178.0 +178.5 +182.2 +200.3 +184.2 +186.9 +178.2 +190.3 +194.9 +193.1 +193.5 +188.5 +177.9 +185.4 +177.6 +179.7 +193.0 +200.3 +182.0 +192.3 +183.3 +183.6 +183.2 +190.8 +182.6 +177.7 +177.1 +183.7 +177.5 +175.4 +180.3 +181.3 +178.8 +182.3 +176.5 +177.4 +176.0 +178.8 +184.3 +183.0 +180.2 +184.9 +188.1 +187.6 +182.8 +183.0 +180.0 +177.5 +196.1 +185.1 +175.5 +175.9 +178.6 +201.5 +177.1 +191.7 +184.8 +176.2 +184.4 +175.9 +182.6 +182.0 +180.8 +178.7 +191.3 +179.5 +178.7 +174.8 +185.1 +174.9 +189.8 +191.3 +191.9 +190.7 +175.8 +177.3 +183.6 +178.0 +185.1 +177.2 +178.6 +188.7 +179.0 +186.0 +202.6 +177.2 +179.8 +196.0 +195.8 +186.8 +183.6 +202.2 +182.0 +175.8 +186.6 +178.2 +181.3 +180.8 +183.6 +181.9 +192.4 +190.8 +179.2 +184.6 +186.2 +183.0 +196.5 +179.6 +183.4 +187.2 +179.5 +185.3 +182.2 +177.8 +176.6 +177.2 +179.3 +177.1 +181.9 +178.9 +180.2 +179.8 +175.0 +176.8 +180.5 +175.7 +176.3 +180.6 +181.6 +176.6 +175.4 +177.4 +176.2 +180.8 +188.0 +178.2 +205.6 +177.8 +176.5 +179.4 +176.4 +183.3 +177.9 +174.2 +176.1 +182.8 +180.8 +186.9 +179.4 +195.8 +178.8 +181.6 +199.7 +175.8 +186.7 +179.1 +182.4 +179.1 +176.3 +180.5 +174.7 +180.8 +178.2 +185.2 +183.3 +192.7 +184.9 +205.8 +177.0 +182.5 +187.3 +185.9 +184.3 +177.0 +193.2 +179.0 +177.5 +181.3 +176.2 +178.8 +197.3 +180.8 +180.8 +189.7 +188.3 +179.5 +179.3 +185.3 +184.8 +192.3 +180.4 +186.7 +180.0 +178.9 +177.9 +179.4 +177.3 +181.9 +175.4 +174.1 +180.2 +176.9 +178.6 +177.5 +176.4 +177.7 +180.6 +182.2 +178.0 +179.3 +176.9 +188.6 +180.4 +179.8 +180.7 +177.2 +176.7 +175.3 +176.4 +178.4 +177.8 +180.1 +193.5 +181.0 +183.6 +177.9 +181.9 +186.9 +197.3 +175.7 +177.6 +184.7 +179.6 +182.2 +181.9 +181.2 +176.7 +185.5 +196.8 +185.9 +182.4 +178.1 +180.2 +178.3 +181.7 +186.4 +175.6 +182.6 +179.6 +181.0 +188.0 +178.1 +176.9 +181.0 +179.6 +185.0 +177.7 +179.4 +178.0 +185.7 +179.0 +194.2 +175.4 +178.5 +175.0 +176.7 +179.3 +188.8 +181.0 +177.3 +188.0 +178.5 +180.0 +175.9 +180.7 +181.2 +177.0 +179.2 +179.3 +193.1 +176.0 +179.4 +185.4 +177.4 +177.2 +177.9 +176.4 +186.7 +178.0 +178.7 +180.5 +186.7 +176.4 +185.8 +182.5 +177.3 +180.3 +179.5 +174.6 +184.2 +184.0 +176.3 +176.0 +211.4 +184.5 +182.1 +180.5 +188.1 +177.9 +179.7 +177.5 +184.5 +180.6 +191.1 +187.4 +176.3 +180.4 +183.2 +184.8 +178.6 +189.8 +180.9 +176.6 +176.9 +176.4 +182.0 +178.2 +177.3 +189.9 +191.1 +178.0 +179.5 +176.7 +194.2 +211.7 +175.9 +177.9 +176.0 +179.7 +180.6 +176.4 +180.3 +177.2 +183.6 +180.6 +187.4 +189.4 +189.6 +177.1 +179.4 +184.3 +186.4 +181.9 +180.1 +184.8 +182.0 +188.2 +181.4 +184.8 +177.5 +180.3 +195.4 +185.7 +176.8 +176.0 +187.3 +202.2 +194.5 +181.1 +182.9 +197.6 +186.9 +181.3 +180.9 +183.9 +191.0 +182.5 +186.9 +179.7 +179.2 +185.6 +184.3 +180.4 +190.9 +183.6 +183.1 +175.0 +180.9 +186.3 +174.8 +176.4 +176.1 +175.7 +178.1 +178.0 +180.5 +182.6 +180.0 +179.2 +186.8 +188.3 +179.8 +179.6 +180.5 +176.9 +204.2 +195.2 +180.2 +177.9 +187.9 +191.3 +183.9 +185.3 +186.8 +182.5 +189.5 +176.8 +180.5 +189.3 +185.9 +178.0 +176.0 +179.2 +181.3 +175.6 +179.9 +179.4 +183.8 +178.8 +177.9 +180.1 +182.3 +180.9 +175.7 +178.1 +173.7 +177.9 +180.0 +176.2 +177.7 +179.4 +192.3 +175.7 +185.7 +188.6 +195.5 +182.5 +184.1 +177.9 +177.8 +183.0 +174.9 +174.9 +179.7 +186.4 +185.9 +175.2 +179.2 +176.8 +181.5 +178.3 +180.6 +176.8 +175.8 +175.9 +180.3 +179.7 +175.8 +174.1 +180.6 +176.7 +179.7 +175.7 +179.2 +178.3 +203.4 +177.9 +186.9 +175.7 +177.0 +178.8 +180.2 +180.1 +185.5 +175.0 +178.6 +183.3 +177.2 +178.3 +180.1 +175.9 +175.6 +179.3 +179.8 +178.0 +186.5 +176.4 +187.2 +181.6 +175.4 +177.5 +179.1 +179.2 +175.9 +174.3 +175.5 +177.4 +178.5 +182.0 +181.4 +184.4 +183.4 +174.4 +177.5 +175.0 +175.4 +174.1 +182.8 +184.9 +178.3 +182.9 +182.3 +186.6 +180.9 +191.6 +185.6 +184.8 +190.2 +175.8 +185.2 +175.5 +176.9 +176.7 +176.9 +176.5 +179.2 +179.9 +179.2 +177.8 +188.9 +180.3 +186.8 +182.0 +180.8 +176.6 +180.5 +175.3 +185.0 +181.1 +181.1 +176.5 +176.5 +178.0 +175.9 +180.2 +178.3 +188.0 +185.9 +178.6 +179.5 +187.6 +180.2 +181.3 +182.5 +182.8 +175.0 +184.9 +181.7 +178.5 +177.5 +177.1 +176.8 +179.0 +179.2 +175.5 +177.1 +178.9 +174.8 +179.0 +177.3 +179.2 +178.2 +177.5 +191.8 +177.6 +182.1 +178.7 +177.2 +182.5 +181.5 +185.6 +179.5 +183.9 +177.6 +179.6 +193.9 +175.9 +216.0 +180.4 +177.3 +178.8 +176.7 +177.3 +178.3 +188.8 +175.8 +175.7 +176.0 +178.3 +185.1 +179.0 +191.3 +180.0 +178.8 +189.8 +182.7 +176.7 +178.0 +184.2 +185.0 +190.3 +178.0 +178.7 +177.4 +186.0 +176.4 +179.6 +178.0 +182.2 +175.9 +175.7 +178.3 +174.7 +193.6 +177.2 +186.6 +183.7 +181.0 +192.1 +176.4 +188.6 +205.9 +199.0 +194.6 +193.4 +190.4 +178.1 +188.0 +183.8 +180.5 +180.5 +190.5 +194.5 +180.8 +185.3 +193.4 +183.1 +178.1 +197.4 +190.2 +181.0 +184.9 +189.0 +184.6 +183.7 +187.7 +187.9 +182.5 +192.6 +184.3 +178.7 +179.8 +196.8 +184.4 +195.5 +183.9 +186.6 +181.0 +188.7 +185.0 +197.1 +204.2 +176.8 +179.6 +185.3 +182.1 +178.6 +180.6 +183.0 +199.1 +180.5 +180.7 +189.2 +194.5 +187.1 +192.3 +179.3 +196.8 +197.3 +180.3 +177.0 +178.8 +183.2 +183.1 +176.6 +201.6 +183.8 +182.7 +177.0 +185.2 +180.1 +199.4 +203.2 +187.4 +185.7 +184.1 +183.0 +198.7 +186.3 +187.9 +199.4 +185.9 +190.3 +202.8 +204.6 +178.1 +187.6 +196.5 +180.3 +181.7 +182.9 +199.2 +198.8 +190.5 +219.6 +180.0 +203.5 +182.0 +184.1 +176.8 +200.9 +201.9 +180.9 +177.9 +183.4 +179.5 +197.8 +188.0 +204.1 +185.6 +179.3 +190.6 +184.3 +195.2 +188.0 +200.9 +187.7 +183.0 +180.9 +180.0 +184.7 +176.8 +181.9 +180.6 +180.0 +177.7 +182.2 +175.2 +182.9 +186.3 +203.4 +183.3 +175.8 +186.2 +179.8 +178.4 +178.2 +420.1 +177.9 +193.8 +183.8 +180.0 +188.8 +187.2 +192.0 +180.8 +182.3 +191.8 +183.2 +176.6 +179.5 +215.2 +193.8 +188.3 +180.3 +186.4 +181.8 +205.8 +175.1 +186.5 +205.9 +185.5 +187.1 +191.7 +189.4 +188.3 +180.1 +179.8 +178.9 +179.3 +181.9 +184.9 +188.4 +176.2 +177.0 +181.8 +179.5 +177.3 +176.0 +208.3 +185.6 +180.6 +180.3 +195.0 +177.7 +175.7 +214.3 +188.2 +177.7 +187.1 +197.1 +184.8 +178.2 +182.1 +178.4 +176.3 +190.6 +187.3 +177.8 +177.2 +191.7 +200.2 +188.4 +177.3 +177.0 +178.5 +180.3 +177.0 +182.2 +184.4 +175.8 +185.6 +179.6 +180.8 +179.9 +199.4 +175.1 +196.3 +185.5 +182.5 +179.4 +191.2 +192.4 +180.3 +186.8 +194.7 +180.5 +178.0 +180.8 +184.9 +180.7 +179.0 +184.5 +180.5 +176.2 +182.9 +178.8 +183.5 +194.6 +182.0 +198.5 +176.5 +185.0 +187.6 +196.9 +194.2 +185.0 +190.8 +179.6 +175.8 +198.5 +180.0 +177.9 +203.3 +183.3 +181.4 +183.8 +176.5 +175.1 +193.9 +178.9 +183.0 +180.2 +178.0 +178.9 +188.1 +181.3 +179.3 +181.6 +183.1 +175.0 +178.8 +175.7 +179.4 +180.6 +185.9 +176.7 +190.8 +189.6 +180.1 +176.7 +181.7 +180.7 +191.9 +175.5 +180.1 +185.1 +182.0 +181.0 +184.3 +196.6 +188.8 +191.0 +184.2 +184.1 +180.1 +189.0 +178.2 +182.6 +190.4 +182.5 +186.3 +182.9 +191.5 +183.6 +193.2 +183.3 +201.4 +215.5 +182.4 +196.6 +183.6 +190.7 +180.8 +190.9 +178.2 +189.8 +194.8 +180.9 +184.2 +184.1 +185.3 +176.7 +181.5 +181.0 +191.1 +195.9 +192.0 +178.0 +179.9 +184.7 +181.3 +188.5 +187.6 +184.7 +193.9 +198.5 +188.5 +186.5 +184.4 +188.1 +183.0 +190.8 +184.9 +183.8 +184.5 +185.5 +180.2 +181.3 +181.8 +177.5 +178.6 +205.8 +188.5 +188.1 +183.9 +182.9 +192.0 +181.9 +181.5 +190.2 +185.2 +188.1 +174.3 +190.1 +185.6 +183.3 +182.1 +192.2 +179.6 +179.7 +187.5 +187.3 +187.1 +180.0 +184.2 +180.6 +311.7 +185.9 +185.9 +185.1 +176.8 +176.4 +177.7 +177.1 +188.2 +174.8 +184.0 +178.6 +180.2 +183.4 +182.9 +189.8 +187.3 +176.8 +192.5 +186.1 +212.1 +179.4 +181.3 +188.4 +177.7 +200.4 +182.7 +177.5 +183.5 +187.5 +182.6 +194.0 +179.6 +181.6 +201.6 +183.0 +185.5 +177.8 +200.1 +182.7 +182.1 +192.5 +185.6 +188.8 +180.8 +179.5 +181.1 +185.1 +178.1 +178.9 +183.1 +180.8 +178.7 +184.8 +180.1 +179.7 +187.2 +187.1 +182.5 +187.0 +185.6 +191.9 +187.7 +186.3 +188.0 +180.1 +179.3 +181.3 +193.7 +176.8 +184.4 +176.7 +183.1 +189.4 +178.8 +211.4 +182.2 +190.8 +194.1 +179.4 +176.3 +178.6 +175.5 +182.9 +186.0 +184.1 +187.8 +181.3 +188.4 +178.3 +178.7 +200.4 +176.0 +187.7 +197.2 +188.2 +188.6 +192.3 +180.3 +186.3 +187.6 +201.5 +183.8 +182.9 +185.8 +185.9 +181.9 +180.2 +177.3 +183.3 +186.4 +181.3 +195.4 +194.0 +182.7 +178.3 +190.5 +178.6 +194.5 +175.4 +176.8 +177.4 +191.1 +180.6 +175.5 +175.2 +186.9 +176.1 +183.6 +187.1 +178.4 +196.0 +201.0 +183.0 +179.7 +179.9 +184.1 +179.9 +193.1 +180.8 +187.2 +182.0 +176.1 +183.4 +188.4 +177.6 +177.3 +183.8 +179.5 +184.4 +179.8 +181.5 +178.6 +186.5 +183.1 +175.7 +177.3 +177.5 +194.3 +190.9 +175.4 +198.2 +182.6 +180.9 +182.7 +177.0 +190.4 +186.8 +199.4 +183.6 +180.4 +196.3 +205.0 +178.0 +182.0 +185.0 +180.0 +200.6 +185.4 +186.6 +188.4 +199.1 +183.3 +211.8 +182.2 +186.0 +186.5 +185.4 +183.8 +182.3 +179.9 +182.0 +186.9 +184.6 +187.9 +182.4 +187.3 +199.6 +187.9 +196.6 +189.9 +190.9 +180.9 +177.5 +180.2 +188.4 +181.4 +178.0 +190.8 +198.7 +191.5 +189.8 +191.4 +188.6 +186.2 +198.8 +207.4 +192.2 +185.0 +194.7 +198.7 +191.4 +197.4 +184.9 +202.5 +178.6 +180.3 +186.9 +184.5 +178.3 +179.4 +201.3 +193.5 +184.2 +193.9 +177.1 +185.8 +188.5 +183.6 +201.0 +183.6 +190.9 +190.3 +185.4 +180.2 +185.9 +182.6 +184.7 +182.1 +188.7 +180.5 +178.0 +198.6 +188.8 +183.8 +178.1 +176.4 +179.4 +179.5 +186.5 +180.4 +179.8 +180.2 +195.0 +177.2 +180.0 +195.5 +181.7 +183.6 +187.1 +180.7 +180.7 +181.2 +184.5 +181.0 +199.1 +197.4 +183.6 +189.0 +183.2 +196.4 +183.7 +191.4 +185.3 +202.8 +177.9 +182.1 +179.5 +176.3 +193.1 +184.6 +178.8 +191.8 +224.8 +180.5 +182.0 +178.8 +178.2 +178.8 +185.4 +186.5 +178.6 +188.4 +179.7 +190.9 +181.6 +179.8 +190.1 +188.0 +179.7 +204.8 +184.8 +179.7 +182.5 +184.1 +176.1 +181.1 +177.2 +185.8 +177.7 +179.1 +186.7 +183.8 +177.5 +180.2 +200.9 +181.0 +182.7 +177.7 +191.7 +176.8 +190.9 +178.6 +182.3 +178.8 +186.1 +176.8 +180.0 +182.5 +175.0 +183.2 +177.4 +189.5 +177.7 +179.1 +180.8 +177.9 +180.0 +181.6 +178.6 +178.1 +184.7 +176.8 +176.0 +175.7 +175.9 +180.3 +176.3 +180.4 +178.8 +182.5 +177.9 +187.7 +182.2 +187.2 +178.5 +179.9 +181.1 +180.9 +182.5 +179.8 +178.6 +176.0 +179.0 +189.5 +183.5 +182.5 +183.6 +186.0 +181.7 +191.1 +187.4 +194.0 +197.2 +197.3 +177.9 +179.4 +178.0 +176.9 +178.6 +189.0 +183.3 +188.5 +184.0 +184.0 +185.5 +180.7 +176.3 +180.2 +179.9 +186.7 +177.5 +181.0 +189.3 +190.3 +178.3 +188.1 +189.5 +183.6 +190.7 +178.9 +179.1 +179.5 +196.1 +180.8 +178.9 +177.9 +184.6 +178.0 +181.9 +185.3 +187.5 +183.9 +187.0 +180.1 +198.9 +182.6 +181.1 +191.1 +190.7 +183.6 +181.2 +184.5 +177.3 +179.5 +178.7 +181.5 +180.1 +185.0 +178.6 +182.8 +182.7 +192.6 +181.5 +176.5 +178.4 +187.0 +180.2 +187.5 +182.5 +178.0 +184.6 +180.3 +187.2 +177.6 +187.5 +190.6 +188.2 +187.8 +182.6 +186.8 +179.0 +211.0 +176.2 +180.5 +183.4 +215.3 +181.6 +208.2 +215.6 +207.8 +189.1 +176.5 +190.9 +187.0 +178.8 +190.2 +183.0 +193.6 +175.3 +184.4 +184.2 +181.7 +175.4 +177.4 +176.1 +187.1 +194.1 +181.3 +193.1 +182.1 +184.7 +183.1 +186.0 +180.6 +181.7 +181.7 +184.9 +191.4 +201.1 +181.7 +192.9 +177.6 +187.6 +177.6 +183.6 +195.4 +187.2 +184.2 +185.4 +178.0 +201.0 +180.0 +205.9 +201.9 +199.2 +185.2 +182.7 +181.0 +187.4 +181.5 +186.6 +180.4 +176.7 +177.9 +178.2 +179.3 +186.5 +175.7 +185.5 +195.1 +181.9 +183.3 +182.0 +176.7 +181.0 +176.1 +179.4 +186.2 +194.1 +191.1 +184.0 +185.1 +188.6 +183.2 +176.1 +179.3 +183.6 +177.5 +192.7 +180.6 +191.3 +182.6 +189.3 +183.6 +182.4 +178.8 +175.5 +179.3 +193.2 +181.3 +183.9 +185.1 +183.3 +184.9 +188.6 +185.7 +194.9 +199.5 +175.7 +202.6 +194.2 +185.3 +178.0 +182.5 +202.3 +187.5 +192.9 +181.8 +183.2 +183.5 +187.8 +179.6 +178.7 +197.1 +182.2 +202.2 +194.8 +184.9 +192.6 +175.5 +178.0 +184.7 +177.8 +178.7 +179.7 +181.4 +186.6 +179.3 +178.9 +182.3 +180.8 +180.5 +182.4 +184.0 +183.2 +181.2 +183.6 +186.2 +179.7 +178.6 +200.2 +189.2 +177.5 +188.0 +191.1 +183.2 +183.4 +191.0 +186.9 +198.9 +180.0 +175.3 +261.0 +178.7 +181.1 +181.2 +178.7 +179.1 +201.6 +178.4 +181.6 +176.2 +181.7 +192.2 +184.5 +179.1 +191.8 +181.3 +184.4 +185.0 +186.6 +178.6 +180.2 +185.2 +190.0 +177.3 +178.5 +193.7 +178.7 +184.8 +179.9 +192.0 +186.2 +194.7 +181.5 +183.9 +188.0 +183.4 +181.3 +187.2 +184.6 +188.7 +185.3 +180.1 +183.4 +182.4 +176.9 +177.6 +191.1 +180.8 +176.0 +175.4 +180.0 +179.6 +188.3 +191.3 +183.2 +181.7 +177.9 +180.0 +182.0 +181.3 +180.1 +187.7 +177.5 +186.7 +183.4 +189.1 +199.9 +203.9 +184.1 +179.2 +187.4 +185.7 +181.8 +179.7 +179.1 +175.6 +200.8 +181.2 +175.9 +179.3 +176.9 +183.8 +195.7 +185.6 +181.9 +184.0 +190.1 +188.6 +179.0 +181.7 +179.2 +212.9 +181.3 +192.8 +180.8 +180.4 +190.8 +178.1 +181.2 +183.4 +189.4 +191.6 +196.7 +179.2 +203.5 +197.4 +180.5 +184.2 +194.9 +182.6 +183.3 +177.9 +200.4 +191.9 +175.4 +214.3 +184.1 +180.8 +182.9 +181.3 +182.4 +181.4 +191.0 +178.9 +188.3 +195.6 +182.1 +193.5 +180.3 +196.3 +177.9 +198.8 +190.9 +179.1 +185.4 +188.7 +181.0 +177.8 +178.0 +203.4 +179.4 +180.8 +183.6 +179.0 +184.8 +178.0 +188.3 +203.1 +194.9 +196.8 +187.9 +185.7 +178.0 +180.8 +176.8 +181.0 +180.9 +187.0 +179.5 +186.9 +175.9 +174.7 +177.1 +187.9 +193.2 +177.3 +177.9 +181.2 +180.1 +176.1 +179.4 +176.7 +183.2 +191.8 +184.7 +180.8 +183.2 +176.9 +182.8 +187.5 +187.3 +185.7 +184.6 +178.8 +183.0 +176.7 +177.6 +198.0 +194.7 +188.8 +180.9 +187.9 +175.9 +193.1 +183.4 +186.2 +184.4 +182.3 +175.6 +224.3 +186.0 +184.0 +179.0 +176.6 +183.9 +190.9 +188.5 +183.9 +184.7 +198.6 +184.1 +182.0 +181.3 +183.3 +181.6 +182.8 +186.6 +181.4 +179.0 +192.0 +186.3 +202.8 +190.0 +182.1 +186.4 +186.0 +187.0 +192.8 +185.4 +185.4 +181.2 +182.3 +183.2 +190.4 +184.9 +186.4 +180.9 +181.4 +179.8 +191.3 +182.4 +193.0 +202.1 +187.9 +222.0 +196.9 +201.9 +197.8 +198.7 +184.1 +192.7 +203.2 +197.1 +193.7 +196.5 +186.3 +198.4 +181.2 +192.3 +190.4 +183.3 +181.9 +201.8 +198.5 +194.7 +182.3 +184.9 +186.0 +185.9 +190.8 +179.4 +182.2 +181.7 +180.6 +179.2 +180.9 +189.7 +195.7 +200.7 +191.6 +191.1 +187.6 +181.6 +185.9 +188.3 +183.5 +187.7 +190.3 +186.1 +181.1 +178.7 +178.0 +179.0 +191.5 +186.8 +184.9 +181.0 +183.4 +181.3 +180.1 +188.2 +204.3 +180.1 +185.8 +184.9 +187.4 +176.0 +184.2 +177.6 +179.0 +178.9 +188.3 +179.8 +180.9 +177.5 +188.9 +191.1 +184.7 +189.5 +178.4 +189.3 +184.7 +186.2 +178.9 +176.6 +180.8 +177.3 +183.3 +180.0 +188.8 +186.8 +179.5 +179.6 +181.6 +177.4 +176.5 +178.0 +182.6 +184.7 +189.3 +183.6 +180.6 +186.6 +180.7 +185.6 +178.2 +176.3 +181.2 +177.6 +175.7 +177.3 +184.0 +178.2 +182.9 +201.6 +175.0 +179.3 +181.6 +176.2 +180.4 +176.0 +183.7 +177.5 +183.5 +193.5 +192.7 +179.0 +182.2 +179.6 +179.3 +176.8 +177.9 +177.2 +176.5 +177.4 +177.9 +186.5 +178.9 +181.0 +178.0 +176.6 +176.5 +179.2 +187.2 +178.2 +184.6 +178.9 +177.8 +182.1 +187.2 +188.8 +184.5 +181.0 +188.4 +193.1 +178.7 +186.2 +181.1 +183.2 +181.4 +177.6 +176.7 +177.1 +179.0 +181.0 +177.9 +183.5 +181.6 +178.9 +179.4 +175.8 +175.6 +179.0 +180.1 +175.9 +179.9 +178.1 +186.0 +208.0 +178.6 +182.7 +186.3 +174.5 +178.6 +184.3 +185.4 +178.3 +178.5 +190.5 +180.8 +188.2 +177.3 +190.1 +175.5 +188.5 +185.4 +179.6 +181.4 +177.4 +217.5 +196.9 +180.8 +179.9 +192.5 +178.0 +178.4 +175.8 +175.3 +184.8 +197.2 +186.0 +176.9 +176.5 +178.4 +180.8 +185.5 +203.5 +183.3 +180.0 +177.6 +181.2 +180.2 +179.7 +194.4 +180.8 +181.3 +176.9 +187.2 +178.5 +178.7 +185.4 +183.0 +181.3 +261.7 +178.1 +175.9 +175.9 +189.8 +185.9 +184.1 +181.7 +182.7 +177.6 +176.6 +183.6 +178.4 +178.5 +185.8 +184.5 +178.5 +178.0 +181.7 +177.4 +179.3 +177.5 +175.7 +176.6 +176.4 +180.8 +184.9 +177.6 +178.0 +178.7 +178.0 +177.8 +176.7 +183.6 +196.4 +182.4 +182.2 +178.0 +175.9 +179.2 +175.6 +178.3 +176.2 +178.8 +183.1 +175.2 +182.4 +180.6 +177.6 +176.6 +180.2 +180.4 +181.1 +176.2 +188.7 +187.2 +181.6 +181.5 +177.2 +176.9 +177.4 +176.3 +185.2 +178.3 +184.6 +178.3 +189.7 +179.5 +201.1 +176.2 +185.5 +182.2 +183.4 +174.5 +176.8 +180.1 +179.8 +182.2 +178.8 +186.5 +188.2 +180.4 +182.1 +182.8 +194.7 +182.3 +177.6 +176.2 +180.7 +193.6 +178.9 +177.8 +178.7 +179.8 +176.3 +180.8 +184.2 +181.5 +179.2 +178.2 +179.9 +176.7 +180.0 +183.0 +180.6 +177.3 +186.7 +180.8 +181.5 +190.3 +186.8 +184.2 +180.4 +181.6 +182.2 +183.0 +173.3 +187.5 +185.7 +180.1 +177.8 +189.2 +194.9 +176.8 +194.9 +187.0 +209.2 +185.4 +177.7 +178.0 +175.4 +178.0 +183.1 +177.9 +182.4 +177.2 +177.7 +178.9 +183.5 +178.1 +179.2 +191.5 +182.6 +179.8 +182.5 +176.9 +180.2 +176.0 +178.6 +184.7 +279.2 +179.0 +176.5 +180.0 +182.9 +178.3 +188.1 +179.6 +177.8 +175.6 +180.0 +178.6 +181.0 +184.0 +178.2 +191.6 +176.8 +187.7 +179.1 +183.3 +203.5 +178.7 +178.6 +175.4 +187.5 +179.7 +181.6 +177.9 +180.5 +186.7 +182.3 +187.9 +182.2 +187.8 +181.1 +266.6 +186.3 +185.9 +178.0 +180.6 +176.9 +176.5 +177.0 +184.1 +182.7 +179.0 +182.6 +180.8 +179.9 +179.0 +183.1 +178.6 +176.4 +177.3 +176.4 +180.2 +177.2 +177.0 +177.5 +178.3 +175.2 +177.8 +176.7 +181.4 +177.7 +177.1 +176.5 +180.8 +177.2 +178.1 +177.9 +187.1 +183.8 +187.0 +184.4 +180.2 +179.2 +179.2 +178.6 +188.0 +184.7 +178.0 +176.3 +175.3 +181.6 +191.8 +176.9 +182.0 +183.3 +177.5 +185.0 +181.5 +182.6 +179.0 +188.4 +203.6 +184.3 +183.8 +188.0 +189.7 +184.7 +185.9 +195.0 +185.3 +178.8 +190.6 +181.6 +180.1 +187.1 +182.3 +176.8 +179.1 +185.8 +180.1 +180.3 +182.7 +185.3 +175.6 +182.8 +188.5 +175.6 +182.7 +182.0 +179.5 +180.9 +179.4 +183.2 +182.7 +182.5 +182.0 +190.1 +199.7 +177.8 +177.6 +180.9 +181.6 +183.3 +186.1 +188.0 +184.9 +185.4 +182.6 +182.5 +178.7 +185.6 +175.4 +176.7 +182.5 +180.6 +178.3 +179.7 +184.4 +180.9 +184.5 +187.2 +181.6 +192.7 +185.9 +179.6 +184.3 +182.3 +175.0 +180.3 +177.2 +177.9 +178.4 +179.7 +174.6 +190.4 +193.1 +186.8 +180.6 +176.0 +177.4 +188.4 +179.2 +180.9 +178.7 +180.9 +178.2 +176.6 +185.0 +182.1 +181.7 +175.2 +175.1 +183.2 +192.0 +188.3 +182.1 +176.7 +177.6 +177.3 +192.6 +189.3 +178.2 +177.5 +183.1 +183.4 +181.2 +179.5 +175.4 +176.8 +178.2 +175.8 +179.4 +184.7 +184.6 +191.9 +177.4 +176.7 +179.3 +181.6 +183.3 +176.6 +218.6 +175.7 +174.4 +186.4 +185.1 +176.0 +195.2 +180.3 +178.1 +179.2 +178.0 +181.5 +182.9 +179.0 +191.3 +185.1 +186.5 +177.2 +180.3 +191.0 +175.7 +179.8 +182.0 +181.6 +185.0 +183.2 +174.8 +184.5 +182.1 +178.7 +186.7 +186.9 +176.5 +184.5 +188.9 +180.4 +190.1 +181.4 +188.0 +193.5 +187.7 +180.0 +183.5 +176.7 +177.5 +179.2 +206.2 +178.4 +183.2 +181.7 +200.9 +193.1 +176.1 +181.8 +183.6 +193.5 +201.7 +188.0 +178.9 +180.5 +180.8 +176.5 +178.0 +180.6 +181.4 +184.7 +192.4 +177.4 +182.4 +202.8 +189.7 +177.3 +181.5 +178.7 +180.0 +180.6 +178.0 +178.3 +183.9 +177.4 +180.0 +189.7 +175.4 +185.2 +179.3 +184.1 +177.5 +182.1 +174.8 +179.8 +187.5 +216.9 +182.9 +183.5 +203.3 +181.5 +184.0 +181.3 +183.4 +180.3 +176.1 +180.3 +180.1 +180.2 +181.2 +182.3 +176.2 +189.5 +219.7 +180.1 +176.6 +177.3 +178.8 +181.2 +175.1 +183.3 +182.1 +178.7 +180.9 +183.3 +188.1 +225.2 +185.8 +184.3 +187.5 +187.3 +190.7 +181.0 +180.2 +184.6 +177.9 +180.1 +187.6 +181.1 +177.5 +184.5 +176.5 +182.7 +174.5 +183.2 +176.5 +183.0 +177.0 +179.2 +182.9 +184.9 +176.4 +179.9 +183.2 +178.1 +177.0 +205.5 +182.5 +175.2 +185.0 +182.7 +178.2 +189.0 +190.5 +178.8 +183.5 +185.1 +181.3 +181.3 +194.5 +187.8 +184.9 +177.2 +179.6 +195.1 +181.2 +188.8 +180.4 +180.8 +180.0 +177.6 +198.3 +180.6 +179.5 +178.4 +179.3 +177.5 +176.8 +181.6 +183.8 +181.8 +175.6 +181.0 +178.4 +179.4 +179.8 +181.3 +181.1 +193.3 +180.1 +182.8 +179.3 +181.1 +188.3 +177.6 +178.5 +178.8 +177.1 +179.2 +181.6 +185.6 +191.8 +176.3 +187.8 +184.5 +197.3 +183.1 +179.7 +178.1 +181.3 +177.6 +178.2 +179.5 +177.5 +185.4 +184.4 +186.4 +177.4 +178.0 +179.7 +177.9 +184.6 +189.1 +184.5 +197.2 +192.6 +188.0 +186.5 +177.3 +183.7 +183.7 +192.8 +181.2 +199.4 +179.7 +187.7 +192.8 +208.5 +184.1 +175.6 +185.3 +188.6 +183.7 +180.7 +182.1 +176.0 +183.1 +179.6 +175.7 +187.0 +179.9 +184.8 +179.4 +187.6 +181.6 +201.1 +193.5 +186.2 +190.3 +197.9 +208.2 +192.9 +193.1 +184.9 +210.5 +178.6 +198.2 +177.9 +192.2 +181.6 +185.1 +189.1 +188.3 +204.7 +186.2 +179.6 +189.2 +176.9 +180.5 +183.3 +193.1 +178.4 +203.8 +185.2 +180.6 +183.3 +186.7 +188.8 +184.4 +181.7 +186.4 +185.8 +180.1 +182.7 +179.8 +198.9 +180.4 +178.3 +195.6 +184.0 +179.5 +181.8 +187.4 +181.7 +181.8 +175.1 +200.0 +181.6 +203.0 +176.0 +184.9 +199.3 +178.2 +184.3 +176.6 +192.9 +188.1 +185.7 +181.0 +179.5 +183.4 +186.7 +178.6 +183.2 +179.6 +182.6 +177.3 +179.0 +197.0 +182.0 +174.8 +179.4 +180.7 +210.3 +211.3 +235.3 +255.7 +275.7 +286.8 +306.7 +347.2 +381.2 +184.5 +186.7 +190.1 +193.3 +177.9 +188.0 +184.0 +180.6 +178.5 +235.8 +179.6 +178.1 +196.0 +180.5 +179.0 +185.8 +230.8 +211.1 +178.3 +179.4 +186.5 +180.6 +181.4 +183.2 +188.7 +184.8 +175.0 +179.2 +185.4 +180.8 +182.7 +183.1 +177.3 +177.4 +181.3 +190.9 +182.7 +198.2 +180.9 +200.5 +188.4 +207.5 +190.2 +178.9 +184.1 +193.6 +321.3 +183.8 +181.4 +174.6 +185.1 +198.9 +202.2 +183.3 +187.3 +183.0 +184.5 +178.3 +183.8 +176.7 +178.3 +186.0 +181.0 +176.0 +181.3 +202.8 +179.7 +180.3 +191.6 +176.8 +182.6 +183.7 +181.3 +186.2 +205.7 +186.4 +181.9 +189.9 +188.9 +193.6 +203.2 +212.3 +178.9 +181.5 +189.6 +178.9 +177.6 +189.0 +177.3 +177.2 +178.0 +178.5 +177.9 +197.8 +182.0 +185.7 +193.6 +185.8 +183.1 +183.1 +192.7 +183.0 +187.0 +193.4 +186.9 +182.3 +183.9 +201.6 +199.5 +182.7 +184.6 +181.8 +179.1 +189.8 +183.1 +187.8 +185.7 +192.9 +179.3 +179.7 +180.2 +177.6 +180.8 +178.0 +190.2 +177.5 +199.2 +192.7 +181.2 +185.2 +183.5 +198.1 +178.9 +183.7 +191.6 +187.4 +180.5 +211.9 +206.2 +183.2 +182.1 +176.7 +187.4 +176.6 +183.2 +195.5 +178.7 +180.7 +181.2 +189.1 +187.8 +183.1 +181.9 +186.3 +197.1 +184.7 +177.2 +180.5 +179.5 +181.6 +177.9 +187.7 +196.2 +189.5 +180.5 +183.3 +180.6 +186.7 +186.2 +177.7 +192.1 +182.4 +177.5 +179.7 +193.6 +200.1 +179.9 +188.4 +182.3 +190.4 +179.4 +182.4 +181.7 +195.7 +177.2 +181.3 +182.9 +188.3 +183.6 +180.3 +192.7 +183.1 +210.5 +185.1 +183.4 +191.6 +187.9 +183.1 +175.5 +177.4 +183.7 +182.9 +188.5 +180.7 +186.2 +182.4 +186.3 +182.4 +188.1 +180.2 +195.4 +181.8 +192.9 +176.3 +177.7 +178.8 +179.4 +182.6 +180.3 +187.4 +185.3 +183.5 +180.5 +180.8 +182.0 +178.9 +176.2 +197.0 +181.5 +177.1 +189.1 +188.0 +176.5 +181.7 +184.9 +192.2 +181.5 +189.0 +204.6 +177.5 +176.6 +202.2 +176.9 +181.9 +177.9 +180.6 +197.2 +175.9 +175.6 +183.4 +182.7 +191.2 +178.8 +187.2 +178.9 +192.4 +178.6 +178.4 +184.5 +216.4 +190.7 +182.7 +181.6 +199.5 +182.0 +179.1 +189.1 +180.3 +182.0 +185.6 +196.1 +182.5 +180.4 +190.9 +178.9 +186.3 +209.4 +181.7 +186.6 +192.0 +200.0 +205.7 +191.0 +186.0 +185.5 +176.2 +191.4 +184.4 +186.1 +186.6 +180.0 +180.8 +178.0 +180.0 +198.8 +183.9 +183.5 +176.4 +176.7 +181.4 +186.4 +186.8 +186.0 +179.5 +187.2 +179.5 +185.2 +179.4 +183.6 +188.6 +179.8 +179.0 +184.4 +178.4 +177.4 +195.2 +207.0 +184.3 +179.6 +183.1 +184.0 +187.2 +181.4 +178.4 +182.7 +189.4 +183.1 +179.7 +181.8 +181.5 +181.9 +182.6 +178.2 +189.2 +189.1 +190.3 +184.1 +195.3 +176.1 +177.3 +186.8 +183.7 +188.5 +179.7 +177.4 +181.4 +180.7 +206.9 +179.2 +177.8 +180.5 +180.6 +191.9 +181.7 +190.3 +183.5 +186.2 +175.8 +179.1 +181.6 +181.6 +183.0 +179.1 +179.3 +183.7 +181.2 +185.2 +176.8 +177.8 +175.3 +184.6 +179.2 +176.9 +188.0 +184.6 +184.6 +180.9 +189.9 +396.3 +176.1 +183.1 +179.2 +184.6 +181.5 +181.3 +176.2 +177.4 +174.3 +179.4 +178.8 +184.6 +182.1 +183.4 +178.4 +184.1 +182.7 +181.4 +177.7 +185.0 +177.2 +179.4 +183.5 +183.1 +187.6 +181.1 +179.7 +189.6 +183.6 +177.1 +181.5 +193.1 +196.8 +180.2 +177.3 +178.8 +176.6 +177.8 +190.0 +176.3 +180.1 +177.5 +187.2 +186.7 +176.5 +179.6 +177.2 +177.5 +196.4 +181.9 +179.9 +178.2 +181.5 +177.5 +179.9 +183.1 +181.5 +181.8 +177.4 +177.6 +174.5 +178.4 +183.8 +181.6 +186.4 +178.1 +177.3 +179.1 +183.6 +191.2 +181.7 +187.6 +186.1 +183.5 +185.0 +186.5 +187.5 +190.5 +224.7 +177.3 +189.2 +191.7 +188.0 +182.8 +187.8 +182.2 +241.9 +197.6 +188.3 +181.7 +195.5 +184.4 +190.9 +187.4 +195.0 +190.0 +180.5 +179.1 +180.3 +195.0 +176.7 +191.8 +200.2 +180.3 +180.6 +186.1 +178.2 +182.5 +183.2 +178.9 +177.6 +185.6 +203.5 +179.7 +179.6 +190.8 +187.4 +184.7 +185.1 +195.1 +191.9 +181.1 +183.1 +177.1 +177.9 +178.5 +178.8 +186.0 +189.9 +184.7 +190.4 +192.9 +178.6 +176.1 +189.2 +186.1 +178.6 +186.9 +181.5 +181.5 +181.2 +178.1 +181.8 +187.6 +183.3 +188.5 +179.6 +183.5 +187.9 +179.6 +192.4 +182.6 +192.1 +255.4 +266.2 +191.5 +194.8 +179.7 +190.8 +182.8 +182.3 +186.7 +186.4 +178.1 +182.5 +175.0 +187.7 +199.4 +182.1 +180.5 +182.9 +175.9 +219.6 +207.0 +196.5 +190.7 +199.1 +185.4 +174.5 +180.5 +182.7 +181.8 +189.2 +181.0 +198.2 +191.9 +185.3 +182.9 +188.5 +178.7 +179.2 +188.7 +188.5 +178.2 +197.6 +178.3 +192.7 +181.9 +191.2 +181.7 +176.1 +196.5 +187.7 +190.5 +187.8 +182.9 +189.9 +192.3 +177.4 +184.7 +178.3 +185.8 +182.0 +180.1 +183.1 +182.0 +176.1 +185.2 +196.0 +185.5 +179.1 +198.1 +197.5 +182.0 +177.0 +178.3 +202.9 +177.0 +180.6 +181.6 +191.6 +179.6 +180.9 +183.7 +188.4 +182.6 +185.7 +191.5 +178.6 +188.4 +184.0 +183.8 +189.3 +185.2 +192.9 +195.4 +197.1 +190.4 +186.5 +196.0 +189.8 +191.9 +187.3 +185.7 +198.0 +175.8 +183.7 +176.0 +179.9 +183.1 +186.7 +177.9 +179.2 +181.7 +184.9 +181.6 +178.5 +176.5 +176.7 +178.4 +184.7 +181.3 +182.3 +182.8 +182.6 +190.2 +177.0 +187.9 +188.1 +186.4 +187.8 +181.3 +187.7 +191.8 +182.5 +182.0 +180.1 +185.8 +177.8 +192.5 +185.2 +179.7 +179.3 +191.0 +181.3 +192.9 +180.3 +194.5 +187.6 +184.3 +194.7 +182.7 +177.7 +181.2 +177.2 +184.0 +181.8 +188.5 +187.8 +184.7 +181.7 +184.6 +177.4 +193.0 +178.7 +176.5 +176.9 +180.9 +180.8 +187.8 +179.8 +175.2 +177.5 +180.5 +186.6 +177.0 +177.8 +177.8 +182.5 +180.0 +182.4 +188.6 +192.5 +177.5 +179.8 +178.8 +178.9 +182.0 +180.6 +184.5 +179.9 +175.4 +183.1 +177.8 +177.2 +191.7 +184.6 +183.1 +175.6 +200.6 +221.5 +177.2 +177.6 +184.0 +183.4 +199.2 +184.6 +186.1 +180.3 +188.1 +184.1 +185.9 +178.0 +183.7 +186.7 +186.1 +177.8 +183.5 +178.0 +177.0 +185.6 +187.0 +178.9 +178.9 +200.5 +180.2 +181.6 +187.8 +179.8 +182.0 +184.3 +176.3 +182.8 +184.3 +181.9 +185.3 +189.2 +177.3 +183.6 +186.7 +184.0 +243.9 +175.9 +184.3 +176.0 +179.6 +178.5 +182.3 +189.7 +179.6 +190.3 +188.8 +175.2 +179.8 +181.0 +175.6 +175.3 +187.5 +175.3 +186.8 +176.6 +177.3 +175.7 +178.5 +178.8 +178.5 +178.9 +183.7 +182.2 +182.3 +178.9 +182.0 +178.6 +184.2 +178.8 +176.7 +176.9 +176.2 +181.1 +177.9 +177.2 +178.6 +194.8 +185.4 +188.3 +178.9 +187.1 +184.3 +184.2 +190.3 +193.8 +185.0 +181.0 +181.4 +181.0 +191.8 +177.4 +178.6 +179.6 +180.2 +179.0 +187.4 +177.1 +182.7 +181.9 +177.9 +184.8 +195.1 +181.2 +182.1 +187.4 +186.8 +184.7 +181.9 +188.7 +191.8 +184.7 +185.5 +183.5 +180.8 +206.1 +179.1 +194.3 +178.0 +177.4 +181.0 +181.7 +190.6 +189.3 +176.3 +183.5 +178.9 +179.4 +187.3 +182.5 +181.7 +183.3 +188.9 +181.3 +195.6 +180.4 +194.0 +182.6 +176.6 +190.8 +176.3 +186.1 +185.1 +181.5 +179.2 +178.3 +179.6 +181.5 +181.0 +183.2 +182.6 +202.6 +183.7 +188.2 +200.6 +177.9 +184.2 +192.0 +180.9 +177.3 +177.2 +188.1 +184.2 +199.4 +185.3 +189.7 +199.8 +176.6 +189.2 +186.3 +182.8 +180.0 +190.8 +188.5 +194.6 +184.8 +202.7 +189.8 +183.2 +206.2 +175.3 +202.1 +193.5 +210.1 +200.5 +194.8 +190.0 +189.3 +182.5 +183.3 +187.1 +186.1 +208.1 +191.4 +207.5 +188.6 +176.7 +190.8 +189.1 +177.2 +189.3 +177.3 +196.2 +195.3 +188.0 +194.1 +181.3 +177.8 +186.2 +184.4 +182.0 +182.5 +187.1 +179.8 +177.4 +184.0 +180.5 +182.9 +176.4 +175.9 +176.8 +182.8 +208.0 +196.3 +183.4 +178.5 +189.7 +183.3 +182.5 +182.7 +182.5 +195.7 +183.8 +182.6 +190.0 +191.0 +191.7 +177.2 +184.1 +202.9 +189.8 +185.0 +183.3 +194.2 +182.8 +178.9 +184.9 +189.1 +192.8 +181.1 +190.5 +205.2 +179.1 +191.3 +186.8 +188.9 +178.8 +188.0 +184.1 +183.1 +182.1 +181.9 +191.6 +183.4 +189.9 +180.2 +186.6 +180.3 +182.7 +184.8 +178.4 +180.3 +193.7 +181.5 +186.6 +179.1 +184.3 +192.1 +189.5 +182.2 +296.4 +194.8 +179.0 +183.4 +194.3 +199.5 +182.7 +181.0 +181.8 +186.9 +186.4 +188.3 +179.2 +190.1 +184.9 +187.8 +186.3 +183.4 +183.1 +191.3 +188.5 +188.5 +187.9 +188.7 +175.3 +178.4 +197.5 +185.3 +201.3 +190.9 +210.1 +179.0 +176.3 +179.4 +195.0 +179.0 +176.4 +188.5 +180.5 +179.5 +179.4 +177.5 +185.2 +179.9 +178.3 +183.8 +193.9 +183.1 +187.7 +192.7 +181.3 +184.1 +182.5 +178.2 +184.0 +195.4 +179.7 +191.7 +183.7 +185.6 +188.4 +195.0 +184.8 +181.8 +186.2 +177.4 +189.8 +192.1 +192.9 +187.5 +191.5 +189.1 +195.7 +188.0 +192.7 +190.1 +190.1 +196.3 +192.4 +193.1 +178.9 +181.9 +179.2 +188.4 +179.2 +187.5 +179.7 +185.3 +177.2 +180.5 +182.2 +203.8 +186.1 +181.7 +180.8 +187.9 +177.4 +189.5 +189.3 +176.5 +179.2 +190.5 +180.0 +177.1 +183.7 +188.8 +180.6 +220.6 +190.9 +197.9 +182.8 +183.0 +177.9 +182.2 +182.4 +201.5 +181.1 +177.8 +189.6 +193.4 +180.3 +180.2 +175.3 +177.8 +178.3 +178.8 +190.7 +181.8 +185.1 +190.2 +179.1 +179.9 +179.8 +180.6 +181.6 +180.8 +184.6 +184.9 +181.7 +176.3 +182.2 +186.9 +227.1 +184.9 +184.5 +177.5 +180.2 +187.5 +186.1 +183.8 +177.4 +184.1 +188.1 +180.4 +197.4 +209.6 +198.3 +179.5 +183.9 +183.5 +181.8 +178.9 +195.5 +184.7 +191.3 +193.5 +196.8 +197.0 +184.2 +181.9 +187.5 +188.7 +177.7 +186.7 +191.6 +192.8 +194.8 +193.6 +194.7 +187.6 +197.2 +187.5 +176.0 +194.4 +199.9 +188.2 +184.5 +183.2 +186.0 +183.6 +210.5 +183.7 +190.4 +188.6 +179.8 +183.9 +210.2 +194.0 +190.8 +188.3 +186.2 +178.0 +178.3 +194.4 +184.5 +182.3 +179.1 +183.4 +182.9 +185.1 +180.6 +182.1 +189.4 +181.6 +180.5 +190.4 +182.1 +204.0 +192.7 +180.4 +190.7 +179.5 +179.2 +181.5 +186.1 +195.1 +189.7 +189.9 +185.9 +206.2 +187.5 +178.5 +206.2 +208.5 +187.4 +182.0 +192.9 +193.0 +196.5 +190.1 +179.7 +205.9 +187.7 +211.5 +177.5 +185.1 +205.3 +178.9 +179.6 +178.8 +185.9 +180.1 +179.0 +178.2 +181.9 +182.9 +191.5 +194.8 +184.9 +177.9 +186.0 +178.7 +175.2 +178.1 +183.9 +176.2 +196.3 +195.0 +214.4 +177.2 +175.2 +181.4 +191.4 +189.0 +179.6 +181.8 +177.8 +175.9 +176.1 +183.8 +182.1 +178.4 +182.1 +180.6 +177.4 +178.9 +178.7 +182.0 +176.5 +182.1 +189.2 +188.3 +184.6 +177.6 +184.6 +183.6 +182.6 +181.5 +198.4 +179.6 +179.3 +185.1 +189.8 +183.5 +180.9 +175.7 +182.6 +179.1 +181.3 +181.4 +189.8 +183.7 +185.8 +185.9 +178.1 +182.3 +196.3 +220.0 +199.4 +191.3 +186.7 +181.7 +180.7 +180.9 +176.2 +185.3 +180.3 +182.5 +177.5 +182.4 +184.8 +191.3 +185.5 +184.4 +193.8 +186.5 +178.9 +180.6 +182.7 +180.1 +184.8 +179.7 +187.8 +183.7 +190.9 +192.5 +205.5 +193.1 +180.7 +186.4 +179.3 +194.2 +187.8 +190.6 +178.8 +176.7 +181.2 +187.6 +191.3 +182.4 +204.9 +191.0 +193.8 +194.0 +198.4 +181.7 +186.5 +186.4 +182.5 +182.2 +179.0 +180.6 +180.0 +181.1 +178.6 +178.6 +183.3 +189.1 +179.9 +190.2 +187.3 +185.3 +185.0 +185.9 +189.3 +182.6 +183.5 +190.8 +183.4 +185.2 +197.1 +187.5 +182.2 +180.4 +181.3 +178.8 +182.5 +183.2 +174.8 +180.4 +200.9 +181.5 +185.5 +176.6 +179.0 +187.4 +173.8 +192.6 +179.3 +188.7 +198.9 +177.8 +185.5 +177.1 +213.1 +185.7 +189.7 +186.6 +189.2 +188.1 +184.0 +184.5 +178.7 +183.9 +186.3 +199.0 +188.2 +191.9 +181.6 +177.4 +183.8 +179.2 +182.7 +182.1 +178.2 +187.3 +189.0 +188.1 +190.8 +184.1 +188.0 +178.9 +195.8 +179.3 +204.6 +183.3 +178.8 +178.8 +176.9 +179.9 +186.0 +181.6 +199.5 +179.6 +189.0 +204.2 +189.7 +181.2 +184.5 +193.4 +183.7 +180.2 +186.2 +191.0 +195.1 +179.9 +182.6 +188.7 +184.5 +178.9 +194.1 +191.5 +179.9 +198.8 +183.4 +212.7 +179.0 +181.8 +176.5 +181.9 +179.7 +186.2 +187.0 +181.6 +184.9 +199.7 +185.4 +186.1 +179.3 +200.6 +187.7 +195.2 +185.5 +182.2 +189.4 +184.6 +177.9 +182.5 +182.9 +191.4 +192.5 +186.2 +178.4 +197.8 +175.7 +183.2 +187.5 +192.9 +175.8 +195.1 +185.7 +188.6 +191.6 +177.0 +181.8 +188.2 +202.4 +183.8 +184.5 +198.6 +186.4 +180.7 +188.6 +181.4 +178.9 +186.5 +185.5 +187.7 +187.7 +179.1 +184.2 +185.1 +178.0 +182.0 +197.0 +194.9 +193.6 +177.0 +186.6 +179.8 +186.1 +177.7 +182.1 +181.3 +178.0 +184.8 +208.3 +193.1 +187.2 +207.7 +188.2 +186.1 +178.1 +193.3 +182.1 +199.8 +182.7 +196.4 +197.9 +178.8 +191.4 +180.9 +180.5 +184.6 +177.2 +182.4 +183.7 +178.2 +187.1 +178.5 +181.3 +190.5 +179.0 +181.0 +178.0 +185.5 +179.1 +184.9 +184.7 +177.7 +176.7 +183.5 +196.3 +184.2 +190.0 +189.4 +186.0 +181.7 +186.0 +188.7 +187.5 +184.6 +176.3 +177.4 +185.9 +183.4 +179.4 +175.8 +186.1 +178.8 +179.0 +181.6 +175.2 +177.4 +176.8 +177.9 +197.6 +184.9 +176.0 +177.6 +178.4 +184.6 +178.1 +183.2 +180.2 +191.3 +180.0 +176.2 +180.3 +181.8 +187.4 +181.7 +177.1 +182.9 +190.6 +183.9 +177.9 +187.4 +174.9 +186.4 +192.0 +190.2 +198.4 +183.6 +206.3 +184.2 +181.0 +195.6 +277.2 +189.9 +187.0 +196.6 +180.6 +183.0 +208.8 +193.1 +188.9 +186.4 +179.9 +181.7 +185.2 +189.5 +188.0 +181.2 +182.5 +183.5 +190.3 +179.3 +182.3 +179.5 +184.2 +193.3 +178.5 +178.5 +182.3 +184.7 +181.9 +185.0 +181.6 +180.0 +202.6 +178.9 +176.4 +185.0 +190.3 +179.4 +182.9 +194.1 +185.2 +198.6 +177.6 +181.1 +179.8 +183.1 +187.7 +187.5 +185.9 +191.2 +183.1 +184.6 +193.0 +197.6 +183.3 +184.4 +181.6 +184.9 +178.0 +177.4 +181.0 +178.9 +180.4 +181.4 +188.0 +178.2 +181.2 +179.0 +188.1 +176.0 +176.4 +179.6 +179.1 +182.2 +185.6 +176.2 +180.0 +195.4 +177.4 +185.2 +177.5 +181.3 +187.8 +176.7 +200.8 +179.8 +183.8 +179.9 +190.4 +180.3 +178.5 +182.7 +180.3 +179.1 +178.8 +184.3 +176.7 +181.8 +179.9 +175.7 +181.6 +184.5 +183.3 +214.3 +175.7 +188.8 +180.1 +179.9 +182.8 +175.0 +177.4 +217.5 +183.7 +178.3 +184.0 +182.2 +175.4 +184.0 +181.2 +184.5 +174.6 +176.0 +180.1 +173.6 +190.4 +177.5 +181.3 +176.1 +181.5 +199.2 +176.2 +186.0 +178.6 +186.9 +187.1 +172.8 +175.5 +182.1 +175.9 +200.4 +193.1 +178.0 +177.1 +180.6 +182.2 +179.0 +175.8 +182.0 +188.0 +180.1 +207.1 +187.0 +180.6 +183.8 +192.9 +175.7 +193.6 +178.3 +182.2 +179.9 +177.2 +181.3 +177.0 +201.1 +176.2 +175.5 +183.1 +181.3 +176.0 +187.7 +185.7 +179.2 +183.4 +184.8 +176.3 +179.3 +175.2 +185.4 +181.2 +177.2 +179.9 +175.1 +175.7 +193.8 +179.7 +184.6 +181.2 +187.8 +184.9 +182.3 +184.9 +181.7 +186.0 +187.0 +178.5 +174.9 +180.7 +188.9 +181.4 +181.3 +176.2 +182.0 +183.4 +181.3 +181.3 +175.0 +179.7 +186.6 +183.7 +185.1 +180.8 +179.6 +180.6 +193.6 +187.6 +181.0 +176.3 +191.0 +177.5 +186.9 +173.8 +184.1 +178.1 +183.2 +180.2 +194.2 +175.8 +183.6 +175.4 +176.6 +183.7 +177.9 +176.4 +180.8 +179.9 +177.9 +183.0 +176.9 +181.3 +182.2 +182.3 +183.8 +181.1 +180.6 +189.9 +185.6 +184.5 +185.3 +175.3 +192.4 +195.5 +188.2 +180.3 +196.3 +184.1 +178.7 +179.7 +187.0 +177.1 +180.7 +177.5 +177.1 +180.8 +182.0 +177.0 +177.0 +193.1 +194.6 +190.0 +183.5 +180.5 +178.4 +177.4 +178.7 +184.6 +189.6 +188.1 +186.1 +184.2 +178.9 +176.7 +195.8 +178.1 +187.6 +175.4 +180.3 +185.3 +189.0 +177.2 +188.9 +179.0 +184.0 +179.1 +187.3 +199.7 +178.2 +179.1 +175.8 +179.8 +178.8 +196.3 +185.0 +196.3 +181.1 +185.5 +175.8 +189.2 +179.4 +192.0 +182.6 +177.9 +181.1 +179.6 +184.2 +194.6 +185.9 +181.4 +176.5 +178.3 +176.3 +179.1 +175.3 +180.5 +186.7 +177.5 +192.3 +187.7 +178.4 +189.4 +180.4 +180.5 +189.9 +183.8 +190.3 +195.5 +185.6 +177.2 +177.7 +178.7 +189.9 +183.8 +193.1 +185.2 +180.5 +180.5 +191.6 +175.0 +176.6 +178.6 +188.8 +180.7 +185.5 +181.2 +199.5 +193.2 +193.8 +185.8 +182.0 +178.5 +188.7 +190.1 +178.7 +181.5 +180.9 +186.6 +189.8 +194.4 +180.1 +193.0 +178.2 +183.2 +182.6 +177.8 +212.2 +177.5 +178.5 +181.9 +185.8 +177.2 +182.9 +176.7 +175.1 +180.4 +186.0 +179.1 +179.5 +177.2 +182.1 +177.8 +180.1 +180.1 +177.9 +183.6 +189.2 +193.2 +179.6 +176.9 +181.3 +178.4 +177.4 +189.2 +182.1 +195.2 +193.0 +184.5 +180.4 +184.1 +176.2 +180.1 +179.0 +174.8 +181.1 +190.0 +179.9 +192.2 +204.9 +179.2 +180.5 +174.7 +181.6 +181.5 +185.1 +176.7 +184.9 +191.9 +182.2 +182.7 +210.5 +186.1 +181.1 +179.3 +186.4 +176.0 +177.4 +180.9 +187.0 +192.2 +182.9 +182.2 +184.0 +180.3 +177.4 +178.7 +176.8 +176.4 +176.1 +182.0 +178.8 +175.2 +187.6 +184.9 +184.3 +188.7 +178.3 +190.9 +186.3 +175.2 +185.8 +175.6 +184.8 +181.1 +176.8 +179.0 +179.2 +196.5 +175.0 +182.6 +194.4 +173.7 +180.0 +178.3 +181.1 +179.5 +177.6 +185.1 +183.2 +188.6 +186.8 +182.5 +176.4 +175.1 +176.9 +182.4 +180.1 +181.7 +182.8 +184.1 +175.7 +178.7 +177.1 +178.3 +177.3 +176.7 +179.8 +176.8 +177.2 +200.5 +175.7 +181.1 +174.5 +179.3 +183.1 +178.4 +189.2 +186.0 +177.4 +178.3 +187.1 +181.0 +183.3 +191.4 +182.9 +182.6 +199.2 +181.4 +180.5 +180.4 +176.7 +184.4 +189.0 +188.1 +197.0 +181.2 +176.1 +181.0 +180.5 +176.5 +214.9 +178.3 +178.7 +181.4 +180.9 +178.0 +185.8 +182.5 +181.8 +177.4 +186.7 +183.2 +183.2 +183.1 +173.9 +181.1 +179.1 +180.3 +177.7 +181.5 +176.5 +177.1 +189.6 +191.5 +183.2 +180.0 +180.9 +183.3 +188.3 +178.4 +185.4 +176.1 +183.2 +181.1 +180.3 +176.4 +177.5 +186.8 +176.3 +338.9 +184.9 +177.0 +187.1 +175.8 +180.0 +182.5 +184.9 +175.2 +179.6 +176.9 +178.7 +177.5 +178.3 +178.9 +180.7 +182.6 +179.3 +177.0 +180.5 +179.2 +177.2 +188.0 +194.8 +183.6 +177.3 +179.1 +185.3 +177.5 +187.6 +180.9 +188.0 +174.8 +183.6 +183.0 +182.9 +178.1 +182.0 +185.9 +176.5 +182.1 +188.5 +179.9 +176.0 +184.3 +185.9 +179.2 +184.3 +181.3 +186.3 +186.7 +177.5 +188.9 +178.8 +211.3 +188.0 +178.5 +192.6 +176.4 +187.1 +189.5 +195.7 +188.5 +185.1 +182.5 +176.6 +182.5 +187.3 +180.5 +191.9 +178.3 +177.1 +188.3 +181.0 +178.0 +187.1 +175.1 +182.3 +177.4 +177.6 +181.2 +179.2 +183.8 +183.2 +173.3 +177.6 +178.6 +179.4 +180.5 +183.9 +176.3 +178.4 +178.9 +175.9 +179.2 +175.4 +183.5 +188.9 +176.5 +185.8 +179.7 +196.8 +185.9 +178.4 +176.4 +177.6 +176.0 +177.9 +181.7 +176.2 +180.6 +179.9 +186.0 +177.2 +178.9 +179.1 +186.6 +176.0 +194.6 +179.2 +181.5 +176.2 +177.2 +179.3 +181.3 +179.2 +181.7 +177.5 +186.6 +179.5 +177.4 +179.4 +177.9 +181.9 +181.3 +177.4 +176.0 +177.8 +185.2 +180.8 +181.3 +182.1 +178.2 +179.5 +185.6 +179.5 +182.5 +186.1 +188.7 +178.7 +186.8 +179.2 +197.7 +180.8 +181.4 +178.1 +207.1 +182.7 +185.5 +186.1 +180.1 +176.1 +177.6 +174.9 +176.1 +180.6 +184.5 +179.2 +186.1 +180.5 +179.5 +179.3 +182.2 +181.8 +184.6 +180.0 +177.1 +176.7 +177.6 +180.8 +176.5 +177.3 +176.8 +176.4 +188.7 +187.6 +178.5 +178.0 +179.3 +181.4 +183.2 +193.8 +178.3 +181.2 +180.4 +183.5 +179.8 +177.4 +183.2 +183.3 +176.6 +176.2 +216.9 +177.8 +177.0 +178.0 +175.3 +189.4 +182.6 +182.9 +183.6 +180.4 +177.2 +176.0 +177.9 +175.1 +182.1 +178.3 +178.5 +186.2 +177.7 +178.0 +183.3 +180.4 +197.6 +181.7 +179.9 +184.0 +194.8 +184.8 +189.4 +191.8 +176.6 +186.2 +180.3 +177.7 +197.0 +187.0 +188.1 +190.1 +176.8 +179.3 +185.4 +174.7 +189.6 +184.2 +178.0 +180.4 +183.4 +179.5 +177.7 +178.7 +186.9 +183.7 +177.2 +173.6 +184.7 +180.4 +183.1 +175.6 +179.6 +184.8 +185.6 +176.2 +177.7 +180.0 +174.7 +183.1 +181.6 +178.0 +178.8 +185.4 +181.2 +178.0 +188.7 +177.1 +189.3 +177.6 +180.6 +181.6 +175.9 +180.7 +179.1 +182.4 +186.7 +175.8 +185.1 +176.7 +180.3 +195.7 +191.3 +191.1 +181.3 +180.5 +179.3 +184.3 +177.1 +182.4 +179.4 +188.8 +174.5 +177.2 +178.4 +179.8 +183.3 +175.4 +184.1 +176.8 +182.4 +177.8 +178.7 +178.6 +189.6 +182.0 +191.2 +179.8 +179.3 +178.6 +183.0 +188.8 +205.3 +180.1 +190.6 +184.4 +179.9 +178.6 +174.7 +180.6 +193.3 +175.3 +175.5 +193.9 +180.4 +177.2 +175.6 +177.0 +182.3 +183.5 +181.9 +179.6 +182.8 +180.9 +180.6 +183.7 +185.0 +176.7 +190.5 +176.2 +179.0 +178.8 +180.0 +181.5 +174.3 +177.3 +179.2 +178.3 +184.7 +174.2 +177.3 +178.0 +178.9 +182.9 +189.8 +183.3 +183.0 +182.5 +176.3 +176.8 +177.5 +176.2 +183.1 +175.4 +175.0 +182.5 +174.9 +185.8 +181.4 +178.4 +183.8 +178.0 +265.0 +178.5 +185.0 +177.4 +179.2 +175.8 +183.0 +184.5 +195.3 +178.5 +178.2 +179.7 +175.0 +187.5 +182.7 +180.3 +181.0 +177.5 +181.5 +179.9 +179.0 +180.0 +182.6 +178.5 +179.6 +181.4 +188.0 +188.2 +179.1 +180.8 +178.5 +181.3 +179.9 +182.0 +181.8 +181.3 +186.6 +197.8 +205.8 +188.2 +194.9 +182.2 +184.6 +188.9 +189.4 +183.4 +179.2 +182.6 +184.6 +183.6 +184.3 +182.5 +181.1 +181.6 +178.9 +179.7 +176.3 +179.4 +180.2 +178.4 +179.6 +190.1 +178.5 +174.4 +177.3 +176.1 +175.3 +175.0 +178.9 +175.1 +181.3 +175.0 +176.0 +192.2 +189.2 +182.4 +179.2 +173.4 +177.9 +178.4 +175.5 +175.9 +199.0 +196.6 +181.7 +181.2 +177.6 +174.7 +174.3 +181.3 +178.9 +203.2 +176.3 +175.8 +192.3 +180.8 +184.8 +179.9 +182.4 +180.0 +174.3 +187.2 +181.4 +176.0 +174.4 +182.4 +186.8 +191.1 +177.1 +178.2 +176.8 +182.6 +184.6 +181.5 +185.4 +178.9 +176.6 +179.6 +175.1 +179.9 +176.9 +176.7 +186.2 +192.9 +183.5 +182.4 +175.5 +176.9 +180.6 +185.7 +174.2 +174.2 +178.9 +178.8 +179.2 +194.9 +177.5 +174.0 +179.0 +180.7 +174.0 +180.0 +178.3 +179.8 +180.0 +175.6 +174.9 +180.9 +177.3 +212.6 +196.0 +183.1 +186.5 +178.4 +185.9 +185.5 +176.8 +178.7 +174.0 +176.6 +179.0 +182.3 +176.6 +185.0 +175.7 +178.5 +176.4 +176.3 +186.3 +222.5 +185.7 +177.1 +183.6 +176.9 +184.0 +175.7 +174.4 +184.2 +269.8 +182.5 +174.6 +178.5 +176.1 +178.9 +177.9 +181.9 +176.8 +174.2 +181.6 +191.2 +179.1 +175.3 +182.2 +180.1 +175.2 +182.3 +175.6 +177.1 +175.1 +174.7 +188.2 +176.9 +183.6 +175.9 +175.5 +174.7 +182.4 +181.2 +179.5 +190.3 +184.8 +237.1 +178.3 +178.7 +184.1 +174.5 +178.3 +178.6 +181.8 +182.2 +190.2 +179.9 +181.0 +180.3 +177.2 +179.2 +179.2 +178.2 +183.0 +177.7 +180.1 +182.6 +196.6 +178.9 +177.0 +176.1 +178.3 +182.9 +176.5 +209.4 +181.1 +199.5 +186.3 +177.6 +182.7 +185.4 +180.2 +186.2 +187.4 +176.4 +182.8 +221.0 +179.0 +178.9 +178.4 +186.8 +174.1 +174.9 +176.8 +190.0 +178.9 +182.4 +178.7 +177.6 +179.4 +173.6 +178.1 +179.8 +177.8 +177.5 +187.5 +209.5 +178.0 +177.2 +179.3 +179.8 +179.8 +174.4 +177.1 +180.2 +182.5 +181.1 +184.7 +179.6 +193.0 +182.7 +181.6 +177.7 +178.2 +181.6 +186.6 +177.2 +178.1 +189.3 +174.3 +180.2 +186.2 +189.8 +185.9 +176.8 +178.8 +175.1 +175.5 +179.1 +180.9 +186.1 +187.0 +186.2 +187.6 +187.5 +197.8 +180.4 +196.7 +176.5 +177.6 +176.2 +180.8 +175.9 +182.8 +178.8 +184.6 +179.5 +175.6 +187.5 +175.7 +201.6 +188.2 +183.4 +184.2 +178.7 +177.0 +174.9 +181.9 +177.6 +177.7 +179.6 +176.0 +178.3 +181.5 +177.5 +184.7 +183.9 +180.9 +178.9 +177.8 +176.6 +188.4 +191.0 +189.6 +178.1 +177.9 +186.1 +178.7 +184.3 +176.5 +179.6 +174.1 +184.4 +176.8 +182.3 +179.5 +188.8 +180.2 +176.1 +198.4 +178.4 +188.6 +191.0 +180.4 +179.5 +176.0 +188.1 +189.6 +192.6 +177.0 +189.1 +177.5 +178.8 +186.8 +178.6 +180.5 +184.0 +178.7 +179.0 +176.2 +176.7 +185.2 +192.3 +178.0 +175.7 +181.0 +183.0 +175.7 +174.6 +176.7 +177.8 +179.0 +177.4 +176.7 +182.5 +194.0 +181.4 +178.7 +176.2 +176.7 +204.2 +178.3 +190.6 +188.5 +177.5 +180.6 +178.1 +175.2 +276.8 +353.6 +297.8 +235.1 +211.7 +213.4 +213.5 +191.5 +178.8 +186.2 +175.4 +178.2 +184.5 +179.9 +182.0 +179.3 +178.6 +192.5 +177.7 +179.2 +194.9 +183.1 +178.6 +179.9 +192.5 +184.1 +186.6 +181.2 +175.4 +197.2 +179.6 +184.6 +197.6 +180.6 +189.6 +175.3 +185.6 +174.5 +178.9 +174.2 +179.6 +173.9 +182.5 +185.6 +177.4 +191.4 +183.8 +177.0 +181.2 +176.3 +177.3 +173.7 +177.5 +178.9 +178.2 +177.3 +177.7 +187.8 +181.6 +178.4 +176.4 +180.8 +178.5 +189.5 +186.0 +188.4 +182.2 +184.0 +176.5 +179.5 +185.3 +173.8 +190.0 +180.2 +189.1 +184.9 +175.8 +182.2 +177.9 +176.4 +184.1 +179.5 +181.8 +175.7 +179.7 +178.7 +185.9 +180.5 +180.9 +175.5 +176.1 +174.4 +175.1 +195.2 +174.9 +190.5 +183.8 +188.7 +182.5 +179.5 +177.0 +174.9 +185.6 +180.8 +192.8 +185.2 +184.0 +177.7 +191.7 +185.3 +185.4 +186.6 +182.9 +181.1 +191.2 +183.0 +176.6 +187.7 +181.9 +179.5 +178.7 +176.9 +178.5 +182.1 +175.4 +175.9 +183.8 +180.6 +191.1 +177.0 +184.6 +188.7 +176.0 +181.4 +188.2 +181.1 +180.0 +178.9 +182.1 +179.6 +179.5 +174.5 +177.6 +179.9 +175.3 +185.2 +175.4 +185.1 +184.9 +182.0 +178.4 +177.0 +182.3 +193.8 +181.6 +197.4 +180.4 +180.9 +182.0 +181.0 +185.8 +178.5 +180.5 +182.3 +175.7 +176.5 +182.8 +176.8 +178.3 +179.5 +181.8 +175.1 +180.2 +179.6 +176.7 +174.6 +180.5 +179.7 +178.9 +177.1 +184.2 +178.4 +175.0 +183.7 +178.3 +179.1 +175.3 +187.5 +189.2 +176.7 +205.6 +179.6 +179.6 +179.1 +182.1 +178.6 +182.2 +181.6 +181.9 +188.8 +184.7 +185.3 +182.5 +174.2 +176.5 +190.1 +180.6 +182.7 +182.2 +179.5 +179.0 +184.4 +175.4 +178.2 +174.6 +179.0 +188.4 +175.9 +173.8 +180.2 +187.3 +186.3 +176.3 +174.9 +178.6 +178.2 +177.0 +180.0 +177.2 +173.5 +195.4 +180.5 +181.6 +177.2 +176.7 +175.3 +174.8 +179.7 +175.0 +176.4 +181.8 +183.0 +180.0 +177.0 +185.8 +183.2 +181.0 +176.8 +177.9 +186.1 +182.5 +174.4 +177.1 +176.7 +176.3 +180.3 +178.9 +178.3 +175.8 +179.9 +190.6 +182.8 +183.4 +177.9 +177.7 +180.0 +202.0 +184.5 +179.5 +181.5 +174.8 +194.2 +185.8 +177.0 +183.9 +177.6 +202.4 +179.9 +175.4 +174.8 +176.7 +177.9 +176.6 +176.5 +181.2 +181.3 +177.4 +179.3 +177.8 +176.2 +197.2 +180.9 +178.2 +184.6 +184.7 +191.0 +182.9 +179.9 +180.3 +177.4 +182.1 +181.9 +182.2 +174.9 +193.4 +175.1 +203.2 +176.0 +180.3 +180.0 +186.3 +174.8 +177.9 +196.1 +177.6 +183.5 +176.2 +187.6 +178.5 +180.6 +178.2 +180.7 +177.6 +176.6 +173.5 +178.7 +175.0 +179.0 +175.5 +174.2 +178.2 +176.6 +176.3 +179.4 +178.6 +175.2 +175.9 +175.0 +179.5 +176.9 +184.0 +184.6 +179.9 +175.3 +176.2 +179.1 +182.8 +180.5 +173.4 +176.0 +198.9 +177.0 +189.7 +183.6 +179.5 +176.5 +175.5 +175.5 +176.4 +182.9 +178.7 +177.5 +180.6 +175.0 +178.9 +177.7 +178.0 +178.6 +176.0 +177.6 +180.8 +179.6 +184.3 +190.2 +177.7 +178.1 +175.0 +178.6 +179.6 +185.1 +193.7 +179.8 +179.3 +178.6 +180.4 +174.9 +177.8 +187.4 +183.7 +181.6 +177.7 +185.4 +180.6 +178.5 +182.8 +179.9 +177.8 +178.0 +184.3 +191.0 +181.1 +197.9 +181.1 +197.8 +175.6 +176.9 +177.9 +187.4 +180.8 +180.6 +174.9 +180.8 +175.7 +176.4 +179.9 +178.3 +178.3 +178.4 +196.4 +177.3 +184.3 +177.3 +176.5 +181.0 +175.0 +179.2 +178.1 +183.3 +177.0 +175.2 +177.2 +173.5 +176.5 +177.0 +178.6 +181.3 +189.2 +186.4 +177.4 +181.7 +176.2 +194.1 +177.9 +186.6 +182.6 +176.6 +175.4 +250.3 +178.7 +183.0 +182.7 +183.1 +183.6 +178.8 +178.3 +179.1 +177.7 +177.9 +186.2 +195.4 +179.2 +183.3 +183.8 +186.3 +182.7 +178.9 +196.0 +177.1 +184.5 +188.3 +188.4 +181.5 +190.1 +179.0 +177.2 +189.1 +184.1 +184.2 +178.7 +187.4 +182.5 +189.8 +181.1 +186.0 +178.8 +178.0 +176.9 +180.6 +174.3 +180.4 +176.7 +175.5 +193.7 +189.7 +196.6 +178.9 +186.3 +182.5 +185.7 +175.7 +176.0 +194.1 +181.0 +178.6 +178.4 +186.8 +175.6 +185.4 +180.7 +184.7 +188.1 +180.4 +183.0 +178.4 +185.1 +181.8 +175.8 +178.9 +177.9 +177.9 +176.5 +290.3 +181.8 +180.8 +183.9 +190.8 +179.0 +183.7 +181.9 +177.5 +178.4 +179.4 +179.9 +174.2 +182.7 +182.9 +178.8 +179.2 +183.2 +181.8 +175.6 +179.0 +175.7 +178.1 +179.2 +183.8 +187.8 +187.3 +175.7 +175.0 +185.5 +175.3 +181.9 +176.7 +184.6 +185.8 +181.1 +186.6 +178.8 +183.4 +175.1 +178.4 +179.6 +176.7 +177.1 +176.5 +181.7 +199.1 +194.8 +176.5 +182.2 +189.9 +177.6 +179.3 +184.9 +178.1 +176.4 +184.6 +174.6 +188.6 +183.7 +178.1 +177.7 +186.1 +176.3 +180.9 +180.3 +181.0 +180.0 +180.0 +180.4 +174.8 +179.5 +176.5 +179.9 +175.6 +184.0 +176.4 +191.6 +178.4 +184.8 +186.7 +197.0 diff --git a/netem/maketable.c b/netem/maketable.c new file mode 100644 index 0000000..ad8620a --- /dev/null +++ b/netem/maketable.c @@ -0,0 +1,235 @@ +/* SPDX-License-Identifier: NIST-PD */ +/* + * Experimental data distribution table generator + * Taken from the uncopyrighted NISTnet code (public domain). + * + * Read in a series of "random" data values, either + * experimentally or generated from some probability distribution. + * From this, create the inverse distribution table used to approximate + * the distribution. + */ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <malloc.h> +#include <string.h> +#include <sys/types.h> +#include <sys/stat.h> + + +double * +readdoubles(FILE *fp, int *number) +{ + struct stat info; + double *x; + int limit; + int n=0, i; + + if (!fstat(fileno(fp), &info) && + info.st_size > 0) { + limit = 2*info.st_size/sizeof(double); /* @@ approximate */ + } else { + limit = 10000; + } + + x = calloc(limit, sizeof(double)); + if (!x) { + perror("double alloc"); + exit(3); + } + + for (i=0; i<limit; ++i){ + if (fscanf(fp, "%lf", &x[i]) != 1 || + feof(fp)) + break; + ++n; + } + *number = n; + return x; +} + +void +arraystats(double *x, int limit, double *mu, double *sigma, double *rho) +{ + int n=0, i; + double sumsquare=0.0, sum=0.0, top=0.0; + double sigma2=0.0; + + for (i=0; i<limit; ++i){ + sumsquare += x[i]*x[i]; + sum += x[i]; + ++n; + } + *mu = sum/(double)n; + *sigma = sqrt((sumsquare - (double)n*(*mu)*(*mu))/(double)(n-1)); + + for (i=1; i < n; ++i){ + top += ((double)x[i]- *mu)*((double)x[i-1]- *mu); + sigma2 += ((double)x[i-1] - *mu)*((double)x[i-1] - *mu); + + } + *rho = top/sigma2; +} + +/* Create a (normalized) distribution table from a set of observed + * values. The table is fixed to run from (as it happens) -4 to +4, + * with granularity .00002. + */ + +#define TABLESIZE 16384/4 +#define TABLEFACTOR 8192 +#ifndef MINSHORT +#define MINSHORT -32768 +#define MAXSHORT 32767 +#endif + +/* Since entries in the inverse are scaled by TABLEFACTOR, and can't be bigger + * than MAXSHORT, we don't bother looking at a larger domain than this: + */ +#define DISTTABLEDOMAIN ((MAXSHORT/TABLEFACTOR)+1) +#define DISTTABLEGRANULARITY 50000 +#define DISTTABLESIZE (DISTTABLEDOMAIN*DISTTABLEGRANULARITY*2) + +static int * +makedist(double *x, int limit, double mu, double sigma) +{ + int *table; + int i, index, first=DISTTABLESIZE, last=0; + double input; + + table = calloc(DISTTABLESIZE, sizeof(int)); + if (!table) { + perror("table alloc"); + exit(3); + } + + for (i=0; i < limit; ++i) { + /* Normalize value */ + input = (x[i]-mu)/sigma; + + index = (int)rint((input+DISTTABLEDOMAIN)*DISTTABLEGRANULARITY); + if (index < 0) index = 0; + if (index >= DISTTABLESIZE) index = DISTTABLESIZE-1; + ++table[index]; + if (index > last) + last = index +1; + if (index < first) + first = index; + } + return table; +} + +/* replace an array by its cumulative distribution */ +static void +cumulativedist(int *table, int limit, int *total) +{ + int accum=0; + + while (--limit >= 0) { + accum += *table; + *table++ = accum; + } + *total = accum; +} + +static short * +inverttable(int *table, int inversesize, int tablesize, int cumulative) +{ + int i, inverseindex, inversevalue; + short *inverse; + double findex, fvalue; + + inverse = (short *)malloc(inversesize*sizeof(short)); + for (i=0; i < inversesize; ++i) { + inverse[i] = MINSHORT; + } + for (i=0; i < tablesize; ++i) { + findex = ((double)i/(double)DISTTABLEGRANULARITY) - DISTTABLEDOMAIN; + fvalue = (double)table[i]/(double)cumulative; + inverseindex = (int)rint(fvalue*inversesize); + inversevalue = (int)rint(findex*TABLEFACTOR); + if (inversevalue <= MINSHORT) inversevalue = MINSHORT+1; + if (inversevalue > MAXSHORT) inversevalue = MAXSHORT; + if (inverseindex >= inversesize) inverseindex = inversesize- 1; + + inverse[inverseindex] = inversevalue; + } + return inverse; + +} + +/* Run simple linear interpolation over the table to fill in missing entries */ +static void +interpolatetable(short *table, int limit) +{ + int i, j, last, lasti = -1; + + last = MINSHORT; + for (i=0; i < limit; ++i) { + if (table[i] == MINSHORT) { + for (j=i; j < limit; ++j) + if (table[j] != MINSHORT) + break; + if (j < limit) { + table[i] = last + (i-lasti)*(table[j]-last)/(j-lasti); + } else { + table[i] = last + (i-lasti)*(MAXSHORT-last)/(limit-lasti); + } + } else { + last = table[i]; + lasti = i; + } + } +} + +static void +printtable(const short *table, int limit) +{ + int i; + + printf("# This is the distribution table for the experimental distribution.\n"); + + for (i=0 ; i < limit; ++i) { + printf("%d%c", table[i], + (i % 8) == 7 ? '\n' : ' '); + } +} + +int +main(int argc, char **argv) +{ + FILE *fp; + double *x; + double mu, sigma, rho; + int limit; + int *table; + short *inverse; + int total; + + if (argc > 1) { + if (!(fp = fopen(argv[1], "r"))) { + perror(argv[1]); + exit(1); + } + } else { + fp = stdin; + } + x = readdoubles(fp, &limit); + if (limit <= 0) { + fprintf(stderr, "Nothing much read!\n"); + exit(2); + } + arraystats(x, limit, &mu, &sigma, &rho); +#ifdef DEBUG + fprintf(stderr, "%d values, mu %10.4f, sigma %10.4f, rho %10.4f\n", + limit, mu, sigma, rho); +#endif + + table = makedist(x, limit, mu, sigma); + free((void *) x); + cumulativedist(table, DISTTABLESIZE, &total); + inverse = inverttable(table, TABLESIZE, DISTTABLESIZE, total); + interpolatetable(inverse, TABLESIZE); + printtable(inverse, TABLESIZE); + return 0; +} diff --git a/netem/normal.c b/netem/normal.c new file mode 100644 index 0000000..5414be4 --- /dev/null +++ b/netem/normal.c @@ -0,0 +1,52 @@ +/* SPDX-License-Identifier: NIST-PD */ +/* + * Normal distribution table generator + * Taken from the uncopyrighted NISTnet code. + */ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <string.h> +#include <limits.h> + +#include <linux/types.h> +#include <linux/pkt_sched.h> + +#define TABLESIZE 16384 +#define TABLEFACTOR NETEM_DIST_SCALE + +static double +normal(double x, double mu, double sigma) +{ + return .5 + .5*erf((x-mu)/(sqrt(2.0)*sigma)); +} + + +int +main(int argc, char **argv) +{ + int i, n; + double x; + double table[TABLESIZE+1]; + + for (x = -10.0; x < 10.05; x += .00005) { + i = rint(TABLESIZE * normal(x, 0.0, 1.0)); + table[i] = x; + } + + + printf("# This is the distribution table for the normal distribution.\n"); + for (i = n = 0; i < TABLESIZE; i += 4) { + int value = (int) rint(table[i]*TABLEFACTOR); + if (value < SHRT_MIN) value = SHRT_MIN; + if (value > SHRT_MAX) value = SHRT_MAX; + + printf(" %d", value); + if (++n == 8) { + putchar('\n'); + n = 0; + } + } + + return 0; +} diff --git a/netem/pareto.c b/netem/pareto.c new file mode 100644 index 0000000..5c802c9 --- /dev/null +++ b/netem/pareto.c @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: NIST-PD */ +/* + * Pareto distribution table generator + * Taken from the uncopyrighted NISTnet code. + */ +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <limits.h> + +#include <linux/types.h> +#include <linux/pkt_sched.h> + +static const double a=3.0; +#define TABLESIZE 16384 +#define TABLEFACTOR NETEM_DIST_SCALE + +int +main(int argc, char **argv) +{ + int i, n; + double dvalue; + + printf("# This is the distribution table for the pareto distribution.\n"); + + for (i = 65536, n = 0; i > 0; i -= 16) { + dvalue = (double)i/(double)65536; + dvalue = 1.0/pow(dvalue, 1.0/a); + dvalue -= 1.5; + dvalue *= (4.0/3.0)*(double)TABLEFACTOR; + if (dvalue > 32767) + dvalue = 32767; + + printf(" %d", (int)rint(dvalue)); + if (++n == 8) { + putchar('\n'); + n = 0; + } + } + + return 0; +} diff --git a/netem/paretonormal.c b/netem/paretonormal.c new file mode 100644 index 0000000..c36e325 --- /dev/null +++ b/netem/paretonormal.c @@ -0,0 +1,82 @@ +/* SPDX-License-Identifier: NIST-PD */ +/* + * Paretoormal distribution table generator + * + * This distribution is simply .25*normal + .75*pareto; a combination + * which seems to match experimentally observed distributions reasonably + * well, but is computationally easy to handle. + * The entries represent a scaled inverse of the cumulative distribution + * function. + * + * Taken from the uncopyrighted NISTnet code. + */ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> +#include <limits.h> +#include <malloc.h> + +#include <linux/types.h> +#include <linux/pkt_sched.h> + +#define TABLESIZE 16384 +#define TABLEFACTOR NETEM_DIST_SCALE + +static double +normal(double x, double mu, double sigma) +{ + return .5 + .5*erf((x-mu)/(sqrt(2.0)*sigma)); +} + +static const double a=3.0; + +static int +paretovalue(int i) +{ + double dvalue; + + i = 65536-4*i; + dvalue = (double)i/(double)65536; + dvalue = 1.0/pow(dvalue, 1.0/a); + dvalue -= 1.5; + dvalue *= (4.0/3.0)*(double)TABLEFACTOR; + if (dvalue > 32767) + dvalue = 32767; + return (int)rint(dvalue); +} + +int +main(int argc, char **argv) +{ + int i,n; + double x; + double table[TABLESIZE+1]; + + for (x = -10.0; x < 10.05; x += .00005) { + i = rint(TABLESIZE*normal(x, 0.0, 1.0)); + table[i] = x; + } + printf( +"# This is the distribution table for the paretonormal distribution.\n" + ); + + for (i = n = 0; i < TABLESIZE; i += 4) { + int normvalue, parvalue, value; + + normvalue = (int) rint(table[i]*TABLEFACTOR); + parvalue = paretovalue(i); + + value = (normvalue+3*parvalue)/4; + if (value < SHRT_MIN) value = SHRT_MIN; + if (value > SHRT_MAX) value = SHRT_MAX; + + printf(" %d", value); + if (++n == 8) { + putchar('\n'); + n = 0; + } + } + + return 0; +} diff --git a/netem/stats.c b/netem/stats.c new file mode 100644 index 0000000..99c4fee --- /dev/null +++ b/netem/stats.c @@ -0,0 +1,78 @@ +/* SPDX-License-Identifier: NIST-PD */ +/* + * Experimental data distribution table generator + * Taken from the uncopyrighted NISTnet code (public domain). + * + * Rread in a series of "random" data values, either + * experimentally or generated from some probability distribution. + * From this, report statistics. + */ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include <malloc.h> +#include <sys/types.h> +#include <sys/stat.h> + +void +stats(FILE *fp) +{ + struct stat info; + double *x; + int limit; + int n=0, i; + double mu=0.0, sigma=0.0, sumsquare=0.0, sum=0.0, top=0.0, rho=0.0; + double sigma2=0.0; + + fstat(fileno(fp), &info); + if (info.st_size > 0) { + limit = 2*info.st_size/sizeof(double); /* @@ approximate */ + } else { + limit = 10000; + } + x = (double *)malloc(limit*sizeof(double)); + + for (i=0; i<limit; ++i){ + fscanf(fp, "%lf", &x[i]); + if (feof(fp)) + break; + sumsquare += x[i]*x[i]; + sum += x[i]; + ++n; + } + mu = sum/(double)n; + sigma = sqrt((sumsquare - (double)n*mu*mu)/(double)(n-1)); + + for (i=1; i < n; ++i){ + top += ((double)x[i]-mu)*((double)x[i-1]-mu); + sigma2 += ((double)x[i-1] - mu)*((double)x[i-1] - mu); + + } + rho = top/sigma2; + + printf("mu = %12.6f\n", mu); + printf("sigma = %12.6f\n", sigma); + printf("rho = %12.6f\n", rho); + /*printf("sigma2 = %10.4f\n", sqrt(sigma2/(double)(n-1)));*/ + /*printf("correlation rho = %10.6f\n", top/((double)(n-1)*sigma*sigma));*/ +} + + +int +main(int argc, char **argv) +{ + FILE *fp; + + if (argc > 1) { + fp = fopen(argv[1], "r"); + if (!fp) { + perror(argv[1]); + exit(1); + } + } else { + fp = stdin; + } + stats(fp); + return 0; +} |