From b68177c0f2614f1a9074698aa7cbef691babd556 Mon Sep 17 00:00:00 2001 From: GUILLON Thomas Date: Mon, 21 Feb 2022 15:50:40 +0100 Subject: [PATCH] fisrt commit --- .github/workflows/gh-pages.yml | 47 + .gitignore | 4 + AUTHORS.txt | 6 + CONTRIBUTING.md | 2 + LICENSE.txt | 201 + README.rst | 195 + docs/LICENSE.txt | 396 + docs/Makefile | 20 + docs/_images/annual-costs.png | Bin 0 -> 16614 bytes docs/_images/optimal-ages.png | Bin 0 -> 55425 bytes docs/_images/relife.png | Bin 0 -> 23663 bytes docs/_images/replacements.png | Bin 0 -> 24456 bytes docs/_images/survival-analysis.png | Bin 0 -> 53617 bytes docs/_static/favicon.ico | Bin 0 -> 15071 bytes docs/_static/logo.png | Bin 0 -> 12920 bytes docs/_templates/custom-class-template.rst | 35 + docs/_templates/custom-module-template.rst | 67 + docs/conf.py | 67 + docs/index.rst | 19 + docs/make.bat | 35 + docs/modules.rst | 13 + docs/relife.rst | 122 + docs/requirements.txt | 5 + pyproject.toml | 38 + relife/__init__.py | 51 + relife/data.py | 318 + relife/datasets.py | 107 + relife/datasets/circuit_breaker.csv | 4205 +++++++ relife/datasets/insulator_string.csv | 12001 +++++++++++++++++++ relife/datasets/power_transformer.csv | 1651 +++ relife/discounting.py | 202 + relife/distribution.py | 601 + relife/model.py | 663 + relife/nonparametric.py | 352 + relife/parametric.py | 424 + relife/regression.py | 432 + relife/renewal_process.py | 1006 ++ relife/replacement_policy.py | 1604 +++ relife/reward.py | 75 + relife/utils.py | 292 + requirements.txt | 3 + tests/__init__.py | 5 + tests/test_distribution.py | 73 + tests/test_nonparametric.py | 28 + tests/test_regression.py | 79 + tests/test_renewal_process.py | 108 + tests/test_replacement_policy.py | 106 + 47 files changed, 25658 insertions(+) create mode 100644 .github/workflows/gh-pages.yml create mode 100644 .gitignore create mode 100644 AUTHORS.txt create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE.txt create mode 100644 README.rst create mode 100644 docs/LICENSE.txt create mode 100644 docs/Makefile create mode 100644 docs/_images/annual-costs.png create mode 100644 docs/_images/optimal-ages.png create mode 100644 docs/_images/relife.png create mode 100644 docs/_images/replacements.png create mode 100644 docs/_images/survival-analysis.png create mode 100644 docs/_static/favicon.ico create mode 100644 docs/_static/logo.png create mode 100644 docs/_templates/custom-class-template.rst create mode 100644 docs/_templates/custom-module-template.rst create mode 100644 docs/conf.py create mode 100644 docs/index.rst create mode 100644 docs/make.bat create mode 100644 docs/modules.rst create mode 100644 docs/relife.rst create mode 100644 docs/requirements.txt create mode 100644 pyproject.toml create mode 100644 relife/__init__.py create mode 100644 relife/data.py create mode 100644 relife/datasets.py create mode 100644 relife/datasets/circuit_breaker.csv create mode 100644 relife/datasets/insulator_string.csv create mode 100644 relife/datasets/power_transformer.csv create mode 100644 relife/discounting.py create mode 100644 relife/distribution.py create mode 100644 relife/model.py create mode 100644 relife/nonparametric.py create mode 100644 relife/parametric.py create mode 100644 relife/regression.py create mode 100644 relife/renewal_process.py create mode 100644 relife/replacement_policy.py create mode 100644 relife/reward.py create mode 100644 relife/utils.py create mode 100644 requirements.txt create mode 100644 tests/__init__.py create mode 100644 tests/test_distribution.py create mode 100644 tests/test_nonparametric.py create mode 100644 tests/test_regression.py create mode 100644 tests/test_renewal_process.py create mode 100644 tests/test_replacement_policy.py diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000..60be1bd --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,47 @@ +name: "Build and deploy Github pages" + +# triggering event +on: + push: + branches: + - main + +jobs: + + build-and-deploy: + runs-on: ubuntu-latest + + # Tasks to perform + steps: + + # 1. getting the repository + + - name: "Checkout" + uses: actions/checkout@v2 + with: + persist-credentials: false + + # 2. Sphinx stuff + + - name: "Set up Python" + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: "Install Python dependencies" + working-directory: ./docs + run: | + pip3 install -r requirements.txt + + - name: "Build Sphinx Doc" + working-directory: ./docs + run: | + make html + + # 3. Deploy on GutHub pages + + - name: "Deploy Github Pages" + uses: JamesIves/github-pages-deploy-action@v4.2.5 + with: + branch: gh-pages # branch on which files are commited + folder: ./docs/_build/html/ # directory containing index.html \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2e7b92a --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +__pycache__/ +/docs/_autosummary/ +/docs/_build/ +/dist/ diff --git a/AUTHORS.txt b/AUTHORS.txt new file mode 100644 index 0000000..87763c0 --- /dev/null +++ b/AUTHORS.txt @@ -0,0 +1,6 @@ +Thomas Guillon, +Michaël Boulade, +Laura Cohen, +Lionel Figueroa, +Jovana Krstevska, +Sami Tazi. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..e046b18 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,2 @@ +Thanks a lot for your interest! If you would like to contribute, you can start by +opening an issue on Github or contact the authors. \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..f42c9a8 --- /dev/null +++ b/README.rst @@ -0,0 +1,195 @@ +.. image:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/relife.png + :width: 80 + +ReLife +====== + +ReLife is an open source Python library for asset management based on +reliability theory and lifetime data analysis. + +- **Survival analysis**: non-parametric estimator (Kaplan-Meier), parametric + estimator (Maximum Likelihood) and regression models (Accelerated Failure Time + and Parametric Proportional Hazards) on left-truncated, right-censored and + left-censored lifetime data. +- **Reliability theory**: optimal age of replacement for time-based mainteance + policy for one-cycle or infinite number of cycles, with exponential + discounting. +- **Renewal theory**: expected number of events, expected total costs or + expected number of replacements for run-to-failures or age replacement + policies. + +Installation +------------ + +From PyPI: + +.. code-block:: console + + pip3 install relife + +Documentation +------------- + +The official documentation is available at https://rte-france.github.io/relife/. + +Citing +------ + +.. code-block:: bibtex + + @misc{relife, + author = {T. Guillon}, + title = {ReLife: a Python package for asset management based on + reliability theory and lifetime data analysis.}, + year = {2022}, + journal = {GitHub}, + howpublished = {\url{https://github.com/rte-france/relife}}, + } + +Credits +------- +Icon made by `Freepik `_ from `Flaticon +`_. + +Getting Started +=============== + +The following example shows the steps to develop a preventive maintenance policy +by age on circuit breakers: + +1. Perform a survival analysis on lifetime data, +2. Compute the optimal age of replacement, +3. Compute the expected total discounting costs and number of expected + replacements for the next years. + +Survival analysis +----------------- + +The survival analysis is perfomed by computing the Kaplan-Meier estimator and fitting the +parameters of a Weibull and a Gompertz distribution with the maximum likelihood +estimator. + +.. code-block:: python + + import numpy as np + import matplotlib.pyplot as plt + from relife.datasets import load_circuit_breaker + from relife import KaplanMeier, Weibull, Gompertz, AgeReplacementPolicy + + time, event, entry = load_circuit_breaker().astuple() + km = KaplanMeier().fit(time,event,entry) + weibull = Weibull().fit(time,event,entry) + gompertz = Gompertz().fit(time,event,entry) + +The results of fitting the Weibull and Gompertz distributions are compared by +looking at the attributes :code:`weibull.result.AIC` and +:code:`gompertz.result.AIC`. The Gompertz distribution gives the best fit and +will be chosen for the next step of the study. The code below plots the survival +function obtained by the Kaplan-Meier estimator and the maximum likelihood +estimator for the Weibull and Gompertz distributions. + +.. code-block:: python + + km.plot() + weibull.plot() + gompertz.plot() + plt.xlabel('Age [year]') + plt.ylabel('Survival probability') + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/survival-analysis.png + +Optimal age of replacement +-------------------------- + +We consider 3 circuit breakers with the following parameters: + +- the current ages of the circuit breakers are a0 = [15, 20, 25] years, +- the preventive costs of replacement are evaluated cp = 10 k€, +- the failure costs (e.g. lost energy) are evaluated cf = [900, 500, 100] k€, +- the discount rate is rate = 0.04. + +.. code-block:: python + + a0 = np.array([15, 20, 25]).reshape(-1,1) + cp = 10 + cf = np.array([900, 500, 100]).reshape(-1,1) + policy = AgeReplacementPolicy(gompertz, a0=a0, cf=cf, cp=cp, rate=0.04) + policy.fit() + policy.ar1, policy.ar + +Where `ar1` are the time left until the first replacement, whereas `ar` is the +optimal age of replacement for the next replacements: + +.. code-block:: console + + (array([[10.06828465], + [11.5204334 ], + [22.58652687]]), + array([[20.91858994], + [25.54939328], + [41.60855399]])) + +The optimal age of replacement minimizes the asymptotic expected equivalent annual +cost. It represents the best compromise between replacement costs and the cost +of the consequences of failure. + +.. code-block:: python + + a = np.arange(1,100,0.1) + za = policy.asymptotic_expected_equivalent_annual_cost(a) + za_opt = policy.asymptotic_expected_equivalent_annual_cost() + plt.plot(a, za.T) + for i, ar in enumerate(policy.ar): + plt.scatter(ar, za_opt[i], c=f'C{i}', + label=f" cf={cf[i,0]} k€, ar={ar[0]:0.1f} years") + plt.xlabel('Age of preventive replacement [years]') + plt.ylabel('Asymptotic expected equivalent annual cost [k€]') + plt.legend() + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/optimal-ages.png + +Budget and operations planning +------------------------------ + +For budgeting, the expected total discounted costs for the 3 circuit breakers +are computed and we can plot the total annual discounted costs for the next 30 +years, including costs of failures and costs of preventive replacements. + +.. code-block:: python + + dt = 0.5 + step = int(1/dt) + t = np.arange(0, 30+dt, dt) + z = policy.expected_total_cost(t).sum(axis=0) + y = t[::step][1:] + q = np.diff(z[::step]) + plt.bar(2020+y, q, align='edge', width=-0.8, alpha=0.8, color='C2') + plt.xlabel('Year') + plt.ylabel('Expected discounted annual cost in k€') + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/annual-costs.png + +Then the total number of replacements are projected for the next 30 years. +Failure replacements are counted separately in order to prevent and prepare the +workload of the maintenance teams. + +.. code-block:: + + mt = policy.expected_total_cost(t, cf=1, cp=1, rate=0).sum(axis=0) + mf = policy.expected_total_cost(t, cf=1, cp=0, rate=0).sum(axis=0) + qt = np.diff(mt[::step]) + qf = np.diff(mf[::step]) + plt.bar(y+2020, qt, align='edge', width=-0.8, alpha=0.8, + color='C1', label='all replacements') + plt.bar(y+2020, qf, align='edge', width=-0.8, alpha=0.8, + color='C0', label='failure replacements only') + plt.xlabel('Years') + plt.ylabel('Expected number of annual replacements') + plt.legend() + +The figure shows the expected replacements for the very small sample of 3 +circuit breakers. When the population of assets is large, the expected failure +replacements is a useful information to build up a stock of materials. + +.. figure:: https://raw.githubusercontent.com/rte-france/relife/main/docs/_images/replacements.png + diff --git a/docs/LICENSE.txt b/docs/LICENSE.txt new file mode 100644 index 0000000..da6ab6c --- /dev/null +++ b/docs/LICENSE.txt @@ -0,0 +1,396 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/_images/annual-costs.png b/docs/_images/annual-costs.png new file mode 100644 index 0000000000000000000000000000000000000000..a0e9e1f3c20de2d736d05f9af488c1237ec893db GIT binary patch literal 16614 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

b1+s5)67Nsi7%&Qal`(ffPdl=(D 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 literal 0 HcmV?d00001 diff --git a/docs/_images/optimal-ages.png b/docs/_images/optimal-ages.png new file mode 100644 index 0000000000000000000000000000000000000000..e36bff21a7176feed82c2f63eae09b16e74cab13 GIT binary patch literal 55425 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

    LKa#k&W&J1zm4pU!9M5 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%0A%5pcFe^JZ(uCOl#Gw!vqE%Jz{ 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 literal 0 HcmV?d00001 diff --git a/docs/_images/relife.png b/docs/_images/relife.png new file mode 100644 index 0000000000000000000000000000000000000000..eea8d66812f51980f57609ffc2aae8c1522428d2 GIT binary patch literal 23663 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 literal 0 HcmV?d00001 diff --git a/docs/_images/replacements.png b/docs/_images/replacements.png new file mode 100644 index 0000000000000000000000000000000000000000..76b31a5233d12483be2d9df8866de53db9df9c5c GIT binary patch literal 24456 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 K@&2w;{Qm&H*QU?_ literal 0 HcmV?d00001 diff --git a/docs/_static/logo.png b/docs/_static/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..fa512dc6afa525c902736b2b62294a843740f4c4 GIT binary patch literal 12920 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 literal 0 HcmV?d00001 diff --git a/docs/_templates/custom-class-template.rst b/docs/_templates/custom-class-template.rst new file mode 100644 index 0000000..c3bdb3e --- /dev/null +++ b/docs/_templates/custom-class-template.rst @@ -0,0 +1,35 @@ +{{ fullname | escape | underline}} + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + :members: + :show-inheritance: + :inherited-members: + :special-members: __call__, __add__, __mul__ + + {% block methods %} + {% if methods %} + .. rubric:: {{ _('Methods') }} + + .. autosummary:: + :nosignatures: + {% for item in methods %} + {%- if not item.startswith('_') %} + ~{{ name }}.{{ item }} + {%- endif -%} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block attributes %} + {% if attributes %} + .. rubric:: {{ _('Attributes') }} + + .. autosummary:: + {% for item in attributes %} + ~{{ name }}.{{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + diff --git a/docs/_templates/custom-module-template.rst b/docs/_templates/custom-module-template.rst new file mode 100644 index 0000000..0ef7378 --- /dev/null +++ b/docs/_templates/custom-module-template.rst @@ -0,0 +1,67 @@ +{{ fullname | escape | underline}} + +.. automodule:: {{ fullname }} + + {% block attributes %} + {% if attributes %} + .. rubric:: Module attributes + + .. autosummary:: + :toctree: + {% for item in attributes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block functions %} + {% if functions %} + .. rubric:: {{ _('Functions') }} + + .. autosummary:: + :toctree: + :nosignatures: + {% for item in functions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block classes %} + {% if classes %} + .. rubric:: {{ _('Classes') }} + + .. autosummary:: + :toctree: + :template: custom-class-template.rst + :nosignatures: + {% for item in classes %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + + {% block exceptions %} + {% if exceptions %} + .. rubric:: {{ _('Exceptions') }} + + .. autosummary:: + :toctree: + {% for item in exceptions %} + {{ item }} + {%- endfor %} + {% endif %} + {% endblock %} + +{% block modules %} +{% if modules %} +.. autosummary:: + :toctree: + :template: custom-module-template.rst + :recursive: +{% for item in modules %} + {{ item }} +{%- endfor %} +{% endif %} +{% endblock %} + diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..bf8d858 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,67 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('../')) + + +# -- Project information ----------------------------------------------------- + +project = 'ReLife' +copyright = u'2022, RTE (https://www.rte-france.com) except where otherwise noted and licensed under a CC-BY-4.0 license (https://creativecommons.org/licenses/by/4.0/)' +author = 'Thomas Guillon, Michaël Boulade, Laura Cohen, Lionel Figueroa, Jovana Krstevska, Sami Tazi.' + +# The full version, including alpha/beta/rc tags +release = '1.0.0' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.napoleon', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.viewcode', + 'sphinx.ext.githubpages' +] + +autoclass_content = 'both' +autodoc_member_order = 'bysource' + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "sphinx_book_theme" + +html_logo = '_static/logo.png' + +html_favicon = '_static/favicon.ico' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] \ No newline at end of file diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..6c47d44 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,19 @@ +.. ReLife documentation master file, created by + sphinx-quickstart on Wed Feb 16 14:44:52 2022. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. include:: ../README.rst + +.. toctree:: + :maxdepth: 2 + :caption: API documentation + + relife <_autosummary/relife> + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..153be5e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/modules.rst b/docs/modules.rst new file mode 100644 index 0000000..9d2c562 --- /dev/null +++ b/docs/modules.rst @@ -0,0 +1,13 @@ +relife +====== + +.. toctree:: + :maxdepth: 4 + +.. autosummary:: + :toctree: _autosummary + :template: custom-module-template.rst + :recursive: + + relife + diff --git a/docs/relife.rst b/docs/relife.rst new file mode 100644 index 0000000..cd6beff --- /dev/null +++ b/docs/relife.rst @@ -0,0 +1,122 @@ +relife package +============== + +Submodules +---------- + +relife.data module +------------------ + +.. automodule:: relife.data + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.datasets module +---------------------- + +.. automodule:: relife.datasets + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.discounting module +------------------------- + +.. automodule:: relife.discounting + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.distribution module +-------------------------- + +.. automodule:: relife.distribution + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.model module +------------------- + +.. automodule:: relife.model + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.nonparametric module +--------------------------- + +.. automodule:: relife.nonparametric + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.parametric module +------------------------ + +.. automodule:: relife.parametric + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.regression module +------------------------ + +.. automodule:: relife.regression + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.renewal\_process module +------------------------------ + +.. automodule:: relife.renewal_process + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.replacement\_policy module +--------------------------------- + +.. automodule:: relife.replacement_policy + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.reward module +-------------------- + +.. automodule:: relife.reward + :members: + :undoc-members: + :show-inheritance: + :noindex: + +relife.utils module +------------------- + +.. automodule:: relife.utils + :members: + :undoc-members: + :show-inheritance: + :noindex: + +Module contents +--------------- + +.. automodule:: relife + :members: + :undoc-members: + :show-inheritance: + :noindex: diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..5ae632e --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +numpy>=1.17.0 +scipy>=1.3.1 +matplotlib>=3.1.1 +sphinx >= 4.4.0 +sphinx-book-theme >= 0.2.0 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d97b4d2 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,38 @@ +[build-system] +requires = ["flit_core >=3.2,<4"] +build-backend = "flit_core.buildapi" +dependencies = [ + "numpy >=1.17.0", + "scipy >=1.3.1", + "matplotlib >=3.1.1", +] + +[project] +name = "relife" +authors = [ + {name = "Thomas Guillon"}, + {name = "Michael Boulade"}, + {name = "Laura Cohen"}, + {name = "Lionel Figueroa"}, + {name = "Jovana Krstevska "}, + {name = "Sami Tazi"} +] +readme = "README.rst" +classifiers = ["License :: OSI Approved :: Apache Software License"] +requires-python = ">=3.7" +dynamic = ["version", "description"] + +[project.optional-dependencies] +test = [ + "pytest >=2.7.3", + "pytest-cov", +] +doc = [ + "sphinx >= 4.4.0", + "sphinx-book-theme >= 0.2.0", +] + +[project.urls] +Home = "https://github.com/rte-france/relife" +Documentation = "https://rte-france.github.io/relife/" + diff --git a/relife/__init__.py b/relife/__init__.py new file mode 100644 index 0000000..45ce896 --- /dev/null +++ b/relife/__init__.py @@ -0,0 +1,51 @@ +"""The relife package.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from .model import AgeReplacementModel, LeftTruncated, EquilibriumDistribution +from .distribution import ( + Exponential, + Weibull, + Gompertz, + Gamma, + LogLogistic, + MinimumDistribution, +) +from .regression import AFT, ProportionalHazards +from .nonparametric import ECDF, KaplanMeier, NelsonAalen +from .renewal_process import RenewalProcess, RenewalRewardProcess +from .replacement_policy import ( + OneCycleRunToFailure, + RunToFailure, + OneCycleAgeReplacementPolicy, + AgeReplacementPolicy, +) + +__version__ = "1.0.0" + +__all__ = [ + "AgeReplacementModel", + "LeftTruncated", + "EquilibriumDistribution", + "Exponential", + "Weibull", + "Gompertz", + "Gamma", + "LogLogistic", + "MinimumDistribution", + "AFT", + "ProportionalHazards", + "ECDF", + "KaplanMeier", + "NelsonAalen", + "RenewalProcess", + "RenewalRewardProcess", + "OneCycleRunToFailure", + "RunToFailure", + "OneCycleAgeReplacementPolicy", + "AgeReplacementPolicy", +] diff --git a/relife/data.py b/relife/data.py new file mode 100644 index 0000000..6f822c6 --- /dev/null +++ b/relife/data.py @@ -0,0 +1,318 @@ +"""Dataclasses for survival analysis and renewal processes outputs.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from dataclasses import dataclass, astuple +from typing import Tuple, NamedTuple +import numpy as np + +from .utils import args_size, args_take + + +@dataclass +class LifetimeData: + """Lifetime data. + + Dataclass of lifetime data required by the maximum likelihood estimation. + """ + + time: np.ndarray #: Age of the assets. + event: np.ndarray = None #: Type of event, by default None. + entry: np.ndarray = None #: Age of assets at the beginning of the observation period (left truncation), by default None. + args: Tuple[np.ndarray] = () #: Extra arguments required by the lifetime model. + + def __post_init__(self) -> None: + self._parse_data() + self._format_data() + self.size = self.time.size + + def _parse_data(self) -> None: + """Parse lifetime data and check values. + + Notes + ----- + Default value for `event` is 1 (no censoring), default value for `entry` is + 0 (no truncation). + """ + if self.event is None: + self.event = np.ones_like(self.time, int) + if self.entry is None: + self.entry = np.zeros_like(self.time, float) + if np.any(self.time <= 0): + raise ValueError("time values must be strictly positive") + if not np.all(np.isin(self.event, [0, 1, 2])): + raise ValueError("event values must be in [0,1,2]") + if np.any(self.entry < 0): + raise ValueError("entry values must be positive") + if np.any(self.time <= self.entry): + raise ValueError("entry must be strictly lower than the time to event") + s = args_size(*self.args) + if s > 0 and s != np.size(self.time): + raise ValueError( + "dimension mismatch for optional args: expected {} got {}".format( + np.size(self.time), s + ) + ) + + class DataByEvent(NamedTuple): + """Group data by type of event.""" + + D: np.ndarray #: observed event. + D_RC: np.ndarray #: union of observed events and right-censored data. + LC: np.ndarray #: left-censored data. + LT: np.ndarray #: left-truncated data. + + def _format_data(self) -> None: + """Format data according to DataByEvent categories. + + Notes + ----- + Used in negative log-likelihood calculation in parametric.py. + """ + # Event Observed, Event Observed + Right Censoring, Left Censoring, Left Truncation + D, D_RC, LC, LT = map( + np.nonzero, + [ + self.event == 1, + (self.event == 1) + (self.event == 0), + self.event == 2, + self.entry > 0, + ], + ) + self._time = self.DataByEvent( + *[self.time[ind].reshape(-1, 1) for ind in [D, D_RC, LC]], + self.entry[LT].reshape(-1, 1), + ) + self._args = self.DataByEvent( + *[args_take(ind[0], *self.args) for ind in [D, D_RC, LC, LT]] + ) + + def __getitem__(self, key): + return LifetimeData( + self.time[key], self.event[key], self.entry[key], args_take(key, *self.args) + ) + + def astuple(self) -> Tuple[np.ndarray, ...]: + """Converts the dataclass attributes as a tuple. + + Returns + ------- + Tuple[ndarray] + The attributes of the class as the tuple + `(time, event, entry, *args)`. + """ + return self.time, self.event, self.entry, *self.args + + +@dataclass +class CountData: + """Counting process data.""" + + T: float #: Time at the end of the observation. + n_indices: int #: Number of initial assets. + n_samples: int #: Numbers of samples. + indices: np.ndarray #: Indices of assets. + samples: np.ndarray #: Indices of samples. + times: np.ndarray #: Times of observed events. + + @property + def size(self) -> int: + """The number of indices. + + Returns + ------- + int + Size of indices array. + """ + return self.indices.size + + def number_of_events(self, sample: int) -> Tuple[np.ndarray, np.ndarray]: + """Counts the number of events with respect to times. + + Parameters + ---------- + sample : int + Index of the sample. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and total number of events as a tuple `(times, counts)`. + """ + ind = (self.samples == sample) & (self.times <= self.T) + times = np.insert(np.sort(self.times[ind]), 0, 0) + counts = np.arange(times.size) + return times, counts + + def mean_number_of_events(self) -> Tuple[np.ndarray, np.ndarray]: + """Mean number of events with respect to time. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and mean number of events as a tuple `(times, counts)`. + """ + ind = self.times <= self.T + times = np.insert(np.sort(self.times[ind]), 0, 0) + counts = np.arange(times.size) / self.n_samples + return times, counts + + def astuple(self) -> tuple: + """Converts the dataclass attributes as a tuple.""" + return astuple(self) + + +@dataclass +class RenewalData(CountData): + """Renewal process data. + + Notes + ----- + Inherit from CountData and add a `durations` attribute. + """ + + durations: np.ndarray #: Time between events. + + +@dataclass +class RenewalRewardData(RenewalData): + """Renewal reward process data. + + Notes + ----- + Inherit from RenewalData and add a `rewards` attribute. + """ + + rewards: np.ndarray #: Reward associated at each event. + + def total_reward(self, sample: int) -> Tuple[np.ndarray, np.ndarray]: + """Total reward with respect to time. + + Parameters + ---------- + sample : int + Index of the sample. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and total rewards as a tuple `(times, z)`. + """ + ind = (self.samples == sample) & (self.times <= self.T) + s = np.argsort(self.times[ind]) + times = np.insert(self.times[ind][s], 0, 0) + z = np.insert(self.rewards[ind][s].cumsum(), 0, 0) + return times, z + + def mean_total_reward(self) -> Tuple[np.ndarray, np.ndarray]: + """Mean total reward with respect to time. + + Returns + ------- + Tuple[ndarray, ndarray] + The ordered times and mean total rewards as a tuple `(times, z)`. + """ + ind = self.times <= self.T + s = np.argsort(self.times[ind]) + times = np.insert(self.times[ind][s], 0, 0) + z = np.insert(self.rewards[ind][s].cumsum(), 0, 0) / self.n_samples + return times, z + + +@dataclass +class ReplacementPolicyData(RenewalRewardData): + """Replacement policy data.""" + + events: np.ndarray #: Event types. + args: np.ndarray #: Extra arguments required by the lifetime model. + a0: np.ndarray #: Age of the assets at the first replacement. + + def to_lifetime_data( + self, t0: float = 0, tf: float = None, sample: int = None + ) -> LifetimeData: + """Builds a lifetime data sample. + + Parameters + ---------- + t0 : float, optional + Start of the observation period, by default 0. + tf : float, optional + End of the observation period, by default the time at the end of the + observation. + sample : int, optional + Index of the sample, by default all sample are mixed. + + Returns + ------- + LifetimeData + The lifetime data sample built from the observation period `[t0,tf]` + of the renewal process. + + Raises + ------ + ValueError + if `t0` is greater than `tf`. + """ + if tf is None or tf > self.T: + tf = self.T + if t0 >= tf: + raise ValueError("`t0` must be strictly lesser than `tf`") + + # Filtering sample and sorting by times + s = self.samples == sample if sample is not None else Ellipsis + order = np.argsort(self.times[s]) + indices = self.indices[s][order] + samples = self.samples[s][order] + uindices = np.ravel_multi_index( + (indices, samples), (self.n_indices, self.n_samples) + ) + times = self.times[s][order] + durations = self.durations[s][order] + self.a0[s][order] + events = self.events[s][order] + + # Indices of interest + ind0 = (times > t0) & ( + times <= tf + ) # Indices of replacement occuring inside the obervation window + ind1 = ( + times > tf + ) # Indices of replacement occuring after the observation window which include right censoring + + # Replacements occuring inside the observation window + time0 = durations[ind0] + event0 = events[ind0] + entry0 = np.zeros(time0.size) + _, LT = np.unique( + uindices[ind0], return_index=True + ) # get the indices of the first replacements ocurring in the observation window + b0 = ( + times[ind0][LT] - durations[ind0][LT] + ) # time at birth for the firt replacements + entry0[LT] = np.where(b0 >= t0, 0, t0 - b0) + args0 = args_take(indices[ind0], *self.args) + + # Right censoring + _, RC = np.unique(uindices[ind1], return_index=True) + bf = ( + times[ind1][RC] - durations[ind1][RC] + ) # time at birth for the right censored + b1 = bf[ + bf < tf + ] # ensure that time of birth for the right censored is not equal to tf. + time1 = tf - b1 + event1 = np.zeros(b1.size) + entry1 = np.where(b1 >= t0, 0, t0 - b1) + args1 = args_take(indices[ind1][RC][bf < tf], *self.args) + + # Concatenate + time = np.concatenate((time0, time1)) + event = np.concatenate((event0, event1)) + entry = np.concatenate((entry0, entry1)) + args = tuple( + np.concatenate((arg0, arg1), axis=0) for arg0, arg1 in zip(args0, args1) + ) + return LifetimeData(time, event, entry, args) diff --git a/relife/datasets.py b/relife/datasets.py new file mode 100644 index 0000000..e39b574 --- /dev/null +++ b/relife/datasets.py @@ -0,0 +1,107 @@ +"""Lifetime datasets to load.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +from pathlib import Path + +from .data import LifetimeData + + +DATA_PATH = Path(__file__).parent / "datasets" + + +def load_power_transformer() -> LifetimeData: + """Load and return the power transformer lifetime data. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the power transformers in years at the beginning of the + observation period. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + from relife.datasets import load_power_transformer + time, event, entry = load_power_transformer().astuple() + """ + data = np.loadtxt( + DATA_PATH / "power_transformer.csv", delimiter=",", skiprows=1, unpack=True + ) + return LifetimeData(*data) + + +def load_circuit_breaker() -> LifetimeData: + """Load and return the circuit breaker lifetime data. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the circuit breakers in years at the beginning of the + observation period. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + from relife.datasets import load_circuit_breaker + time, event, entry = load_circuit_breaker().astuple() + """ + data = np.loadtxt( + DATA_PATH / "circuit_breaker.csv", delimiter=",", skiprows=1, unpack=True + ) + return LifetimeData(*data) + + +def load_insulator_string() -> LifetimeData: + """Load and return the insulator string lifetime data for regression. + + The data were simulated from a real estimate: + + - `time`: time-to-event or durations in years, + - `event`: if a failure occurs during the observation period, + - `entry`: age of the circuit breakers in years at the beginning of the + observation period, + - `args`: tuple of covariates related to the atmospheric polluants. + + Returns + ------- + LifetimeData + The lifetime data as a dataclass instance. + + Examples + -------- + + .. code-block:: + + import numpy as np + from scipy.stats import boxcox, zscore + from relife.datasets import load_circuit_breaker + time, event, entry, *args = load_insulator_string().astuple() + covar = zscore(np.column_stack([boxcox(col)[0] for col in args[0].T])) + """ + time, event, entry, *args = np.loadtxt( + DATA_PATH / "insulator_string.csv", delimiter=",", skiprows=1, unpack=True + ) + covar = np.column_stack(args) + return LifetimeData(time, event, entry, (covar,)) diff --git a/relife/datasets/circuit_breaker.csv b/relife/datasets/circuit_breaker.csv new file mode 100644 index 0000000..e388d0e --- /dev/null +++ b/relife/datasets/circuit_breaker.csv @@ -0,0 +1,4205 @@ +time,event,entry +34,1,33 +28,1,27 +12,1,11 +38,1,37 +18,1,17 +32,1,31 +44,1,43 +49,1,48 +27,1,26 +47,1,46 +44,1,43 +70,1,69 +40,1,38 +37,1,35 +26,1,24 +26,1,24 +40,1,38 +33,1,31 +49,1,47 +25,1,23 +43,1,41 +18,1,16 +38,1,36 +16,1,14 +32,1,30 +24,1,22 +20,1,18 +28,1,26 +39,1,37 +45,1,43 +37,1,35 +34,1,32 +47,1,45 +72,1,69 +39,1,36 +39,1,36 +34,1,31 +37,1,34 +31,1,28 +55,1,52 +33,1,30 +53,1,50 +34,1,31 +32,1,29 +28,1,25 +38,1,35 +29,1,26 +52,1,49 +45,1,42 +32,1,29 +35,1,32 +36,1,33 +47,1,44 +39,1,35 +37,1,33 +30,1,26 +23,1,19 +58,1,54 +41,1,37 +25,1,21 +30,1,26 +41,1,37 +44,1,40 +53,1,49 +42,1,38 +36,1,32 +34,1,30 +39,1,35 +47,1,43 +34,1,30 +43,1,38 +32,1,27 +44,1,39 +29,1,24 +34,1,29 +41,1,36 +36,1,31 +24,1,19 +71,1,66 +33,1,28 +48,1,43 +39,1,34 +24,1,19 +42,1,37 +55,1,50 +45,1,40 +42,1,37 +33,1,28 +43,1,38 +41,1,36 +28,1,23 +44,1,38 +39,1,33 +15,1,9 +43,1,37 +48,1,42 +46,1,40 +44,1,38 +21,1,15 +37,1,31 +51,1,45 +38,1,32 +29,1,23 +43,1,37 +42,1,36 +34,1,28 +41,1,34 +56,1,49 +31,1,24 +34,1,27 +28,1,21 +57,1,50 +39,1,32 +36,1,29 +32,1,25 +44,1,37 +44,1,37 +50,1,43 +43,1,36 +22,1,15 +37,1,30 +57,1,49 +45,1,37 +39,1,31 +39,1,31 +43,1,35 +50,1,42 +43,1,35 +43,1,35 +46,1,38 +45,1,37 +36,1,28 +34,1,26 +36,1,28 +49,1,41 +17,1,9 +35,1,27 +41,1,33 +38,1,30 +20,1,12 +44,1,36 +35,1,27 +41,1,33 +51,1,43 +67,1,58 +43,1,34 +47,1,38 +48,1,39 +34,1,25 +44,1,35 +32,1,23 +46,1,37 +30,1,21 +26,1,17 +41,1,32 +46,1,37 +41,1,32 +55,1,46 +75,1,66 +40,1,31 +47,1,38 +32,1,23 +45,1,36 +32,1,23 +39,1,30 +47,1,38 +48,1,39 +35,1,26 +41,1,32 +41,1,32 +58,1,49 +33,1,24 +45,1,36 +56,1,47 +43,1,34 +49,1,40 +37,1,28 +56,1,47 +36,1,27 +42,1,33 +52,1,43 +47,1,38 +37,1,28 +32,1,23 +53,1,43 +59,1,49 +40,1,30 +50,1,40 +42,1,32 +50,1,40 +38,1,28 +43,1,33 +44,1,34 +46,1,36 +48,1,38 +47,1,37 +37,1,27 +53,1,43 +40,1,30 +33,1,23 +45,1,35 +63,1,53 +48,1,38 +48,1,38 +56,0,45 +56,0,45 +21,0,10 +21,0,10 +21,0,10 +40,0,29 +40,0,29 +40,0,29 +54,0,43 +54,0,43 +20,0,9 +20,0,9 +20,0,9 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +52,0,41 +52,0,41 +52,0,41 +52,0,41 +52,0,41 +19,0,8 +51,0,40 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +29,0,18 +29,0,18 +29,0,18 +33,0,22 +33,0,22 +33,0,22 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +30,0,19 +30,0,19 +30,0,19 +42,0,31 +42,0,31 +42,0,31 +32,0,21 +32,0,21 +32,0,21 +6,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +33,0,22 +33,0,22 +33,0,22 +20,0,9 +20,0,9 +20,0,9 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +20,0,9 +20,0,9 +20,0,9 +1,0,0 +51,0,40 +51,0,40 +49,0,38 +49,0,38 +20,0,9 +49,0,38 +49,0,38 +20,0,9 +20,0,9 +20,0,9 +42,0,31 +8,0,0 +42,0,31 +20,0,9 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +8,0,0 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +2,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +29,0,18 +29,0,18 +29,0,18 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +34,0,23 +34,0,23 +34,0,23 +30,0,19 +30,0,19 +30,0,19 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +30,0,19 +30,0,19 +7,0,0 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +46,0,35 +46,0,35 +46,0,35 +5,0,0 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +23,0,12 +23,0,12 +23,0,12 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +6,0,0 +40,0,29 +32,0,21 +32,0,21 +32,0,21 +34,0,23 +34,0,23 +34,0,23 +6,0,0 +30,0,19 +30,0,19 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +42,0,31 +42,0,31 +42,0,31 +50,0,39 +50,0,39 +50,0,39 +9,0,0 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +47,0,36 +42,0,31 +3,0,0 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +31,0,20 +31,0,20 +31,0,20 +2,0,0 +10,0,0 +28,0,17 +51,0,40 +51,0,40 +51,0,40 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +21,0,10 +21,0,10 +21,0,10 +20,0,9 +20,0,9 +20,0,9 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +47,0,36 +47,0,36 +47,0,36 +53,0,42 +53,0,42 +53,0,42 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +39,0,28 +39,0,28 +6,0,0 +38,0,27 +38,0,27 +38,0,27 +35,0,24 +35,0,24 +29,0,18 +29,0,18 +29,0,18 +33,0,22 +33,0,22 +33,0,22 +29,0,18 +29,0,18 +29,0,18 +30,0,19 +30,0,19 +30,0,19 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +23,0,12 +3,0,0 +23,0,12 +54,0,43 +28,0,17 +28,0,17 +28,0,17 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +37,0,26 +37,0,26 +37,0,26 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +4,0,0 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +43,0,32 +43,0,32 +33,0,22 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +33,0,22 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +38,0,27 +38,0,27 +38,0,27 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +6,0,0 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +5,0,0 +4,0,0 +35,0,24 +35,0,24 +35,0,24 +45,0,34 +45,0,34 +45,0,34 +44,0,33 +44,0,33 +44,0,33 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +28,0,17 +28,0,17 +28,0,17 +24,0,13 +45,0,34 +24,0,13 +45,0,34 +45,0,34 +45,0,34 +39,0,28 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +35,0,24 +34,0,23 +2,0,0 +35,0,24 +35,0,24 +35,0,24 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +3,0,0 +20,0,9 +20,0,9 +20,0,9 +5,0,0 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +35,0,24 +35,0,24 +35,0,24 +43,0,32 +43,0,32 +40,0,29 +43,0,32 +35,0,24 +35,0,24 +4,0,0 +35,0,24 +35,0,24 +35,0,24 +48,0,37 +48,0,37 +3,0,0 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +7,0,0 +46,0,35 +51,0,40 +6,0,0 +51,0,40 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +31,0,20 +31,0,20 +31,0,20 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +49,0,38 +49,0,38 +49,0,38 +1,0,0 +60,0,49 +49,0,38 +49,0,38 +49,0,38 +61,0,50 +4,0,0 +61,0,50 +6,0,0 +52,0,41 +52,0,41 +52,0,41 +61,0,50 +61,0,50 +61,0,50 +47,0,36 +47,0,36 +1,0,0 +47,0,36 +3,0,0 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +49,0,38 +2,0,0 +49,0,38 +49,0,38 +49,0,38 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +7,0,0 +49,0,38 +5,0,0 +49,0,38 +49,0,38 +1,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +54,0,43 +54,0,43 +54,0,43 +7,0,0 +54,0,43 +54,0,43 +48,0,37 +48,0,37 +48,0,37 +3,0,0 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +28,0,17 +28,0,17 +28,0,17 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +28,0,17 +28,0,17 +28,0,17 +37,0,26 +37,0,26 +37,0,26 +32,0,21 +32,0,21 +32,0,21 +53,0,42 +53,0,42 +48,0,37 +54,0,43 +54,0,43 +54,0,43 +46,0,35 +46,0,35 +46,0,35 +43,0,32 +43,0,32 +43,0,32 +49,0,38 +6,0,0 +49,0,38 +50,0,39 +50,0,39 +50,0,39 +3,0,0 +52,0,41 +52,0,41 +46,0,35 +46,0,35 +46,0,35 +32,0,21 +32,0,21 +32,0,21 +27,0,16 +27,0,16 +27,0,16 +50,0,39 +50,0,39 +50,0,39 +27,0,16 +27,0,16 +27,0,16 +32,0,21 +32,0,21 +32,0,21 +9,0,0 +56,0,45 +56,0,45 +48,0,37 +48,0,37 +47,0,36 +47,0,36 +47,0,36 +49,0,38 +2,0,0 +49,0,38 +50,0,39 +50,0,39 +50,0,39 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +63,0,52 +63,0,52 +63,0,52 +49,0,38 +49,0,38 +49,0,38 +2,0,0 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +46,0,35 +41,0,30 +41,0,30 +41,0,30 +32,0,21 +32,0,21 +32,0,21 +38,0,27 +10,0,0 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +56,0,45 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +77,0,66 +2,0,0 +6,0,0 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +7,0,0 +51,0,40 +51,0,40 +51,0,40 +7,0,0 +51,0,40 +51,0,40 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +2,0,0 +49,0,38 +21,0,10 +21,0,10 +21,0,10 +43,0,32 +43,0,32 +5,0,0 +21,0,10 +21,0,10 +21,0,10 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +63,0,52 +8,0,0 +63,0,52 +60,0,49 +3,0,0 +60,0,49 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +21,0,10 +21,0,10 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +26,0,15 +26,0,15 +4,0,0 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +24,0,13 +24,0,13 +24,0,13 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +20,0,9 +47,0,36 +47,0,36 +47,0,36 +19,0,8 +19,0,8 +19,0,8 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +51,0,40 +2,0,0 +51,0,40 +50,0,39 +30,0,19 +7,0,0 +32,0,21 +32,0,21 +60,0,49 +60,0,49 +8,0,0 +60,0,49 +60,0,49 +60,0,49 +60,0,49 +4,0,0 +60,0,49 +48,0,37 +47,0,36 +47,0,36 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +5,0,0 +26,0,15 +26,0,15 +10,0,0 +80,0,69 +8,0,0 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +33,0,22 +33,0,22 +33,0,22 +20,0,9 +20,0,9 +20,0,9 +64,0,53 +64,0,53 +1,0,0 +59,0,48 +59,0,48 +59,0,48 +65,0,54 +65,0,54 +7,0,0 +58,0,47 +58,0,47 +58,0,47 +47,0,36 +47,0,36 +47,0,36 +28,0,17 +28,0,17 +28,0,17 +37,0,26 +37,0,26 +37,0,26 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +31,0,20 +31,0,20 +31,0,20 +54,0,43 +10,0,0 +54,0,43 +53,0,42 +53,0,42 +8,0,0 +48,0,37 +48,0,37 +48,0,37 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +6,0,0 +45,0,34 +45,0,34 +20,0,9 +20,0,9 +20,0,9 +1,0,0 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +36,0,25 +4,0,0 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +32,0,21 +4,0,0 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +2,0,0 +43,0,32 +43,0,32 +32,0,21 +32,0,21 +32,0,21 +33,0,22 +33,0,22 +33,0,22 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +23,0,12 +40,0,29 +40,0,29 +4,0,0 +38,0,27 +38,0,27 +38,0,27 +40,0,29 +40,0,29 +40,0,29 +23,0,12 +23,0,12 +23,0,12 +50,0,39 +50,0,39 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +39,0,28 +39,0,28 +39,0,28 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +37,0,26 +37,0,26 +7,0,0 +38,0,27 +38,0,27 +38,0,27 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +45,0,34 +45,0,34 +1,0,0 +35,0,24 +35,0,24 +35,0,24 +39,0,28 +39,0,28 +39,0,28 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +20,0,9 +20,0,9 +20,0,9 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +27,0,16 +27,0,16 +27,0,16 +36,0,25 +36,0,25 +36,0,25 +32,0,21 +32,0,21 +32,0,21 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +33,0,22 +33,0,22 +33,0,22 +53,0,42 +5,0,0 +53,0,42 +53,0,42 +53,0,42 +53,0,42 +20,0,9 +37,0,26 +37,0,26 +37,0,26 +33,0,22 +33,0,22 +33,0,22 +28,0,17 +28,0,17 +28,0,17 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +19,0,8 +19,0,8 +19,0,8 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +51,0,40 +51,0,40 +51,0,40 +31,0,20 +31,0,20 +31,0,20 +55,0,44 +55,0,44 +55,0,44 +38,0,27 +39,0,28 +39,0,28 +47,0,36 +47,0,36 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +3,0,0 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +7,0,0 +50,0,39 +50,0,39 +50,0,39 +35,0,24 +35,0,24 +35,0,24 +40,0,29 +40,0,29 +44,0,33 +44,0,33 +44,0,33 +23,0,12 +23,0,12 +23,0,12 +24,0,13 +24,0,13 +24,0,13 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +19,0,8 +19,0,8 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +24,0,13 +24,0,13 +24,0,13 +45,0,34 +45,0,34 +45,0,34 +35,0,24 +35,0,24 +35,0,24 +37,0,26 +37,0,26 +37,0,26 +41,0,30 +41,0,30 +41,0,30 +59,0,48 +59,0,48 +59,0,48 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +51,0,40 +51,0,40 +51,0,40 +47,0,36 +47,0,36 +47,0,36 +38,0,27 +38,0,27 +4,0,0 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +47,0,36 +47,0,36 +33,0,22 +33,0,22 +33,0,22 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +8,0,0 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +2,0,0 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +29,0,18 +29,0,18 +29,0,18 +69,0,58 +69,0,58 +2,0,0 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +9,0,0 +34,0,23 +34,0,23 +31,0,20 +31,0,20 +31,0,20 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +30,0,19 +30,0,19 +30,0,19 +29,0,18 +29,0,18 +29,0,18 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +47,0,36 +3,0,0 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +2,0,0 +46,0,35 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +45,0,34 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +57,0,46 +37,0,26 +37,0,26 +37,0,26 +27,0,16 +27,0,16 +27,0,16 +29,0,18 +29,0,18 +29,0,18 +43,0,32 +43,0,32 +43,0,32 +30,0,19 +30,0,19 +6,0,0 +31,0,20 +31,0,20 +51,0,40 +53,0,42 +3,0,0 +53,0,42 +63,0,52 +63,0,52 +63,0,52 +63,0,52 +63,0,52 +56,0,45 +5,0,0 +56,0,45 +58,0,47 +58,0,47 +58,0,47 +57,0,46 +57,0,46 +57,0,46 +34,0,23 +1,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +42,0,31 +26,0,15 +26,0,15 +26,0,15 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +1,0,0 +43,0,32 +43,0,32 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +9,0,0 +47,0,36 +47,0,36 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +40,0,29 +40,0,29 +40,0,29 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +8,0,0 +46,0,35 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +30,0,19 +30,0,19 +30,0,19 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +41,0,30 +8,0,0 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +7,0,0 +41,0,30 +41,0,30 +50,0,39 +50,0,39 +50,0,39 +37,0,26 +37,0,26 +37,0,26 +47,0,36 +47,0,36 +47,0,36 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +46,0,35 +46,0,35 +50,0,39 +50,0,39 +50,0,39 +59,0,48 +59,0,48 +59,0,48 +34,0,23 +34,0,23 +34,0,23 +57,0,46 +2,0,0 +57,0,46 +49,0,38 +49,0,38 +49,0,38 +41,0,30 +41,0,30 +41,0,30 +47,0,36 +47,0,36 +1,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +34,0,23 +34,0,23 +34,0,23 +58,0,47 +58,0,47 +58,0,47 +49,0,38 +1,0,0 +49,0,38 +28,0,17 +28,0,17 +28,0,17 +45,0,34 +45,0,34 +45,0,34 +42,0,31 +42,0,31 +42,0,31 +7,0,0 +48,0,37 +23,0,12 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +48,0,37 +48,0,37 +48,0,37 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +33,0,22 +33,0,22 +33,0,22 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +9,0,0 +33,0,22 +33,0,22 +47,0,36 +2,0,0 +47,0,36 +49,0,38 +49,0,38 +49,0,38 +25,0,14 +9,0,0 +25,0,14 +41,0,30 +41,0,30 +41,0,30 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +49,0,38 +49,0,38 +49,0,38 +46,0,35 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +23,0,12 +23,0,12 +23,0,12 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +48,0,37 +48,0,37 +48,0,37 +44,0,33 +10,0,0 +3,0,0 +38,0,27 +38,0,27 +38,0,27 +42,0,31 +42,0,31 +42,0,31 +44,0,33 +44,0,33 +4,0,0 +6,0,0 +48,0,37 +42,0,31 +42,0,31 +42,0,31 +38,0,27 +38,0,27 +38,0,27 +44,0,33 +44,0,33 +44,0,33 +39,0,28 +39,0,28 +39,0,28 +50,0,39 +50,0,39 +50,0,39 +24,0,13 +24,0,13 +24,0,13 +47,0,36 +47,0,36 +47,0,36 +46,0,35 +46,0,35 +46,0,35 +61,0,50 +8,0,0 +61,0,50 +24,0,13 +24,0,13 +24,0,13 +43,0,32 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +7,0,0 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +47,0,36 +47,0,36 +47,0,36 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +47,0,36 +47,0,36 +47,0,36 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +47,0,36 +47,0,36 +8,0,0 +46,0,35 +46,0,35 +46,0,35 +38,0,27 +38,0,27 +3,0,0 +46,0,35 +46,0,35 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +50,0,39 +50,0,39 +50,0,39 +50,0,39 +6,0,0 +50,0,39 +50,0,39 +50,0,39 +50,0,39 +46,0,35 +46,0,35 +46,0,35 +44,0,33 +44,0,33 +44,0,33 +2,0,0 +9,0,0 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +45,0,34 +2,0,0 +45,0,34 +46,0,35 +9,0,0 +46,0,35 +33,0,22 +33,0,22 +33,0,22 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +3,0,0 +39,0,28 +2,0,0 +49,0,38 +49,0,38 +6,0,0 +52,0,41 +52,0,41 +52,0,41 +30,0,19 +30,0,19 +30,0,19 +48,0,37 +50,0,39 +50,0,39 +50,0,39 +53,0,42 +55,0,44 +42,0,31 +42,0,31 +2,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +44,0,33 +44,0,33 +44,0,33 +39,0,28 +6,0,0 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +23,0,12 +23,0,12 +23,0,12 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +25,0,14 +25,0,14 +25,0,14 +30,0,19 +30,0,19 +30,0,19 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +30,0,19 +30,0,19 +30,0,19 +40,0,29 +40,0,29 +40,0,29 +8,0,0 +40,0,29 +40,0,29 +39,0,28 +5,0,0 +39,0,28 +42,0,31 +42,0,31 +42,0,31 +44,0,33 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +42,0,31 +42,0,31 +42,0,31 +36,0,25 +36,0,25 +36,0,25 +2,0,0 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +9,0,0 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +5,0,0 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +33,0,22 +33,0,22 +33,0,22 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +9,0,0 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +35,0,24 +35,0,24 +35,0,24 +48,0,37 +48,0,37 +48,0,37 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +54,0,43 +10,0,0 +54,0,43 +55,0,44 +55,0,44 +55,0,44 +48,0,37 +48,0,37 +48,0,37 +58,0,47 +58,0,47 +58,0,47 +59,0,48 +59,0,48 +59,0,48 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +3,0,0 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +38,0,27 +38,0,27 +38,0,27 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +2,0,0 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +26,0,15 +26,0,15 +26,0,15 +27,0,16 +27,0,16 +27,0,16 +9,0,0 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +24,0,13 +24,0,13 +24,0,13 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +22,0,11 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +24,0,13 +37,0,26 +37,0,26 +37,0,26 +22,0,11 +22,0,11 +22,0,11 +36,0,25 +36,0,25 +36,0,25 +45,0,34 +45,0,34 +45,0,34 +22,0,11 +22,0,11 +10,0,0 +33,0,22 +33,0,22 +33,0,22 +49,0,38 +49,0,38 +49,0,38 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +5,0,0 +49,0,38 +49,0,38 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +41,0,30 +41,0,30 +41,0,30 +36,0,25 +36,0,25 +36,0,25 +49,0,38 +49,0,38 +49,0,38 +8,0,0 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +9,0,0 +51,0,40 +51,0,40 +1,0,0 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +48,0,37 +48,0,37 +48,0,37 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +8,0,0 +36,0,25 +36,0,25 +36,0,25 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +50,0,39 +50,0,39 +50,0,39 +27,0,16 +27,0,16 +27,0,16 +34,0,23 +34,0,23 +34,0,23 +2,0,0 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +7,0,0 +46,0,35 +46,0,35 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +30,0,19 +30,0,19 +30,0,19 +58,0,47 +58,0,47 +2,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +37,0,26 +37,0,26 +37,0,26 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +46,0,35 +46,0,35 +45,0,34 +45,0,34 +45,0,34 +34,0,23 +34,0,23 +2,0,0 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +3,0,0 +39,0,28 +39,0,28 +10,0,0 +59,0,48 +59,0,48 +49,0,38 +49,0,38 +49,0,38 +37,0,26 +37,0,26 +37,0,26 +27,0,16 +9,0,0 +27,0,16 +41,0,30 +41,0,30 +41,0,30 +35,0,24 +35,0,24 +35,0,24 +20,0,9 +20,0,9 +20,0,9 +48,0,37 +48,0,37 +48,0,37 +35,0,24 +35,0,24 +35,0,24 +2,0,0 +48,0,37 +48,0,37 +54,0,43 +54,0,43 +54,0,43 +21,0,10 +21,0,10 +21,0,10 +23,0,12 +23,0,12 +23,0,12 +34,0,23 +34,0,23 +34,0,23 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +4,0,0 +54,0,43 +54,0,43 +54,0,43 +6,0,0 +1,0,0 +21,0,10 +21,0,10 +21,0,10 +23,0,12 +23,0,12 +23,0,12 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +3,0,0 +39,0,28 +39,0,28 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +20,0,9 +20,0,9 +20,0,9 +39,0,28 +39,0,28 +39,0,28 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +21,0,10 +21,0,10 +21,0,10 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +21,0,10 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +1,0,0 +39,0,28 +39,0,28 +47,0,36 +8,0,0 +6,0,0 +47,0,36 +47,0,36 +47,0,36 +43,0,32 +43,0,32 +43,0,32 +45,0,34 +4,0,0 +45,0,34 +47,0,36 +47,0,36 +47,0,36 +39,0,28 +39,0,28 +39,0,28 +28,0,17 +28,0,17 +28,0,17 +49,0,38 +49,0,38 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +43,0,32 +43,0,32 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +55,0,44 +55,0,44 +55,0,44 +39,0,28 +39,0,28 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +39,0,28 +2,0,0 +58,0,47 +9,0,0 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +56,0,45 +56,0,45 +56,0,45 +36,0,25 +35,0,24 +35,0,24 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +38,0,27 +38,0,27 +37,0,26 +37,0,26 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +38,0,27 +33,0,22 +33,0,22 +33,0,22 +9,0,0 +43,0,32 +43,0,32 +55,0,44 +55,0,44 +8,0,0 +58,0,47 +58,0,47 +58,0,47 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +51,0,40 +5,0,0 +48,0,37 +47,0,36 +31,0,20 +31,0,20 +31,0,20 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +33,0,22 +32,0,21 +32,0,21 +32,0,21 +38,0,27 +38,0,27 +38,0,27 +43,0,32 +43,0,32 +43,0,32 +27,0,16 +27,0,16 +27,0,16 +54,0,43 +54,0,43 +54,0,43 +47,0,36 +47,0,36 +47,0,36 +20,0,9 +20,0,9 +20,0,9 +40,0,29 +40,0,29 +40,0,29 +21,0,10 +21,0,10 +21,0,10 +1,0,0 +54,0,43 +54,0,43 +22,0,11 +22,0,11 +22,0,11 +46,0,35 +46,0,35 +46,0,35 +52,0,41 +52,0,41 +52,0,41 +32,0,21 +32,0,21 +32,0,21 +52,0,41 +52,0,41 +9,0,0 +49,0,38 +49,0,38 +7,0,0 +48,0,37 +9,0,0 +48,0,37 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +49,0,38 +3,0,0 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +9,0,0 +48,0,37 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +3,0,0 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +32,0,21 +32,0,21 +32,0,21 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +48,0,37 +40,0,29 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +40,0,29 +40,0,29 +40,0,29 +32,0,21 +32,0,21 +32,0,21 +49,0,38 +2,0,0 +49,0,38 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +9,0,0 +49,0,38 +40,0,29 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +1,0,0 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +8,0,0 +30,0,19 +30,0,19 +30,0,19 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +26,0,15 +26,0,15 +26,0,15 +35,0,24 +35,0,24 +35,0,24 +41,0,30 +41,0,30 +41,0,30 +40,0,29 +40,0,29 +40,0,29 +26,0,15 +26,0,15 +26,0,15 +36,0,25 +36,0,25 +36,0,25 +26,0,15 +26,0,15 +26,0,15 +30,0,19 +30,0,19 +30,0,19 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +2,0,0 +50,0,39 +50,0,39 +37,0,26 +9,0,0 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +41,0,30 +41,0,30 +41,0,30 +37,0,26 +37,0,26 +37,0,26 +31,0,20 +31,0,20 +31,0,20 +37,0,26 +37,0,26 +37,0,26 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +31,0,20 +31,0,20 +31,0,20 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +39,0,28 +39,0,28 +39,0,28 +10,0,0 +48,0,37 +48,0,37 +45,0,34 +45,0,34 +45,0,34 +4,0,0 +48,0,37 +48,0,37 +38,0,27 +38,0,27 +38,0,27 +39,0,28 +39,0,28 +39,0,28 +25,0,14 +25,0,14 +25,0,14 +35,0,24 +35,0,24 +35,0,24 +52,0,41 +45,0,34 +45,0,34 +45,0,34 +34,0,23 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +36,0,25 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +36,0,25 +36,0,25 +36,0,25 +2,0,0 +36,0,25 +36,0,25 +31,0,20 +31,0,20 +31,0,20 +32,0,21 +32,0,21 +32,0,21 +36,0,25 +36,0,25 +36,0,25 +49,0,38 +49,0,38 +49,0,38 +48,0,37 +48,0,37 +2,0,0 +48,0,37 +48,0,37 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +39,0,28 +39,0,28 +45,0,34 +45,0,34 +45,0,34 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +48,0,37 +5,0,0 +48,0,37 +43,0,32 +43,0,32 +43,0,32 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +27,0,16 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +28,0,17 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +20,0,9 +34,0,23 +34,0,23 +34,0,23 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +42,0,31 +34,0,23 +34,0,23 +34,0,23 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +6,0,0 +40,0,29 +40,0,29 +40,0,29 +34,0,23 +34,0,23 +34,0,23 +44,0,33 +44,0,33 +44,0,33 +27,0,16 +27,0,16 +27,0,16 +44,0,33 +44,0,33 +44,0,33 +34,0,23 +34,0,23 +34,0,23 +48,0,37 +48,0,37 +48,0,37 +44,0,33 +44,0,33 +44,0,33 +50,0,39 +50,0,39 +50,0,39 +42,0,31 +41,0,30 +42,0,31 +50,0,39 +50,0,39 +50,0,39 +1,0,0 +41,0,30 +41,0,30 +50,0,39 +50,0,39 +50,0,39 +2,0,0 +50,0,39 +50,0,39 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +1,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +7,0,0 +25,0,14 +25,0,14 +25,0,14 +41,0,30 +41,0,30 +41,0,30 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +2,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +37,0,26 +37,0,26 +37,0,26 +34,0,23 +34,0,23 +34,0,23 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +49,0,38 +42,0,31 +43,0,32 +43,0,32 +45,0,34 +45,0,34 +45,0,34 +37,0,26 +37,0,26 +37,0,26 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +2,0,0 +43,0,32 +43,0,32 +43,0,32 +54,0,43 +54,0,43 +54,0,43 +60,0,49 +2,0,0 +60,0,49 +51,0,40 +51,0,40 +51,0,40 +44,0,33 +44,0,33 +44,0,33 +60,0,49 +60,0,49 +60,0,49 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +44,0,33 +19,0,8 +7,0,0 +44,0,33 +19,0,8 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +30,0,19 +6,0,0 +48,0,37 +48,0,37 +46,0,35 +46,0,35 +46,0,35 +40,0,29 +40,0,29 +40,0,29 +30,0,19 +30,0,19 +30,0,19 +40,0,29 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +51,0,40 +33,0,22 +33,0,22 +33,0,22 +45,0,34 +8,0,0 +45,0,34 +33,0,22 +33,0,22 +33,0,22 +32,0,21 +32,0,21 +32,0,21 +49,0,38 +49,0,38 +49,0,38 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +2,0,0 +34,0,23 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +38,0,27 +38,0,27 +38,0,27 +10,0,0 +57,0,46 +57,0,46 +42,0,31 +42,0,31 +42,0,31 +45,0,34 +45,0,34 +45,0,34 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +21,0,10 +38,0,27 +38,0,27 +38,0,27 +19,0,8 +19,0,8 +38,0,27 +38,0,27 +20,0,9 +21,0,10 +21,0,10 +21,0,10 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +44,0,33 +5,0,0 +44,0,33 +35,0,24 +35,0,24 +35,0,24 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +49,0,38 +49,0,38 +49,0,38 +35,0,24 +35,0,24 +35,0,24 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +34,0,23 +42,0,31 +42,0,31 +44,0,33 +44,0,33 +44,0,33 +28,0,17 +28,0,17 +28,0,17 +4,0,0 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +33,0,22 +33,0,22 +33,0,22 +30,0,19 +30,0,19 +30,0,19 +33,0,22 +33,0,22 +33,0,22 +42,0,31 +42,0,31 +20,0,9 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +20,0,9 +42,0,31 +8,0,0 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +42,0,31 +42,0,31 +42,0,31 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +43,0,32 +43,0,32 +43,0,32 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +42,0,31 +5,0,0 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +47,0,36 +2,0,0 +44,0,33 +44,0,33 +44,0,33 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +32,0,21 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +26,0,15 +31,0,20 +31,0,20 +31,0,20 +25,0,14 +25,0,14 +25,0,14 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +1,0,0 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +38,0,27 +25,0,14 +25,0,14 +25,0,14 +37,0,26 +37,0,26 +37,0,26 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +38,0,27 +38,0,27 +6,0,0 +37,0,26 +37,0,26 +3,0,0 +24,0,13 +24,0,13 +24,0,13 +54,0,43 +2,0,0 +3,0,0 +53,0,42 +53,0,42 +53,0,42 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +54,0,43 +51,0,40 +51,0,40 +51,0,40 +54,0,43 +54,0,43 +9,0,0 +43,0,32 +43,0,32 +43,0,32 +24,0,13 +24,0,13 +24,0,13 +42,0,31 +10,0,0 +42,0,31 +30,0,19 +30,0,19 +30,0,19 +50,0,39 +50,0,39 +50,0,39 +43,0,32 +43,0,32 +43,0,32 +50,0,39 +50,0,39 +50,0,39 +41,0,30 +41,0,30 +41,0,30 +48,0,37 +48,0,37 +48,0,37 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +49,0,38 +49,0,38 +49,0,38 +24,0,13 +24,0,13 +24,0,13 +25,0,14 +25,0,14 +25,0,14 +26,0,15 +26,0,15 +26,0,15 +28,0,17 +28,0,17 +28,0,17 +32,0,21 +32,0,21 +32,0,21 +44,0,33 +44,0,33 +8,0,0 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +36,0,25 +37,0,26 +37,0,26 +36,0,25 +36,0,25 +36,0,25 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +37,0,26 +10,0,0 +37,0,26 +37,0,26 +26,0,15 +26,0,15 +26,0,15 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +29,0,18 +42,0,31 +42,0,31 +42,0,31 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +20,0,9 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +40,0,29 +40,0,29 +40,0,29 +42,0,31 +42,0,31 +42,0,31 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +35,0,24 +6,0,0 +35,0,24 +2,0,0 +32,0,21 +32,0,21 +42,0,31 +42,0,31 +42,0,31 +1,0,0 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +46,0,35 +53,0,42 +53,0,42 +53,0,42 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +45,0,34 +35,0,24 +35,0,24 +35,0,24 +31,0,20 +31,0,20 +31,0,20 +32,0,21 +32,0,21 +32,0,21 +33,0,22 +33,0,22 +33,0,22 +36,0,25 +36,0,25 +36,0,25 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +31,0,20 +33,0,22 +33,0,22 +33,0,22 +31,0,20 +31,0,20 +31,0,20 +21,0,10 +39,0,28 +39,0,28 +39,0,28 +37,0,26 +37,0,26 +37,0,26 +40,0,29 +40,0,29 +43,0,32 +43,0,32 +43,0,32 +43,0,32 +39,0,28 +39,0,28 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +41,0,30 +39,0,28 +39,0,28 +39,0,28 +29,0,18 +29,0,18 +29,0,18 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +21,0,10 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +42,0,31 +37,0,26 diff --git a/relife/datasets/insulator_string.csv b/relife/datasets/insulator_string.csv new file mode 100644 index 0000000..4ade2aa --- /dev/null +++ b/relife/datasets/insulator_string.csv @@ -0,0 +1,12001 @@ +time,event,entry,pHCl,pH2SO4,HNO3 +70.00,0.00,40.00,0.49,1.69,0.24 +30.00,0.00,0.00,0.76,1.79,0.39 +45.00,0.00,15.00,0.43,1.61,0.25 +78.00,0.00,48.00,0.50,1.80,0.28 +106.00,0.00,76.00,0.34,1.55,0.26 +19.70,0.00,0.00,0.38,1.74,0.35 +5.90,0.00,0.00,0.60,1.74,0.24 +97.00,0.00,67.00,0.57,1.53,0.19 +73.00,0.00,43.00,0.45,1.75,0.28 +30.00,0.00,0.00,0.78,1.78,0.42 +30.00,0.00,0.00,0.50,1.60,0.27 +30.00,0.00,0.00,0.61,1.55,0.21 +50.00,1.00,47.00,0.85,1.57,0.21 +85.00,0.00,55.00,0.39,1.55,0.28 +59.50,1.00,37.00,0.95,1.75,0.21 +46.00,0.00,16.00,0.55,1.82,0.28 +98.00,0.00,68.00,0.36,1.63,0.29 +21.60,1.00,0.00,0.80,1.78,0.46 +63.90,1.00,39.00,1.06,1.78,0.29 +101.00,0.00,71.00,0.34,1.49,0.27 +49.00,0.00,19.00,0.35,1.60,0.26 +43.00,0.00,13.00,0.54,1.53,0.17 +79.00,0.00,49.00,0.64,1.51,0.19 +61.00,0.00,31.00,0.47,1.65,0.24 +69.00,0.00,39.00,0.58,1.58,0.26 +71.00,0.00,41.00,0.36,1.59,0.26 +30.00,0.00,0.00,0.33,1.48,0.27 +49.00,0.00,19.00,0.77,1.76,0.25 +53.00,0.00,23.00,0.48,1.55,0.27 +66.00,0.00,36.00,0.44,1.75,0.36 +30.00,0.00,0.00,0.79,1.56,0.16 +14.90,0.00,0.00,0.59,1.58,0.22 +55.00,0.00,25.00,0.36,1.66,0.32 +16.20,0.00,0.00,0.64,1.49,0.16 +72.00,0.00,42.00,0.37,1.66,0.28 +43.00,0.00,13.00,0.47,1.67,0.25 +106.00,0.00,76.00,0.33,1.56,0.26 +20.10,1.00,0.00,0.82,1.56,0.17 +81.00,1.00,51.00,0.32,1.63,0.30 +63.00,0.00,33.00,0.51,1.70,0.24 +47.00,0.00,17.00,0.33,1.54,0.28 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.32,1.47,0.27 +72.00,0.00,42.00,0.36,1.61,0.25 +56.00,0.00,26.00,0.56,1.73,0.32 +44.00,0.00,14.00,0.53,1.64,0.22 +79.60,1.00,61.00,0.39,1.69,0.28 +56.00,1.00,26.00,0.78,1.58,0.15 +30.00,0.00,0.00,0.58,1.63,0.25 +15.50,0.00,0.00,0.35,1.60,0.27 +53.00,0.00,23.00,0.68,1.56,0.22 +30.00,0.00,0.00,0.87,1.68,0.19 +44.00,0.00,14.00,0.48,1.70,0.24 +36.50,1.00,14.00,0.64,1.89,0.25 +25.20,1.00,17.00,0.78,1.57,0.16 +18.60,0.00,0.00,1.01,1.77,0.24 +18.90,0.00,0.00,0.34,1.63,0.28 +0.90,0.00,0.00,0.39,1.61,0.25 +45.00,0.00,15.00,0.69,1.59,0.25 +17.50,0.00,0.00,0.63,1.55,0.21 +68.00,0.00,38.00,0.45,1.64,0.25 +44.00,0.00,14.00,0.52,1.61,0.21 +78.00,0.00,48.00,0.50,1.70,0.26 +50.00,0.00,20.00,0.40,1.58,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +37.00,0.00,7.00,0.78,1.68,0.33 +44.00,0.00,14.00,0.40,1.63,0.25 +20.50,0.00,0.00,0.37,1.80,0.36 +21.70,0.00,0.00,0.47,1.55,0.27 +67.00,0.00,37.00,0.62,1.74,0.32 +39.20,1.00,21.00,0.85,1.57,0.18 +23.50,0.00,0.00,0.56,1.62,0.25 +53.00,0.00,23.00,0.30,1.54,0.29 +70.00,0.00,40.00,0.38,1.58,0.24 +14.50,1.00,0.00,0.96,1.74,0.24 +17.90,1.00,0.00,0.69,1.53,0.20 +57.40,1.00,44.00,0.36,1.65,0.31 +53.00,0.00,23.00,0.39,1.56,0.24 +44.00,0.00,14.00,0.41,1.86,0.40 +25.00,0.00,0.00,0.45,1.62,0.25 +48.00,1.00,20.00,0.68,1.74,0.41 +54.00,0.00,24.00,0.54,1.56,0.18 +69.00,0.00,39.00,0.57,1.68,0.23 +3.50,0.00,0.00,0.62,1.74,0.24 +66.00,0.00,36.00,0.44,1.76,0.36 +17.90,0.00,0.00,0.37,1.64,0.28 +44.00,0.00,14.00,0.60,1.77,0.24 +67.00,0.00,37.00,0.59,1.74,0.31 +1.90,0.00,0.00,0.81,1.55,0.18 +96.00,0.00,66.00,0.53,1.64,0.22 +74.00,0.00,44.00,0.36,1.62,0.29 +45.00,0.00,15.00,0.41,1.67,0.26 +22.20,0.00,0.00,0.51,1.83,0.29 +12.00,0.00,0.00,0.40,1.85,0.41 +6.60,1.00,0.00,0.78,1.78,0.42 +56.00,0.00,26.00,0.55,1.67,0.32 +50.00,0.00,20.00,0.82,1.79,0.47 +87.00,0.00,57.00,0.42,1.67,0.25 +51.00,0.00,21.00,0.67,1.53,0.16 +70.00,1.00,41.00,0.40,1.61,0.26 +41.00,0.00,11.00,0.53,1.65,0.26 +92.80,1.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.94,1.63,0.18 +50.30,1.00,39.00,0.54,1.54,0.18 +42.00,0.00,12.00,0.35,1.62,0.26 +90.00,0.00,60.00,0.58,1.70,0.27 +86.00,0.00,56.00,0.44,1.71,0.26 +65.00,0.00,35.00,0.34,1.60,0.30 +29.30,0.00,0.00,0.82,1.60,0.16 +32.20,1.00,4.00,0.60,1.68,0.23 +52.00,0.00,22.00,0.51,1.64,0.27 +74.00,0.00,44.00,0.33,1.60,0.28 +72.00,0.00,42.00,0.57,1.79,0.37 +48.00,0.00,18.00,0.55,1.52,0.17 +90.00,0.00,60.00,0.61,1.75,0.33 +76.80,1.00,62.00,0.81,1.55,0.17 +50.00,0.00,20.00,0.57,1.60,0.22 +78.00,0.00,48.00,0.51,1.72,0.27 +69.00,0.00,39.00,0.32,1.75,0.28 +106.00,0.00,76.00,0.47,1.65,0.27 +82.00,0.00,52.00,0.51,1.61,0.28 +54.70,1.00,31.00,0.35,1.60,0.25 +30.00,0.00,0.00,0.96,1.74,0.24 +78.20,1.00,69.00,0.57,1.51,0.17 +75.60,1.00,68.00,0.34,1.62,0.30 +20.10,1.00,0.00,0.79,1.56,0.16 +89.80,1.00,76.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.82,1.62,0.18 +57.60,1.00,35.00,0.54,1.66,0.31 +42.00,0.00,12.00,0.34,1.62,0.26 +78.60,1.00,66.00,0.47,1.63,0.23 +30.00,0.00,0.00,0.74,1.79,0.39 +88.00,0.00,58.00,0.64,1.69,0.23 +91.00,0.00,61.00,0.35,1.69,0.32 +47.00,0.00,17.00,0.81,1.58,0.17 +30.00,0.00,0.00,0.73,1.67,0.36 +68.00,0.00,38.00,0.45,1.63,0.25 +52.00,0.00,22.00,0.51,1.65,0.28 +92.00,0.00,62.00,0.63,1.69,0.24 +79.00,0.00,49.00,0.47,1.67,0.25 +30.80,1.00,17.00,0.58,1.68,0.23 +52.00,0.00,22.00,0.37,1.64,0.27 +18.10,0.00,0.00,0.33,1.59,0.27 +22.30,0.00,0.00,0.50,1.62,0.26 +79.00,0.00,49.00,0.45,1.65,0.26 +71.00,0.00,41.00,0.61,1.49,0.15 +47.00,0.00,17.00,0.40,1.57,0.28 +34.00,0.00,4.00,0.60,1.51,0.16 +51.00,0.00,21.00,0.43,1.73,0.27 +62.00,0.00,32.00,0.47,1.65,0.27 +90.00,0.00,60.00,0.41,1.59,0.24 +30.00,0.00,0.00,0.39,1.57,0.24 +11.60,0.00,0.00,0.32,1.63,0.30 +52.60,1.00,39.00,1.06,1.78,0.28 +73.00,0.00,43.00,0.44,1.73,0.27 +65.00,0.00,35.00,0.35,1.65,0.31 +65.00,0.00,35.00,0.35,1.66,0.32 +31.80,1.00,18.00,0.64,1.49,0.16 +44.90,1.00,17.00,0.81,1.58,0.17 +13.30,0.00,0.00,0.46,1.68,0.30 +92.00,0.00,62.00,0.38,1.67,0.29 +40.00,0.00,10.00,0.73,1.80,0.44 +61.00,0.00,31.00,0.43,1.73,0.26 +48.00,0.00,18.00,0.68,1.69,0.23 +9.10,0.00,0.00,0.52,1.65,0.23 +98.00,0.00,68.00,0.37,1.64,0.28 +49.00,0.00,19.00,0.49,1.89,0.44 +101.00,0.00,71.00,0.35,1.51,0.26 +34.00,0.00,4.00,0.61,1.60,0.25 +46.90,1.00,32.00,0.47,1.56,0.25 +49.00,0.00,19.00,0.70,1.52,0.19 +50.00,0.00,20.00,0.48,1.65,0.23 +30.00,0.00,0.00,0.59,1.63,0.24 +60.90,1.00,56.00,0.56,1.71,0.24 +50.00,0.00,20.00,0.65,1.51,0.18 +30.00,0.00,0.00,0.50,1.56,0.25 +50.20,1.00,44.00,0.56,1.68,0.33 +6.90,0.00,0.00,0.45,1.72,0.26 +62.00,0.00,32.00,0.43,1.55,0.26 +41.00,0.00,11.00,0.68,1.79,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +18.60,0.00,0.00,0.51,1.83,0.29 +55.00,0.00,25.00,0.45,1.62,0.25 +21.10,0.00,0.00,0.40,1.66,0.26 +83.30,1.00,68.00,0.42,1.57,0.25 +80.00,0.00,50.00,0.59,1.58,0.21 +27.20,0.00,0.00,0.83,1.59,0.16 +23.20,0.00,0.00,0.72,1.82,0.42 +51.00,0.00,21.00,0.43,1.73,0.27 +83.00,0.00,53.00,0.69,1.72,0.25 +101.00,0.00,71.00,0.64,1.58,0.21 +17.40,0.00,0.00,0.91,1.59,0.17 +26.20,1.00,18.00,0.77,1.70,0.23 +74.00,0.00,44.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.58,1.63,0.24 +99.00,0.00,69.00,0.55,1.52,0.18 +30.00,0.00,0.00,0.95,1.74,0.29 +49.00,0.00,19.00,0.44,1.58,0.25 +8.40,0.00,0.00,0.68,1.56,0.22 +73.00,0.00,43.00,0.38,1.67,0.28 +8.80,0.00,0.00,0.90,1.73,0.20 +53.00,0.00,23.00,0.44,1.56,0.27 +30.00,0.00,0.00,0.51,1.83,0.29 +44.00,0.00,14.00,0.34,1.55,0.27 +22.60,0.00,0.00,0.82,1.66,0.25 +59.00,0.00,29.00,0.65,1.60,0.23 +30.00,0.00,0.00,0.51,1.64,0.23 +30.00,0.00,0.00,0.72,1.64,0.26 +58.00,0.00,28.00,0.37,1.55,0.28 +53.00,0.00,23.00,0.38,1.55,0.24 +65.00,0.00,35.00,0.34,1.64,0.28 +44.00,0.00,14.00,0.42,1.70,0.26 +78.70,1.00,62.00,0.82,1.57,0.17 +29.60,1.00,18.00,0.88,1.67,0.24 +55.30,1.00,27.00,0.43,1.66,0.26 +19.20,1.00,0.00,0.85,1.81,0.49 +14.40,0.00,0.00,0.42,1.84,0.40 +66.00,0.00,36.00,0.49,1.67,0.24 +41.00,0.00,11.00,0.48,1.61,0.26 +60.00,0.00,30.00,0.55,1.72,0.25 +76.00,0.00,46.00,0.32,1.56,0.27 +30.00,0.00,0.00,0.60,1.63,0.24 +12.70,0.00,0.00,0.32,1.71,0.28 +58.00,0.00,28.00,0.32,1.69,0.29 +77.80,1.00,62.00,0.82,1.56,0.17 +61.00,0.00,31.00,0.43,1.73,0.26 +33.00,0.00,3.00,0.46,1.63,0.26 +67.00,0.00,37.00,0.59,1.83,0.26 +29.50,0.00,0.00,0.66,1.54,0.18 +50.00,0.00,20.00,0.43,1.61,0.24 +6.20,0.00,0.00,0.94,1.63,0.17 +30.00,0.00,0.00,0.98,1.76,0.21 +53.00,0.00,23.00,0.46,1.69,0.26 +45.00,0.00,15.00,0.62,1.53,0.16 +44.00,0.00,14.00,0.45,1.66,0.26 +60.00,0.00,30.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.57,1.78,0.27 +51.40,1.00,34.00,0.33,1.65,0.29 +30.00,0.00,0.00,0.36,1.54,0.27 +6.70,0.00,0.00,0.30,1.57,0.29 +50.00,0.00,20.00,0.80,1.79,0.46 +23.10,1.00,9.00,0.42,1.88,0.41 +79.00,0.00,49.00,0.60,1.74,0.25 +43.00,0.00,13.00,0.51,1.64,0.22 +45.00,0.00,15.00,0.45,1.67,0.25 +20.40,1.00,0.00,0.71,1.54,0.15 +30.00,0.00,0.00,1.03,1.76,0.21 +5.60,0.00,0.00,0.57,1.53,0.19 +12.70,0.00,0.00,0.56,1.54,0.20 +56.00,0.00,26.00,0.52,1.65,0.22 +69.00,0.00,39.00,0.61,1.55,0.21 +47.00,0.00,17.00,0.56,1.73,0.24 +50.00,0.00,20.00,0.56,1.53,0.19 +85.00,0.00,55.00,0.45,1.55,0.27 +16.20,0.00,0.00,1.11,1.63,0.20 +12.10,0.00,0.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.42,1.70,0.25 +1.10,0.00,0.00,0.58,1.67,0.27 +12.30,0.00,0.00,0.97,1.76,0.23 +51.00,0.00,21.00,0.39,1.66,0.27 +23.10,1.00,0.00,1.03,1.77,0.30 +59.00,0.00,29.00,0.41,1.68,0.26 +86.00,0.00,56.00,0.55,1.71,0.24 +79.00,0.00,49.00,0.47,1.66,0.25 +64.00,0.00,34.00,0.33,1.65,0.29 +9.90,1.00,0.00,0.54,1.54,0.18 +38.00,0.00,8.00,0.37,1.67,0.30 +50.00,0.00,20.00,0.56,1.53,0.19 +30.00,0.00,0.00,1.04,1.63,0.18 +15.60,0.00,0.00,0.32,1.59,0.31 +70.00,0.00,40.00,0.52,1.70,0.23 +46.50,1.00,28.00,0.34,1.57,0.26 +75.00,0.00,45.00,0.34,1.56,0.25 +26.00,1.00,0.00,0.94,1.63,0.30 +30.00,0.00,0.00,0.60,1.75,0.24 +18.60,0.00,0.00,0.52,1.70,0.30 +69.00,0.00,39.00,0.66,1.52,0.19 +14.80,1.00,14.00,0.41,1.51,0.26 +30.00,0.00,0.00,0.60,1.57,0.20 +67.00,0.00,37.00,0.56,1.74,0.25 +47.00,0.00,17.00,0.68,1.51,0.15 +66.00,0.00,36.00,0.47,1.65,0.24 +51.00,0.00,21.00,0.35,1.64,0.31 +21.70,1.00,0.00,0.93,1.69,0.25 +60.00,0.00,30.00,0.33,1.66,0.28 +69.00,0.00,39.00,0.46,1.72,0.27 +79.70,1.00,71.00,0.51,1.63,0.26 +49.00,0.00,19.00,0.78,1.54,0.17 +66.00,0.00,36.00,0.32,1.59,0.28 +60.20,1.00,52.00,0.51,1.64,0.27 +45.70,1.00,33.00,0.62,1.62,0.23 +4.90,0.00,0.00,0.77,1.76,0.37 +51.70,1.00,42.00,0.66,1.80,0.38 +58.00,0.00,28.00,0.34,1.56,0.25 +49.00,0.00,19.00,0.34,1.60,0.27 +75.00,0.00,45.00,0.34,1.56,0.25 +30.00,0.00,0.00,0.66,1.52,0.19 +7.70,0.00,0.00,0.84,1.60,0.16 +91.00,0.00,61.00,0.37,1.66,0.28 +13.30,0.00,0.00,0.82,1.57,0.17 +22.40,1.00,0.00,0.80,1.79,0.42 +44.00,0.00,14.00,0.44,1.72,0.28 +13.60,0.00,0.00,0.88,1.82,0.41 +60.00,0.00,30.00,0.43,1.66,0.24 +63.00,0.00,33.00,0.32,1.73,0.28 +74.00,0.00,44.00,0.41,1.82,0.39 +62.00,0.00,32.00,0.35,1.64,0.31 +61.00,0.00,31.00,0.88,1.70,0.19 +68.00,0.00,38.00,0.60,1.67,0.24 +70.00,0.00,40.00,0.51,1.70,0.24 +70.00,0.00,40.00,0.39,1.58,0.27 +71.00,0.00,41.00,0.35,1.59,0.27 +87.00,0.00,57.00,0.36,1.57,0.25 +8.80,0.00,0.00,0.34,1.55,0.27 +13.50,0.00,0.00,0.51,1.57,0.21 +65.10,1.00,42.00,0.43,1.71,0.27 +61.00,0.00,31.00,0.57,1.54,0.18 +48.00,0.00,18.00,0.85,1.89,0.26 +85.00,0.00,55.00,0.39,1.58,0.26 +0.50,0.00,0.00,0.65,1.53,0.20 +44.00,0.00,14.00,0.44,1.71,0.26 +55.00,0.00,25.00,0.41,1.52,0.27 +64.00,0.00,34.00,0.41,1.70,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +72.00,0.00,42.00,0.38,1.68,0.28 +43.80,1.00,26.00,0.60,1.74,0.25 +88.00,0.00,58.00,0.62,1.68,0.23 +7.80,0.00,0.00,0.97,1.63,0.30 +30.00,0.00,0.00,0.32,1.59,0.31 +64.00,0.00,34.00,0.41,1.71,0.27 +43.00,0.00,13.00,0.32,1.61,0.28 +80.80,1.00,67.00,0.58,1.67,0.27 +78.70,1.00,71.00,0.50,1.62,0.26 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.43,1.72,0.26 +0.70,0.00,0.00,0.49,1.64,0.22 +58.40,1.00,36.00,0.51,1.70,0.24 +43.00,0.00,13.00,0.31,1.60,0.28 +62.00,0.00,32.00,0.55,1.58,0.26 +42.00,0.00,12.00,0.34,1.62,0.26 +89.70,1.00,61.00,0.35,1.64,0.30 +47.00,0.00,17.00,0.53,1.64,0.22 +33.00,0.00,3.00,0.46,1.66,0.26 +50.00,0.00,20.00,0.40,1.58,0.24 +52.00,0.00,22.00,0.43,1.61,0.24 +91.00,0.00,61.00,0.35,1.59,0.27 +51.00,0.00,21.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.83,1.65,0.18 +21.30,0.00,0.00,0.51,1.63,0.26 +18.10,1.00,10.00,1.22,1.77,0.23 +38.00,0.00,8.00,0.53,1.54,0.17 +69.00,0.00,39.00,0.34,1.61,0.27 +43.00,0.00,13.00,0.42,1.70,0.26 +31.00,0.00,1.00,0.62,1.60,0.26 +50.00,0.00,20.00,0.48,1.67,0.24 +73.00,0.00,43.00,0.38,1.67,0.28 +28.30,1.00,15.00,0.40,1.69,0.28 +68.00,0.00,38.00,0.45,1.64,0.25 +61.00,0.00,31.00,0.36,1.66,0.32 +63.00,0.00,33.00,0.46,1.69,0.26 +32.00,0.00,2.00,0.57,1.66,0.24 +59.00,0.00,29.00,0.53,1.62,0.22 +50.00,0.00,20.00,0.54,1.59,0.21 +30.00,0.00,0.00,0.66,1.51,0.17 +51.00,0.00,21.00,0.49,1.63,0.26 +59.00,0.00,29.00,0.38,1.66,0.30 +69.20,1.00,57.00,0.40,1.58,0.24 +21.40,1.00,21.00,0.49,1.63,0.26 +43.00,0.00,13.00,0.43,1.66,0.24 +43.00,0.00,13.00,0.31,1.59,0.28 +17.30,0.00,0.00,0.67,1.52,0.19 +30.00,0.00,0.00,0.70,1.51,0.15 +29.90,1.00,26.00,1.10,1.76,0.24 +44.00,0.00,14.00,0.46,1.67,0.26 +40.00,0.00,10.00,0.93,1.73,0.20 +58.00,0.00,28.00,0.36,1.54,0.28 +79.00,0.00,49.00,0.44,1.73,0.28 +85.00,0.00,55.00,0.39,1.57,0.28 +51.00,0.00,21.00,0.51,1.64,0.27 +36.20,1.00,20.00,0.87,1.68,0.37 +51.00,0.00,21.00,0.49,1.64,0.25 +65.00,0.00,35.00,0.36,1.64,0.30 +80.00,0.00,50.00,0.59,1.58,0.22 +71.00,0.00,41.00,0.59,1.50,0.15 +30.00,0.00,0.00,0.45,1.70,0.26 +54.30,1.00,44.00,0.38,1.74,0.35 +69.00,0.00,39.00,0.37,1.56,0.28 +48.00,0.00,18.00,0.66,1.50,0.16 +68.20,1.00,53.00,0.60,1.67,0.23 +44.00,0.00,14.00,0.54,1.66,0.23 +6.70,0.00,0.00,1.48,1.73,0.27 +19.60,0.00,0.00,0.44,1.73,0.27 +50.20,1.00,31.00,0.43,1.73,0.27 +63.00,0.00,33.00,0.56,1.54,0.20 +49.00,0.00,19.00,0.34,1.60,0.27 +108.00,0.00,78.00,0.56,1.68,0.33 +50.00,0.00,20.00,1.00,1.77,0.21 +55.70,1.00,46.00,0.64,1.69,0.23 +63.00,0.00,33.00,0.32,1.66,0.28 +8.10,1.00,0.00,0.60,1.70,0.36 +23.50,1.00,0.00,0.73,1.55,0.15 +58.00,0.00,28.00,0.33,1.57,0.27 +4.80,0.00,0.00,0.45,1.66,0.24 +30.00,0.00,0.00,0.69,1.55,0.19 +5.30,1.00,0.00,0.82,1.60,0.16 +83.00,0.00,53.00,0.63,1.70,0.24 +18.70,1.00,15.00,0.71,1.65,0.30 +97.80,1.00,77.00,0.39,1.61,0.24 +71.00,0.00,41.00,0.46,1.74,0.27 +94.00,0.00,64.00,0.50,1.80,0.28 +48.00,0.00,18.00,0.87,1.65,0.24 +87.00,0.00,57.00,0.39,1.58,0.24 +34.00,0.00,4.00,0.32,1.79,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +13.10,1.00,0.00,0.82,1.67,0.25 +59.00,0.00,29.00,0.59,1.70,0.28 +65.00,0.00,35.00,0.32,1.59,0.30 +74.00,0.00,44.00,0.37,1.74,0.35 +30.00,0.00,0.00,0.66,1.52,0.19 +50.00,0.00,20.00,0.73,1.52,0.18 +83.00,0.00,53.00,0.69,1.75,0.25 +101.00,0.00,71.00,0.39,1.60,0.24 +43.00,0.00,13.00,0.79,1.57,0.16 +72.00,0.00,42.00,0.55,1.70,0.23 +72.00,0.00,42.00,0.42,1.85,0.40 +5.10,0.00,0.00,1.06,1.78,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.56,1.51,0.16 +15.50,0.00,0.00,0.59,1.58,0.26 +30.00,0.00,0.00,0.76,1.58,0.15 +59.00,0.00,29.00,0.47,1.67,0.25 +85.70,1.00,58.00,0.62,1.74,0.24 +64.00,0.00,34.00,0.34,1.61,0.31 +2.60,0.00,0.00,0.50,1.68,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +34.50,1.00,32.00,0.47,1.64,0.26 +44.00,0.00,14.00,0.45,1.66,0.26 +10.00,0.00,0.00,0.71,1.57,0.19 +44.00,0.00,14.00,0.46,1.59,0.23 +12.70,1.00,0.00,0.83,1.57,0.16 +30.00,0.00,0.00,0.38,1.66,0.27 +17.90,0.00,0.00,1.12,1.64,0.18 +69.00,0.00,39.00,0.56,1.57,0.26 +91.00,0.00,61.00,0.35,1.72,0.33 +10.60,0.00,0.00,0.89,1.59,0.18 +87.00,0.00,57.00,0.38,1.57,0.24 +91.30,1.00,76.00,0.47,1.64,0.26 +19.90,0.00,0.00,0.67,1.68,0.23 +72.00,0.00,42.00,0.45,1.82,0.39 +24.00,0.00,0.00,0.64,1.70,0.24 +7.80,1.00,0.00,1.48,1.73,0.27 +47.00,0.00,17.00,0.49,1.70,0.30 +30.00,0.00,0.00,0.57,1.50,0.16 +30.00,0.00,0.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.66,1.52,0.18 +47.00,0.00,17.00,0.62,1.57,0.22 +1.20,0.00,0.00,0.67,1.54,0.18 +99.00,0.00,69.00,0.63,1.50,0.17 +44.40,1.00,15.00,0.41,1.68,0.26 +43.00,0.00,13.00,0.58,1.69,0.35 +16.70,1.00,14.00,0.46,1.67,0.26 +64.00,0.00,34.00,0.40,1.69,0.27 +46.00,0.00,16.00,0.70,1.72,0.25 +51.60,1.00,43.00,0.67,1.61,0.28 +83.00,0.00,53.00,0.76,1.62,0.28 +61.00,0.00,31.00,0.47,1.64,0.24 +43.00,0.00,13.00,0.50,1.64,0.22 +4.10,0.00,0.00,0.39,1.67,0.28 +101.00,0.00,71.00,0.41,1.64,0.24 +78.50,1.00,60.00,0.58,1.68,0.27 +41.00,0.00,11.00,0.46,1.73,0.28 +69.00,0.00,39.00,0.57,1.68,0.23 +74.00,0.00,44.00,0.32,1.60,0.28 +91.40,1.00,71.00,0.51,1.64,0.26 +72.30,1.00,51.00,0.32,1.63,0.31 +45.00,0.00,15.00,0.53,1.69,0.23 +34.00,0.00,4.00,0.60,1.52,0.16 +55.90,1.00,33.00,0.51,1.65,0.24 +9.70,0.00,0.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.82,1.56,0.17 +31.10,1.00,13.00,0.44,1.66,0.24 +74.00,0.00,44.00,0.38,1.67,0.29 +86.00,0.00,56.00,0.57,1.71,0.24 +58.00,0.00,28.00,0.32,1.64,0.28 +22.90,0.00,0.00,0.51,1.63,0.30 +83.00,0.00,53.00,0.83,1.69,0.22 +7.90,0.00,0.00,0.48,1.55,0.27 +48.00,0.00,18.00,0.57,1.68,0.23 +30.00,0.00,0.00,0.54,1.57,0.19 +4.30,0.00,0.00,0.50,1.83,0.28 +17.50,0.00,0.00,0.61,1.50,0.17 +48.00,0.00,18.00,0.46,1.62,0.24 +61.70,1.00,37.00,0.44,1.69,0.28 +81.90,1.00,53.00,0.52,1.57,0.20 +30.00,0.00,0.00,0.70,1.50,0.17 +58.00,0.00,28.00,0.47,1.68,0.25 +50.00,0.00,20.00,0.40,1.58,0.27 +61.00,0.00,31.00,0.35,1.62,0.31 +59.00,0.00,29.00,0.67,1.61,0.24 +86.90,1.00,64.00,0.48,1.76,0.28 +30.00,0.00,0.00,0.86,1.81,0.40 +58.00,0.00,28.00,0.39,1.58,0.27 +28.20,1.00,0.00,0.75,1.59,0.23 +5.20,0.00,0.00,0.54,1.69,0.23 +50.00,0.00,20.00,0.43,1.73,0.27 +92.00,0.00,62.00,0.68,1.53,0.19 +91.00,0.00,61.00,0.35,1.64,0.30 +37.90,1.00,14.00,0.43,1.71,0.25 +30.00,0.00,0.00,0.46,1.73,0.26 +78.00,0.00,48.00,0.47,1.75,0.28 +30.00,0.00,0.00,0.50,1.68,0.28 +37.40,1.00,19.00,0.70,1.52,0.19 +69.00,0.00,39.00,0.66,1.52,0.19 +69.00,0.00,39.00,0.36,1.55,0.28 +64.00,0.00,34.00,0.37,1.65,0.30 +0.60,0.00,0.00,1.48,1.73,0.27 +85.00,0.00,55.00,0.38,1.54,0.28 +3.80,0.00,0.00,0.60,1.67,0.24 +83.00,0.00,53.00,0.44,1.69,0.28 +24.80,0.00,0.00,0.39,1.69,0.28 +72.00,0.00,42.00,0.65,1.80,0.37 +71.00,0.00,41.00,0.59,1.50,0.16 +49.00,0.00,19.00,0.67,1.60,0.28 +8.10,1.00,0.00,0.34,1.60,0.31 +69.00,0.00,39.00,0.53,1.57,0.18 +53.00,0.00,23.00,0.35,1.60,0.27 +75.80,1.00,66.00,0.47,1.63,0.23 +70.00,0.00,40.00,0.38,1.58,0.24 +22.30,0.00,0.00,1.06,1.78,0.29 +51.00,0.00,21.00,0.40,1.67,0.27 +41.80,1.00,17.00,0.64,1.55,0.22 +68.20,1.00,42.00,0.71,1.82,0.41 +41.00,0.00,11.00,0.50,1.61,0.27 +85.00,0.00,55.00,0.48,1.61,0.27 +16.70,0.00,0.00,0.82,1.68,0.22 +30.70,1.00,11.00,0.58,1.68,0.33 +16.40,0.00,0.00,0.40,1.66,0.27 +42.00,0.00,12.00,0.33,1.61,0.27 +72.00,0.00,42.00,0.36,1.61,0.25 +47.00,0.00,17.00,0.56,1.68,0.23 +75.20,1.00,71.00,0.56,1.67,0.29 +37.00,0.00,7.00,0.75,1.67,0.30 +53.60,1.00,53.00,0.66,1.84,0.25 +30.00,0.00,0.00,0.54,1.58,0.18 +98.00,0.00,68.00,0.36,1.63,0.28 +30.00,0.00,0.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.54,1.83,0.29 +60.70,1.00,48.00,0.51,1.74,0.27 +56.70,1.00,55.00,0.48,1.62,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +71.00,0.00,41.00,0.36,1.60,0.25 +21.30,1.00,11.00,0.79,1.54,0.18 +9.50,1.00,0.00,1.29,1.68,0.25 +48.00,1.00,31.00,0.53,1.67,0.29 +79.00,0.00,49.00,0.55,1.67,0.32 +72.00,0.00,42.00,0.54,1.74,0.25 +67.00,0.00,37.00,0.90,1.59,0.17 +26.40,0.00,0.00,0.80,1.59,0.16 +51.30,1.00,23.00,0.40,1.58,0.24 +32.00,0.00,2.00,0.58,1.63,0.25 +41.00,1.00,15.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.59,1.57,0.20 +63.00,0.00,33.00,0.51,1.65,0.24 +47.00,0.00,17.00,0.50,1.71,0.30 +85.90,1.00,60.00,0.58,1.69,0.28 +69.00,0.00,39.00,0.43,1.64,0.27 +35.80,1.00,17.00,0.64,1.54,0.22 +49.00,0.00,19.00,0.74,1.73,0.25 +32.50,1.00,19.00,0.80,1.66,0.24 +16.20,0.00,0.00,0.58,1.68,0.23 +30.00,0.00,0.00,0.32,1.59,0.31 +62.00,0.00,32.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.35,1.63,0.31 +84.00,0.00,54.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.32,1.59,0.32 +98.00,0.00,68.00,0.50,1.83,0.28 +63.00,0.00,33.00,0.43,1.70,0.27 +50.10,1.00,21.00,0.43,1.73,0.27 +92.00,0.00,62.00,0.82,1.59,0.18 +30.00,0.00,0.00,0.53,1.83,0.29 +83.00,0.00,53.00,0.60,1.67,0.23 +60.00,0.00,30.00,0.34,1.65,0.29 +43.20,1.00,34.00,0.62,1.56,0.22 +85.50,1.00,71.00,0.52,1.65,0.26 +48.00,0.00,18.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.67,1.50,0.17 +73.00,1.00,55.00,0.47,1.55,0.27 +72.00,0.00,42.00,0.42,1.85,0.40 +47.00,0.00,17.00,0.51,1.64,0.23 +14.10,0.00,0.00,0.97,1.78,0.21 +63.00,0.00,33.00,0.39,1.58,0.27 +50.00,0.00,20.00,0.56,1.70,0.24 +30.00,0.00,0.00,0.58,1.66,0.24 +30.00,0.00,0.00,0.44,1.62,0.25 +59.00,0.00,29.00,0.49,1.62,0.22 +17.70,0.00,0.00,0.32,1.64,0.28 +30.40,1.00,5.00,0.61,1.50,0.17 +51.00,0.00,21.00,0.41,1.68,0.26 +18.30,0.00,0.00,0.60,1.74,0.24 +44.00,0.00,14.00,0.49,1.60,0.21 +8.50,0.00,0.00,1.04,1.77,0.30 +10.90,0.00,0.00,0.65,1.56,0.23 +45.00,0.00,15.00,0.54,1.68,0.24 +30.00,0.00,0.00,0.60,1.60,0.25 +30.00,0.00,0.00,0.65,1.53,0.20 +58.80,1.00,29.00,0.41,1.68,0.26 +34.00,0.00,4.00,0.32,1.81,0.29 +72.00,0.00,42.00,0.50,1.77,0.38 +6.60,0.00,0.00,0.94,1.71,0.20 +50.40,1.00,44.00,0.56,1.64,0.24 +44.00,0.00,14.00,0.56,1.68,0.25 +16.40,0.00,0.00,1.08,1.63,0.18 +80.80,1.00,55.00,0.40,1.57,0.28 +10.10,0.00,0.00,0.61,1.68,0.23 +10.30,0.00,0.00,0.68,1.50,0.17 +72.00,0.00,42.00,0.36,1.64,0.29 +20.10,0.00,0.00,0.32,1.60,0.29 +45.00,0.00,15.00,0.45,1.73,0.27 +2.60,0.00,0.00,0.60,1.68,0.23 +43.00,0.00,13.00,0.44,1.71,0.27 +53.00,0.00,23.00,0.35,1.60,0.28 +1.20,0.00,0.00,1.02,1.61,0.23 +30.00,0.00,0.00,0.55,1.58,0.19 +58.00,0.00,28.00,0.32,1.63,0.28 +8.90,0.00,0.00,0.77,1.66,0.28 +59.00,0.00,29.00,0.37,1.59,0.24 +30.00,0.00,0.00,0.53,1.83,0.29 +72.00,0.00,42.00,0.37,1.66,0.28 +30.00,0.00,0.00,0.82,1.61,0.18 +74.00,0.00,44.00,0.38,1.68,0.29 +17.10,1.00,14.00,0.33,1.59,0.32 +35.00,0.00,5.00,0.36,1.53,0.27 +75.00,0.00,45.00,0.57,1.65,0.26 +52.00,0.00,22.00,0.64,1.55,0.20 +63.00,0.00,33.00,0.42,1.70,0.28 +101.00,0.00,71.00,0.56,1.67,0.28 +87.40,1.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.65,1.63,0.24 +30.00,0.00,0.00,0.72,1.52,0.16 +51.00,0.00,21.00,0.63,1.54,0.16 +63.00,0.00,33.00,0.44,1.70,0.27 +81.70,1.00,71.00,0.50,1.62,0.26 +62.00,1.00,53.00,0.52,1.57,0.20 +61.00,0.00,31.00,0.43,1.63,0.24 +55.00,0.00,25.00,0.40,1.85,0.41 +43.00,0.00,13.00,0.46,1.67,0.25 +31.00,0.00,1.00,0.40,1.66,0.26 +25.50,0.00,0.00,0.64,1.69,0.30 +79.00,0.00,49.00,0.50,1.80,0.28 +52.00,0.00,22.00,0.38,1.68,0.28 +53.00,0.00,23.00,0.45,1.69,0.26 +46.00,0.00,16.00,0.61,1.81,0.40 +43.00,0.00,13.00,0.34,1.65,0.28 +78.00,0.00,48.00,0.50,1.80,0.28 +58.00,0.00,28.00,0.47,1.68,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +61.00,0.00,31.00,0.64,1.82,0.25 +74.00,0.00,44.00,0.35,1.64,0.28 +35.00,0.00,5.00,0.46,1.72,0.26 +77.00,0.00,47.00,0.81,1.55,0.21 +30.00,0.00,0.00,0.75,1.79,0.39 +47.00,0.00,17.00,0.60,1.80,0.39 +101.00,0.00,71.00,0.40,1.61,0.24 +45.90,1.00,44.00,0.35,1.65,0.28 +30.00,0.00,0.00,0.71,1.67,0.35 +71.70,1.00,58.00,0.90,1.59,0.16 +23.50,0.00,0.00,0.48,1.69,0.29 +30.00,0.00,0.00,0.45,1.68,0.27 +75.00,0.00,45.00,0.57,1.64,0.25 +44.00,0.00,14.00,0.66,1.61,0.28 +30.00,0.00,0.00,0.56,1.75,0.25 +16.00,0.00,0.00,0.61,1.60,0.26 +2.60,0.00,0.00,0.67,1.74,0.40 +25.30,1.00,10.00,0.89,1.58,0.16 +87.00,0.00,57.00,0.38,1.57,0.24 +54.00,0.00,24.00,0.43,1.68,0.28 +65.00,0.00,35.00,0.35,1.65,0.28 +30.00,0.00,0.00,0.76,1.57,0.15 +90.00,0.00,60.00,0.37,1.56,0.23 +66.00,0.00,36.00,0.52,1.70,0.24 +52.00,0.00,22.00,0.38,1.68,0.28 +43.00,0.00,13.00,0.61,1.53,0.18 +72.00,0.00,42.00,0.53,1.77,0.37 +83.00,0.00,53.00,0.58,1.66,0.23 +13.90,0.00,0.00,0.54,1.57,0.18 +16.90,0.00,0.00,0.63,1.55,0.21 +36.00,0.00,6.00,0.40,1.57,0.28 +90.80,1.00,68.00,0.32,1.60,0.31 +43.00,0.00,13.00,0.41,1.64,0.25 +30.00,0.00,0.00,0.63,1.60,0.28 +63.00,0.00,33.00,0.58,1.54,0.20 +58.00,0.00,28.00,0.34,1.59,0.27 +47.60,1.00,18.00,0.71,1.69,0.22 +92.00,0.00,62.00,0.32,1.59,0.31 +34.00,0.00,4.00,0.59,1.60,0.25 +2.00,0.00,0.00,0.42,1.69,0.26 +28.50,0.00,0.00,0.53,1.70,0.23 +86.00,0.00,56.00,0.51,1.64,0.22 +26.10,0.00,0.00,0.35,1.64,0.30 +86.00,0.00,56.00,0.52,1.78,0.28 +19.10,1.00,0.00,0.71,1.52,0.16 +16.00,0.00,0.00,0.69,1.83,0.25 +11.10,0.00,0.00,0.39,1.55,0.24 +59.70,1.00,52.00,0.85,1.67,0.18 +30.00,0.00,0.00,0.63,1.53,0.16 +7.20,0.00,0.00,0.68,1.80,0.38 +99.00,0.00,69.00,0.57,1.51,0.17 +45.00,0.00,15.00,0.61,1.52,0.17 +41.00,0.00,11.00,0.76,1.58,0.17 +91.00,0.00,61.00,0.38,1.67,0.28 +0.10,0.00,0.00,0.77,1.79,0.26 +14.70,0.00,0.00,0.39,1.55,0.28 +107.00,0.00,77.00,0.38,1.61,0.25 +30.00,0.00,0.00,0.82,1.79,0.41 +47.00,0.00,17.00,0.40,1.57,0.28 +16.80,0.00,0.00,0.39,1.69,0.28 +48.00,0.00,18.00,0.34,1.62,0.32 +52.00,0.00,22.00,0.44,1.71,0.27 +61.00,0.00,31.00,0.70,1.52,0.19 +32.50,1.00,18.00,0.89,1.66,0.24 +58.50,1.00,56.00,0.36,1.65,0.30 +47.00,0.00,17.00,0.51,1.65,0.23 +69.00,0.00,39.00,0.62,1.59,0.27 +72.00,0.00,42.00,0.39,1.69,0.28 +39.80,1.00,37.00,1.10,1.63,0.19 +26.10,1.00,0.00,1.11,1.89,0.56 +30.00,0.00,0.00,0.78,1.58,0.15 +90.00,0.00,60.00,0.40,1.66,0.27 +0.70,0.00,0.00,0.57,1.68,0.23 +89.00,0.00,59.00,0.40,1.83,0.39 +1.50,0.00,0.00,0.84,1.65,0.18 +72.00,0.00,42.00,0.71,1.82,0.41 +63.00,0.00,33.00,0.57,1.54,0.20 +49.00,0.00,19.00,0.43,1.73,0.27 +88.00,0.00,58.00,0.62,1.68,0.23 +85.00,0.00,55.00,0.38,1.55,0.28 +55.00,0.00,25.00,0.60,1.57,0.22 +9.90,0.00,0.00,0.56,1.51,0.16 +18.60,0.00,0.00,0.89,1.59,0.18 +56.00,0.00,26.00,0.78,1.58,0.15 +18.20,0.00,0.00,0.38,1.58,0.28 +61.00,0.00,31.00,0.69,1.80,0.25 +98.00,0.00,68.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.74,1.64,0.24 +30.00,0.00,0.00,0.93,1.70,0.25 +28.40,1.00,3.00,0.46,1.62,0.26 +67.30,1.00,44.00,0.56,1.59,0.21 +79.00,0.00,49.00,0.44,1.72,0.27 +86.00,0.00,56.00,0.54,1.71,0.25 +58.00,0.00,28.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.75,1.65,0.24 +35.90,1.00,28.00,0.38,1.55,0.28 +39.00,1.00,10.00,0.71,1.56,0.17 +75.40,1.00,71.00,0.51,1.63,0.26 +29.20,0.00,0.00,0.56,1.66,0.22 +52.00,0.00,22.00,0.42,1.60,0.25 +87.00,0.00,57.00,0.37,1.56,0.25 +63.00,0.00,33.00,0.34,1.65,0.28 +61.00,0.00,31.00,0.52,1.67,0.28 +86.00,0.00,56.00,0.53,1.79,0.28 +48.00,0.00,18.00,0.86,1.65,0.24 +80.00,0.00,50.00,0.38,1.66,0.28 +66.60,1.00,42.00,0.52,1.76,0.37 +30.00,0.00,0.00,0.59,1.53,0.19 +51.20,1.00,31.00,0.70,1.73,0.36 +11.90,1.00,0.00,0.99,1.77,0.23 +30.00,0.00,0.00,0.57,1.54,0.17 +30.00,0.00,0.00,0.58,1.58,0.22 +94.00,0.00,64.00,0.50,1.80,0.28 +83.60,1.00,68.00,0.37,1.64,0.27 +59.00,0.00,29.00,0.41,1.68,0.27 +74.90,1.00,53.00,0.55,1.65,0.22 +66.00,0.00,36.00,0.35,1.60,0.28 +44.00,0.00,14.00,0.37,1.65,0.28 +58.40,1.00,44.00,0.56,1.58,0.21 +28.40,1.00,17.00,0.57,1.68,0.23 +7.50,0.00,0.00,1.10,1.64,0.19 +47.00,0.00,17.00,0.82,1.58,0.16 +100.40,1.00,78.00,0.67,1.54,0.18 +40.00,0.00,10.00,0.95,1.60,0.17 +45.00,0.00,15.00,0.63,1.50,0.15 +18.50,0.00,0.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.77,1.79,0.41 +33.00,0.00,3.00,0.70,1.67,0.33 +10.70,0.00,0.00,0.44,1.71,0.25 +31.00,0.00,1.00,0.89,1.72,0.20 +34.00,0.00,4.00,0.32,1.76,0.29 +101.00,0.00,71.00,0.56,1.67,0.28 +64.00,0.00,34.00,0.33,1.61,0.31 +53.00,0.00,23.00,0.45,1.72,0.33 +63.00,0.00,33.00,0.60,1.67,0.24 +40.00,0.00,10.00,0.79,1.81,0.51 +68.00,0.00,38.00,0.45,1.64,0.26 +30.00,0.00,0.00,0.73,1.81,0.43 +44.00,0.00,14.00,0.57,1.78,0.27 +60.00,0.00,30.00,0.45,1.72,0.27 +5.90,0.00,0.00,0.64,1.79,0.37 +64.90,1.00,62.00,0.82,1.56,0.17 +13.80,0.00,0.00,0.64,1.58,0.21 +67.00,1.00,53.00,0.69,1.83,0.25 +42.80,1.00,40.00,0.53,1.70,0.23 +44.00,0.00,14.00,0.47,1.71,0.25 +58.20,1.00,32.00,0.32,1.59,0.31 +58.00,0.00,28.00,0.31,1.62,0.28 +106.00,0.00,76.00,0.53,1.71,0.29 +58.00,0.00,28.00,0.35,1.54,0.28 +30.00,0.00,0.00,1.19,1.76,0.22 +41.00,0.00,11.00,0.46,1.73,0.27 +74.00,0.00,44.00,0.33,1.61,0.28 +11.00,0.00,0.00,0.85,1.57,0.18 +4.70,1.00,0.00,0.95,1.71,0.21 +44.00,0.00,14.00,0.62,1.60,0.22 +31.60,1.00,31.00,0.70,1.74,0.25 +10.10,0.00,0.00,0.81,1.79,0.46 +66.00,0.00,36.00,0.49,1.66,0.24 +20.50,1.00,0.00,0.51,1.67,0.29 +44.00,0.00,14.00,0.49,1.60,0.21 +63.00,0.00,33.00,0.34,1.64,0.28 +47.00,1.00,39.00,0.59,1.70,0.28 +72.00,0.00,42.00,0.44,1.81,0.39 +30.00,0.00,0.00,0.66,1.53,0.19 +68.00,0.00,38.00,0.45,1.66,0.26 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.74,1.56,0.21 +25.40,1.00,14.00,0.61,1.52,0.18 +40.50,1.00,15.00,0.44,1.67,0.25 +34.00,0.00,4.00,0.32,1.80,0.28 +63.00,0.00,33.00,0.51,1.65,0.24 +30.00,0.00,0.00,0.75,1.79,0.41 +2.70,0.00,0.00,0.46,1.66,0.26 +30.00,0.00,0.00,0.66,1.61,0.26 +11.50,0.00,0.00,0.80,1.60,0.18 +22.80,0.00,0.00,0.50,1.58,0.21 +78.00,0.00,48.00,0.44,1.70,0.27 +97.90,1.00,71.00,0.64,1.57,0.20 +28.00,0.00,0.00,0.60,1.57,0.20 +30.00,0.00,0.00,0.51,1.82,0.29 +27.10,0.00,0.00,0.54,1.69,0.23 +45.00,0.00,15.00,0.72,1.66,0.30 +78.00,0.00,48.00,0.44,1.70,0.27 +48.00,0.00,18.00,0.62,1.69,0.23 +20.50,1.00,0.00,0.82,1.58,0.16 +69.00,0.00,39.00,0.33,1.59,0.27 +42.50,1.00,19.00,0.66,1.74,0.40 +57.70,1.00,42.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.90,1.67,0.26 +54.40,1.00,37.00,1.06,1.75,0.22 +30.00,0.00,0.00,1.01,1.76,0.31 +57.70,1.00,32.00,0.46,1.56,0.25 +28.80,0.00,0.00,0.39,1.65,0.27 +52.00,0.00,22.00,0.43,1.61,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +52.00,0.00,22.00,0.42,1.66,0.25 +91.00,0.00,61.00,0.39,1.68,0.28 +66.00,0.00,36.00,0.45,1.67,0.26 +63.00,0.00,33.00,0.62,1.68,0.23 +7.10,0.00,0.00,0.95,1.71,0.21 +83.00,0.00,53.00,0.52,1.57,0.20 +70.00,0.00,40.00,0.51,1.70,0.24 +5.80,0.00,0.00,0.39,1.58,0.27 +72.00,0.00,42.00,0.35,1.58,0.25 +69.00,0.00,39.00,0.40,1.57,0.27 +56.10,1.00,52.00,0.36,1.67,0.31 +31.70,1.00,15.00,0.45,1.66,0.25 +82.00,0.00,52.00,0.52,1.64,0.30 +101.80,1.00,78.00,0.68,1.54,0.17 +69.00,0.00,39.00,0.34,1.62,0.27 +69.00,0.00,39.00,0.34,1.62,0.27 +66.10,1.00,39.00,0.59,1.57,0.20 +75.00,0.00,45.00,0.34,1.56,0.25 +63.00,0.00,33.00,0.53,1.71,0.24 +49.00,0.00,19.00,0.51,1.63,0.21 +51.00,0.00,21.00,0.39,1.66,0.27 +32.40,1.00,21.00,0.89,1.59,0.18 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.65,1.77,0.35 +60.00,1.00,42.00,0.50,1.82,0.28 +43.00,0.00,13.00,0.53,1.54,0.17 +59.40,1.00,42.00,0.69,1.75,0.35 +51.00,0.00,21.00,0.64,1.53,0.15 +47.00,0.00,17.00,0.64,1.55,0.22 +30.00,0.00,0.00,1.14,1.76,0.22 +45.00,0.00,15.00,0.74,1.76,0.24 +54.00,0.00,24.00,0.52,1.57,0.19 +54.00,0.00,24.00,0.46,1.73,0.28 +50.00,0.00,20.00,0.36,1.67,0.32 +81.00,0.00,51.00,0.47,1.64,0.26 +46.00,0.00,16.00,0.45,1.66,0.26 +26.90,1.00,0.00,0.49,1.67,0.28 +22.50,0.00,0.00,0.38,1.67,0.28 +80.00,0.00,50.00,0.60,1.66,0.23 +64.00,0.00,34.00,0.32,1.62,0.29 +48.80,1.00,20.00,0.62,1.52,0.18 +20.70,0.00,0.00,0.69,1.51,0.16 +47.00,0.00,17.00,0.39,1.55,0.24 +74.00,0.00,44.00,0.38,1.66,0.29 +28.60,1.00,0.00,1.08,1.75,0.22 +29.90,0.00,0.00,0.38,1.67,0.28 +18.10,0.00,0.00,1.30,1.80,0.30 +24.60,1.00,0.00,0.55,1.81,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.57,1.60,0.22 +28.80,1.00,0.00,1.28,1.94,0.59 +53.00,0.00,23.00,0.42,1.69,0.26 +56.00,0.00,26.00,0.58,1.78,0.36 +89.00,0.00,59.00,0.40,1.83,0.39 +71.00,0.00,41.00,0.61,1.74,0.24 +10.90,1.00,0.00,0.75,1.53,0.19 +45.00,0.00,15.00,0.73,1.75,0.23 +87.00,0.00,57.00,0.50,1.76,0.28 +92.00,0.00,62.00,0.43,1.72,0.27 +64.00,0.00,34.00,0.55,1.72,0.25 +53.00,0.00,23.00,0.31,1.56,0.29 +92.00,0.00,62.00,0.31,1.58,0.31 +71.00,0.00,41.00,0.41,1.86,0.40 +20.30,0.00,0.00,0.68,1.54,0.21 +65.00,0.00,35.00,0.32,1.60,0.31 +20.30,1.00,12.00,0.60,1.70,0.36 +41.00,0.00,11.00,0.82,1.60,0.18 +71.00,0.00,41.00,0.41,1.85,0.40 +30.00,0.00,0.00,0.88,1.67,0.25 +22.80,0.00,0.00,0.82,1.60,0.16 +43.00,0.00,13.00,0.73,1.72,0.23 +63.20,1.00,39.00,0.46,1.67,0.28 +81.00,0.00,51.00,0.34,1.59,0.27 +17.40,0.00,0.00,0.77,1.79,0.26 +61.00,0.00,31.00,0.45,1.63,0.24 +30.00,0.00,0.00,0.82,1.64,0.18 +41.00,0.00,11.00,0.75,1.90,0.25 +39.00,1.00,20.00,0.54,1.56,0.20 +52.20,1.00,28.00,0.33,1.56,0.26 +66.00,0.00,36.00,0.50,1.65,0.24 +13.10,0.00,0.00,0.56,1.66,0.22 +72.70,1.00,60.00,0.56,1.72,0.31 +17.50,0.00,0.00,0.60,1.70,0.36 +11.70,1.00,0.00,1.50,1.73,0.27 +85.00,0.00,55.00,0.45,1.53,0.27 +2.80,0.00,0.00,0.79,1.54,0.18 +90.00,0.00,60.00,0.58,1.69,0.28 +44.00,0.00,14.00,0.46,1.70,0.25 +101.00,0.00,71.00,0.50,1.63,0.25 +73.00,0.00,43.00,0.44,1.72,0.26 +25.20,1.00,18.00,0.35,1.63,0.33 +30.00,0.00,0.00,1.07,1.63,0.23 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.58,1.62,0.25 +62.70,1.00,34.00,0.40,1.69,0.28 +72.00,0.00,42.00,0.55,1.73,0.24 +66.90,1.00,62.00,0.82,1.56,0.17 +57.10,1.00,39.00,0.59,1.57,0.20 +64.00,0.00,34.00,0.38,1.67,0.29 +65.10,1.00,39.00,0.53,1.57,0.18 +91.00,0.00,61.00,0.36,1.64,0.29 +22.80,1.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.82,1.58,0.17 +23.80,1.00,0.00,0.60,1.52,0.18 +58.00,0.00,28.00,0.33,1.57,0.27 +58.30,1.00,53.00,0.40,1.67,0.26 +106.00,0.00,76.00,0.34,1.55,0.25 +86.70,1.00,60.00,0.39,1.57,0.23 +38.20,1.00,16.00,0.46,1.72,0.28 +57.00,0.00,27.00,0.61,1.52,0.18 +44.00,0.00,14.00,0.64,1.87,0.25 +74.00,0.00,44.00,0.32,1.60,0.28 +68.00,0.00,38.00,0.43,1.70,0.26 +21.40,0.00,0.00,0.47,1.69,0.30 +32.80,1.00,28.00,0.71,1.74,0.36 +55.00,0.00,25.00,0.43,1.56,0.28 +91.00,0.00,61.00,0.38,1.67,0.28 +98.00,0.00,68.00,0.35,1.62,0.30 +79.30,1.00,69.00,0.57,1.52,0.17 +42.00,0.00,12.00,0.96,1.64,0.17 +78.00,0.00,48.00,0.44,1.70,0.27 +41.00,0.00,11.00,0.78,1.59,0.18 +92.00,0.00,62.00,0.64,1.70,0.24 +72.00,0.00,42.00,0.36,1.60,0.25 +64.40,1.00,39.00,1.01,1.78,0.25 +44.00,0.00,14.00,0.48,1.70,0.24 +11.70,0.00,0.00,0.44,1.71,0.26 +16.70,0.00,0.00,0.34,1.61,0.31 +47.00,0.00,17.00,0.57,1.53,0.19 +69.00,0.00,39.00,0.45,1.66,0.28 +19.10,1.00,18.00,0.54,1.53,0.17 +93.00,0.00,63.00,0.58,1.72,0.24 +9.90,0.00,0.00,0.39,1.69,0.28 +9.40,0.00,0.00,0.93,1.83,0.52 +5.50,0.00,0.00,0.44,1.68,0.27 +87.00,0.00,57.00,0.37,1.56,0.25 +72.00,0.00,42.00,0.42,1.84,0.40 +6.80,0.00,0.00,0.87,1.67,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +96.00,0.00,66.00,0.47,1.64,0.23 +42.00,0.00,12.00,0.68,1.61,0.29 +18.50,1.00,0.00,0.79,1.63,0.18 +72.00,0.00,42.00,0.39,1.68,0.28 +51.00,0.00,21.00,0.68,1.53,0.15 +48.00,0.00,18.00,0.33,1.64,0.29 +98.00,0.00,68.00,0.38,1.64,0.26 +82.00,0.00,52.00,0.51,1.64,0.27 +42.00,0.00,12.00,0.49,1.82,0.41 +13.30,0.00,0.00,1.01,1.61,0.18 +24.80,0.00,0.00,0.82,1.56,0.18 +24.50,1.00,12.00,0.34,1.62,0.27 +42.60,1.00,31.00,0.71,1.74,0.36 +30.00,0.00,0.00,0.91,1.69,0.25 +25.40,0.00,0.00,0.42,1.67,0.25 +91.00,0.00,61.00,0.34,1.64,0.30 +72.00,0.00,42.00,0.72,1.82,0.42 +42.00,0.00,12.00,0.47,1.60,0.26 +39.00,0.00,9.00,0.88,1.70,0.19 +94.00,0.00,64.00,0.51,1.80,0.28 +9.60,1.00,0.00,0.57,1.50,0.16 +10.80,1.00,0.00,0.81,1.55,0.20 +76.00,0.00,46.00,0.32,1.61,0.29 +72.00,0.00,42.00,0.56,1.79,0.37 +62.60,1.00,54.00,0.47,1.69,0.30 +53.00,0.00,23.00,0.31,1.55,0.30 +52.00,0.00,22.00,0.38,1.68,0.28 +44.80,1.00,36.00,0.32,1.59,0.28 +51.00,0.00,21.00,0.84,1.57,0.17 +30.00,0.00,0.00,1.08,1.76,0.22 +95.50,1.00,76.00,0.53,1.70,0.29 +47.00,0.00,17.00,0.53,1.65,0.24 +69.10,1.00,55.00,0.38,1.56,0.25 +18.90,0.00,0.00,0.81,1.61,0.17 +50.00,0.00,20.00,0.58,1.53,0.19 +62.70,1.00,57.00,0.44,1.62,0.25 +13.30,1.00,0.00,1.00,1.77,0.24 +30.00,0.00,0.00,0.75,1.79,0.39 +30.00,0.00,0.00,0.48,1.64,0.27 +59.00,0.00,29.00,0.54,1.61,0.22 +22.60,0.00,0.00,0.31,1.58,0.29 +43.00,0.00,13.00,0.84,1.75,0.24 +2.70,0.00,0.00,0.60,1.70,0.28 +25.40,0.00,0.00,0.76,1.74,0.25 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.81,1.79,0.39 +81.50,1.00,61.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.36,1.65,0.32 +25.00,1.00,0.00,0.82,1.56,0.18 +70.00,0.00,40.00,0.42,1.90,0.41 +25.20,0.00,0.00,0.56,1.68,0.23 +94.80,1.00,67.00,0.45,1.74,0.28 +30.00,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.81,1.79,0.41 +59.00,0.00,29.00,0.53,1.65,0.22 +83.00,0.00,53.00,0.46,1.72,0.27 +56.00,0.00,26.00,0.79,1.59,0.15 +30.00,0.00,0.00,0.66,1.52,0.19 +50.00,0.00,20.00,0.43,1.61,0.25 +30.00,0.00,0.00,0.63,1.54,0.20 +92.00,0.00,62.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.85,1.81,0.40 +30.00,0.00,0.00,0.63,1.51,0.18 +63.00,0.00,33.00,0.52,1.57,0.20 +42.10,1.00,36.00,0.47,1.67,0.26 +66.00,0.00,36.00,0.47,1.64,0.26 +34.00,0.00,4.00,0.48,1.55,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +1.00,0.00,0.00,0.47,1.72,0.26 +9.90,0.00,0.00,0.79,1.56,0.16 +53.90,1.00,44.00,0.37,1.66,0.29 +30.00,0.00,0.00,0.73,1.80,0.43 +48.00,0.00,18.00,0.53,1.55,0.18 +53.10,1.00,31.00,0.88,1.71,0.19 +32.10,1.00,31.00,0.62,1.79,0.25 +30.00,0.00,0.00,0.58,1.53,0.17 +77.20,1.00,68.00,0.34,1.62,0.31 +46.00,0.00,16.00,0.46,1.68,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +45.00,0.00,15.00,0.44,1.66,0.25 +71.00,0.00,41.00,0.54,1.82,0.28 +15.00,1.00,0.00,0.67,1.77,0.36 +30.00,0.00,0.00,0.84,1.75,0.24 +30.00,0.00,0.00,0.61,1.55,0.21 +47.80,1.00,35.00,0.35,1.64,0.31 +6.80,0.00,0.00,0.91,1.63,0.30 +60.00,0.00,30.00,0.71,1.55,0.15 +61.00,0.00,31.00,0.50,1.66,0.28 +56.60,1.00,55.00,0.40,1.58,0.27 +26.80,1.00,0.00,0.79,1.59,0.15 +18.40,1.00,0.00,0.63,1.68,0.23 +52.00,0.00,22.00,0.37,1.64,0.27 +3.10,0.00,0.00,0.50,1.62,0.26 +30.00,1.00,0.00,0.38,1.56,0.24 +30.00,0.00,0.00,1.08,1.77,0.26 +20.00,0.00,0.00,0.49,1.69,0.25 +50.00,0.00,20.00,0.66,1.50,0.17 +25.00,1.00,20.00,1.30,1.95,0.60 +63.00,0.00,33.00,0.62,1.61,0.23 +69.00,0.00,39.00,0.40,1.57,0.27 +25.70,1.00,10.00,0.71,1.56,0.17 +57.00,0.00,27.00,0.42,1.68,0.26 +9.40,0.00,0.00,0.37,1.65,0.29 +72.00,0.00,42.00,0.65,1.80,0.38 +70.80,1.00,42.00,0.43,1.84,0.39 +61.00,0.00,31.00,0.56,1.56,0.17 +22.30,0.00,0.00,0.98,1.60,0.17 +49.00,0.00,19.00,0.72,1.51,0.18 +66.00,0.00,36.00,0.47,1.65,0.24 +96.00,0.00,66.00,0.55,1.66,0.22 +29.00,0.00,0.00,0.75,1.56,0.21 +42.00,0.00,12.00,0.55,1.62,0.25 +66.00,0.00,36.00,0.36,1.62,0.28 +4.20,0.00,0.00,0.45,1.73,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +23.30,0.00,0.00,0.83,1.70,0.22 +42.00,0.00,12.00,0.52,1.61,0.25 +29.10,0.00,0.00,0.89,1.72,0.20 +106.00,0.00,76.00,0.33,1.56,0.27 +85.00,0.00,55.00,0.39,1.58,0.26 +30.00,0.00,0.00,0.79,1.55,0.17 +55.00,0.00,25.00,0.58,1.67,0.27 +45.00,0.00,15.00,0.52,1.67,0.24 +66.00,0.00,36.00,0.48,1.65,0.24 +99.00,0.00,69.00,0.56,1.52,0.17 +51.00,0.00,21.00,0.40,1.67,0.26 +108.00,0.00,78.00,0.62,1.53,0.18 +76.00,1.00,62.00,0.67,1.52,0.19 +44.00,0.00,14.00,0.58,1.68,0.27 +5.40,0.00,0.00,0.52,1.76,0.37 +88.00,0.00,58.00,0.63,1.68,0.23 +52.00,0.00,22.00,0.38,1.67,0.28 +85.00,0.00,55.00,0.38,1.54,0.28 +26.60,0.00,0.00,1.18,1.66,0.20 +43.00,0.00,13.00,0.46,1.66,0.25 +53.00,0.00,23.00,0.68,1.56,0.22 +98.00,0.00,68.00,0.37,1.64,0.28 +63.00,0.00,33.00,0.42,1.70,0.28 +75.50,1.00,60.00,0.40,1.66,0.27 +50.00,0.00,20.00,0.58,1.70,0.26 +43.30,1.00,39.00,1.02,1.78,0.25 +31.00,0.00,1.00,0.86,1.71,0.22 +25.20,1.00,0.00,0.36,1.63,0.30 +30.00,0.00,0.00,1.04,1.76,0.21 +93.00,0.00,63.00,0.35,1.66,0.31 +14.20,0.00,0.00,0.74,1.64,0.27 +61.00,0.00,31.00,0.61,1.55,0.21 +43.00,0.00,13.00,0.47,1.67,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +30.00,0.00,0.00,0.70,1.50,0.17 +42.80,1.00,17.00,0.39,1.55,0.24 +81.70,1.00,60.00,0.68,1.58,0.24 +20.10,0.00,0.00,0.78,1.78,0.42 +64.00,0.00,34.00,0.33,1.61,0.31 +30.00,0.00,0.00,0.38,1.67,0.28 +88.00,0.00,58.00,0.60,1.74,0.24 +50.00,0.00,20.00,0.40,1.59,0.24 +92.00,0.00,62.00,0.44,1.73,0.27 +13.30,0.00,0.00,0.65,1.52,0.19 +78.00,0.00,48.00,0.51,1.76,0.27 +30.00,0.00,0.00,0.40,1.58,0.27 +72.00,0.00,42.00,0.72,1.82,0.41 +30.00,0.00,0.00,0.32,1.55,0.27 +34.00,0.00,4.00,0.65,1.61,0.26 +31.00,0.00,1.00,0.61,1.60,0.26 +55.00,0.00,25.00,0.41,1.51,0.26 +98.00,0.00,68.00,0.36,1.63,0.29 +5.30,0.00,0.00,0.85,1.79,0.39 +48.00,0.00,18.00,0.38,1.57,0.23 +73.40,1.00,53.00,0.51,1.58,0.20 +83.00,0.00,53.00,0.52,1.57,0.20 +91.00,0.00,61.00,0.34,1.63,0.30 +54.00,0.00,24.00,0.54,1.56,0.18 +48.00,0.00,18.00,0.90,1.69,0.25 +27.80,0.00,0.00,0.51,1.63,0.30 +96.00,0.00,66.00,0.46,1.65,0.24 +52.00,0.00,22.00,0.42,1.62,0.25 +44.00,0.00,14.00,0.44,1.71,0.26 +42.00,0.00,12.00,0.50,1.64,0.22 +56.00,0.00,26.00,0.50,1.61,0.28 +46.90,1.00,44.00,0.32,1.60,0.28 +30.00,0.00,0.00,0.46,1.70,0.27 +72.00,0.00,42.00,0.73,1.82,0.43 +20.30,1.00,15.00,0.99,1.61,0.17 +61.20,1.00,60.00,0.38,1.61,0.25 +47.00,0.00,17.00,0.57,1.74,0.24 +63.00,0.00,33.00,0.56,1.54,0.20 +63.00,0.00,33.00,0.57,1.54,0.20 +37.00,0.00,7.00,0.51,1.58,0.20 +46.60,1.00,39.00,0.66,1.52,0.19 +67.00,0.00,37.00,0.61,1.74,0.32 +50.00,0.00,20.00,0.53,1.57,0.20 +78.00,0.00,48.00,0.45,1.71,0.27 +20.20,0.00,0.00,0.40,1.58,0.27 +41.00,0.00,11.00,0.46,1.72,0.28 +8.30,0.00,0.00,1.29,1.80,0.30 +46.00,0.00,16.00,0.45,1.67,0.26 +48.00,0.00,18.00,0.73,1.52,0.18 +59.20,1.00,41.00,0.68,1.68,0.23 +74.00,0.00,44.00,0.38,1.68,0.29 +19.50,0.00,0.00,0.43,1.68,0.28 +42.00,0.00,12.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.33,1.60,0.31 +48.00,0.00,18.00,0.86,1.65,0.24 +86.00,0.00,56.00,0.52,1.77,0.27 +63.00,0.00,33.00,0.50,1.65,0.24 +101.00,0.00,71.00,0.42,1.67,0.25 +53.00,0.00,23.00,0.31,1.56,0.31 +48.00,0.00,18.00,0.53,1.59,0.18 +61.00,0.00,31.00,0.56,1.54,0.18 +28.30,0.00,0.00,0.99,1.77,0.21 +78.60,1.00,78.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.86,1.57,0.21 +36.60,1.00,33.00,0.61,1.67,0.23 +50.50,1.00,36.00,0.35,1.60,0.28 +95.20,1.00,71.00,0.34,1.47,0.26 +51.10,1.00,38.00,0.77,1.64,0.28 +30.00,0.00,0.00,0.45,1.62,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +29.90,1.00,14.00,0.56,1.68,0.25 +73.00,0.00,43.00,0.44,1.73,0.26 +90.00,0.00,60.00,0.40,1.66,0.27 +86.00,0.00,56.00,0.43,1.71,0.26 +71.00,0.00,41.00,0.35,1.60,0.27 +32.70,1.00,10.00,1.09,1.62,0.19 +41.00,0.00,11.00,0.69,1.79,0.24 +30.00,0.00,0.00,0.46,1.62,0.26 +74.00,0.00,44.00,0.32,1.58,0.31 +43.60,1.00,40.00,0.47,1.67,0.24 +47.00,0.00,17.00,0.42,1.59,0.24 +73.00,0.00,43.00,0.44,1.73,0.27 +69.00,0.00,39.00,0.44,1.65,0.28 +12.30,0.00,0.00,0.31,1.61,0.30 +30.00,0.00,0.00,0.81,1.79,0.42 +32.50,1.00,19.00,0.82,1.70,0.24 +98.00,0.00,68.00,0.43,1.57,0.25 +74.00,0.00,44.00,0.40,1.80,0.38 +66.00,0.00,36.00,0.44,1.71,0.33 +62.00,0.00,32.00,0.60,1.60,0.26 +30.00,0.00,0.00,0.55,1.82,0.28 +51.00,0.00,21.00,0.33,1.60,0.30 +79.00,0.00,49.00,0.47,1.67,0.25 +92.00,0.00,62.00,0.46,1.73,0.27 +91.00,0.00,61.00,0.37,1.66,0.28 +30.00,0.00,0.00,0.69,1.77,0.38 +63.00,0.00,33.00,0.57,1.66,0.24 +92.00,0.00,62.00,0.70,1.53,0.20 +72.00,0.00,42.00,0.36,1.61,0.25 +47.00,0.00,17.00,0.38,1.69,0.28 +11.20,0.00,0.00,0.70,1.51,0.15 +31.00,0.00,1.00,0.32,1.57,0.27 +30.00,0.00,0.00,0.59,1.61,0.25 +92.00,0.00,62.00,0.36,1.63,0.30 +72.00,0.00,42.00,0.31,1.57,0.31 +17.30,0.00,0.00,0.58,1.73,0.31 +30.00,0.00,0.00,0.74,1.64,0.24 +101.00,0.00,71.00,0.51,1.79,0.28 +14.60,0.00,0.00,0.67,1.54,0.21 +30.00,0.00,0.00,0.61,1.59,0.27 +15.20,0.00,0.00,0.63,1.55,0.21 +44.00,0.00,14.00,0.46,1.70,0.25 +30.00,0.00,0.00,0.62,1.60,0.28 +47.00,0.00,17.00,0.78,1.57,0.16 +8.80,0.00,0.00,1.13,1.77,0.27 +47.00,0.00,17.00,0.38,1.67,0.29 +7.00,1.00,0.00,0.92,1.73,0.27 +65.00,0.00,35.00,0.56,1.67,0.33 +82.00,0.00,52.00,0.47,1.68,0.25 +38.50,1.00,31.00,0.69,1.77,0.25 +44.00,0.00,14.00,0.40,1.50,0.26 +51.00,0.00,21.00,0.34,1.61,0.31 +51.50,1.00,23.00,0.35,1.60,0.27 +20.80,0.00,0.00,0.60,1.66,0.23 +57.70,1.00,29.00,0.47,1.64,0.24 +7.90,1.00,0.00,1.03,1.76,0.25 +40.00,0.00,10.00,0.75,1.79,0.45 +63.00,0.00,33.00,0.43,1.70,0.27 +38.70,1.00,33.00,1.01,1.61,0.23 +66.00,0.00,36.00,0.45,1.67,0.26 +43.00,0.00,13.00,0.44,1.74,0.28 +44.00,0.00,14.00,0.47,1.71,0.25 +57.00,0.00,27.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.36,1.63,0.29 +63.00,0.00,33.00,0.42,1.70,0.27 +46.00,0.00,16.00,0.47,1.68,0.25 +78.00,0.00,48.00,0.44,1.70,0.27 +107.00,0.00,77.00,0.39,1.61,0.25 +24.10,0.00,0.00,0.63,1.69,0.24 +63.00,0.00,33.00,0.52,1.65,0.23 +6.80,0.00,0.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.54,1.82,0.29 +35.60,1.00,31.00,0.59,1.54,0.20 +45.00,0.00,15.00,0.74,1.75,0.23 +30.00,0.00,0.00,0.65,1.66,0.23 +72.00,0.00,42.00,0.50,1.78,0.38 +4.70,0.00,0.00,0.75,1.79,0.39 +55.00,0.00,25.00,0.69,1.90,0.25 +29.40,0.00,0.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.37,1.54,0.28 +44.00,0.00,14.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.54,1.56,0.18 +30.00,0.00,0.00,0.61,1.56,0.20 +30.00,0.00,0.00,0.70,1.56,0.19 +57.10,1.00,33.00,0.60,1.55,0.21 +6.90,0.00,0.00,0.35,1.56,0.27 +49.00,0.00,19.00,0.86,1.57,0.18 +30.00,0.00,0.00,1.00,1.78,0.22 +45.00,0.00,15.00,0.43,1.66,0.24 +7.10,0.00,0.00,0.48,1.66,0.24 +47.00,0.00,17.00,0.38,1.69,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +91.00,0.00,61.00,0.39,1.68,0.28 +72.00,0.00,42.00,0.54,1.73,0.24 +40.60,1.00,30.00,0.32,1.70,0.29 +30.00,0.00,0.00,1.04,1.76,0.21 +58.00,0.00,28.00,0.66,1.74,0.34 +10.80,0.00,0.00,0.43,1.73,0.27 +40.00,0.00,10.00,0.97,1.67,0.20 +66.00,0.00,36.00,0.46,1.69,0.26 +49.00,0.00,19.00,0.80,1.66,0.25 +39.50,1.00,20.00,0.59,1.53,0.19 +107.00,0.00,77.00,0.40,1.61,0.24 +30.00,0.00,0.00,0.72,1.54,0.20 +30.00,0.00,0.00,0.67,1.64,0.24 +44.00,0.00,14.00,0.64,1.69,0.30 +62.40,1.00,36.00,0.46,1.67,0.26 +40.00,0.00,10.00,0.91,1.73,0.20 +86.00,0.00,56.00,0.50,1.64,0.22 +98.00,0.00,68.00,0.33,1.60,0.31 +50.40,1.00,39.00,1.01,1.77,0.24 +53.00,0.00,23.00,0.59,1.69,0.27 +69.00,0.00,39.00,0.44,1.64,0.27 +30.00,0.00,0.00,0.63,1.54,0.20 +13.80,0.00,0.00,0.51,1.63,0.30 +8.90,0.00,0.00,1.07,1.70,0.22 +44.00,0.00,14.00,0.67,1.53,0.18 +30.00,0.00,0.00,0.57,1.51,0.16 +54.20,1.00,50.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.44,1.70,0.28 +45.00,0.00,15.00,1.01,1.61,0.17 +61.00,0.00,31.00,0.33,1.60,0.31 +30.00,0.00,0.00,1.04,1.75,0.21 +52.00,0.00,22.00,0.67,1.54,0.21 +63.00,0.00,33.00,0.31,1.59,0.29 +83.00,0.00,53.00,0.51,1.57,0.21 +56.00,0.00,26.00,0.79,1.59,0.16 +10.00,0.00,0.00,0.41,1.51,0.27 +11.40,1.00,0.00,1.49,1.73,0.27 +3.50,0.00,0.00,0.42,1.70,0.26 +13.70,0.00,0.00,0.85,1.58,0.17 +39.90,1.00,28.00,0.70,1.74,0.36 +18.80,0.00,0.00,0.40,1.58,0.24 +7.70,0.00,0.00,0.80,1.67,0.31 +30.00,0.00,0.00,0.41,1.62,0.24 +4.60,0.00,0.00,0.35,1.55,0.27 +45.00,0.00,15.00,0.61,1.52,0.17 +76.10,1.00,60.00,0.56,1.64,0.24 +18.00,0.00,0.00,0.42,1.67,0.26 +98.00,0.00,68.00,0.40,1.66,0.26 +0.10,0.00,0.00,0.59,1.70,0.27 +65.00,0.00,35.00,0.32,1.59,0.31 +8.20,1.00,0.00,1.50,1.73,0.27 +60.00,0.00,30.00,0.44,1.71,0.25 +52.00,0.00,22.00,0.63,1.55,0.21 +37.00,0.00,7.00,0.54,1.54,0.19 +30.00,0.00,0.00,1.22,1.77,0.24 +30.00,0.00,0.00,0.54,1.56,0.18 +91.00,0.00,61.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.88,1.67,0.25 +48.40,1.00,19.00,0.77,1.63,0.22 +44.00,0.00,14.00,0.71,2.05,0.26 +50.00,0.00,20.00,0.65,1.51,0.19 +40.00,0.00,10.00,0.36,1.57,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.60,1.69,0.23 +101.00,0.00,71.00,0.39,1.61,0.24 +68.50,1.00,53.00,0.61,1.69,0.23 +70.00,0.00,40.00,0.43,1.57,0.25 +74.00,0.00,44.00,0.38,1.68,0.29 +72.00,0.00,42.00,0.43,1.71,0.27 +25.40,1.00,0.00,1.17,1.73,0.23 +40.00,0.00,10.00,0.54,1.53,0.19 +5.10,0.00,0.00,0.34,1.61,0.29 +69.00,0.00,39.00,0.59,1.57,0.20 +44.00,0.00,14.00,0.51,1.83,0.29 +8.20,0.00,0.00,0.38,1.81,0.37 +95.30,1.00,66.00,0.60,1.68,0.23 +4.20,0.00,0.00,0.39,1.55,0.24 +87.00,0.00,57.00,0.36,1.58,0.26 +44.00,0.00,14.00,0.69,1.53,0.20 +86.00,0.00,56.00,0.55,1.71,0.24 +66.00,0.00,36.00,0.47,1.64,0.26 +91.00,0.00,61.00,0.35,1.60,0.27 +83.70,1.00,58.00,0.62,1.68,0.23 +17.10,1.00,17.00,0.48,1.67,0.24 +101.00,0.00,71.00,0.55,1.66,0.28 +6.20,0.00,0.00,0.52,1.58,0.20 +30.00,0.00,0.00,0.60,1.56,0.20 +50.00,0.00,20.00,0.44,1.58,0.25 +45.00,0.00,15.00,0.43,1.61,0.25 +58.40,1.00,29.00,0.54,1.61,0.22 +30.00,0.00,0.00,0.66,1.77,0.36 +50.00,0.00,20.00,0.66,1.77,0.25 +5.70,0.00,0.00,0.74,1.60,0.22 +30.00,0.00,0.00,0.35,1.54,0.28 +13.00,0.00,0.00,0.50,1.78,0.39 +39.00,0.00,9.00,0.37,1.66,0.30 +74.00,0.00,44.00,0.56,1.67,0.33 +91.00,0.00,61.00,0.34,1.62,0.29 +62.40,1.00,38.00,0.95,1.73,0.24 +30.00,0.00,0.00,0.31,1.53,0.27 +50.00,0.00,20.00,0.56,1.70,0.24 +106.00,0.00,76.00,0.53,1.70,0.29 +28.40,0.00,0.00,0.82,1.57,0.17 +71.00,0.00,41.00,0.61,1.49,0.15 +44.00,0.00,14.00,0.54,1.59,0.18 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.74,1.56,0.15 +88.00,0.00,58.00,0.63,1.71,0.23 +50.00,0.00,20.00,0.55,1.54,0.19 +76.00,0.00,46.00,0.31,1.61,0.30 +10.20,0.00,0.00,0.51,1.82,0.28 +34.80,1.00,29.00,0.52,1.64,0.22 +47.00,0.00,17.00,0.42,1.60,0.24 +106.00,0.00,76.00,0.34,1.55,0.26 +98.00,0.00,68.00,0.34,1.61,0.31 +43.00,0.00,13.00,0.41,1.68,0.26 +42.00,0.00,12.00,0.47,1.60,0.27 +49.00,0.00,19.00,0.33,1.72,0.28 +78.00,0.00,48.00,0.49,1.67,0.24 +101.00,0.00,71.00,0.37,1.56,0.24 +101.00,0.00,71.00,0.38,1.57,0.28 +7.60,0.00,0.00,0.66,1.58,0.22 +0.60,0.00,0.00,0.58,1.57,0.21 +47.00,0.00,17.00,0.51,1.71,0.30 +88.00,0.00,58.00,0.61,1.67,0.24 +30.00,0.00,0.00,1.01,1.77,0.21 +101.00,0.00,71.00,0.37,1.55,0.25 +30.00,0.00,0.00,0.69,1.53,0.19 +63.20,1.00,37.00,1.06,1.61,0.18 +33.10,1.00,18.00,0.54,1.53,0.17 +50.00,0.00,20.00,0.44,1.65,0.25 +69.00,0.00,39.00,0.46,1.68,0.24 +24.00,0.00,0.00,0.36,1.65,0.29 +106.00,0.00,76.00,0.32,1.56,0.27 +61.00,0.00,31.00,0.49,1.65,0.24 +30.00,0.00,0.00,1.06,1.76,0.21 +60.30,1.00,39.00,0.33,1.59,0.27 +38.00,1.00,25.00,0.41,1.51,0.27 +106.00,0.00,76.00,0.51,1.69,0.28 +15.70,0.00,0.00,0.63,1.68,0.23 +14.70,0.00,0.00,0.81,1.60,0.16 +58.00,0.00,28.00,0.42,1.56,0.28 +50.00,0.00,20.00,0.59,1.53,0.19 +37.40,1.00,22.00,0.67,1.54,0.21 +74.00,0.00,44.00,0.34,1.61,0.31 +73.00,0.00,43.00,0.39,1.67,0.27 +7.50,0.00,0.00,0.44,1.57,0.26 +90.00,0.00,60.00,0.37,1.56,0.23 +68.60,1.00,68.00,0.43,1.71,0.26 +19.70,0.00,0.00,0.81,1.80,0.40 +50.00,0.00,20.00,0.68,1.77,0.25 +30.00,0.00,0.00,0.66,1.53,0.16 +48.00,0.00,18.00,0.35,1.64,0.32 +59.00,0.00,29.00,0.40,1.68,0.29 +30.00,0.00,0.00,0.97,1.75,0.30 +49.70,1.00,42.00,0.81,1.80,0.40 +18.00,1.00,0.00,0.67,1.54,0.18 +60.50,1.00,48.00,0.50,1.70,0.26 +9.80,0.00,0.00,0.70,1.73,0.36 +78.90,1.00,61.00,0.35,1.59,0.27 +62.70,1.00,52.00,0.88,1.71,0.20 +85.00,0.00,55.00,0.40,1.57,0.27 +64.80,1.00,39.00,1.05,1.79,0.28 +5.90,0.00,0.00,0.89,1.69,0.19 +58.00,0.00,28.00,0.32,1.56,0.27 +49.00,0.00,19.00,0.48,1.87,0.41 +92.00,0.00,62.00,0.61,1.69,0.23 +53.00,0.00,23.00,0.46,1.55,0.27 +12.50,0.00,0.00,0.47,1.64,0.26 +22.20,1.00,20.00,0.70,1.52,0.15 +31.00,0.00,1.00,0.88,1.72,0.21 +46.00,0.00,16.00,0.45,1.66,0.26 +66.00,0.00,36.00,0.32,1.59,0.28 +4.10,0.00,0.00,0.70,1.55,0.16 +12.40,0.00,0.00,0.73,1.53,0.16 +14.80,0.00,0.00,0.55,1.68,0.30 +32.90,1.00,28.00,0.69,1.73,0.35 +45.00,0.00,15.00,0.75,1.76,0.24 +70.60,1.00,59.00,0.62,1.59,0.27 +66.60,1.00,53.00,0.51,1.57,0.20 +49.00,0.00,19.00,0.69,1.53,0.20 +92.00,0.00,62.00,0.37,1.65,0.30 +63.00,0.00,33.00,0.50,1.69,0.25 +44.00,0.00,14.00,0.51,1.61,0.21 +60.00,0.00,30.00,0.45,1.65,0.24 +36.00,1.00,14.00,1.14,1.80,0.27 +71.00,0.00,41.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.83,1.64,0.19 +18.60,1.00,0.00,0.79,1.78,0.42 +69.00,0.00,39.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.66,1.77,0.36 +92.00,0.00,62.00,0.34,1.71,0.33 +20.10,0.00,0.00,0.59,1.60,0.25 +38.00,0.00,8.00,0.50,1.79,0.39 +43.00,0.00,13.00,0.47,1.66,0.25 +44.00,0.00,14.00,0.53,1.58,0.19 +50.00,0.00,20.00,0.49,1.64,0.22 +90.60,1.00,66.00,0.48,1.63,0.23 +48.00,0.00,18.00,0.61,1.69,0.23 +90.40,1.00,76.00,0.33,1.55,0.26 +19.70,1.00,19.00,0.79,1.55,0.17 +30.00,0.00,0.00,0.98,1.77,0.23 +61.00,0.00,31.00,0.35,1.62,0.31 +63.00,0.00,33.00,0.32,1.59,0.31 +45.00,0.00,15.00,0.40,1.68,0.28 +45.00,0.00,15.00,0.43,1.61,0.25 +16.10,1.00,12.00,0.33,1.60,0.27 +9.30,0.00,0.00,0.82,1.60,0.16 +88.00,0.00,58.00,0.42,1.67,0.25 +44.00,0.00,14.00,0.68,1.58,0.25 +15.50,0.00,0.00,0.78,1.53,0.19 +51.00,0.00,21.00,0.43,1.73,0.27 +8.80,0.00,0.00,0.72,1.69,0.23 +50.00,0.00,20.00,0.58,1.70,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +5.10,0.00,0.00,0.31,1.57,0.31 +26.10,1.00,17.00,0.63,1.56,0.22 +70.00,0.00,40.00,0.38,1.59,0.24 +67.10,1.00,44.00,0.56,1.70,0.23 +15.50,0.00,0.00,0.43,1.71,0.25 +41.00,0.00,11.00,0.73,1.57,0.17 +69.00,0.00,39.00,0.34,1.55,0.28 +61.00,0.00,31.00,0.43,1.73,0.26 +63.00,0.00,33.00,0.38,1.81,0.37 +66.30,1.00,62.00,0.43,1.73,0.27 +60.80,1.00,58.00,0.63,1.68,0.23 +28.70,0.00,0.00,1.06,1.78,0.29 +23.70,0.00,0.00,0.40,1.60,0.24 +30.00,0.00,0.00,0.56,1.58,0.18 +47.00,0.00,17.00,0.65,1.56,0.22 +53.00,0.00,23.00,0.31,1.57,0.29 +46.00,0.00,16.00,0.45,1.67,0.26 +23.00,0.00,0.00,0.34,1.65,0.29 +30.00,0.00,0.00,0.53,1.55,0.20 +62.00,1.00,32.00,0.68,1.56,0.22 +82.00,0.00,52.00,0.50,1.62,0.26 +30.00,0.00,0.00,0.41,1.71,0.27 +45.00,0.00,15.00,0.73,1.75,0.23 +48.00,0.00,18.00,0.61,1.59,0.27 +49.00,0.00,19.00,0.71,1.52,0.18 +35.00,0.00,5.00,0.64,1.54,0.20 +12.10,0.00,0.00,0.65,1.53,0.16 +43.20,1.00,20.00,0.56,1.70,0.23 +58.00,0.00,28.00,0.35,1.55,0.27 +30.00,0.00,0.00,0.82,1.80,0.40 +22.40,0.00,0.00,0.83,1.67,0.25 +31.20,1.00,15.00,1.11,1.64,0.18 +10.20,0.00,0.00,0.68,1.59,0.24 +74.00,0.00,44.00,0.35,1.65,0.28 +59.00,0.00,29.00,0.61,1.76,0.26 +65.00,0.00,35.00,0.93,1.75,0.21 +63.00,0.00,33.00,0.43,1.70,0.27 +96.00,0.00,66.00,0.47,1.64,0.23 +37.80,1.00,14.00,0.52,1.58,0.20 +49.80,1.00,32.00,0.99,1.63,0.18 +43.00,0.00,13.00,0.54,1.53,0.16 +72.00,0.00,42.00,0.55,1.68,0.23 +30.00,0.00,0.00,0.37,1.65,0.29 +85.00,0.00,55.00,0.39,1.58,0.26 +30.00,0.00,0.00,0.39,1.57,0.24 +74.00,0.00,44.00,0.40,1.80,0.38 +72.70,1.00,60.00,0.58,1.73,0.31 +56.00,0.00,26.00,0.79,1.59,0.15 +55.50,1.00,53.00,0.82,1.68,0.23 +108.00,0.00,78.00,0.46,1.72,0.27 +42.80,1.00,39.00,0.46,1.69,0.24 +58.00,0.00,28.00,0.32,1.72,0.29 +44.00,0.00,14.00,0.42,1.52,0.27 +30.00,0.00,0.00,0.72,1.89,0.26 +41.00,0.00,11.00,0.84,1.56,0.18 +43.60,1.00,31.00,0.34,1.60,0.25 +68.00,0.00,38.00,0.73,1.62,0.27 +40.00,0.00,10.00,0.91,1.59,0.17 +3.50,0.00,0.00,0.50,1.70,0.26 +49.00,0.00,19.00,0.82,1.70,0.24 +30.00,0.00,0.00,0.36,1.63,0.30 +83.00,0.00,53.00,0.45,1.73,0.27 +32.80,1.00,18.00,0.87,1.65,0.24 +40.00,0.00,10.00,0.70,1.55,0.17 +9.00,0.00,0.00,0.38,1.66,0.27 +47.00,0.00,17.00,0.80,1.65,0.27 +2.80,0.00,0.00,0.73,1.57,0.17 +45.00,0.00,15.00,0.46,1.73,0.28 +61.00,0.00,31.00,0.56,1.54,0.18 +85.30,1.00,68.00,0.36,1.63,0.29 +33.70,1.00,10.00,0.87,1.58,0.16 +48.00,0.00,18.00,0.50,1.58,0.21 +69.00,0.00,39.00,0.54,1.56,0.18 +56.00,0.00,26.00,0.53,1.65,0.23 +44.00,0.00,14.00,0.47,1.71,0.25 +30.00,0.00,0.00,0.60,1.64,0.24 +43.00,0.00,13.00,0.41,1.68,0.26 +71.00,0.00,41.00,0.58,1.50,0.16 +55.20,1.00,50.00,0.60,1.64,0.23 +32.90,1.00,5.00,0.61,1.60,0.28 +91.00,0.00,61.00,0.39,1.68,0.28 +50.00,0.00,20.00,0.73,1.77,0.24 +73.00,0.00,43.00,0.70,1.54,0.20 +60.00,0.00,30.00,0.70,1.55,0.16 +26.80,1.00,0.00,0.88,1.67,0.25 +91.00,0.00,61.00,0.36,1.64,0.29 +63.00,0.00,33.00,0.57,1.65,0.24 +52.00,0.00,22.00,0.43,1.67,0.25 +50.00,0.00,20.00,0.43,1.72,0.27 +100.50,1.00,76.00,0.52,1.70,0.30 +6.90,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.56,1.79,0.28 +47.00,0.00,17.00,0.56,1.73,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +10.10,0.00,0.00,0.59,1.70,0.28 +72.00,0.00,42.00,0.43,1.82,0.39 +76.00,0.00,46.00,0.31,1.61,0.30 +24.10,0.00,0.00,1.17,1.76,0.22 +89.20,1.00,68.00,0.42,1.68,0.26 +51.00,0.00,21.00,0.52,1.65,0.28 +76.30,1.00,62.00,0.68,1.53,0.19 +59.00,0.00,29.00,0.41,1.67,0.25 +23.50,0.00,0.00,0.47,1.66,0.24 +19.60,0.00,0.00,0.32,1.51,0.27 +92.00,0.00,62.00,0.82,1.56,0.17 +53.20,1.00,30.00,0.70,1.55,0.15 +53.00,0.00,23.00,0.40,1.67,0.27 +46.00,0.00,16.00,0.33,1.47,0.26 +88.00,0.00,58.00,0.42,1.67,0.25 +50.00,0.00,20.00,0.56,1.60,0.22 +58.00,0.00,28.00,0.34,1.57,0.25 +48.00,0.00,18.00,0.86,1.65,0.24 +3.10,0.00,0.00,0.51,1.76,0.37 +44.00,0.00,14.00,0.64,1.71,0.31 +4.70,0.00,0.00,0.93,1.69,0.25 +9.40,0.00,0.00,0.79,1.79,0.42 +72.00,0.00,42.00,0.35,1.58,0.26 +72.00,0.00,42.00,0.31,1.58,0.31 +26.30,0.00,0.00,0.71,1.65,0.30 +22.00,0.00,0.00,0.39,1.59,0.26 +18.40,0.00,0.00,0.71,1.74,0.36 +47.00,0.00,17.00,0.53,1.65,0.24 +40.00,0.00,10.00,0.89,1.64,0.18 +30.00,0.00,0.00,0.65,1.77,0.35 +83.00,0.00,53.00,0.65,1.73,0.24 +29.80,0.00,0.00,0.73,1.82,0.43 +2.40,0.00,0.00,0.33,1.56,0.26 +100.60,1.00,77.00,0.39,1.61,0.25 +45.00,0.00,15.00,0.64,1.50,0.15 +30.00,0.00,0.00,0.49,1.67,0.27 +2.50,0.00,0.00,1.08,1.75,0.21 +98.00,0.00,68.00,0.32,1.60,0.31 +50.00,0.00,20.00,0.57,1.53,0.19 +78.00,0.00,48.00,0.50,1.70,0.25 +41.70,1.00,19.00,0.64,1.60,0.28 +30.00,0.00,0.00,0.63,1.56,0.22 +97.40,1.00,68.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.89,1.72,0.26 +21.30,0.00,0.00,0.56,1.55,0.17 +58.00,0.00,28.00,0.31,1.57,0.28 +23.90,0.00,0.00,0.59,1.58,0.22 +61.00,0.00,31.00,0.55,1.68,0.30 +61.00,0.00,31.00,0.51,1.66,0.28 +48.00,0.00,18.00,0.52,1.59,0.20 +60.00,0.00,30.00,0.45,1.73,0.26 +52.00,0.00,22.00,0.41,1.62,0.25 +16.60,1.00,12.00,0.57,1.68,0.29 +33.00,1.00,30.00,0.32,1.64,0.28 +61.00,0.00,31.00,0.49,1.65,0.24 +26.60,0.00,0.00,0.55,1.72,0.30 +16.90,0.00,0.00,0.64,1.58,0.22 +30.00,0.00,0.00,0.85,1.81,0.40 +65.00,0.00,35.00,1.03,1.77,0.21 +26.10,1.00,0.00,1.02,1.77,0.21 +53.00,0.00,23.00,0.39,1.55,0.24 +78.40,1.00,60.00,0.61,1.75,0.33 +61.00,0.00,31.00,0.58,1.53,0.19 +72.30,1.00,50.00,0.59,1.58,0.22 +30.00,0.00,0.00,0.41,1.59,0.24 +19.00,0.00,0.00,0.54,1.58,0.25 +36.00,0.00,6.00,0.40,1.58,0.27 +53.00,0.00,23.00,0.71,1.59,0.22 +50.00,0.00,20.00,0.77,1.67,0.29 +48.00,0.00,18.00,0.71,1.68,0.22 +92.00,0.00,62.00,0.41,1.70,0.27 +58.00,0.00,28.00,0.32,1.74,0.29 +71.00,0.00,41.00,0.36,1.60,0.25 +61.00,0.00,31.00,0.58,1.54,0.20 +69.00,0.00,39.00,0.48,1.69,0.29 +43.00,0.00,13.00,0.38,1.68,0.28 +66.00,0.00,36.00,0.54,1.69,0.23 +38.70,1.00,31.00,0.58,1.53,0.19 +43.70,1.00,20.00,0.65,1.51,0.18 +69.00,0.00,39.00,0.44,1.70,0.25 +21.20,0.00,0.00,0.40,1.84,0.40 +30.00,0.00,0.00,0.79,1.79,0.42 +82.00,0.00,52.00,0.47,1.67,0.25 +90.00,0.00,60.00,0.56,1.72,0.31 +68.00,0.00,38.00,0.32,1.60,0.31 +83.00,0.00,53.00,0.65,1.75,0.24 +50.00,0.00,20.00,0.56,1.60,0.22 +28.50,1.00,19.00,0.32,1.61,0.29 +40.10,1.00,37.00,0.61,1.75,0.24 +30.00,0.00,0.00,0.75,1.53,0.19 +61.00,0.00,31.00,0.32,1.58,0.31 +19.00,0.00,0.00,0.86,1.57,0.16 +40.80,1.00,35.00,1.08,1.76,0.23 +43.00,0.00,13.00,0.54,1.53,0.16 +30.00,0.00,0.00,0.36,1.64,0.29 +47.40,1.00,19.00,0.80,1.72,0.25 +30.00,0.00,0.00,0.36,1.64,0.31 +61.00,0.00,31.00,0.32,1.58,0.31 +83.00,0.00,53.00,0.38,1.67,0.28 +5.00,0.00,0.00,0.38,1.67,0.28 +58.00,0.00,28.00,0.46,1.70,0.26 +67.00,0.00,37.00,0.41,1.68,0.26 +74.00,0.00,44.00,0.33,1.60,0.28 +67.00,0.00,37.00,0.88,1.58,0.16 +64.00,0.00,34.00,0.39,1.68,0.28 +61.00,0.00,31.00,0.43,1.73,0.26 +72.40,1.00,60.00,0.58,1.69,0.28 +7.50,0.00,0.00,0.38,1.59,0.24 +72.00,0.00,42.00,0.48,1.83,0.40 +51.00,0.00,21.00,0.39,1.66,0.27 +5.40,0.00,0.00,0.59,1.70,0.27 +22.60,1.00,0.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.37,1.64,0.29 +88.00,0.00,58.00,0.42,1.70,0.26 +41.00,0.00,11.00,0.58,1.68,0.32 +77.00,0.00,47.00,0.55,1.67,0.23 +30.00,0.00,0.00,0.82,1.67,0.25 +60.00,0.00,30.00,0.32,1.65,0.28 +82.60,1.00,68.00,0.40,1.56,0.25 +78.00,0.00,48.00,0.50,1.70,0.26 +22.30,0.00,0.00,0.51,1.57,0.21 +51.00,0.00,21.00,0.39,1.66,0.27 +17.00,0.00,0.00,0.80,1.80,0.40 +39.70,1.00,28.00,0.32,1.56,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +30.00,0.00,0.00,1.00,1.75,0.25 +30.00,0.00,0.00,0.79,1.79,0.39 +5.80,0.00,0.00,0.64,1.51,0.18 +69.00,0.00,39.00,0.43,1.71,0.26 +21.00,1.00,14.00,0.83,1.80,0.49 +45.00,0.00,15.00,0.51,1.66,0.24 +52.00,0.00,22.00,0.37,1.66,0.27 +101.00,0.00,71.00,0.50,1.63,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +92.00,0.00,62.00,0.44,1.73,0.27 +49.00,0.00,19.00,0.78,1.74,0.25 +16.90,1.00,13.00,0.80,1.57,0.16 +43.00,0.00,13.00,0.37,1.67,0.29 +10.00,0.00,0.00,0.61,1.70,0.23 +74.00,0.00,44.00,0.32,1.63,0.29 +42.00,0.00,12.00,0.57,1.68,0.27 +29.50,1.00,14.00,0.36,1.56,0.28 +30.00,0.00,0.00,0.71,1.54,0.20 +61.00,0.00,31.00,0.68,1.73,0.35 +22.80,1.00,0.00,1.05,1.86,0.55 +84.00,0.00,54.00,0.45,1.62,0.25 +2.50,0.00,0.00,0.79,1.54,0.18 +106.00,0.00,76.00,0.33,1.57,0.27 +91.00,0.00,61.00,0.35,1.68,0.32 +30.00,0.00,0.00,1.06,1.63,0.18 +30.00,0.00,0.00,0.90,1.73,0.20 +43.00,0.00,13.00,0.46,1.66,0.25 +41.90,1.00,35.00,0.35,1.64,0.31 +6.80,0.00,0.00,0.54,1.56,0.18 +61.00,0.00,31.00,0.65,1.72,0.34 +30.00,0.00,0.00,0.82,1.80,0.39 +30.00,0.00,0.00,0.38,1.67,0.28 +99.20,1.00,78.00,0.67,1.54,0.18 +61.00,0.00,31.00,0.70,1.53,0.19 +57.00,0.00,27.00,0.42,1.66,0.26 +0.50,0.00,0.00,0.97,1.84,0.53 +45.00,0.00,15.00,0.44,1.67,0.25 +12.80,1.00,9.00,0.62,1.58,0.22 +30.00,0.00,0.00,0.68,1.53,0.17 +19.60,0.00,0.00,0.52,1.59,0.20 +30.00,0.00,0.00,0.36,1.53,0.27 +62.00,0.00,32.00,0.52,1.57,0.25 +60.00,0.00,30.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.63,1.63,0.24 +29.60,0.00,0.00,0.41,1.59,0.24 +60.00,0.00,30.00,0.44,1.73,0.28 +30.00,0.00,0.00,0.47,1.55,0.25 +54.00,0.00,24.00,0.32,1.59,0.32 +30.00,0.00,0.00,0.40,1.69,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +21.10,0.00,0.00,0.74,1.79,0.39 +60.40,1.00,36.00,0.94,1.66,0.19 +66.60,1.00,54.00,0.49,1.65,0.28 +90.00,0.00,60.00,0.41,1.59,0.24 +5.60,0.00,0.00,0.94,1.66,0.19 +59.00,0.00,29.00,0.41,1.68,0.27 +3.30,0.00,0.00,0.97,1.85,0.54 +72.00,0.00,42.00,0.50,1.77,0.38 +87.00,0.00,57.00,0.48,1.74,0.27 +98.00,0.00,68.00,0.53,1.81,0.29 +19.10,1.00,10.00,0.93,1.74,0.20 +43.00,0.00,13.00,0.65,1.59,0.22 +81.10,1.00,55.00,0.48,1.62,0.28 +33.00,1.00,21.00,0.73,1.77,0.25 +22.70,1.00,0.00,0.84,1.67,0.18 +44.00,0.00,14.00,0.76,1.95,0.25 +63.00,0.00,33.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.73,1.70,0.23 +100.20,1.00,71.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.70,1.50,0.17 +15.50,0.00,0.00,0.59,1.57,0.22 +59.70,1.00,35.00,0.55,1.67,0.32 +57.00,0.00,27.00,0.43,1.67,0.26 +99.90,1.00,76.00,0.52,1.70,0.28 +83.00,0.00,53.00,0.69,1.75,0.25 +108.00,0.00,78.00,0.70,1.55,0.17 +4.50,0.00,0.00,0.32,1.58,0.31 +50.60,1.00,23.00,0.55,1.73,0.32 +49.00,0.00,19.00,0.33,1.72,0.28 +72.00,0.00,42.00,0.50,1.82,0.28 +63.00,0.00,33.00,0.60,1.57,0.23 +38.90,1.00,28.00,0.40,1.56,0.28 +71.00,0.00,41.00,0.40,1.61,0.26 +56.00,0.00,26.00,0.53,1.66,0.23 +9.10,0.00,0.00,0.34,1.62,0.30 +30.00,0.00,0.00,0.82,1.63,0.19 +30.00,0.00,0.00,0.44,1.69,0.28 +39.00,0.00,9.00,0.41,1.87,0.41 +45.00,0.00,15.00,0.41,1.68,0.26 +82.50,1.00,62.00,0.31,1.57,0.30 +63.60,1.00,55.00,0.48,1.61,0.28 +38.00,0.00,8.00,0.53,1.54,0.18 +30.00,0.00,0.00,0.72,1.71,0.23 +83.00,0.00,53.00,0.46,1.72,0.27 +44.00,0.00,14.00,0.52,1.59,0.20 +53.00,0.00,23.00,0.47,1.71,0.33 +69.00,0.00,39.00,0.44,1.58,0.25 +70.00,0.00,40.00,0.51,1.70,0.24 +44.00,0.00,14.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.33,1.59,0.31 +98.00,0.00,68.00,0.36,1.63,0.28 +58.20,1.00,31.00,0.43,1.72,0.26 +60.40,1.00,55.00,0.49,1.64,0.28 +23.50,1.00,22.00,0.67,1.54,0.21 +52.50,1.00,47.00,0.55,1.63,0.24 +71.30,1.00,68.00,0.42,1.57,0.25 +30.00,0.00,0.00,0.80,1.80,0.39 +83.00,0.00,53.00,0.51,1.57,0.20 +48.20,1.00,40.00,1.19,1.74,0.24 +48.00,0.00,18.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.59,1.61,0.25 +68.00,0.00,38.00,0.72,1.61,0.27 +87.00,0.00,57.00,0.36,1.58,0.26 +66.00,0.00,36.00,0.32,1.59,0.28 +3.90,0.00,0.00,0.91,1.60,0.17 +47.00,0.00,17.00,0.38,1.67,0.29 +71.30,1.00,43.00,0.71,1.54,0.20 +74.00,0.00,44.00,0.33,1.59,0.31 +33.40,1.00,7.00,0.69,1.54,0.17 +30.00,0.00,0.00,0.60,1.77,0.25 +56.00,0.00,26.00,0.36,1.69,0.32 +61.00,0.00,31.00,0.34,1.60,0.26 +67.10,1.00,60.00,0.60,1.74,0.32 +26.40,0.00,0.00,0.82,1.55,0.18 +43.80,1.00,31.00,0.63,1.70,0.33 +57.00,0.00,27.00,0.42,1.67,0.26 +97.30,1.00,74.00,0.30,1.57,0.29 +40.00,0.00,10.00,0.70,1.55,0.17 +76.00,0.00,46.00,0.68,1.69,0.23 +30.00,0.00,0.00,0.73,1.52,0.16 +87.10,1.00,76.00,0.34,1.55,0.26 +83.00,0.00,53.00,0.59,1.67,0.23 +43.00,0.00,13.00,0.47,1.67,0.26 +57.30,1.00,33.00,0.59,1.57,0.22 +56.40,1.00,53.00,0.51,1.58,0.20 +64.00,0.00,34.00,0.36,1.63,0.30 +90.00,0.00,60.00,0.46,1.65,0.26 +19.60,0.00,0.00,0.45,1.66,0.25 +49.00,0.00,19.00,0.84,1.56,0.18 +74.00,0.00,44.00,0.34,1.64,0.28 +3.20,0.00,0.00,0.72,1.62,0.29 +30.00,0.00,0.00,0.63,1.67,0.23 +91.00,0.00,61.00,0.38,1.68,0.28 +91.00,0.00,61.00,0.37,1.66,0.28 +81.00,0.00,51.00,0.32,1.61,0.29 +69.50,1.00,56.00,0.36,1.67,0.31 +43.00,0.00,13.00,0.68,1.74,0.41 +44.00,0.00,14.00,0.68,1.59,0.24 +81.40,1.00,59.00,0.58,1.57,0.26 +71.00,0.00,41.00,0.66,1.68,0.23 +101.00,0.00,71.00,0.41,1.65,0.25 +8.30,0.00,0.00,0.93,1.69,0.25 +49.00,0.00,19.00,0.70,1.52,0.19 +30.00,0.00,0.00,0.66,1.65,0.24 +44.00,0.00,14.00,0.42,1.70,0.26 +62.00,0.00,32.00,0.33,1.59,0.31 +60.00,0.00,30.00,0.32,1.72,0.29 +92.00,0.00,62.00,0.43,1.73,0.27 +59.00,0.00,29.00,0.49,1.62,0.22 +11.80,0.00,0.00,0.39,1.61,0.24 +31.70,1.00,10.00,0.74,1.79,0.45 +61.00,0.00,31.00,0.43,1.72,0.26 +75.00,0.00,45.00,0.57,1.65,0.25 +83.00,0.00,53.00,0.52,1.57,0.20 +3.80,0.00,0.00,0.44,1.71,0.26 +31.00,0.00,1.00,0.33,1.56,0.26 +2.10,0.00,0.00,0.90,1.83,0.51 +42.00,0.00,12.00,0.58,1.69,0.27 +58.00,0.00,28.00,0.66,1.74,0.34 +30.00,0.00,0.00,0.55,1.83,0.28 +71.00,0.00,41.00,0.38,1.59,0.26 +87.00,0.00,57.00,0.36,1.57,0.25 +59.00,0.00,29.00,0.59,1.77,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +69.00,0.00,39.00,0.44,1.58,0.25 +106.00,0.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,1.01,1.76,0.31 +74.00,0.00,44.00,0.36,1.69,0.33 +12.00,0.00,0.00,0.78,1.58,0.15 +84.00,0.00,54.00,0.49,1.65,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +62.00,0.00,32.00,0.35,1.65,0.32 +108.00,0.00,78.00,0.56,1.64,0.25 +81.00,0.00,51.00,0.47,1.64,0.26 +45.00,0.00,15.00,0.61,1.55,0.21 +18.00,1.00,0.00,1.49,1.73,0.27 +33.20,1.00,33.00,0.80,1.55,0.20 +81.00,0.00,51.00,0.32,1.63,0.31 +30.00,0.00,0.00,0.84,1.71,0.23 +79.00,0.00,49.00,0.54,1.66,0.31 +57.00,1.00,37.00,0.61,1.70,0.23 +30.00,0.00,0.00,0.82,1.61,0.17 +44.00,0.00,14.00,0.48,1.56,0.27 +0.80,0.00,0.00,0.90,1.67,0.26 +63.00,0.00,33.00,0.55,1.71,0.25 +42.00,0.00,12.00,0.33,1.59,0.27 +41.80,1.00,38.00,0.76,1.64,0.28 +30.00,0.00,0.00,0.32,1.59,0.31 +82.00,0.00,52.00,0.50,1.61,0.27 +39.00,0.00,9.00,0.36,1.54,0.28 +44.00,0.00,14.00,0.55,1.67,0.24 +59.00,0.00,29.00,0.59,1.74,0.24 +72.00,0.00,42.00,0.42,1.86,0.40 +63.00,0.00,33.00,0.32,1.60,0.28 +49.00,1.00,42.00,0.70,1.81,0.40 +25.90,1.00,0.00,0.91,1.83,0.42 +56.30,1.00,53.00,0.52,1.57,0.20 +47.00,0.00,17.00,0.48,1.67,0.24 +20.50,0.00,0.00,0.67,1.72,0.35 +11.20,0.00,0.00,0.76,1.63,0.29 +45.00,0.00,15.00,0.63,1.49,0.15 +9.40,0.00,0.00,0.83,1.71,0.23 +69.00,0.00,39.00,1.01,1.78,0.25 +13.80,0.00,0.00,0.49,1.64,0.28 +30.00,0.00,0.00,0.43,1.72,0.26 +76.10,1.00,55.00,0.40,1.57,0.28 +74.00,0.00,44.00,0.38,1.68,0.29 +70.00,0.00,40.00,0.49,1.68,0.24 +61.00,0.00,31.00,0.33,1.59,0.31 +26.50,0.00,0.00,0.41,1.70,0.27 +101.00,0.00,71.00,0.37,1.57,0.28 +0.30,0.00,0.00,0.57,1.73,0.31 +15.60,0.00,0.00,0.40,1.67,0.26 +51.20,1.00,29.00,0.58,1.67,0.27 +90.00,0.00,60.00,0.57,1.68,0.29 +33.00,0.00,3.00,0.62,1.58,0.22 +88.00,0.00,58.00,0.57,1.75,0.25 +2.30,0.00,0.00,0.49,1.68,0.25 +101.00,0.00,71.00,0.37,1.56,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +80.00,0.00,50.00,0.60,1.68,0.23 +106.00,0.00,76.00,0.33,1.56,0.27 +51.00,0.00,21.00,0.85,1.57,0.18 +47.00,0.00,17.00,0.40,1.57,0.28 +90.00,0.00,60.00,0.62,1.76,0.33 +43.00,0.00,13.00,0.86,1.76,0.24 +40.00,1.00,35.00,0.35,1.66,0.28 +44.00,0.00,14.00,0.51,1.60,0.21 +15.40,1.00,0.00,0.93,1.70,0.24 +61.00,0.00,31.00,0.32,1.58,0.31 +14.30,0.00,0.00,0.63,1.68,0.23 +16.70,0.00,0.00,0.70,1.69,0.22 +60.00,0.00,30.00,0.45,1.74,0.26 +59.00,0.00,29.00,0.41,1.68,0.26 +8.70,0.00,0.00,0.34,1.59,0.29 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +30.00,0.00,0.00,1.03,1.76,0.21 +27.20,1.00,12.00,0.61,1.71,0.36 +41.00,0.00,11.00,0.47,1.60,0.26 +67.00,0.00,37.00,0.44,1.71,0.28 +61.00,0.00,31.00,0.53,1.67,0.29 +81.60,1.00,60.00,0.51,1.70,0.28 +90.00,0.00,60.00,0.58,1.69,0.27 +67.50,1.00,60.00,0.58,1.69,0.27 +31.00,0.00,1.00,0.61,1.60,0.26 +44.00,0.00,14.00,0.85,1.69,0.19 +56.00,0.00,26.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.75,1.80,0.40 +88.00,0.00,58.00,0.53,1.80,0.29 +51.00,0.00,21.00,0.59,1.58,0.23 +87.00,0.00,57.00,0.60,1.62,0.25 +59.30,1.00,46.00,0.70,1.69,0.22 +78.00,0.00,48.00,0.52,1.79,0.29 +88.30,1.00,71.00,0.40,1.61,0.24 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.32,1.56,0.27 +49.00,0.00,19.00,0.71,1.52,0.18 +19.40,1.00,0.00,0.82,1.62,0.18 +76.20,1.00,76.00,0.53,1.70,0.29 +5.80,0.00,0.00,0.34,1.47,0.26 +30.00,0.00,0.00,0.74,1.78,0.38 +65.00,0.00,35.00,0.54,1.66,0.31 +45.00,0.00,15.00,0.45,1.73,0.27 +9.40,1.00,0.00,0.89,1.82,0.51 +14.10,0.00,0.00,0.50,1.69,0.25 +30.00,0.00,0.00,0.54,1.55,0.18 +28.20,1.00,18.00,0.39,1.57,0.23 +30.00,0.00,0.00,0.59,1.75,0.33 +28.80,0.00,0.00,0.98,1.85,0.54 +70.00,0.00,40.00,0.40,1.60,0.24 +16.00,1.00,0.00,1.28,1.77,0.26 +101.00,0.00,71.00,0.39,1.61,0.24 +36.00,0.00,6.00,0.41,1.69,0.26 +44.00,0.00,14.00,0.44,1.70,0.25 +71.00,0.00,41.00,0.69,1.68,0.23 +59.40,1.00,53.00,0.83,1.69,0.22 +34.00,0.00,4.00,0.36,1.66,0.32 +47.00,0.00,17.00,0.74,1.52,0.17 +29.20,1.00,20.00,0.97,1.84,0.53 +44.00,0.00,14.00,0.62,1.80,0.24 +30.00,0.00,0.00,0.63,1.67,0.23 +30.00,0.00,0.00,0.76,1.55,0.16 +3.90,0.00,0.00,0.56,1.62,0.25 +30.00,0.00,0.00,0.72,1.53,0.16 +98.00,0.00,68.00,0.36,1.63,0.28 +86.00,0.00,56.00,0.60,1.70,0.23 +38.00,0.00,8.00,0.53,1.54,0.17 +11.90,0.00,0.00,0.33,1.47,0.26 +47.00,0.00,17.00,0.54,1.67,0.24 +70.00,0.00,40.00,0.39,1.59,0.24 +41.10,1.00,26.00,0.77,1.58,0.15 +50.40,1.00,28.00,0.68,1.74,0.35 +101.00,0.00,71.00,0.39,1.61,0.24 +30.00,0.00,0.00,0.56,1.57,0.20 +6.00,0.00,0.00,0.40,1.67,0.27 +45.00,0.00,15.00,0.73,1.68,0.23 +20.50,0.00,0.00,0.32,1.61,0.29 +76.00,0.00,46.00,0.33,1.56,0.27 +101.00,0.00,71.00,0.35,1.50,0.27 +49.00,0.00,19.00,0.33,1.67,0.27 +4.10,0.00,0.00,0.43,1.57,0.25 +90.00,0.00,60.00,0.40,1.65,0.26 +9.30,0.00,0.00,0.78,1.74,0.25 +53.00,0.00,23.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.84,1.65,0.18 +48.00,0.00,18.00,0.45,1.64,0.25 +30.00,0.00,0.00,0.32,1.55,0.27 +61.00,0.00,31.00,0.69,1.53,0.19 +98.00,0.00,68.00,0.39,1.64,0.26 +20.50,1.00,0.00,0.99,1.85,0.54 +71.00,0.00,41.00,0.83,1.67,0.25 +7.50,0.00,0.00,0.41,1.56,0.25 +0.70,0.00,0.00,0.40,1.57,0.24 +98.00,0.00,68.00,0.52,1.82,0.29 +64.00,0.00,34.00,0.38,1.66,0.30 +52.00,0.00,22.00,0.42,1.66,0.26 +63.00,0.00,33.00,0.49,1.69,0.25 +59.00,0.00,29.00,0.49,1.62,0.23 +74.00,0.00,44.00,0.36,1.64,0.31 +30.00,0.00,0.00,0.78,1.57,0.16 +61.00,0.00,31.00,0.35,1.66,0.32 +108.00,0.00,78.00,0.45,1.65,0.26 +30.00,0.00,0.00,0.95,1.63,0.18 +7.10,1.00,0.00,0.75,1.80,0.40 +30.30,1.00,21.00,0.41,1.68,0.26 +41.60,1.00,26.00,0.77,1.58,0.15 +53.00,0.00,23.00,0.38,1.65,0.26 +41.40,1.00,37.00,1.09,1.62,0.19 +97.00,0.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.75,1.80,0.40 +61.00,0.00,31.00,0.61,1.55,0.21 +4.70,0.00,0.00,0.58,1.69,0.34 +5.00,0.00,0.00,0.52,1.57,0.25 +80.70,1.00,63.00,0.58,1.72,0.24 +82.00,0.00,52.00,0.47,1.61,0.25 +17.00,0.00,0.00,0.60,1.58,0.26 +73.00,0.00,43.00,0.39,1.66,0.27 +74.00,0.00,44.00,0.56,1.60,0.22 +29.40,0.00,0.00,0.39,1.59,0.26 +14.80,0.00,0.00,0.67,1.52,0.18 +86.00,0.00,56.00,0.36,1.67,0.31 +7.30,0.00,0.00,0.33,1.61,0.28 +94.00,0.00,64.00,0.48,1.76,0.28 +30.00,0.00,0.00,0.55,1.58,0.19 +20.00,0.00,0.00,0.66,1.80,0.38 +32.60,1.00,22.00,0.62,1.56,0.22 +44.00,0.00,14.00,0.42,1.70,0.25 +59.00,0.00,29.00,0.63,1.71,0.30 +53.00,0.00,23.00,0.41,1.59,0.24 +13.30,0.00,0.00,0.67,1.52,0.18 +15.90,0.00,0.00,0.39,1.69,0.28 +56.00,0.00,26.00,0.58,1.78,0.35 +30.00,0.00,0.00,0.87,1.70,0.19 +31.70,1.00,22.00,0.75,1.62,0.22 +74.00,0.00,44.00,0.37,1.66,0.28 +57.00,0.00,27.00,0.45,1.70,0.26 +89.00,0.00,59.00,0.61,1.58,0.27 +26.00,0.00,0.00,0.35,1.73,0.34 +64.00,0.00,34.00,0.37,1.64,0.30 +30.00,0.00,0.00,0.53,1.56,0.18 +52.00,0.00,22.00,0.43,1.60,0.24 +101.00,0.00,71.00,0.38,1.59,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +49.00,0.00,19.00,0.51,1.89,0.45 +29.10,0.00,0.00,1.08,1.62,0.19 +2.70,0.00,0.00,1.12,1.86,0.49 +22.30,0.00,0.00,0.56,1.70,0.23 +41.20,1.00,39.00,1.05,1.78,0.27 +92.00,0.00,62.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.55,1.58,0.26 +30.00,0.00,0.00,0.37,1.65,0.29 +37.00,0.00,7.00,0.55,1.54,0.19 +99.00,0.00,69.00,0.60,1.50,0.17 +30.00,0.00,0.00,0.73,1.78,0.38 +19.60,0.00,0.00,0.84,1.57,0.18 +30.00,0.00,0.00,0.39,1.66,0.27 +66.00,0.00,36.00,0.44,1.68,0.31 +30.00,0.00,0.00,0.53,1.56,0.18 +56.00,0.00,26.00,0.36,1.69,0.32 +72.00,0.00,42.00,0.49,1.83,0.40 +70.00,0.00,40.00,0.40,1.60,0.24 +37.00,0.00,7.00,0.75,1.67,0.28 +27.20,0.00,0.00,0.42,1.68,0.26 +4.90,0.00,0.00,0.32,1.60,0.30 +69.00,0.00,39.00,0.60,1.56,0.20 +44.00,0.00,14.00,0.55,1.67,0.24 +58.00,0.00,28.00,0.34,1.56,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +3.10,0.00,0.00,0.53,1.70,0.23 +87.00,0.00,57.00,0.38,1.56,0.24 +30.00,0.00,0.00,0.32,1.61,0.28 +91.00,0.00,61.00,0.35,1.68,0.32 +44.00,0.00,14.00,0.44,1.71,0.26 +18.10,1.00,0.00,0.61,1.69,0.23 +63.00,0.00,33.00,0.57,1.61,0.23 +45.00,0.00,15.00,0.42,1.72,0.27 +14.30,0.00,0.00,0.82,1.64,0.18 +54.40,1.00,28.00,0.35,1.60,0.27 +75.20,1.00,60.00,0.40,1.65,0.26 +67.00,0.00,37.00,0.89,1.58,0.16 +22.00,1.00,21.00,0.88,1.58,0.18 +4.30,0.00,0.00,0.46,1.56,0.25 +66.00,0.00,36.00,0.46,1.70,0.27 +71.00,0.00,41.00,0.35,1.60,0.27 +92.00,0.00,62.00,0.36,1.63,0.30 +45.00,0.00,15.00,0.43,1.67,0.24 +69.00,0.00,39.00,0.44,1.71,0.28 +30.00,0.00,0.00,0.42,1.67,0.25 +42.00,0.00,12.00,0.50,1.74,0.27 +71.00,0.00,41.00,0.59,1.50,0.16 +39.00,0.00,9.00,0.44,1.91,0.42 +4.00,0.00,0.00,0.95,1.75,0.23 +23.60,0.00,0.00,0.77,1.53,0.18 +47.00,0.00,17.00,0.63,1.53,0.16 +37.00,0.00,7.00,0.54,1.54,0.19 +42.00,0.00,12.00,0.60,1.70,0.36 +30.00,0.00,0.00,0.75,1.56,0.15 +45.00,0.00,15.00,0.43,1.61,0.25 +50.00,0.00,20.00,0.60,1.86,0.26 +35.00,0.00,5.00,0.47,1.69,0.26 +7.50,0.00,0.00,0.64,1.89,0.25 +50.00,0.00,20.00,0.40,1.58,0.24 +106.00,0.00,76.00,0.34,1.55,0.26 +61.00,0.00,31.00,0.71,1.51,0.18 +48.00,0.00,18.00,0.56,1.51,0.17 +41.70,1.00,39.00,0.59,1.57,0.20 +101.00,0.00,71.00,0.64,1.56,0.21 +30.00,0.00,0.00,0.63,1.77,0.35 +66.00,0.00,36.00,0.49,1.68,0.24 +42.90,1.00,42.00,0.45,1.82,0.39 +48.00,0.00,18.00,0.35,1.64,0.32 +30.00,0.00,0.00,0.53,1.55,0.18 +85.00,0.00,55.00,0.40,1.58,0.27 +64.00,0.00,34.00,0.39,1.67,0.29 +47.00,0.00,17.00,0.33,1.53,0.28 +45.00,0.00,15.00,0.41,1.61,0.25 +38.00,0.00,8.00,0.53,1.54,0.17 +90.00,0.00,60.00,0.40,1.66,0.26 +1.40,0.00,0.00,0.53,1.70,0.29 +45.00,0.00,15.00,0.62,1.53,0.16 +13.50,0.00,0.00,0.59,1.70,0.26 +90.00,0.00,60.00,0.38,1.56,0.23 +97.00,0.00,67.00,0.45,1.68,0.27 +74.00,0.00,44.00,0.32,1.64,0.29 +56.00,1.00,53.00,0.77,1.63,0.29 +60.00,1.00,33.00,0.62,1.60,0.23 +66.00,0.00,36.00,0.45,1.67,0.26 +80.00,0.00,50.00,0.37,1.65,0.29 +20.10,1.00,0.00,0.73,1.54,0.20 +30.00,0.00,0.00,0.78,1.54,0.19 +90.00,0.00,60.00,0.38,1.60,0.25 +66.00,0.00,36.00,0.42,1.87,0.40 +42.00,0.00,12.00,0.51,1.83,0.43 +50.00,0.00,20.00,0.53,1.57,0.20 +90.00,0.00,60.00,0.40,1.65,0.26 +30.00,0.00,0.00,0.36,1.67,0.32 +67.40,1.00,67.00,0.58,1.53,0.19 +35.60,1.00,11.00,0.45,1.75,0.28 +51.00,0.00,21.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.66,1.52,0.18 +49.00,0.00,19.00,0.71,1.52,0.18 +69.00,0.00,39.00,0.45,1.66,0.28 +91.60,1.00,62.00,0.67,1.71,0.24 +69.00,0.00,39.00,0.34,1.55,0.27 +30.00,0.00,0.00,0.89,1.72,0.24 +62.00,0.00,32.00,0.33,1.60,0.32 +58.00,0.00,28.00,0.42,1.56,0.27 +43.00,0.00,13.00,0.87,1.76,0.24 +101.00,0.00,71.00,0.53,1.83,0.29 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.60,1.73,0.24 +17.90,0.00,0.00,0.77,1.66,0.28 +52.00,0.00,22.00,0.44,1.71,0.26 +42.00,0.00,12.00,0.33,1.60,0.27 +83.00,1.00,60.00,0.45,1.63,0.26 +30.00,0.00,0.00,0.38,1.57,0.24 +21.10,1.00,0.00,0.87,1.67,0.25 +101.00,0.00,71.00,0.39,1.61,0.24 +52.00,0.00,22.00,0.42,1.60,0.25 +30.00,0.00,0.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.37,1.54,0.28 +42.00,0.00,12.00,0.59,1.69,0.27 +68.00,0.00,38.00,0.45,1.64,0.25 +7.30,0.00,0.00,0.59,1.58,0.21 +45.00,0.00,15.00,0.43,1.61,0.25 +28.40,1.00,14.00,0.53,1.63,0.22 +63.00,0.00,33.00,0.33,1.62,0.28 +44.10,1.00,36.00,0.42,1.85,0.40 +39.70,1.00,20.00,0.68,1.50,0.17 +43.00,0.00,13.00,0.43,1.70,0.26 +63.00,0.00,33.00,0.31,1.59,0.29 +98.00,0.00,68.00,0.42,1.57,0.25 +67.00,0.00,37.00,0.44,1.69,0.28 +3.20,0.00,0.00,0.61,1.55,0.21 +11.50,0.00,0.00,0.53,1.56,0.18 +48.00,0.00,18.00,0.54,1.53,0.17 +55.00,0.00,25.00,0.41,1.51,0.27 +3.00,1.00,0.00,0.86,1.81,0.49 +45.00,0.00,15.00,0.60,1.68,0.24 +98.00,0.00,68.00,0.36,1.63,0.28 +13.30,1.00,0.00,0.70,1.53,0.20 +61.00,0.00,31.00,0.35,1.62,0.31 +48.00,0.00,18.00,0.54,1.53,0.17 +72.00,0.00,42.00,0.35,1.59,0.25 +40.00,0.00,10.00,0.43,1.87,0.45 +41.00,0.00,11.00,0.57,1.67,0.29 +50.00,0.00,20.00,0.49,1.63,0.22 +87.00,0.00,57.00,0.45,1.69,0.27 +69.00,0.00,39.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.87,1.82,0.50 +47.00,0.00,17.00,0.41,1.56,0.27 +108.00,0.00,78.00,0.38,1.59,0.24 +30.00,0.00,0.00,0.34,1.60,0.31 +20.50,1.00,0.00,0.55,1.83,0.28 +30.00,0.00,0.00,0.65,1.66,0.23 +47.00,0.00,17.00,0.67,1.52,0.19 +79.00,0.00,49.00,0.62,1.58,0.22 +53.00,0.00,23.00,0.31,1.57,0.31 +37.80,1.00,10.00,0.82,1.61,0.18 +74.00,0.00,44.00,0.54,1.83,0.29 +20.40,0.00,0.00,0.61,1.55,0.21 +51.00,0.00,21.00,0.43,1.73,0.27 +89.00,0.00,59.00,0.40,1.83,0.39 +72.00,0.00,42.00,0.53,1.75,0.26 +24.20,1.00,10.00,0.80,1.83,0.55 +30.00,0.00,0.00,0.40,1.61,0.24 +45.00,0.00,15.00,0.52,1.67,0.24 +83.00,0.00,53.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.81,1.79,0.41 +72.00,0.00,42.00,0.39,1.68,0.28 +81.00,0.00,51.00,0.34,1.58,0.27 +51.00,0.00,21.00,0.71,1.73,0.25 +18.90,0.00,0.00,0.70,1.55,0.16 +28.40,1.00,0.00,0.84,1.56,0.18 +22.20,0.00,0.00,0.43,1.69,0.26 +84.10,1.00,69.00,0.57,1.51,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +52.00,0.00,22.00,0.42,1.66,0.25 +63.90,1.00,60.00,0.58,1.69,0.27 +38.00,0.00,8.00,0.51,1.57,0.20 +44.00,0.00,14.00,0.63,1.67,0.29 +43.00,0.00,13.00,0.33,1.63,0.29 +30.00,0.00,0.00,0.70,1.51,0.17 +30.00,0.00,0.00,0.58,1.63,0.25 +20.90,0.00,0.00,0.70,1.92,0.26 +61.00,0.00,31.00,0.58,1.53,0.19 +86.00,0.00,56.00,0.54,1.71,0.25 +73.00,0.00,43.00,0.62,1.68,0.23 +60.00,0.00,30.00,0.44,1.72,0.25 +30.00,0.00,0.00,0.37,1.54,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +25.80,0.00,0.00,0.32,1.72,0.28 +4.80,0.00,0.00,0.32,1.60,0.31 +72.00,0.00,42.00,0.36,1.61,0.26 +0.20,0.00,0.00,0.67,1.52,0.19 +52.00,0.00,22.00,0.42,1.67,0.25 +91.40,1.00,68.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.81,1.80,0.40 +81.00,0.00,51.00,0.32,1.62,0.30 +106.00,0.00,76.00,0.46,1.64,0.26 +22.00,1.00,15.00,0.73,1.66,0.31 +69.00,0.00,39.00,0.33,1.58,0.27 +69.00,0.00,39.00,0.62,1.59,0.27 +43.00,0.00,13.00,0.53,1.53,0.17 +63.00,0.00,33.00,0.32,1.68,0.29 +26.20,0.00,0.00,0.76,1.64,0.28 +16.40,1.00,0.00,0.69,1.66,0.33 +67.60,1.00,39.00,0.65,1.53,0.19 +44.00,0.00,14.00,0.41,1.51,0.26 +60.00,0.00,30.00,0.37,1.67,0.30 +86.00,0.00,56.00,0.45,1.72,0.26 +30.00,0.00,0.00,1.01,1.76,0.25 +14.70,0.00,0.00,0.35,1.65,0.32 +1.10,0.00,0.00,0.57,1.79,0.26 +92.00,0.00,62.00,0.38,1.67,0.29 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.60,1.72,0.23 +58.00,0.00,28.00,0.32,1.61,0.29 +28.70,1.00,0.00,1.18,1.74,0.24 +80.00,0.00,50.00,0.38,1.66,0.28 +64.40,1.00,52.00,0.50,1.65,0.29 +73.00,0.00,43.00,0.45,1.74,0.28 +31.80,1.00,24.00,0.69,1.93,0.25 +30.00,0.00,0.00,0.91,1.74,0.21 +104.00,0.00,74.00,0.31,1.58,0.29 +28.50,1.00,0.00,0.95,1.74,0.29 +72.00,0.00,42.00,0.71,1.82,0.40 +78.80,1.00,71.00,0.43,1.69,0.26 +30.00,0.00,0.00,0.61,1.67,0.24 +44.00,0.00,14.00,0.62,1.59,0.22 +46.10,1.00,42.00,0.73,1.83,0.43 +47.00,0.00,17.00,0.53,1.66,0.24 +9.10,0.00,0.00,0.93,1.72,0.25 +43.00,0.00,13.00,0.37,1.67,0.29 +41.00,0.00,11.00,0.76,1.58,0.17 +18.20,0.00,0.00,0.69,1.51,0.15 +64.00,0.00,34.00,0.39,1.67,0.29 +87.00,0.00,57.00,0.50,1.75,0.28 +74.00,0.00,44.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.96,1.82,0.45 +60.90,1.00,32.00,0.69,1.57,0.23 +30.00,0.00,0.00,0.71,1.57,0.19 +66.00,0.00,36.00,0.97,1.67,0.20 +78.00,0.00,48.00,0.52,1.79,0.29 +50.00,0.00,20.00,0.42,1.71,0.27 +69.00,0.00,39.00,0.57,1.57,0.26 +72.00,0.00,42.00,0.36,1.65,0.29 +22.60,0.00,0.00,0.71,1.78,0.38 +60.00,0.00,30.00,0.32,1.69,0.28 +5.30,0.00,0.00,0.93,1.81,0.45 +43.00,0.00,13.00,0.46,1.66,0.25 +7.70,0.00,0.00,0.50,1.62,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +44.00,0.00,14.00,0.45,1.70,0.25 +43.00,0.00,13.00,0.47,1.67,0.25 +78.00,0.00,48.00,0.49,1.77,0.28 +13.80,0.00,0.00,0.61,1.70,0.37 +8.90,0.00,0.00,0.32,1.61,0.28 +43.00,0.00,13.00,0.47,1.67,0.25 +77.70,1.00,61.00,0.37,1.66,0.28 +74.00,0.00,44.00,0.39,1.77,0.37 +49.00,0.00,19.00,0.74,1.73,0.25 +21.00,0.00,0.00,0.39,1.58,0.26 +29.40,0.00,0.00,0.80,1.54,0.18 +17.20,1.00,0.00,0.68,1.61,0.27 +71.00,0.00,41.00,0.42,1.87,0.40 +64.10,1.00,35.00,0.31,1.59,0.29 +47.50,1.00,18.00,0.87,1.67,0.24 +57.00,0.00,27.00,0.42,1.68,0.26 +66.00,0.00,36.00,0.50,1.69,0.24 +69.00,0.00,39.00,0.44,1.70,0.25 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.76,1.64,0.24 +43.00,0.00,13.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.56,1.57,0.18 +19.80,0.00,0.00,0.99,1.61,0.17 +69.00,0.00,39.00,0.61,1.55,0.21 +90.00,0.00,60.00,0.58,1.69,0.27 +18.60,0.00,0.00,0.39,1.64,0.25 +17.60,0.00,0.00,0.62,1.49,0.15 +30.00,0.00,0.00,0.68,1.64,0.24 +30.00,0.00,0.00,0.34,1.50,0.27 +12.40,0.00,0.00,0.84,1.78,0.39 +59.00,0.00,29.00,0.41,1.67,0.26 +13.20,0.00,0.00,0.82,1.57,0.17 +34.00,0.00,4.00,0.33,1.74,0.28 +16.20,0.00,0.00,0.81,1.67,0.24 +30.00,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.59,1.69,0.35 +92.80,1.00,76.00,0.33,1.56,0.27 +74.00,0.00,44.00,0.35,1.64,0.28 +62.30,1.00,33.00,0.43,1.70,0.27 +63.00,0.00,33.00,0.62,1.68,0.23 +1.80,0.00,0.00,0.66,1.52,0.19 +47.00,0.00,17.00,0.42,1.56,0.28 +22.20,1.00,20.00,1.34,1.96,0.60 +29.80,0.00,0.00,0.63,1.58,0.21 +49.00,0.00,19.00,0.43,1.73,0.26 +19.10,1.00,0.00,0.66,1.53,0.16 +24.50,1.00,23.00,0.41,1.59,0.24 +30.00,0.00,0.00,0.32,1.73,0.28 +40.70,1.00,32.00,0.32,1.59,0.31 +24.70,0.00,0.00,0.99,1.61,0.17 +49.00,0.00,19.00,0.65,1.60,0.28 +44.00,0.00,14.00,0.47,1.76,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.32,1.54,0.27 +47.90,1.00,30.00,0.44,1.73,0.26 +87.00,0.00,57.00,0.38,1.57,0.24 +30.00,0.00,0.00,0.70,1.77,0.37 +30.00,0.00,0.00,0.46,1.70,0.27 +58.00,0.00,28.00,0.35,1.60,0.27 +56.60,1.00,39.00,0.43,1.64,0.27 +81.00,0.00,51.00,0.33,1.60,0.28 +79.00,0.00,49.00,0.70,1.59,0.26 +30.00,0.00,0.00,0.31,1.58,0.31 +43.00,0.00,13.00,0.34,1.64,0.29 +53.70,1.00,34.00,0.40,1.68,0.28 +7.10,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.88,1.67,0.25 +99.00,0.00,69.00,0.55,1.52,0.17 +47.00,0.00,17.00,0.68,1.51,0.16 +39.00,0.00,9.00,0.37,1.65,0.29 +96.00,0.00,66.00,0.54,1.65,0.22 +44.00,0.00,14.00,0.67,1.98,0.26 +45.00,0.00,15.00,0.44,1.72,0.27 +22.60,0.00,0.00,0.61,1.78,0.25 +50.20,1.00,33.00,0.95,1.59,0.22 +33.00,0.00,3.00,0.46,1.62,0.26 +52.00,0.00,22.00,0.68,1.54,0.21 +101.00,0.00,71.00,0.39,1.61,0.24 +86.00,0.00,56.00,0.55,1.81,0.28 +69.00,0.00,39.00,0.44,1.65,0.28 +11.60,0.00,0.00,0.80,1.55,0.20 +36.00,0.00,6.00,0.41,1.69,0.26 +19.00,0.00,0.00,0.97,1.75,0.30 +7.10,0.00,0.00,0.39,1.69,0.28 +52.00,0.00,22.00,0.51,1.65,0.28 +54.00,0.00,24.00,0.41,1.84,0.39 +30.00,0.00,0.00,0.85,1.81,0.49 +69.00,0.00,39.00,0.36,1.55,0.28 +29.90,1.00,0.00,0.84,1.81,0.40 +24.70,0.00,0.00,0.63,1.54,0.20 +91.00,0.00,61.00,0.36,1.64,0.29 +28.70,1.00,9.00,0.78,1.58,0.15 +30.00,0.00,0.00,1.11,1.76,0.21 +1.30,0.00,0.00,0.63,1.49,0.15 +81.50,1.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,1.21,1.79,0.29 +22.80,0.00,0.00,0.82,1.58,0.17 +38.70,1.00,10.00,1.04,1.69,0.21 +65.00,0.00,35.00,0.35,1.63,0.31 +11.10,1.00,0.00,0.81,1.61,0.17 +24.80,1.00,11.00,0.69,1.80,0.24 +63.00,0.00,33.00,0.46,1.69,0.26 +50.00,0.00,20.00,0.48,1.66,0.23 +90.00,0.00,60.00,0.35,1.65,0.31 +107.00,0.00,77.00,0.38,1.61,0.25 +45.00,0.00,15.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.69,1.61,0.27 +16.00,0.00,0.00,0.41,1.59,0.24 +35.30,1.00,29.00,0.36,1.57,0.24 +59.00,0.00,29.00,0.51,1.64,0.22 +65.00,0.00,35.00,0.36,1.64,0.30 +50.00,0.00,20.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.50,1.56,0.25 +74.00,0.00,44.00,0.38,1.76,0.36 +108.00,0.00,78.00,0.49,1.64,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +30.00,0.00,0.00,0.44,1.72,0.28 +38.10,1.00,31.00,0.67,1.72,0.35 +74.00,0.00,44.00,0.35,1.64,0.28 +30.00,0.00,0.00,0.59,1.74,0.25 +13.90,0.00,0.00,0.68,1.73,0.34 +38.00,0.00,8.00,0.37,1.67,0.30 +43.00,0.00,13.00,0.41,1.68,0.27 +18.90,0.00,0.00,0.59,1.61,0.25 +22.20,0.00,0.00,0.39,1.58,0.26 +98.00,0.00,68.00,0.40,1.66,0.26 +61.00,0.00,31.00,0.36,1.67,0.32 +43.00,0.00,13.00,0.91,1.77,0.25 +30.00,0.00,0.00,0.58,1.67,0.27 +64.00,0.00,34.00,0.36,1.63,0.30 +49.00,0.00,19.00,0.77,1.76,0.25 +33.70,1.00,19.00,0.88,1.71,0.25 +88.00,0.00,58.00,0.64,1.69,0.23 +44.00,0.00,14.00,0.58,1.78,0.26 +50.00,0.00,20.00,0.53,1.57,0.21 +44.00,0.00,14.00,0.63,1.84,0.25 +46.70,1.00,25.00,0.58,1.57,0.22 +83.00,0.00,53.00,0.55,1.65,0.22 +45.00,0.00,15.00,0.46,1.68,0.25 +82.50,1.00,60.00,0.38,1.59,0.24 +25.50,1.00,17.00,0.52,1.65,0.23 +30.00,0.00,0.00,0.34,1.50,0.27 +63.00,0.00,33.00,0.33,1.63,0.28 +43.00,0.00,13.00,0.44,1.73,0.28 +63.00,0.00,33.00,0.58,1.54,0.20 +78.00,0.00,48.00,0.52,1.79,0.29 +63.80,1.00,58.00,0.87,1.57,0.16 +100.60,1.00,77.00,0.40,1.61,0.24 +27.10,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.42,1.70,0.25 +45.00,0.00,15.00,0.41,1.70,0.27 +20.60,0.00,0.00,0.60,1.68,0.23 +30.00,0.00,0.00,0.84,1.67,0.25 +44.00,0.00,14.00,0.46,1.71,0.25 +52.00,0.00,22.00,0.37,1.64,0.27 +29.80,1.00,23.00,0.35,1.59,0.27 +9.50,0.00,0.00,0.59,1.58,0.22 +4.80,0.00,0.00,0.61,1.63,0.26 +30.00,0.00,0.00,0.60,1.56,0.20 +44.00,0.00,14.00,0.47,1.77,0.28 +49.00,0.00,19.00,0.50,1.89,0.45 +47.00,0.00,17.00,0.80,1.58,0.16 +54.00,0.00,24.00,0.62,1.56,0.22 +85.20,1.00,60.00,0.58,1.68,0.27 +43.00,0.00,13.00,0.74,1.72,0.23 +30.00,0.00,0.00,0.67,1.53,0.16 +14.20,1.00,0.00,0.73,1.81,0.43 +74.20,1.00,52.00,0.51,1.63,0.29 +67.00,0.00,37.00,0.58,1.73,0.31 +48.00,0.00,18.00,0.53,1.60,0.18 +49.00,0.00,19.00,0.33,1.71,0.28 +64.00,0.00,34.00,0.38,1.66,0.30 +69.00,0.00,39.00,0.44,1.70,0.25 +83.00,0.00,53.00,0.58,1.66,0.22 +49.00,0.00,19.00,0.32,1.72,0.28 +70.70,1.00,68.00,0.42,1.57,0.25 +17.70,0.00,0.00,0.50,1.65,0.29 +38.00,0.00,8.00,0.52,1.55,0.18 +53.90,1.00,33.00,0.57,1.62,0.23 +53.00,0.00,23.00,0.66,1.72,0.32 +85.00,0.00,55.00,0.48,1.61,0.27 +81.00,0.00,51.00,0.32,1.61,0.29 +30.00,0.00,0.00,1.24,1.68,0.20 +31.00,0.00,1.00,0.39,1.66,0.26 +30.00,0.00,0.00,0.98,1.74,0.25 +75.00,0.00,45.00,0.60,1.58,0.26 +84.00,0.00,54.00,0.52,1.71,0.30 +29.40,0.00,0.00,0.53,1.70,0.24 +91.00,0.00,61.00,0.39,1.69,0.28 +90.00,0.00,60.00,0.38,1.56,0.23 +36.00,0.00,6.00,0.40,1.58,0.27 +30.00,0.00,0.00,0.76,1.78,0.44 +30.00,0.00,0.00,0.64,1.56,0.22 +66.60,1.00,41.00,0.79,1.57,0.16 +68.00,0.00,38.00,0.34,1.64,0.28 +49.00,0.00,19.00,0.93,1.72,0.25 +32.80,1.00,17.00,0.81,1.66,0.28 +17.40,1.00,14.00,0.67,1.57,0.24 +81.10,1.00,61.00,0.39,1.69,0.28 +61.00,0.00,31.00,0.32,1.58,0.31 +83.00,0.00,53.00,0.43,1.70,0.26 +63.90,1.00,48.00,0.45,1.71,0.27 +36.00,0.00,6.00,0.80,1.64,0.18 +44.00,0.00,14.00,0.42,1.69,0.26 +20.40,1.00,0.00,0.95,1.63,0.18 +49.00,0.00,19.00,0.80,1.55,0.17 +76.00,0.00,46.00,0.31,1.61,0.30 +90.00,0.00,60.00,0.45,1.64,0.26 +28.20,1.00,9.00,0.42,1.88,0.41 +58.00,0.00,28.00,0.32,1.61,0.29 +25.40,0.00,0.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.61,1.75,0.24 +18.90,1.00,17.00,0.84,1.59,0.16 +19.60,0.00,0.00,0.44,1.92,0.42 +86.00,0.00,56.00,0.44,1.71,0.26 +33.80,1.00,13.00,0.46,1.66,0.25 +42.00,0.00,12.00,0.50,1.64,0.22 +65.00,0.00,35.00,0.32,1.60,0.30 +30.00,0.00,0.00,0.62,1.66,0.23 +59.00,0.00,29.00,0.49,1.62,0.23 +24.40,0.00,0.00,0.45,1.82,0.39 +25.60,1.00,21.00,0.47,1.68,0.25 +57.80,1.00,29.00,0.70,1.63,0.25 +53.00,0.00,23.00,0.35,1.60,0.27 +30.00,0.00,0.00,0.36,1.63,0.29 +87.00,0.00,57.00,0.60,1.62,0.25 +3.20,0.00,0.00,0.70,1.81,0.40 +55.50,1.00,44.00,0.32,1.58,0.31 +59.00,0.00,29.00,0.77,1.66,0.28 +20.70,0.00,0.00,0.36,1.63,0.27 +68.70,1.00,49.00,0.45,1.72,0.28 +4.80,0.00,0.00,1.04,1.78,0.26 +21.40,0.00,0.00,0.39,1.56,0.28 +40.00,0.00,10.00,0.74,1.80,0.45 +20.80,0.00,0.00,0.64,1.69,0.23 +14.90,0.00,0.00,0.38,1.66,0.29 +78.00,0.00,48.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.67,1.76,0.35 +80.70,1.00,75.00,0.60,1.70,0.28 +91.00,0.00,61.00,0.34,1.62,0.29 +60.60,1.00,59.00,0.37,1.81,0.37 +48.00,0.00,18.00,0.60,1.59,0.27 +108.00,0.00,78.00,0.38,1.59,0.24 +30.00,0.00,0.00,0.38,1.57,0.24 +20.00,0.00,0.00,0.35,1.56,0.27 +30.00,0.00,0.00,0.44,1.69,0.28 +59.00,0.00,29.00,0.37,1.59,0.24 +69.00,0.00,39.00,0.37,1.56,0.28 +54.00,0.00,24.00,0.46,1.73,0.28 +47.00,0.00,17.00,0.78,1.63,0.26 +47.00,0.00,17.00,0.40,1.57,0.24 +32.80,1.00,29.00,0.68,1.73,0.34 +74.00,0.00,44.00,0.35,1.65,0.28 +67.00,0.00,37.00,0.53,1.71,0.30 +30.00,0.00,0.00,0.67,1.63,0.25 +30.00,0.00,0.00,0.66,1.52,0.19 +88.00,0.00,58.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.39,1.57,0.24 +34.00,0.00,4.00,0.34,1.63,0.27 +18.80,1.00,15.00,0.67,1.53,0.18 +55.00,0.00,25.00,0.51,1.65,0.22 +23.20,0.00,0.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.34,1.61,0.31 +1.70,0.00,0.00,0.60,1.55,0.21 +83.00,0.00,53.00,0.51,1.57,0.20 +51.30,1.00,32.00,0.53,1.58,0.25 +43.00,0.00,13.00,0.44,1.73,0.28 +0.30,0.00,0.00,0.51,1.70,0.26 +9.20,0.00,0.00,0.62,1.58,0.22 +88.00,0.00,58.00,0.61,1.74,0.24 +51.00,0.00,21.00,0.44,1.70,0.27 +45.00,0.00,15.00,0.54,1.68,0.24 +88.00,0.00,58.00,0.63,1.68,0.23 +21.40,1.00,19.00,0.70,1.53,0.19 +25.50,1.00,0.00,0.39,1.66,0.27 +38.80,1.00,14.00,0.47,1.72,0.25 +30.00,0.00,0.00,0.58,1.63,0.24 +47.00,0.00,17.00,0.79,1.64,0.26 +57.00,0.00,27.00,0.42,1.67,0.26 +44.00,0.00,14.00,0.50,1.61,0.21 +15.70,0.00,0.00,0.57,1.66,0.22 +0.60,0.00,0.00,0.79,1.55,0.20 +73.00,0.00,43.00,0.39,1.67,0.28 +59.00,0.00,29.00,0.51,1.64,0.22 +44.00,0.00,14.00,0.57,1.69,0.26 +83.30,1.00,63.00,0.56,1.71,0.24 +7.70,0.00,0.00,0.48,1.60,0.26 +30.00,0.00,0.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.60,1.56,0.20 +53.00,0.00,23.00,0.35,1.59,0.27 +40.00,0.00,10.00,0.92,1.73,0.20 +4.40,0.00,0.00,0.93,1.70,0.24 +76.00,0.00,46.00,0.65,1.69,0.23 +51.00,0.00,21.00,0.65,1.53,0.15 +62.00,0.00,32.00,0.48,1.56,0.25 +54.40,1.00,41.00,0.62,1.49,0.15 +22.30,0.00,0.00,1.02,1.77,0.21 +78.00,0.00,48.00,0.52,1.78,0.28 +60.00,0.00,30.00,0.45,1.73,0.26 +30.00,0.00,0.00,0.54,1.54,0.18 +40.30,1.00,20.00,0.61,1.53,0.19 +8.30,0.00,0.00,0.34,1.64,0.28 +38.00,0.00,8.00,0.53,1.54,0.17 +65.00,0.00,35.00,0.34,1.62,0.29 +55.50,1.00,41.00,0.60,1.49,0.15 +17.90,0.00,0.00,0.57,1.50,0.16 +38.60,1.00,13.00,0.80,1.57,0.16 +5.40,0.00,0.00,0.90,1.62,0.17 +63.00,0.00,33.00,0.54,1.65,0.23 +97.50,1.00,71.00,0.56,1.67,0.29 +33.00,0.00,3.00,0.46,1.63,0.26 +12.40,0.00,0.00,0.58,1.51,0.16 +66.00,0.00,36.00,0.32,1.59,0.27 +33.00,1.00,20.00,0.70,1.51,0.16 +30.00,0.00,0.00,0.62,1.59,0.27 +86.00,0.00,56.00,0.54,1.84,0.29 +40.00,0.00,10.00,1.05,1.70,0.21 +20.30,0.00,0.00,0.44,1.61,0.25 +72.00,0.00,42.00,0.39,1.68,0.28 +23.00,0.00,0.00,0.47,1.61,0.25 +39.00,1.00,22.00,0.65,1.54,0.21 +58.00,0.00,28.00,0.32,1.70,0.29 +49.80,1.00,20.00,0.58,1.70,0.26 +51.00,0.00,21.00,0.49,1.63,0.26 +61.00,0.00,31.00,0.58,1.54,0.20 +30.00,0.00,0.00,0.31,1.57,0.31 +57.00,0.00,27.00,0.63,1.51,0.18 +53.00,0.00,23.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.79,1.59,0.17 +35.60,1.00,10.00,0.79,1.82,0.52 +55.00,0.00,25.00,0.44,1.62,0.25 +8.20,0.00,0.00,1.03,1.77,0.30 +30.00,0.00,0.00,0.39,1.57,0.24 +72.00,0.00,42.00,0.35,1.58,0.25 +39.00,0.00,9.00,0.43,1.89,0.42 +72.00,0.00,42.00,0.38,1.68,0.28 +57.00,0.00,27.00,0.64,1.69,0.30 +53.00,0.00,23.00,0.40,1.68,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +8.30,0.00,0.00,0.36,1.57,0.23 +95.60,1.00,76.00,0.48,1.66,0.27 +21.70,0.00,0.00,0.76,1.80,0.48 +94.00,0.00,64.00,0.48,1.76,0.28 +69.00,0.00,39.00,0.35,1.55,0.27 +40.60,1.00,21.00,0.70,1.54,0.15 +52.00,0.00,22.00,0.44,1.61,0.25 +69.00,0.00,39.00,0.37,1.57,0.28 +98.00,0.00,68.00,0.39,1.55,0.24 +1.80,0.00,0.00,0.45,1.63,0.26 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,1.03,1.77,0.21 +41.00,0.00,11.00,0.68,1.79,0.24 +30.00,0.00,0.00,0.48,1.64,0.27 +58.00,0.00,28.00,0.33,1.56,0.26 +43.00,0.00,13.00,0.43,1.70,0.26 +32.00,0.00,2.00,0.62,1.58,0.22 +47.00,0.00,17.00,0.63,1.55,0.22 +63.90,1.00,40.00,0.40,1.60,0.24 +41.20,1.00,30.00,0.57,1.77,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +49.00,0.00,19.00,0.81,1.55,0.17 +4.50,0.00,0.00,0.39,1.58,0.27 +48.40,1.00,38.00,0.73,1.62,0.27 +74.00,0.00,44.00,0.56,1.63,0.24 +30.00,0.00,0.00,0.89,1.82,0.41 +62.00,0.00,32.00,0.60,1.50,0.15 +48.00,0.00,18.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.82,1.57,0.16 +18.20,1.00,18.00,0.85,1.65,0.24 +30.00,0.00,0.00,0.62,1.55,0.20 +18.30,0.00,0.00,0.42,1.60,0.24 +43.00,0.00,13.00,0.79,1.57,0.16 +40.00,0.00,10.00,0.36,1.57,0.23 +59.00,0.00,29.00,0.58,1.78,0.27 +30.00,0.00,0.00,1.00,1.75,0.25 +13.40,0.00,0.00,0.33,1.64,0.29 +72.00,0.00,42.00,0.56,1.79,0.37 +3.30,0.00,0.00,0.53,1.84,0.29 +30.00,0.00,0.00,0.58,1.54,0.17 +2.60,0.00,0.00,0.93,1.70,0.20 +74.00,0.00,44.00,0.35,1.66,0.28 +43.30,1.00,18.00,0.90,1.70,0.25 +30.00,0.00,0.00,0.37,1.57,0.28 +33.00,0.00,3.00,0.46,1.61,0.25 +10.30,0.00,0.00,0.50,1.64,0.27 +98.00,0.00,68.00,0.51,1.83,0.29 +56.00,0.00,26.00,0.55,1.72,0.32 +101.00,0.00,71.00,0.36,1.67,0.31 +11.70,0.00,0.00,0.68,1.69,0.23 +34.60,1.00,29.00,0.50,1.62,0.22 +43.00,0.00,13.00,0.45,1.66,0.23 +30.00,0.00,0.00,0.46,1.73,0.28 +63.00,0.00,33.00,0.53,1.55,0.20 +88.00,0.00,58.00,0.63,1.68,0.23 +11.40,0.00,0.00,0.85,1.65,0.24 +30.00,0.00,0.00,0.37,1.56,0.28 +63.00,0.00,33.00,0.74,1.54,0.20 +36.20,1.00,22.00,0.44,1.61,0.25 +41.00,0.00,11.00,0.58,1.68,0.32 +44.00,0.00,14.00,0.43,1.71,0.26 +47.50,1.00,23.00,0.38,1.55,0.24 +51.00,0.00,21.00,0.39,1.66,0.27 +25.00,1.00,18.00,0.86,1.66,0.24 +92.00,0.00,62.00,0.45,1.73,0.27 +67.10,1.00,42.00,0.77,1.76,0.37 +106.00,0.00,76.00,0.33,1.56,0.27 +61.00,0.00,31.00,0.34,1.60,0.26 +44.00,0.00,14.00,0.43,1.69,0.27 +44.00,0.00,14.00,0.44,1.71,0.25 +17.30,0.00,0.00,0.39,1.59,0.24 +44.00,0.00,14.00,0.68,1.59,0.24 +59.70,1.00,33.00,0.76,1.56,0.21 +10.40,0.00,0.00,0.72,1.76,0.36 +9.90,1.00,0.00,1.03,1.77,0.32 +69.00,0.00,39.00,0.44,1.65,0.28 +47.00,0.00,17.00,0.38,1.68,0.29 +17.10,0.00,0.00,0.53,1.64,0.22 +98.00,0.00,68.00,0.33,1.61,0.31 +61.00,0.00,31.00,0.34,1.60,0.25 +69.90,1.00,53.00,0.50,1.58,0.20 +59.00,0.00,29.00,0.39,1.67,0.30 +30.00,0.00,0.00,0.61,1.55,0.21 +3.80,0.00,0.00,0.46,1.55,0.27 +17.00,1.00,0.00,0.67,1.52,0.18 +72.00,0.00,42.00,0.55,1.69,0.23 +42.50,1.00,33.00,0.37,1.80,0.36 +57.00,0.00,27.00,0.71,1.91,0.26 +9.10,0.00,0.00,0.32,1.60,0.30 +48.00,0.00,18.00,0.91,1.71,0.25 +60.00,0.00,30.00,0.45,1.71,0.27 +39.50,1.00,33.00,0.72,1.55,0.20 +78.30,1.00,67.00,0.57,1.69,0.27 +59.00,0.00,29.00,0.41,1.68,0.26 +71.00,0.00,41.00,0.40,1.84,0.40 +55.30,1.00,32.00,0.32,1.58,0.31 +30.00,0.00,0.00,0.31,1.52,0.27 +106.00,0.00,76.00,0.51,1.69,0.28 +30.00,0.00,0.00,0.99,1.77,0.24 +0.40,0.00,0.00,0.52,1.76,0.37 +50.00,0.00,20.00,0.43,1.73,0.27 +5.70,0.00,0.00,0.43,1.57,0.25 +11.90,0.00,0.00,0.76,1.64,0.28 +78.00,0.00,48.00,0.53,1.78,0.28 +24.80,0.00,0.00,1.05,1.76,0.21 +54.40,1.00,38.00,0.75,1.63,0.28 +84.20,1.00,57.00,0.48,1.73,0.27 +12.10,0.00,0.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.86,1.81,0.50 +72.60,1.00,58.00,0.61,1.68,0.24 +44.00,0.00,14.00,0.51,1.58,0.20 +7.30,0.00,0.00,0.39,1.56,0.24 +30.00,0.00,0.00,0.84,1.71,0.23 +17.20,0.00,0.00,0.69,1.81,0.39 +50.00,0.00,20.00,0.71,1.51,0.16 +69.00,0.00,39.00,0.46,1.67,0.28 +77.30,1.00,69.00,0.55,1.52,0.18 +30.00,0.00,0.00,0.40,1.58,0.24 +69.00,0.00,39.00,0.33,1.59,0.27 +8.40,0.00,0.00,0.55,1.66,0.28 +59.60,1.00,44.00,0.56,1.60,0.22 +40.00,0.00,10.00,0.84,1.62,0.18 +16.50,0.00,0.00,0.57,1.68,0.30 +62.10,1.00,62.00,0.40,1.69,0.27 +26.00,1.00,21.00,0.93,1.59,0.19 +75.00,0.00,45.00,0.34,1.56,0.25 +78.00,0.00,48.00,0.46,1.71,0.27 +59.00,0.00,29.00,0.50,1.63,0.22 +16.00,0.00,0.00,0.88,1.71,0.20 +51.20,1.00,37.00,1.00,1.61,0.18 +53.00,0.00,23.00,0.73,1.59,0.23 +30.00,0.00,0.00,0.36,1.57,0.25 +58.00,0.00,28.00,0.42,1.56,0.26 +63.40,1.00,62.00,0.61,1.69,0.23 +39.00,0.00,9.00,0.33,1.52,0.27 +87.00,0.00,57.00,0.64,1.61,0.26 +10.90,0.00,0.00,0.62,1.56,0.22 +50.00,0.00,20.00,0.48,1.66,0.24 +43.00,0.00,13.00,0.38,1.67,0.29 +83.00,0.00,53.00,0.52,1.57,0.20 +63.00,0.00,33.00,0.39,1.58,0.27 +12.30,1.00,0.00,0.52,1.70,0.28 +48.00,0.00,18.00,0.35,1.62,0.32 +11.40,1.00,0.00,1.16,1.90,0.57 +40.00,0.00,10.00,0.43,1.66,0.25 +30.00,0.00,0.00,0.33,1.60,0.31 +82.00,0.00,52.00,0.54,1.66,0.31 +34.00,0.00,4.00,0.56,1.56,0.26 +30.00,0.00,0.00,0.44,1.69,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +47.00,0.00,17.00,0.68,1.52,0.15 +30.00,0.00,0.00,1.06,1.79,0.28 +65.00,0.00,35.00,1.03,1.77,0.21 +70.00,0.00,40.00,0.52,1.70,0.23 +15.20,0.00,0.00,0.35,1.62,0.30 +48.00,0.00,18.00,0.54,1.55,0.18 +68.00,0.00,38.00,0.65,1.61,0.28 +55.00,0.00,25.00,0.69,1.85,0.25 +49.00,0.00,19.00,0.83,1.56,0.18 +88.00,0.00,58.00,0.60,1.74,0.24 +8.40,0.00,0.00,0.80,1.78,0.46 +91.00,0.00,61.00,0.36,1.65,0.29 +78.00,0.00,48.00,0.44,1.70,0.27 +55.20,1.00,32.00,0.33,1.60,0.32 +79.50,1.00,60.00,0.58,1.68,0.29 +0.70,0.00,0.00,0.88,1.63,0.18 +0.60,0.00,0.00,0.84,1.62,0.18 +39.90,1.00,31.00,0.63,1.71,0.34 +72.00,0.00,42.00,0.35,1.60,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +62.00,0.00,32.00,0.34,1.61,0.32 +2.20,0.00,0.00,0.65,1.56,0.22 +106.10,1.00,77.00,0.39,1.61,0.25 +77.70,1.00,62.00,0.67,1.52,0.19 +65.90,1.00,48.00,0.50,1.81,0.28 +90.00,0.00,60.00,0.38,1.56,0.23 +57.70,1.00,47.00,0.78,1.55,0.20 +43.00,0.00,13.00,0.63,1.53,0.18 +65.00,0.00,35.00,0.31,1.59,0.29 +72.00,0.00,42.00,0.50,1.83,0.28 +66.00,0.00,36.00,0.43,1.82,0.39 +30.00,0.00,0.00,0.82,1.60,0.16 +18.00,1.00,1.00,0.89,1.72,0.20 +66.00,0.00,36.00,0.43,1.79,0.38 +96.00,0.00,66.00,0.47,1.63,0.23 +106.00,0.00,76.00,0.34,1.55,0.26 +39.80,1.00,20.00,0.57,1.60,0.23 +17.10,1.00,0.00,0.95,1.63,0.30 +27.10,1.00,17.00,0.88,1.60,0.17 +72.00,0.00,42.00,0.38,1.68,0.28 +61.20,1.00,61.00,0.35,1.59,0.28 +45.00,0.00,15.00,0.50,1.66,0.24 +52.20,1.00,39.00,0.60,1.68,0.23 +41.00,0.00,11.00,0.81,1.55,0.18 +3.60,0.00,0.00,1.06,1.78,0.29 +36.30,1.00,17.00,0.62,1.56,0.22 +98.00,0.00,68.00,0.38,1.64,0.26 +50.00,0.00,20.00,0.73,1.51,0.18 +30.00,0.00,0.00,0.81,1.79,0.41 +30.00,0.00,0.00,0.74,1.64,0.24 +107.00,0.00,77.00,0.39,1.60,0.25 +56.00,0.00,26.00,0.32,1.59,0.31 +56.00,0.00,26.00,0.77,1.57,0.15 +31.30,1.00,22.00,0.36,1.63,0.27 +30.00,0.00,0.00,0.49,1.67,0.28 +67.00,0.00,37.00,0.62,1.77,0.25 +55.50,1.00,31.00,0.46,1.64,0.24 +85.00,0.00,55.00,0.39,1.55,0.28 +74.00,0.00,44.00,0.35,1.62,0.31 +83.00,0.00,53.00,0.58,1.66,0.22 +48.00,0.00,18.00,0.39,1.57,0.23 +72.00,0.00,42.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.37,1.66,0.29 +46.70,1.00,29.00,0.48,1.64,0.24 +33.00,0.00,3.00,0.76,1.63,0.25 +45.00,0.00,15.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.70,1.55,0.17 +67.90,1.00,42.00,0.34,1.57,0.25 +49.10,1.00,42.00,0.77,1.76,0.37 +9.10,0.00,0.00,1.13,1.72,0.23 +45.80,1.00,33.00,0.83,1.56,0.21 +54.00,0.00,24.00,0.53,1.56,0.18 +14.40,0.00,0.00,0.44,1.72,0.34 +77.20,1.00,48.00,0.51,1.71,0.27 +30.00,0.00,0.00,0.76,1.78,0.44 +48.00,0.00,18.00,0.44,1.61,0.25 +78.00,0.00,48.00,0.44,1.70,0.27 +50.00,0.00,20.00,0.58,1.64,0.22 +44.00,0.00,14.00,0.58,1.78,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +63.00,0.00,33.00,0.53,1.65,0.23 +87.80,1.00,62.00,0.45,1.73,0.27 +70.00,0.00,40.00,0.39,1.65,0.27 +97.00,0.00,67.00,0.59,1.70,0.28 +53.00,0.00,23.00,0.62,1.70,0.29 +43.00,0.00,13.00,0.38,1.68,0.28 +86.60,1.00,58.00,0.63,1.68,0.22 +37.00,0.00,7.00,0.56,1.54,0.19 +43.00,1.00,17.00,0.79,1.58,0.16 +68.80,1.00,59.00,0.39,1.82,0.38 +8.80,0.00,0.00,0.59,1.57,0.23 +92.00,0.00,62.00,0.82,1.56,0.17 +58.00,0.00,28.00,0.32,1.60,0.28 +92.00,0.00,62.00,0.42,1.71,0.27 +15.00,0.00,0.00,0.41,1.70,0.27 +45.00,0.00,15.00,0.59,1.54,0.20 +72.00,0.00,42.00,0.37,1.62,0.26 +1.40,0.00,0.00,0.73,1.81,0.43 +2.80,0.00,0.00,0.57,1.79,0.37 +5.40,0.00,0.00,0.68,1.53,0.15 +71.30,1.00,42.00,0.43,1.81,0.39 +30.00,0.00,0.00,0.62,1.59,0.27 +14.40,0.00,0.00,0.35,1.59,0.27 +47.00,0.00,17.00,0.41,1.60,0.24 +50.00,0.00,20.00,0.58,1.69,0.26 +0.90,0.00,0.00,0.34,1.48,0.27 +0.10,0.00,0.00,1.09,1.62,0.19 +63.00,0.00,33.00,0.44,1.70,0.27 +59.00,0.00,29.00,0.42,1.68,0.26 +52.00,0.00,22.00,0.42,1.63,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +90.00,0.00,60.00,0.49,1.64,0.22 +50.00,0.00,20.00,0.64,1.51,0.19 +85.00,0.00,55.00,0.49,1.64,0.28 +40.00,0.00,10.00,0.44,1.67,0.25 +21.60,1.00,18.00,0.81,1.92,0.25 +3.60,0.00,0.00,0.35,1.60,0.27 +49.00,0.00,19.00,0.81,1.71,0.24 +43.80,1.00,28.00,0.41,1.56,0.28 +71.80,1.00,43.00,0.38,1.67,0.28 +28.90,0.00,0.00,0.55,1.71,0.24 +83.00,0.00,53.00,0.45,1.73,0.28 +53.00,0.00,23.00,0.31,1.55,0.30 +47.00,0.00,17.00,0.50,1.61,0.22 +58.00,0.00,28.00,0.34,1.56,0.26 +30.00,0.00,0.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.89,1.80,0.44 +52.20,1.00,31.00,0.57,1.53,0.18 +45.00,0.00,15.00,0.41,1.70,0.27 +83.00,0.00,53.00,0.40,1.67,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +67.20,1.00,39.00,0.66,1.52,0.19 +87.00,0.00,57.00,0.36,1.58,0.26 +82.00,0.00,52.00,0.53,1.65,0.30 +9.60,0.00,0.00,0.79,1.64,0.26 +14.90,0.00,0.00,0.57,1.68,0.29 +17.90,0.00,0.00,0.62,1.50,0.17 +20.30,0.00,0.00,0.75,1.62,0.22 +8.60,0.00,0.00,0.62,1.74,0.32 +44.00,0.00,14.00,0.47,1.71,0.25 +50.90,1.00,28.00,0.62,1.54,0.16 +34.00,0.00,4.00,0.44,1.81,0.39 +30.00,0.00,0.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.32,1.59,0.29 +29.90,1.00,19.00,0.73,1.52,0.18 +66.90,1.00,42.00,0.84,1.80,0.40 +73.00,0.00,43.00,0.45,1.74,0.28 +71.00,0.00,41.00,0.37,1.59,0.26 +65.00,0.00,35.00,0.35,1.64,0.30 +30.00,0.00,0.00,0.66,1.77,0.36 +71.00,0.00,41.00,0.85,1.67,0.25 +85.00,0.00,55.00,0.40,1.57,0.27 +44.00,0.00,14.00,0.53,1.58,0.19 +69.00,0.00,39.00,0.33,1.59,0.27 +87.80,1.00,78.00,0.66,1.54,0.18 +76.00,0.00,46.00,0.32,1.61,0.29 +53.00,0.00,23.00,0.46,1.68,0.26 +72.00,0.00,42.00,0.42,1.86,0.40 +72.00,0.00,42.00,0.65,1.80,0.37 +42.00,0.00,12.00,0.56,1.68,0.28 +67.80,1.00,55.00,0.35,1.55,0.27 +14.90,0.00,0.00,0.55,1.65,0.23 +16.60,0.00,0.00,1.02,1.76,0.21 +58.00,0.00,28.00,0.42,1.56,0.26 +18.30,0.00,0.00,0.44,1.72,0.26 +43.00,0.00,13.00,0.76,1.73,0.23 +31.90,1.00,22.00,0.66,1.54,0.21 +41.00,0.00,11.00,0.75,1.90,0.25 +15.60,0.00,0.00,0.47,1.60,0.26 +73.00,0.00,43.00,0.39,1.66,0.27 +79.70,1.00,67.00,0.58,1.69,0.26 +53.00,0.00,23.00,0.43,1.79,0.38 +36.90,1.00,20.00,0.68,1.74,0.41 +40.00,0.00,10.00,0.88,1.63,0.18 +41.00,0.00,11.00,0.49,1.61,0.27 +92.00,0.00,62.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.96,1.76,0.23 +85.70,1.00,71.00,0.55,1.66,0.28 +72.00,0.00,42.00,0.45,1.73,0.28 +30.00,0.00,0.00,0.71,1.56,0.19 +46.20,1.00,36.00,0.90,1.64,0.19 +106.00,0.00,76.00,0.52,1.71,0.30 +58.20,1.00,58.00,0.42,1.66,0.25 +45.00,0.00,15.00,0.58,1.53,0.20 +1.00,0.00,0.00,0.50,1.64,0.22 +74.00,0.00,44.00,0.32,1.63,0.29 +25.20,1.00,0.00,0.64,1.53,0.16 +42.00,0.00,12.00,0.34,1.62,0.27 +68.20,1.00,53.00,0.51,1.57,0.20 +90.00,0.00,60.00,0.58,1.69,0.28 +16.30,0.00,0.00,0.34,1.62,0.29 +31.00,0.00,1.00,0.54,1.82,0.28 +22.40,0.00,0.00,0.34,1.62,0.30 +73.00,0.00,43.00,0.39,1.65,0.27 +30.00,0.00,0.00,0.64,1.51,0.18 +60.00,0.00,30.00,0.32,1.71,0.29 +30.00,0.00,0.00,1.03,1.76,0.21 +48.00,1.00,37.00,1.09,1.63,0.19 +17.60,0.00,0.00,0.46,1.69,0.26 +18.90,0.00,0.00,0.34,1.55,0.26 +27.20,1.00,20.00,0.41,1.57,0.26 +47.00,0.00,17.00,0.52,1.65,0.23 +8.60,0.00,0.00,0.91,1.60,0.17 +65.00,0.00,35.00,0.33,1.59,0.30 +30.00,0.00,0.00,0.34,1.60,0.31 +43.30,1.00,30.00,0.31,1.70,0.29 +101.00,0.00,71.00,0.52,1.64,0.26 +30.00,0.00,0.00,0.61,1.65,0.23 +72.00,0.00,42.00,0.38,1.67,0.28 +54.00,0.00,24.00,0.43,1.68,0.27 +9.10,0.00,0.00,0.61,1.70,0.29 +35.00,0.00,5.00,0.36,1.54,0.27 +39.00,0.00,9.00,0.36,1.55,0.27 +43.00,0.00,13.00,0.68,1.74,0.41 +49.00,0.00,19.00,0.32,1.73,0.28 +31.20,1.00,26.00,0.53,1.66,0.23 +50.00,0.00,20.00,0.41,1.57,0.27 +68.00,0.00,38.00,0.74,1.62,0.27 +6.90,0.00,0.00,0.94,1.59,0.22 +24.20,0.00,0.00,0.90,1.59,0.17 +59.00,0.00,29.00,0.54,1.61,0.23 +44.00,0.00,14.00,0.45,1.66,0.26 +72.00,0.00,42.00,0.54,1.77,0.37 +11.70,0.00,0.00,0.73,1.80,0.44 +63.00,0.00,33.00,0.59,1.54,0.20 +98.00,0.00,68.00,0.37,1.64,0.28 +30.00,0.00,0.00,0.71,1.53,0.15 +79.00,0.00,49.00,0.59,1.73,0.25 +30.00,0.00,0.00,0.83,1.79,0.42 +60.00,0.00,30.00,0.51,1.69,0.24 +16.10,0.00,0.00,0.67,1.74,0.34 +50.00,0.00,20.00,0.53,1.71,0.24 +19.00,0.00,0.00,0.53,1.70,0.24 +30.00,0.00,0.00,0.49,1.65,0.28 +6.20,0.00,0.00,0.62,1.59,0.27 +49.00,0.00,19.00,0.80,1.72,0.25 +58.00,0.00,28.00,0.34,1.55,0.27 +41.00,0.00,11.00,0.53,1.65,0.25 +13.00,0.00,0.00,0.62,1.60,0.23 +47.00,0.00,17.00,0.57,1.74,0.24 +83.00,0.00,53.00,0.50,1.58,0.21 +44.00,0.00,14.00,0.42,1.52,0.27 +98.00,0.00,68.00,0.36,1.63,0.28 +72.00,0.00,42.00,0.35,1.57,0.26 +70.00,0.00,40.00,0.39,1.58,0.27 +14.90,0.00,0.00,0.57,1.68,0.29 +67.70,1.00,41.00,0.66,1.68,0.23 +15.00,0.00,0.00,0.67,1.77,0.36 +49.00,0.00,19.00,0.42,1.87,0.40 +58.00,0.00,28.00,0.34,1.56,0.26 +39.60,1.00,14.00,0.54,1.67,0.24 +37.20,1.00,14.00,0.83,1.80,0.49 +42.80,1.00,21.00,0.34,1.60,0.31 +52.00,0.00,22.00,0.42,1.64,0.26 +43.90,1.00,14.00,0.53,1.58,0.19 +78.00,0.00,48.00,0.50,1.70,0.25 +2.90,0.00,0.00,0.42,1.70,0.26 +30.00,0.00,0.00,0.58,1.58,0.22 +30.00,0.00,0.00,0.76,1.79,0.41 +44.20,1.00,29.00,0.66,1.72,0.32 +26.80,0.00,0.00,0.51,1.63,0.26 +81.20,1.00,62.00,0.62,1.69,0.23 +6.20,0.00,0.00,0.54,1.54,0.18 +72.00,0.00,42.00,0.32,1.59,0.31 +72.00,0.00,42.00,0.67,1.80,0.38 +30.00,0.00,0.00,0.86,1.67,0.25 +43.00,0.00,13.00,0.51,1.64,0.22 +71.00,0.00,41.00,0.60,1.50,0.15 +30.00,0.00,0.00,0.50,1.76,0.28 +90.00,0.00,60.00,0.58,1.69,0.28 +72.00,0.00,42.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.31,1.62,0.28 +68.80,1.00,39.00,0.43,1.71,0.26 +83.00,0.00,53.00,0.52,1.57,0.20 +44.00,0.00,14.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.46,1.71,0.27 +52.00,0.00,22.00,0.77,1.66,0.28 +30.00,0.00,0.00,0.58,1.53,0.17 +91.00,0.00,61.00,0.39,1.68,0.28 +60.00,1.00,39.00,0.61,1.55,0.20 +21.60,0.00,0.00,0.38,1.67,0.29 +43.00,0.00,13.00,0.73,1.71,0.23 +14.90,0.00,0.00,0.44,1.55,0.27 +72.00,0.00,42.00,0.43,1.83,0.39 +48.00,0.00,18.00,0.47,1.62,0.23 +90.00,0.00,60.00,0.48,1.67,0.25 +39.70,1.00,19.00,0.78,1.74,0.25 +108.00,0.00,78.00,0.62,1.53,0.18 +70.00,0.00,40.00,0.39,1.58,0.24 +25.60,1.00,0.00,0.93,1.70,0.24 +59.50,1.00,58.00,0.91,1.60,0.17 +31.00,0.00,1.00,0.63,1.60,0.26 +8.70,0.00,0.00,0.55,1.73,0.32 +65.00,0.00,35.00,0.35,1.65,0.31 +44.00,0.00,14.00,0.65,1.92,0.25 +70.00,0.00,40.00,0.38,1.58,0.24 +37.00,0.00,7.00,0.50,1.58,0.20 +58.00,0.00,28.00,0.34,1.56,0.26 +49.00,0.00,19.00,0.34,1.61,0.27 +87.00,0.00,57.00,0.49,1.74,0.28 +44.00,0.00,14.00,0.67,1.52,0.18 +90.00,0.00,60.00,0.58,1.68,0.28 +37.00,0.00,7.00,0.51,1.57,0.20 +72.00,0.00,42.00,0.54,1.73,0.24 +106.00,0.00,76.00,0.33,1.56,0.26 +54.90,1.00,26.00,0.44,1.94,0.42 +20.60,1.00,0.00,1.15,1.76,0.22 +62.00,0.00,32.00,0.43,1.55,0.26 +83.00,0.00,53.00,0.51,1.59,0.21 +58.00,0.00,28.00,0.35,1.57,0.25 +8.50,0.00,0.00,0.53,1.70,0.29 +69.00,0.00,39.00,0.33,1.59,0.27 +43.00,0.00,13.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.93,1.73,0.24 +72.00,0.00,42.00,0.36,1.61,0.25 +44.00,0.00,14.00,0.46,1.62,0.23 +70.00,0.00,40.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.34,1.52,0.27 +72.90,1.00,62.00,0.31,1.58,0.31 +67.00,0.00,37.00,0.56,1.72,0.31 +3.60,0.00,0.00,0.46,1.67,0.26 +50.40,1.00,42.00,0.35,1.66,0.31 +64.00,0.00,34.00,0.40,1.70,0.27 +42.10,1.00,33.00,0.57,1.63,0.24 +9.90,0.00,0.00,0.31,1.62,0.28 +69.00,0.00,39.00,0.58,1.68,0.28 +18.70,0.00,0.00,0.57,1.69,0.27 +50.80,1.00,37.00,1.11,1.63,0.20 +11.80,0.00,0.00,0.66,1.54,0.21 +72.00,0.00,42.00,0.37,1.66,0.28 +107.00,0.00,77.00,0.39,1.61,0.25 +54.00,0.00,24.00,0.65,1.56,0.21 +34.00,0.00,4.00,0.32,1.78,0.29 +61.00,0.00,31.00,0.34,1.60,0.26 +8.00,0.00,0.00,0.51,1.72,0.27 +13.80,0.00,0.00,0.67,1.73,0.41 +30.00,0.00,0.00,0.74,1.79,0.43 +74.00,0.00,44.00,0.36,1.62,0.29 +73.00,0.00,43.00,0.44,1.73,0.26 +67.20,1.00,62.00,0.82,1.56,0.18 +84.00,1.00,66.00,0.53,1.64,0.22 +37.00,0.00,7.00,0.76,1.67,0.29 +55.00,0.00,25.00,0.42,1.54,0.27 +52.00,0.00,22.00,0.37,1.66,0.27 +2.80,0.00,0.00,1.03,1.77,0.21 +50.00,0.00,20.00,0.44,1.66,0.24 +49.00,0.00,19.00,0.35,1.60,0.25 +2.30,0.00,0.00,0.64,1.78,0.24 +87.00,0.00,57.00,0.35,1.60,0.27 +5.50,0.00,0.00,0.46,1.64,0.24 +8.90,0.00,0.00,0.60,1.57,0.23 +8.40,0.00,0.00,0.41,1.53,0.27 +65.00,0.00,35.00,0.34,1.63,0.28 +28.90,0.00,0.00,0.82,1.59,0.17 +23.00,0.00,0.00,0.58,1.68,0.23 +39.00,0.00,9.00,0.40,1.56,0.28 +30.00,0.00,0.00,0.55,1.62,0.25 +62.40,1.00,42.00,0.48,1.83,0.40 +3.50,0.00,0.00,0.65,1.71,0.34 +28.40,1.00,0.00,0.85,1.57,0.16 +72.00,0.00,42.00,0.85,1.79,0.39 +69.30,1.00,66.00,0.47,1.64,0.24 +30.00,0.00,0.00,0.33,1.60,0.31 +91.50,1.00,78.00,0.63,1.53,0.17 +24.30,0.00,0.00,0.67,1.52,0.19 +101.00,0.00,71.00,0.39,1.61,0.24 +51.00,0.00,21.00,0.39,1.66,0.27 +73.00,0.00,43.00,0.38,1.60,0.24 +5.90,0.00,0.00,0.78,1.68,0.30 +74.00,0.00,44.00,0.38,1.67,0.28 +106.00,0.00,76.00,0.52,1.71,0.30 +41.60,1.00,31.00,0.49,1.65,0.24 +40.00,0.00,10.00,1.05,1.61,0.18 +30.00,0.00,0.00,0.83,1.65,0.18 +91.00,0.00,61.00,0.34,1.61,0.29 +15.30,0.00,0.00,0.39,1.58,0.27 +60.00,0.00,30.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.58,1.54,0.17 +66.00,0.00,36.00,0.59,1.74,0.24 +62.00,0.00,32.00,0.39,1.69,0.28 +52.80,1.00,46.00,0.33,1.57,0.27 +53.00,0.00,23.00,0.46,1.69,0.26 +51.00,0.00,21.00,0.39,1.66,0.27 +98.00,0.00,68.00,0.42,1.57,0.25 +75.90,1.00,62.00,0.67,1.52,0.19 +66.00,0.00,36.00,0.47,1.66,0.25 +28.00,0.00,0.00,1.14,1.76,0.25 +44.00,0.00,14.00,0.44,1.71,0.26 +59.00,0.00,29.00,0.37,1.59,0.24 +30.00,0.00,0.00,0.52,1.81,0.29 +16.20,1.00,0.00,0.86,1.81,0.50 +34.00,0.00,4.00,0.32,1.79,0.29 +22.40,0.00,0.00,0.92,1.72,0.25 +31.00,0.00,1.00,0.58,1.59,0.25 +29.10,1.00,0.00,0.60,1.57,0.20 +6.60,0.00,0.00,0.60,1.58,0.26 +78.00,0.00,48.00,0.44,1.70,0.27 +1.40,0.00,0.00,0.57,1.53,0.19 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.34,1.61,0.31 +68.00,0.00,38.00,0.42,1.70,0.26 +52.00,0.00,22.00,0.42,1.63,0.26 +13.60,1.00,10.00,1.08,1.62,0.19 +30.00,0.00,0.00,0.59,1.83,0.26 +68.00,0.00,38.00,0.45,1.72,0.28 +37.30,1.00,20.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.36,1.65,0.32 +48.00,0.00,18.00,0.45,1.63,0.25 +26.60,0.00,0.00,0.56,1.51,0.17 +78.00,0.00,48.00,0.50,1.80,0.28 +101.00,0.00,71.00,0.53,1.65,0.26 +42.00,0.00,12.00,0.52,1.59,0.19 +51.00,0.00,21.00,0.67,1.53,0.15 +61.00,0.00,31.00,0.58,1.53,0.19 +30.00,0.00,0.00,0.92,1.63,0.30 +43.00,0.00,13.00,0.54,1.53,0.17 +59.00,0.00,29.00,0.58,1.74,0.24 +50.00,0.00,20.00,0.84,1.68,0.35 +50.00,0.00,20.00,0.42,1.71,0.27 +72.00,0.00,42.00,0.52,1.76,0.37 +90.00,0.00,60.00,0.46,1.72,0.26 +27.20,1.00,10.00,1.21,1.76,0.23 +40.00,0.00,10.00,0.73,1.81,0.43 +30.00,0.00,0.00,0.65,1.53,0.16 +72.00,0.00,42.00,0.38,1.68,0.28 +58.90,1.00,33.00,0.57,1.60,0.22 +31.00,0.00,1.00,0.85,1.71,0.22 +5.30,0.00,0.00,1.01,1.61,0.18 +47.00,0.00,17.00,0.56,1.73,0.24 +97.30,1.00,78.00,0.57,1.59,0.22 +51.00,0.00,21.00,0.49,1.63,0.26 +30.00,0.00,0.00,0.54,1.54,0.20 +30.00,0.00,0.00,1.01,1.77,0.21 +44.00,0.00,14.00,0.54,1.67,0.23 +47.00,0.00,17.00,0.34,1.55,0.28 +48.20,1.00,33.00,0.59,1.54,0.20 +79.00,0.00,49.00,0.46,1.73,0.28 +44.00,0.00,14.00,0.34,1.61,0.32 +47.00,0.00,17.00,0.59,1.80,0.39 +7.30,0.00,0.00,0.35,1.60,0.27 +72.00,0.00,42.00,0.43,1.84,0.40 +69.50,1.00,53.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.44,1.68,0.27 +51.00,0.00,21.00,0.41,1.85,0.39 +58.00,0.00,28.00,0.46,1.71,0.26 +30.00,0.00,0.00,0.58,1.63,0.24 +30.00,0.00,0.00,0.67,1.61,0.28 +72.00,0.00,42.00,0.35,1.57,0.25 +58.00,0.00,28.00,0.31,1.70,0.29 +42.00,0.00,12.00,0.36,1.65,0.31 +92.00,0.00,62.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.57,1.68,0.27 +64.00,0.00,34.00,0.35,1.62,0.30 +51.00,0.00,21.00,0.52,1.65,0.28 +82.00,0.00,52.00,0.47,1.60,0.26 +47.00,0.00,17.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.68,1.53,0.19 +2.10,0.00,0.00,0.44,1.82,0.39 +74.00,0.00,44.00,0.36,1.68,0.32 +4.10,0.00,0.00,0.57,1.51,0.17 +78.00,0.00,48.00,0.52,1.78,0.28 +9.00,0.00,0.00,0.70,1.68,0.23 +30.00,0.00,0.00,0.80,1.79,0.42 +86.00,0.00,56.00,0.57,1.71,0.24 +89.90,1.00,60.00,0.59,1.70,0.27 +47.00,0.00,17.00,0.38,1.69,0.28 +50.00,0.00,20.00,0.49,1.64,0.22 +59.00,0.00,29.00,0.60,1.70,0.28 +65.00,0.00,35.00,0.34,1.63,0.28 +53.00,0.00,23.00,0.48,1.71,0.32 +82.00,0.00,52.00,0.47,1.69,0.26 +73.50,1.00,44.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.55,1.65,0.24 +67.00,0.00,37.00,0.59,1.59,0.22 +51.00,0.00,21.00,0.47,1.68,0.25 +44.10,1.00,35.00,1.01,1.77,0.21 +36.00,0.00,6.00,0.40,1.58,0.27 +96.00,0.00,66.00,0.46,1.64,0.24 +24.70,0.00,0.00,0.74,1.76,0.24 +53.00,0.00,23.00,0.30,1.55,0.30 +107.00,0.00,77.00,0.38,1.60,0.24 +83.00,0.00,53.00,0.59,1.67,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +63.00,0.00,33.00,0.59,1.66,0.24 +100.60,1.00,71.00,0.50,1.63,0.26 +59.00,0.00,29.00,0.41,1.67,0.26 +72.00,0.00,42.00,0.55,1.73,0.24 +53.10,1.00,40.00,0.51,1.70,0.24 +9.00,0.00,0.00,1.11,1.76,0.24 +71.00,0.00,41.00,0.37,1.60,0.25 +81.50,1.00,74.00,0.31,1.58,0.29 +43.00,0.00,13.00,0.55,1.52,0.17 +14.10,0.00,0.00,0.39,1.61,0.25 +81.00,0.00,51.00,0.31,1.62,0.31 +53.00,0.00,23.00,0.40,1.69,0.27 +79.00,0.00,49.00,0.61,1.76,0.24 +52.00,0.00,22.00,0.63,1.55,0.21 +48.00,0.00,18.00,0.45,1.64,0.25 +44.00,0.00,14.00,0.46,1.55,0.27 +23.00,1.00,0.00,0.45,1.66,0.24 +108.00,0.00,78.00,0.45,1.65,0.26 +28.10,0.00,0.00,0.58,1.53,0.17 +69.20,1.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.72,1.70,0.23 +54.00,0.00,24.00,0.32,1.59,0.31 +50.00,0.00,20.00,0.40,1.60,0.24 +45.00,0.00,15.00,0.40,1.68,0.28 +29.40,0.00,0.00,0.61,1.74,0.32 +83.00,0.00,53.00,0.52,1.57,0.20 +88.00,0.00,58.00,0.42,1.66,0.25 +9.50,0.00,0.00,0.38,1.66,0.30 +45.00,0.00,15.00,0.53,1.68,0.24 +30.00,0.00,0.00,0.73,1.79,0.38 +30.00,0.00,0.00,0.69,1.55,0.18 +30.00,0.00,0.00,0.70,1.66,0.34 +30.00,0.00,0.00,1.04,1.69,0.21 +30.00,0.00,0.00,0.44,1.68,0.28 +30.00,0.00,0.00,0.61,1.75,0.24 +17.30,0.00,0.00,0.60,1.77,0.25 +19.90,0.00,0.00,0.93,1.75,0.22 +66.00,0.00,36.00,0.52,1.70,0.24 +47.00,0.00,17.00,0.46,1.71,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +46.70,1.00,17.00,0.95,1.63,0.18 +40.00,0.00,10.00,0.82,1.62,0.18 +27.20,1.00,10.00,0.79,1.82,0.53 +85.00,0.00,55.00,0.49,1.64,0.28 +1.70,0.00,0.00,0.45,1.67,0.25 +36.50,1.00,25.00,0.94,1.75,0.22 +58.00,0.00,28.00,0.32,1.72,0.29 +16.20,0.00,0.00,0.92,1.59,0.19 +30.00,0.00,0.00,0.56,1.65,0.24 +30.00,0.00,0.00,0.62,1.59,0.27 +24.70,0.00,0.00,0.52,1.57,0.20 +59.00,0.00,29.00,0.36,1.62,0.26 +29.40,0.00,0.00,0.57,1.71,0.24 +47.00,0.00,17.00,0.68,1.57,0.21 +65.00,0.00,35.00,0.35,1.65,0.31 +30.00,0.00,0.00,0.56,1.79,0.26 +45.00,0.00,15.00,0.41,1.70,0.27 +53.00,0.00,23.00,0.41,1.60,0.24 +108.00,0.00,78.00,0.65,1.54,0.18 +4.20,0.00,0.00,0.49,1.67,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +6.40,0.00,0.00,0.45,1.71,0.26 +56.10,1.00,39.00,0.61,1.56,0.20 +91.00,0.00,61.00,0.37,1.66,0.28 +63.00,0.00,33.00,0.50,1.65,0.24 +4.10,0.00,0.00,0.56,1.75,0.33 +30.00,0.00,0.00,0.96,1.84,0.54 +44.00,0.00,14.00,0.56,1.68,0.25 +51.00,0.00,21.00,0.43,1.73,0.27 +60.00,0.00,30.00,0.45,1.72,0.26 +90.00,0.00,60.00,0.50,1.69,0.28 +12.80,1.00,0.00,1.19,1.79,0.29 +15.60,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.52,1.81,0.29 +31.00,1.00,28.00,0.39,1.56,0.28 +40.00,0.00,10.00,0.54,1.52,0.18 +50.00,0.00,20.00,0.62,1.52,0.18 +52.00,0.00,22.00,0.42,1.66,0.25 +72.20,1.00,71.00,0.39,1.61,0.24 +21.40,0.00,0.00,0.48,1.61,0.28 +37.00,0.00,7.00,0.58,1.54,0.20 +2.90,0.00,0.00,0.71,1.52,0.18 +54.30,1.00,35.00,0.56,1.80,0.28 +92.00,0.00,62.00,0.47,1.75,0.28 +61.00,0.00,31.00,0.32,1.58,0.31 +0.20,0.00,0.00,0.56,1.71,0.24 +44.00,0.00,14.00,0.54,1.59,0.18 +83.70,1.00,59.00,0.61,1.58,0.27 +30.00,0.00,0.00,0.37,1.54,0.28 +52.00,0.00,22.00,0.44,1.71,0.27 +52.00,0.00,22.00,0.74,1.60,0.22 +3.90,0.00,0.00,0.54,1.77,0.37 +5.00,0.00,0.00,0.58,1.57,0.26 +44.00,0.00,14.00,0.51,1.59,0.20 +44.20,1.00,17.00,0.71,1.59,0.21 +30.00,0.00,0.00,0.60,1.77,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +74.00,0.00,44.00,0.37,1.65,0.28 +74.00,0.00,44.00,0.38,1.67,0.29 +55.00,0.00,25.00,0.36,1.67,0.32 +85.00,0.00,55.00,0.36,1.55,0.27 +63.00,0.00,33.00,0.38,1.81,0.37 +63.00,0.00,33.00,0.33,1.62,0.28 +85.00,0.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.62,1.59,0.27 +47.00,0.00,17.00,0.62,1.58,0.22 +21.90,0.00,0.00,0.42,1.85,0.40 +10.00,0.00,0.00,0.80,1.66,0.23 +60.00,0.00,30.00,0.70,1.55,0.16 +16.20,0.00,0.00,0.50,1.66,0.28 +52.00,0.00,22.00,0.43,1.69,0.25 +13.60,0.00,0.00,0.61,1.56,0.20 +3.10,0.00,0.00,0.53,1.59,0.19 +74.00,0.00,44.00,0.34,1.61,0.31 +73.00,1.00,57.00,0.35,1.59,0.26 +15.20,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.54,1.58,0.19 +44.00,0.00,14.00,0.46,1.71,0.25 +44.00,0.00,14.00,0.39,1.50,0.26 +72.00,0.00,42.00,0.81,1.58,0.17 +83.00,0.00,53.00,0.76,1.62,0.28 +9.40,0.00,0.00,0.34,1.61,0.31 +42.00,0.00,12.00,0.93,1.63,0.18 +86.00,0.00,56.00,0.56,1.71,0.24 +19.90,0.00,0.00,0.38,1.67,0.28 +92.00,0.00,62.00,0.34,1.72,0.33 +3.40,0.00,0.00,0.56,1.52,0.17 +40.00,0.00,10.00,0.88,1.58,0.16 +8.00,0.00,0.00,0.36,1.63,0.30 +19.20,0.00,0.00,0.34,1.63,0.28 +59.00,0.00,29.00,0.38,1.66,0.30 +52.00,0.00,22.00,0.42,1.62,0.26 +63.00,0.00,33.00,0.54,1.54,0.20 +53.00,0.00,23.00,0.31,1.56,0.31 +18.50,1.00,0.00,1.01,1.68,0.21 +50.00,0.00,20.00,0.41,1.57,0.27 +60.00,0.00,30.00,0.70,1.55,0.15 +1.80,0.00,0.00,0.60,1.68,0.23 +77.00,0.00,47.00,0.55,1.66,0.23 +53.00,0.00,23.00,0.30,1.54,0.30 +82.30,1.00,60.00,0.47,1.66,0.27 +53.00,0.00,23.00,0.40,1.67,0.26 +28.90,0.00,0.00,0.54,1.53,0.17 +44.00,0.00,14.00,0.57,1.79,0.28 +57.00,0.00,27.00,0.42,1.67,0.26 +5.80,0.00,0.00,1.19,1.79,0.28 +69.00,0.00,39.00,0.33,1.58,0.27 +47.00,0.00,17.00,0.62,1.54,0.16 +74.00,0.00,44.00,0.32,1.60,0.28 +69.00,0.00,39.00,0.59,1.68,0.23 +44.00,0.00,14.00,0.33,1.59,0.32 +39.00,0.00,9.00,0.45,1.62,0.25 +53.00,0.00,23.00,0.48,1.55,0.26 +23.20,1.00,0.00,1.05,1.76,0.21 +80.00,0.00,50.00,0.59,1.62,0.22 +44.00,0.00,14.00,0.44,1.71,0.26 +92.00,0.00,62.00,0.67,1.52,0.19 +94.00,0.00,64.00,0.50,1.79,0.28 +30.00,0.00,0.00,0.80,1.66,0.25 +33.00,0.00,3.00,0.46,1.61,0.25 +30.00,0.00,0.00,0.54,1.57,0.18 +48.70,1.00,39.00,0.64,1.53,0.20 +25.80,1.00,0.00,0.70,1.53,0.19 +61.00,0.00,31.00,0.49,1.65,0.24 +30.00,0.00,0.00,0.61,1.70,0.23 +61.00,0.00,31.00,0.52,1.67,0.29 +5.60,0.00,0.00,0.86,1.68,0.36 +61.00,0.00,31.00,0.43,1.72,0.26 +74.00,0.00,44.00,0.32,1.60,0.28 +33.10,1.00,21.00,0.63,1.54,0.16 +44.00,0.00,14.00,0.62,1.80,0.24 +63.00,0.00,33.00,0.74,1.55,0.20 +58.00,0.00,28.00,0.67,1.74,0.34 +1.80,0.00,0.00,0.43,1.72,0.26 +92.00,0.00,62.00,0.42,1.71,0.27 +83.00,0.00,53.00,0.40,1.66,0.26 +30.00,0.00,0.00,0.58,1.58,0.22 +62.00,0.00,32.00,0.35,1.63,0.31 +24.00,1.00,16.00,0.51,1.83,0.29 +74.40,1.00,53.00,0.51,1.58,0.21 +85.00,0.00,55.00,0.38,1.55,0.25 +55.00,0.00,25.00,0.40,1.84,0.40 +17.90,0.00,0.00,1.03,1.77,0.21 +39.00,0.00,9.00,0.39,1.55,0.28 +69.00,0.00,39.00,0.43,1.71,0.26 +70.50,1.00,60.00,0.38,1.56,0.23 +87.00,0.00,57.00,0.35,1.60,0.27 +30.00,1.00,15.00,0.72,1.62,0.26 +74.00,0.00,44.00,0.38,1.68,0.29 +75.00,0.00,45.00,0.74,1.57,0.18 +77.70,1.00,62.00,0.62,1.69,0.24 +83.50,1.00,71.00,0.64,1.58,0.20 +30.00,0.00,0.00,0.82,1.60,0.16 +72.00,0.00,42.00,0.36,1.61,0.25 +16.10,1.00,0.00,1.02,1.78,0.25 +45.00,0.00,15.00,0.65,1.56,0.23 +30.00,0.00,0.00,0.57,1.79,0.26 +9.00,0.00,0.00,0.44,1.68,0.27 +34.00,0.00,4.00,0.60,1.60,0.25 +90.00,0.00,60.00,0.52,1.70,0.28 +4.00,0.00,0.00,0.94,1.71,0.20 +4.60,0.00,0.00,1.20,1.88,0.50 +82.30,1.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.76,1.57,0.15 +45.00,0.00,15.00,0.44,1.66,0.25 +55.00,0.00,25.00,0.91,1.73,0.21 +74.00,0.00,44.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.36,1.58,0.26 +44.60,1.00,39.00,0.44,1.58,0.25 +30.00,0.00,0.00,0.32,1.59,0.32 +48.00,0.00,18.00,0.56,1.68,0.23 +35.60,1.00,17.00,0.58,1.79,0.37 +63.00,0.00,33.00,0.54,1.71,0.24 +25.70,0.00,0.00,0.58,1.68,0.31 +49.00,0.00,19.00,0.76,1.63,0.22 +23.60,0.00,0.00,0.67,1.74,0.34 +29.50,0.00,0.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.98,1.74,0.25 +5.00,0.00,0.00,0.61,1.55,0.21 +92.30,1.00,76.00,0.33,1.55,0.26 +26.60,1.00,1.00,0.61,1.60,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +13.20,0.00,0.00,0.63,1.55,0.22 +30.00,0.00,0.00,0.61,1.59,0.28 +77.60,1.00,63.00,0.56,1.71,0.24 +66.90,1.00,57.00,0.59,1.60,0.25 +13.70,1.00,0.00,1.12,1.76,0.24 +91.00,0.00,61.00,0.39,1.68,0.28 +40.00,0.00,10.00,0.84,1.62,0.18 +30.00,0.00,0.00,0.83,1.71,0.23 +30.00,0.00,0.00,0.32,1.53,0.27 +54.00,0.00,24.00,0.54,1.56,0.18 +30.00,0.00,0.00,0.81,1.58,0.17 +50.00,0.00,20.00,0.48,1.65,0.23 +52.00,0.00,22.00,0.43,1.60,0.24 +30.00,0.00,0.00,0.78,1.58,0.15 +66.00,0.00,36.00,0.44,1.78,0.37 +15.50,0.00,0.00,1.26,1.67,0.25 +41.00,0.00,11.00,0.37,1.67,0.30 +5.60,0.00,0.00,0.55,1.68,0.30 +72.00,0.00,42.00,0.50,1.78,0.39 +67.90,1.00,38.00,0.72,1.59,0.24 +90.00,0.00,60.00,0.43,1.60,0.25 +54.00,0.00,24.00,0.52,1.57,0.19 +1.20,0.00,0.00,0.42,1.79,0.38 +78.00,0.00,48.00,0.46,1.71,0.27 +48.00,0.00,18.00,0.44,1.61,0.25 +48.30,1.00,28.00,0.67,1.74,0.34 +30.00,0.00,0.00,0.85,1.70,0.23 +58.00,0.00,28.00,0.33,1.56,0.26 +50.00,0.00,20.00,0.43,1.57,0.25 +7.20,0.00,0.00,0.73,1.52,0.18 +67.00,1.00,42.00,0.83,1.80,0.40 +54.70,1.00,43.00,0.44,1.72,0.26 +51.00,0.00,21.00,0.49,1.63,0.26 +60.00,0.00,30.00,0.45,1.72,0.26 +29.90,0.00,0.00,0.39,1.67,0.27 +61.00,0.00,31.00,0.55,1.68,0.30 +47.00,0.00,17.00,0.46,1.71,0.26 +29.00,0.00,0.00,0.49,1.74,0.27 +30.00,0.00,0.00,0.70,1.50,0.17 +72.00,0.00,42.00,0.55,1.78,0.37 +1.30,0.00,0.00,0.54,1.65,0.22 +61.00,0.00,31.00,0.59,1.54,0.20 +51.00,0.00,21.00,0.43,1.73,0.27 +49.90,1.00,23.00,0.31,1.56,0.31 +70.00,0.00,40.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.85,1.70,0.23 +58.00,0.00,28.00,0.67,1.74,0.34 +30.00,0.00,0.00,0.86,1.70,0.23 +43.00,0.00,13.00,0.41,1.67,0.26 +60.60,1.00,59.00,0.61,1.58,0.26 +104.40,1.00,77.00,0.40,1.62,0.24 +87.00,0.00,57.00,0.35,1.59,0.26 +51.00,0.00,21.00,0.84,1.57,0.18 +63.00,0.00,33.00,0.56,1.73,0.25 +82.00,0.00,52.00,0.50,1.65,0.29 +106.00,0.00,76.00,0.46,1.63,0.26 +69.60,1.00,58.00,0.94,1.62,0.17 +41.00,0.00,11.00,0.76,1.58,0.17 +55.00,0.00,25.00,0.56,1.58,0.21 +9.20,0.00,0.00,0.78,1.54,0.18 +30.00,0.00,0.00,0.64,1.66,0.23 +16.20,0.00,0.00,0.48,1.61,0.26 +43.00,0.00,13.00,0.53,1.70,0.23 +52.00,0.00,22.00,0.42,1.63,0.26 +108.00,0.00,78.00,0.57,1.68,0.34 +108.00,0.00,78.00,0.68,1.54,0.18 +30.00,0.00,0.00,0.52,1.64,0.22 +30.00,0.00,0.00,0.87,1.70,0.19 +92.00,0.00,62.00,0.39,1.68,0.28 +70.00,0.00,40.00,0.38,1.59,0.24 +15.30,0.00,0.00,0.62,1.50,0.17 +87.00,0.00,57.00,0.47,1.73,0.26 +0.60,0.00,0.00,0.71,1.72,0.25 +29.50,1.00,19.00,0.79,1.73,0.25 +58.00,0.00,28.00,0.32,1.60,0.31 +29.40,0.00,0.00,0.65,1.51,0.15 +43.20,1.00,24.00,0.39,1.85,0.41 +10.70,0.00,0.00,0.64,1.72,0.39 +30.00,0.00,0.00,0.38,1.57,0.24 +5.40,0.00,0.00,0.55,1.81,0.27 +65.00,0.00,35.00,0.34,1.60,0.30 +63.00,0.00,33.00,0.52,1.70,0.24 +28.40,0.00,0.00,0.37,1.81,0.37 +15.20,1.00,0.00,0.67,1.52,0.18 +53.30,1.00,31.00,0.65,1.71,0.34 +6.70,0.00,0.00,0.63,1.53,0.16 +21.30,1.00,0.00,0.83,1.66,0.25 +19.20,0.00,0.00,0.80,1.77,0.38 +71.00,0.00,41.00,0.36,1.60,0.25 +106.00,0.00,76.00,0.50,1.68,0.28 +10.30,0.00,0.00,0.55,1.65,0.22 +106.00,0.00,76.00,0.46,1.64,0.26 +43.10,1.00,37.00,0.59,1.58,0.22 +65.80,1.00,37.00,0.59,1.57,0.21 +41.00,0.00,11.00,0.68,1.78,0.24 +31.00,0.00,1.00,0.50,1.62,0.22 +59.00,0.00,29.00,0.41,1.67,0.26 +45.10,1.00,32.00,0.99,1.63,0.18 +106.00,0.00,76.00,0.47,1.64,0.26 +76.00,0.00,46.00,0.66,1.69,0.23 +69.00,0.00,39.00,0.61,1.60,0.28 +65.00,0.00,35.00,0.97,1.76,0.21 +47.00,0.00,17.00,0.46,1.70,0.27 +69.00,0.00,39.00,0.54,1.56,0.26 +83.00,0.00,53.00,0.56,1.66,0.22 +15.90,0.00,0.00,0.50,1.80,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +70.00,0.00,40.00,0.42,1.90,0.41 +63.90,1.00,57.00,0.43,1.69,0.25 +83.00,0.00,53.00,0.69,1.79,0.25 +30.00,0.00,0.00,0.85,1.67,0.25 +30.00,0.00,0.00,0.58,1.63,0.25 +91.00,0.00,61.00,0.35,1.64,0.30 +104.00,0.00,74.00,0.35,1.66,0.31 +4.40,0.00,0.00,0.79,1.57,0.16 +78.20,1.00,53.00,0.66,1.89,0.25 +46.30,1.00,40.00,0.40,1.60,0.24 +18.60,0.00,0.00,1.21,1.74,0.24 +30.00,0.00,0.00,0.33,1.61,0.27 +41.00,0.00,11.00,0.84,1.56,0.18 +64.00,0.00,34.00,0.34,1.65,0.29 +61.00,0.00,31.00,0.32,1.60,0.31 +9.60,0.00,0.00,1.17,1.66,0.20 +52.00,0.00,22.00,0.44,1.72,0.27 +85.00,0.00,55.00,0.49,1.63,0.28 +5.00,0.00,0.00,1.26,1.77,0.25 +33.80,1.00,31.00,0.61,1.79,0.25 +59.60,1.00,37.00,0.62,1.77,0.24 +53.80,1.00,45.00,0.57,1.64,0.25 +64.00,0.00,34.00,0.56,1.75,0.25 +44.00,0.00,14.00,0.51,1.60,0.20 +61.00,0.00,31.00,0.57,1.53,0.19 +41.00,0.00,11.00,0.43,1.66,0.24 +26.00,0.00,0.00,0.45,1.67,0.26 +53.00,0.00,23.00,0.62,1.68,0.30 +30.00,0.00,0.00,0.61,1.55,0.20 +68.00,0.00,38.00,0.34,1.53,0.27 +99.00,0.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,0.36,1.63,0.30 +59.00,0.00,29.00,0.47,1.67,0.25 +22.30,1.00,20.00,0.78,1.68,0.31 +58.00,0.00,28.00,0.38,1.55,0.28 +64.00,1.00,39.00,0.61,1.55,0.21 +23.70,0.00,0.00,0.59,1.58,0.26 +23.70,1.00,0.00,0.33,1.48,0.27 +26.20,1.00,17.00,0.84,1.59,0.16 +45.00,0.00,15.00,0.41,1.70,0.27 +44.00,0.00,14.00,0.44,1.71,0.26 +22.50,1.00,17.00,0.62,1.57,0.22 +59.00,0.00,29.00,0.41,1.68,0.26 +26.80,1.00,13.00,0.46,1.66,0.26 +61.00,0.00,31.00,0.49,1.66,0.28 +63.70,1.00,55.00,0.40,1.58,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +77.80,1.00,62.00,0.81,1.55,0.18 +47.00,0.00,17.00,0.52,1.65,0.23 +5.90,0.00,0.00,0.78,1.57,0.16 +52.30,1.00,52.00,0.50,1.63,0.26 +66.00,0.00,36.00,0.47,1.65,0.24 +40.00,0.00,10.00,1.17,1.76,0.22 +65.00,0.00,35.00,0.32,1.60,0.31 +44.00,0.00,14.00,0.41,1.86,0.40 +82.00,0.00,52.00,0.52,1.64,0.30 +18.60,0.00,0.00,0.63,1.74,0.33 +9.40,0.00,0.00,0.67,1.78,0.24 +53.50,1.00,37.00,0.41,1.69,0.26 +74.40,1.00,53.00,0.45,1.71,0.28 +75.30,1.00,71.00,0.64,1.58,0.20 +45.00,0.00,15.00,0.54,1.68,0.24 +75.00,0.00,45.00,0.70,1.55,0.17 +39.40,1.00,14.00,0.47,1.71,0.25 +30.00,0.00,0.00,0.56,1.73,0.25 +44.00,0.00,14.00,0.59,1.69,0.29 +53.00,0.00,23.00,0.55,1.73,0.32 +40.00,0.00,10.00,0.83,1.62,0.18 +58.00,0.00,28.00,0.32,1.56,0.28 +44.00,0.00,14.00,0.51,1.58,0.20 +14.20,0.00,0.00,0.60,1.68,0.23 +6.70,0.00,0.00,0.34,1.62,0.29 +40.00,0.00,10.00,0.85,1.57,0.16 +30.00,0.00,0.00,0.60,1.60,0.28 +41.00,1.00,39.00,0.60,1.57,0.20 +61.00,0.00,31.00,0.62,1.80,0.25 +25.50,0.00,0.00,0.77,1.63,0.29 +71.00,0.00,41.00,0.68,1.68,0.23 +50.00,0.00,20.00,0.40,1.59,0.24 +51.00,0.00,21.00,0.63,1.54,0.16 +101.00,0.00,71.00,0.50,1.83,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +25.70,1.00,14.00,0.44,1.71,0.26 +89.00,0.00,59.00,0.61,1.58,0.27 +97.00,0.00,67.00,0.59,1.70,0.27 +9.90,0.00,0.00,0.60,1.83,0.26 +41.00,0.00,11.00,0.56,1.67,0.27 +30.00,0.00,0.00,0.91,1.73,0.21 +72.00,0.00,42.00,0.81,1.77,0.38 +30.00,0.00,0.00,0.68,1.64,0.24 +30.00,0.00,0.00,0.61,1.60,0.28 +44.00,0.00,14.00,0.56,1.68,0.25 +6.10,0.00,0.00,0.67,1.52,0.18 +54.00,0.00,24.00,0.40,1.83,0.40 +78.00,0.00,48.00,0.50,1.80,0.28 +29.30,0.00,0.00,0.37,1.81,0.37 +14.70,0.00,0.00,0.92,1.73,0.20 +42.00,0.00,12.00,0.52,1.59,0.19 +96.20,1.00,75.00,0.58,1.71,0.27 +8.60,0.00,0.00,0.45,1.71,0.28 +57.00,0.00,27.00,0.63,1.51,0.18 +6.60,0.00,0.00,0.55,1.58,0.19 +69.00,0.00,39.00,0.57,1.69,0.27 +47.00,0.00,17.00,0.52,1.72,0.31 +64.00,0.00,34.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.70,1.61,0.29 +30.00,0.00,0.00,0.88,1.72,0.23 +58.00,0.00,28.00,0.47,1.68,0.25 +57.00,0.00,27.00,0.61,1.52,0.18 +56.00,0.00,26.00,0.52,1.65,0.22 +45.00,0.00,15.00,0.43,1.61,0.25 +64.00,0.00,34.00,0.38,1.66,0.30 +60.30,1.00,39.00,0.60,1.60,0.28 +76.80,1.00,56.00,0.56,1.71,0.24 +9.90,0.00,0.00,0.55,1.73,0.24 +45.50,1.00,21.00,0.47,1.68,0.25 +76.00,0.00,46.00,0.69,1.69,0.23 +92.00,0.00,62.00,0.43,1.73,0.27 +83.90,1.00,62.00,0.82,1.56,0.17 +70.00,0.00,40.00,0.39,1.62,0.25 +58.00,0.00,28.00,0.42,1.56,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +22.30,0.00,0.00,0.77,1.57,0.15 +66.00,0.00,36.00,0.45,1.70,0.27 +86.40,1.00,71.00,0.53,1.66,0.27 +55.00,0.00,25.00,0.57,1.57,0.20 +49.00,0.00,19.00,0.72,1.51,0.18 +3.00,0.00,0.00,0.87,1.82,0.50 +42.00,0.00,12.00,0.57,1.69,0.27 +104.60,1.00,78.00,0.63,1.53,0.18 +14.70,0.00,0.00,0.97,1.64,0.18 +81.00,0.00,51.00,0.48,1.65,0.27 +48.00,0.00,18.00,0.67,1.69,0.23 +13.30,0.00,0.00,0.35,1.59,0.27 +26.80,0.00,0.00,0.81,1.55,0.18 +40.70,1.00,18.00,0.56,1.52,0.17 +79.00,0.00,49.00,0.46,1.65,0.25 +69.00,0.00,39.00,1.01,1.77,0.24 +23.60,0.00,0.00,0.68,1.54,0.18 +36.00,0.00,6.00,0.56,1.60,0.22 +2.50,0.00,0.00,0.33,1.61,0.30 +68.30,1.00,57.00,0.46,1.70,0.26 +30.00,0.00,0.00,0.63,1.54,0.20 +79.00,0.00,49.00,0.71,1.60,0.26 +30.00,0.00,0.00,0.35,1.62,0.31 +66.00,0.00,36.00,0.35,1.60,0.28 +41.00,0.00,11.00,0.60,1.70,0.37 +30.00,0.00,0.00,0.82,1.61,0.17 +58.00,0.00,28.00,0.47,1.69,0.26 +0.50,0.00,0.00,0.82,1.58,0.17 +54.40,1.00,37.00,0.89,1.58,0.16 +65.00,0.00,35.00,0.34,1.62,0.29 +42.00,0.00,12.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.54,1.56,0.18 +43.00,0.00,13.00,0.44,1.73,0.28 +30.00,0.00,0.00,0.74,1.79,0.39 +56.20,1.00,37.00,1.05,1.61,0.18 +3.40,0.00,0.00,0.77,1.66,0.28 +44.00,0.00,14.00,0.54,1.59,0.18 +80.00,0.00,50.00,0.38,1.66,0.28 +52.20,1.00,42.00,0.73,1.82,0.43 +30.00,0.00,0.00,1.00,1.78,0.22 +50.00,0.00,20.00,0.72,1.54,0.15 +49.00,0.00,19.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.33,1.49,0.27 +71.00,0.00,41.00,0.61,1.70,0.23 +72.00,0.00,42.00,0.35,1.65,0.31 +30.00,0.00,0.00,1.17,1.87,0.50 +106.00,0.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.66,1.52,0.19 +34.70,1.00,17.00,0.41,1.59,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +62.00,0.00,32.00,0.48,1.56,0.25 +82.50,1.00,60.00,0.37,1.57,0.23 +10.20,1.00,0.00,1.16,1.90,0.57 +44.00,0.00,14.00,0.62,1.60,0.23 +5.90,0.00,0.00,0.79,1.54,0.18 +48.00,0.00,18.00,0.47,1.62,0.23 +51.80,1.00,45.00,0.57,1.64,0.25 +17.20,0.00,0.00,0.61,1.55,0.21 +16.20,0.00,0.00,0.39,1.60,0.25 +58.00,0.00,28.00,0.32,1.74,0.29 +61.00,0.00,31.00,0.72,1.51,0.18 +37.90,1.00,37.00,1.07,1.75,0.22 +30.00,0.00,0.00,1.02,1.76,0.32 +30.00,0.00,0.00,0.46,1.64,0.26 +63.60,1.00,53.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.55,1.71,0.24 +25.50,1.00,25.00,1.49,1.73,0.27 +48.80,1.00,20.00,0.68,1.50,0.17 +30.00,0.00,0.00,0.74,1.79,0.39 +26.30,0.00,0.00,1.00,1.77,0.21 +66.00,0.00,36.00,0.50,1.66,0.23 +58.00,0.00,28.00,0.32,1.59,0.31 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +81.00,0.00,51.00,0.32,1.61,0.29 +3.90,0.00,0.00,0.49,1.70,0.29 +19.00,0.00,0.00,0.63,1.83,0.24 +27.10,0.00,0.00,0.82,1.56,0.17 +30.00,0.00,0.00,0.53,1.55,0.18 +30.00,0.00,0.00,0.78,1.79,0.38 +51.00,0.00,21.00,0.41,1.82,0.39 +57.60,1.00,36.00,0.38,1.58,0.28 +47.00,0.00,17.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.60,1.52,0.18 +42.00,0.00,12.00,0.47,1.61,0.25 +48.00,0.00,18.00,0.33,1.65,0.30 +20.70,1.00,1.00,0.87,1.71,0.21 +18.60,0.00,0.00,0.57,1.68,0.23 +101.00,0.00,71.00,0.64,1.58,0.21 +64.00,0.00,34.00,0.42,1.70,0.27 +42.00,1.00,14.00,0.49,1.60,0.21 +30.00,0.00,0.00,0.58,1.53,0.17 +12.00,0.00,0.00,0.93,1.84,0.53 +41.00,0.00,11.00,0.66,1.77,0.25 +7.80,0.00,0.00,0.76,1.56,0.21 +77.90,1.00,50.00,0.37,1.65,0.29 +91.00,0.00,61.00,0.37,1.66,0.28 +41.00,0.00,11.00,0.77,1.59,0.17 +60.00,0.00,30.00,0.44,1.65,0.24 +30.00,0.00,0.00,0.92,1.83,0.42 +30.00,0.00,0.00,0.50,1.66,0.28 +73.00,0.00,43.00,0.61,1.68,0.23 +45.00,0.00,15.00,0.44,1.66,0.25 +10.70,0.00,0.00,1.00,1.85,0.44 +27.70,0.00,0.00,0.45,1.67,0.26 +52.00,0.00,22.00,0.36,1.62,0.26 +40.00,0.00,10.00,0.45,1.68,0.25 +51.00,0.00,21.00,0.49,1.63,0.26 +53.00,0.00,23.00,0.42,1.82,0.39 +30.00,0.00,0.00,0.77,1.73,0.23 +92.00,0.00,62.00,0.44,1.73,0.27 +82.00,0.00,52.00,0.51,1.64,0.27 +68.00,0.00,38.00,0.73,1.60,0.25 +7.30,0.00,0.00,0.52,1.65,0.26 +19.20,0.00,0.00,0.67,1.52,0.19 +72.00,0.00,42.00,0.36,1.60,0.25 +72.00,0.00,42.00,0.37,1.65,0.29 +14.80,1.00,0.00,1.16,1.73,0.23 +29.10,0.00,0.00,0.45,1.82,0.39 +0.90,0.00,0.00,0.82,1.56,0.18 +58.00,0.00,28.00,0.33,1.56,0.26 +71.00,0.00,41.00,0.53,1.82,0.28 +30.00,0.00,0.00,0.66,1.52,0.19 +30.00,0.00,0.00,0.42,1.60,0.24 +30.00,0.00,0.00,0.60,1.64,0.23 +68.00,0.00,38.00,0.73,1.62,0.27 +53.00,0.00,23.00,0.31,1.55,0.31 +44.00,0.00,14.00,0.62,1.60,0.22 +30.00,0.00,0.00,0.50,1.66,0.28 +30.00,0.00,0.00,0.62,1.55,0.21 +41.80,1.00,24.00,0.52,1.57,0.19 +72.00,0.00,42.00,0.50,1.80,0.40 +44.40,1.00,37.00,0.61,1.78,0.25 +51.00,0.00,21.00,0.49,1.64,0.25 +85.00,0.00,55.00,0.44,1.55,0.27 +20.40,0.00,0.00,0.55,1.73,0.24 +73.00,0.00,43.00,0.44,1.73,0.26 +59.00,0.00,29.00,0.42,1.67,0.25 +61.00,0.00,31.00,0.50,1.66,0.28 +47.00,0.00,17.00,0.93,1.62,0.18 +90.00,0.00,60.00,0.46,1.65,0.27 +30.00,0.00,0.00,0.62,1.51,0.18 +9.50,0.00,0.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.86,1.68,0.19 +48.30,1.00,41.00,0.61,1.49,0.15 +50.00,0.00,20.00,0.63,1.53,0.16 +61.00,0.00,31.00,0.63,1.71,0.33 +45.00,0.00,15.00,0.44,1.65,0.25 +98.00,0.00,68.00,0.41,1.68,0.26 +104.00,0.00,74.00,0.30,1.57,0.29 +70.00,1.00,68.00,0.36,1.63,0.29 +35.60,1.00,32.00,0.35,1.64,0.31 +29.70,0.00,0.00,0.46,1.72,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +83.00,0.00,53.00,0.43,1.70,0.26 +5.40,0.00,0.00,0.38,1.66,0.28 +66.00,0.00,36.00,0.43,1.70,0.32 +30.00,0.00,0.00,0.77,1.55,0.16 +43.00,0.00,13.00,0.43,1.70,0.26 +60.00,0.00,30.00,0.45,1.71,0.27 +67.60,1.00,39.00,0.35,1.55,0.28 +101.00,0.00,71.00,0.49,1.63,0.25 +44.00,0.00,14.00,0.39,1.50,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +0.30,0.00,0.00,1.50,1.73,0.27 +88.00,0.00,58.00,0.53,1.81,0.29 +12.50,0.00,0.00,0.66,1.52,0.19 +78.00,0.00,48.00,0.45,1.70,0.27 +14.60,0.00,0.00,0.58,1.51,0.17 +55.00,0.00,25.00,0.42,1.84,0.39 +6.10,0.00,0.00,1.03,1.77,0.20 +66.00,0.00,36.00,0.40,1.69,0.27 +50.00,0.00,20.00,0.81,1.62,0.18 +92.00,0.00,62.00,0.67,1.52,0.19 +12.40,0.00,0.00,0.43,1.70,0.26 +23.00,1.00,5.00,0.58,1.71,0.27 +30.00,0.00,0.00,0.40,1.69,0.27 +19.30,0.00,0.00,0.43,1.56,0.28 +60.00,0.00,30.00,0.53,1.71,0.24 +10.10,0.00,0.00,0.83,1.79,0.47 +30.00,0.00,0.00,0.89,1.83,0.41 +44.00,0.00,14.00,0.43,1.52,0.27 +15.30,0.00,0.00,0.60,1.74,0.24 +51.00,0.00,21.00,0.66,1.53,0.15 +101.00,0.00,71.00,0.34,1.48,0.27 +26.30,1.00,20.00,0.92,1.69,0.39 +73.60,1.00,50.00,0.59,1.59,0.22 +30.00,0.00,0.00,0.40,1.69,0.27 +56.00,0.00,26.00,0.52,1.65,0.23 +48.00,1.00,37.00,1.02,1.77,0.21 +73.50,1.00,59.00,0.59,1.58,0.26 +13.80,1.00,0.00,0.83,1.80,0.40 +33.40,1.00,29.00,0.68,1.61,0.24 +12.10,1.00,0.00,1.19,1.79,0.29 +92.00,0.00,62.00,0.33,1.60,0.31 +32.00,0.00,2.00,0.57,1.66,0.24 +69.00,0.00,39.00,0.65,1.53,0.19 +2.20,0.00,0.00,1.21,1.92,0.58 +63.00,0.00,33.00,0.42,1.70,0.28 +52.40,1.00,44.00,0.38,1.67,0.29 +51.00,0.00,21.00,0.35,1.63,0.31 +48.00,0.00,18.00,0.58,1.68,0.23 +63.00,0.00,33.00,0.56,1.54,0.20 +45.00,0.00,15.00,0.42,1.72,0.27 +93.70,1.00,69.00,0.63,1.51,0.17 +9.60,0.00,0.00,0.66,1.50,0.17 +60.00,0.00,30.00,0.32,1.71,0.29 +8.90,0.00,0.00,0.40,1.57,0.28 +18.40,1.00,0.00,0.98,1.76,0.21 +59.00,0.00,29.00,0.70,1.72,0.25 +78.40,1.00,56.00,0.57,1.71,0.24 +25.70,0.00,0.00,0.82,1.59,0.17 +30.00,0.00,0.00,0.38,1.57,0.28 +92.00,0.00,62.00,0.80,1.54,0.17 +30.00,0.00,0.00,0.72,1.67,0.35 +82.00,0.00,52.00,0.47,1.69,0.26 +44.00,0.00,14.00,0.55,1.67,0.24 +83.00,0.00,53.00,0.50,1.58,0.20 +21.60,0.00,0.00,0.81,1.79,0.41 +76.20,1.00,61.00,0.39,1.68,0.28 +45.00,0.00,15.00,1.04,1.62,0.17 +57.00,0.00,27.00,0.42,1.67,0.26 +0.40,0.00,0.00,0.72,1.52,0.18 +32.30,1.00,20.00,0.69,1.50,0.17 +47.00,1.00,41.00,0.68,1.68,0.23 +21.00,0.00,0.00,0.64,1.53,0.20 +30.00,0.00,0.00,0.41,1.62,0.24 +14.90,0.00,0.00,0.32,1.68,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +41.00,0.00,11.00,0.48,1.61,0.26 +30.00,0.00,0.00,0.58,1.53,0.17 +18.30,0.00,0.00,0.81,1.55,0.18 +41.00,1.00,36.00,0.47,1.65,0.27 +30.00,0.00,0.00,0.54,1.83,0.29 +25.50,0.00,0.00,0.42,1.70,0.28 +98.00,0.00,68.00,0.32,1.60,0.31 +61.00,0.00,31.00,0.36,1.65,0.32 +65.00,0.00,35.00,0.34,1.63,0.28 +34.00,0.00,4.00,0.56,1.56,0.26 +55.20,1.00,33.00,0.76,1.56,0.21 +85.00,0.00,55.00,0.38,1.55,0.28 +57.00,0.00,27.00,0.43,1.67,0.26 +91.00,0.00,61.00,0.36,1.64,0.29 +13.20,0.00,0.00,0.44,1.72,0.26 +23.90,0.00,0.00,0.38,1.65,0.26 +20.00,0.00,0.00,0.56,1.63,0.24 +40.20,1.00,14.00,0.46,1.55,0.27 +72.00,0.00,42.00,0.42,1.85,0.40 +22.80,0.00,0.00,0.57,1.76,0.25 +30.00,0.00,0.00,0.40,1.69,0.27 +60.00,0.00,30.00,0.32,1.73,0.28 +30.00,0.00,0.00,1.09,1.71,0.22 +33.00,0.00,3.00,0.65,1.69,0.30 +44.00,0.00,14.00,0.44,1.64,0.26 +49.00,0.00,19.00,0.43,1.73,0.26 +40.00,0.00,10.00,0.83,1.62,0.18 +50.00,0.00,20.00,0.41,1.57,0.27 +49.00,0.00,19.00,0.33,1.72,0.28 +53.10,1.00,33.00,0.60,1.67,0.24 +22.20,1.00,0.00,1.16,1.76,0.22 +30.00,0.00,0.00,0.99,1.77,0.21 +90.00,0.00,60.00,0.39,1.57,0.23 +22.40,1.00,11.00,0.82,1.60,0.18 +26.90,0.00,0.00,0.65,1.75,0.34 +29.80,0.00,0.00,0.55,1.81,0.27 +4.20,0.00,0.00,0.49,1.62,0.22 +44.00,0.00,14.00,0.71,2.05,0.26 +65.20,1.00,40.00,0.42,1.88,0.40 +106.00,0.00,76.00,0.47,1.64,0.26 +81.00,0.00,51.00,0.33,1.59,0.28 +82.00,0.00,52.00,0.46,1.61,0.25 +61.00,0.00,31.00,0.51,1.67,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +33.00,1.00,20.00,0.80,1.79,0.45 +30.00,0.00,0.00,0.86,1.70,0.19 +101.00,0.00,71.00,0.50,1.82,0.28 +8.20,0.00,0.00,1.03,1.76,0.25 +53.00,0.00,23.00,0.68,1.72,0.33 +60.00,0.00,30.00,0.46,1.65,0.24 +62.20,1.00,39.00,0.64,1.53,0.20 +36.10,1.00,25.00,1.16,1.65,0.24 +30.00,0.00,0.00,0.54,1.54,0.18 +30.00,0.00,0.00,0.37,1.55,0.27 +87.00,0.00,57.00,0.43,1.68,0.25 +106.00,0.00,76.00,0.47,1.65,0.27 +22.80,1.00,0.00,1.05,1.75,0.21 +36.00,0.00,6.00,0.56,1.63,0.24 +74.00,0.00,44.00,0.32,1.60,0.28 +73.00,0.00,43.00,0.43,1.72,0.26 +70.10,1.00,47.00,0.94,1.59,0.22 +80.00,0.00,50.00,0.36,1.65,0.29 +47.00,0.00,17.00,0.56,1.73,0.24 +27.50,1.00,26.00,1.11,1.76,0.24 +10.70,0.00,0.00,0.45,1.69,0.26 +48.00,0.00,18.00,0.46,1.62,0.24 +21.90,0.00,0.00,0.88,1.70,0.23 +34.00,0.00,4.00,0.32,1.81,0.28 +52.60,1.00,48.00,0.44,1.70,0.27 +92.00,0.00,62.00,0.30,1.56,0.30 +14.10,1.00,0.00,1.19,1.74,0.24 +9.00,0.00,0.00,0.61,1.52,0.18 +33.90,1.00,20.00,0.70,1.50,0.17 +101.00,0.00,71.00,0.38,1.58,0.24 +49.00,0.00,19.00,0.34,1.60,0.26 +30.00,0.00,0.00,0.32,1.60,0.31 +44.00,0.00,14.00,0.45,1.54,0.27 +72.00,0.00,42.00,0.43,1.83,0.39 +23.50,1.00,23.00,0.67,1.72,0.32 +73.00,0.00,43.00,0.39,1.66,0.27 +51.00,0.00,21.00,0.91,1.62,0.17 +17.00,0.00,0.00,1.19,1.79,0.28 +71.00,0.00,41.00,0.66,1.68,0.23 +12.90,0.00,0.00,0.46,1.65,0.25 +36.30,1.00,18.00,0.68,1.69,0.23 +17.00,0.00,0.00,0.80,1.79,0.45 +22.80,0.00,0.00,0.39,1.68,0.28 +21.90,0.00,0.00,0.82,1.67,0.33 +34.10,1.00,15.00,0.65,1.56,0.23 +63.00,0.00,33.00,0.53,1.56,0.20 +52.10,1.00,28.00,0.32,1.56,0.27 +31.40,1.00,30.00,0.71,1.55,0.15 +18.00,0.00,0.00,0.62,1.68,0.23 +80.00,0.00,50.00,0.38,1.66,0.27 +0.40,0.00,0.00,0.67,1.71,0.24 +27.20,0.00,0.00,0.80,1.54,0.18 +43.00,0.00,13.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.37,1.55,0.25 +70.00,0.00,40.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.70,1.77,0.38 +11.60,0.00,0.00,0.61,1.75,0.33 +30.00,0.00,0.00,0.63,1.54,0.20 +40.40,1.00,21.00,0.89,1.59,0.18 +2.30,0.00,0.00,0.43,1.52,0.27 +70.00,0.00,40.00,0.54,1.69,0.23 +49.00,0.00,19.00,0.35,1.60,0.26 +87.00,0.00,57.00,0.68,1.61,0.28 +28.30,1.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.46,1.63,0.26 +63.00,0.00,33.00,0.43,1.70,0.27 +56.00,0.00,26.00,0.52,1.65,0.22 +94.10,1.00,71.00,0.52,1.65,0.26 +49.00,0.00,19.00,0.33,1.72,0.28 +30.00,0.00,0.00,0.85,1.81,0.40 +37.00,0.00,7.00,0.74,1.67,0.31 +53.00,0.00,23.00,0.40,1.68,0.27 +51.00,0.00,21.00,0.87,1.58,0.18 +45.90,1.00,39.00,0.61,1.55,0.21 +17.70,0.00,0.00,0.69,1.50,0.17 +80.00,0.00,50.00,0.38,1.66,0.28 +56.00,0.00,26.00,0.37,1.67,0.30 +30.00,0.00,0.00,0.36,1.57,0.25 +71.00,0.00,41.00,0.37,1.60,0.25 +39.00,0.00,9.00,0.47,1.63,0.26 +30.00,0.00,0.00,0.60,1.60,0.28 +32.90,1.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.99,1.64,0.30 +90.00,0.00,60.00,0.43,1.60,0.25 +66.00,0.00,36.00,0.53,1.68,0.23 +42.00,0.00,12.00,0.35,1.62,0.26 +48.00,0.00,18.00,0.35,1.65,0.32 +4.10,0.00,0.00,0.57,1.60,0.22 +71.00,0.00,41.00,0.70,1.68,0.23 +71.00,0.00,41.00,0.61,1.49,0.15 +82.00,0.00,52.00,0.51,1.64,0.27 +30.00,0.00,0.00,0.38,1.67,0.28 +87.00,0.00,57.00,0.46,1.70,0.26 +33.00,0.00,3.00,0.46,1.63,0.26 +30.00,0.00,0.00,0.89,1.67,0.26 +39.20,1.00,10.00,0.84,1.57,0.16 +60.50,1.00,39.00,0.61,1.56,0.20 +105.00,0.00,75.00,0.60,1.70,0.28 +14.10,1.00,10.00,1.14,1.64,0.20 +101.00,0.00,71.00,0.38,1.58,0.27 +7.10,0.00,0.00,1.27,1.80,0.30 +33.00,0.00,3.00,0.53,1.82,0.28 +97.00,0.00,67.00,0.57,1.68,0.33 +25.50,0.00,0.00,0.52,1.57,0.20 +74.00,0.00,44.00,0.32,1.63,0.29 +29.00,0.00,0.00,0.56,1.52,0.17 +44.00,0.00,14.00,0.59,1.77,0.25 +39.70,1.00,23.00,0.35,1.59,0.27 +44.00,0.00,14.00,0.44,1.71,0.25 +87.00,0.00,57.00,0.49,1.75,0.28 +82.00,0.00,52.00,0.47,1.60,0.26 +48.00,0.00,18.00,0.41,1.63,0.25 +2.50,0.00,0.00,0.92,1.81,0.44 +28.40,0.00,0.00,0.98,1.61,0.19 +96.00,0.00,66.00,0.49,1.64,0.22 +16.10,0.00,0.00,0.60,1.70,0.37 +69.00,0.00,39.00,0.44,1.58,0.25 +27.30,0.00,0.00,0.66,1.56,0.21 +69.00,0.00,39.00,0.61,1.55,0.21 +82.80,1.00,62.00,0.82,1.59,0.17 +21.90,1.00,0.00,0.74,1.79,0.43 +58.00,0.00,28.00,0.65,1.75,0.34 +58.00,0.00,28.00,0.34,1.56,0.26 +25.80,1.00,0.00,1.14,1.77,0.27 +22.70,0.00,0.00,0.59,1.51,0.16 +30.00,0.00,0.00,0.63,1.51,0.18 +72.00,0.00,42.00,0.43,1.71,0.27 +13.30,1.00,11.00,0.42,1.65,0.25 +87.10,1.00,76.00,0.52,1.70,0.30 +15.10,0.00,0.00,0.83,1.62,0.18 +63.00,0.00,33.00,0.44,1.69,0.27 +101.00,0.00,71.00,0.37,1.56,0.24 +30.00,0.00,0.00,1.05,1.78,0.30 +30.00,0.00,0.00,0.65,1.63,0.24 +10.20,0.00,0.00,0.63,1.69,0.23 +67.00,0.00,37.00,1.03,1.77,0.21 +42.00,0.00,12.00,0.50,1.82,0.41 +47.00,0.00,17.00,0.41,1.60,0.24 +64.00,0.00,34.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.80,1.56,0.17 +30.00,0.00,0.00,0.56,1.73,0.32 +30.00,0.00,0.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.55,1.68,0.24 +74.00,0.00,44.00,0.56,1.57,0.21 +30.00,0.00,0.00,0.49,1.67,0.28 +61.00,0.00,31.00,0.59,1.69,0.32 +30.00,0.00,0.00,0.74,1.59,0.22 +5.80,0.00,0.00,0.78,1.57,0.15 +30.00,0.00,0.00,1.05,1.79,0.27 +43.00,0.00,13.00,0.41,1.68,0.26 +30.00,0.00,0.00,0.51,1.69,0.28 +51.00,0.00,21.00,0.94,1.63,0.17 +58.00,0.00,28.00,0.32,1.60,0.28 +72.00,1.00,42.00,0.45,1.73,0.28 +59.20,1.00,39.00,0.58,1.68,0.23 +19.50,0.00,0.00,0.59,1.57,0.22 +85.90,1.00,62.00,0.68,1.53,0.19 +76.00,1.00,62.00,0.31,1.58,0.31 +52.00,0.00,22.00,0.75,1.62,0.22 +30.00,0.00,0.00,0.88,1.67,0.25 +71.00,0.00,41.00,0.66,1.68,0.23 +18.40,1.00,10.00,1.14,1.64,0.20 +84.00,0.00,54.00,0.48,1.69,0.30 +72.00,0.00,42.00,0.35,1.57,0.25 +13.90,0.00,0.00,0.37,1.60,0.25 +0.40,0.00,0.00,0.50,1.63,0.26 +44.00,0.00,14.00,0.65,1.63,0.24 +13.50,0.00,0.00,0.38,1.67,0.28 +71.00,0.00,41.00,0.35,1.59,0.26 +73.00,0.00,43.00,0.44,1.73,0.27 +13.00,0.00,0.00,0.64,1.53,0.15 +98.00,0.00,68.00,0.34,1.61,0.31 +75.10,1.00,54.00,0.50,1.71,0.30 +55.00,0.00,25.00,0.43,1.79,0.38 +61.50,1.00,39.00,0.61,1.55,0.21 +98.00,0.00,68.00,0.40,1.66,0.26 +48.00,0.00,18.00,0.65,1.49,0.16 +50.00,0.00,20.00,0.74,1.52,0.18 +37.00,0.00,7.00,0.52,1.55,0.19 +16.20,0.00,0.00,0.46,1.67,0.26 +64.00,0.00,34.00,0.33,1.60,0.31 +96.00,0.00,66.00,0.48,1.63,0.23 +56.00,0.00,26.00,0.45,1.62,0.25 +85.00,0.00,55.00,0.42,1.56,0.28 +64.40,1.00,37.00,0.53,1.71,0.30 +56.00,0.00,26.00,0.78,1.58,0.15 +26.60,1.00,12.00,0.94,1.63,0.17 +69.00,0.00,39.00,0.40,1.65,0.27 +64.00,0.00,34.00,0.56,1.75,0.25 +19.80,0.00,0.00,0.48,1.66,0.24 +47.00,0.00,17.00,0.41,1.58,0.24 +76.00,0.00,46.00,0.69,1.69,0.23 +74.30,1.00,48.00,0.49,1.78,0.28 +45.00,0.00,15.00,0.63,1.50,0.15 +52.30,1.00,28.00,0.47,1.69,0.26 +104.60,1.00,76.00,0.53,1.70,0.29 +18.00,0.00,0.00,0.70,1.54,0.15 +58.00,0.00,28.00,0.33,1.56,0.26 +50.00,0.00,20.00,0.70,1.77,0.25 +30.00,0.00,0.00,0.64,1.53,0.16 +30.00,0.00,0.00,0.48,1.62,0.28 +39.00,0.00,9.00,0.35,1.64,0.30 +47.30,1.00,33.00,0.59,1.67,0.24 +11.30,0.00,0.00,0.52,1.81,0.29 +53.30,1.00,52.00,0.50,1.63,0.26 +40.00,0.00,10.00,0.44,1.67,0.25 +50.00,0.00,20.00,0.63,1.52,0.18 +74.00,0.00,44.00,0.35,1.61,0.28 +48.00,0.00,18.00,0.53,1.58,0.18 +50.00,0.00,20.00,0.77,1.67,0.29 +83.90,1.00,61.00,0.39,1.69,0.28 +87.00,0.00,57.00,0.59,1.62,0.25 +4.60,0.00,0.00,0.47,1.67,0.25 +52.00,0.00,22.00,0.37,1.63,0.27 +30.00,0.00,0.00,0.41,1.62,0.24 +3.90,0.00,0.00,1.02,1.77,0.21 +69.00,0.00,39.00,0.63,1.54,0.20 +14.70,0.00,0.00,0.47,1.64,0.26 +101.00,0.00,71.00,0.38,1.56,0.25 +11.70,0.00,0.00,0.70,1.52,0.19 +43.00,0.00,13.00,0.78,1.57,0.16 +52.00,0.00,22.00,0.43,1.60,0.24 +59.30,1.00,58.00,0.61,1.68,0.23 +8.50,0.00,0.00,0.60,1.70,0.37 +30.00,0.00,0.00,0.45,1.62,0.26 +41.00,0.00,11.00,0.70,1.81,0.24 +74.00,0.00,44.00,0.38,1.67,0.29 +42.00,0.00,12.00,0.55,1.62,0.25 +51.00,0.00,21.00,0.52,1.65,0.28 +72.00,0.00,42.00,0.44,1.73,0.27 +17.90,0.00,0.00,0.56,1.71,0.24 +72.00,0.00,42.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +60.00,0.00,30.00,0.45,1.72,0.27 +60.00,0.00,30.00,0.32,1.63,0.29 +85.00,0.00,55.00,0.38,1.54,0.28 +41.00,0.00,11.00,0.48,1.61,0.26 +50.00,0.00,20.00,0.58,1.64,0.22 +69.00,0.00,39.00,0.44,1.58,0.25 +37.00,0.00,7.00,0.75,1.67,0.30 +9.40,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.82,1.80,0.40 +98.00,0.00,68.00,0.40,1.56,0.25 +17.30,0.00,0.00,0.58,1.69,0.26 +30.00,0.00,0.00,0.90,1.82,0.41 +96.20,1.00,78.00,0.65,1.54,0.18 +92.10,1.00,71.00,0.33,1.47,0.26 +30.00,0.00,0.00,0.55,1.62,0.25 +60.00,0.00,30.00,0.38,1.68,0.28 +16.90,0.00,0.00,1.00,1.75,0.25 +81.40,1.00,74.00,0.31,1.58,0.29 +69.00,0.00,39.00,0.61,1.55,0.21 +108.00,0.00,78.00,0.68,1.54,0.17 +71.00,0.00,41.00,0.67,1.68,0.23 +51.00,0.00,21.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.83,1.66,0.18 +73.10,1.00,47.00,0.90,1.58,0.22 +61.00,0.00,31.00,0.33,1.60,0.31 +61.00,0.00,31.00,0.43,1.73,0.26 +50.00,0.00,20.00,0.55,1.54,0.20 +18.80,0.00,0.00,0.71,1.69,0.22 +30.00,0.00,0.00,0.65,1.63,0.24 +12.80,1.00,10.00,0.80,1.83,0.55 +49.00,0.00,19.00,0.73,1.72,0.25 +43.00,0.00,13.00,0.68,1.74,0.41 +90.00,0.00,60.00,0.39,1.61,0.25 +11.50,0.00,0.00,0.43,1.55,0.27 +14.00,0.00,0.00,0.55,1.71,0.31 +4.40,0.00,0.00,0.51,1.71,0.30 +11.10,0.00,0.00,0.59,1.53,0.19 +13.50,0.00,0.00,0.41,1.69,0.26 +79.00,0.00,49.00,0.44,1.72,0.28 +26.90,0.00,0.00,0.59,1.57,0.20 +86.00,0.00,56.00,0.45,1.72,0.26 +76.00,0.00,46.00,0.34,1.55,0.28 +23.40,0.00,0.00,0.43,1.73,0.27 +23.40,1.00,17.00,0.56,1.68,0.25 +33.00,0.00,3.00,0.32,1.64,0.31 +91.00,0.00,61.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.37,1.55,0.28 +30.00,0.00,0.00,0.54,1.58,0.19 +72.00,0.00,42.00,0.38,1.66,0.27 +45.00,0.00,15.00,0.40,1.68,0.28 +57.40,1.00,32.00,0.47,1.67,0.24 +30.00,0.00,0.00,0.74,1.79,0.43 +30.00,0.00,0.00,0.32,1.60,0.31 +25.30,1.00,20.00,0.74,1.76,0.24 +3.60,0.00,0.00,0.32,1.62,0.29 +41.00,0.00,11.00,0.67,1.78,0.24 +28.70,0.00,0.00,0.47,1.63,0.23 +66.00,0.00,36.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.69,1.77,0.38 +40.90,1.00,20.00,0.49,1.64,0.22 +41.00,1.00,23.00,0.39,1.66,0.26 +36.00,0.00,6.00,0.38,1.55,0.24 +62.00,0.00,32.00,0.35,1.66,0.32 +42.00,0.00,12.00,0.57,1.63,0.25 +48.00,0.00,18.00,0.32,1.65,0.30 +30.00,0.00,0.00,0.70,1.78,0.38 +7.60,0.00,0.00,1.09,1.63,0.23 +30.00,0.00,0.00,0.62,1.59,0.27 +48.00,0.00,18.00,0.42,1.67,0.26 +28.50,0.00,0.00,0.59,1.75,0.25 +76.80,1.00,71.00,0.49,1.64,0.25 +8.50,0.00,0.00,0.46,1.73,0.27 +20.30,1.00,0.00,0.59,1.64,0.24 +24.30,0.00,0.00,0.60,1.70,0.28 +30.00,0.00,0.00,0.44,1.73,0.28 +18.90,0.00,0.00,0.47,1.65,0.24 +50.00,0.00,20.00,0.49,1.64,0.22 +20.50,0.00,0.00,0.45,1.71,0.27 +84.00,0.00,54.00,0.46,1.63,0.26 +58.00,0.00,28.00,0.68,1.74,0.35 +80.70,1.00,60.00,0.56,1.68,0.33 +31.00,0.00,1.00,0.51,1.64,0.29 +39.00,0.00,9.00,0.36,1.65,0.29 +44.00,0.00,14.00,0.62,1.64,0.27 +47.00,0.00,17.00,0.52,1.82,0.28 +44.00,0.00,14.00,0.53,1.59,0.19 +54.70,1.00,53.00,0.81,1.67,0.23 +66.00,0.00,36.00,0.36,1.63,0.28 +65.00,0.00,35.00,0.53,1.66,0.30 +47.00,0.00,17.00,0.40,1.56,0.28 +30.00,0.00,0.00,0.79,1.57,0.16 +60.00,0.00,30.00,0.70,1.55,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +45.00,0.00,15.00,0.43,1.67,0.24 +36.40,1.00,26.00,0.59,1.78,0.36 +22.60,1.00,0.00,0.53,1.81,0.29 +61.00,0.00,31.00,0.58,1.53,0.19 +106.00,0.00,76.00,0.33,1.56,0.26 +61.00,0.00,31.00,0.50,1.66,0.28 +50.00,0.00,20.00,0.55,1.54,0.20 +12.50,0.00,0.00,0.37,1.56,0.28 +51.00,0.00,21.00,0.80,1.59,0.16 +52.00,0.00,22.00,0.62,1.55,0.21 +21.40,0.00,0.00,0.67,1.61,0.28 +6.20,0.00,0.00,0.60,1.52,0.18 +72.00,0.00,42.00,0.35,1.59,0.25 +101.00,0.00,71.00,0.39,1.59,0.24 +60.20,1.00,39.00,0.34,1.55,0.27 +48.10,1.00,44.00,0.36,1.63,0.31 +55.00,0.00,25.00,0.69,1.82,0.25 +30.00,0.00,0.00,0.60,1.56,0.20 +30.00,0.00,0.00,0.52,1.70,0.28 +60.00,0.00,30.00,0.55,1.71,0.25 +85.40,1.00,69.00,0.60,1.50,0.17 +6.20,0.00,0.00,0.94,1.63,0.18 +97.20,1.00,68.00,0.39,1.64,0.26 +30.00,0.00,0.00,0.55,1.62,0.25 +7.80,0.00,0.00,0.63,1.55,0.21 +78.00,0.00,48.00,0.52,1.78,0.28 +45.00,0.00,15.00,0.69,1.60,0.25 +53.00,0.00,23.00,0.31,1.57,0.31 +42.00,0.00,12.00,0.53,1.62,0.25 +13.80,0.00,0.00,0.47,1.71,0.25 +46.00,0.00,16.00,0.47,1.68,0.25 +69.00,0.00,39.00,0.41,1.62,0.26 +5.80,0.00,0.00,0.44,1.71,0.25 +30.00,0.00,0.00,0.48,1.55,0.25 +73.00,0.00,43.00,0.44,1.73,0.26 +22.20,0.00,0.00,0.69,1.93,0.25 +46.00,0.00,16.00,0.45,1.65,0.26 +44.60,1.00,39.00,0.61,1.55,0.21 +30.00,0.00,0.00,1.18,1.79,0.29 +0.90,0.00,0.00,1.29,1.68,0.25 +25.30,0.00,0.00,0.67,1.60,0.28 +92.00,0.00,62.00,0.44,1.73,0.27 +58.00,0.00,28.00,0.65,1.74,0.34 +45.00,0.00,15.00,0.42,1.61,0.25 +13.30,0.00,0.00,0.68,1.80,0.38 +23.20,0.00,0.00,0.87,1.82,0.51 +85.00,0.00,55.00,0.45,1.53,0.27 +14.90,0.00,0.00,0.37,1.57,0.25 +5.60,0.00,0.00,0.55,1.63,0.24 +83.00,0.00,53.00,0.45,1.71,0.28 +30.00,0.00,0.00,0.67,1.53,0.16 +30.00,0.00,0.00,0.61,1.67,0.24 +30.00,0.00,0.00,0.49,1.66,0.28 +17.70,0.00,0.00,0.82,1.78,0.25 +3.50,0.00,0.00,1.18,1.80,0.29 +86.00,0.00,56.00,0.55,1.81,0.28 +9.10,0.00,0.00,0.52,1.57,0.20 +24.60,1.00,21.00,0.80,1.59,0.16 +30.00,0.00,0.00,0.41,1.57,0.27 +25.10,1.00,18.00,0.41,1.64,0.25 +10.10,0.00,0.00,0.58,1.71,0.23 +17.90,0.00,0.00,0.56,1.52,0.17 +81.90,1.00,52.00,0.50,1.63,0.26 +27.20,1.00,10.00,0.94,1.60,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +97.00,0.00,67.00,0.57,1.68,0.33 +44.00,0.00,14.00,0.33,1.61,0.32 +14.30,0.00,0.00,0.38,1.64,0.26 +52.00,0.00,22.00,0.42,1.62,0.26 +10.50,0.00,0.00,0.72,1.54,0.20 +1.40,0.00,0.00,0.61,1.74,0.32 +17.90,0.00,0.00,0.59,1.72,0.23 +73.70,1.00,51.00,0.49,1.65,0.28 +3.10,1.00,0.00,1.48,1.73,0.27 +8.50,0.00,0.00,0.46,1.62,0.24 +75.90,1.00,48.00,0.51,1.74,0.27 +91.00,0.00,61.00,0.36,1.64,0.29 +13.50,0.00,0.00,0.71,1.54,0.15 +39.20,1.00,30.00,0.60,1.66,0.23 +74.00,0.00,44.00,0.36,1.64,0.28 +30.00,0.00,0.00,0.78,1.58,0.15 +11.70,0.00,0.00,0.61,1.73,0.24 +53.00,0.00,23.00,0.42,1.84,0.39 +67.00,0.00,37.00,0.62,1.77,0.24 +3.90,0.00,0.00,0.38,1.64,0.26 +44.00,0.00,14.00,0.46,1.74,0.28 +67.70,1.00,67.00,0.97,1.74,0.24 +30.00,0.00,0.00,0.62,1.76,0.24 +51.00,0.00,21.00,0.46,1.71,0.27 +6.60,0.00,0.00,0.63,1.58,0.21 +58.00,0.00,28.00,0.32,1.56,0.27 +65.00,0.00,35.00,0.34,1.63,0.28 +40.00,0.00,10.00,1.05,1.61,0.18 +71.00,0.00,41.00,0.57,1.64,0.25 +68.80,1.00,44.00,0.36,1.64,0.28 +72.00,0.00,42.00,0.84,1.78,0.39 +76.10,1.00,60.00,0.39,1.63,0.25 +71.00,0.00,41.00,0.61,1.72,0.24 +13.70,1.00,10.00,1.01,1.61,0.18 +76.00,0.00,46.00,0.33,1.56,0.27 +18.20,1.00,13.00,0.63,1.58,0.22 +44.00,0.00,14.00,0.52,1.59,0.20 +97.00,0.00,67.00,0.46,1.64,0.25 +30.00,0.00,0.00,0.70,1.63,0.25 +30.00,0.00,0.00,0.51,1.57,0.25 +83.00,0.00,53.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.36,1.55,0.28 +27.60,1.00,10.00,1.17,1.76,0.22 +54.10,1.00,40.00,0.54,1.69,0.23 +71.00,0.00,41.00,0.39,1.60,0.26 +72.00,0.00,42.00,0.43,1.82,0.39 +66.00,0.00,36.00,0.47,1.65,0.25 +58.00,0.00,28.00,0.32,1.61,0.29 +47.00,0.00,17.00,0.34,1.55,0.28 +31.60,1.00,11.00,0.82,1.60,0.18 +45.00,0.00,15.00,0.46,1.73,0.28 +98.00,0.00,68.00,0.35,1.63,0.30 +44.00,0.00,14.00,0.55,1.68,0.24 +58.00,0.00,28.00,0.32,1.56,0.27 +20.40,0.00,0.00,0.69,1.87,0.25 +86.00,0.00,56.00,0.50,1.64,0.22 +8.20,0.00,0.00,0.34,1.60,0.31 +11.30,0.00,0.00,0.73,1.82,0.43 +74.00,0.00,44.00,0.36,1.63,0.30 +4.00,0.00,0.00,0.38,1.66,0.28 +43.00,0.00,13.00,0.66,1.73,0.39 +22.60,1.00,21.00,0.59,1.57,0.22 +53.00,0.00,23.00,0.46,1.69,0.26 +65.00,0.00,35.00,0.34,1.63,0.28 +9.60,0.00,0.00,0.57,1.72,0.31 +29.80,1.00,29.00,0.59,1.77,0.26 +66.70,1.00,53.00,0.69,1.76,0.25 +72.00,0.00,42.00,0.47,1.83,0.40 +4.00,0.00,0.00,0.69,1.50,0.17 +33.00,0.00,3.00,0.46,1.63,0.26 +13.70,0.00,0.00,0.71,1.55,0.15 +13.70,0.00,0.00,0.39,1.69,0.28 +63.00,0.00,33.00,0.54,1.65,0.23 +48.00,0.00,18.00,0.41,1.65,0.26 +66.70,1.00,53.00,0.83,1.69,0.22 +40.00,0.00,10.00,0.45,1.87,0.47 +30.00,0.00,0.00,0.85,1.57,0.18 +8.70,0.00,0.00,0.76,1.53,0.17 +30.00,0.00,0.00,0.57,1.54,0.17 +43.70,1.00,40.00,0.53,1.69,0.23 +26.90,0.00,0.00,0.82,1.56,0.21 +13.70,0.00,0.00,0.84,1.62,0.18 +63.00,0.00,33.00,0.56,1.54,0.20 +30.00,0.00,0.00,0.71,1.64,0.24 +23.60,0.00,0.00,0.78,1.66,0.25 +51.00,0.00,21.00,0.41,1.68,0.26 +45.00,0.00,15.00,0.44,1.73,0.27 +86.00,0.00,56.00,0.56,1.71,0.24 +42.00,0.00,12.00,0.50,1.74,0.27 +10.00,0.00,0.00,0.78,1.68,0.33 +48.30,1.00,28.00,0.32,1.59,0.31 +48.00,0.00,18.00,0.33,1.65,0.30 +33.00,0.00,3.00,0.42,1.69,0.26 +82.00,0.00,52.00,0.50,1.63,0.27 +86.00,0.00,56.00,0.46,1.72,0.26 +36.00,0.00,6.00,0.56,1.63,0.24 +57.00,0.00,27.00,0.42,1.67,0.26 +74.00,0.00,44.00,0.32,1.60,0.32 +72.00,0.00,42.00,0.38,1.67,0.28 +44.00,0.00,14.00,0.61,1.61,0.24 +22.40,0.00,0.00,0.52,1.59,0.18 +61.00,0.00,31.00,0.61,1.55,0.21 +63.00,0.00,33.00,0.62,1.59,0.22 +74.00,0.00,44.00,0.32,1.60,0.28 +64.00,0.00,34.00,0.37,1.65,0.30 +89.00,0.00,59.00,0.37,1.80,0.37 +61.00,0.00,31.00,0.43,1.73,0.26 +82.00,0.00,52.00,0.47,1.67,0.25 +30.00,0.00,0.00,0.36,1.58,0.26 +9.60,0.00,0.00,0.44,1.67,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +88.30,1.00,71.00,0.35,1.50,0.27 +30.00,0.00,0.00,1.04,1.76,0.21 +30.00,0.00,0.00,0.57,1.50,0.16 +52.00,0.00,22.00,0.42,1.68,0.25 +42.00,0.00,12.00,0.51,1.83,0.43 +74.00,0.00,44.00,0.35,1.60,0.28 +44.00,0.00,14.00,0.38,1.50,0.26 +60.10,1.00,56.00,0.59,1.71,0.23 +72.00,0.00,42.00,0.49,1.82,0.40 +74.00,0.00,44.00,0.37,1.65,0.28 +30.00,0.00,0.00,0.73,1.69,0.23 +78.40,1.00,71.00,0.55,1.71,0.24 +9.40,0.00,0.00,0.80,1.83,0.54 +73.00,0.00,43.00,0.44,1.73,0.26 +101.00,0.00,71.00,0.39,1.60,0.24 +68.60,1.00,62.00,0.43,1.73,0.27 +26.00,0.00,0.00,0.88,1.67,0.25 +45.00,0.00,15.00,0.51,1.66,0.24 +44.00,0.00,14.00,0.84,1.81,0.50 +9.10,0.00,0.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.32,1.59,0.32 +42.00,0.00,12.00,0.57,1.68,0.28 +78.00,0.00,48.00,0.50,1.83,0.29 +5.50,0.00,0.00,0.41,1.56,0.26 +28.30,1.00,0.00,0.77,1.79,0.39 +90.00,0.00,60.00,0.54,1.71,0.29 +30.00,0.00,0.00,0.70,1.54,0.15 +36.00,0.00,6.00,0.54,1.58,0.21 +79.00,0.00,49.00,0.71,1.60,0.27 +38.40,1.00,36.00,0.51,1.67,0.23 +25.90,0.00,0.00,0.68,1.54,0.18 +31.00,0.00,1.00,0.45,1.73,0.28 +39.00,0.00,9.00,0.34,1.53,0.27 +41.00,0.00,11.00,0.68,1.74,0.41 +101.00,0.00,71.00,0.39,1.59,0.26 +45.00,0.00,15.00,0.41,1.68,0.26 +62.60,1.00,42.00,0.37,1.65,0.29 +56.00,0.00,26.00,0.80,1.67,0.31 +90.00,0.00,60.00,0.65,1.72,0.40 +30.00,0.00,0.00,0.52,1.81,0.29 +30.00,0.00,0.00,0.76,1.59,0.16 +67.00,0.00,37.00,0.62,1.77,0.25 +74.00,0.00,44.00,0.35,1.60,0.27 +15.10,0.00,0.00,0.34,1.64,0.28 +18.00,0.00,0.00,0.34,1.62,0.31 +98.00,0.00,68.00,0.43,1.70,0.26 +33.00,1.00,21.00,0.34,1.62,0.31 +11.60,0.00,0.00,0.38,1.58,0.28 +14.90,0.00,0.00,0.36,1.59,0.26 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.73,1.70,0.23 +30.00,0.00,0.00,0.56,1.51,0.16 +42.00,0.00,12.00,0.50,1.64,0.22 +48.00,0.00,18.00,0.63,1.49,0.16 +61.00,0.00,31.00,0.57,1.53,0.19 +20.90,0.00,0.00,0.93,1.74,0.20 +47.00,0.00,17.00,0.51,1.58,0.21 +76.00,0.00,46.00,0.34,1.55,0.28 +52.90,1.00,33.00,0.61,1.68,0.23 +10.50,0.00,0.00,0.72,1.74,0.36 +13.90,0.00,0.00,0.39,1.63,0.25 +90.00,0.00,60.00,0.38,1.58,0.24 +17.40,1.00,17.00,0.51,1.64,0.23 +30.00,0.00,0.00,0.69,1.74,0.25 +6.40,0.00,0.00,0.76,1.67,0.29 +72.00,0.00,42.00,0.45,1.73,0.28 +47.90,1.00,41.00,0.80,1.57,0.16 +69.00,0.00,39.00,0.45,1.69,0.25 +74.00,0.00,44.00,0.56,1.71,0.24 +31.00,0.00,1.00,0.51,1.63,0.22 +72.00,0.00,42.00,0.53,1.77,0.37 +63.00,0.00,33.00,0.52,1.65,0.23 +8.80,0.00,0.00,0.63,1.63,0.24 +30.00,0.00,0.00,0.80,1.79,0.42 +2.20,0.00,0.00,0.83,1.63,0.19 +13.80,0.00,0.00,0.43,1.70,0.26 +19.00,1.00,0.00,0.69,1.55,0.18 +30.00,0.00,0.00,0.36,1.66,0.32 +72.00,0.00,42.00,0.54,1.78,0.37 +33.00,0.00,3.00,0.46,1.64,0.26 +53.00,0.00,23.00,0.38,1.55,0.24 +61.00,0.00,31.00,0.69,1.78,0.25 +90.00,0.00,60.00,0.59,1.70,0.27 +74.00,0.00,44.00,0.36,1.65,0.31 +9.60,0.00,0.00,0.73,1.54,0.20 +36.00,0.00,6.00,0.54,1.56,0.20 +51.00,0.00,21.00,0.63,1.54,0.16 +88.30,1.00,69.00,0.58,1.51,0.17 +47.90,1.00,40.00,0.39,1.62,0.25 +61.00,0.00,31.00,0.36,1.66,0.32 +82.30,1.00,71.00,0.42,1.66,0.25 +23.30,0.00,0.00,0.81,1.58,0.16 +53.00,0.00,23.00,0.30,1.55,0.30 +43.00,0.00,13.00,0.40,1.68,0.28 +19.30,0.00,0.00,0.50,1.65,0.24 +90.00,0.00,60.00,0.58,1.68,0.29 +43.20,1.00,39.00,0.40,1.62,0.26 +45.00,0.00,15.00,0.55,1.68,0.24 +79.60,1.00,78.00,0.59,1.69,0.35 +27.30,0.00,0.00,0.46,1.67,0.26 +40.20,1.00,30.00,0.48,1.66,0.24 +76.00,0.00,46.00,0.31,1.61,0.30 +9.50,0.00,0.00,0.51,1.67,0.29 +40.00,0.00,10.00,0.36,1.57,0.24 +51.00,0.00,21.00,0.87,1.58,0.18 +44.00,0.00,14.00,0.50,1.61,0.21 +80.00,0.00,50.00,0.60,1.63,0.23 +70.90,1.00,62.00,0.82,1.56,0.17 +64.90,1.00,62.00,0.82,1.56,0.17 +85.80,1.00,56.00,0.56,1.71,0.24 +20.80,0.00,0.00,0.34,1.62,0.31 +30.00,0.00,0.00,0.79,1.66,0.25 +43.10,1.00,25.00,0.90,1.69,0.19 +63.00,0.00,33.00,0.55,1.54,0.20 +9.10,0.00,0.00,0.38,1.67,0.29 +47.00,0.00,17.00,0.66,1.52,0.19 +70.00,0.00,40.00,0.39,1.59,0.24 +12.80,0.00,0.00,0.79,1.82,0.53 +63.00,0.00,33.00,0.62,1.59,0.22 +30.00,0.00,0.00,0.47,1.60,0.26 +42.70,1.00,20.00,0.70,1.51,0.15 +106.00,0.00,76.00,0.33,1.56,0.26 +22.70,1.00,16.00,0.45,1.65,0.26 +30.00,0.00,0.00,0.81,1.62,0.18 +12.70,0.00,0.00,0.52,1.59,0.20 +51.00,0.00,21.00,0.40,1.66,0.27 +51.00,0.00,21.00,0.72,1.76,0.25 +30.00,0.00,0.00,0.31,1.53,0.27 +30.00,0.00,0.00,0.93,1.84,0.53 +75.90,1.00,56.00,0.58,1.71,0.23 +30.00,0.00,0.00,0.65,1.53,0.16 +43.00,0.00,13.00,0.41,1.64,0.25 +30.00,0.00,0.00,0.54,1.83,0.29 +69.00,0.00,39.00,0.38,1.57,0.28 +16.80,0.00,0.00,0.99,1.61,0.17 +8.00,0.00,0.00,0.71,1.69,0.22 +0.40,0.00,0.00,0.69,1.80,0.24 +101.00,0.00,71.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.67,1.64,0.24 +30.00,0.00,0.00,0.64,1.53,0.20 +44.00,0.00,14.00,0.68,1.58,0.25 +21.30,1.00,0.00,0.98,1.76,0.23 +79.00,0.00,49.00,0.70,1.59,0.26 +46.00,0.00,16.00,0.46,1.70,0.26 +53.00,0.00,23.00,0.75,1.61,0.24 +42.00,0.00,12.00,0.58,1.69,0.27 +63.00,0.00,33.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.70,1.77,0.38 +28.70,0.00,0.00,0.50,1.63,0.26 +3.50,0.00,0.00,0.50,1.69,0.25 +3.70,0.00,0.00,0.89,1.72,0.24 +30.00,0.00,0.00,0.57,1.73,0.32 +69.00,0.00,39.00,0.61,1.55,0.21 +44.00,0.00,14.00,0.55,1.81,0.28 +41.70,1.00,14.00,0.42,1.52,0.26 +44.00,0.00,14.00,0.40,1.63,0.25 +30.00,0.00,0.00,0.55,1.52,0.16 +72.00,0.00,42.00,0.53,1.76,0.37 +52.70,1.00,31.00,0.88,1.71,0.19 +53.00,0.00,23.00,0.58,1.65,0.26 +30.00,0.00,0.00,0.32,1.59,0.32 +71.00,0.00,41.00,0.36,1.60,0.25 +57.40,1.00,49.00,0.58,1.58,0.22 +9.10,0.00,0.00,0.31,1.57,0.31 +70.00,0.00,40.00,0.39,1.58,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +44.00,0.00,14.00,0.66,1.97,0.26 +2.00,0.00,0.00,1.01,1.78,0.25 +61.00,0.00,31.00,0.71,1.51,0.18 +43.00,0.00,13.00,0.46,1.66,0.25 +22.10,0.00,0.00,0.69,1.80,0.39 +61.00,0.00,31.00,0.57,1.53,0.18 +16.60,1.00,0.00,1.20,1.91,0.58 +30.00,0.00,0.00,0.68,1.61,0.27 +36.70,1.00,20.00,0.95,1.84,0.52 +54.90,1.00,39.00,0.59,1.57,0.20 +59.00,1.00,37.00,0.60,1.72,0.24 +16.20,0.00,0.00,0.58,1.53,0.19 +53.00,0.00,23.00,0.35,1.60,0.28 +50.00,0.00,20.00,0.56,1.69,0.23 +53.00,0.00,23.00,0.44,1.77,0.37 +51.00,0.00,21.00,0.62,1.55,0.21 +73.80,1.00,48.00,0.49,1.67,0.24 +101.00,0.00,71.00,0.35,1.51,0.26 +19.80,0.00,0.00,0.61,1.51,0.18 +44.00,0.00,14.00,0.34,1.61,0.32 +65.50,1.00,55.00,0.39,1.56,0.28 +49.00,0.00,19.00,0.43,1.73,0.26 +66.00,0.00,36.00,0.46,1.69,0.26 +87.00,0.00,57.00,0.46,1.73,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +31.00,0.00,1.00,0.47,1.64,0.24 +62.00,0.00,32.00,0.47,1.56,0.25 +74.00,0.00,44.00,0.38,1.66,0.29 +30.00,0.00,0.00,0.63,1.50,0.17 +30.00,0.00,0.00,0.51,1.57,0.19 +52.00,0.00,22.00,0.41,1.61,0.25 +82.80,1.00,68.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.52,1.61,0.21 +70.00,0.00,40.00,0.47,1.67,0.24 +53.00,0.00,23.00,0.41,1.59,0.24 +47.00,0.00,17.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.42,1.60,0.24 +65.00,0.00,35.00,0.34,1.60,0.29 +68.00,1.00,41.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.74,1.64,0.24 +65.20,1.00,44.00,0.63,1.53,0.17 +30.00,0.00,0.00,0.36,1.64,0.31 +51.00,0.00,21.00,0.35,1.65,0.31 +53.00,0.00,23.00,0.39,1.56,0.24 +48.00,0.00,18.00,0.51,1.59,0.21 +47.00,0.00,17.00,0.68,1.51,0.15 +44.00,0.00,14.00,0.58,1.78,0.27 +49.00,0.00,19.00,0.80,1.55,0.17 +37.30,1.00,29.00,0.37,1.58,0.24 +14.40,1.00,11.00,0.48,1.61,0.26 +45.00,0.00,15.00,0.55,1.68,0.23 +44.00,0.00,14.00,0.44,1.71,0.26 +9.40,0.00,0.00,0.89,1.72,0.20 +85.00,0.00,55.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.31,1.57,0.31 +82.50,1.00,58.00,0.63,1.68,0.23 +23.90,0.00,0.00,0.32,1.60,0.31 +30.00,0.00,0.00,0.63,1.54,0.20 +31.10,1.00,21.00,0.97,1.61,0.19 +30.00,0.00,0.00,0.79,1.78,0.43 +72.60,1.00,62.00,0.82,1.56,0.17 +90.00,0.00,60.00,0.58,1.68,0.34 +47.00,0.00,17.00,0.58,1.53,0.19 +61.00,0.00,31.00,0.45,1.63,0.24 +69.00,0.00,39.00,0.38,1.58,0.28 +14.00,0.00,0.00,0.39,1.57,0.24 +61.50,1.00,48.00,0.49,1.67,0.24 +26.30,1.00,13.00,0.53,1.70,0.23 +74.00,0.00,44.00,0.56,1.62,0.23 +0.90,0.00,0.00,0.51,1.57,0.20 +17.30,0.00,0.00,0.47,1.68,0.29 +29.00,0.00,0.00,0.46,1.63,0.26 +75.00,0.00,45.00,0.34,1.57,0.26 +30.00,0.00,0.00,0.55,1.52,0.16 +61.00,0.00,31.00,0.43,1.72,0.26 +106.00,0.00,76.00,0.32,1.56,0.27 +99.00,0.00,69.00,0.59,1.50,0.17 +55.90,1.00,53.00,0.74,1.60,0.27 +42.00,0.00,12.00,0.34,1.62,0.27 +25.40,0.00,0.00,0.57,1.68,0.29 +54.00,0.00,24.00,0.42,1.71,0.26 +27.20,1.00,11.00,0.67,1.73,0.41 +63.00,0.00,33.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.57,1.74,0.33 +69.00,0.00,39.00,0.44,1.70,0.25 +60.00,0.00,30.00,0.50,1.69,0.24 +74.00,0.00,44.00,0.38,1.68,0.29 +80.00,0.00,50.00,0.59,1.58,0.22 +84.00,0.00,54.00,0.49,1.70,0.30 +91.00,0.00,61.00,0.35,1.72,0.33 +92.00,0.00,62.00,0.53,1.84,0.29 +70.00,0.00,40.00,0.38,1.59,0.24 +31.00,0.00,1.00,0.78,1.62,0.18 +28.50,1.00,0.00,0.75,1.80,0.41 +84.00,0.00,54.00,0.47,1.68,0.30 +30.00,0.00,0.00,0.32,1.54,0.27 +101.00,0.00,71.00,0.54,1.72,0.25 +47.70,1.00,29.00,0.52,1.64,0.22 +30.00,0.00,0.00,0.61,1.65,0.23 +2.20,0.00,0.00,0.44,1.71,0.25 +10.10,0.00,0.00,0.52,1.55,0.18 +43.60,1.00,23.00,0.36,1.62,0.28 +5.30,0.00,0.00,0.52,1.57,0.20 +83.00,0.00,53.00,0.51,1.57,0.20 +30.00,0.00,0.00,0.58,1.63,0.25 +30.00,0.00,0.00,0.64,1.53,0.20 +45.00,0.00,15.00,0.63,1.49,0.15 +90.60,1.00,62.00,0.68,1.72,0.24 +44.00,0.00,14.00,0.54,1.66,0.23 +69.00,0.00,39.00,0.59,1.57,0.20 +85.00,0.00,55.00,0.47,1.55,0.27 +91.00,0.00,61.00,0.34,1.61,0.29 +30.00,0.00,0.00,0.85,1.70,0.25 +50.00,0.00,20.00,0.42,1.60,0.24 +83.00,0.00,53.00,0.44,1.69,0.28 +85.00,0.00,55.00,0.39,1.58,0.27 +49.00,0.00,19.00,0.48,1.89,0.42 +96.00,0.00,66.00,0.59,1.67,0.23 +23.90,1.00,0.00,0.83,1.69,0.25 +30.00,0.00,0.00,0.90,1.72,0.26 +23.10,1.00,9.00,0.37,1.54,0.28 +13.40,1.00,0.00,1.25,1.75,0.25 +20.80,0.00,0.00,0.77,1.79,0.41 +96.00,0.00,66.00,0.56,1.66,0.22 +66.00,0.00,36.00,0.56,1.70,0.24 +44.00,0.00,14.00,0.61,1.63,0.26 +30.00,0.00,0.00,0.45,1.70,0.26 +30.00,0.00,0.00,0.83,1.78,0.39 +93.00,0.00,63.00,0.60,1.71,0.23 +44.00,0.00,14.00,0.32,1.58,0.31 +30.00,0.00,0.00,0.60,1.73,0.24 +25.90,0.00,0.00,0.36,1.63,0.31 +57.70,1.00,37.00,1.12,1.64,0.20 +49.00,0.00,19.00,0.80,1.71,0.25 +34.00,0.00,4.00,0.60,1.52,0.16 +15.50,0.00,0.00,0.59,1.58,0.26 +107.00,0.00,77.00,0.40,1.62,0.24 +72.00,0.00,42.00,0.34,1.57,0.25 +36.00,0.00,6.00,0.38,1.55,0.24 +23.70,0.00,0.00,0.82,1.56,0.17 +98.00,0.00,68.00,0.40,1.56,0.25 +37.00,0.00,7.00,0.74,1.67,0.31 +60.00,0.00,30.00,0.59,1.58,0.22 +81.00,0.00,51.00,0.45,1.62,0.26 +77.50,1.00,61.00,0.38,1.67,0.28 +98.00,0.00,68.00,0.33,1.61,0.31 +75.00,0.00,45.00,0.33,1.58,0.26 +86.00,0.00,56.00,0.45,1.72,0.26 +63.00,0.00,33.00,0.32,1.67,0.28 +54.00,0.00,24.00,0.40,1.85,0.41 +7.90,0.00,0.00,1.00,1.77,0.21 +1.30,0.00,0.00,0.74,1.72,0.23 +25.80,0.00,0.00,0.66,1.57,0.23 +101.00,0.00,71.00,0.64,1.57,0.20 +17.80,1.00,11.00,0.57,1.67,0.29 +59.00,0.00,29.00,0.61,1.58,0.23 +15.70,1.00,0.00,0.78,1.79,0.41 +98.00,0.00,68.00,0.39,1.55,0.24 +63.00,0.00,33.00,0.59,1.54,0.20 +11.00,0.00,0.00,0.65,1.72,0.24 +54.00,0.00,24.00,0.51,1.58,0.20 +55.50,1.00,36.00,0.53,1.71,0.24 +31.00,0.00,1.00,0.89,1.72,0.21 +27.80,1.00,4.00,0.62,1.59,0.27 +90.00,0.00,60.00,0.37,1.56,0.23 +30.00,0.00,0.00,0.68,1.53,0.17 +45.00,0.00,15.00,0.45,1.67,0.25 +11.40,0.00,0.00,0.90,1.69,0.19 +44.00,0.00,14.00,0.43,1.64,0.26 +56.00,0.00,26.00,0.52,1.65,0.23 +50.00,0.00,20.00,0.56,1.69,0.23 +32.60,1.00,19.00,0.71,1.52,0.18 +30.00,0.00,0.00,0.65,1.66,0.23 +30.00,0.00,0.00,0.62,1.51,0.18 +61.00,0.00,31.00,0.33,1.61,0.27 +69.00,0.00,39.00,0.37,1.57,0.28 +30.00,0.00,0.00,0.66,1.57,0.22 +78.00,0.00,48.00,0.46,1.73,0.27 +84.50,1.00,60.00,0.38,1.57,0.23 +27.30,0.00,0.00,0.42,1.57,0.25 +42.70,1.00,25.00,0.97,1.76,0.23 +101.00,0.00,71.00,0.56,1.67,0.28 +47.00,0.00,17.00,0.49,1.71,0.30 +98.00,0.00,68.00,0.42,1.69,0.26 +7.70,0.00,0.00,0.45,1.55,0.25 +30.00,0.00,0.00,0.73,1.55,0.20 +47.00,0.00,17.00,0.90,1.60,0.17 +25.50,0.00,0.00,0.45,1.69,0.26 +10.10,0.00,0.00,0.82,1.68,0.23 +82.70,1.00,55.00,0.38,1.54,0.28 +63.60,1.00,36.00,0.59,1.73,0.25 +33.30,1.00,13.00,0.67,1.74,0.40 +22.10,0.00,0.00,0.35,1.62,0.30 +44.50,1.00,35.00,0.95,1.75,0.21 +87.00,0.00,57.00,0.45,1.68,0.27 +13.90,0.00,0.00,0.56,1.74,0.33 +46.00,0.00,16.00,0.37,1.56,0.28 +108.00,0.00,78.00,0.38,1.59,0.24 +14.00,0.00,0.00,0.35,1.59,0.26 +6.60,0.00,0.00,0.73,1.77,0.24 +57.00,1.00,42.00,0.53,1.77,0.27 +9.80,0.00,0.00,0.71,1.53,0.15 +52.00,0.00,22.00,0.42,1.63,0.25 +28.50,0.00,0.00,0.39,1.69,0.28 +67.00,0.00,37.00,0.57,1.73,0.31 +85.00,0.00,55.00,0.40,1.58,0.27 +40.00,0.00,10.00,0.95,1.75,0.21 +92.10,1.00,71.00,0.64,1.58,0.20 +51.00,0.00,21.00,0.64,1.53,0.15 +60.00,0.00,30.00,0.36,1.66,0.30 +30.00,0.00,0.00,0.59,1.62,0.25 +54.00,0.00,24.00,0.53,1.57,0.18 +30.80,1.00,14.00,0.42,1.70,0.26 +56.00,0.00,26.00,0.56,1.76,0.34 +96.00,0.00,66.00,0.54,1.64,0.22 +50.00,0.00,20.00,0.59,1.53,0.19 +43.00,0.00,13.00,0.40,1.68,0.28 +14.90,0.00,0.00,1.13,1.79,0.27 +45.00,0.00,15.00,0.42,1.72,0.27 +88.00,0.00,58.00,0.55,1.80,0.27 +72.00,0.00,42.00,0.36,1.61,0.26 +96.20,1.00,71.00,0.50,1.62,0.26 +25.30,0.00,0.00,0.48,1.65,0.27 +85.50,1.00,68.00,0.40,1.56,0.25 +40.00,0.00,10.00,0.96,1.76,0.21 +41.00,0.00,11.00,0.50,1.61,0.27 +12.40,0.00,0.00,0.62,1.69,0.30 +61.00,0.00,31.00,0.54,1.68,0.30 +18.60,0.00,0.00,0.68,1.74,0.41 +45.00,0.00,15.00,0.52,1.67,0.24 +26.30,1.00,0.00,1.01,1.77,0.24 +30.00,0.00,0.00,1.05,1.75,0.21 +40.00,0.00,10.00,0.84,1.57,0.16 +12.30,0.00,0.00,0.31,1.57,0.31 +30.00,0.00,0.00,0.46,1.70,0.27 +6.60,0.00,0.00,0.61,1.60,0.28 +72.00,0.00,42.00,0.56,1.79,0.37 +74.00,0.00,44.00,0.38,1.67,0.29 +34.00,0.00,4.00,0.32,1.82,0.29 +21.70,0.00,0.00,0.31,1.58,0.29 +48.00,0.00,18.00,0.51,1.59,0.21 +49.00,0.00,19.00,0.79,1.65,0.23 +0.20,0.00,0.00,0.59,1.58,0.22 +23.00,1.00,0.00,0.64,1.51,0.18 +43.00,0.00,13.00,0.43,1.70,0.26 +71.00,0.00,41.00,0.35,1.60,0.27 +46.60,1.00,19.00,0.82,1.55,0.18 +7.40,0.00,0.00,0.34,1.56,0.25 +63.00,0.00,33.00,0.58,1.57,0.22 +37.80,1.00,28.00,0.40,1.58,0.27 +28.00,0.00,0.00,0.41,1.68,0.26 +63.00,0.00,33.00,0.54,1.71,0.24 +74.00,0.00,44.00,0.32,1.63,0.29 +91.00,0.00,61.00,0.35,1.58,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +41.00,0.00,11.00,0.73,1.57,0.17 +21.60,0.00,0.00,0.38,1.56,0.23 +61.00,0.00,31.00,0.54,1.68,0.30 +58.00,0.00,28.00,0.32,1.71,0.29 +48.30,1.00,48.00,0.50,1.70,0.25 +53.00,0.00,23.00,0.50,1.71,0.32 +50.00,0.00,20.00,0.57,1.68,0.23 +69.00,0.00,39.00,0.57,1.68,0.23 +13.80,0.00,0.00,1.00,1.77,0.21 +59.10,1.00,41.00,0.61,1.76,0.24 +83.00,0.00,53.00,0.53,1.64,0.22 +78.00,0.00,48.00,0.49,1.68,0.24 +78.10,1.00,56.00,0.58,1.71,0.23 +65.70,1.00,41.00,0.71,1.68,0.23 +42.40,1.00,20.00,0.57,1.53,0.19 +65.00,0.00,35.00,0.36,1.64,0.30 +51.00,0.00,21.00,0.46,1.70,0.26 +27.10,1.00,20.00,0.77,1.53,0.18 +30.00,0.00,0.00,0.67,1.64,0.24 +29.50,1.00,0.00,0.79,1.70,0.23 +58.00,0.00,28.00,0.47,1.68,0.25 +21.70,0.00,0.00,0.40,1.60,0.24 +46.00,0.00,16.00,0.58,1.80,0.26 +85.00,0.00,55.00,0.36,1.56,0.27 +66.00,0.00,36.00,0.48,1.66,0.24 +30.00,0.00,0.00,0.45,1.73,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.55,1.70,0.23 +30.00,0.00,0.00,0.73,1.55,0.15 +30.00,0.00,0.00,0.33,1.48,0.27 +30.00,0.00,0.00,0.80,1.58,0.17 +87.00,0.00,57.00,0.36,1.58,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +47.20,1.00,40.00,0.40,1.59,0.24 +5.50,0.00,0.00,0.44,1.69,0.25 +12.80,0.00,0.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.41,1.59,0.24 +10.50,0.00,0.00,1.20,1.67,0.20 +68.20,1.00,42.00,0.83,1.80,0.40 +72.00,0.00,42.00,0.45,1.82,0.39 +29.80,0.00,0.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.54,1.83,0.28 +6.50,0.00,0.00,0.45,1.67,0.25 +9.70,0.00,0.00,0.33,1.56,0.26 +86.00,0.00,56.00,0.54,1.84,0.29 +6.20,0.00,0.00,0.61,1.74,0.24 +39.90,1.00,20.00,0.70,1.52,0.15 +59.00,0.00,29.00,0.36,1.60,0.25 +2.40,0.00,0.00,0.58,1.53,0.19 +17.90,0.00,0.00,1.19,1.79,0.29 +59.00,0.00,29.00,0.48,1.62,0.23 +41.00,0.00,11.00,0.74,1.87,0.25 +71.00,0.00,41.00,0.61,1.72,0.24 +65.00,0.00,35.00,0.34,1.63,0.28 +64.00,0.00,34.00,0.32,1.60,0.31 +83.00,0.00,53.00,0.51,1.57,0.21 +10.90,0.00,0.00,0.66,1.60,0.24 +57.00,0.00,27.00,0.45,1.71,0.26 +23.00,0.00,0.00,0.73,1.66,0.31 +30.00,0.00,0.00,0.60,1.75,0.33 +91.00,0.00,61.00,0.39,1.68,0.28 +1.20,0.00,0.00,0.68,1.50,0.17 +0.40,0.00,0.00,0.89,1.72,0.20 +41.00,0.00,11.00,0.71,1.83,0.24 +23.80,0.00,0.00,0.60,1.68,0.23 +49.00,0.00,19.00,0.75,1.73,0.25 +70.70,1.00,42.00,0.35,1.57,0.26 +15.50,0.00,0.00,0.60,1.49,0.15 +30.00,0.00,0.00,0.84,1.58,0.16 +17.70,1.00,0.00,0.80,1.55,0.17 +61.00,0.00,31.00,0.50,1.66,0.28 +31.00,0.00,1.00,0.62,1.60,0.26 +4.10,0.00,0.00,0.55,1.68,0.23 +6.50,0.00,0.00,0.58,1.53,0.19 +44.00,0.00,14.00,0.56,1.68,0.25 +3.90,0.00,0.00,0.40,1.57,0.23 +30.20,1.00,14.00,0.47,1.71,0.25 +41.30,1.00,33.00,0.34,1.65,0.28 +39.50,1.00,35.00,0.34,1.61,0.31 +48.00,0.00,18.00,0.41,1.65,0.26 +19.70,1.00,17.00,0.66,1.56,0.21 +72.00,0.00,42.00,0.56,1.72,0.24 +51.00,0.00,21.00,0.69,1.53,0.16 +91.00,0.00,61.00,0.38,1.67,0.28 +66.00,0.00,36.00,0.47,1.65,0.24 +61.00,0.00,31.00,0.44,1.63,0.24 +61.00,0.00,31.00,0.59,1.69,0.32 +42.20,1.00,21.00,0.83,1.60,0.16 +92.00,0.00,62.00,0.41,1.70,0.27 +22.40,0.00,0.00,0.85,1.68,0.19 +30.00,0.00,0.00,0.55,1.52,0.16 +106.00,0.00,76.00,0.34,1.55,0.26 +91.00,0.00,61.00,0.39,1.68,0.28 +31.90,1.00,17.00,0.57,1.74,0.24 +51.00,0.00,21.00,0.60,1.59,0.23 +69.00,0.00,39.00,0.43,1.71,0.26 +33.20,1.00,17.00,0.96,1.64,0.18 +25.60,1.00,25.00,1.48,1.73,0.27 +30.00,0.00,0.00,0.66,1.52,0.18 +81.00,0.00,51.00,0.35,1.60,0.27 +66.00,0.00,36.00,0.57,1.70,0.24 +66.80,1.00,62.00,0.67,1.52,0.19 +19.00,1.00,12.00,0.47,1.61,0.25 +30.00,0.00,0.00,0.38,1.67,0.28 +73.00,0.00,43.00,0.38,1.67,0.28 +44.00,0.00,14.00,0.46,1.67,0.26 +18.30,0.00,0.00,0.68,1.53,0.19 +101.00,0.00,71.00,0.64,1.57,0.20 +63.00,0.00,33.00,0.50,1.65,0.24 +81.00,0.00,51.00,0.34,1.59,0.27 +11.30,0.00,0.00,0.32,1.64,0.29 +6.40,0.00,0.00,0.59,1.50,0.15 +41.00,0.00,11.00,0.46,1.71,0.27 +4.40,0.00,0.00,0.81,1.67,0.32 +59.00,0.00,29.00,0.48,1.63,0.23 +67.00,0.00,37.00,0.62,1.56,0.21 +48.00,0.00,18.00,0.66,1.50,0.16 +30.00,0.00,0.00,0.32,1.68,0.28 +51.00,0.00,21.00,0.35,1.66,0.31 +52.00,0.00,22.00,0.65,1.54,0.21 +52.00,0.00,22.00,0.42,1.67,0.25 +59.00,0.00,29.00,0.41,1.68,0.27 +63.00,0.00,33.00,0.38,1.58,0.28 +18.30,0.00,0.00,0.81,1.77,0.38 +50.00,0.00,20.00,0.78,1.68,0.31 +16.80,0.00,0.00,0.66,1.52,0.18 +87.00,0.00,57.00,0.39,1.57,0.24 +59.00,0.00,29.00,0.39,1.67,0.30 +87.00,0.00,57.00,0.50,1.75,0.28 +11.90,0.00,0.00,0.86,1.68,0.36 +35.80,1.00,12.00,0.94,1.63,0.18 +55.00,0.00,25.00,0.51,1.72,0.32 +75.00,1.00,61.00,0.37,1.65,0.28 +61.00,0.00,31.00,0.32,1.59,0.31 +11.00,0.00,0.00,0.69,1.55,0.18 +47.00,0.00,17.00,0.41,1.56,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +52.00,0.00,22.00,0.62,1.55,0.21 +71.80,1.00,62.00,0.61,1.69,0.23 +50.00,0.00,20.00,0.56,1.71,0.24 +19.30,1.00,3.00,0.85,1.58,0.17 +59.00,0.00,29.00,0.49,1.62,0.22 +45.00,0.00,15.00,0.44,1.72,0.27 +5.10,0.00,0.00,0.36,1.64,0.29 +2.00,0.00,0.00,0.66,1.80,0.38 +54.30,1.00,33.00,0.75,1.54,0.20 +19.90,0.00,0.00,0.38,1.58,0.28 +35.00,0.00,5.00,0.63,1.51,0.17 +74.00,0.00,44.00,0.35,1.59,0.27 +18.70,0.00,0.00,0.65,1.52,0.19 +74.50,1.00,53.00,0.62,1.69,0.24 +46.00,0.00,16.00,0.50,1.80,0.28 +72.00,0.00,42.00,0.39,1.69,0.28 +45.00,0.00,15.00,0.64,1.50,0.15 +74.00,0.00,44.00,0.56,1.67,0.32 +78.00,0.00,48.00,0.50,1.81,0.28 +90.00,0.00,60.00,0.40,1.66,0.26 +37.20,1.00,22.00,0.77,1.66,0.28 +106.00,0.00,76.00,0.52,1.70,0.30 +25.40,0.00,0.00,0.53,1.77,0.37 +106.00,0.00,76.00,0.47,1.64,0.26 +52.00,0.00,22.00,0.38,1.68,0.28 +71.00,0.00,41.00,0.37,1.59,0.26 +31.00,0.00,1.00,0.65,1.61,0.27 +61.00,0.00,31.00,0.61,1.70,0.32 +17.60,1.00,0.00,0.93,1.83,0.53 +67.00,0.00,37.00,0.53,1.71,0.30 +55.00,0.00,25.00,0.43,1.55,0.27 +68.00,1.00,39.00,0.48,1.69,0.29 +18.40,0.00,0.00,0.56,1.67,0.32 +37.00,0.00,7.00,0.51,1.56,0.19 +47.00,0.00,17.00,0.38,1.68,0.29 +53.20,1.00,26.00,0.78,1.58,0.15 +72.00,0.00,42.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.82,1.68,0.22 +106.00,0.00,76.00,0.33,1.56,0.26 +45.00,0.00,15.00,0.62,1.52,0.17 +79.00,0.00,49.00,0.47,1.66,0.25 +13.80,0.00,0.00,0.48,1.65,0.27 +74.00,0.00,44.00,0.34,1.60,0.31 +30.00,0.00,0.00,0.67,1.57,0.22 +3.20,0.00,0.00,0.79,1.59,0.15 +38.50,1.00,25.00,0.41,1.52,0.27 +30.00,0.00,0.00,0.75,1.79,0.44 +10.60,0.00,0.00,0.36,1.64,0.30 +106.00,0.00,76.00,0.48,1.66,0.27 +30.00,0.00,0.00,0.57,1.64,0.25 +86.00,0.00,56.00,0.58,1.71,0.23 +16.40,0.00,0.00,0.75,1.79,0.45 +51.00,0.00,21.00,0.34,1.61,0.31 +30.00,0.00,0.00,0.78,1.57,0.21 +30.00,0.00,0.00,0.89,1.67,0.26 +67.10,1.00,45.00,0.75,1.58,0.18 +74.00,0.00,44.00,0.36,1.64,0.31 +3.20,0.00,0.00,0.62,1.59,0.27 +30.00,0.00,0.00,0.83,1.64,0.18 +67.00,0.00,37.00,0.54,1.71,0.30 +30.00,0.00,0.00,0.64,1.53,0.16 +30.00,0.00,0.00,0.37,1.54,0.28 +90.00,0.00,60.00,0.38,1.58,0.24 +23.60,1.00,19.00,0.76,1.74,0.25 +44.00,0.00,14.00,0.42,1.52,0.26 +12.60,0.00,0.00,0.55,1.70,0.23 +4.80,0.00,0.00,0.36,1.63,0.30 +14.30,0.00,0.00,0.41,1.56,0.27 +52.00,0.00,22.00,0.42,1.64,0.26 +53.00,0.00,23.00,0.41,1.85,0.40 +23.20,1.00,19.00,0.81,1.55,0.18 +2.70,0.00,0.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.58,1.78,0.26 +55.40,1.00,28.00,0.65,1.75,0.34 +48.00,0.00,18.00,0.42,1.67,0.26 +33.90,1.00,23.00,0.59,1.69,0.27 +0.80,0.00,0.00,0.36,1.66,0.31 +71.00,0.00,41.00,0.36,1.59,0.26 +40.80,1.00,36.00,0.40,1.69,0.27 +44.00,0.00,14.00,0.52,1.81,0.29 +2.60,0.00,0.00,1.02,1.77,0.21 +87.00,0.00,57.00,0.38,1.57,0.24 +101.00,0.00,71.00,0.49,1.63,0.25 +47.00,0.00,17.00,0.51,1.65,0.23 +44.00,0.00,14.00,0.54,1.66,0.23 +67.40,1.00,53.00,0.40,1.67,0.26 +30.00,0.00,0.00,0.62,1.51,0.18 +54.00,0.00,24.00,0.53,1.56,0.18 +47.00,0.00,17.00,0.53,1.65,0.24 +69.00,0.00,39.00,0.35,1.55,0.28 +30.00,0.00,0.00,0.67,1.52,0.18 +41.30,1.00,13.00,0.46,1.66,0.25 +41.00,0.00,11.00,0.78,1.54,0.17 +72.00,0.00,42.00,0.36,1.61,0.25 +50.00,0.00,20.00,0.48,1.64,0.23 +66.00,0.00,36.00,0.32,1.59,0.28 +22.60,0.00,0.00,0.55,1.71,0.24 +53.00,0.00,23.00,0.48,1.55,0.27 +61.00,0.00,31.00,0.71,1.51,0.18 +76.00,1.00,60.00,0.61,1.75,0.33 +30.00,0.00,0.00,1.09,1.76,0.23 +30.00,0.00,0.00,0.59,1.53,0.17 +50.00,0.00,20.00,0.84,1.80,0.47 +8.00,1.00,0.00,0.78,1.57,0.16 +42.00,0.00,12.00,0.52,1.61,0.25 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.51,1.67,0.28 +82.00,0.00,52.00,0.46,1.62,0.25 +50.00,0.00,20.00,0.43,1.61,0.25 +101.00,0.00,71.00,0.37,1.56,0.24 +55.90,1.00,51.00,0.32,1.61,0.29 +8.40,1.00,0.00,0.81,1.79,0.41 +61.00,0.00,31.00,0.58,1.69,0.31 +101.00,0.00,71.00,0.35,1.50,0.27 +46.00,0.00,16.00,0.47,1.70,0.26 +72.00,0.00,42.00,0.37,1.63,0.26 +14.90,1.00,0.00,0.41,1.62,0.24 +40.90,1.00,37.00,0.61,1.76,0.25 +6.90,0.00,0.00,1.03,1.77,0.30 +50.00,0.00,20.00,0.63,1.52,0.19 +107.00,0.00,77.00,0.38,1.61,0.25 +47.00,0.00,17.00,0.41,1.58,0.24 +48.00,0.00,18.00,0.35,1.65,0.32 +55.00,0.00,25.00,0.40,1.84,0.40 +13.90,0.00,0.00,0.82,1.64,0.18 +31.00,0.00,1.00,0.57,1.59,0.25 +6.60,0.00,0.00,0.40,1.62,0.24 +56.00,0.00,26.00,0.78,1.58,0.15 +58.00,0.00,28.00,0.31,1.61,0.28 +64.00,0.00,34.00,0.39,1.68,0.28 +106.00,0.00,76.00,0.47,1.64,0.26 +13.40,0.00,0.00,0.34,1.63,0.28 +60.30,1.00,39.00,0.60,1.55,0.20 +45.00,0.00,15.00,0.41,1.71,0.27 +17.80,0.00,0.00,0.40,1.59,0.24 +30.00,0.00,0.00,0.69,1.50,0.17 +56.00,0.00,26.00,0.52,1.71,0.31 +52.00,1.00,39.00,0.60,1.57,0.20 +6.40,0.00,0.00,0.58,1.68,0.23 +97.00,0.00,67.00,0.59,1.70,0.28 +43.00,0.00,13.00,0.67,1.74,0.40 +41.00,0.00,11.00,0.43,1.66,0.24 +90.00,0.00,60.00,0.39,1.57,0.23 +30.00,0.00,0.00,0.66,1.52,0.19 +22.50,0.00,0.00,0.50,1.61,0.28 +69.00,0.00,39.00,0.33,1.59,0.27 +90.00,0.00,60.00,0.40,1.66,0.27 +23.40,0.00,0.00,0.67,1.61,0.24 +30.00,0.00,0.00,0.85,1.71,0.23 +58.00,0.00,28.00,0.65,1.74,0.34 +61.00,0.00,31.00,0.35,1.60,0.25 +30.00,0.00,0.00,0.59,1.63,0.24 +20.30,0.00,0.00,0.53,1.68,0.23 +48.00,0.00,18.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.69,1.57,0.22 +72.00,0.00,42.00,0.39,1.69,0.28 +40.00,0.00,10.00,0.90,1.73,0.20 +43.00,0.00,13.00,0.42,1.68,0.26 +5.70,0.00,0.00,0.42,1.66,0.25 +50.00,0.00,20.00,0.43,1.66,0.24 +30.00,0.00,0.00,0.85,1.68,0.19 +58.00,0.00,28.00,0.32,1.61,0.29 +33.00,0.00,3.00,0.69,1.67,0.32 +30.00,1.00,0.00,0.45,1.71,0.27 +65.00,0.00,35.00,0.31,1.57,0.31 +47.00,0.00,17.00,0.51,1.65,0.23 +41.00,0.00,11.00,0.37,1.67,0.30 +33.70,1.00,15.00,0.41,1.71,0.27 +69.00,0.00,39.00,0.44,1.65,0.28 +45.00,0.00,15.00,0.44,1.66,0.25 +30.00,0.00,0.00,0.64,1.53,0.20 +35.70,1.00,20.00,0.82,1.64,0.18 +43.00,0.00,13.00,0.33,1.64,0.29 +29.90,1.00,17.00,0.55,1.73,0.24 +41.00,0.00,11.00,0.74,1.57,0.17 +91.00,0.00,61.00,0.39,1.68,0.28 +53.00,0.00,23.00,0.59,1.70,0.27 +45.00,0.00,15.00,0.55,1.68,0.23 +38.80,1.00,13.00,0.80,1.58,0.17 +30.00,0.00,0.00,0.90,1.73,0.21 +45.60,1.00,19.00,0.69,1.51,0.16 +97.00,0.00,67.00,0.59,1.70,0.27 +17.50,0.00,0.00,1.07,1.87,0.55 +30.00,0.00,0.00,0.77,1.55,0.16 +20.00,1.00,17.00,0.42,1.60,0.24 +53.00,0.00,23.00,0.42,1.84,0.40 +2.10,0.00,0.00,0.50,1.79,0.40 +65.00,0.00,35.00,0.32,1.60,0.30 +1.60,0.00,0.00,0.34,1.56,0.26 +30.00,0.00,0.00,0.54,1.58,0.19 +54.30,1.00,42.00,0.35,1.64,0.30 +16.20,0.00,0.00,0.46,1.63,0.26 +23.60,1.00,0.00,0.78,1.80,0.49 +59.90,1.00,41.00,0.58,1.50,0.16 +28.60,0.00,0.00,0.66,1.73,0.40 +51.00,0.00,21.00,0.66,1.53,0.15 +44.00,0.00,14.00,0.59,1.78,0.25 +58.70,1.00,42.00,0.65,1.79,0.37 +5.80,0.00,0.00,0.44,1.65,0.26 +51.00,0.00,21.00,0.52,1.65,0.28 +72.00,0.00,42.00,0.35,1.58,0.25 +92.00,0.00,62.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.32,1.59,0.31 +71.00,0.00,41.00,0.35,1.59,0.27 +40.00,0.00,10.00,0.44,1.67,0.25 +9.60,1.00,0.00,1.25,1.75,0.25 +41.00,0.00,11.00,0.49,1.61,0.27 +23.10,0.00,0.00,0.66,1.52,0.18 +30.00,0.00,0.00,0.69,1.61,0.28 +48.00,0.00,18.00,0.55,1.52,0.18 +49.00,0.00,19.00,0.33,1.70,0.28 +49.00,0.00,19.00,0.80,1.72,0.25 +41.00,0.00,11.00,0.82,1.60,0.18 +30.00,0.00,0.00,0.36,1.63,0.30 +58.00,0.00,28.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.66,1.53,0.16 +35.10,1.00,29.00,0.61,1.76,0.26 +84.00,0.00,54.00,0.49,1.65,0.28 +30.00,0.00,0.00,0.61,1.55,0.21 +55.00,0.00,25.00,0.36,1.66,0.32 +44.00,0.00,14.00,0.63,1.82,0.24 +92.60,1.00,71.00,0.55,1.66,0.28 +47.00,0.00,17.00,0.68,1.51,0.15 +63.00,0.00,33.00,0.52,1.65,0.24 +40.50,1.00,23.00,0.69,1.73,0.34 +76.40,1.00,53.00,0.39,1.67,0.27 +69.00,0.00,39.00,0.43,1.64,0.27 +51.00,0.00,21.00,0.66,1.53,0.15 +50.00,0.00,20.00,0.56,1.71,0.24 +18.60,0.00,0.00,0.96,1.63,0.18 +26.70,1.00,0.00,0.36,1.58,0.26 +20.20,0.00,0.00,0.33,1.56,0.27 +98.00,0.00,68.00,0.33,1.61,0.31 +80.10,1.00,68.00,0.37,1.64,0.28 +17.90,0.00,0.00,1.21,1.67,0.20 +23.20,0.00,0.00,0.67,1.52,0.19 +48.00,0.00,18.00,0.69,1.69,0.23 +62.00,0.00,32.00,0.64,1.79,0.37 +73.00,0.00,43.00,0.44,1.73,0.27 +56.00,0.00,26.00,0.49,1.60,0.27 +53.00,0.00,23.00,0.57,1.74,0.32 +101.00,0.00,71.00,0.53,1.74,0.27 +1.10,0.00,0.00,0.69,1.57,0.23 +1.70,0.00,0.00,0.40,1.58,0.24 +16.80,0.00,0.00,0.67,1.65,0.24 +48.00,0.00,18.00,0.63,1.49,0.15 +43.00,0.00,13.00,0.79,1.57,0.16 +83.00,0.00,53.00,0.40,1.66,0.26 +79.00,1.00,58.00,0.95,1.63,0.18 +69.00,0.00,39.00,0.33,1.59,0.27 +70.00,0.00,40.00,0.40,1.60,0.24 +78.00,0.00,48.00,0.49,1.69,0.25 +62.00,0.00,32.00,0.34,1.61,0.32 +71.00,0.00,41.00,0.55,1.80,0.27 +6.20,0.00,0.00,0.82,1.60,0.17 +40.00,0.00,10.00,0.71,1.55,0.17 +1.50,0.00,0.00,0.35,1.60,0.27 +41.20,1.00,21.00,0.47,1.67,0.25 +47.00,0.00,17.00,0.74,1.53,0.17 +30.90,1.00,4.00,0.48,1.55,0.26 +35.00,0.00,5.00,0.59,1.70,0.27 +52.00,0.00,22.00,0.44,1.61,0.25 +30.00,0.00,0.00,0.85,1.70,0.25 +41.00,0.00,11.00,0.47,1.60,0.26 +98.00,0.00,68.00,0.38,1.64,0.26 +30.00,0.00,0.00,0.67,1.52,0.18 +45.00,0.00,15.00,0.54,1.69,0.23 +1.80,0.00,0.00,0.56,1.62,0.23 +81.00,0.00,51.00,0.34,1.59,0.27 +78.00,0.00,48.00,0.52,1.79,0.28 +65.40,1.00,47.00,0.80,1.55,0.20 +13.20,1.00,0.00,0.67,1.65,0.24 +71.00,1.00,64.00,0.48,1.77,0.28 +6.60,0.00,0.00,0.70,1.59,0.26 +30.00,0.00,0.00,0.53,1.83,0.29 +58.00,0.00,28.00,0.47,1.69,0.26 +75.00,0.00,45.00,0.33,1.59,0.26 +48.00,0.00,18.00,0.53,1.60,0.18 +60.00,0.00,30.00,0.33,1.64,0.29 +88.00,0.00,58.00,0.42,1.67,0.25 +90.00,0.00,60.00,0.46,1.73,0.26 +80.60,1.00,62.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.34,1.61,0.32 +55.00,0.00,25.00,0.57,1.57,0.21 +80.00,0.00,50.00,0.38,1.65,0.27 +46.00,1.00,24.00,0.54,1.56,0.18 +64.00,0.00,34.00,0.34,1.61,0.30 +31.00,0.00,1.00,0.85,1.71,0.22 +30.00,0.00,0.00,0.68,1.53,0.17 +48.00,0.00,18.00,0.55,1.73,0.32 +11.30,0.00,0.00,0.54,1.78,0.37 +90.60,1.00,64.00,0.50,1.80,0.28 +30.00,0.00,0.00,0.58,1.74,0.33 +36.00,0.00,6.00,0.56,1.62,0.23 +101.00,0.00,71.00,0.39,1.60,0.24 +50.00,0.00,20.00,0.54,1.60,0.21 +12.00,0.00,0.00,0.85,1.68,0.35 +72.00,0.00,42.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.45,1.69,0.26 +13.10,0.00,0.00,0.43,1.61,0.25 +10.60,0.00,0.00,0.76,1.59,0.23 +86.00,0.00,56.00,0.47,1.72,0.26 +61.00,0.00,31.00,0.64,1.83,0.25 +30.00,0.00,0.00,0.56,1.79,0.27 +44.00,0.00,14.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.77,1.55,0.16 +30.00,0.00,0.00,0.59,1.57,0.20 +7.90,0.00,0.00,0.41,1.61,0.25 +52.00,0.00,22.00,0.65,1.54,0.21 +25.60,0.00,0.00,0.57,1.53,0.19 +16.50,1.00,0.00,1.01,1.76,0.32 +69.00,0.00,39.00,0.37,1.56,0.28 +55.40,1.00,31.00,0.57,1.53,0.19 +52.00,0.00,22.00,0.41,1.61,0.25 +30.00,0.00,0.00,0.39,1.66,0.27 +85.00,0.00,55.00,0.39,1.57,0.25 +101.00,0.00,71.00,0.37,1.55,0.24 +96.00,0.00,66.00,0.47,1.63,0.23 +47.00,0.00,17.00,0.54,1.73,0.24 +30.00,0.00,0.00,0.75,1.79,0.43 +58.00,0.00,28.00,0.31,1.58,0.28 +72.00,0.00,42.00,0.35,1.66,0.31 +76.00,0.00,46.00,0.31,1.61,0.29 +5.30,0.00,0.00,0.58,1.73,0.31 +71.70,1.00,53.00,0.69,1.80,0.25 +63.00,0.00,33.00,0.32,1.64,0.28 +30.00,0.00,0.00,0.36,1.58,0.25 +43.00,0.00,13.00,0.35,1.66,0.28 +30.00,0.00,0.00,0.38,1.56,0.24 +20.40,1.00,0.00,0.77,1.54,0.17 +65.00,0.00,35.00,0.36,1.64,0.29 +64.30,1.00,60.00,0.58,1.68,0.31 +3.70,0.00,0.00,0.96,1.67,0.20 +47.00,0.00,17.00,0.33,1.53,0.27 +74.00,0.00,44.00,0.37,1.65,0.28 +66.00,0.00,36.00,0.32,1.59,0.28 +30.00,0.00,0.00,0.32,1.60,0.31 +49.00,0.00,19.00,0.74,1.72,0.25 +30.00,0.00,0.00,0.76,1.78,0.44 +30.00,0.00,0.00,0.89,1.67,0.25 +44.00,0.00,14.00,0.44,1.70,0.25 +14.40,0.00,0.00,0.37,1.64,0.27 +52.00,0.00,22.00,0.64,1.55,0.21 +54.20,1.00,41.00,0.60,1.49,0.15 +107.00,0.00,77.00,0.39,1.61,0.25 +30.00,0.00,0.00,0.62,1.63,0.24 +66.00,0.00,36.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.93,1.75,0.22 +75.00,0.00,45.00,0.41,1.86,0.40 +61.00,0.00,31.00,0.43,1.73,0.26 +13.10,0.00,0.00,0.66,1.54,0.18 +63.00,0.00,33.00,0.32,1.65,0.28 +5.50,0.00,0.00,0.63,1.68,0.23 +49.00,0.00,19.00,0.43,1.73,0.27 +58.00,0.00,28.00,0.32,1.70,0.29 +79.00,0.00,49.00,0.48,1.76,0.28 +85.00,0.00,55.00,0.49,1.64,0.28 +63.00,0.00,33.00,0.58,1.82,0.26 +44.00,0.00,14.00,0.62,1.70,0.30 +4.40,0.00,0.00,0.60,1.50,0.17 +18.10,1.00,0.00,0.55,1.81,0.28 +16.70,0.00,0.00,0.31,1.70,0.29 +44.00,0.00,14.00,0.46,1.67,0.26 +67.80,1.00,42.00,0.50,1.76,0.37 +35.30,1.00,15.00,1.03,1.62,0.17 +37.00,0.00,7.00,0.55,1.53,0.19 +16.30,0.00,0.00,0.44,1.66,0.25 +11.80,0.00,0.00,1.14,1.77,0.27 +59.00,0.00,29.00,0.53,1.64,0.22 +57.00,0.00,27.00,0.73,1.64,0.26 +9.00,0.00,0.00,0.67,1.54,0.18 +25.40,0.00,0.00,0.77,1.60,0.18 +74.00,0.00,44.00,0.36,1.66,0.32 +65.00,0.00,35.00,0.34,1.63,0.28 +72.00,0.00,42.00,0.56,1.79,0.37 +67.00,0.00,37.00,0.44,1.68,0.28 +70.00,0.00,40.00,0.39,1.59,0.24 +96.00,0.00,66.00,0.47,1.65,0.24 +58.00,0.00,28.00,0.65,1.74,0.34 +25.20,1.00,20.00,0.46,1.66,0.26 +73.70,1.00,44.00,0.54,1.74,0.25 +14.80,0.00,0.00,0.59,1.54,0.20 +21.50,0.00,0.00,1.19,1.80,0.29 +10.60,0.00,0.00,0.93,1.70,0.24 +74.00,0.00,44.00,0.36,1.65,0.32 +33.00,0.00,3.00,0.46,1.61,0.25 +70.00,0.00,40.00,0.39,1.58,0.28 +30.00,0.00,0.00,0.66,1.77,0.36 +18.00,1.00,0.00,1.00,1.75,0.25 +52.00,0.00,22.00,0.42,1.63,0.26 +5.30,0.00,0.00,0.71,1.76,0.42 +4.70,0.00,0.00,0.62,1.55,0.21 +12.40,0.00,0.00,0.69,1.54,0.17 +70.80,1.00,58.00,0.95,1.62,0.17 +44.50,1.00,35.00,0.35,1.66,0.28 +26.10,0.00,0.00,0.80,1.57,0.16 +39.00,0.00,9.00,0.33,1.52,0.27 +101.00,0.00,71.00,0.51,1.78,0.28 +25.30,1.00,0.00,0.93,1.69,0.25 +85.00,0.00,55.00,0.39,1.57,0.26 +1.20,0.00,0.00,0.59,1.57,0.21 +53.70,1.00,50.00,0.37,1.65,0.29 +21.30,0.00,0.00,0.75,1.80,0.40 +8.00,1.00,0.00,0.62,1.58,0.21 +72.00,0.00,42.00,0.52,1.76,0.37 +76.80,1.00,71.00,0.64,1.58,0.21 +98.60,1.00,76.00,0.48,1.65,0.27 +47.00,0.00,17.00,0.51,1.65,0.23 +38.90,1.00,31.00,0.88,1.70,0.19 +72.00,0.00,42.00,0.36,1.61,0.25 +15.80,0.00,0.00,0.49,1.64,0.25 +30.00,0.00,0.00,0.50,1.61,0.28 +48.00,0.00,18.00,0.67,1.50,0.16 +71.10,1.00,44.00,0.36,1.64,0.31 +30.00,0.00,0.00,0.56,1.79,0.27 +73.70,1.00,66.00,0.47,1.62,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +90.00,0.00,60.00,0.38,1.56,0.23 +3.30,0.00,0.00,1.22,1.81,0.30 +53.00,0.00,23.00,0.35,1.60,0.28 +78.00,0.00,48.00,0.50,1.83,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +17.50,0.00,0.00,0.50,1.70,0.26 +51.00,0.00,21.00,0.66,1.53,0.15 +106.00,0.00,76.00,0.51,1.69,0.28 +92.00,0.00,62.00,0.37,1.65,0.30 +72.00,0.00,42.00,0.35,1.57,0.25 +63.00,0.00,33.00,0.47,1.70,0.26 +55.90,1.00,29.00,0.68,1.73,0.33 +40.20,1.00,20.00,0.62,1.52,0.19 +66.00,0.00,36.00,0.48,1.64,0.24 +79.00,0.00,49.00,0.46,1.66,0.25 +2.90,0.00,0.00,0.61,1.55,0.21 +69.00,0.00,39.00,0.33,1.59,0.27 +52.10,1.00,38.00,0.50,1.80,0.28 +34.30,1.00,20.00,0.78,1.68,0.32 +44.00,0.00,14.00,0.44,1.71,0.26 +10.70,0.00,0.00,0.45,1.70,0.27 +30.00,0.00,0.00,0.33,1.60,0.31 +65.00,0.00,35.00,0.34,1.61,0.29 +48.00,0.00,18.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.35,1.62,0.30 +44.00,0.00,14.00,0.46,1.74,0.28 +40.00,0.00,10.00,0.85,1.63,0.18 +61.70,1.00,43.00,0.40,1.66,0.27 +44.00,0.00,14.00,0.53,1.65,0.23 +63.00,0.00,33.00,0.61,1.58,0.23 +107.00,0.00,77.00,0.38,1.61,0.25 +30.00,0.00,0.00,0.73,1.67,0.35 +38.10,1.00,17.00,0.79,1.58,0.16 +70.60,1.00,44.00,0.38,1.68,0.29 +55.00,0.00,25.00,0.59,1.57,0.22 +48.00,0.00,18.00,0.35,1.66,0.32 +30.00,0.00,0.00,0.94,1.75,0.22 +66.00,0.00,36.00,0.43,1.70,0.33 +30.00,0.00,0.00,0.76,1.58,0.15 +42.00,0.00,12.00,0.62,1.72,0.37 +34.80,1.00,20.00,0.48,1.67,0.24 +40.00,0.00,10.00,1.10,1.63,0.19 +16.10,0.00,0.00,0.76,1.62,0.29 +65.00,0.00,35.00,0.35,1.65,0.28 +60.00,0.00,30.00,0.71,1.55,0.15 +4.60,0.00,0.00,1.01,1.78,0.25 +53.00,0.00,23.00,0.43,1.78,0.37 +33.50,1.00,22.00,0.44,1.62,0.25 +29.80,0.00,0.00,0.39,1.56,0.28 +48.10,1.00,28.00,0.31,1.62,0.28 +49.00,0.00,19.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.69,1.78,0.25 +45.00,0.00,15.00,0.66,1.57,0.23 +44.00,0.00,14.00,0.34,1.61,0.32 +92.00,0.00,62.00,0.42,1.72,0.27 +18.90,0.00,0.00,0.41,1.69,0.27 +55.00,0.00,25.00,0.96,1.76,0.23 +5.90,0.00,0.00,0.61,1.59,0.27 +63.00,0.00,33.00,0.60,1.58,0.23 +59.00,0.00,29.00,0.41,1.68,0.26 +51.00,0.00,21.00,0.68,1.53,0.15 +94.00,0.00,64.00,0.49,1.79,0.28 +6.30,0.00,0.00,0.87,1.58,0.16 +30.00,0.00,0.00,0.87,1.82,0.41 +74.00,0.00,44.00,0.32,1.64,0.29 +11.50,0.00,0.00,0.93,1.70,0.24 +50.00,0.00,20.00,0.60,1.53,0.19 +59.00,0.00,29.00,0.41,1.68,0.27 +58.00,0.00,28.00,0.32,1.59,0.31 +69.00,0.00,39.00,0.46,1.68,0.24 +59.00,0.00,29.00,0.48,1.64,0.24 +23.20,1.00,0.00,0.77,1.79,0.41 +67.10,1.00,53.00,0.69,1.84,0.25 +90.00,0.00,60.00,0.54,1.72,0.30 +13.80,0.00,0.00,0.65,1.61,0.26 +43.00,0.00,13.00,0.41,1.69,0.27 +63.00,0.00,33.00,0.71,1.53,0.20 +67.00,0.00,37.00,0.62,1.77,0.25 +87.60,1.00,58.00,0.64,1.69,0.23 +48.90,1.00,31.00,0.61,1.55,0.21 +58.00,0.00,28.00,0.62,1.54,0.16 +30.00,0.00,0.00,0.77,1.65,0.24 +32.00,0.00,2.00,0.55,1.67,0.23 +44.00,0.00,14.00,0.43,1.70,0.26 +63.00,0.00,33.00,0.57,1.77,0.25 +18.10,0.00,0.00,0.83,1.64,0.18 +57.80,1.00,53.00,0.50,1.58,0.21 +2.90,0.00,0.00,0.96,1.82,0.45 +49.00,0.00,19.00,0.70,1.52,0.18 +7.40,0.00,0.00,0.50,1.81,0.28 +10.70,0.00,0.00,0.62,1.56,0.22 +40.00,0.00,10.00,0.86,1.57,0.16 +90.00,0.00,60.00,0.41,1.59,0.24 +69.00,0.00,39.00,0.64,1.53,0.20 +48.00,0.00,18.00,0.33,1.65,0.30 +4.20,0.00,0.00,0.80,1.57,0.16 +10.30,0.00,0.00,0.78,1.58,0.15 +37.00,0.00,7.00,0.74,1.67,0.31 +60.70,1.00,42.00,0.54,1.78,0.37 +86.00,0.00,56.00,0.53,1.84,0.29 +26.20,1.00,0.00,0.82,1.57,0.16 +30.00,0.00,0.00,0.62,1.50,0.17 +69.00,0.00,39.00,0.43,1.64,0.27 +30.00,0.00,0.00,0.62,1.58,0.22 +43.00,0.00,13.00,0.80,1.58,0.17 +30.00,0.00,0.00,0.82,1.79,0.47 +30.00,0.00,0.00,0.62,1.63,0.24 +70.30,1.00,43.00,0.61,1.68,0.23 +9.30,0.00,0.00,0.35,1.62,0.31 +88.00,0.00,58.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.75,1.79,0.41 +47.00,0.00,17.00,0.52,1.65,0.23 +58.00,0.00,28.00,0.47,1.69,0.25 +82.40,1.00,71.00,0.64,1.57,0.20 +41.40,1.00,19.00,0.80,1.72,0.25 +83.00,0.00,53.00,0.40,1.66,0.26 +6.90,0.00,0.00,0.42,1.67,0.25 +72.60,1.00,71.00,0.64,1.57,0.20 +62.00,0.00,32.00,0.69,1.57,0.22 +8.10,1.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.61,1.55,0.21 +69.00,0.00,39.00,0.64,1.54,0.20 +78.00,0.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.83,1.64,0.19 +90.00,0.00,60.00,0.60,1.74,0.32 +30.00,0.00,0.00,0.74,1.53,0.16 +59.00,0.00,29.00,0.39,1.68,0.30 +50.00,0.00,20.00,0.76,1.53,0.18 +35.00,0.00,5.00,0.47,1.69,0.26 +59.00,0.00,29.00,0.59,1.74,0.24 +30.00,0.00,0.00,0.80,1.57,0.16 +39.00,0.00,9.00,0.43,1.71,0.26 +55.50,1.00,37.00,0.61,1.74,0.32 +60.90,1.00,33.00,0.42,1.70,0.28 +52.00,0.00,22.00,0.37,1.65,0.27 +30.00,0.00,0.00,0.88,1.67,0.25 +69.00,0.00,39.00,0.40,1.57,0.27 +92.00,0.00,62.00,0.38,1.66,0.30 +50.00,0.00,20.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.78,1.65,0.25 +61.00,0.00,31.00,0.33,1.60,0.31 +28.30,0.00,0.00,0.47,1.64,0.24 +29.10,0.00,0.00,0.49,1.64,0.22 +45.00,0.00,15.00,0.42,1.71,0.27 +31.50,1.00,12.00,0.51,1.83,0.43 +48.00,0.00,18.00,0.35,1.64,0.32 +85.00,0.00,55.00,0.36,1.55,0.27 +44.00,0.00,14.00,0.40,1.63,0.25 +56.00,0.00,26.00,0.31,1.59,0.31 +60.00,0.00,30.00,0.49,1.67,0.24 +31.00,0.00,1.00,0.39,1.65,0.26 +67.00,0.00,37.00,0.57,1.76,0.25 +87.00,0.00,57.00,0.37,1.56,0.24 +14.60,0.00,0.00,0.59,1.68,0.23 +74.00,0.00,44.00,0.33,1.60,0.28 +30.00,0.00,0.00,0.36,1.63,0.29 +44.00,0.00,14.00,0.65,1.56,0.23 +47.00,0.00,17.00,0.39,1.56,0.24 +3.70,0.00,0.00,0.85,1.81,0.50 +30.00,0.00,0.00,0.95,1.75,0.23 +63.00,0.00,33.00,0.62,1.59,0.22 +96.00,0.00,66.00,0.55,1.65,0.22 +30.00,0.00,0.00,0.74,1.60,0.21 +59.30,1.00,53.00,0.50,1.58,0.21 +42.00,0.00,12.00,0.52,1.59,0.19 +54.00,0.00,24.00,0.53,1.56,0.18 +69.00,0.00,39.00,1.04,1.78,0.27 +30.00,0.00,0.00,0.36,1.53,0.27 +98.00,0.00,68.00,0.35,1.62,0.30 +41.00,0.00,11.00,0.59,1.69,0.36 +29.60,0.00,0.00,0.61,1.70,0.38 +14.30,0.00,0.00,0.92,1.73,0.27 +60.00,0.00,30.00,0.32,1.63,0.29 +15.80,0.00,0.00,0.71,1.55,0.15 +30.00,0.00,0.00,0.62,1.60,0.25 +13.10,0.00,0.00,0.58,1.58,0.22 +30.00,0.00,0.00,0.57,1.55,0.17 +30.00,0.00,0.00,0.75,1.79,0.39 +81.00,0.00,51.00,0.47,1.63,0.26 +87.00,0.00,57.00,0.59,1.63,0.25 +17.20,0.00,0.00,0.63,1.70,0.33 +74.00,0.00,44.00,0.36,1.65,0.32 +30.00,0.00,0.00,0.47,1.63,0.26 +30.00,0.00,0.00,0.71,1.51,0.16 +7.80,0.00,0.00,0.49,1.68,0.27 +101.00,0.00,71.00,0.50,1.62,0.26 +15.70,1.00,10.00,0.45,1.68,0.25 +65.00,0.00,35.00,0.35,1.64,0.31 +24.20,1.00,10.00,0.84,1.57,0.16 +59.10,1.00,42.00,0.39,1.69,0.28 +58.00,0.00,28.00,0.32,1.56,0.27 +44.00,0.00,14.00,0.62,1.65,0.27 +101.00,0.00,71.00,0.40,1.61,0.24 +66.00,0.00,36.00,0.47,1.67,0.26 +12.00,1.00,10.00,0.54,1.53,0.18 +83.00,0.00,53.00,0.39,1.67,0.28 +44.00,0.00,14.00,0.47,1.55,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.43,1.78,0.38 +72.00,0.00,42.00,0.43,1.71,0.27 +37.00,0.00,7.00,0.55,1.54,0.19 +19.40,1.00,0.00,0.89,1.80,0.44 +92.00,0.00,62.00,0.41,1.71,0.27 +69.00,0.00,39.00,0.54,1.54,0.18 +44.00,0.00,14.00,0.68,1.59,0.24 +20.80,0.00,0.00,0.57,1.51,0.17 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.71,1.54,0.20 +72.00,0.00,42.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,0.37,1.57,0.28 +2.10,0.00,0.00,0.37,1.54,0.28 +59.00,0.00,29.00,0.47,1.64,0.24 +39.00,1.00,19.00,0.80,1.66,0.23 +74.00,0.00,44.00,0.35,1.66,0.28 +60.00,0.00,30.00,0.70,1.55,0.17 +30.00,0.00,0.00,1.03,1.77,0.21 +8.60,0.00,0.00,0.59,1.54,0.20 +72.00,0.00,42.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.65,1.61,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +0.70,0.00,0.00,0.60,1.68,0.23 +7.80,0.00,0.00,0.62,1.53,0.16 +27.70,0.00,0.00,0.37,1.66,0.30 +53.00,0.00,23.00,0.41,1.59,0.24 +47.00,0.00,17.00,0.52,1.57,0.21 +50.00,0.00,20.00,0.69,1.74,0.41 +40.00,0.00,10.00,0.79,1.60,0.18 +50.20,1.00,37.00,0.61,1.69,0.23 +59.00,0.00,29.00,0.54,1.62,0.22 +30.00,0.00,0.00,1.03,1.76,0.21 +29.20,1.00,20.00,0.78,1.68,0.32 +30.00,0.00,0.00,0.54,1.57,0.19 +67.00,0.00,37.00,0.58,1.81,0.26 +30.00,0.00,0.00,0.42,1.85,0.40 +11.40,0.00,0.00,0.70,1.53,0.15 +58.00,0.00,28.00,0.32,1.61,0.29 +46.00,0.00,16.00,0.33,1.46,0.26 +48.10,1.00,34.00,0.39,1.69,0.28 +73.00,0.00,43.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.62,1.76,0.24 +57.00,0.00,27.00,0.45,1.72,0.26 +11.30,0.00,0.00,0.85,1.81,0.49 +62.40,1.00,51.00,0.35,1.59,0.27 +3.50,0.00,0.00,0.68,1.59,0.24 +31.70,1.00,5.00,0.69,1.59,0.25 +44.00,0.00,14.00,0.45,1.70,0.25 +30.00,0.00,0.00,0.56,1.51,0.16 +53.20,1.00,28.00,0.34,1.55,0.27 +70.50,1.00,42.00,0.52,1.82,0.28 +83.00,0.00,53.00,0.50,1.57,0.20 +30.00,0.00,0.00,0.86,1.71,0.23 +71.00,1.00,67.00,0.63,1.58,0.22 +76.80,1.00,68.00,0.41,1.56,0.25 +40.00,0.00,10.00,0.89,1.72,0.20 +66.00,0.00,36.00,0.44,1.74,0.35 +1.20,0.00,0.00,0.84,1.70,0.22 +59.00,0.00,29.00,0.38,1.67,0.30 +73.70,1.00,58.00,0.63,1.68,0.23 +1.00,0.00,0.00,0.79,1.79,0.39 +30.00,0.00,0.00,0.59,1.64,0.24 +30.00,0.00,0.00,0.61,1.70,0.37 +17.40,0.00,0.00,0.42,1.66,0.25 +88.00,0.00,58.00,0.42,1.70,0.26 +25.30,1.00,0.00,0.75,1.79,0.39 +50.00,0.00,20.00,0.68,1.50,0.17 +86.00,0.00,56.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.33,1.46,0.26 +5.90,0.00,0.00,0.78,1.55,0.17 +4.10,0.00,0.00,0.82,1.56,0.17 +30.30,1.00,21.00,0.85,1.57,0.18 +13.10,0.00,0.00,0.50,1.58,0.20 +49.00,0.00,19.00,0.51,1.65,0.22 +53.00,0.00,23.00,0.59,1.69,0.27 +30.00,0.00,0.00,0.44,1.61,0.25 +49.00,0.00,19.00,0.35,1.60,0.26 +5.50,0.00,0.00,0.31,1.63,0.28 +45.00,0.00,15.00,0.61,1.52,0.17 +51.00,0.00,21.00,0.35,1.63,0.31 +66.00,0.00,36.00,0.32,1.62,0.29 +63.00,0.00,33.00,0.58,1.58,0.22 +10.90,0.00,0.00,0.51,1.69,0.28 +9.60,1.00,7.00,0.75,1.67,0.29 +83.00,0.00,53.00,0.53,1.64,0.22 +40.30,1.00,37.00,1.05,1.75,0.21 +30.00,0.00,0.00,0.78,1.57,0.16 +7.50,0.00,0.00,0.69,1.59,0.26 +30.00,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.66,1.65,0.24 +2.50,0.00,0.00,0.69,1.69,0.32 +72.00,0.00,42.00,0.80,1.77,0.38 +1.20,0.00,0.00,0.73,1.59,0.20 +30.00,0.00,0.00,0.66,1.53,0.19 +21.40,1.00,0.00,0.71,1.52,0.16 +62.00,0.00,32.00,0.35,1.63,0.32 +70.00,0.00,40.00,0.39,1.64,0.25 +53.00,0.00,23.00,0.46,1.69,0.26 +30.00,0.00,0.00,0.94,1.73,0.24 +7.20,0.00,0.00,0.48,1.70,0.30 +47.00,0.00,17.00,0.41,1.56,0.27 +58.00,0.00,28.00,0.42,1.56,0.27 +30.00,0.00,0.00,0.72,1.58,0.22 +30.00,0.00,0.00,1.00,1.62,0.18 +77.90,1.00,49.00,0.70,1.59,0.26 +44.00,0.00,14.00,0.43,1.63,0.26 +45.00,0.00,15.00,0.61,1.52,0.17 +64.00,0.00,34.00,0.42,1.70,0.27 +30.00,0.00,0.00,1.19,1.79,0.28 +78.10,1.00,53.00,0.76,1.62,0.29 +72.00,1.00,68.00,0.40,1.56,0.25 +41.00,0.00,11.00,0.46,1.72,0.28 +69.70,1.00,43.00,0.39,1.66,0.27 +74.00,0.00,44.00,0.38,1.67,0.28 +58.00,0.00,28.00,0.34,1.56,0.27 +26.20,0.00,0.00,0.36,1.68,0.32 +25.20,0.00,0.00,0.67,1.52,0.19 +55.00,0.00,25.00,0.59,1.57,0.22 +30.00,0.00,0.00,0.69,1.77,0.37 +30.00,0.00,0.00,0.73,1.69,0.23 +38.30,1.00,21.00,0.56,1.54,0.20 +30.00,0.00,0.00,0.66,1.52,0.19 +44.00,0.00,14.00,0.54,1.59,0.18 +20.30,0.00,0.00,0.57,1.79,0.37 +72.00,0.00,42.00,0.55,1.73,0.24 +3.40,0.00,0.00,0.94,1.66,0.19 +75.00,0.00,45.00,0.34,1.57,0.26 +73.00,0.00,43.00,0.39,1.67,0.28 +69.00,0.00,39.00,0.47,1.67,0.24 +29.60,1.00,0.00,0.35,1.60,0.27 +8.90,0.00,0.00,0.41,1.62,0.26 +31.00,0.00,1.00,0.58,1.59,0.25 +23.60,0.00,0.00,0.38,1.66,0.28 +13.90,0.00,0.00,0.59,1.70,0.27 +1.00,0.00,0.00,0.40,1.61,0.26 +44.50,1.00,17.00,0.78,1.57,0.16 +37.30,1.00,11.00,0.78,1.54,0.18 +79.00,0.00,49.00,0.69,1.59,0.25 +17.00,0.00,0.00,0.70,1.51,0.16 +59.00,0.00,29.00,0.41,1.67,0.26 +43.00,0.00,13.00,0.43,1.70,0.26 +25.10,0.00,0.00,0.59,1.70,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +42.00,0.00,12.00,0.54,1.62,0.25 +43.00,0.00,13.00,0.53,1.53,0.17 +65.40,1.00,61.00,0.37,1.66,0.28 +72.00,0.00,42.00,0.35,1.57,0.26 +44.00,0.00,14.00,0.54,1.59,0.18 +10.80,0.00,0.00,0.61,1.55,0.21 +0.20,0.00,0.00,0.57,1.62,0.24 +80.00,0.00,50.00,0.59,1.58,0.21 +41.00,1.00,24.00,0.52,1.57,0.19 +99.00,0.00,69.00,0.56,1.52,0.17 +90.00,0.00,60.00,0.58,1.69,0.28 +18.40,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.68,1.59,0.24 +71.00,0.00,41.00,0.62,1.49,0.15 +52.00,0.00,22.00,0.36,1.62,0.27 +106.00,0.00,76.00,0.52,1.70,0.29 +3.00,0.00,0.00,0.59,1.53,0.20 +43.00,0.00,13.00,0.53,1.70,0.23 +30.00,0.00,0.00,0.65,1.53,0.16 +47.00,0.00,17.00,0.76,1.53,0.17 +52.00,0.00,22.00,0.38,1.68,0.28 +68.00,0.00,38.00,0.77,1.65,0.28 +58.00,1.00,57.00,0.49,1.74,0.27 +58.00,0.00,28.00,0.33,1.56,0.27 +54.00,0.00,24.00,0.43,1.67,0.27 +60.00,0.00,30.00,0.36,1.66,0.30 +6.60,0.00,0.00,0.71,1.61,0.26 +58.00,0.00,28.00,0.38,1.58,0.28 +81.00,0.00,51.00,0.32,1.62,0.29 +54.00,0.00,24.00,0.54,1.56,0.18 +59.00,0.00,29.00,0.54,1.61,0.23 +30.00,0.00,0.00,0.45,1.70,0.27 +52.00,0.00,22.00,0.36,1.63,0.27 +7.10,0.00,0.00,0.51,1.65,0.24 +69.40,1.00,60.00,0.47,1.67,0.27 +69.00,0.00,39.00,0.60,1.56,0.20 +45.00,0.00,15.00,0.70,1.65,0.30 +63.00,0.00,33.00,0.51,1.65,0.24 +74.00,0.00,44.00,0.36,1.66,0.31 +69.00,0.00,39.00,0.66,1.52,0.19 +89.00,0.00,59.00,0.40,1.83,0.39 +60.00,0.00,30.00,0.45,1.72,0.27 +50.00,0.00,20.00,0.63,1.52,0.18 +25.80,0.00,0.00,0.47,1.55,0.27 +14.20,0.00,0.00,0.46,1.71,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +63.00,0.00,33.00,0.59,1.57,0.22 +30.00,0.00,0.00,0.92,1.74,0.21 +58.00,0.00,28.00,0.48,1.67,0.25 +63.30,1.00,41.00,0.61,1.70,0.24 +39.00,0.00,9.00,0.41,1.87,0.40 +30.00,0.00,0.00,0.57,1.80,0.26 +101.00,0.00,71.00,0.64,1.58,0.21 +40.90,1.00,14.00,0.53,1.59,0.19 +3.10,0.00,0.00,0.68,1.59,0.24 +18.50,0.00,0.00,0.38,1.55,0.25 +30.00,0.00,0.00,0.59,1.63,0.24 +43.00,0.00,13.00,0.36,1.67,0.29 +42.00,0.00,12.00,0.35,1.62,0.26 +30.00,0.00,0.00,0.59,1.75,0.33 +51.00,0.00,21.00,0.32,1.74,0.29 +16.90,0.00,0.00,0.51,1.70,0.24 +59.50,1.00,35.00,0.32,1.59,0.30 +81.80,1.00,60.00,0.41,1.59,0.24 +61.20,1.00,47.00,1.02,1.61,0.23 +62.00,0.00,32.00,0.39,1.69,0.28 +30.00,0.00,0.00,0.76,1.54,0.17 +61.00,0.00,31.00,0.43,1.73,0.26 +58.00,0.00,28.00,0.34,1.56,0.25 +19.90,0.00,0.00,1.08,1.62,0.19 +51.00,0.00,21.00,0.67,1.53,0.15 +43.00,0.00,13.00,0.41,1.64,0.25 +53.00,0.00,23.00,0.40,1.68,0.27 +48.00,0.00,18.00,0.44,1.61,0.25 +11.50,0.00,0.00,0.92,1.59,0.17 +84.00,0.00,54.00,0.49,1.64,0.28 +6.20,0.00,0.00,0.58,1.69,0.31 +57.00,0.00,27.00,0.43,1.66,0.26 +98.00,0.00,68.00,0.37,1.64,0.28 +45.00,0.00,15.00,0.59,1.53,0.20 +36.00,0.00,6.00,0.41,1.69,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +65.00,0.00,35.00,0.32,1.60,0.31 +67.00,0.00,37.00,0.61,1.75,0.24 +43.00,0.00,13.00,0.42,1.69,0.26 +18.40,0.00,0.00,0.35,1.63,0.31 +59.00,0.00,29.00,0.36,1.62,0.26 +0.30,0.00,0.00,0.60,1.64,0.23 +59.00,0.00,29.00,0.42,1.68,0.26 +32.00,0.00,2.00,0.59,1.61,0.25 +30.00,0.00,0.00,0.73,1.59,0.22 +11.70,0.00,0.00,0.34,1.55,0.26 +71.00,1.00,50.00,0.38,1.66,0.27 +84.80,1.00,74.00,0.31,1.58,0.29 +16.20,0.00,0.00,0.51,1.58,0.21 +42.00,0.00,12.00,0.57,1.68,0.29 +63.00,0.00,33.00,0.52,1.65,0.23 +19.10,0.00,0.00,0.71,1.60,0.26 +43.00,0.00,13.00,0.44,1.70,0.26 +61.00,0.00,31.00,0.65,1.84,0.25 +39.20,1.00,17.00,0.41,1.58,0.24 +30.00,0.00,0.00,0.75,1.79,0.39 +15.20,0.00,0.00,0.52,1.71,0.30 +48.00,0.00,18.00,0.47,1.62,0.23 +71.00,0.00,41.00,0.37,1.59,0.26 +50.00,0.00,20.00,0.43,1.57,0.25 +76.00,0.00,46.00,0.68,1.69,0.23 +30.00,0.00,0.00,0.35,1.62,0.31 +30.00,0.00,0.00,0.49,1.56,0.25 +54.00,0.00,24.00,0.69,1.81,0.25 +19.20,0.00,0.00,0.70,1.52,0.19 +30.00,0.00,0.00,0.67,1.52,0.19 +85.00,0.00,55.00,0.47,1.60,0.27 +82.00,0.00,52.00,0.51,1.64,0.29 +68.00,0.00,38.00,0.56,1.57,0.18 +30.00,0.00,0.00,0.66,1.66,0.24 +74.00,0.00,44.00,0.37,1.66,0.29 +40.00,0.00,10.00,0.62,1.58,0.21 +11.90,1.00,0.00,1.48,1.73,0.27 +66.00,0.00,36.00,0.44,1.68,0.31 +17.30,0.00,0.00,0.82,1.60,0.16 +29.30,0.00,0.00,0.39,1.83,0.39 +68.80,1.00,57.00,0.35,1.59,0.27 +61.00,0.00,31.00,0.72,1.51,0.18 +25.90,1.00,10.00,0.95,1.66,0.20 +83.00,0.00,53.00,0.51,1.58,0.20 +107.00,0.00,77.00,0.39,1.61,0.25 +62.40,1.00,44.00,0.32,1.64,0.29 +56.00,0.00,26.00,0.85,1.68,0.35 +30.00,0.00,0.00,0.77,1.65,0.24 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,0.45,1.73,0.28 +34.00,0.00,4.00,0.33,1.62,0.27 +79.00,0.00,49.00,0.61,1.76,0.24 +44.30,1.00,44.00,0.42,1.89,0.41 +30.00,0.00,0.00,0.85,1.71,0.23 +8.70,0.00,0.00,0.60,1.55,0.20 +86.00,0.00,56.00,0.45,1.71,0.26 +59.00,0.00,29.00,0.62,1.76,0.25 +25.80,0.00,0.00,0.81,1.55,0.18 +19.90,1.00,10.00,0.57,1.79,0.27 +14.50,0.00,0.00,0.38,1.60,0.25 +21.30,1.00,15.00,0.64,1.56,0.22 +7.10,0.00,0.00,0.56,1.52,0.17 +33.00,0.00,3.00,0.46,1.65,0.26 +15.10,0.00,0.00,1.15,1.65,0.20 +63.00,0.00,33.00,0.53,1.65,0.23 +47.00,0.00,17.00,0.46,1.71,0.26 +68.80,1.00,66.00,0.47,1.63,0.23 +64.00,0.00,34.00,0.37,1.64,0.30 +101.00,0.00,71.00,0.64,1.58,0.21 +23.10,0.00,0.00,0.61,1.55,0.21 +6.50,0.00,0.00,1.13,1.64,0.20 +106.00,0.00,76.00,0.34,1.55,0.25 +71.00,0.00,41.00,0.61,1.49,0.15 +30.00,0.00,0.00,0.46,1.72,0.27 +29.70,0.00,0.00,0.47,1.64,0.27 +44.00,0.00,14.00,0.42,1.70,0.26 +52.90,1.00,33.00,0.70,1.54,0.20 +63.00,0.00,33.00,0.71,1.54,0.20 +42.80,1.00,25.00,0.51,1.64,0.23 +74.00,0.00,44.00,0.38,1.68,0.29 +53.00,0.00,23.00,0.36,1.62,0.28 +51.00,0.00,21.00,0.49,1.64,0.25 +42.00,0.00,12.00,0.47,1.61,0.25 +87.00,0.00,57.00,0.49,1.75,0.28 +8.90,0.00,0.00,0.50,1.71,0.30 +55.00,0.00,25.00,0.36,1.67,0.32 +58.00,0.00,28.00,0.39,1.56,0.28 +0.60,0.00,0.00,0.63,1.51,0.17 +47.00,0.00,17.00,0.40,1.57,0.24 +30.00,0.00,0.00,0.60,1.63,0.25 +46.20,1.00,37.00,0.61,1.74,0.32 +66.00,0.00,36.00,0.32,1.61,0.29 +63.00,0.00,33.00,0.33,1.61,0.28 +61.00,0.00,31.00,0.58,1.53,0.19 +83.00,0.00,53.00,0.62,1.69,0.23 +88.50,1.00,62.00,0.37,1.66,0.30 +0.40,0.00,0.00,0.61,1.55,0.21 +53.00,0.00,23.00,0.48,1.55,0.26 +34.00,0.00,4.00,0.60,1.51,0.16 +59.00,0.00,29.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.94,1.81,0.45 +11.40,0.00,0.00,0.94,1.66,0.19 +87.00,0.00,57.00,0.38,1.57,0.24 +55.00,0.00,25.00,0.69,1.82,0.25 +47.00,0.00,17.00,0.56,1.73,0.24 +90.00,0.00,60.00,0.39,1.61,0.25 +30.00,0.00,0.00,0.99,1.74,0.25 +73.00,0.00,43.00,0.39,1.67,0.27 +83.10,1.00,62.00,0.67,1.52,0.19 +62.00,0.00,32.00,0.34,1.61,0.32 +51.00,0.00,21.00,0.41,1.67,0.26 +30.00,0.00,0.00,0.59,1.63,0.24 +30.00,0.00,0.00,0.60,1.63,0.24 +74.00,0.00,44.00,0.35,1.60,0.28 +40.00,0.00,10.00,0.81,1.61,0.18 +82.00,0.00,52.00,0.53,1.65,0.30 +70.00,0.00,40.00,0.42,1.88,0.40 +69.00,0.00,39.00,0.51,1.55,0.26 +65.00,0.00,35.00,0.35,1.64,0.30 +5.70,0.00,0.00,0.71,1.74,0.25 +79.00,0.00,49.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.32,1.59,0.32 +61.00,0.00,31.00,0.47,1.64,0.24 +98.00,0.00,68.00,0.37,1.64,0.27 +72.00,0.00,42.00,0.43,1.84,0.40 +30.00,0.00,0.00,0.47,1.74,0.28 +86.00,0.00,56.00,0.57,1.71,0.24 +18.80,1.00,0.00,0.81,1.61,0.17 +57.10,1.00,41.00,0.37,1.60,0.25 +29.60,0.00,0.00,0.54,1.77,0.37 +7.30,0.00,0.00,0.67,1.74,0.40 +69.00,0.00,39.00,0.66,1.52,0.18 +30.00,0.00,0.00,0.82,1.60,0.16 +46.00,0.00,16.00,0.47,1.66,0.24 +41.00,0.00,11.00,0.46,1.68,0.26 +61.00,0.00,31.00,0.34,1.60,0.31 +84.00,0.00,54.00,0.45,1.62,0.25 +53.00,0.00,23.00,0.31,1.56,0.31 +48.00,0.00,18.00,0.41,1.65,0.26 +30.00,0.00,0.00,0.70,1.67,0.33 +63.00,0.00,33.00,0.60,1.55,0.21 +0.30,0.00,0.00,0.41,1.68,0.26 +88.00,0.00,58.00,0.61,1.68,0.23 +73.00,0.00,43.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.35,1.59,0.26 +68.80,1.00,62.00,0.67,1.52,0.18 +3.60,0.00,0.00,0.87,1.63,0.18 +28.60,1.00,20.00,0.69,1.50,0.17 +104.20,1.00,76.00,0.45,1.63,0.26 +22.60,0.00,0.00,0.34,1.60,0.31 +40.00,0.00,10.00,0.77,1.80,0.49 +1.00,0.00,0.00,0.77,1.66,0.28 +65.00,0.00,35.00,0.79,1.59,0.15 +59.00,0.00,29.00,0.47,1.65,0.24 +101.00,0.00,71.00,0.54,1.73,0.26 +16.50,0.00,0.00,0.80,1.66,0.24 +53.00,0.00,23.00,0.45,1.69,0.26 +59.00,0.00,29.00,0.49,1.62,0.23 +61.00,0.00,31.00,0.33,1.60,0.27 +60.00,0.00,30.00,0.33,1.66,0.28 +62.40,1.00,44.00,0.56,1.67,0.32 +97.40,1.00,76.00,0.34,1.55,0.26 +12.90,0.00,0.00,0.59,1.53,0.18 +45.00,0.00,15.00,0.54,1.68,0.24 +94.30,1.00,71.00,0.63,1.58,0.21 +75.00,0.00,45.00,0.34,1.55,0.25 +30.00,0.00,0.00,0.66,1.65,0.24 +45.00,0.00,15.00,0.62,1.52,0.17 +13.30,0.00,0.00,0.63,1.71,0.30 +62.10,1.00,39.00,1.01,1.78,0.25 +3.10,0.00,0.00,0.68,1.73,0.33 +41.00,0.00,11.00,0.57,1.67,0.30 +53.00,0.00,23.00,0.53,1.72,0.32 +47.00,0.00,17.00,0.45,1.69,0.27 +60.00,0.00,30.00,0.55,1.72,0.25 +22.00,0.00,0.00,0.81,1.67,0.23 +30.00,0.00,0.00,0.32,1.59,0.32 +46.30,1.00,20.00,0.77,1.67,0.29 +39.30,1.00,35.00,0.92,1.74,0.21 +26.70,1.00,0.00,0.62,1.52,0.18 +101.00,0.00,71.00,0.37,1.55,0.24 +7.20,0.00,0.00,0.65,1.71,0.24 +30.00,0.00,0.00,0.32,1.59,0.32 +10.80,0.00,0.00,1.11,1.79,0.27 +48.00,0.00,18.00,0.54,1.53,0.17 +45.00,0.00,15.00,0.44,1.67,0.25 +48.00,0.00,18.00,0.56,1.68,0.23 +82.00,0.00,52.00,0.50,1.65,0.28 +42.00,0.00,12.00,0.92,1.63,0.18 +60.30,1.00,39.00,0.60,1.68,0.23 +61.00,0.00,31.00,0.36,1.66,0.32 +88.00,0.00,58.00,0.54,1.84,0.28 +65.00,0.00,35.00,0.32,1.59,0.31 +21.00,0.00,0.00,0.63,1.72,0.38 +53.00,0.00,23.00,0.43,1.56,0.28 +50.00,0.00,20.00,0.77,1.67,0.29 +44.00,0.00,14.00,0.50,1.58,0.20 +92.00,0.00,62.00,0.35,1.72,0.33 +34.00,0.00,4.00,0.32,1.80,0.29 +67.10,1.00,47.00,0.84,1.56,0.21 +93.00,0.00,63.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.61,1.65,0.23 +12.70,0.00,0.00,0.96,1.64,0.17 +98.00,0.00,68.00,0.33,1.60,0.31 +3.50,0.00,0.00,0.77,1.67,0.29 +30.00,0.00,0.00,0.82,1.61,0.17 +108.00,0.00,78.00,0.61,1.52,0.18 +47.00,0.00,17.00,0.68,1.51,0.15 +30.00,0.00,0.00,0.53,1.55,0.18 +53.90,1.00,43.00,0.40,1.66,0.27 +45.00,0.00,15.00,0.59,1.53,0.20 +2.50,0.00,0.00,0.78,1.57,0.16 +71.00,0.00,41.00,0.39,1.59,0.26 +23.80,0.00,0.00,0.50,1.63,0.25 +52.00,0.00,22.00,0.41,1.61,0.25 +18.20,0.00,0.00,1.21,1.67,0.20 +44.00,0.00,14.00,0.60,1.77,0.25 +49.00,0.00,19.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.46,1.68,0.24 +49.00,0.00,19.00,0.32,1.70,0.28 +5.40,0.00,0.00,0.64,1.68,0.23 +34.00,0.00,4.00,0.60,1.52,0.16 +30.00,0.00,0.00,0.70,1.77,0.37 +17.60,0.00,0.00,0.57,1.62,0.23 +75.00,0.00,45.00,0.82,1.66,0.18 +84.10,1.00,58.00,0.62,1.68,0.23 +30.00,0.00,0.00,0.45,1.62,0.25 +49.30,1.00,42.00,0.82,1.77,0.38 +72.00,0.00,42.00,0.56,1.72,0.24 +12.30,0.00,0.00,0.56,1.65,0.24 +15.70,0.00,0.00,0.52,1.70,0.28 +86.00,0.00,56.00,0.46,1.72,0.26 +27.40,1.00,0.00,0.42,1.63,0.24 +64.00,0.00,34.00,0.41,1.71,0.27 +108.00,0.00,78.00,0.67,1.54,0.18 +42.40,1.00,28.00,0.32,1.59,0.31 +26.40,0.00,0.00,0.57,1.59,0.21 +43.00,0.00,13.00,0.41,1.68,0.27 +76.00,0.00,46.00,0.33,1.56,0.27 +108.00,0.00,78.00,0.56,1.67,0.33 +52.00,0.00,22.00,0.51,1.65,0.27 +41.00,0.00,11.00,0.67,1.78,0.24 +68.00,0.00,38.00,0.70,1.58,0.23 +19.60,1.00,0.00,0.61,1.76,0.24 +30.00,0.00,0.00,0.40,1.61,0.24 +47.00,0.00,17.00,0.74,1.53,0.17 +63.00,0.00,33.00,0.60,1.55,0.21 +58.20,1.00,39.00,0.47,1.68,0.29 +6.80,0.00,0.00,0.72,1.51,0.18 +61.00,0.00,31.00,0.88,1.70,0.19 +82.00,0.00,52.00,0.53,1.66,0.31 +21.90,1.00,14.00,0.82,1.80,0.48 +106.00,0.00,76.00,0.52,1.70,0.29 +50.00,0.00,20.00,0.53,1.58,0.21 +0.60,0.00,0.00,1.01,1.77,0.24 +44.00,0.00,14.00,0.44,1.72,0.27 +22.10,0.00,0.00,0.63,1.58,0.21 +45.00,0.00,15.00,0.42,1.72,0.27 +37.00,0.00,7.00,0.69,1.54,0.17 +30.00,0.00,0.00,0.67,1.64,0.24 +63.00,0.00,33.00,0.52,1.57,0.20 +61.00,0.00,31.00,0.56,1.55,0.18 +50.00,0.00,20.00,0.43,1.72,0.27 +71.00,0.00,41.00,0.36,1.60,0.25 +84.00,0.00,54.00,0.47,1.69,0.30 +66.00,1.00,53.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.35,1.65,0.28 +83.00,0.00,53.00,0.40,1.67,0.26 +30.00,0.00,0.00,1.21,1.74,0.24 +54.00,0.00,24.00,0.54,1.56,0.18 +5.40,0.00,0.00,0.75,1.68,0.23 +74.00,0.00,44.00,0.37,1.65,0.28 +58.00,0.00,28.00,0.32,1.65,0.28 +30.00,0.00,0.00,0.52,1.81,0.29 +49.00,0.00,19.00,0.33,1.71,0.28 +30.00,0.00,0.00,0.66,1.52,0.18 +62.10,1.00,53.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.93,1.73,0.24 +0.90,0.00,0.00,0.60,1.57,0.20 +39.10,1.00,11.00,0.72,1.84,0.25 +69.20,1.00,45.00,0.58,1.65,0.26 +76.40,1.00,60.00,0.58,1.67,0.27 +30.00,0.00,0.00,0.40,1.69,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +72.00,0.00,42.00,0.38,1.66,0.28 +71.00,0.00,41.00,0.59,1.50,0.15 +70.00,0.00,40.00,0.40,1.64,0.25 +46.00,0.00,16.00,0.48,1.68,0.25 +1.30,0.00,0.00,0.86,1.71,0.23 +83.00,0.00,53.00,0.46,1.72,0.27 +29.90,0.00,0.00,0.39,1.58,0.27 +30.00,0.00,0.00,0.59,1.58,0.26 +11.80,0.00,0.00,1.31,1.80,0.30 +3.60,0.00,0.00,0.48,1.87,0.42 +15.50,0.00,0.00,0.35,1.60,0.28 +89.00,0.00,59.00,0.40,1.83,0.39 +12.00,0.00,0.00,1.01,1.85,0.44 +30.00,0.00,0.00,0.54,1.55,0.18 +30.00,0.00,0.00,0.53,1.55,0.18 +91.00,0.00,61.00,0.35,1.64,0.30 +53.00,0.00,23.00,0.31,1.56,0.31 +10.50,0.00,0.00,0.54,1.68,0.24 +11.50,0.00,0.00,0.61,1.49,0.15 +69.00,0.00,39.00,0.65,1.53,0.20 +91.00,0.00,61.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.64,1.51,0.18 +56.00,0.00,26.00,0.32,1.59,0.31 +11.40,0.00,0.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.61,1.76,0.25 +30.00,0.00,0.00,0.77,1.78,0.44 +26.90,0.00,0.00,0.74,1.76,0.24 +65.00,0.00,35.00,0.34,1.63,0.29 +66.80,1.00,41.00,0.80,1.57,0.16 +65.70,1.00,44.00,0.34,1.64,0.28 +75.00,0.00,45.00,0.62,1.59,0.27 +85.00,0.00,55.00,0.49,1.63,0.28 +16.40,1.00,10.00,0.73,1.81,0.43 +62.80,1.00,33.00,0.57,1.62,0.24 +2.90,0.00,0.00,0.41,1.57,0.27 +21.60,0.00,0.00,0.64,1.49,0.16 +48.00,0.00,18.00,0.53,1.60,0.18 +66.00,0.00,36.00,0.54,1.71,0.24 +10.20,0.00,0.00,0.57,1.60,0.23 +9.60,0.00,0.00,0.55,1.52,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.38,1.67,0.28 +69.00,0.00,39.00,0.65,1.53,0.19 +96.00,0.00,66.00,0.54,1.64,0.22 +6.60,1.00,0.00,0.67,1.52,0.19 +13.70,1.00,0.00,0.73,1.71,0.23 +66.00,0.00,36.00,0.54,1.69,0.23 +49.00,0.00,19.00,0.77,1.78,0.26 +90.00,0.00,60.00,0.38,1.59,0.24 +60.00,0.00,30.00,0.32,1.67,0.28 +30.00,0.00,0.00,0.46,1.54,0.27 +15.70,0.00,0.00,0.78,1.68,0.32 +42.00,0.00,12.00,0.52,1.61,0.25 +41.00,0.00,11.00,0.39,1.61,0.24 +22.70,0.00,0.00,0.46,1.68,0.26 +63.00,0.00,33.00,0.56,1.73,0.25 +8.30,0.00,0.00,0.50,1.58,0.20 +13.10,0.00,0.00,0.68,1.74,0.41 +68.30,1.00,42.00,0.59,1.67,0.28 +71.00,0.00,41.00,0.38,1.59,0.26 +92.00,0.00,62.00,0.67,1.52,0.19 +61.00,0.00,31.00,0.71,1.52,0.18 +50.00,0.00,20.00,0.55,1.54,0.20 +16.60,1.00,10.00,0.83,1.62,0.18 +64.40,1.00,61.00,0.35,1.64,0.30 +51.00,0.00,21.00,0.44,1.73,0.27 +17.50,0.00,0.00,0.42,1.60,0.24 +51.00,0.00,21.00,0.72,1.77,0.25 +14.40,0.00,0.00,0.76,1.59,0.16 +61.90,1.00,60.00,0.53,1.71,0.29 +47.00,0.00,17.00,0.54,1.67,0.24 +65.40,1.00,39.00,0.59,1.58,0.26 +0.90,0.00,0.00,0.79,1.64,0.27 +24.10,1.00,10.00,1.11,1.63,0.20 +6.80,0.00,0.00,0.77,1.79,0.41 +3.00,0.00,0.00,0.62,1.68,0.23 +97.60,1.00,76.00,0.53,1.70,0.29 +86.00,0.00,56.00,0.53,1.71,0.26 +41.00,0.00,11.00,0.76,1.92,0.25 +38.20,1.00,11.00,0.73,1.57,0.17 +40.00,0.00,10.00,0.95,1.76,0.21 +97.90,1.00,71.00,0.50,1.62,0.26 +50.00,0.00,20.00,0.42,1.71,0.27 +38.10,1.00,21.00,0.80,1.59,0.16 +44.00,0.00,14.00,0.63,1.82,0.24 +30.00,0.00,0.00,0.38,1.67,0.28 +47.00,0.00,17.00,0.62,1.58,0.22 +34.30,1.00,20.00,1.01,1.77,0.21 +53.00,0.00,23.00,0.42,1.70,0.26 +17.20,1.00,12.00,0.47,1.60,0.26 +72.00,0.00,42.00,0.35,1.66,0.31 +65.00,0.00,35.00,0.32,1.60,0.30 +63.00,0.00,33.00,0.39,1.58,0.28 +83.00,0.00,53.00,0.42,1.69,0.26 +65.00,0.00,35.00,0.34,1.61,0.29 +82.50,1.00,71.00,0.38,1.55,0.25 +54.30,1.00,36.00,0.45,1.72,0.27 +83.00,0.00,53.00,0.42,1.67,0.26 +63.10,1.00,63.00,0.36,1.67,0.31 +35.30,1.00,11.00,0.74,1.57,0.17 +3.70,0.00,0.00,0.78,1.54,0.18 +75.00,0.00,45.00,0.33,1.57,0.26 +43.00,0.00,13.00,0.47,1.67,0.25 +3.90,0.00,0.00,0.52,1.71,0.30 +42.00,0.00,12.00,0.47,1.60,0.26 +35.00,0.00,5.00,0.64,1.54,0.20 +72.00,0.00,42.00,0.31,1.57,0.31 +69.00,0.00,39.00,0.46,1.68,0.24 +30.00,0.00,0.00,0.53,1.63,0.22 +18.40,0.00,0.00,0.93,1.87,0.26 +42.10,1.00,18.00,0.61,1.59,0.27 +4.20,0.00,0.00,0.77,1.65,0.25 +31.00,0.00,1.00,0.87,1.71,0.21 +65.60,1.00,62.00,0.82,1.55,0.18 +42.30,1.00,32.00,0.47,1.64,0.27 +49.00,0.00,19.00,0.33,1.69,0.27 +51.00,0.00,21.00,0.88,1.58,0.18 +67.00,0.00,37.00,0.59,1.84,0.26 +59.00,0.00,29.00,0.36,1.62,0.25 +88.00,0.00,58.00,0.62,1.74,0.24 +69.10,1.00,48.00,0.50,1.70,0.26 +70.00,0.00,40.00,0.53,1.70,0.23 +61.00,0.00,31.00,0.34,1.60,0.25 +40.10,1.00,32.00,0.68,1.56,0.22 +2.30,0.00,0.00,0.88,1.58,0.16 +42.00,0.00,12.00,0.92,1.63,0.18 +47.00,0.00,17.00,0.33,1.52,0.27 +6.10,0.00,0.00,0.56,1.52,0.17 +69.00,0.00,39.00,0.44,1.71,0.25 +25.20,0.00,0.00,0.89,1.58,0.21 +68.00,0.00,38.00,0.55,1.58,0.19 +30.00,0.00,0.00,0.32,1.56,0.27 +72.00,0.00,42.00,0.57,1.79,0.26 +51.00,0.00,21.00,0.80,1.59,0.16 +79.60,1.00,54.00,0.51,1.71,0.30 +30.00,0.00,0.00,0.35,1.63,0.31 +83.00,0.00,53.00,0.52,1.57,0.20 +66.00,0.00,36.00,0.43,1.80,0.38 +58.00,0.00,28.00,0.31,1.59,0.28 +47.00,0.00,17.00,0.52,1.57,0.21 +60.90,1.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.54,1.57,0.18 +45.00,0.00,15.00,0.44,1.66,0.25 +72.00,0.00,42.00,0.43,1.71,0.27 +54.50,1.00,35.00,0.94,1.75,0.21 +5.70,0.00,0.00,0.76,1.55,0.16 +56.00,0.00,26.00,0.45,1.62,0.25 +84.30,1.00,57.00,0.43,1.61,0.25 +40.50,1.00,14.00,0.68,1.59,0.24 +80.50,1.00,59.00,0.57,1.57,0.26 +48.00,0.00,18.00,0.70,1.69,0.23 +57.00,0.00,27.00,0.45,1.72,0.26 +57.50,1.00,53.00,0.52,1.57,0.20 +8.00,0.00,0.00,0.54,1.56,0.18 +34.00,0.00,4.00,0.66,1.61,0.26 +80.00,0.00,50.00,0.38,1.66,0.28 +23.60,0.00,0.00,0.91,1.70,0.19 +59.00,0.00,29.00,0.52,1.64,0.22 +59.00,0.00,29.00,0.51,1.64,0.22 +62.00,0.00,32.00,0.39,1.69,0.28 +59.00,0.00,29.00,0.36,1.57,0.24 +53.00,0.00,23.00,0.59,1.66,0.27 +98.00,0.00,68.00,0.37,1.64,0.28 +99.00,0.00,69.00,0.55,1.52,0.18 +2.20,0.00,0.00,0.71,1.53,0.15 +13.70,0.00,0.00,0.33,1.56,0.26 +64.80,1.00,42.00,0.36,1.61,0.25 +51.00,0.00,21.00,0.66,1.53,0.15 +30.00,0.00,0.00,0.68,1.64,0.24 +50.00,0.00,20.00,0.45,1.65,0.25 +44.00,0.00,14.00,0.54,1.59,0.18 +30.00,0.00,0.00,0.52,1.56,0.20 +49.00,0.00,19.00,0.48,1.88,0.42 +85.00,0.00,55.00,0.38,1.54,0.28 +30.00,0.00,0.00,0.45,1.70,0.27 +81.00,0.00,51.00,0.33,1.60,0.28 +5.10,0.00,0.00,0.99,1.75,0.25 +99.00,0.00,69.00,0.56,1.52,0.17 +83.00,0.00,53.00,0.40,1.67,0.26 +60.00,0.00,30.00,0.57,1.76,0.25 +19.40,0.00,0.00,0.83,1.63,0.19 +86.00,0.00,56.00,0.56,1.71,0.24 +21.50,0.00,0.00,0.78,1.65,0.28 +64.00,1.00,42.00,0.37,1.65,0.29 +89.90,1.00,69.00,0.56,1.52,0.17 +53.00,0.00,23.00,0.39,1.66,0.26 +23.00,0.00,0.00,0.69,1.53,0.20 +12.90,0.00,0.00,0.66,1.80,0.38 +48.00,0.00,18.00,0.94,1.72,0.25 +39.00,0.00,9.00,0.33,1.52,0.27 +85.80,1.00,59.00,0.62,1.59,0.27 +50.00,0.00,20.00,0.66,1.77,0.25 +52.00,0.00,22.00,0.65,1.54,0.21 +40.00,0.00,10.00,0.54,1.52,0.17 +18.40,0.00,0.00,1.08,1.62,0.19 +66.10,1.00,60.00,0.57,1.72,0.31 +105.00,0.00,75.00,0.59,1.70,0.28 +8.80,0.00,0.00,0.60,1.76,0.33 +30.00,0.00,0.00,0.39,1.57,0.24 +28.20,0.00,0.00,0.82,1.59,0.17 +65.80,1.00,41.00,0.88,1.67,0.25 +48.00,0.00,18.00,0.54,1.55,0.18 +70.00,0.00,40.00,0.43,1.58,0.25 +69.00,0.00,39.00,0.66,1.52,0.19 +82.00,0.00,52.00,0.36,1.69,0.31 +30.00,0.00,0.00,0.76,1.65,0.24 +51.00,0.00,21.00,0.40,1.67,0.27 +21.70,0.00,0.00,0.34,1.65,0.28 +19.50,0.00,0.00,0.38,1.56,0.23 +59.00,0.00,29.00,0.36,1.58,0.24 +59.00,0.00,29.00,0.51,1.64,0.22 +68.00,0.00,38.00,0.46,1.67,0.26 +44.00,0.00,14.00,0.61,1.52,0.18 +45.70,1.00,36.00,0.53,1.68,0.23 +27.00,0.00,0.00,0.47,1.61,0.25 +30.00,0.00,0.00,0.66,1.77,0.36 +46.00,0.00,16.00,0.45,1.65,0.26 +47.00,0.00,17.00,0.38,1.68,0.29 +24.00,1.00,0.00,0.78,1.57,0.15 +3.60,0.00,0.00,1.25,1.75,0.25 +68.00,0.00,38.00,0.59,1.70,0.28 +85.00,0.00,55.00,0.37,1.55,0.27 +47.00,0.00,17.00,0.52,1.65,0.23 +11.30,0.00,0.00,0.40,1.66,0.27 +48.00,0.00,18.00,0.53,1.58,0.18 +11.50,0.00,0.00,0.51,1.81,0.29 +74.00,0.00,44.00,0.56,1.58,0.21 +25.20,1.00,22.00,0.43,1.67,0.25 +73.80,1.00,60.00,0.37,1.65,0.29 +49.70,1.00,26.00,0.32,1.59,0.31 +54.50,1.00,42.00,0.43,1.81,0.39 +11.80,0.00,0.00,0.65,1.80,0.25 +69.00,0.00,39.00,0.35,1.55,0.28 +55.00,0.00,25.00,0.41,1.51,0.26 +50.00,0.00,20.00,0.70,1.51,0.16 +85.00,0.00,55.00,0.48,1.60,0.27 +84.30,1.00,58.00,0.54,1.83,0.28 +30.00,0.00,0.00,0.82,1.68,0.24 +55.00,0.00,25.00,0.41,1.53,0.27 +49.00,0.00,19.00,0.33,1.70,0.28 +32.00,0.00,2.00,0.38,1.66,0.27 +33.00,0.00,3.00,0.76,1.62,0.24 +30.00,0.00,0.00,0.81,1.56,0.17 +61.00,0.00,31.00,0.34,1.60,0.27 +30.00,0.00,0.00,0.55,1.58,0.19 +27.90,1.00,0.00,0.48,1.67,0.24 +51.00,0.00,21.00,0.67,1.53,0.15 +30.00,0.00,0.00,0.41,1.59,0.24 +45.00,0.00,15.00,0.44,1.66,0.25 +42.00,0.00,12.00,0.53,1.61,0.25 +59.40,1.00,44.00,0.32,1.60,0.28 +54.50,1.00,41.00,0.65,1.68,0.23 +99.00,0.00,69.00,0.59,1.50,0.17 +23.50,0.00,0.00,0.86,1.65,0.24 +66.00,0.00,36.00,0.48,1.66,0.24 +6.70,0.00,0.00,0.63,1.58,0.21 +33.70,1.00,21.00,0.82,1.60,0.16 +2.40,0.00,0.00,0.55,1.73,0.32 +30.00,0.00,0.00,0.59,1.63,0.25 +0.80,0.00,0.00,1.08,1.75,0.22 +30.00,0.00,0.00,0.86,1.71,0.23 +30.00,0.00,0.00,0.59,1.83,0.26 +30.00,0.00,0.00,0.62,1.66,0.23 +71.00,0.00,41.00,0.45,1.75,0.28 +53.80,1.00,53.00,0.44,1.71,0.28 +30.00,0.00,0.00,0.75,1.79,0.39 +63.00,1.00,41.00,0.65,1.68,0.23 +75.90,1.00,68.00,0.42,1.70,0.26 +50.00,0.00,20.00,0.58,1.76,0.25 +30.00,0.00,0.00,0.55,1.71,0.25 +30.00,0.00,0.00,0.51,1.69,0.28 +18.70,0.00,0.00,0.46,1.70,0.26 +67.00,0.00,37.00,0.59,1.58,0.22 +32.60,1.00,29.00,0.41,1.67,0.26 +25.20,1.00,0.00,0.60,1.76,0.33 +9.40,0.00,0.00,0.44,1.53,0.27 +92.00,0.00,62.00,0.35,1.62,0.30 +53.00,0.00,23.00,0.36,1.61,0.28 +50.00,0.00,20.00,0.54,1.71,0.23 +18.90,0.00,0.00,0.58,1.68,0.27 +85.10,1.00,57.00,0.58,1.60,0.25 +50.00,0.00,20.00,0.42,1.71,0.27 +47.00,0.00,17.00,0.66,1.56,0.21 +28.10,1.00,0.00,0.80,1.79,0.42 +35.00,1.00,12.00,0.93,1.63,0.18 +40.00,0.00,10.00,0.44,1.68,0.25 +72.00,0.00,42.00,0.55,1.73,0.24 +48.00,0.00,18.00,0.89,1.88,0.26 +42.20,1.00,22.00,0.75,1.61,0.22 +72.00,0.00,42.00,0.36,1.61,0.25 +49.00,0.00,19.00,0.35,1.60,0.26 +30.00,0.00,0.00,0.42,1.67,0.25 +82.00,0.00,52.00,0.51,1.63,0.30 +69.00,0.00,39.00,0.33,1.59,0.27 +97.00,0.00,67.00,0.59,1.70,0.27 +52.00,0.00,22.00,0.38,1.67,0.28 +7.60,1.00,0.00,0.91,1.83,0.52 +89.00,0.00,59.00,0.37,1.81,0.37 +30.00,0.00,0.00,0.65,1.53,0.20 +7.90,0.00,0.00,0.88,1.71,0.19 +30.00,0.00,0.00,0.63,1.53,0.16 +30.00,0.00,0.00,0.46,1.73,0.26 +52.00,0.00,22.00,0.37,1.64,0.27 +3.20,0.00,0.00,0.53,1.71,0.30 +72.00,0.00,42.00,0.57,1.79,0.37 +31.50,1.00,15.00,0.44,1.65,0.25 +70.00,0.00,40.00,0.49,1.69,0.24 +41.00,0.00,11.00,0.58,1.68,0.33 +38.40,1.00,20.00,0.42,1.72,0.27 +20.20,0.00,0.00,0.66,1.54,0.18 +71.00,0.00,41.00,0.57,1.64,0.25 +9.10,0.00,0.00,0.60,1.57,0.20 +88.00,0.00,58.00,0.41,1.65,0.25 +53.00,0.00,23.00,0.46,1.69,0.26 +45.10,1.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.32,1.59,0.31 +70.00,0.00,40.00,0.53,1.69,0.23 +47.00,0.00,17.00,0.33,1.54,0.28 +69.00,0.00,39.00,0.37,1.57,0.28 +82.00,0.00,52.00,0.52,1.64,0.30 +0.40,0.00,0.00,0.48,1.74,0.27 +41.00,0.00,11.00,0.73,1.57,0.17 +101.00,0.00,71.00,0.39,1.61,0.24 +66.00,0.00,36.00,0.32,1.59,0.28 +73.00,0.00,43.00,0.44,1.72,0.26 +8.80,0.00,0.00,0.63,1.53,0.17 +45.00,0.00,15.00,0.42,1.61,0.25 +32.00,0.00,2.00,0.43,1.55,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +1.10,0.00,0.00,0.64,1.53,0.20 +65.00,0.00,35.00,0.35,1.66,0.28 +47.00,0.00,17.00,0.33,1.53,0.27 +52.00,0.00,22.00,0.42,1.62,0.26 +36.00,1.00,33.00,0.74,1.54,0.20 +74.00,0.00,44.00,0.53,1.78,0.28 +27.40,1.00,25.00,0.42,1.54,0.27 +59.00,0.00,29.00,0.50,1.63,0.22 +39.00,0.00,9.00,0.33,1.52,0.27 +98.00,0.00,68.00,0.37,1.63,0.28 +22.50,0.00,0.00,0.46,1.66,0.28 +54.00,0.00,24.00,0.54,1.56,0.18 +42.00,0.00,12.00,0.35,1.62,0.26 +45.00,1.00,20.00,0.92,1.83,0.51 +30.00,0.00,0.00,0.62,1.55,0.20 +95.00,0.00,65.00,0.37,1.79,0.36 +60.00,0.00,30.00,0.33,1.66,0.28 +30.00,0.00,0.00,0.81,1.61,0.18 +61.00,0.00,31.00,0.46,1.64,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +3.60,0.00,0.00,1.03,1.77,0.21 +38.40,1.00,12.00,0.62,1.72,0.38 +30.00,0.00,0.00,0.73,1.52,0.16 +72.00,0.00,42.00,0.35,1.57,0.25 +30.00,0.00,0.00,1.27,1.80,0.30 +29.50,0.00,0.00,0.42,1.68,0.26 +45.00,0.00,15.00,0.45,1.66,0.25 +82.00,0.00,52.00,0.52,1.64,0.30 +50.00,0.00,20.00,0.72,1.54,0.15 +43.00,0.00,13.00,0.33,1.63,0.29 +30.00,0.00,0.00,0.66,1.63,0.25 +86.00,0.00,56.00,0.49,1.64,0.22 +48.00,0.00,18.00,0.52,1.59,0.20 +20.70,0.00,0.00,0.88,1.68,0.38 +53.00,1.00,28.00,0.67,1.74,0.34 +27.10,1.00,0.00,0.72,1.52,0.16 +53.00,0.00,23.00,0.31,1.57,0.31 +47.40,1.00,38.00,0.73,1.59,0.25 +13.20,0.00,0.00,0.33,1.56,0.27 +38.90,1.00,17.00,0.89,1.60,0.17 +30.00,0.00,0.00,0.78,1.79,0.39 +43.00,0.00,13.00,0.44,1.71,0.26 +10.00,0.00,0.00,0.38,1.67,0.29 +6.30,0.00,0.00,0.55,1.65,0.22 +101.00,0.00,71.00,0.37,1.55,0.24 +51.30,1.00,28.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.73,1.79,0.38 +72.00,0.00,42.00,0.42,1.85,0.40 +50.00,0.00,20.00,0.53,1.57,0.20 +60.00,0.00,30.00,0.59,1.62,0.22 +43.00,0.00,13.00,0.46,1.67,0.25 +33.00,0.00,3.00,0.46,1.61,0.25 +73.00,0.00,43.00,0.44,1.72,0.26 +79.30,1.00,71.00,0.34,1.48,0.26 +81.00,0.00,51.00,0.32,1.62,0.30 +90.00,0.00,60.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.67,1.52,0.18 +34.00,0.00,4.00,0.44,1.81,0.39 +50.00,0.00,20.00,0.82,1.63,0.19 +30.70,1.00,17.00,0.68,1.51,0.16 +30.00,0.00,0.00,0.37,1.54,0.28 +87.80,1.00,61.00,0.35,1.60,0.27 +50.00,0.00,20.00,0.42,1.57,0.25 +65.60,1.00,37.00,0.92,1.74,0.21 +97.00,0.00,67.00,0.64,1.69,0.30 +76.80,1.00,54.00,0.48,1.70,0.30 +88.00,0.00,58.00,0.63,1.68,0.23 +91.00,0.00,61.00,0.36,1.64,0.29 +48.00,0.00,18.00,0.53,1.59,0.18 +37.30,1.00,17.00,0.69,1.58,0.21 +58.00,0.00,28.00,0.38,1.81,0.37 +11.00,0.00,0.00,0.58,1.53,0.19 +69.00,0.00,39.00,0.46,1.68,0.24 +46.00,0.00,16.00,0.51,1.78,0.28 +92.00,0.00,62.00,0.38,1.67,0.30 +5.80,0.00,0.00,0.70,1.54,0.15 +2.60,0.00,0.00,1.26,1.81,0.31 +30.00,0.00,0.00,1.05,1.87,0.55 +83.00,0.00,53.00,0.51,1.58,0.21 +55.00,0.00,25.00,0.55,1.59,0.22 +85.00,0.00,55.00,0.35,1.56,0.27 +83.00,0.00,53.00,0.66,1.85,0.25 +70.00,0.00,40.00,0.52,1.70,0.23 +69.60,1.00,62.00,0.67,1.52,0.19 +101.00,0.00,71.00,0.51,1.82,0.29 +50.00,0.00,20.00,0.71,1.51,0.16 +67.30,1.00,66.00,0.47,1.63,0.23 +30.00,0.00,0.00,0.85,1.79,0.43 +74.00,0.00,44.00,0.32,1.64,0.29 +25.10,0.00,0.00,0.56,1.75,0.33 +16.50,0.00,0.00,0.64,1.57,0.20 +19.10,0.00,0.00,0.76,1.76,0.37 +74.00,0.00,44.00,0.36,1.66,0.32 +44.00,0.00,14.00,0.64,1.55,0.21 +16.50,0.00,0.00,0.78,1.68,0.24 +30.00,0.00,0.00,0.92,1.70,0.24 +58.00,0.00,28.00,0.31,1.57,0.28 +69.00,0.00,39.00,0.57,1.68,0.23 +40.00,0.00,10.00,0.84,1.57,0.16 +80.00,0.00,50.00,0.38,1.66,0.27 +30.00,0.00,0.00,0.66,1.52,0.19 +78.00,0.00,48.00,0.45,1.71,0.27 +30.00,0.00,0.00,0.74,1.79,0.43 +30.00,0.00,0.00,0.91,1.72,0.24 +106.00,0.00,76.00,0.33,1.56,0.27 +5.20,0.00,0.00,0.68,1.51,0.15 +45.50,1.00,20.00,0.56,1.53,0.19 +39.00,1.00,20.00,0.78,1.68,0.31 +55.00,0.00,25.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.37,1.54,0.28 +12.00,0.00,0.00,1.08,1.76,0.22 +3.20,0.00,0.00,0.88,1.67,0.25 +37.00,0.00,7.00,0.74,1.67,0.31 +29.50,1.00,25.00,0.42,1.54,0.27 +45.00,0.00,15.00,0.67,1.58,0.24 +45.00,0.00,15.00,0.42,1.71,0.27 +20.50,0.00,0.00,0.89,1.58,0.21 +44.00,0.00,14.00,0.67,1.57,0.24 +30.00,0.00,0.00,0.37,1.56,0.24 +45.00,0.00,15.00,0.45,1.67,0.25 +48.40,1.00,25.00,0.94,1.71,0.20 +25.40,0.00,0.00,0.37,1.64,0.27 +48.30,1.00,28.00,0.33,1.56,0.26 +69.00,0.00,39.00,0.40,1.57,0.28 +52.00,0.00,22.00,0.42,1.63,0.25 +67.00,0.00,37.00,0.54,1.71,0.30 +28.10,0.00,0.00,0.64,1.54,0.16 +61.70,1.00,39.00,0.47,1.68,0.29 +38.80,1.00,33.00,0.62,1.68,0.23 +34.00,0.00,4.00,0.34,1.65,0.27 +44.00,0.00,14.00,0.65,1.56,0.21 +30.00,0.00,0.00,0.52,1.81,0.29 +28.40,0.00,0.00,0.67,1.94,0.25 +45.00,0.00,15.00,0.42,1.61,0.25 +72.00,0.00,42.00,0.42,1.86,0.40 +41.00,0.00,11.00,0.50,1.62,0.26 +30.00,0.00,0.00,0.67,1.53,0.17 +40.00,0.00,10.00,0.54,1.53,0.18 +73.00,1.00,57.00,0.39,1.57,0.24 +40.00,0.00,10.00,0.70,1.54,0.17 +54.00,1.00,28.00,0.47,1.68,0.25 +49.00,0.00,19.00,0.74,1.72,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +52.00,0.00,22.00,0.36,1.62,0.26 +5.10,1.00,0.00,1.24,1.74,0.25 +82.90,1.00,53.00,0.83,1.69,0.22 +30.00,0.00,0.00,0.69,1.61,0.27 +42.00,0.00,12.00,0.58,1.69,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +36.20,1.00,21.00,0.63,1.56,0.21 +104.00,0.00,74.00,0.30,1.57,0.29 +11.80,0.00,0.00,0.68,1.53,0.20 +16.90,0.00,0.00,0.49,1.71,0.32 +61.00,0.00,31.00,0.69,1.53,0.20 +24.90,0.00,0.00,0.53,1.55,0.20 +83.00,0.00,53.00,0.42,1.69,0.26 +9.00,1.00,0.00,0.91,1.73,0.27 +56.30,1.00,40.00,0.38,1.61,0.25 +20.20,0.00,0.00,0.52,1.71,0.30 +45.80,1.00,36.00,0.53,1.68,0.23 +64.00,0.00,34.00,0.33,1.61,0.31 +62.50,1.00,43.00,0.38,1.60,0.24 +88.00,0.00,58.00,0.62,1.68,0.23 +50.00,0.00,20.00,0.43,1.66,0.24 +50.00,0.00,20.00,0.38,1.58,0.28 +1.70,0.00,0.00,1.14,1.89,0.56 +26.40,0.00,0.00,0.82,1.60,0.16 +49.00,0.00,19.00,0.74,1.72,0.25 +29.20,0.00,0.00,0.41,1.51,0.26 +18.80,0.00,0.00,0.57,1.77,0.25 +53.00,0.00,23.00,0.48,1.55,0.27 +2.00,0.00,0.00,0.59,1.50,0.17 +4.70,0.00,0.00,0.43,1.71,0.27 +2.30,0.00,0.00,0.68,1.53,0.19 +21.20,1.00,0.00,0.83,1.80,0.39 +10.10,0.00,0.00,0.97,1.74,0.24 +99.00,0.00,69.00,0.61,1.50,0.17 +9.40,0.00,0.00,0.43,1.61,0.25 +30.00,0.00,0.00,0.46,1.69,0.26 +44.00,0.00,14.00,0.55,1.68,0.24 +10.10,0.00,0.00,0.52,1.65,0.23 +98.00,0.00,68.00,0.40,1.56,0.25 +30.00,0.00,0.00,1.01,1.77,0.21 +53.00,0.00,23.00,0.47,1.55,0.27 +30.00,0.00,0.00,0.33,1.48,0.27 +92.70,1.00,77.00,0.39,1.61,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.78,1.58,0.15 +2.80,0.00,0.00,0.89,1.58,0.16 +49.00,0.00,19.00,0.77,1.75,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +86.00,0.00,56.00,0.45,1.72,0.26 +93.40,1.00,71.00,0.57,1.67,0.29 +27.70,0.00,0.00,0.78,1.68,0.31 +101.00,0.00,71.00,0.52,1.65,0.26 +69.00,0.00,39.00,0.44,1.70,0.25 +87.00,0.00,57.00,0.48,1.73,0.27 +57.00,0.00,27.00,0.42,1.68,0.26 +23.50,1.00,14.00,0.68,1.53,0.20 +30.00,0.00,0.00,0.39,1.66,0.27 +107.00,0.00,77.00,0.38,1.61,0.25 +48.00,0.00,18.00,0.51,1.59,0.21 +93.00,0.00,63.00,0.36,1.66,0.31 +30.00,0.00,0.00,0.78,1.79,0.41 +81.00,0.00,51.00,0.33,1.60,0.28 +24.30,1.00,0.00,0.76,1.55,0.16 +53.00,0.00,23.00,0.30,1.55,0.30 +2.00,0.00,0.00,0.52,1.59,0.20 +19.40,0.00,0.00,0.40,1.67,0.27 +8.40,0.00,0.00,0.92,1.62,0.17 +74.00,0.00,44.00,0.40,1.80,0.38 +54.00,0.00,24.00,0.53,1.56,0.18 +37.00,0.00,7.00,0.83,1.65,0.18 +69.00,0.00,39.00,0.36,1.55,0.28 +21.50,0.00,0.00,0.76,1.54,0.20 +30.00,0.00,0.00,0.72,1.58,0.22 +55.00,0.00,25.00,0.84,1.67,0.19 +45.00,0.00,15.00,0.70,1.60,0.26 +40.00,0.00,10.00,0.69,1.54,0.17 +69.00,0.00,39.00,0.44,1.70,0.25 +4.40,0.00,0.00,0.95,1.84,0.52 +67.20,1.00,60.00,0.46,1.65,0.27 +4.10,0.00,0.00,0.88,1.67,0.25 +101.00,0.00,71.00,0.40,1.61,0.24 +32.90,1.00,18.00,0.51,1.59,0.21 +38.00,0.00,8.00,0.51,1.83,0.29 +41.00,0.00,11.00,0.67,1.78,0.24 +49.30,1.00,48.00,0.50,1.70,0.26 +47.30,1.00,33.00,0.63,1.68,0.23 +45.10,1.00,30.00,0.32,1.68,0.28 +20.50,0.00,0.00,0.88,1.70,0.19 +65.00,0.00,35.00,1.06,1.76,0.21 +28.80,0.00,0.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.64,1.69,0.30 +78.00,0.00,48.00,0.45,1.72,0.28 +43.00,0.00,13.00,0.36,1.67,0.29 +1.10,0.00,0.00,0.75,1.67,0.30 +85.00,0.00,55.00,0.46,1.54,0.27 +74.00,0.00,44.00,0.36,1.61,0.28 +26.20,0.00,0.00,0.62,1.68,0.23 +91.00,0.00,61.00,0.35,1.70,0.32 +44.00,0.00,14.00,0.44,1.53,0.27 +53.50,1.00,33.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.65,1.77,0.25 +71.60,1.00,60.00,0.56,1.67,0.32 +46.00,0.00,16.00,0.46,1.71,0.27 +30.00,0.00,0.00,0.71,1.91,0.26 +10.10,0.00,0.00,0.55,1.66,0.32 +47.00,0.00,17.00,0.56,1.68,0.23 +82.00,0.00,52.00,0.36,1.67,0.31 +48.00,0.00,18.00,0.53,1.59,0.18 +63.00,0.00,33.00,0.59,1.67,0.24 +3.50,0.00,0.00,0.32,1.71,0.29 +87.00,0.00,57.00,0.38,1.57,0.24 +46.20,1.00,31.00,0.57,1.53,0.19 +39.20,1.00,14.00,0.61,1.63,0.26 +15.70,0.00,0.00,0.32,1.60,0.30 +6.00,0.00,0.00,0.73,1.69,0.23 +30.00,0.00,0.00,0.79,1.60,0.23 +14.30,0.00,0.00,0.71,1.56,0.17 +63.00,0.00,33.00,0.68,1.74,0.41 +74.00,0.00,44.00,0.53,1.75,0.26 +19.40,1.00,0.00,0.57,1.50,0.16 +61.00,0.00,31.00,0.36,1.66,0.32 +9.10,1.00,0.00,0.70,1.55,0.19 +88.00,0.00,58.00,0.63,1.72,0.24 +30.00,0.00,0.00,0.89,1.59,0.16 +63.00,0.00,33.00,0.55,1.54,0.20 +45.80,1.00,35.00,0.34,1.63,0.28 +45.00,0.00,15.00,0.41,1.61,0.25 +43.00,0.00,13.00,0.43,1.66,0.24 +9.70,0.00,0.00,0.32,1.59,0.31 +69.00,0.00,39.00,0.57,1.68,0.23 +17.00,0.00,0.00,0.98,1.60,0.17 +10.90,0.00,0.00,0.66,1.53,0.16 +43.00,0.00,13.00,0.39,1.68,0.28 +7.20,0.00,0.00,0.36,1.61,0.25 +90.00,0.00,60.00,0.38,1.60,0.24 +50.00,0.00,20.00,0.40,1.57,0.27 +88.00,0.00,58.00,0.42,1.70,0.26 +83.00,0.00,53.00,0.63,1.70,0.24 +44.90,1.00,18.00,0.63,1.69,0.23 +8.10,0.00,0.00,0.89,1.60,0.17 +48.00,0.00,18.00,0.33,1.64,0.29 +107.00,0.00,77.00,0.39,1.61,0.24 +20.20,1.00,0.00,1.03,1.76,0.21 +86.00,0.00,56.00,0.53,1.84,0.29 +71.00,0.00,41.00,0.45,1.74,0.27 +52.00,0.00,22.00,0.81,1.75,0.25 +92.00,0.00,62.00,0.82,1.56,0.17 +19.80,1.00,10.00,0.91,1.73,0.20 +53.00,0.00,23.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.54,1.84,0.28 +71.00,0.00,41.00,0.39,1.60,0.26 +75.70,1.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,1.22,1.74,0.24 +30.00,0.00,0.00,0.34,1.60,0.31 +72.60,1.00,53.00,0.83,1.69,0.22 +14.20,0.00,0.00,0.82,1.56,0.17 +72.00,0.00,42.00,0.56,1.79,0.37 +12.10,1.00,0.00,0.84,1.80,0.48 +69.00,0.00,39.00,0.61,1.55,0.21 +12.80,0.00,0.00,0.61,1.58,0.27 +48.00,0.00,18.00,0.53,1.59,0.18 +52.00,0.00,22.00,0.37,1.64,0.27 +72.00,0.00,42.00,0.35,1.64,0.30 +40.00,0.00,10.00,0.93,1.59,0.17 +62.00,0.00,32.00,0.47,1.67,0.24 +9.70,0.00,0.00,0.74,1.55,0.21 +30.00,0.00,0.00,1.11,1.77,0.27 +45.00,0.00,15.00,0.61,1.52,0.17 +98.00,0.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.51,1.57,0.21 +66.00,0.00,36.00,0.40,1.69,0.27 +9.90,0.00,0.00,0.51,1.58,0.20 +53.00,0.00,23.00,0.45,1.70,0.26 +57.00,0.00,27.00,0.42,1.67,0.26 +53.00,0.00,23.00,0.71,1.73,0.35 +44.00,0.00,14.00,0.58,1.78,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.59,1.63,0.24 +73.00,0.00,43.00,0.39,1.66,0.27 +71.20,1.00,42.00,0.83,1.66,0.18 +56.00,0.00,26.00,0.44,1.94,0.42 +10.70,0.00,0.00,0.93,1.75,0.22 +30.00,0.00,0.00,0.41,1.67,0.26 +58.00,0.00,28.00,0.69,1.73,0.35 +48.00,0.00,18.00,0.53,1.60,0.18 +55.40,1.00,26.00,1.10,1.76,0.23 +98.00,0.00,68.00,0.36,1.63,0.30 +72.00,0.00,42.00,0.49,1.83,0.40 +73.40,1.00,67.00,0.59,1.71,0.27 +3.90,0.00,0.00,0.71,1.52,0.18 +90.00,0.00,60.00,0.40,1.58,0.23 +30.00,0.00,0.00,0.60,1.52,0.18 +46.50,1.00,30.00,0.71,1.54,0.15 +74.00,0.00,44.00,0.38,1.67,0.28 +40.00,0.00,10.00,1.00,1.68,0.20 +27.10,1.00,15.00,1.12,1.64,0.18 +34.00,0.00,4.00,0.34,1.63,0.27 +45.00,0.00,15.00,0.63,1.49,0.15 +44.00,0.00,14.00,0.47,1.71,0.25 +62.00,0.00,32.00,0.59,1.59,0.26 +59.90,1.00,31.00,0.54,1.67,0.29 +61.20,1.00,37.00,0.61,1.75,0.24 +30.00,0.00,0.00,0.98,1.74,0.25 +58.00,1.00,42.00,0.72,1.83,0.42 +62.00,1.00,52.00,0.50,1.65,0.29 +30.00,0.00,0.00,0.31,1.59,0.32 +40.20,1.00,15.00,0.41,1.70,0.27 +67.00,0.00,37.00,0.61,1.74,0.32 +30.00,0.00,0.00,0.48,1.69,0.29 +55.00,0.00,25.00,0.42,1.51,0.26 +30.00,0.00,0.00,0.54,1.54,0.20 +22.80,0.00,0.00,0.41,1.57,0.26 +30.00,0.00,0.00,0.45,1.70,0.26 +87.00,0.00,57.00,0.44,1.69,0.25 +48.00,0.00,18.00,0.51,1.59,0.21 +30.00,0.00,0.00,0.37,1.57,0.28 +50.00,0.00,20.00,0.57,1.62,0.22 +31.00,0.00,1.00,0.39,1.66,0.26 +104.00,0.00,74.00,0.30,1.57,0.29 +30.00,0.00,0.00,0.98,1.76,0.21 +80.00,0.00,50.00,0.58,1.59,0.22 +29.30,0.00,0.00,0.34,1.56,0.26 +13.40,0.00,0.00,0.38,1.68,0.28 +11.00,0.00,0.00,0.55,1.82,0.28 +61.00,0.00,31.00,0.70,1.74,0.36 +31.00,0.00,1.00,0.85,1.71,0.22 +30.00,0.00,0.00,0.37,1.56,0.28 +76.10,1.00,52.00,0.50,1.63,0.26 +30.00,0.00,0.00,0.31,1.58,0.31 +59.00,0.00,29.00,0.65,1.72,0.32 +30.00,0.00,0.00,0.96,1.76,0.21 +14.80,0.00,0.00,0.65,1.51,0.18 +68.00,0.00,38.00,0.73,1.61,0.27 +92.00,0.00,62.00,0.66,1.71,0.24 +29.20,0.00,0.00,0.82,1.80,0.40 +60.00,0.00,30.00,0.37,1.67,0.30 +85.00,0.00,55.00,0.48,1.61,0.27 +57.00,0.00,27.00,0.42,1.68,0.26 +47.90,1.00,20.00,0.43,1.60,0.24 +30.00,0.00,0.00,0.85,1.67,0.18 +61.00,0.00,31.00,0.34,1.60,0.25 +61.00,0.00,31.00,0.34,1.60,0.25 +50.00,0.00,20.00,0.54,1.56,0.20 +42.00,0.00,12.00,0.47,1.60,0.26 +10.80,0.00,0.00,0.63,1.51,0.17 +9.10,0.00,0.00,0.99,1.68,0.20 +11.30,0.00,0.00,1.07,1.76,0.22 +38.00,0.00,8.00,0.51,1.83,0.29 +28.10,1.00,17.00,0.53,1.66,0.24 +47.00,0.00,17.00,0.65,1.56,0.22 +44.00,0.00,14.00,0.51,1.61,0.21 +69.00,0.00,39.00,0.44,1.70,0.25 +58.00,0.00,28.00,0.34,1.56,0.26 +60.00,0.00,30.00,0.32,1.65,0.28 +44.00,0.00,14.00,0.44,1.70,0.25 +49.00,0.00,19.00,0.70,1.53,0.19 +34.00,0.00,4.00,0.33,1.75,0.28 +75.30,1.00,56.00,0.44,1.71,0.25 +85.00,0.00,55.00,0.39,1.58,0.26 +84.00,0.00,54.00,0.47,1.69,0.30 +51.60,1.00,39.00,0.61,1.55,0.21 +80.00,0.00,50.00,0.38,1.66,0.27 +1.70,0.00,0.00,0.48,1.62,0.28 +61.00,0.00,31.00,0.43,1.63,0.24 +30.00,0.00,0.00,0.32,1.47,0.27 +90.00,0.00,60.00,0.57,1.68,0.34 +30.00,0.00,0.00,0.40,1.68,0.28 +55.00,0.00,25.00,0.44,1.62,0.25 +14.50,0.00,0.00,0.61,1.52,0.17 +51.00,0.00,21.00,0.47,1.72,0.26 +15.50,0.00,0.00,0.49,1.64,0.22 +30.00,0.00,0.00,0.60,1.69,0.36 +98.00,0.00,68.00,0.32,1.60,0.31 +29.40,0.00,0.00,0.61,1.68,0.23 +62.00,0.00,32.00,0.39,1.69,0.28 +44.10,1.00,22.00,0.41,1.61,0.25 +1.60,0.00,0.00,0.48,1.61,0.27 +30.00,0.00,0.00,0.37,1.55,0.28 +33.90,1.00,26.00,0.53,1.66,0.23 +67.00,0.00,37.00,0.58,1.73,0.31 +74.00,0.00,44.00,0.36,1.65,0.31 +30.00,0.00,0.00,0.63,1.54,0.20 +40.00,0.00,10.00,0.54,1.55,0.20 +82.00,0.00,52.00,0.47,1.67,0.25 +63.00,0.00,33.00,0.46,1.69,0.26 +11.10,0.00,0.00,0.94,1.66,0.19 +44.00,0.00,14.00,0.43,1.63,0.26 +30.00,0.00,0.00,0.74,1.64,0.24 +57.50,1.00,31.00,0.65,1.71,0.34 +50.00,0.00,20.00,0.68,1.74,0.41 +24.80,0.00,0.00,0.68,1.54,0.21 +30.00,0.00,0.00,0.92,1.60,0.17 +37.00,0.00,7.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.64,1.51,0.17 +65.00,0.00,35.00,0.97,1.76,0.21 +3.00,0.00,0.00,1.02,1.78,0.25 +92.00,0.00,62.00,0.30,1.57,0.30 +30.00,0.00,0.00,0.32,1.59,0.31 +81.00,0.00,51.00,0.32,1.61,0.29 +48.00,0.00,18.00,0.65,1.49,0.16 +87.00,0.00,57.00,0.50,1.77,0.28 +10.20,0.00,0.00,0.53,1.59,0.19 +45.00,0.00,15.00,0.74,1.64,0.27 +45.00,0.00,15.00,0.44,1.66,0.25 +48.00,0.00,18.00,0.42,1.67,0.26 +56.00,0.00,26.00,0.54,1.66,0.32 +69.00,0.00,39.00,0.60,1.56,0.20 +7.60,0.00,0.00,0.48,1.67,0.24 +101.00,0.00,71.00,0.51,1.79,0.28 +55.00,0.00,25.00,0.45,1.62,0.25 +30.00,0.00,0.00,0.61,1.59,0.27 +69.00,0.00,39.00,0.59,1.57,0.20 +85.00,0.00,55.00,0.38,1.55,0.24 +37.00,0.00,7.00,0.61,1.60,0.23 +98.00,0.00,68.00,0.40,1.65,0.26 +83.60,1.00,71.00,0.42,1.66,0.25 +20.30,0.00,0.00,0.49,1.75,0.28 +22.90,1.00,21.00,0.64,1.54,0.16 +78.00,0.00,48.00,0.50,1.77,0.27 +50.00,0.00,20.00,0.44,1.65,0.25 +77.40,1.00,53.00,0.60,1.68,0.23 +37.00,0.00,7.00,0.75,1.67,0.29 +4.80,0.00,0.00,0.50,1.62,0.26 +72.00,0.00,42.00,0.35,1.57,0.26 +41.00,0.00,11.00,0.54,1.66,0.26 +0.10,0.00,0.00,1.19,1.74,0.24 +31.10,1.00,14.00,0.61,1.70,0.30 +72.00,0.00,42.00,0.42,1.86,0.40 +72.00,0.00,42.00,0.48,1.83,0.40 +28.80,0.00,0.00,1.01,1.77,0.21 +22.30,1.00,0.00,0.92,1.70,0.24 +46.00,0.00,16.00,0.33,1.46,0.26 +63.00,0.00,33.00,0.45,1.69,0.26 +43.00,0.00,13.00,0.54,1.53,0.17 +30.00,0.00,0.00,0.89,1.67,0.25 +69.00,0.00,39.00,0.60,1.56,0.20 +22.80,0.00,0.00,0.46,1.65,0.27 +52.00,0.00,22.00,0.38,1.68,0.28 +62.30,1.00,41.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.69,1.77,0.36 +39.00,0.00,9.00,0.33,1.52,0.27 +72.00,0.00,42.00,0.43,1.71,0.27 +53.00,0.00,23.00,0.46,1.69,0.26 +45.00,0.00,15.00,0.64,1.50,0.15 +30.00,0.00,0.00,0.58,1.58,0.22 +34.40,1.00,28.00,0.67,1.74,0.34 +46.10,1.00,26.00,0.52,1.77,0.28 +40.00,0.00,10.00,0.86,1.63,0.18 +44.00,0.00,14.00,0.67,1.52,0.18 +58.00,0.00,28.00,0.40,1.58,0.27 +17.40,1.00,0.00,0.34,1.59,0.30 +22.10,0.00,0.00,0.88,1.70,0.19 +28.30,1.00,10.00,0.73,1.80,0.44 +72.00,0.00,42.00,0.55,1.78,0.37 +53.00,0.00,23.00,0.30,1.55,0.29 +37.20,1.00,11.00,0.61,1.70,0.38 +44.00,0.00,14.00,0.44,1.72,0.27 +53.00,0.00,23.00,0.46,1.68,0.26 +37.80,1.00,33.00,0.89,1.58,0.21 +72.00,0.00,42.00,0.43,1.71,0.27 +43.00,0.00,13.00,0.39,1.68,0.28 +35.00,0.00,5.00,0.65,1.69,0.23 +10.00,0.00,0.00,0.79,1.59,0.16 +78.00,0.00,48.00,0.45,1.73,0.28 +82.00,0.00,52.00,0.47,1.69,0.26 +26.00,0.00,0.00,0.39,1.69,0.28 +65.00,0.00,35.00,0.31,1.59,0.30 +15.60,0.00,0.00,0.54,1.60,0.21 +51.00,0.00,21.00,0.69,1.53,0.16 +42.00,0.00,12.00,0.95,1.64,0.17 +30.00,0.00,0.00,0.70,1.67,0.33 +1.50,0.00,0.00,0.76,1.59,0.23 +13.30,0.00,0.00,0.81,1.67,0.24 +99.00,0.00,69.00,0.57,1.51,0.17 +66.00,0.00,36.00,0.42,1.87,0.40 +4.00,0.00,0.00,0.97,1.67,0.20 +11.20,0.00,0.00,0.73,1.82,0.43 +30.00,0.00,0.00,0.62,1.59,0.27 +65.00,0.00,35.00,0.32,1.59,0.31 +59.90,1.00,35.00,0.34,1.61,0.29 +53.00,0.00,23.00,0.50,1.82,0.28 +90.00,0.00,60.00,0.56,1.72,0.31 +16.60,0.00,0.00,0.78,1.58,0.15 +27.30,0.00,0.00,0.33,1.60,0.27 +83.00,0.00,53.00,0.74,1.60,0.28 +13.30,0.00,0.00,0.77,1.76,0.37 +51.00,0.00,21.00,0.40,1.67,0.26 +30.00,0.00,0.00,0.81,1.58,0.17 +9.80,0.00,0.00,0.62,1.52,0.19 +18.50,0.00,0.00,0.61,1.69,0.23 +10.10,0.00,0.00,0.76,1.69,0.23 +38.90,1.00,17.00,0.83,1.59,0.16 +15.80,0.00,0.00,0.54,1.53,0.17 +53.00,0.00,23.00,0.31,1.56,0.31 +30.00,0.00,0.00,0.32,1.53,0.27 +67.00,0.00,37.00,0.88,1.58,0.16 +63.00,0.00,33.00,0.56,1.54,0.20 +52.00,0.00,22.00,0.44,1.72,0.27 +31.00,0.00,1.00,0.89,1.72,0.20 +13.60,0.00,0.00,0.39,1.78,0.37 +72.00,0.00,42.00,0.56,1.78,0.37 +48.00,0.00,18.00,0.35,1.64,0.32 +64.00,0.00,34.00,0.40,1.70,0.27 +60.00,0.00,30.00,0.59,1.64,0.23 +58.60,1.00,39.00,0.45,1.69,0.25 +87.00,0.00,57.00,0.42,1.67,0.25 +75.00,0.00,45.00,0.33,1.59,0.26 +44.00,0.00,14.00,0.61,1.62,0.25 +58.00,0.00,28.00,0.35,1.54,0.28 +14.00,1.00,10.00,1.11,1.72,0.22 +92.00,0.00,62.00,0.42,1.72,0.27 +28.10,0.00,0.00,0.51,1.69,0.28 +44.00,1.00,35.00,0.32,1.60,0.30 +62.00,0.00,32.00,0.35,1.63,0.32 +78.00,0.00,48.00,0.49,1.78,0.28 +30.00,0.00,0.00,0.75,1.79,0.39 +18.10,0.00,0.00,1.31,1.69,0.25 +63.00,0.00,33.00,0.51,1.65,0.24 +20.90,0.00,0.00,0.49,1.82,0.40 +86.00,0.00,56.00,0.58,1.71,0.24 +34.60,1.00,14.00,0.44,1.53,0.27 +51.30,1.00,51.00,0.47,1.64,0.27 +43.00,0.00,13.00,0.68,1.74,0.41 +1.40,0.00,0.00,1.08,1.75,0.22 +30.00,0.00,0.00,0.69,1.82,0.25 +50.00,0.00,20.00,0.55,1.60,0.22 +56.00,0.00,26.00,0.56,1.67,0.33 +65.00,0.00,35.00,0.34,1.65,0.28 +8.60,0.00,0.00,0.74,1.67,0.31 +40.50,1.00,31.00,0.88,1.70,0.19 +5.10,0.00,0.00,0.71,1.58,0.22 +30.00,0.00,0.00,0.77,1.78,0.44 +66.00,0.00,36.00,0.55,1.70,0.24 +44.00,0.00,14.00,0.61,1.62,0.26 +74.00,0.00,44.00,0.53,1.80,0.28 +50.00,0.00,20.00,0.48,1.67,0.24 +65.00,0.00,35.00,0.34,1.62,0.29 +51.00,0.00,21.00,0.47,1.72,0.26 +74.00,0.00,44.00,0.33,1.60,0.28 +106.00,0.00,76.00,0.33,1.55,0.26 +9.60,0.00,0.00,0.74,1.76,0.36 +33.00,0.00,3.00,0.32,1.66,0.32 +68.20,1.00,57.00,0.68,1.61,0.27 +10.50,0.00,0.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.59,1.63,0.24 +2.10,0.00,0.00,0.53,1.70,0.24 +92.00,0.00,62.00,0.31,1.59,0.31 +67.00,1.00,41.00,0.38,1.59,0.26 +10.20,1.00,0.00,1.11,1.76,0.24 +106.00,0.00,76.00,0.47,1.64,0.26 +78.00,0.00,48.00,0.50,1.70,0.26 +30.00,0.00,0.00,0.40,1.58,0.24 +58.00,0.00,28.00,0.38,1.61,0.25 +13.60,0.00,0.00,0.38,1.68,0.28 +44.00,0.00,14.00,0.44,1.71,0.26 +87.00,0.00,57.00,0.45,1.70,0.26 +85.00,0.00,55.00,0.44,1.55,0.27 +47.00,0.00,17.00,0.51,1.58,0.21 +30.00,0.00,0.00,0.74,1.79,0.39 +44.00,0.00,14.00,0.46,1.60,0.23 +30.00,0.00,0.00,0.81,1.79,0.41 +48.00,0.00,18.00,0.53,1.58,0.18 +48.00,0.00,18.00,0.94,1.87,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +65.90,1.00,58.00,0.93,1.61,0.17 +66.00,0.00,36.00,0.43,1.72,0.34 +49.00,0.00,19.00,0.51,1.65,0.22 +81.00,0.00,51.00,0.47,1.64,0.26 +51.00,0.00,21.00,0.88,1.61,0.16 +4.80,0.00,0.00,0.55,1.54,0.20 +30.00,0.00,0.00,0.32,1.59,0.32 +11.10,1.00,0.00,1.21,1.79,0.30 +69.00,0.00,39.00,0.45,1.69,0.25 +38.00,0.00,8.00,0.52,1.55,0.18 +10.80,0.00,0.00,0.66,1.54,0.21 +83.00,0.00,53.00,0.52,1.57,0.20 +87.00,0.00,57.00,0.59,1.62,0.25 +25.80,0.00,0.00,0.83,1.69,0.22 +69.00,0.00,39.00,0.60,1.56,0.20 +98.00,0.00,68.00,0.34,1.61,0.31 +50.00,0.00,20.00,0.48,1.64,0.23 +74.00,0.00,44.00,0.32,1.60,0.28 +106.00,0.00,76.00,0.34,1.55,0.25 +51.00,0.00,21.00,0.43,1.73,0.27 +38.00,0.00,8.00,0.52,1.55,0.18 +41.80,1.00,18.00,0.54,1.54,0.18 +69.00,0.00,39.00,0.57,1.68,0.23 +30.00,0.00,0.00,0.47,1.60,0.26 +30.00,0.00,0.00,0.47,1.74,0.28 +47.00,0.00,17.00,0.38,1.67,0.29 +53.00,1.00,41.00,0.62,1.68,0.23 +56.00,0.00,26.00,0.53,1.65,0.30 +30.00,0.00,0.00,1.13,1.77,0.27 +30.00,0.00,0.00,0.89,1.72,0.26 +53.00,0.00,23.00,0.59,1.70,0.27 +45.00,0.00,15.00,0.63,1.50,0.15 +17.60,0.00,0.00,0.58,1.68,0.30 +31.70,1.00,17.00,0.76,1.53,0.17 +30.00,0.00,0.00,0.66,1.52,0.19 +52.00,0.00,22.00,0.79,1.66,0.29 +4.20,0.00,0.00,1.05,1.79,0.28 +26.20,1.00,10.00,0.43,1.66,0.25 +72.00,0.00,42.00,0.35,1.64,0.29 +9.50,0.00,0.00,0.82,1.58,0.16 +65.00,0.00,35.00,0.32,1.59,0.31 +74.00,0.00,44.00,0.37,1.66,0.29 +63.00,0.00,33.00,0.87,1.57,0.21 +91.00,0.00,61.00,0.35,1.60,0.27 +60.00,0.00,30.00,0.59,1.63,0.23 +42.30,1.00,39.00,0.34,1.55,0.27 +10.60,0.00,0.00,0.93,1.87,0.26 +66.00,0.00,36.00,0.42,1.87,0.40 +59.00,0.00,29.00,0.41,1.67,0.26 +4.40,0.00,0.00,1.18,1.91,0.57 +24.50,0.00,0.00,0.58,1.57,0.26 +58.00,0.00,28.00,0.38,1.55,0.28 +44.00,0.00,14.00,0.40,1.51,0.26 +49.00,0.00,19.00,0.33,1.71,0.28 +72.00,0.00,42.00,0.42,1.86,0.40 +5.50,0.00,0.00,0.71,1.55,0.15 +25.90,0.00,0.00,1.14,1.64,0.20 +74.00,0.00,44.00,0.33,1.64,0.29 +83.00,0.00,53.00,0.62,1.69,0.24 +48.00,0.00,18.00,0.53,1.56,0.18 +76.00,0.00,46.00,0.31,1.61,0.30 +47.00,0.00,17.00,0.52,1.65,0.23 +30.00,0.00,0.00,0.37,1.56,0.28 +69.00,0.00,39.00,0.48,1.69,0.29 +57.00,0.00,27.00,0.42,1.67,0.26 +20.30,1.00,20.00,0.67,1.77,0.25 +22.30,0.00,0.00,0.37,1.64,0.27 +11.50,1.00,0.00,1.24,1.74,0.25 +44.00,0.00,14.00,0.42,1.70,0.26 +61.20,1.00,55.00,0.35,1.55,0.27 +30.00,0.00,0.00,0.79,1.57,0.21 +53.00,0.00,23.00,0.67,1.72,0.33 +41.00,0.00,11.00,0.56,1.67,0.27 +63.00,0.00,33.00,0.62,1.61,0.23 +0.90,0.00,0.00,0.66,1.61,0.28 +55.00,0.00,25.00,0.52,1.65,0.22 +107.00,0.00,77.00,0.39,1.61,0.24 +39.00,0.00,9.00,0.41,1.56,0.28 +52.00,0.00,22.00,0.43,1.69,0.25 +30.60,1.00,22.00,0.63,1.55,0.21 +53.00,0.00,23.00,0.70,1.73,0.34 +30.00,0.00,0.00,0.87,1.81,0.50 +27.40,0.00,0.00,0.53,1.71,0.24 +7.90,0.00,0.00,0.69,1.80,0.39 +58.00,0.00,28.00,0.35,1.57,0.25 +44.00,0.00,14.00,0.66,1.94,0.25 +52.00,0.00,22.00,0.55,1.58,0.25 +53.00,0.00,23.00,0.69,1.73,0.34 +58.00,0.00,28.00,0.35,1.60,0.27 +88.00,1.00,71.00,0.64,1.56,0.21 +101.00,0.00,71.00,0.39,1.61,0.24 +69.30,1.00,42.00,0.50,1.58,0.21 +30.00,0.00,0.00,0.48,1.65,0.27 +31.00,0.00,1.00,0.63,1.60,0.26 +38.20,1.00,21.00,0.84,1.60,0.16 +78.00,0.00,48.00,0.52,1.80,0.29 +44.00,0.00,14.00,0.43,1.71,0.26 +90.00,0.00,60.00,0.40,1.66,0.26 +99.00,0.00,69.00,0.59,1.50,0.17 +106.00,0.00,76.00,0.47,1.64,0.26 +30.00,0.00,0.00,0.70,1.66,0.34 +50.00,0.00,20.00,0.58,1.53,0.19 +1.70,0.00,0.00,0.77,1.79,0.39 +88.50,1.00,62.00,0.67,1.71,0.24 +39.10,1.00,17.00,0.63,1.55,0.22 +2.80,0.00,0.00,0.48,1.73,0.27 +13.90,0.00,0.00,0.39,1.55,0.24 +37.00,0.00,7.00,0.76,1.67,0.29 +23.00,0.00,0.00,0.48,1.77,0.28 +6.90,0.00,0.00,0.35,1.63,0.30 +45.00,0.00,15.00,0.66,1.57,0.23 +40.00,0.00,10.00,0.94,1.60,0.17 +3.90,0.00,0.00,0.88,1.82,0.50 +41.20,1.00,35.00,0.88,1.71,0.20 +58.00,0.00,28.00,0.34,1.56,0.26 +68.00,0.00,38.00,0.45,1.66,0.26 +62.00,0.00,32.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.94,1.75,0.21 +44.00,0.00,14.00,0.63,1.84,0.24 +34.00,0.00,4.00,0.34,1.64,0.27 +30.00,0.00,0.00,0.99,1.74,0.25 +29.80,0.00,0.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.34,1.50,0.27 +83.00,0.00,53.00,0.51,1.57,0.20 +80.00,0.00,50.00,0.38,1.66,0.28 +58.00,0.00,28.00,0.34,1.59,0.27 +53.00,0.00,23.00,0.71,1.58,0.22 +61.00,0.00,31.00,0.71,1.52,0.18 +99.00,0.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.45,1.73,0.28 +49.00,0.00,19.00,0.71,1.52,0.18 +79.50,1.00,71.00,0.38,1.55,0.25 +68.00,0.00,38.00,0.71,1.58,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +30.00,0.00,0.00,0.34,1.61,0.31 +30.00,0.00,0.00,0.55,1.65,0.22 +38.90,1.00,28.00,0.35,1.55,0.28 +50.00,0.00,20.00,0.40,1.59,0.24 +59.00,0.00,29.00,0.61,1.58,0.22 +58.00,0.00,28.00,0.47,1.68,0.25 +6.00,0.00,0.00,0.92,1.73,0.24 +66.00,0.00,36.00,0.53,1.69,0.23 +43.00,0.00,13.00,0.47,1.66,0.25 +45.00,0.00,15.00,0.61,1.52,0.17 +9.10,0.00,0.00,0.41,1.63,0.24 +85.00,0.00,55.00,0.36,1.55,0.27 +59.00,0.00,29.00,0.53,1.65,0.22 +48.00,0.00,18.00,0.42,1.67,0.26 +28.70,1.00,1.00,0.47,1.66,0.25 +51.00,0.00,21.00,0.80,1.59,0.16 +30.00,0.00,0.00,0.55,1.63,0.24 +44.00,0.00,14.00,0.63,1.71,0.31 +44.00,1.00,33.00,0.53,1.70,0.24 +86.00,0.00,56.00,0.58,1.71,0.24 +30.00,0.00,0.00,0.70,1.55,0.19 +8.30,0.00,0.00,0.53,1.67,0.29 +36.20,1.00,13.00,0.44,1.71,0.26 +19.20,1.00,15.00,0.66,1.57,0.23 +47.00,0.00,17.00,0.45,1.72,0.28 +90.00,0.00,60.00,0.38,1.57,0.23 +46.00,0.00,16.00,0.87,1.82,0.52 +72.00,0.00,42.00,0.35,1.58,0.25 +18.20,0.00,0.00,0.45,1.69,0.26 +40.00,0.00,10.00,0.76,1.79,0.47 +56.00,0.00,26.00,0.54,1.66,0.31 +65.00,0.00,35.00,0.34,1.60,0.29 +12.10,1.00,0.00,1.21,1.67,0.20 +85.00,0.00,55.00,0.38,1.55,0.24 +76.00,0.00,46.00,0.31,1.61,0.29 +20.20,1.00,0.00,1.21,1.76,0.23 +88.00,0.00,58.00,0.54,1.85,0.28 +4.70,0.00,0.00,0.59,1.70,0.27 +28.60,1.00,0.00,0.85,1.67,0.18 +72.00,0.00,42.00,0.57,1.79,0.37 +73.00,1.00,50.00,0.59,1.58,0.21 +86.00,0.00,56.00,0.54,1.71,0.25 +74.00,0.00,44.00,0.53,1.76,0.26 +45.00,0.00,15.00,0.40,1.68,0.28 +43.00,0.00,13.00,0.45,1.66,0.23 +44.00,0.00,14.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.59,1.57,0.20 +44.00,0.00,14.00,0.47,1.76,0.28 +30.00,0.00,0.00,0.82,1.60,0.16 +40.00,0.00,10.00,0.36,1.57,0.24 +70.60,1.00,57.00,0.45,1.69,0.27 +23.00,1.00,0.00,0.86,1.69,0.19 +42.00,0.00,12.00,0.52,1.59,0.19 +41.00,0.00,11.00,0.66,1.77,0.25 +51.00,0.00,21.00,0.44,1.73,0.27 +101.00,0.00,71.00,0.39,1.58,0.27 +69.00,0.00,39.00,0.57,1.68,0.23 +44.00,0.00,14.00,0.44,1.71,0.25 +101.00,0.00,71.00,0.52,1.81,0.29 +40.00,0.00,10.00,0.44,1.67,0.25 +70.00,0.00,40.00,0.38,1.59,0.24 +75.00,0.00,45.00,0.65,1.72,0.40 +44.10,1.00,34.00,0.38,1.58,0.28 +91.00,0.00,61.00,0.35,1.59,0.28 +69.00,0.00,39.00,0.47,1.67,0.24 +33.40,1.00,23.00,0.69,1.73,0.34 +1.70,0.00,0.00,0.67,1.71,0.24 +44.00,0.00,14.00,0.57,1.68,0.27 +33.20,1.00,31.00,0.36,1.66,0.32 +55.00,0.00,25.00,0.60,1.57,0.23 +92.00,0.00,62.00,0.31,1.58,0.31 +69.80,1.00,53.00,0.56,1.66,0.22 +90.00,0.00,60.00,0.45,1.62,0.26 +50.00,0.00,20.00,0.48,1.66,0.23 +47.80,1.00,36.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.37,1.55,0.27 +69.00,0.00,39.00,0.42,1.63,0.27 +12.10,0.00,0.00,0.52,1.70,0.28 +101.00,0.00,71.00,0.35,1.50,0.27 +30.00,0.00,0.00,0.76,1.79,0.39 +78.40,1.00,53.00,0.40,1.67,0.27 +32.50,1.00,26.00,1.08,1.76,0.23 +30.00,0.00,0.00,0.74,1.80,0.43 +30.00,0.00,0.00,0.75,1.78,0.43 +87.00,0.00,57.00,0.36,1.58,0.26 +44.00,0.00,14.00,0.34,1.61,0.32 +92.00,0.00,62.00,0.44,1.73,0.27 +69.00,0.00,39.00,0.47,1.68,0.29 +30.00,0.00,0.00,0.50,1.64,0.27 +13.70,0.00,0.00,1.05,1.76,0.21 +31.00,0.00,1.00,0.33,1.56,0.26 +30.00,0.00,0.00,0.54,1.56,0.18 +53.00,0.00,23.00,0.73,1.60,0.23 +90.00,0.00,60.00,0.49,1.68,0.27 +54.00,0.00,24.00,0.50,1.58,0.20 +7.00,0.00,0.00,0.39,1.61,0.25 +13.40,0.00,0.00,0.58,1.72,0.24 +26.40,1.00,0.00,1.15,1.76,0.22 +66.00,0.00,36.00,0.47,1.67,0.26 +30.00,0.00,0.00,0.31,1.52,0.27 +63.00,0.00,33.00,0.44,1.70,0.27 +70.00,0.00,40.00,0.53,1.69,0.23 +48.00,0.00,18.00,0.35,1.65,0.32 +42.00,0.00,12.00,0.34,1.62,0.27 +97.00,0.00,67.00,0.47,1.66,0.25 +78.00,0.00,48.00,0.47,1.75,0.28 +79.80,1.00,53.00,0.52,1.58,0.20 +50.00,0.00,20.00,0.55,1.55,0.20 +70.00,0.00,40.00,0.40,1.58,0.27 +45.00,0.00,15.00,1.02,1.62,0.17 +30.00,0.00,0.00,0.58,1.54,0.17 +83.00,0.00,53.00,0.77,1.64,0.29 +98.00,0.00,68.00,0.39,1.65,0.26 +30.00,0.00,0.00,0.63,1.53,0.16 +86.00,0.00,56.00,0.43,1.72,0.26 +45.00,0.00,15.00,1.00,1.61,0.17 +54.00,0.00,24.00,0.53,1.57,0.18 +49.00,0.00,19.00,0.79,1.65,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +37.70,1.00,19.00,0.72,1.51,0.18 +63.00,0.00,33.00,0.42,1.70,0.27 +58.00,0.00,28.00,0.42,1.56,0.27 +63.00,0.00,33.00,0.42,1.70,0.28 +58.30,1.00,33.00,0.71,1.55,0.20 +7.50,0.00,0.00,0.79,1.57,0.16 +45.00,0.00,15.00,0.41,1.61,0.25 +30.00,1.00,0.00,0.40,1.56,0.28 +29.60,0.00,0.00,0.33,1.60,0.28 +67.30,1.00,42.00,0.43,1.71,0.27 +30.00,0.00,0.00,1.05,1.76,0.21 +69.00,0.00,39.00,0.43,1.71,0.26 +45.00,0.00,15.00,0.61,1.54,0.21 +32.70,1.00,10.00,0.95,1.60,0.17 +27.40,0.00,0.00,0.42,1.67,0.26 +50.00,0.00,20.00,0.46,1.66,0.25 +37.00,0.00,7.00,0.57,1.54,0.20 +30.00,0.00,0.00,1.01,1.76,0.25 +22.20,0.00,0.00,0.37,1.55,0.28 +25.20,1.00,0.00,0.70,1.66,0.34 +80.00,0.00,50.00,0.60,1.62,0.22 +82.00,0.00,52.00,0.50,1.65,0.29 +28.90,0.00,0.00,0.55,1.67,0.23 +92.00,0.00,62.00,0.43,1.73,0.27 +69.00,0.00,39.00,0.60,1.55,0.20 +39.80,1.00,33.00,0.62,1.68,0.23 +37.00,0.00,7.00,0.52,1.56,0.19 +30.00,0.00,0.00,0.66,1.53,0.19 +69.00,0.00,39.00,0.57,1.68,0.23 +3.00,0.00,0.00,0.80,1.66,0.25 +15.60,1.00,0.00,0.76,1.59,0.16 +37.90,1.00,18.00,0.76,1.69,0.23 +18.90,0.00,0.00,0.53,1.66,0.24 +44.00,0.00,14.00,0.66,1.57,0.23 +44.00,0.00,14.00,0.47,1.76,0.27 +30.00,0.00,0.00,0.46,1.69,0.27 +69.00,0.00,39.00,0.44,1.70,0.25 +30.00,0.00,0.00,0.75,1.56,0.15 +2.30,0.00,0.00,1.14,1.77,0.27 +15.40,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.59,1.53,0.17 +30.00,0.00,0.00,0.59,1.62,0.25 +13.90,0.00,0.00,0.33,1.67,0.27 +20.00,0.00,0.00,0.43,1.72,0.26 +71.00,0.00,41.00,0.62,1.49,0.15 +83.20,1.00,71.00,0.37,1.55,0.24 +76.00,0.00,46.00,0.70,1.69,0.22 +92.00,0.00,62.00,0.39,1.68,0.28 +101.00,0.00,71.00,0.38,1.57,0.24 +59.00,0.00,29.00,0.38,1.67,0.30 +49.00,0.00,19.00,0.51,1.64,0.22 +1.30,0.00,0.00,0.62,1.60,0.23 +58.00,0.00,28.00,0.31,1.70,0.29 +93.00,1.00,71.00,0.43,1.70,0.26 +53.00,0.00,23.00,0.46,1.69,0.26 +1.00,0.00,0.00,0.74,1.60,0.28 +72.00,0.00,42.00,0.68,1.75,0.35 +4.50,0.00,0.00,1.47,1.72,0.27 +51.00,0.00,21.00,0.53,1.66,0.29 +31.20,1.00,10.00,0.91,1.73,0.20 +87.00,0.00,57.00,0.37,1.57,0.25 +59.00,0.00,29.00,0.41,1.68,0.27 +71.80,1.00,50.00,0.59,1.60,0.22 +73.00,0.00,43.00,0.45,1.75,0.28 +26.20,0.00,0.00,1.04,1.78,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +66.00,0.00,36.00,0.59,1.73,0.24 +72.00,0.00,42.00,0.35,1.58,0.26 +43.30,1.00,33.00,0.32,1.60,0.29 +44.00,0.00,14.00,0.68,1.53,0.19 +101.00,0.00,71.00,0.51,1.63,0.26 +17.10,0.00,0.00,0.64,1.56,0.22 +44.00,0.00,14.00,0.47,1.75,0.28 +84.00,0.00,54.00,0.45,1.68,0.30 +66.00,0.00,36.00,0.35,1.59,0.28 +42.30,1.00,14.00,0.50,1.61,0.21 +53.00,0.00,23.00,0.36,1.62,0.28 +69.00,0.00,39.00,0.43,1.57,0.25 +27.30,0.00,0.00,0.61,1.69,0.23 +88.00,0.00,58.00,0.62,1.68,0.23 +65.00,0.00,35.00,0.32,1.60,0.31 +91.00,0.00,61.00,0.39,1.69,0.28 +13.80,0.00,0.00,0.45,1.68,0.27 +69.00,0.00,39.00,0.59,1.57,0.20 +14.00,0.00,0.00,0.61,1.75,0.33 +49.00,0.00,19.00,0.73,1.52,0.18 +56.90,1.00,39.00,0.54,1.55,0.18 +44.00,0.00,14.00,0.44,1.53,0.27 +72.50,1.00,51.00,0.47,1.63,0.26 +78.00,0.00,48.00,0.50,1.70,0.26 +104.00,0.00,74.00,0.31,1.58,0.29 +22.70,0.00,0.00,0.68,1.56,0.22 +62.40,1.00,33.00,0.42,1.70,0.27 +30.00,0.00,0.00,0.57,1.56,0.18 +9.40,0.00,0.00,0.70,1.74,0.36 +87.00,1.00,59.00,0.61,1.58,0.27 +93.80,1.00,68.00,0.53,1.56,0.18 +44.00,0.00,14.00,0.55,1.67,0.24 +71.00,0.00,41.00,0.87,1.67,0.25 +41.00,0.00,11.00,0.46,1.73,0.28 +51.00,0.00,21.00,0.39,1.66,0.27 +30.00,0.00,0.00,0.77,1.63,0.25 +30.00,0.00,0.00,0.78,1.60,0.23 +52.00,0.00,22.00,0.44,1.73,0.28 +19.00,0.00,0.00,1.09,1.63,0.19 +43.00,0.00,13.00,0.54,1.53,0.16 +95.00,1.00,68.00,0.39,1.64,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +18.90,0.00,0.00,0.61,1.68,0.23 +61.00,0.00,31.00,0.61,1.70,0.33 +12.90,0.00,0.00,0.56,1.72,0.30 +63.00,0.00,33.00,0.58,1.57,0.22 +50.00,0.00,20.00,0.36,1.68,0.32 +91.00,0.00,61.00,0.35,1.68,0.32 +72.00,0.00,42.00,0.73,1.83,0.43 +83.00,0.00,53.00,0.67,1.91,0.25 +49.00,0.00,19.00,0.69,1.75,0.42 +30.00,0.00,0.00,0.61,1.76,0.24 +30.00,0.00,0.00,1.06,1.75,0.21 +63.00,0.00,33.00,0.51,1.69,0.25 +63.00,0.00,33.00,0.50,1.65,0.24 +34.00,0.00,4.00,0.32,1.74,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +74.60,1.00,60.00,0.58,1.73,0.31 +45.90,1.00,36.00,0.40,1.69,0.27 +48.00,0.00,18.00,0.83,1.90,0.26 +8.80,0.00,0.00,0.43,1.67,0.27 +41.30,1.00,16.00,0.68,1.61,0.28 +41.00,0.00,11.00,0.41,1.65,0.25 +50.00,0.00,20.00,0.48,1.67,0.24 +44.00,0.00,14.00,0.59,1.78,0.26 +31.00,0.00,1.00,0.60,1.60,0.26 +31.00,0.00,1.00,0.86,1.71,0.21 +64.00,0.00,34.00,0.35,1.62,0.30 +0.70,0.00,0.00,0.63,1.53,0.16 +54.00,0.00,24.00,0.44,1.68,0.28 +66.00,0.00,36.00,0.50,1.66,0.23 +47.00,0.00,17.00,0.33,1.53,0.28 +68.60,1.00,55.00,0.38,1.55,0.24 +72.00,0.00,42.00,0.35,1.59,0.26 +83.00,0.00,53.00,0.41,1.67,0.26 +88.00,0.00,58.00,0.57,1.75,0.25 +69.00,0.00,39.00,0.59,1.57,0.20 +22.50,0.00,0.00,0.69,1.77,0.25 +72.00,0.00,42.00,0.55,1.70,0.23 +50.00,0.00,20.00,0.55,1.54,0.20 +8.70,0.00,0.00,0.60,1.68,0.23 +30.00,0.00,0.00,0.35,1.62,0.30 +19.00,1.00,0.00,1.33,1.69,0.26 +30.00,0.00,0.00,0.49,1.60,0.27 +39.00,0.00,9.00,0.33,1.52,0.27 +64.00,0.00,34.00,0.58,1.81,0.26 +81.00,1.00,53.00,0.42,1.69,0.26 +42.00,1.00,33.00,0.57,1.54,0.20 +13.30,0.00,0.00,0.52,1.65,0.23 +9.70,0.00,0.00,0.92,1.70,0.24 +50.00,0.00,20.00,0.45,1.65,0.25 +41.00,0.00,11.00,0.75,1.91,0.25 +30.00,0.00,0.00,0.99,1.78,0.22 +26.40,0.00,0.00,0.52,1.65,0.23 +61.00,1.00,49.00,0.69,1.59,0.25 +44.00,0.00,14.00,0.62,1.65,0.28 +72.00,0.00,42.00,0.37,1.63,0.26 +45.00,0.00,15.00,0.75,1.76,0.24 +9.30,0.00,0.00,0.56,1.68,0.33 +60.00,0.00,30.00,0.32,1.71,0.29 +59.00,0.00,29.00,0.61,1.76,0.26 +15.10,0.00,0.00,0.44,1.73,0.27 +83.00,0.00,53.00,0.82,1.68,0.22 +71.00,0.00,41.00,0.37,1.59,0.26 +53.00,0.00,23.00,0.45,1.69,0.26 +58.00,0.00,28.00,0.33,1.62,0.30 +60.00,0.00,30.00,0.32,1.68,0.28 +37.00,0.00,7.00,0.51,1.58,0.20 +1.90,0.00,0.00,0.54,1.56,0.20 +72.00,0.00,42.00,0.42,1.85,0.40 +53.00,0.00,23.00,0.51,1.72,0.32 +27.80,0.00,0.00,1.05,1.78,0.27 +65.00,0.00,35.00,0.31,1.59,0.29 +44.00,0.00,14.00,0.44,1.71,0.26 +47.00,0.00,17.00,0.42,1.59,0.24 +6.10,0.00,0.00,0.59,1.66,0.28 +57.30,1.00,28.00,0.63,1.53,0.16 +53.00,0.00,23.00,0.41,1.59,0.24 +51.70,1.00,25.00,0.99,1.77,0.24 +37.00,0.00,7.00,0.61,1.60,0.23 +6.70,0.00,0.00,0.50,1.78,0.38 +101.00,0.00,71.00,0.49,1.63,0.25 +101.00,0.00,71.00,0.64,1.56,0.21 +2.10,0.00,0.00,0.70,1.54,0.20 +50.00,0.00,20.00,0.40,1.59,0.24 +50.00,0.00,20.00,0.42,1.60,0.24 +30.00,0.00,0.00,0.54,1.57,0.18 +30.00,0.00,0.00,1.03,1.76,0.21 +30.00,0.00,0.00,0.81,1.74,0.23 +83.00,0.00,53.00,0.52,1.57,0.20 +24.80,0.00,0.00,1.01,1.61,0.23 +29.30,0.00,0.00,0.93,1.59,0.17 +44.00,0.00,14.00,0.56,1.68,0.24 +56.30,1.00,42.00,0.73,1.83,0.43 +9.70,0.00,0.00,1.07,1.63,0.19 +47.00,0.00,17.00,0.42,1.56,0.28 +64.00,0.00,34.00,0.38,1.67,0.29 +82.80,1.00,71.00,0.41,1.64,0.24 +50.00,1.00,37.00,0.61,1.75,0.24 +35.70,1.00,17.00,0.58,1.79,0.38 +63.50,1.00,39.00,0.63,1.54,0.20 +1.90,0.00,0.00,0.57,1.66,0.26 +101.00,0.00,71.00,0.50,1.62,0.26 +82.00,0.00,52.00,0.47,1.60,0.26 +4.90,0.00,0.00,0.85,1.59,0.16 +50.00,0.00,20.00,0.53,1.72,0.24 +16.40,0.00,0.00,0.38,1.55,0.24 +46.00,0.00,16.00,0.46,1.71,0.26 +50.00,0.00,20.00,0.48,1.65,0.23 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,1.24,1.79,0.30 +60.90,1.00,37.00,0.89,1.58,0.16 +94.60,1.00,69.00,0.60,1.50,0.17 +106.00,0.00,76.00,0.53,1.70,0.29 +20.60,1.00,11.00,0.83,1.56,0.18 +34.00,0.00,4.00,0.34,1.65,0.27 +10.80,1.00,0.00,0.88,1.71,0.20 +90.00,0.00,60.00,0.53,1.71,0.29 +60.00,0.00,30.00,0.60,1.65,0.23 +30.00,0.00,0.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.78,1.79,0.41 +4.00,0.00,0.00,0.69,1.64,0.24 +45.00,0.00,15.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.84,1.78,0.39 +91.00,0.00,61.00,0.37,1.66,0.28 +56.90,1.00,56.00,0.52,1.78,0.28 +53.00,0.00,23.00,0.45,1.70,0.26 +17.60,0.00,0.00,0.34,1.60,0.27 +26.00,1.00,19.00,0.69,1.53,0.20 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.70,1.76,0.42 +41.60,1.00,21.00,0.49,1.63,0.26 +97.00,0.00,67.00,0.59,1.70,0.27 +30.00,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.35,1.60,0.27 +6.40,1.00,0.00,0.78,1.66,0.25 +30.00,0.00,0.00,0.31,1.58,0.31 +19.30,1.00,0.00,0.80,1.58,0.21 +50.00,0.00,20.00,0.42,1.56,0.26 +48.00,0.00,18.00,0.40,1.58,0.23 +30.00,0.00,0.00,1.03,1.77,0.21 +85.00,0.00,55.00,0.39,1.55,0.28 +5.70,0.00,0.00,0.59,1.57,0.22 +40.00,0.00,10.00,0.54,1.52,0.17 +61.00,0.00,31.00,0.69,1.73,0.36 +7.20,0.00,0.00,0.68,1.50,0.17 +73.00,0.00,43.00,0.36,1.66,0.31 +20.40,1.00,0.00,1.35,1.70,0.26 +4.10,0.00,0.00,0.78,1.68,0.32 +51.00,0.00,21.00,0.64,1.54,0.16 +44.00,0.00,14.00,0.76,1.94,0.25 +71.00,0.00,41.00,0.61,1.49,0.15 +4.20,0.00,0.00,0.58,1.57,0.21 +30.00,0.00,0.00,0.91,1.73,0.21 +88.00,0.00,58.00,0.61,1.74,0.24 +29.50,0.00,0.00,0.35,1.69,0.32 +43.40,1.00,28.00,0.31,1.58,0.28 +72.00,0.00,42.00,0.39,1.69,0.28 +57.10,1.00,28.00,0.34,1.56,0.26 +72.80,1.00,57.00,0.46,1.70,0.26 +43.00,0.00,13.00,0.47,1.67,0.25 +6.50,0.00,0.00,0.32,1.60,0.31 +56.00,0.00,26.00,0.58,1.78,0.36 +73.00,0.00,43.00,0.57,1.62,0.25 +2.60,1.00,0.00,0.97,1.85,0.54 +8.00,0.00,0.00,0.45,1.68,0.27 +7.70,0.00,0.00,0.92,1.70,0.24 +48.00,0.00,18.00,0.53,1.57,0.18 +47.00,0.00,17.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.55,1.83,0.28 +78.00,0.00,48.00,0.50,1.76,0.27 +34.70,1.00,30.00,0.45,1.73,0.26 +43.00,0.00,13.00,0.44,1.72,0.27 +39.10,1.00,17.00,0.63,1.55,0.22 +69.00,0.00,39.00,0.42,1.63,0.27 +5.10,0.00,0.00,0.84,1.80,0.40 +43.00,0.00,13.00,0.53,1.53,0.17 +49.00,0.00,19.00,0.72,1.72,0.25 +98.00,0.00,68.00,0.33,1.61,0.31 +23.20,0.00,0.00,1.06,1.76,0.26 +30.00,0.00,0.00,0.33,1.61,0.31 +70.10,1.00,54.00,0.45,1.68,0.30 +67.00,0.00,37.00,0.61,1.74,0.24 +9.10,0.00,0.00,0.56,1.75,0.33 +19.00,1.00,0.00,0.90,1.83,0.41 +38.20,1.00,11.00,0.79,1.54,0.18 +66.00,0.00,36.00,0.51,1.67,0.23 +5.80,0.00,0.00,0.42,1.88,0.41 +37.40,1.00,37.00,0.99,1.77,0.21 +2.50,0.00,0.00,0.63,1.70,0.24 +30.00,0.00,0.00,0.62,1.76,0.24 +39.30,1.00,20.00,0.42,1.71,0.27 +61.00,0.00,31.00,0.47,1.64,0.24 +28.60,0.00,0.00,0.38,1.55,0.25 +47.80,1.00,33.00,0.94,1.59,0.22 +43.30,1.00,31.00,0.49,1.65,0.24 +10.10,0.00,0.00,0.44,1.72,0.26 +44.00,0.00,14.00,0.63,1.81,0.24 +53.00,0.00,23.00,0.46,1.69,0.26 +59.00,0.00,29.00,0.59,1.77,0.27 +45.00,0.00,15.00,1.09,1.63,0.18 +8.90,0.00,0.00,0.89,1.67,0.26 +53.00,0.00,23.00,0.31,1.57,0.31 +0.40,0.00,0.00,0.87,1.81,0.50 +44.00,0.00,14.00,0.54,1.67,0.24 +64.20,1.00,36.00,0.42,1.87,0.40 +74.00,0.00,44.00,0.58,1.68,0.34 +61.00,0.00,31.00,0.36,1.64,0.31 +50.00,0.00,20.00,0.70,1.50,0.17 +89.00,0.00,59.00,0.62,1.59,0.27 +21.80,0.00,0.00,0.76,1.59,0.18 +88.00,0.00,58.00,0.42,1.67,0.25 +63.00,0.00,33.00,0.37,1.80,0.36 +70.00,0.00,40.00,0.50,1.69,0.24 +50.40,1.00,28.00,0.48,1.67,0.24 +44.00,0.00,14.00,0.57,1.68,0.26 +14.60,1.00,14.00,0.68,1.58,0.25 +30.00,0.00,0.00,0.76,1.78,0.44 +66.00,0.00,36.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.57,1.79,0.26 +49.00,0.00,19.00,0.71,1.52,0.18 +11.40,0.00,0.00,0.44,1.90,0.42 +74.00,0.00,44.00,0.32,1.64,0.29 +51.00,0.00,21.00,0.64,1.54,0.16 +4.20,0.00,0.00,1.15,1.77,0.27 +64.00,0.00,34.00,0.33,1.61,0.31 +33.00,0.00,3.00,0.33,1.66,0.32 +30.00,0.00,0.00,0.96,1.75,0.29 +34.20,1.00,30.00,0.32,1.72,0.28 +44.00,0.00,14.00,0.44,1.64,0.26 +73.00,0.00,43.00,0.45,1.74,0.28 +59.00,0.00,29.00,0.64,1.71,0.30 +64.20,1.00,39.00,1.04,1.78,0.26 +41.00,0.00,11.00,0.68,1.78,0.24 +16.30,0.00,0.00,0.81,1.60,0.16 +7.30,0.00,0.00,0.84,1.67,0.18 +44.40,1.00,17.00,0.53,1.57,0.21 +30.00,0.00,0.00,0.36,1.63,0.29 +21.70,0.00,0.00,0.34,1.48,0.26 +30.00,0.00,0.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.79,1.66,0.25 +14.60,0.00,0.00,0.75,1.61,0.28 +48.00,0.00,18.00,0.56,1.52,0.17 +106.00,0.00,76.00,0.45,1.63,0.26 +60.80,1.00,39.00,0.33,1.59,0.27 +30.00,0.00,0.00,0.67,1.52,0.19 +8.80,0.00,0.00,0.37,1.66,0.28 +21.00,1.00,0.00,0.72,1.56,0.17 +53.00,0.00,23.00,0.31,1.56,0.31 +8.40,0.00,0.00,1.15,1.77,0.25 +29.60,1.00,10.00,1.08,1.71,0.22 +45.00,0.00,15.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.44,1.53,0.27 +21.70,0.00,0.00,0.38,1.67,0.29 +41.30,1.00,26.00,0.78,1.57,0.15 +35.00,0.00,5.00,0.58,1.71,0.27 +108.00,0.00,78.00,0.58,1.68,0.34 +86.00,0.00,56.00,0.44,1.71,0.25 +44.00,0.00,14.00,0.43,1.63,0.26 +107.00,0.00,77.00,0.40,1.62,0.24 +48.00,0.00,18.00,0.53,1.57,0.18 +53.00,0.00,23.00,0.39,1.56,0.24 +24.20,0.00,0.00,0.41,1.57,0.26 +90.00,0.00,60.00,0.57,1.72,0.31 +79.00,0.00,49.00,0.49,1.78,0.28 +59.00,0.00,29.00,0.36,1.62,0.26 +54.70,1.00,53.00,0.76,1.62,0.29 +16.50,0.00,0.00,0.82,1.70,0.24 +5.30,1.00,0.00,1.31,1.80,0.30 +30.00,0.00,0.00,0.49,1.64,0.28 +101.00,0.00,71.00,0.43,1.69,0.25 +90.00,0.00,60.00,0.58,1.69,0.26 +86.00,0.00,56.00,0.49,1.77,0.28 +40.20,1.00,26.00,0.79,1.59,0.16 +81.70,1.00,57.00,0.68,1.61,0.28 +64.00,0.00,34.00,0.33,1.60,0.31 +60.00,0.00,30.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.86,1.71,0.23 +30.00,0.00,0.00,0.40,1.61,0.24 +73.00,0.00,43.00,0.39,1.60,0.24 +20.00,1.00,15.00,0.60,1.55,0.21 +1.90,0.00,0.00,0.79,1.58,0.16 +27.40,0.00,0.00,0.55,1.67,0.23 +9.60,0.00,0.00,1.01,1.68,0.21 +61.00,0.00,31.00,0.63,1.81,0.25 +101.00,0.00,71.00,0.64,1.56,0.21 +27.50,1.00,23.00,0.45,1.69,0.26 +72.00,0.00,42.00,0.55,1.78,0.37 +29.60,1.00,18.00,0.93,1.87,0.26 +47.00,0.00,17.00,0.51,1.60,0.21 +45.00,0.00,15.00,0.44,1.72,0.27 +25.20,1.00,3.00,0.32,1.66,0.32 +101.00,0.00,71.00,0.37,1.55,0.24 +62.20,1.00,33.00,0.55,1.71,0.24 +47.00,0.00,17.00,0.47,1.67,0.25 +3.50,0.00,0.00,0.76,1.62,0.25 +1.10,0.00,0.00,1.06,1.78,0.29 +59.00,0.00,29.00,0.54,1.62,0.22 +66.00,0.00,36.00,0.46,1.70,0.27 +30.00,0.00,0.00,0.31,1.52,0.27 +63.00,0.00,33.00,0.61,1.67,0.23 +12.10,0.00,0.00,0.50,1.81,0.28 +42.00,0.00,12.00,0.35,1.62,0.26 +18.40,1.00,0.00,1.49,1.73,0.27 +19.00,0.00,0.00,0.64,1.58,0.20 +26.70,1.00,14.00,0.60,1.77,0.25 +59.00,0.00,29.00,0.41,1.67,0.26 +30.00,0.00,0.00,0.60,1.60,0.28 +30.00,0.00,0.00,0.32,1.53,0.27 +50.00,0.00,20.00,0.48,1.66,0.24 +42.00,0.00,12.00,0.34,1.62,0.26 +22.90,0.00,0.00,0.45,1.62,0.25 +66.00,0.00,36.00,0.32,1.60,0.29 +72.00,0.00,42.00,0.50,1.79,0.39 +66.00,0.00,36.00,0.53,1.68,0.23 +22.50,0.00,0.00,0.61,1.59,0.27 +28.60,0.00,0.00,0.39,1.56,0.28 +81.00,0.00,51.00,0.33,1.60,0.28 +92.00,0.00,62.00,0.39,1.68,0.29 +22.70,0.00,0.00,0.61,1.58,0.23 +19.10,0.00,0.00,0.42,1.67,0.25 +90.00,0.00,60.00,0.42,1.60,0.25 +18.30,0.00,0.00,1.03,1.76,0.21 +30.00,0.00,0.00,0.81,1.60,0.17 +26.50,0.00,0.00,0.70,1.55,0.15 +88.80,1.00,78.00,0.67,1.54,0.18 +53.00,0.00,23.00,0.69,1.57,0.22 +47.00,0.00,17.00,0.41,1.56,0.28 +44.00,0.00,14.00,0.44,1.71,0.26 +67.00,0.00,37.00,1.09,1.75,0.22 +60.00,0.00,30.00,0.71,1.55,0.15 +44.00,0.00,14.00,0.40,1.50,0.26 +53.00,0.00,23.00,0.57,1.65,0.26 +72.00,0.00,42.00,0.37,1.66,0.28 +62.00,0.00,32.00,0.42,1.56,0.26 +66.00,0.00,36.00,0.44,1.69,0.32 +69.00,0.00,39.00,0.58,1.69,0.27 +50.00,0.00,20.00,0.42,1.71,0.27 +74.00,0.00,44.00,0.58,1.69,0.35 +51.00,0.00,21.00,0.47,1.67,0.25 +56.50,1.00,31.00,0.32,1.58,0.31 +41.90,1.00,17.00,0.75,1.53,0.17 +21.90,0.00,0.00,0.70,1.74,0.35 +90.00,0.00,60.00,0.58,1.68,0.32 +106.00,0.00,76.00,0.34,1.55,0.26 +64.00,0.00,34.00,0.34,1.65,0.29 +31.00,0.00,1.00,0.40,1.67,0.26 +53.00,0.00,23.00,0.30,1.54,0.29 +86.00,0.00,56.00,0.43,1.72,0.26 +30.00,0.00,0.00,0.39,1.68,0.28 +48.00,0.00,18.00,0.39,1.57,0.23 +58.00,0.00,28.00,0.41,1.57,0.27 +61.30,1.00,32.00,0.51,1.57,0.25 +65.00,0.00,35.00,0.34,1.63,0.28 +11.20,0.00,0.00,0.46,1.54,0.27 +30.00,1.00,0.00,1.11,1.76,0.24 +40.40,1.00,20.00,0.56,1.53,0.19 +30.00,0.00,0.00,0.61,1.76,0.25 +88.00,0.00,58.00,0.42,1.68,0.25 +0.20,0.00,0.00,1.02,1.77,0.21 +15.60,0.00,0.00,0.38,1.58,0.28 +97.00,0.00,67.00,0.57,1.54,0.20 +28.50,1.00,19.00,0.74,1.73,0.25 +11.70,0.00,0.00,0.58,1.70,0.26 +30.00,0.00,0.00,0.52,1.83,0.29 +53.00,0.00,23.00,0.72,1.59,0.23 +50.00,0.00,20.00,0.70,1.52,0.15 +52.00,1.00,24.00,0.55,1.56,0.18 +9.50,0.00,0.00,0.51,1.59,0.20 +57.30,1.00,51.00,0.47,1.64,0.27 +42.00,0.00,12.00,0.51,1.59,0.19 +44.00,0.00,14.00,0.57,1.79,0.28 +66.00,0.00,36.00,0.32,1.61,0.29 +8.20,0.00,0.00,0.64,1.56,0.21 +53.00,0.00,23.00,0.42,1.68,0.25 +67.00,0.00,37.00,0.58,1.74,0.31 +58.00,0.00,28.00,0.51,1.83,0.29 +24.30,0.00,0.00,0.45,1.68,0.25 +45.00,0.00,15.00,0.40,1.69,0.27 +40.40,1.00,17.00,0.56,1.68,0.25 +89.00,0.00,59.00,0.56,1.56,0.26 +53.00,0.00,23.00,0.35,1.59,0.27 +5.90,0.00,0.00,0.51,1.59,0.21 +43.00,0.00,13.00,0.57,1.68,0.34 +50.00,1.00,28.00,0.42,1.56,0.27 +30.00,0.00,0.00,0.80,1.60,0.18 +87.00,0.00,57.00,0.50,1.75,0.28 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.83,1.71,0.23 +98.00,0.00,68.00,0.39,1.55,0.24 +67.00,0.00,37.00,0.59,1.74,0.31 +30.00,0.00,0.00,0.56,1.63,0.24 +71.00,0.00,41.00,0.77,1.55,0.16 +72.00,0.00,42.00,0.45,1.73,0.28 +47.00,0.00,17.00,0.67,1.57,0.21 +72.00,0.00,42.00,0.66,1.75,0.34 +84.20,1.00,66.00,0.58,1.66,0.23 +60.00,0.00,30.00,0.32,1.63,0.28 +73.10,1.00,62.00,0.82,1.56,0.17 +42.00,0.00,12.00,0.47,1.61,0.26 +52.00,0.00,22.00,0.74,1.60,0.23 +4.90,0.00,0.00,0.95,1.71,0.21 +83.00,0.00,53.00,0.74,1.60,0.27 +30.00,0.00,0.00,0.62,1.56,0.22 +11.20,0.00,0.00,0.83,1.57,0.16 +96.00,0.00,66.00,0.56,1.66,0.22 +57.00,0.00,27.00,0.42,1.67,0.26 +39.90,1.00,17.00,0.67,1.52,0.19 +25.60,0.00,0.00,0.50,1.80,0.40 +33.00,0.00,3.00,0.69,1.68,0.32 +72.00,0.00,42.00,0.68,1.80,0.39 +50.00,0.00,20.00,0.53,1.72,0.24 +30.00,0.00,0.00,0.48,1.64,0.27 +31.20,1.00,17.00,0.78,1.63,0.26 +6.80,0.00,0.00,1.05,1.76,0.21 +51.00,0.00,21.00,0.64,1.53,0.15 +50.00,0.00,20.00,0.55,1.55,0.20 +78.00,0.00,48.00,0.50,1.80,0.28 +58.00,0.00,28.00,0.35,1.54,0.28 +23.20,1.00,10.00,0.69,1.54,0.17 +44.00,0.00,14.00,0.44,1.71,0.26 +20.80,1.00,0.00,0.72,1.59,0.22 +27.60,0.00,0.00,1.06,1.87,0.55 +54.00,0.00,24.00,0.69,1.83,0.25 +43.10,1.00,41.00,0.75,1.68,0.23 +30.00,0.00,0.00,0.51,1.56,0.25 +48.00,0.00,18.00,0.46,1.62,0.24 +30.00,0.00,0.00,0.38,1.57,0.24 +45.00,0.00,15.00,0.53,1.67,0.24 +27.10,1.00,6.00,0.38,1.55,0.24 +41.10,1.00,31.00,0.56,1.56,0.17 +68.00,0.00,38.00,0.40,1.57,0.27 +66.00,0.00,36.00,0.54,1.69,0.23 +83.00,0.00,53.00,0.57,1.66,0.22 +30.00,0.00,0.00,0.36,1.63,0.29 +59.00,0.00,29.00,0.49,1.62,0.22 +44.00,0.00,14.00,0.54,1.67,0.24 +39.00,0.00,9.00,0.38,1.54,0.28 +69.10,1.00,44.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.82,1.71,0.23 +78.00,0.00,48.00,0.45,1.71,0.27 +46.00,1.00,36.00,0.91,1.65,0.19 +87.00,0.00,57.00,0.44,1.69,0.25 +46.00,0.00,16.00,0.45,1.65,0.26 +36.00,0.00,6.00,0.79,1.59,0.15 +18.60,0.00,0.00,0.44,1.72,0.27 +32.30,1.00,9.00,0.62,1.58,0.22 +15.20,0.00,0.00,0.59,1.62,0.22 +45.00,0.00,15.00,0.55,1.68,0.23 +87.00,0.00,57.00,0.48,1.73,0.27 +78.00,0.00,48.00,0.49,1.80,0.28 +44.00,0.00,14.00,0.50,1.61,0.21 +22.70,0.00,0.00,0.62,1.57,0.22 +30.00,0.00,0.00,0.33,1.46,0.26 +81.00,0.00,51.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.94,1.74,0.28 +63.00,0.00,33.00,0.57,1.66,0.24 +30.00,0.00,0.00,0.60,1.77,0.25 +55.70,1.00,35.00,0.82,1.60,0.16 +86.00,0.00,56.00,0.44,1.71,0.25 +30.00,0.00,0.00,0.62,1.49,0.15 +55.30,1.00,53.00,0.82,1.68,0.23 +51.00,0.00,21.00,0.65,1.53,0.15 +2.20,0.00,0.00,0.81,1.58,0.17 +73.00,0.00,43.00,0.39,1.67,0.28 +30.00,0.00,0.00,0.82,1.80,0.39 +44.20,1.00,29.00,0.42,1.68,0.26 +27.70,1.00,15.00,0.59,1.54,0.20 +2.30,0.00,0.00,0.38,1.54,0.28 +9.10,0.00,0.00,0.65,1.53,0.15 +19.80,0.00,0.00,0.66,1.52,0.19 +18.50,1.00,0.00,0.93,1.70,0.24 +61.00,0.00,31.00,0.70,1.52,0.19 +83.00,0.00,53.00,0.51,1.59,0.21 +61.30,1.00,53.00,0.69,1.82,0.25 +63.00,0.00,33.00,0.56,1.54,0.20 +47.00,0.00,17.00,0.68,1.57,0.21 +55.00,0.00,25.00,0.51,1.65,0.22 +30.00,0.00,0.00,0.59,1.63,0.25 +30.00,0.00,0.00,0.52,1.56,0.19 +40.00,0.00,10.00,0.79,1.60,0.18 +98.00,0.00,68.00,0.36,1.63,0.29 +5.00,0.00,0.00,0.38,1.68,0.28 +4.20,0.00,0.00,0.55,1.56,0.18 +54.50,1.00,42.00,0.31,1.58,0.31 +59.00,0.00,29.00,0.48,1.64,0.24 +43.00,1.00,32.00,0.54,1.58,0.25 +98.00,0.00,68.00,0.36,1.63,0.29 +15.90,0.00,0.00,0.42,1.88,0.41 +50.00,0.00,20.00,0.56,1.71,0.24 +60.00,0.00,30.00,0.45,1.72,0.27 +49.00,0.00,19.00,0.51,1.89,0.46 +107.00,0.00,77.00,0.38,1.61,0.25 +3.60,0.00,0.00,0.58,1.73,0.31 +50.00,0.00,20.00,0.58,1.79,0.25 +50.10,1.00,33.00,0.98,1.60,0.22 +14.60,1.00,0.00,0.83,1.65,0.18 +3.40,0.00,0.00,0.33,1.63,0.29 +20.00,0.00,0.00,0.42,1.69,0.26 +66.30,1.00,40.00,0.38,1.59,0.24 +47.40,1.00,33.00,0.72,1.55,0.20 +1.80,0.00,0.00,0.59,1.57,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +98.00,0.00,68.00,0.42,1.57,0.25 +44.00,0.00,14.00,0.34,1.62,0.32 +60.00,0.00,30.00,0.45,1.73,0.26 +69.20,1.00,53.00,0.43,1.70,0.26 +45.00,0.00,15.00,0.43,1.67,0.24 +15.90,1.00,0.00,0.78,1.57,0.16 +8.90,0.00,0.00,0.38,1.55,0.24 +55.00,0.00,25.00,0.55,1.59,0.22 +56.00,0.00,26.00,0.58,1.78,0.36 +2.00,0.00,0.00,0.93,1.75,0.21 +83.00,0.00,53.00,0.40,1.67,0.27 +84.30,1.00,71.00,0.38,1.58,0.24 +43.00,0.00,13.00,0.54,1.53,0.17 +99.00,0.00,69.00,0.58,1.51,0.17 +27.50,0.00,0.00,0.82,1.56,0.17 +74.00,0.00,44.00,0.56,1.68,0.33 +44.00,0.00,14.00,0.43,1.71,0.26 +53.00,0.00,23.00,0.31,1.55,0.30 +6.30,0.00,0.00,0.74,1.59,0.23 +49.00,0.00,19.00,0.35,1.60,0.26 +90.00,0.00,60.00,0.46,1.65,0.27 +59.00,0.00,29.00,0.38,1.67,0.30 +65.00,0.00,35.00,0.34,1.63,0.28 +0.50,0.00,0.00,0.40,1.58,0.24 +44.00,1.00,26.00,0.78,1.58,0.15 +70.00,0.00,40.00,0.48,1.68,0.24 +61.00,0.00,31.00,0.43,1.72,0.26 +28.80,0.00,0.00,0.58,1.71,0.26 +69.90,1.00,44.00,0.33,1.59,0.31 +46.00,1.00,20.00,0.69,1.50,0.17 +16.30,0.00,0.00,0.73,1.71,0.23 +12.00,0.00,0.00,1.00,1.75,0.25 +93.00,0.00,63.00,0.35,1.66,0.31 +71.00,0.00,41.00,0.36,1.60,0.25 +72.00,0.00,42.00,0.43,1.83,0.39 +63.00,0.00,33.00,0.43,1.70,0.27 +37.00,0.00,7.00,0.56,1.54,0.19 +72.00,0.00,42.00,0.44,1.82,0.39 +83.20,1.00,66.00,0.54,1.65,0.22 +44.00,0.00,14.00,0.61,1.64,0.27 +54.70,1.00,42.00,0.73,1.82,0.43 +30.00,0.00,0.00,0.45,1.68,0.27 +35.20,1.00,9.00,0.44,1.71,0.26 +30.00,0.00,0.00,0.65,1.52,0.19 +87.00,0.00,57.00,0.40,1.58,0.24 +67.80,1.00,52.00,0.46,1.71,0.26 +72.00,0.00,42.00,0.38,1.67,0.28 +49.00,0.00,19.00,0.33,1.72,0.28 +42.00,0.00,12.00,0.72,1.55,0.20 +70.00,0.00,40.00,0.49,1.69,0.24 +13.60,0.00,0.00,0.40,1.68,0.27 +47.00,0.00,17.00,0.33,1.54,0.28 +98.00,0.00,68.00,0.33,1.61,0.31 +66.00,0.00,36.00,0.42,1.84,0.40 +51.80,1.00,36.00,0.59,1.73,0.24 +41.00,0.00,11.00,0.68,1.79,0.24 +30.00,0.00,0.00,0.48,1.65,0.27 +6.60,0.00,0.00,0.68,1.74,0.41 +13.50,0.00,0.00,0.55,1.52,0.18 +45.00,0.00,15.00,0.50,1.65,0.24 +75.00,1.00,60.00,0.58,1.68,0.31 +27.90,0.00,0.00,0.60,1.56,0.20 +69.80,1.00,60.00,0.58,1.68,0.31 +71.00,0.00,41.00,0.53,1.82,0.28 +15.00,0.00,0.00,0.54,1.83,0.29 +87.00,0.00,57.00,0.44,1.68,0.27 +30.00,0.00,0.00,0.37,1.54,0.28 +58.00,0.00,28.00,0.32,1.56,0.27 +106.00,0.00,76.00,0.49,1.66,0.27 +45.00,0.00,15.00,0.74,1.76,0.23 +30.70,1.00,25.00,0.51,1.72,0.32 +45.50,1.00,35.00,0.32,1.60,0.30 +4.50,0.00,0.00,0.99,1.61,0.17 +43.00,0.00,13.00,0.74,1.72,0.23 +44.00,0.00,14.00,1.03,1.78,0.24 +34.00,0.00,4.00,0.42,1.60,0.25 +30.00,0.00,0.00,0.74,1.80,0.39 +44.00,0.00,14.00,0.46,1.67,0.26 +74.60,1.00,71.00,0.38,1.57,0.28 +59.20,1.00,55.00,0.47,1.55,0.27 +7.20,0.00,0.00,0.36,1.65,0.32 +65.30,1.00,48.00,0.50,1.78,0.28 +82.50,1.00,54.00,0.49,1.71,0.30 +16.20,0.00,0.00,0.46,1.67,0.26 +62.80,1.00,39.00,0.59,1.70,0.28 +42.30,1.00,23.00,0.40,1.57,0.24 +22.00,0.00,0.00,0.45,1.75,0.29 +28.30,0.00,0.00,0.76,1.62,0.29 +65.00,0.00,35.00,0.54,1.66,0.30 +82.30,1.00,74.00,0.31,1.58,0.29 +44.00,0.00,14.00,0.56,1.68,0.25 +30.00,0.00,0.00,0.57,1.50,0.16 +39.00,0.00,9.00,0.37,1.65,0.29 +21.30,1.00,0.00,1.17,1.76,0.22 +82.10,1.00,66.00,0.47,1.65,0.24 +30.00,0.00,0.00,0.34,1.52,0.27 +71.00,0.00,41.00,0.58,1.50,0.16 +9.80,0.00,0.00,0.75,1.61,0.22 +28.70,1.00,0.00,0.32,1.53,0.27 +16.40,0.00,0.00,0.45,1.69,0.27 +74.00,0.00,44.00,0.53,1.76,0.27 +30.00,0.00,0.00,0.79,1.74,0.23 +58.00,0.00,28.00,0.34,1.56,0.26 +30.00,0.00,0.00,1.00,1.77,0.21 +56.30,1.00,30.00,0.70,1.55,0.15 +80.70,1.00,58.00,0.61,1.68,0.23 +30.00,0.00,0.00,0.59,1.64,0.24 +40.00,0.00,10.00,0.70,1.54,0.17 +30.00,0.00,0.00,0.87,1.70,0.23 +45.00,0.00,15.00,0.55,1.68,0.23 +43.60,1.00,25.00,1.00,1.77,0.24 +16.40,1.00,0.00,0.80,1.79,0.42 +34.00,0.00,4.00,0.59,1.60,0.25 +79.00,0.00,49.00,0.55,1.58,0.19 +45.00,0.00,15.00,0.44,1.66,0.25 +67.00,0.00,37.00,0.61,1.67,0.23 +76.20,1.00,60.00,0.44,1.62,0.25 +49.00,0.00,19.00,0.72,1.51,0.18 +42.20,1.00,27.00,0.64,1.51,0.19 +51.00,0.00,21.00,0.41,1.68,0.26 +40.70,1.00,15.00,0.55,1.68,0.24 +98.00,0.00,68.00,0.54,1.58,0.19 +30.00,0.00,0.00,0.81,1.79,0.41 +30.00,0.00,0.00,0.35,1.62,0.31 +30.00,0.00,0.00,0.42,1.70,0.26 +66.00,0.00,36.00,0.51,1.66,0.23 +37.00,0.00,7.00,0.74,1.67,0.31 +76.00,0.00,46.00,0.67,1.69,0.23 +47.00,0.00,17.00,0.52,1.81,0.28 +78.00,0.00,48.00,0.44,1.70,0.27 +7.60,0.00,0.00,0.57,1.71,0.24 +61.00,0.00,31.00,0.43,1.72,0.26 +88.00,0.00,58.00,0.63,1.69,0.22 +44.00,0.00,14.00,0.66,1.56,0.23 +39.60,1.00,31.00,0.60,1.55,0.21 +11.40,0.00,0.00,0.44,1.65,0.24 +52.00,0.00,22.00,0.42,1.62,0.25 +63.00,0.00,33.00,0.42,1.70,0.27 +42.00,0.00,12.00,0.59,1.70,0.35 +17.20,0.00,0.00,0.35,1.55,0.27 +108.00,0.00,78.00,0.38,1.60,0.24 +44.00,0.00,14.00,0.50,1.58,0.21 +45.00,0.00,15.00,0.44,1.61,0.25 +50.00,0.00,20.00,0.67,1.50,0.17 +6.60,0.00,0.00,0.62,1.49,0.15 +30.00,0.00,0.00,0.82,1.60,0.18 +53.00,0.00,23.00,0.35,1.59,0.27 +86.00,0.00,56.00,0.50,1.64,0.22 +73.00,0.00,43.00,0.43,1.71,0.26 +80.00,0.00,50.00,0.38,1.66,0.27 +56.00,0.00,26.00,0.54,1.67,0.24 +45.60,1.00,38.00,0.74,1.60,0.26 +65.60,1.00,60.00,0.58,1.69,0.27 +89.00,0.00,59.00,0.56,1.56,0.26 +87.00,0.00,57.00,0.36,1.58,0.26 +20.90,0.00,0.00,0.51,1.57,0.21 +30.00,0.00,0.00,0.45,1.63,0.25 +30.00,0.00,0.00,0.70,1.53,0.15 +11.70,0.00,0.00,0.71,1.55,0.15 +88.00,0.00,58.00,0.55,1.80,0.27 +17.10,1.00,7.00,0.76,1.67,0.29 +64.30,1.00,37.00,0.62,1.77,0.25 +70.00,0.00,40.00,0.39,1.65,0.26 +47.80,1.00,19.00,0.73,1.59,0.20 +61.00,0.00,31.00,0.90,1.70,0.19 +56.00,0.00,26.00,0.53,1.65,0.23 +90.00,0.00,60.00,0.58,1.67,0.27 +61.00,0.00,31.00,0.71,1.52,0.18 +65.30,1.00,44.00,0.54,1.83,0.29 +41.00,0.00,11.00,0.46,1.70,0.27 +44.00,0.00,14.00,0.47,1.71,0.25 +44.00,0.00,14.00,0.53,1.83,0.29 +41.00,0.00,11.00,0.75,1.91,0.25 +5.10,0.00,0.00,0.54,1.80,0.28 +59.10,1.00,42.00,0.66,1.80,0.38 +106.00,0.00,76.00,0.50,1.68,0.28 +85.00,0.00,55.00,0.48,1.61,0.28 +45.00,0.00,15.00,0.67,1.57,0.24 +101.00,0.00,71.00,0.49,1.64,0.25 +26.60,0.00,0.00,0.35,1.64,0.30 +32.50,1.00,20.00,0.42,1.60,0.24 +29.00,0.00,0.00,0.79,1.59,0.15 +61.00,0.00,31.00,0.35,1.60,0.25 +64.00,0.00,34.00,0.40,1.69,0.27 +41.00,0.00,11.00,0.49,1.61,0.27 +52.00,0.00,22.00,0.67,1.54,0.21 +30.00,0.00,0.00,0.49,1.56,0.25 +3.60,0.00,0.00,0.59,1.58,0.26 +36.10,1.00,22.00,0.42,1.62,0.25 +30.00,0.00,0.00,0.57,1.61,0.23 +51.00,0.00,21.00,0.44,1.73,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +59.80,1.00,39.00,0.46,1.67,0.28 +41.90,1.00,35.00,0.34,1.62,0.29 +64.70,1.00,59.00,0.38,1.82,0.37 +44.00,0.00,14.00,0.63,1.80,0.24 +0.70,0.00,0.00,0.67,1.74,0.41 +18.10,1.00,0.00,0.73,1.52,0.16 +34.00,0.00,4.00,0.61,1.52,0.16 +2.80,0.00,0.00,0.57,1.64,0.24 +63.30,1.00,53.00,0.78,1.65,0.29 +79.00,0.00,49.00,0.70,1.60,0.26 +58.00,0.00,28.00,0.33,1.61,0.30 +3.30,0.00,0.00,0.69,1.59,0.25 +30.00,0.00,0.00,0.39,1.68,0.28 +5.30,0.00,0.00,0.60,1.70,0.28 +64.00,0.00,34.00,0.41,1.70,0.27 +14.80,0.00,0.00,0.36,1.57,0.23 +90.00,0.00,60.00,0.59,1.70,0.27 +47.00,0.00,17.00,0.40,1.56,0.24 +64.00,0.00,34.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.37,1.57,0.25 +30.00,0.00,0.00,0.67,1.64,0.24 +72.00,0.00,42.00,0.31,1.58,0.31 +16.50,0.00,0.00,0.82,1.56,0.17 +44.00,0.00,14.00,0.46,1.70,0.25 +49.00,0.00,19.00,0.33,1.72,0.28 +11.00,0.00,0.00,0.90,1.83,0.41 +31.00,0.00,1.00,0.78,1.58,0.15 +97.00,0.00,67.00,0.60,1.70,0.28 +72.00,0.00,42.00,0.69,1.81,0.39 +72.00,0.00,42.00,0.35,1.65,0.31 +2.10,0.00,0.00,0.36,1.60,0.25 +30.00,0.00,0.00,0.76,1.64,0.24 +74.00,0.00,44.00,0.34,1.63,0.28 +59.00,0.00,29.00,0.58,1.78,0.27 +85.00,0.00,55.00,0.48,1.56,0.27 +30.00,0.00,0.00,0.48,1.61,0.27 +90.60,1.00,76.00,0.34,1.55,0.25 +56.00,0.00,26.00,0.49,1.60,0.27 +101.00,0.00,71.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.98,1.67,0.20 +30.00,0.00,0.00,1.11,1.72,0.22 +23.10,1.00,15.00,0.73,1.75,0.23 +4.00,1.00,0.00,0.88,1.67,0.25 +45.00,0.00,15.00,0.41,1.70,0.27 +69.00,0.00,39.00,0.33,1.59,0.27 +41.00,0.00,11.00,0.46,1.71,0.27 +4.90,1.00,0.00,1.30,1.77,0.27 +12.90,0.00,0.00,0.69,1.54,0.17 +63.00,0.00,33.00,0.45,1.69,0.26 +74.00,0.00,44.00,0.35,1.61,0.28 +39.00,0.00,9.00,0.35,1.53,0.27 +70.00,0.00,40.00,0.38,1.59,0.24 +11.80,0.00,0.00,1.01,1.76,0.31 +43.70,1.00,15.00,0.53,1.67,0.24 +30.00,0.00,0.00,0.68,1.61,0.27 +24.70,0.00,0.00,0.40,1.67,0.26 +9.10,0.00,0.00,0.84,1.60,0.16 +88.00,0.00,58.00,0.42,1.69,0.26 +66.00,0.00,36.00,0.36,1.63,0.28 +40.20,1.00,20.00,0.55,1.54,0.19 +30.00,0.00,0.00,0.64,1.60,0.28 +48.00,0.00,18.00,0.76,1.79,0.38 +4.30,0.00,0.00,0.63,1.55,0.21 +30.00,0.00,0.00,0.70,1.64,0.24 +88.00,0.00,58.00,0.60,1.74,0.24 +59.00,0.00,29.00,0.41,1.67,0.26 +70.50,1.00,46.00,0.31,1.61,0.30 +42.00,0.00,12.00,0.52,1.59,0.19 +50.00,0.00,20.00,0.40,1.57,0.27 +93.00,0.00,63.00,0.56,1.71,0.24 +30.00,0.00,0.00,0.48,1.65,0.27 +86.00,0.00,56.00,0.46,1.72,0.26 +53.00,0.00,23.00,0.42,1.84,0.39 +33.00,0.00,3.00,0.75,1.62,0.24 +83.50,1.00,78.00,0.56,1.67,0.33 +52.00,0.00,22.00,0.42,1.63,0.25 +30.00,0.00,0.00,0.82,1.55,0.20 +14.40,0.00,0.00,0.62,1.59,0.27 +31.00,0.00,1.00,0.61,1.60,0.26 +31.00,1.00,20.00,0.62,1.52,0.18 +25.50,0.00,0.00,0.42,1.54,0.27 +7.60,0.00,0.00,0.58,1.57,0.26 +38.00,0.00,8.00,0.53,1.54,0.17 +63.00,0.00,33.00,0.51,1.65,0.24 +72.00,0.00,42.00,0.57,1.79,0.37 +56.00,0.00,26.00,0.57,1.77,0.35 +44.00,0.00,14.00,0.51,1.60,0.21 +83.00,0.00,53.00,0.62,1.69,0.24 +53.50,1.00,41.00,0.61,1.49,0.15 +63.40,1.00,60.00,0.40,1.66,0.26 +82.90,1.00,58.00,0.54,1.80,0.28 +5.70,0.00,0.00,0.74,1.57,0.17 +69.50,1.00,41.00,0.39,1.59,0.26 +47.00,0.00,17.00,0.51,1.65,0.23 +84.10,1.00,62.00,0.82,1.59,0.18 +9.70,0.00,0.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.38,1.67,0.29 +47.00,0.00,17.00,0.61,1.58,0.22 +56.00,0.00,26.00,0.78,1.57,0.15 +11.30,0.00,0.00,0.72,1.51,0.18 +50.00,0.00,20.00,0.59,1.81,0.26 +30.00,0.00,0.00,0.45,1.63,0.25 +59.00,0.00,29.00,0.52,1.64,0.22 +23.90,0.00,0.00,0.65,1.75,0.34 +59.00,0.00,29.00,0.50,1.63,0.22 +84.00,0.00,54.00,0.50,1.71,0.30 +66.60,1.00,52.00,0.85,1.68,0.19 +34.00,0.00,4.00,0.61,1.52,0.16 +27.60,0.00,0.00,0.94,1.62,0.17 +16.30,0.00,0.00,0.41,1.56,0.25 +83.00,0.00,53.00,0.38,1.67,0.28 +70.00,0.00,40.00,0.50,1.69,0.24 +40.00,0.00,10.00,0.43,1.66,0.25 +40.90,1.00,36.00,0.44,1.77,0.37 +75.00,0.00,45.00,0.56,1.68,0.33 +52.00,0.00,22.00,0.36,1.62,0.26 +30.00,0.00,0.00,0.83,1.81,0.40 +5.80,0.00,0.00,0.53,1.58,0.18 +83.00,0.00,53.00,0.39,1.67,0.28 +95.90,1.00,76.00,0.34,1.55,0.26 +30.00,0.00,0.00,0.73,1.79,0.39 +38.10,1.00,25.00,0.59,1.67,0.28 +72.00,0.00,42.00,0.55,1.73,0.24 +58.00,0.00,28.00,0.33,1.56,0.27 +89.10,1.00,71.00,0.42,1.68,0.25 +30.00,0.00,0.00,0.77,1.64,0.24 +74.00,0.00,44.00,0.32,1.61,0.29 +63.00,0.00,33.00,0.60,1.57,0.23 +69.00,0.00,39.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.41,1.71,0.27 +4.40,0.00,0.00,0.41,1.52,0.27 +45.70,1.00,20.00,0.60,1.53,0.19 +24.30,0.00,0.00,1.01,1.61,0.23 +56.30,1.00,53.00,0.51,1.57,0.21 +3.50,0.00,0.00,0.88,1.71,0.19 +59.00,0.00,29.00,0.62,1.71,0.29 +27.80,0.00,0.00,0.53,1.76,0.27 +47.00,0.00,17.00,0.38,1.67,0.29 +70.00,0.00,40.00,0.40,1.60,0.24 +70.00,0.00,40.00,0.43,1.92,0.42 +87.00,1.00,61.00,0.39,1.69,0.28 +3.20,0.00,0.00,0.88,1.72,0.21 +45.00,0.00,15.00,0.75,1.76,0.24 +94.30,1.00,69.00,0.57,1.51,0.17 +45.00,0.00,15.00,0.55,1.68,0.23 +6.20,0.00,0.00,0.72,1.69,0.23 +30.00,0.00,0.00,0.52,1.81,0.29 +49.00,0.00,19.00,0.53,1.82,0.29 +58.00,0.00,28.00,0.70,1.74,0.36 +14.00,0.00,0.00,0.43,1.73,0.26 +30.00,0.00,0.00,0.72,1.70,0.23 +36.00,0.00,6.00,0.57,1.64,0.24 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.72,1.57,0.20 +57.60,1.00,36.00,0.93,1.66,0.19 +40.00,0.00,10.00,0.96,1.76,0.21 +83.00,0.00,53.00,0.51,1.57,0.20 +30.00,0.00,0.00,0.60,1.81,0.25 +7.60,0.00,0.00,0.44,1.62,0.26 +84.00,0.00,54.00,0.45,1.68,0.30 +50.00,0.00,20.00,0.57,1.72,0.25 +66.00,1.00,62.00,0.35,1.73,0.34 +30.00,0.00,0.00,0.62,1.59,0.27 +73.00,0.00,43.00,0.38,1.67,0.28 +83.00,0.00,53.00,0.43,1.69,0.26 +56.50,1.00,39.00,0.37,1.56,0.28 +47.00,0.00,17.00,0.48,1.67,0.25 +4.70,0.00,0.00,0.90,1.70,0.25 +34.10,1.00,25.00,0.93,1.70,0.20 +67.00,0.00,37.00,0.57,1.73,0.31 +48.00,0.00,18.00,0.35,1.66,0.32 +30.00,0.00,0.00,0.81,1.79,0.42 +53.00,0.00,23.00,0.42,1.85,0.40 +44.00,0.00,14.00,0.74,1.99,0.25 +30.00,0.00,0.00,0.75,1.79,0.42 +38.00,0.00,8.00,0.52,1.55,0.18 +63.00,0.00,33.00,0.51,1.65,0.24 +6.10,0.00,0.00,0.70,1.50,0.17 +15.50,0.00,0.00,0.45,1.70,0.27 +7.10,0.00,0.00,0.58,1.68,0.29 +55.00,0.00,25.00,0.41,1.51,0.26 +52.00,0.00,22.00,0.63,1.55,0.21 +30.00,0.00,0.00,0.83,1.66,0.18 +48.00,0.00,18.00,0.59,1.68,0.23 +30.00,0.00,0.00,0.68,1.53,0.17 +66.90,1.00,37.00,0.53,1.71,0.30 +30.00,0.00,0.00,0.66,1.52,0.19 +44.00,0.00,14.00,0.53,1.58,0.19 +30.00,0.00,0.00,0.63,1.54,0.20 +52.00,0.00,22.00,0.38,1.67,0.28 +19.60,0.00,0.00,0.69,1.73,0.34 +90.00,0.00,60.00,0.38,1.56,0.23 +30.00,0.00,0.00,0.55,1.82,0.28 +8.10,0.00,0.00,0.56,1.54,0.20 +50.80,1.00,25.00,0.58,1.57,0.21 +48.00,0.00,18.00,0.39,1.57,0.23 +1.30,0.00,0.00,0.88,1.67,0.25 +63.10,1.00,44.00,0.36,1.66,0.32 +26.20,0.00,0.00,0.62,1.58,0.22 +73.00,0.00,43.00,0.44,1.72,0.26 +56.20,1.00,29.00,0.69,1.62,0.25 +30.00,0.00,0.00,0.55,1.81,0.28 +108.00,0.00,78.00,0.57,1.60,0.22 +3.80,0.00,0.00,0.86,1.70,0.19 +50.00,0.00,20.00,0.44,1.65,0.25 +60.00,0.00,30.00,0.44,1.65,0.24 +64.50,1.00,53.00,0.42,1.69,0.26 +30.00,0.00,0.00,0.60,1.67,0.23 +47.00,0.00,17.00,0.52,1.65,0.23 +45.00,0.00,15.00,0.49,1.65,0.24 +14.50,0.00,0.00,0.61,1.69,0.23 +82.00,0.00,52.00,0.36,1.67,0.31 +56.30,1.00,53.00,0.78,1.65,0.29 +62.00,0.00,32.00,0.35,1.64,0.31 +56.00,0.00,26.00,0.58,1.77,0.35 +69.00,0.00,39.00,0.41,1.63,0.26 +13.80,0.00,0.00,1.25,1.77,0.25 +52.50,1.00,32.00,0.34,1.61,0.32 +43.00,0.00,13.00,0.46,1.66,0.25 +7.50,0.00,0.00,0.40,1.69,0.28 +58.00,0.00,28.00,0.66,1.74,0.34 +10.90,0.00,0.00,0.32,1.60,0.30 +48.00,0.00,18.00,0.32,1.65,0.30 +10.50,0.00,0.00,0.59,1.53,0.19 +10.70,0.00,0.00,0.96,1.76,0.21 +30.00,0.00,0.00,0.66,1.52,0.19 +45.00,0.00,15.00,0.51,1.67,0.24 +70.00,0.00,40.00,0.40,1.60,0.24 +58.00,0.00,28.00,0.34,1.58,0.27 +8.90,0.00,0.00,0.33,1.47,0.26 +54.00,0.00,24.00,0.49,1.70,0.29 +19.80,0.00,0.00,0.82,1.59,0.18 +12.30,0.00,0.00,0.58,1.72,0.24 +28.60,0.00,0.00,0.64,1.71,0.30 +74.00,0.00,44.00,0.36,1.66,0.31 +90.00,0.00,60.00,0.39,1.57,0.23 +66.00,0.00,36.00,0.44,1.71,0.33 +41.00,0.00,11.00,0.69,1.79,0.24 +43.00,0.00,13.00,0.39,1.68,0.28 +48.00,0.00,18.00,0.33,1.65,0.30 +85.00,0.00,55.00,0.39,1.58,0.26 +59.00,0.00,29.00,0.42,1.68,0.26 +91.00,0.00,61.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.39,1.68,0.28 +81.90,1.00,53.00,0.50,1.58,0.21 +15.10,0.00,0.00,0.51,1.64,0.29 +51.30,1.00,42.00,0.84,1.79,0.40 +7.00,0.00,0.00,0.48,1.64,0.22 +65.70,1.00,44.00,0.32,1.64,0.29 +55.00,0.00,25.00,0.45,1.62,0.25 +50.90,1.00,39.00,0.33,1.59,0.27 +42.00,0.00,12.00,0.57,1.63,0.25 +7.40,0.00,0.00,0.60,1.80,0.39 +58.00,0.00,28.00,0.31,1.62,0.28 +52.00,0.00,22.00,0.43,1.60,0.24 +23.40,0.00,0.00,0.80,1.78,0.46 +34.30,1.00,22.00,0.67,1.54,0.21 +51.80,1.00,23.00,0.42,1.79,0.38 +7.00,0.00,0.00,0.88,1.58,0.16 +62.70,1.00,58.00,0.88,1.58,0.16 +45.00,0.00,15.00,0.61,1.52,0.17 +41.00,0.00,11.00,0.65,1.77,0.25 +5.10,0.00,0.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.87,1.80,0.43 +101.00,0.00,71.00,0.64,1.57,0.20 +74.00,0.00,44.00,0.56,1.68,0.33 +16.00,0.00,0.00,0.35,1.66,0.32 +42.00,0.00,12.00,0.52,1.82,0.28 +11.70,0.00,0.00,0.36,1.66,0.30 +18.20,1.00,0.00,1.24,1.74,0.25 +44.00,0.00,14.00,0.62,1.80,0.24 +47.00,0.00,17.00,0.93,1.62,0.17 +67.00,0.00,37.00,0.59,1.74,0.31 +33.00,0.00,3.00,0.46,1.61,0.25 +30.00,0.00,0.00,0.95,1.73,0.24 +9.90,0.00,0.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.31,1.57,0.29 +25.90,0.00,0.00,0.59,1.70,0.27 +101.00,0.00,71.00,0.39,1.61,0.24 +7.20,0.00,0.00,1.17,1.87,0.50 +12.00,1.00,0.00,1.00,1.64,0.30 +72.00,0.00,42.00,0.39,1.68,0.28 +2.90,0.00,0.00,0.59,1.57,0.20 +41.00,0.00,11.00,0.68,1.79,0.24 +52.00,0.00,22.00,0.42,1.66,0.26 +9.80,0.00,0.00,1.03,1.76,0.21 +13.30,0.00,0.00,0.45,1.66,0.25 +63.00,0.00,33.00,0.32,1.65,0.28 +55.00,1.00,52.00,0.47,1.61,0.25 +72.00,0.00,42.00,0.56,1.72,0.24 +58.90,1.00,31.00,0.56,1.56,0.17 +69.00,0.00,39.00,0.44,1.70,0.25 +49.00,0.00,19.00,0.81,1.67,0.24 +30.00,0.00,0.00,0.91,1.68,0.25 +30.00,0.00,0.00,0.44,1.61,0.25 +9.60,0.00,0.00,0.93,1.59,0.17 +53.00,0.00,23.00,0.40,1.69,0.27 +2.10,0.00,0.00,0.44,1.64,0.27 +47.00,0.00,17.00,0.54,1.66,0.24 +83.00,0.00,53.00,0.55,1.65,0.22 +87.00,0.00,57.00,0.49,1.74,0.28 +77.00,0.00,47.00,0.55,1.66,0.23 +7.90,1.00,0.00,1.50,1.73,0.27 +7.40,0.00,0.00,0.84,1.68,0.34 +9.10,0.00,0.00,0.57,1.62,0.23 +88.00,0.00,58.00,0.64,1.69,0.23 +55.30,1.00,33.00,0.54,1.55,0.20 +63.00,0.00,33.00,0.46,1.69,0.26 +66.00,0.00,36.00,0.35,1.60,0.28 +18.60,1.00,0.00,0.70,1.53,0.15 +30.00,0.00,0.00,0.42,1.60,0.24 +66.00,0.00,36.00,0.58,1.72,0.24 +1.20,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.35,1.63,0.31 +16.10,1.00,0.00,0.87,1.71,0.25 +53.00,0.00,23.00,0.42,1.82,0.39 +50.00,0.00,20.00,0.61,1.53,0.19 +48.50,1.00,43.00,0.39,1.65,0.27 +44.00,0.00,14.00,0.54,1.67,0.24 +17.60,0.00,0.00,0.50,1.65,0.29 +87.00,0.00,57.00,0.36,1.57,0.25 +65.00,0.00,35.00,0.34,1.63,0.28 +44.00,0.00,14.00,0.52,1.60,0.21 +100.60,1.00,78.00,0.66,1.54,0.18 +21.10,0.00,0.00,0.79,1.67,0.30 +63.00,0.00,33.00,0.52,1.57,0.20 +62.00,0.00,32.00,0.49,1.56,0.25 +40.00,0.00,10.00,0.90,1.58,0.16 +59.00,0.00,29.00,0.55,1.61,0.23 +92.00,0.00,62.00,0.33,1.60,0.31 +58.70,1.00,42.00,0.84,1.79,0.40 +0.50,0.00,0.00,0.33,1.60,0.31 +65.00,0.00,35.00,0.36,1.64,0.30 +30.00,0.00,0.00,0.60,1.64,0.23 +78.00,0.00,48.00,0.51,1.73,0.27 +72.00,0.00,42.00,0.56,1.72,0.24 +22.90,1.00,17.00,0.64,1.55,0.22 +101.00,0.00,71.00,0.41,1.63,0.24 +22.80,0.00,0.00,0.33,1.57,0.27 +11.40,0.00,0.00,0.39,1.69,0.28 +66.00,0.00,36.00,0.50,1.68,0.24 +6.80,0.00,0.00,0.52,1.55,0.19 +47.00,0.00,17.00,0.90,1.61,0.17 +97.60,1.00,71.00,0.43,1.70,0.26 +22.50,0.00,0.00,0.88,1.70,0.19 +30.00,0.00,0.00,0.42,1.59,0.24 +6.30,0.00,0.00,0.32,1.59,0.31 +25.80,0.00,0.00,0.62,1.58,0.21 +25.20,0.00,0.00,0.54,1.81,0.28 +8.80,0.00,0.00,0.78,1.68,0.24 +17.10,0.00,0.00,0.58,1.53,0.20 +50.00,0.00,20.00,0.62,1.49,0.15 +72.00,0.00,42.00,0.36,1.61,0.26 +81.00,0.00,51.00,0.59,1.57,0.21 +78.00,0.00,48.00,0.49,1.67,0.24 +86.00,0.00,56.00,0.58,1.71,0.23 +22.70,0.00,0.00,0.60,1.55,0.21 +33.00,0.00,3.00,0.54,1.82,0.28 +73.00,0.00,43.00,0.38,1.67,0.28 +83.00,0.00,53.00,0.40,1.67,0.27 +37.40,1.00,31.00,0.91,1.70,0.19 +66.00,0.00,36.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.57,1.50,0.16 +69.00,0.00,39.00,0.43,1.57,0.25 +42.00,0.00,12.00,0.33,1.59,0.27 +91.40,1.00,69.00,0.58,1.51,0.17 +96.00,0.00,66.00,0.47,1.66,0.24 +72.80,1.00,62.00,0.67,1.52,0.19 +48.00,0.00,18.00,0.67,1.50,0.16 +86.00,0.00,56.00,0.56,1.71,0.24 +58.00,0.00,28.00,0.31,1.62,0.28 +11.50,1.00,0.00,0.74,1.64,0.24 +60.80,1.00,42.00,0.57,1.79,0.37 +41.00,0.00,11.00,0.76,1.94,0.25 +42.00,0.00,12.00,0.50,1.82,0.41 +93.40,1.00,68.00,0.40,1.56,0.25 +37.60,1.00,19.00,0.48,1.87,0.42 +8.80,0.00,0.00,0.32,1.60,0.31 +27.50,1.00,20.00,1.24,1.93,0.58 +30.00,0.00,0.00,0.54,1.83,0.29 +67.00,1.00,58.00,0.95,1.62,0.18 +30.00,0.00,0.00,0.47,1.64,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +30.50,1.00,13.00,0.53,1.53,0.17 +59.00,0.00,29.00,0.39,1.67,0.30 +90.00,0.00,60.00,0.38,1.59,0.24 +87.00,0.00,57.00,0.46,1.73,0.27 +23.90,0.00,0.00,0.69,1.73,0.35 +37.00,0.00,7.00,0.74,1.67,0.31 +44.00,0.00,14.00,0.44,1.71,0.26 +7.90,0.00,0.00,0.33,1.61,0.28 +41.10,1.00,15.00,1.00,1.61,0.17 +78.00,0.00,48.00,0.49,1.67,0.24 +30.00,0.00,0.00,0.48,1.60,0.26 +67.00,0.00,37.00,0.62,1.59,0.27 +60.00,0.00,30.00,0.70,1.55,0.16 +73.70,1.00,57.00,0.46,1.73,0.26 +58.60,1.00,44.00,0.42,1.83,0.39 +45.00,0.00,15.00,0.44,1.67,0.25 +62.60,1.00,62.00,0.68,1.53,0.19 +12.90,0.00,0.00,0.36,1.62,0.26 +30.00,0.00,0.00,0.89,1.82,0.51 +37.50,1.00,37.00,0.49,1.68,0.28 +20.90,0.00,0.00,0.42,1.84,0.40 +83.00,0.00,53.00,0.51,1.58,0.20 +74.00,0.00,44.00,0.32,1.64,0.29 +56.00,0.00,26.00,0.83,1.67,0.34 +74.00,0.00,44.00,0.56,1.60,0.22 +58.00,0.00,28.00,0.32,1.69,0.29 +54.00,0.00,24.00,0.52,1.57,0.19 +53.00,0.00,23.00,0.31,1.55,0.31 +30.00,0.00,0.00,0.37,1.56,0.28 +61.00,0.00,31.00,0.56,1.54,0.18 +52.00,0.00,22.00,0.63,1.55,0.21 +55.00,0.00,25.00,0.59,1.67,0.28 +71.00,0.00,41.00,0.57,1.65,0.25 +8.10,0.00,0.00,0.82,1.56,0.17 +69.00,0.00,39.00,0.54,1.56,0.18 +58.00,0.00,28.00,0.39,1.56,0.28 +64.10,1.00,48.00,0.49,1.68,0.24 +49.30,1.00,23.00,0.39,1.56,0.24 +30.00,0.00,0.00,0.60,1.56,0.20 +30.00,0.00,0.00,0.98,1.75,0.30 +41.20,1.00,41.00,0.55,1.81,0.27 +72.00,0.00,42.00,0.35,1.64,0.30 +69.90,1.00,58.00,0.91,1.60,0.17 +40.00,0.00,10.00,0.48,1.88,0.49 +86.00,0.00,56.00,0.54,1.81,0.28 +51.00,0.00,21.00,0.40,1.67,0.26 +48.00,0.00,18.00,0.47,1.62,0.23 +50.00,0.00,20.00,0.43,1.66,0.24 +87.00,0.00,57.00,0.44,1.68,0.27 +31.00,0.00,1.00,0.54,1.82,0.28 +60.00,0.00,30.00,0.57,1.76,0.25 +33.00,0.00,3.00,0.70,1.76,0.42 +42.00,0.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.42,1.60,0.24 +45.00,0.00,15.00,0.44,1.65,0.25 +73.00,0.00,43.00,0.43,1.71,0.26 +53.20,1.00,45.00,0.57,1.66,0.26 +30.00,0.00,0.00,0.34,1.51,0.27 +42.00,0.00,12.00,0.61,1.71,0.37 +58.00,0.00,28.00,0.69,1.73,0.35 +59.00,0.00,29.00,0.47,1.65,0.24 +59.00,0.00,29.00,0.42,1.67,0.25 +49.70,1.00,41.00,0.63,1.68,0.23 +64.30,1.00,62.00,0.80,1.54,0.17 +90.00,0.00,60.00,0.58,1.73,0.31 +12.10,0.00,0.00,0.71,1.55,0.15 +53.00,0.00,23.00,0.42,1.83,0.39 +30.00,0.00,0.00,0.32,1.59,0.32 +40.00,0.00,10.00,0.95,1.75,0.21 +56.00,0.00,26.00,0.52,1.65,0.23 +60.00,0.00,30.00,0.49,1.67,0.24 +35.20,1.00,12.00,0.52,1.59,0.19 +30.00,0.00,0.00,0.45,1.63,0.25 +0.80,0.00,0.00,0.60,1.60,0.28 +27.40,1.00,0.00,0.64,1.53,0.16 +106.00,0.00,76.00,0.52,1.70,0.29 +83.00,0.00,53.00,0.44,1.68,0.28 +30.00,0.00,0.00,0.86,1.81,0.40 +56.10,1.00,34.00,0.38,1.57,0.28 +69.00,0.00,39.00,0.51,1.55,0.26 +92.00,0.00,62.00,0.34,1.61,0.31 +39.00,0.00,9.00,0.82,1.61,0.18 +43.00,0.00,13.00,0.39,1.68,0.28 +63.00,0.00,33.00,0.71,1.54,0.20 +41.80,1.00,39.00,0.61,1.55,0.21 +49.00,0.00,19.00,0.72,1.72,0.25 +30.00,0.00,0.00,0.91,1.58,0.21 +19.70,0.00,0.00,0.68,1.50,0.17 +53.30,1.00,33.00,0.58,1.81,0.26 +69.00,0.00,39.00,0.64,1.53,0.20 +63.00,0.00,33.00,0.42,1.70,0.27 +30.00,0.00,0.00,0.36,1.66,0.32 +72.00,0.00,42.00,0.42,1.87,0.40 +101.00,0.00,71.00,0.42,1.68,0.25 +30.00,0.00,0.00,0.79,1.79,0.39 +51.00,0.00,21.00,0.70,1.54,0.15 +48.00,0.00,18.00,0.56,1.68,0.23 +46.00,1.00,32.00,0.61,1.60,0.26 +101.00,0.00,71.00,0.42,1.67,0.25 +19.20,0.00,0.00,0.55,1.54,0.20 +101.00,0.00,71.00,0.37,1.55,0.25 +55.00,0.00,25.00,0.50,1.64,0.23 +85.00,0.00,55.00,0.45,1.53,0.27 +46.00,0.00,16.00,0.58,1.80,0.26 +69.00,0.00,39.00,0.36,1.55,0.28 +10.10,0.00,0.00,0.65,1.69,0.23 +7.70,0.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.46,1.68,0.26 +43.00,0.00,13.00,0.54,1.53,0.16 +21.70,0.00,0.00,0.64,1.56,0.20 +49.00,0.00,19.00,0.33,1.68,0.27 +44.00,0.00,14.00,0.47,1.70,0.24 +9.40,0.00,0.00,0.36,1.62,0.28 +47.00,0.00,17.00,0.42,1.59,0.24 +18.20,1.00,0.00,1.20,1.88,0.50 +37.00,0.00,7.00,0.60,1.55,0.21 +61.00,0.00,31.00,0.57,1.53,0.19 +94.30,1.00,67.00,0.58,1.67,0.27 +30.00,0.00,0.00,0.42,1.60,0.24 +10.70,0.00,0.00,0.35,1.60,0.27 +57.00,0.00,27.00,0.43,1.66,0.26 +19.60,0.00,0.00,0.75,1.76,0.24 +58.00,0.00,28.00,0.38,1.55,0.28 +30.00,0.00,0.00,0.60,1.63,0.22 +51.00,0.00,21.00,0.65,1.53,0.15 +69.00,0.00,39.00,0.46,1.72,0.27 +30.00,0.00,0.00,0.73,1.79,0.39 +59.30,1.00,37.00,0.61,1.75,0.24 +90.00,0.00,60.00,0.40,1.66,0.27 +56.90,1.00,52.00,0.87,1.70,0.19 +45.00,0.00,15.00,0.43,1.66,0.24 +90.00,0.00,60.00,0.40,1.65,0.25 +30.00,0.00,0.00,0.61,1.55,0.21 +42.00,0.00,12.00,0.34,1.61,0.27 +73.00,0.00,43.00,0.39,1.67,0.28 +64.00,0.00,34.00,0.37,1.64,0.30 +81.00,0.00,51.00,0.33,1.60,0.28 +62.00,1.00,40.00,0.55,1.68,0.23 +59.20,1.00,33.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.40,1.57,0.24 +41.00,0.00,11.00,0.65,1.77,0.25 +30.00,0.00,0.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.82,1.57,0.16 +61.00,0.00,31.00,0.66,1.84,0.25 +15.00,0.00,0.00,0.70,1.74,0.35 +67.70,1.00,51.00,0.32,1.62,0.30 +63.00,0.00,33.00,0.49,1.69,0.25 +67.00,0.00,37.00,0.55,1.72,0.25 +30.00,0.00,0.00,0.63,1.67,0.23 +14.00,1.00,0.00,0.58,1.74,0.32 +72.00,0.00,42.00,0.51,1.75,0.37 +56.00,0.00,26.00,0.56,1.75,0.33 +30.00,0.00,0.00,0.68,1.61,0.27 +30.00,0.00,0.00,0.98,1.76,0.21 +30.00,0.00,0.00,0.46,1.69,0.26 +19.40,0.00,0.00,0.64,1.76,0.35 +66.10,1.00,58.00,0.90,1.59,0.16 +74.40,1.00,58.00,0.64,1.69,0.23 +3.70,0.00,0.00,0.55,1.68,0.23 +35.70,1.00,13.00,0.67,1.74,0.40 +10.10,1.00,0.00,1.00,1.76,0.31 +90.00,0.00,60.00,0.45,1.65,0.26 +33.00,0.00,3.00,0.69,1.67,0.32 +106.00,0.00,76.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.53,1.65,0.23 +27.60,0.00,0.00,0.44,1.68,0.27 +1.80,0.00,0.00,1.22,1.67,0.20 +63.70,1.00,63.00,0.35,1.66,0.31 +74.00,0.00,44.00,0.34,1.61,0.31 +34.70,1.00,31.00,0.49,1.66,0.28 +41.00,0.00,11.00,0.46,1.74,0.27 +52.00,0.00,22.00,0.42,1.62,0.25 +51.00,0.00,21.00,0.35,1.65,0.31 +101.00,0.00,71.00,0.35,1.50,0.27 +49.80,1.00,24.00,0.55,1.56,0.18 +26.70,0.00,0.00,0.39,1.59,0.26 +44.00,0.00,14.00,0.47,1.55,0.27 +30.00,0.00,0.00,0.47,1.68,0.25 +24.70,1.00,14.00,0.66,1.57,0.23 +69.00,0.00,39.00,0.59,1.57,0.21 +101.00,0.00,71.00,0.37,1.56,0.24 +51.00,0.00,21.00,0.34,1.62,0.31 +33.00,0.00,3.00,0.46,1.65,0.26 +73.00,0.00,43.00,0.44,1.72,0.26 +48.80,1.00,27.00,0.76,1.66,0.28 +30.00,0.00,0.00,0.74,1.64,0.24 +49.00,0.00,19.00,0.51,1.64,0.22 +63.00,0.00,33.00,0.78,1.55,0.20 +18.50,0.00,0.00,0.61,1.76,0.25 +24.10,1.00,0.00,0.89,1.82,0.51 +15.10,0.00,0.00,0.63,1.55,0.21 +12.10,0.00,0.00,0.34,1.65,0.30 +7.70,0.00,0.00,0.65,1.71,0.34 +36.20,1.00,35.00,1.01,1.77,0.21 +47.90,1.00,36.00,0.47,1.64,0.27 +45.50,1.00,18.00,0.53,1.55,0.18 +86.00,0.00,56.00,0.53,1.79,0.28 +20.20,0.00,0.00,0.74,1.65,0.27 +96.00,0.00,66.00,0.46,1.69,0.26 +55.00,0.00,25.00,0.44,1.74,0.35 +25.30,0.00,0.00,0.61,1.68,0.23 +38.90,1.00,18.00,0.93,1.72,0.25 +32.80,1.00,19.00,0.81,1.67,0.24 +44.00,0.00,14.00,0.46,1.70,0.25 +4.00,0.00,0.00,0.38,1.59,0.26 +66.00,0.00,36.00,0.36,1.62,0.28 +58.50,1.00,30.00,0.60,1.81,0.26 +50.00,0.00,20.00,0.40,1.57,0.27 +26.60,1.00,18.00,0.61,1.59,0.27 +28.60,0.00,0.00,0.61,1.69,0.23 +30.00,0.00,0.00,0.38,1.58,0.28 +49.00,0.00,19.00,0.71,1.52,0.18 +13.80,0.00,0.00,0.86,1.81,0.50 +0.90,0.00,0.00,0.46,1.66,0.25 +14.30,0.00,0.00,0.42,1.69,0.26 +12.90,0.00,0.00,0.40,1.66,0.26 +30.00,0.00,0.00,1.03,1.77,0.21 +30.00,0.00,0.00,0.52,1.56,0.19 +74.00,0.00,44.00,0.33,1.64,0.29 +25.70,1.00,14.00,0.41,1.51,0.26 +44.00,0.00,14.00,0.62,1.66,0.28 +23.50,1.00,0.00,0.83,1.57,0.16 +48.00,0.00,18.00,0.44,1.61,0.25 +30.20,1.00,7.00,0.52,1.55,0.19 +82.40,1.00,60.00,0.44,1.62,0.26 +53.00,0.00,23.00,0.49,1.71,0.32 +70.00,0.00,40.00,0.38,1.60,0.24 +54.40,1.00,48.00,0.47,1.75,0.28 +60.00,0.00,30.00,0.32,1.71,0.29 +78.00,0.00,48.00,0.45,1.71,0.27 +72.00,0.00,42.00,0.55,1.73,0.24 +49.90,1.00,42.00,0.69,1.80,0.39 +26.90,1.00,0.00,0.35,1.62,0.30 +47.00,0.00,17.00,0.38,1.68,0.29 +43.00,0.00,13.00,0.36,1.67,0.29 +73.00,0.00,43.00,0.38,1.60,0.24 +22.30,0.00,0.00,0.47,1.62,0.23 +66.00,0.00,36.00,0.73,1.69,0.23 +33.00,0.00,3.00,0.70,1.68,0.32 +43.00,0.00,13.00,0.40,1.64,0.25 +30.00,0.00,0.00,0.35,1.63,0.30 +16.70,0.00,0.00,0.51,1.65,0.27 +30.00,0.00,0.00,0.59,1.61,0.25 +51.00,0.00,21.00,0.47,1.69,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +64.00,0.00,34.00,0.53,1.66,0.29 +78.00,0.00,48.00,0.52,1.78,0.28 +8.30,1.00,0.00,0.73,1.52,0.16 +74.00,0.00,44.00,0.35,1.62,0.31 +52.00,0.00,22.00,0.68,1.54,0.21 +59.00,0.00,29.00,0.36,1.58,0.24 +101.00,0.00,71.00,0.49,1.63,0.25 +64.00,0.00,34.00,0.52,1.65,0.28 +44.00,0.00,14.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.57,1.56,0.18 +45.00,0.00,15.00,0.43,1.61,0.25 +58.00,0.00,28.00,0.31,1.58,0.28 +11.40,1.00,0.00,0.32,1.47,0.27 +44.00,0.00,14.00,0.64,1.69,0.30 +69.00,0.00,39.00,0.34,1.65,0.28 +37.00,0.00,7.00,0.54,1.54,0.19 +15.90,0.00,0.00,0.73,1.80,0.43 +58.00,0.00,28.00,0.34,1.56,0.26 +12.20,0.00,0.00,0.60,1.74,0.25 +82.00,0.00,52.00,0.51,1.64,0.27 +47.00,0.00,17.00,0.80,1.58,0.16 +13.70,0.00,0.00,0.33,1.55,0.26 +49.00,0.00,19.00,0.41,1.86,0.40 +48.00,0.00,18.00,0.35,1.63,0.33 +40.00,0.00,10.00,0.43,1.66,0.25 +59.00,0.00,29.00,0.49,1.62,0.22 +30.00,0.00,0.00,0.53,1.55,0.18 +85.00,0.00,55.00,0.40,1.57,0.28 +14.60,0.00,0.00,0.32,1.60,0.28 +59.00,0.00,29.00,0.36,1.57,0.24 +63.00,0.00,33.00,0.32,1.66,0.28 +19.80,0.00,0.00,0.35,1.56,0.27 +30.00,0.00,0.00,0.57,1.55,0.17 +78.00,0.00,48.00,0.50,1.78,0.28 +30.00,0.00,0.00,0.58,1.75,0.33 +44.00,0.00,14.00,0.60,1.77,0.24 +70.00,0.00,40.00,0.40,1.58,0.27 +69.00,0.00,39.00,0.45,1.66,0.28 +30.00,0.00,0.00,0.41,1.62,0.24 +42.90,1.00,36.00,0.50,1.65,0.24 +2.20,0.00,0.00,0.41,1.70,0.27 +43.00,0.00,13.00,0.47,1.67,0.25 +66.00,0.00,36.00,0.53,1.71,0.24 +74.00,0.00,44.00,0.53,1.82,0.29 +74.00,0.00,44.00,0.36,1.64,0.32 +40.00,0.00,10.00,0.70,1.55,0.17 +92.00,0.00,62.00,0.33,1.60,0.31 +43.00,0.00,13.00,0.68,1.74,0.41 +45.00,0.00,15.00,0.54,1.69,0.23 +101.00,0.00,71.00,0.41,1.63,0.24 +40.00,0.00,10.00,0.48,1.88,0.49 +40.10,1.00,14.00,0.61,1.63,0.27 +30.00,0.00,0.00,0.69,1.64,0.24 +43.00,0.00,13.00,0.54,1.53,0.16 +50.00,0.00,20.00,0.42,1.71,0.27 +21.30,0.00,0.00,0.55,1.71,0.24 +31.00,0.00,1.00,0.54,1.82,0.28 +74.00,0.00,44.00,0.33,1.61,0.28 +58.00,0.00,28.00,0.31,1.58,0.28 +5.70,0.00,0.00,0.34,1.55,0.25 +63.00,0.00,33.00,0.45,1.69,0.26 +2.80,0.00,0.00,0.54,1.74,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +13.60,1.00,0.00,1.01,1.77,0.21 +72.00,0.00,42.00,0.83,1.78,0.39 +76.30,1.00,52.00,0.53,1.64,0.30 +95.90,1.00,76.00,0.47,1.65,0.27 +81.00,0.00,51.00,0.46,1.63,0.26 +0.70,0.00,0.00,0.62,1.66,0.28 +30.00,0.00,0.00,0.98,1.76,0.21 +9.30,0.00,0.00,0.64,1.53,0.20 +21.80,0.00,0.00,1.24,1.74,0.25 +30.00,0.00,0.00,0.61,1.75,0.25 +86.00,0.00,56.00,0.57,1.71,0.24 +30.00,0.00,0.00,0.58,1.50,0.16 +52.00,0.00,22.00,0.42,1.60,0.24 +58.00,0.00,28.00,0.36,1.54,0.28 +49.00,0.00,19.00,0.78,1.74,0.25 +38.00,0.00,8.00,0.53,1.54,0.18 +21.30,0.00,0.00,0.85,1.57,0.18 +97.00,0.00,67.00,0.59,1.70,0.27 +10.00,0.00,0.00,0.71,1.82,0.41 +34.00,0.00,4.00,0.62,1.53,0.16 +44.00,0.00,14.00,0.62,1.79,0.24 +69.90,1.00,69.00,0.55,1.52,0.17 +30.00,0.00,0.00,0.45,1.63,0.25 +75.20,1.00,68.00,0.40,1.66,0.26 +13.80,1.00,0.00,1.21,1.92,0.58 +30.00,0.00,0.00,0.54,1.54,0.17 +55.00,0.00,25.00,0.41,1.51,0.27 +62.00,0.00,32.00,0.35,1.64,0.31 +34.00,0.00,4.00,0.59,1.51,0.16 +54.00,0.00,24.00,0.42,1.70,0.26 +48.80,1.00,42.00,0.72,1.82,0.42 +45.50,1.00,23.00,0.71,1.73,0.35 +45.30,1.00,38.00,0.72,1.61,0.27 +30.00,0.00,0.00,0.89,1.62,0.30 +63.00,0.00,33.00,0.32,1.60,0.28 +30.00,0.00,0.00,0.32,1.47,0.27 +51.40,1.00,40.00,0.39,1.59,0.24 +2.90,0.00,0.00,0.56,1.57,0.26 +21.20,1.00,0.00,0.60,1.76,0.33 +42.00,0.00,12.00,0.34,1.62,0.27 +45.00,0.00,15.00,0.46,1.73,0.28 +59.30,1.00,42.00,0.34,1.57,0.25 +38.00,1.00,22.00,0.42,1.60,0.24 +61.00,0.00,31.00,0.72,1.51,0.18 +30.00,0.00,0.00,0.68,1.63,0.25 +64.00,0.00,34.00,0.62,1.56,0.22 +25.20,1.00,10.00,0.36,1.57,0.23 +34.00,0.00,4.00,0.57,1.62,0.25 +30.00,0.00,0.00,1.07,1.76,0.22 +4.40,0.00,0.00,0.61,1.68,0.23 +2.10,0.00,0.00,0.43,1.73,0.27 +72.00,0.00,42.00,0.39,1.68,0.28 +30.00,0.00,0.00,0.89,1.67,0.25 +107.00,0.00,77.00,0.40,1.62,0.24 +11.30,0.00,0.00,0.36,1.63,0.28 +36.10,1.00,17.00,0.40,1.57,0.24 +45.00,0.00,15.00,0.66,1.57,0.23 +45.00,0.00,15.00,0.61,1.52,0.17 +106.00,0.00,76.00,0.46,1.63,0.26 +27.40,1.00,0.00,0.95,1.74,0.28 +0.20,0.00,0.00,0.60,1.50,0.17 +30.00,0.00,0.00,0.82,1.63,0.19 +9.90,0.00,0.00,0.72,1.76,0.36 +30.00,0.00,0.00,0.57,1.73,0.32 +23.30,0.00,0.00,0.47,1.66,0.25 +3.60,0.00,0.00,1.15,1.76,0.22 +44.00,0.00,14.00,0.46,1.54,0.27 +49.00,0.00,19.00,0.42,1.88,0.40 +63.00,0.00,33.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.31,1.58,0.32 +50.00,0.00,20.00,0.78,1.68,0.31 +50.00,1.00,31.00,0.58,1.53,0.19 +71.00,0.00,41.00,0.70,1.68,0.23 +13.60,0.00,0.00,0.69,1.66,0.33 +6.60,0.00,0.00,0.39,1.67,0.27 +69.00,0.00,39.00,0.69,1.53,0.20 +86.00,0.00,56.00,0.43,1.72,0.26 +88.00,0.00,58.00,0.86,1.57,0.16 +72.00,0.00,42.00,0.43,1.71,0.27 +41.00,0.00,11.00,0.72,1.84,0.25 +99.00,1.00,78.00,0.67,1.54,0.18 +98.00,0.00,68.00,0.38,1.64,0.26 +41.20,1.00,36.00,0.44,1.74,0.35 +65.90,1.00,60.00,0.57,1.68,0.30 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.36,1.64,0.28 +60.00,0.00,30.00,0.33,1.64,0.29 +58.00,0.00,28.00,0.47,1.68,0.25 +66.00,0.00,36.00,0.43,1.70,0.33 +78.00,0.00,48.00,0.50,1.69,0.25 +60.00,0.00,30.00,0.58,1.59,0.22 +90.00,0.00,60.00,0.57,1.72,0.31 +107.00,0.00,77.00,0.38,1.60,0.25 +83.50,1.00,69.00,0.63,1.50,0.17 +74.00,0.00,44.00,0.54,1.74,0.25 +52.00,0.00,22.00,0.41,1.62,0.25 +27.20,0.00,0.00,0.64,1.51,0.18 +92.00,0.00,62.00,0.62,1.69,0.24 +40.00,0.00,10.00,0.36,1.57,0.24 +52.00,0.00,22.00,0.42,1.63,0.25 +56.30,1.00,35.00,0.34,1.59,0.29 +45.70,1.00,41.00,0.36,1.61,0.25 +65.00,0.00,35.00,0.32,1.59,0.30 +53.00,0.00,23.00,0.47,1.71,0.33 +39.00,0.00,9.00,0.50,1.79,0.39 +81.00,0.00,51.00,0.46,1.63,0.26 +16.00,0.00,0.00,0.73,1.55,0.21 +47.00,0.00,17.00,0.34,1.54,0.28 +48.00,0.00,18.00,0.70,1.69,0.22 +3.40,0.00,0.00,0.62,1.49,0.15 +49.00,1.00,20.00,0.56,1.69,0.23 +73.10,1.00,53.00,0.51,1.58,0.20 +101.00,0.00,71.00,0.37,1.55,0.24 +28.10,0.00,0.00,0.51,1.64,0.29 +78.20,1.00,67.00,0.59,1.70,0.26 +13.70,0.00,0.00,0.54,1.56,0.20 +44.00,0.00,14.00,0.54,1.59,0.18 +48.00,0.00,18.00,0.44,1.61,0.25 +48.00,0.00,18.00,0.66,1.50,0.16 +65.20,1.00,58.00,0.62,1.68,0.23 +18.80,1.00,10.00,1.18,1.76,0.22 +30.00,0.00,0.00,0.31,1.53,0.27 +9.10,0.00,0.00,0.54,1.71,0.31 +77.20,1.00,48.00,0.50,1.70,0.26 +83.20,1.00,55.00,0.38,1.55,0.24 +30.00,0.00,0.00,0.76,1.78,0.44 +70.60,1.00,42.00,0.39,1.69,0.28 +66.00,0.00,36.00,0.32,1.60,0.29 +91.00,0.00,61.00,0.39,1.68,0.28 +12.60,0.00,0.00,1.06,1.75,0.22 +91.00,0.00,61.00,0.36,1.64,0.29 +3.10,1.00,0.00,1.21,1.92,0.58 +30.00,0.00,0.00,0.39,1.57,0.24 +44.00,0.00,14.00,0.65,1.61,0.29 +30.00,0.00,0.00,0.99,1.63,0.18 +97.00,0.00,67.00,0.59,1.69,0.26 +59.10,1.00,39.00,1.04,1.78,0.27 +21.30,0.00,0.00,0.51,1.57,0.20 +94.00,0.00,64.00,0.49,1.78,0.28 +46.00,0.00,16.00,0.46,1.70,0.26 +30.00,0.00,0.00,0.37,1.54,0.27 +5.90,0.00,0.00,0.89,1.82,0.51 +53.00,0.00,23.00,0.38,1.55,0.24 +38.00,0.00,8.00,0.53,1.54,0.18 +37.00,0.00,7.00,0.56,1.54,0.19 +16.80,0.00,0.00,0.84,1.68,0.35 +9.40,0.00,0.00,0.82,1.60,0.18 +47.00,0.00,17.00,0.57,1.74,0.24 +20.00,1.00,10.00,1.14,1.64,0.20 +53.00,0.00,23.00,0.31,1.57,0.31 +67.00,0.00,37.00,0.59,1.62,0.22 +63.90,1.00,48.00,0.50,1.69,0.25 +44.00,0.00,14.00,0.43,1.71,0.26 +29.70,0.00,0.00,0.50,1.63,0.26 +30.00,0.00,0.00,0.60,1.56,0.20 +6.00,1.00,0.00,0.61,1.52,0.18 +34.90,1.00,25.00,0.98,1.76,0.23 +39.00,0.00,9.00,0.40,1.56,0.28 +68.10,1.00,44.00,0.32,1.58,0.31 +29.70,1.00,0.00,0.90,1.58,0.21 +99.00,0.00,69.00,0.59,1.50,0.17 +49.00,0.00,19.00,0.42,1.88,0.40 +30.00,0.00,0.00,0.55,1.61,0.23 +61.00,0.00,31.00,0.33,1.59,0.31 +53.00,0.00,23.00,0.31,1.55,0.30 +67.00,0.00,37.00,0.56,1.73,0.25 +30.00,0.00,0.00,0.83,1.65,0.18 +72.00,0.00,42.00,0.37,1.65,0.28 +32.30,1.00,10.00,0.94,1.74,0.20 +75.00,0.00,45.00,0.64,1.72,0.39 +2.30,0.00,0.00,1.00,1.77,0.21 +71.00,0.00,41.00,0.59,1.50,0.15 +5.60,0.00,0.00,0.60,1.65,0.23 +41.00,0.00,11.00,0.66,1.72,0.40 +30.00,0.00,0.00,0.51,1.57,0.20 +88.80,1.00,77.00,0.39,1.61,0.25 +75.00,0.00,45.00,0.34,1.56,0.25 +84.50,1.00,58.00,0.62,1.74,0.24 +47.90,1.00,35.00,0.99,1.77,0.21 +49.00,1.00,26.00,0.49,1.63,0.25 +30.00,0.00,0.00,0.47,1.64,0.27 +27.10,0.00,0.00,0.32,1.60,0.28 +42.50,1.00,33.00,0.56,1.75,0.25 +52.00,0.00,22.00,0.71,1.54,0.20 +77.00,0.00,47.00,0.55,1.67,0.23 +79.00,0.00,49.00,0.45,1.65,0.26 +73.00,0.00,43.00,0.45,1.74,0.28 +44.20,1.00,30.00,0.71,1.55,0.15 +10.60,0.00,0.00,0.32,1.72,0.29 +30.00,0.00,0.00,0.61,1.55,0.21 +17.90,0.00,0.00,0.72,1.68,0.22 +57.40,1.00,47.00,0.75,1.54,0.20 +30.00,0.00,0.00,0.51,1.57,0.20 +6.90,0.00,0.00,0.90,1.77,0.25 +2.40,0.00,0.00,0.57,1.66,0.22 +27.20,0.00,0.00,0.35,1.62,0.30 +39.00,0.00,9.00,0.49,1.67,0.28 +92.00,0.00,62.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.60,1.56,0.20 +39.00,0.00,9.00,0.38,1.54,0.28 +30.00,0.00,0.00,0.89,1.72,0.20 +91.00,0.00,61.00,0.37,1.66,0.28 +63.00,0.00,33.00,0.62,1.60,0.23 +65.00,0.00,35.00,0.36,1.64,0.29 +61.10,1.00,44.00,0.54,1.74,0.25 +30.00,0.00,0.00,0.66,1.51,0.18 +26.60,1.00,0.00,1.11,1.76,0.24 +83.00,0.00,53.00,0.51,1.58,0.20 +30.00,0.00,0.00,0.71,1.62,0.25 +30.00,0.00,0.00,1.11,1.76,0.24 +85.00,0.00,55.00,0.39,1.57,0.28 +101.00,0.00,71.00,0.43,1.70,0.26 +6.90,1.00,0.00,0.59,1.70,0.28 +30.00,0.00,0.00,0.80,1.66,0.25 +19.10,1.00,0.00,0.90,1.82,0.41 +44.00,0.00,14.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.74,1.64,0.24 +30.00,0.00,0.00,0.82,1.60,0.18 +69.00,0.00,39.00,0.48,1.68,0.29 +57.10,1.00,31.00,0.71,1.52,0.18 +71.50,1.00,53.00,0.43,1.70,0.26 +44.00,0.00,14.00,0.75,1.95,0.25 +43.00,0.00,13.00,0.87,1.76,0.24 +69.00,0.00,39.00,0.66,1.52,0.18 +24.20,1.00,0.00,1.05,1.78,0.30 +57.00,0.00,27.00,0.42,1.68,0.26 +50.00,0.00,20.00,0.53,1.59,0.21 +107.00,0.00,77.00,0.39,1.60,0.25 +38.70,1.00,31.00,0.47,1.64,0.24 +70.00,0.00,40.00,0.52,1.70,0.23 +6.90,0.00,0.00,0.83,1.69,0.22 +44.00,0.00,14.00,0.46,1.70,0.25 +30.00,0.00,0.00,1.00,1.77,0.24 +30.00,0.00,0.00,0.92,1.83,0.42 +30.00,0.00,0.00,0.64,1.50,0.17 +63.00,0.00,33.00,0.50,1.83,0.28 +71.60,1.00,71.00,0.64,1.56,0.20 +29.60,0.00,0.00,0.49,1.63,0.26 +40.00,0.00,10.00,0.45,1.68,0.25 +64.80,1.00,42.00,0.80,1.79,0.39 +20.60,0.00,0.00,0.70,1.52,0.19 +61.00,0.00,31.00,0.64,1.83,0.25 +87.00,0.00,57.00,0.39,1.57,0.24 +80.00,1.00,62.00,0.82,1.59,0.17 +60.60,1.00,34.00,0.33,1.63,0.29 +73.00,0.00,43.00,0.38,1.67,0.28 +48.60,1.00,20.00,0.53,1.72,0.24 +53.00,0.00,23.00,0.46,1.67,0.25 +45.00,0.00,15.00,0.45,1.67,0.25 +52.00,0.00,22.00,0.62,1.56,0.21 +96.00,0.00,66.00,0.47,1.66,0.25 +52.00,0.00,22.00,0.80,1.72,0.25 +50.00,0.00,20.00,0.71,1.53,0.15 +60.00,1.00,34.00,0.39,1.69,0.28 +70.00,0.00,40.00,0.55,1.69,0.23 +30.00,0.00,0.00,1.17,1.76,0.22 +64.00,0.00,34.00,0.38,1.58,0.28 +27.20,0.00,0.00,0.77,1.66,0.28 +58.00,0.00,28.00,0.34,1.56,0.27 +52.00,0.00,22.00,0.82,1.76,0.25 +57.90,1.00,37.00,0.54,1.71,0.31 +54.80,1.00,29.00,0.49,1.62,0.22 +103.20,1.00,74.00,0.36,1.66,0.31 +53.00,0.00,23.00,0.58,1.65,0.26 +93.00,0.00,63.00,0.36,1.68,0.31 +72.00,0.00,42.00,0.43,1.82,0.39 +2.00,0.00,0.00,0.89,1.82,0.51 +43.00,0.00,13.00,0.40,1.69,0.28 +88.00,0.00,58.00,0.63,1.72,0.23 +74.00,0.00,44.00,0.33,1.59,0.31 +63.00,0.00,33.00,0.55,1.54,0.20 +87.00,0.00,57.00,0.46,1.72,0.26 +50.00,0.00,20.00,0.41,1.57,0.27 +26.20,0.00,0.00,1.01,1.78,0.24 +64.50,1.00,41.00,0.58,1.50,0.16 +16.80,1.00,14.00,0.50,1.61,0.21 +30.00,0.00,0.00,0.34,1.61,0.31 +50.00,0.00,20.00,0.41,1.57,0.27 +22.80,0.00,0.00,0.58,1.50,0.16 +6.70,0.00,0.00,0.41,1.57,0.27 +24.00,0.00,0.00,0.68,1.68,0.23 +101.00,0.00,71.00,0.43,1.70,0.26 +17.40,0.00,0.00,0.43,1.71,0.26 +61.80,1.00,58.00,0.62,1.68,0.23 +28.00,1.00,0.00,1.10,1.76,0.23 +8.70,0.00,0.00,0.92,1.63,0.30 +15.60,0.00,0.00,0.69,1.75,0.42 +54.00,0.00,24.00,0.53,1.57,0.18 +30.00,0.00,0.00,0.51,1.65,0.23 +48.00,0.00,18.00,0.52,1.59,0.20 +38.10,1.00,19.00,0.73,1.52,0.18 +53.00,0.00,23.00,0.45,1.69,0.26 +30.00,1.00,18.00,0.42,1.67,0.26 +53.00,0.00,23.00,0.45,1.72,0.33 +49.00,0.00,19.00,0.78,1.75,0.25 +47.00,0.00,17.00,0.38,1.68,0.29 +47.80,1.00,20.00,0.42,1.56,0.25 +44.00,0.00,14.00,0.45,1.65,0.26 +59.00,0.00,29.00,0.58,1.74,0.24 +49.00,0.00,19.00,0.34,1.66,0.27 +85.00,0.00,55.00,0.40,1.58,0.27 +107.00,0.00,77.00,0.38,1.60,0.24 +30.00,0.00,0.00,0.63,1.54,0.20 +41.00,0.00,11.00,0.42,1.65,0.25 +20.90,1.00,0.00,0.74,1.54,0.20 +61.00,0.00,31.00,0.56,1.55,0.17 +58.00,0.00,28.00,0.35,1.55,0.28 +86.00,1.00,57.00,0.46,1.70,0.26 +73.00,0.00,43.00,0.38,1.67,0.28 +68.00,0.00,38.00,0.59,1.73,0.25 +43.00,0.00,13.00,0.44,1.71,0.26 +44.00,0.00,14.00,0.46,1.55,0.27 +85.20,1.00,62.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.81,1.60,0.16 +41.00,0.00,11.00,0.41,1.65,0.25 +44.00,0.00,14.00,0.68,1.58,0.25 +71.80,1.00,53.00,0.76,1.63,0.29 +97.20,1.00,69.00,0.58,1.51,0.17 +50.00,0.00,20.00,0.56,1.69,0.23 +44.00,0.00,14.00,0.67,1.52,0.18 +44.00,0.00,14.00,0.59,1.78,0.26 +30.00,0.00,0.00,0.72,1.89,0.26 +59.00,0.00,29.00,0.58,1.78,0.27 +89.30,1.00,62.00,0.67,1.53,0.19 +30.00,0.00,0.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.64,1.67,0.23 +47.00,0.00,17.00,0.56,1.73,0.24 +36.00,0.00,6.00,0.55,1.59,0.22 +10.10,0.00,0.00,0.78,1.68,0.33 +46.40,1.00,22.00,0.36,1.62,0.26 +26.60,0.00,0.00,0.67,1.57,0.24 +26.50,1.00,18.00,0.44,1.61,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +43.90,1.00,23.00,0.61,1.70,0.29 +30.00,0.00,0.00,0.78,1.78,0.45 +47.00,0.00,17.00,0.38,1.67,0.29 +43.00,0.00,13.00,0.41,1.69,0.27 +21.00,0.00,0.00,0.62,1.63,0.23 +72.00,0.00,42.00,0.36,1.61,0.25 +96.00,0.00,66.00,0.48,1.63,0.23 +10.50,0.00,0.00,0.96,1.76,0.21 +71.00,0.00,41.00,0.37,1.59,0.26 +3.90,0.00,0.00,0.41,1.56,0.25 +69.00,0.00,39.00,0.46,1.67,0.28 +67.00,0.00,37.00,0.61,1.69,0.23 +49.00,0.00,19.00,0.33,1.73,0.28 +44.00,0.00,14.00,0.43,1.63,0.26 +48.00,0.00,18.00,0.33,1.65,0.29 +30.00,0.00,0.00,0.32,1.59,0.32 +39.00,0.00,9.00,0.37,1.66,0.30 +30.00,0.00,0.00,0.37,1.54,0.28 +30.00,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.74,1.55,0.20 +7.40,0.00,0.00,0.58,1.65,0.27 +60.60,1.00,60.00,0.61,1.74,0.32 +59.80,1.00,49.00,0.45,1.65,0.26 +43.00,0.00,13.00,0.46,1.66,0.25 +15.90,0.00,0.00,0.34,1.66,0.31 +76.90,1.00,62.00,0.44,1.73,0.27 +44.00,0.00,14.00,0.55,1.67,0.24 +74.00,0.00,44.00,0.38,1.76,0.36 +51.00,0.00,21.00,0.46,1.71,0.26 +7.10,0.00,0.00,0.53,1.54,0.17 +50.00,0.00,20.00,0.49,1.64,0.22 +30.00,0.00,0.00,0.67,1.52,0.18 +52.00,0.00,22.00,0.42,1.64,0.26 +50.20,1.00,39.00,0.59,1.68,0.23 +91.00,0.00,61.00,0.37,1.66,0.28 +40.00,0.00,10.00,0.44,1.67,0.25 +108.00,0.00,78.00,0.64,1.54,0.18 +69.00,0.00,39.00,0.63,1.54,0.20 +38.30,1.00,15.00,0.63,1.53,0.16 +37.90,1.00,19.00,0.34,1.64,0.27 +30.00,0.00,0.00,0.79,1.57,0.16 +2.90,0.00,0.00,0.64,1.69,0.23 +47.00,0.00,17.00,0.42,1.56,0.28 +51.00,0.00,21.00,0.39,1.66,0.27 +60.50,1.00,42.00,0.69,1.81,0.39 +14.80,0.00,0.00,0.57,1.53,0.19 +53.00,0.00,23.00,0.30,1.55,0.29 +18.60,0.00,0.00,0.39,1.59,0.24 +50.00,0.00,20.00,0.48,1.67,0.24 +61.00,0.00,31.00,0.34,1.60,0.31 +50.00,0.00,20.00,0.40,1.57,0.27 +2.10,0.00,0.00,0.41,1.65,0.25 +71.30,1.00,71.00,0.37,1.55,0.24 +87.00,0.00,57.00,0.59,1.63,0.25 +30.00,0.00,0.00,0.90,1.72,0.24 +50.00,0.00,20.00,0.53,1.72,0.24 +81.20,1.00,62.00,0.43,1.73,0.27 +25.70,1.00,0.00,1.02,1.77,0.21 +19.70,0.00,0.00,1.01,1.77,0.24 +50.00,0.00,20.00,0.58,1.69,0.26 +23.70,1.00,20.00,0.78,1.68,0.32 +43.00,0.00,13.00,0.53,1.54,0.17 +30.00,0.00,0.00,0.42,1.51,0.26 +86.00,0.00,56.00,0.56,1.71,0.24 +48.10,1.00,39.00,0.61,1.55,0.21 +61.00,0.00,31.00,0.43,1.73,0.26 +91.90,1.00,69.00,0.56,1.52,0.17 +9.80,0.00,0.00,0.48,1.55,0.26 +47.00,0.00,17.00,0.34,1.54,0.28 +71.00,0.00,41.00,0.79,1.57,0.16 +43.00,0.00,13.00,0.46,1.66,0.25 +48.00,0.00,18.00,0.41,1.64,0.25 +45.00,0.00,15.00,0.52,1.67,0.24 +63.00,0.00,33.00,0.62,1.68,0.23 +83.80,1.00,57.00,0.46,1.73,0.26 +30.00,0.00,0.00,0.64,1.53,0.16 +71.00,0.00,41.00,0.37,1.60,0.25 +74.00,0.00,44.00,0.38,1.67,0.29 +85.90,1.00,62.00,0.67,1.52,0.18 +40.00,0.00,10.00,0.75,1.79,0.46 +87.30,1.00,71.00,0.42,1.67,0.25 +99.00,0.00,69.00,0.58,1.51,0.17 +39.00,0.00,9.00,0.38,1.55,0.28 +37.00,0.00,7.00,0.62,1.58,0.21 +100.90,1.00,71.00,0.64,1.57,0.20 +17.70,0.00,0.00,0.49,1.65,0.24 +15.30,0.00,0.00,0.54,1.84,0.29 +30.00,0.00,0.00,0.50,1.56,0.25 +86.90,1.00,57.00,0.35,1.60,0.27 +20.80,0.00,0.00,0.53,1.81,0.29 +29.00,1.00,0.00,0.61,1.60,0.28 +60.00,0.00,30.00,0.45,1.72,0.27 +29.20,0.00,0.00,0.64,1.58,0.20 +30.00,0.00,0.00,0.89,1.82,0.51 +45.00,0.00,15.00,0.45,1.73,0.27 +75.00,0.00,45.00,0.62,1.56,0.22 +44.00,0.00,14.00,0.46,1.60,0.23 +45.00,0.00,15.00,0.53,1.69,0.23 +59.00,0.00,29.00,0.51,1.64,0.22 +30.00,0.00,0.00,0.80,1.79,0.42 +50.00,0.00,20.00,0.42,1.56,0.26 +61.00,0.00,31.00,0.43,1.73,0.26 +0.30,0.00,0.00,0.97,1.84,0.43 +48.00,0.00,18.00,0.35,1.63,0.33 +42.00,0.00,12.00,0.33,1.59,0.27 +57.50,1.00,45.00,0.81,1.65,0.18 +71.00,0.00,41.00,0.64,1.68,0.23 +104.00,0.00,74.00,0.31,1.58,0.29 +55.00,0.00,25.00,0.55,1.59,0.21 +49.00,0.00,19.00,0.51,1.89,0.46 +72.00,0.00,42.00,0.45,1.82,0.39 +72.00,0.00,42.00,0.36,1.60,0.25 +75.00,0.00,45.00,0.57,1.64,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +33.00,0.00,3.00,0.46,1.62,0.26 +52.00,0.00,22.00,0.65,1.55,0.21 +74.00,0.00,44.00,0.35,1.60,0.27 +32.00,0.00,2.00,0.62,1.58,0.21 +27.40,1.00,0.00,0.50,1.68,0.28 +27.80,0.00,0.00,1.02,1.61,0.18 +30.00,0.00,0.00,0.61,1.55,0.21 +48.00,0.00,18.00,0.47,1.62,0.23 +53.00,0.00,23.00,0.30,1.54,0.29 +83.00,0.00,53.00,0.81,1.67,0.23 +51.00,0.00,21.00,0.70,1.54,0.15 +8.60,0.00,0.00,0.71,1.52,0.16 +27.10,0.00,0.00,0.74,1.60,0.27 +45.90,1.00,39.00,1.05,1.79,0.27 +9.40,1.00,0.00,0.63,1.70,0.24 +79.00,1.00,71.00,0.50,1.62,0.26 +50.00,0.00,20.00,0.42,1.71,0.27 +83.50,1.00,60.00,0.58,1.68,0.30 +40.80,1.00,31.00,0.69,1.53,0.20 +37.50,1.00,33.00,0.42,1.70,0.28 +30.00,0.00,0.00,0.34,1.61,0.31 +44.00,0.00,14.00,0.44,1.71,0.26 +21.60,0.00,0.00,0.51,1.64,0.27 +32.00,0.00,2.00,0.62,1.58,0.22 +11.60,0.00,0.00,0.40,1.58,0.27 +67.90,1.00,62.00,0.63,1.69,0.24 +27.60,1.00,0.00,0.90,1.81,0.44 +50.00,0.00,20.00,0.40,1.58,0.24 +62.10,1.00,62.00,0.82,1.58,0.17 +91.00,0.00,61.00,0.38,1.67,0.28 +48.00,0.00,18.00,0.59,1.68,0.23 +78.00,0.00,48.00,0.49,1.69,0.25 +72.00,0.00,42.00,0.36,1.64,0.29 +63.00,0.00,33.00,0.33,1.62,0.28 +80.00,0.00,50.00,0.37,1.65,0.29 +30.00,0.00,0.00,0.32,1.54,0.27 +40.00,0.00,10.00,0.87,1.58,0.16 +77.30,1.00,61.00,0.34,1.63,0.30 +70.00,0.00,40.00,0.39,1.62,0.25 +69.00,0.00,39.00,0.61,1.55,0.21 +47.50,1.00,42.00,0.37,1.66,0.28 +63.10,1.00,45.00,0.78,1.61,0.18 +58.00,0.00,28.00,0.33,1.57,0.27 +53.60,1.00,32.00,0.68,1.56,0.22 +101.00,0.00,71.00,0.38,1.57,0.26 +73.00,0.00,43.00,0.45,1.76,0.28 +74.50,1.00,48.00,0.50,1.70,0.26 +30.00,0.00,0.00,0.32,1.59,0.32 +46.00,1.00,17.00,0.62,1.54,0.16 +30.00,0.00,0.00,0.94,1.75,0.22 +62.00,0.00,32.00,0.44,1.55,0.25 +41.00,0.00,11.00,0.46,1.72,0.27 +88.00,0.00,58.00,0.61,1.74,0.24 +53.00,0.00,23.00,0.31,1.57,0.31 +70.00,0.00,40.00,0.38,1.59,0.24 +48.00,0.00,18.00,0.35,1.64,0.32 +18.40,0.00,0.00,0.74,1.61,0.28 +66.00,0.00,36.00,0.55,1.70,0.24 +30.00,0.00,0.00,0.74,1.60,0.21 +16.00,0.00,0.00,0.64,1.58,0.21 +26.30,1.00,0.00,0.82,1.64,0.18 +101.00,0.00,71.00,0.40,1.61,0.24 +15.90,0.00,0.00,0.82,1.58,0.17 +3.20,0.00,0.00,0.52,1.58,0.20 +59.00,0.00,29.00,0.42,1.67,0.25 +76.20,1.00,75.00,0.58,1.71,0.26 +72.00,0.00,42.00,0.55,1.69,0.23 +63.00,0.00,33.00,0.39,1.58,0.27 +80.00,0.00,50.00,0.38,1.66,0.27 +44.00,0.00,14.00,0.58,1.63,0.25 +91.00,0.00,61.00,0.37,1.66,0.28 +42.00,0.00,12.00,0.51,1.59,0.19 +2.60,0.00,0.00,0.95,1.74,0.28 +19.00,1.00,15.00,0.45,1.66,0.25 +96.00,0.00,66.00,0.47,1.65,0.24 +66.00,0.00,36.00,0.45,1.70,0.27 +44.00,0.00,14.00,0.36,1.55,0.28 +101.00,0.00,71.00,0.37,1.55,0.24 +50.00,0.00,20.00,0.63,1.52,0.19 +46.30,1.00,19.00,0.84,1.71,0.24 +85.00,0.00,55.00,0.48,1.61,0.27 +31.70,1.00,31.00,0.69,1.73,0.36 +88.00,0.00,58.00,0.64,1.69,0.23 +85.00,0.00,55.00,0.40,1.57,0.28 +67.40,1.00,62.00,0.53,1.84,0.29 +58.00,0.00,28.00,0.34,1.56,0.27 +75.00,0.00,45.00,0.34,1.56,0.25 +59.00,0.00,29.00,0.47,1.64,0.24 +107.00,0.00,77.00,0.40,1.62,0.24 +44.00,0.00,14.00,0.81,1.79,0.47 +30.00,0.00,0.00,0.45,1.53,0.27 +38.50,1.00,13.00,0.62,1.58,0.22 +63.00,0.00,33.00,0.49,1.69,0.25 +20.90,1.00,0.00,0.99,1.68,0.20 +61.00,0.00,31.00,0.52,1.67,0.29 +1.90,0.00,0.00,0.72,1.84,0.25 +101.00,0.00,71.00,0.40,1.61,0.24 +22.30,0.00,0.00,0.82,1.68,0.22 +30.00,0.00,0.00,0.32,1.56,0.27 +17.70,1.00,10.00,1.21,1.76,0.23 +5.20,0.00,0.00,0.55,1.54,0.19 +10.10,0.00,0.00,1.16,1.73,0.23 +6.10,0.00,0.00,0.38,1.55,0.28 +30.00,0.00,0.00,0.79,1.79,0.39 +30.00,0.00,0.00,0.57,1.58,0.22 +101.00,0.00,71.00,0.64,1.57,0.20 +40.50,1.00,31.00,0.67,1.72,0.35 +55.00,0.00,25.00,0.40,1.85,0.41 +31.00,0.00,1.00,0.65,1.61,0.27 +30.00,0.00,0.00,0.59,1.63,0.25 +92.00,0.00,62.00,0.40,1.70,0.27 +6.10,0.00,0.00,0.83,1.69,0.25 +72.00,0.00,42.00,0.55,1.80,0.27 +88.00,1.00,60.00,0.58,1.69,0.28 +69.40,1.00,62.00,0.44,1.73,0.27 +48.00,0.00,18.00,0.45,1.64,0.25 +18.80,0.00,0.00,0.60,1.55,0.21 +88.00,0.00,58.00,0.42,1.69,0.26 +56.00,0.00,26.00,0.79,1.59,0.15 +55.00,0.00,25.00,0.41,1.51,0.26 +45.00,0.00,15.00,0.44,1.67,0.25 +53.90,1.00,42.00,0.64,1.79,0.37 +74.00,0.00,44.00,0.37,1.72,0.34 +2.70,0.00,0.00,0.58,1.68,0.33 +33.30,1.00,10.00,0.80,1.60,0.18 +69.00,0.00,39.00,0.61,1.55,0.21 +74.00,0.00,44.00,0.38,1.67,0.28 +71.40,1.00,60.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.45,1.71,0.27 +21.10,0.00,0.00,0.63,1.71,0.34 +16.70,0.00,0.00,0.94,1.75,0.22 +5.90,0.00,0.00,0.66,1.51,0.17 +5.80,0.00,0.00,0.86,1.63,0.18 +45.00,0.00,15.00,0.63,1.53,0.16 +75.00,0.00,45.00,0.34,1.56,0.25 +95.80,1.00,78.00,0.62,1.53,0.18 +57.00,1.00,36.00,0.52,1.70,0.24 +98.00,0.00,68.00,0.37,1.64,0.28 +88.00,0.00,58.00,0.63,1.68,0.23 +44.00,0.00,14.00,0.63,1.55,0.21 +98.00,0.00,68.00,0.39,1.64,0.26 +93.70,1.00,71.00,0.52,1.65,0.26 +61.00,0.00,31.00,0.43,1.72,0.26 +84.50,1.00,69.00,0.56,1.52,0.17 +96.00,0.00,66.00,0.52,1.64,0.22 +58.00,0.00,28.00,0.39,1.58,0.27 +57.20,1.00,42.00,0.37,1.64,0.26 +57.00,0.00,27.00,0.45,1.73,0.26 +70.00,0.00,40.00,0.39,1.63,0.25 +23.20,0.00,0.00,0.33,1.57,0.27 +53.00,0.00,23.00,0.52,1.72,0.32 +66.00,0.00,36.00,0.48,1.65,0.27 +42.00,0.00,12.00,0.51,1.59,0.19 +4.30,0.00,0.00,0.62,1.68,0.23 +92.00,0.00,62.00,0.35,1.62,0.30 +45.80,1.00,37.00,0.88,1.72,0.20 +53.00,0.00,23.00,0.44,1.61,0.25 +50.00,0.00,20.00,0.74,1.52,0.18 +47.00,0.00,17.00,0.38,1.68,0.29 +74.00,0.00,44.00,0.37,1.72,0.34 +48.00,0.00,18.00,0.41,1.64,0.25 +43.00,0.00,13.00,0.44,1.71,0.26 +98.00,0.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.56,1.73,0.32 +30.00,0.00,0.00,0.37,1.56,0.25 +87.00,0.00,57.00,0.47,1.73,0.26 +39.00,1.00,21.00,0.86,1.58,0.18 +5.70,0.00,0.00,0.49,1.60,0.27 +2.60,0.00,0.00,0.44,1.72,0.26 +72.00,0.00,42.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.48,1.64,0.27 +59.00,0.00,29.00,0.36,1.57,0.24 +61.00,0.00,31.00,0.35,1.60,0.25 +14.10,0.00,0.00,0.59,1.57,0.20 +37.90,1.00,37.00,0.89,1.72,0.20 +56.00,0.00,26.00,0.57,1.77,0.35 +90.20,1.00,66.00,0.52,1.64,0.22 +61.80,1.00,57.00,0.36,1.57,0.25 +35.00,0.00,5.00,0.39,1.65,0.27 +20.10,1.00,10.00,1.11,1.63,0.19 +56.00,0.00,26.00,0.53,1.66,0.23 +35.00,0.00,5.00,0.32,1.59,0.32 +21.60,1.00,4.00,0.58,1.51,0.16 +69.00,0.00,39.00,0.33,1.59,0.27 +47.00,0.00,17.00,0.88,1.59,0.17 +45.00,0.00,15.00,0.54,1.68,0.24 +45.00,0.00,15.00,0.44,1.72,0.27 +78.00,0.00,48.00,0.48,1.77,0.28 +92.00,0.00,62.00,0.82,1.57,0.17 +53.00,0.00,23.00,0.42,1.70,0.26 +42.00,0.00,12.00,0.58,1.69,0.27 +45.00,0.00,15.00,0.67,1.58,0.24 +60.10,1.00,31.00,0.66,1.61,0.28 +74.50,1.00,68.00,0.37,1.64,0.27 +30.00,0.00,0.00,0.62,1.51,0.18 +40.00,0.00,10.00,0.45,1.68,0.25 +13.70,0.00,0.00,0.38,1.61,0.25 +2.50,0.00,0.00,0.77,1.60,0.23 +25.70,0.00,0.00,0.84,1.79,0.40 +12.40,0.00,0.00,0.43,1.64,0.27 +6.70,0.00,0.00,0.80,1.60,0.18 +81.00,0.00,51.00,0.32,1.63,0.30 +43.00,0.00,13.00,0.36,1.66,0.29 +30.00,0.00,0.00,1.07,1.75,0.21 +51.00,0.00,21.00,0.40,1.66,0.27 +53.00,0.00,23.00,0.44,1.76,0.37 +30.00,0.00,0.00,0.48,1.65,0.27 +28.50,1.00,0.00,0.76,1.59,0.23 +12.00,0.00,0.00,0.82,1.59,0.17 +44.00,0.00,14.00,0.65,1.90,0.25 +25.50,0.00,0.00,0.72,1.72,0.25 +59.00,0.00,29.00,0.47,1.65,0.24 +15.10,0.00,0.00,0.53,1.66,0.29 +55.00,0.00,25.00,0.51,1.65,0.22 +76.00,0.00,46.00,0.33,1.56,0.27 +44.00,0.00,14.00,0.53,1.59,0.19 +106.00,0.00,76.00,0.51,1.69,0.28 +63.00,0.00,33.00,0.66,1.73,0.40 +30.00,0.00,0.00,0.84,1.66,0.18 +74.00,0.00,44.00,0.32,1.63,0.29 +42.00,0.00,12.00,0.50,1.64,0.22 +14.10,1.00,0.00,0.73,1.80,0.43 +44.00,0.00,14.00,0.45,1.54,0.27 +45.70,1.00,29.00,0.63,1.71,0.30 +3.20,0.00,0.00,0.33,1.59,0.28 +44.00,0.00,14.00,0.56,1.68,0.25 +30.00,0.00,0.00,0.62,1.55,0.21 +96.90,1.00,68.00,0.36,1.63,0.29 +3.80,0.00,0.00,0.63,1.58,0.21 +59.00,0.00,29.00,0.41,1.67,0.25 +52.00,0.00,22.00,0.38,1.67,0.28 +74.00,0.00,44.00,0.33,1.61,0.28 +44.00,0.00,14.00,0.48,1.70,0.24 +11.80,0.00,0.00,0.68,1.68,0.23 +83.70,1.00,69.00,0.62,1.50,0.17 +51.00,0.00,21.00,0.62,1.56,0.21 +43.00,0.00,13.00,0.54,1.53,0.17 +92.20,1.00,76.00,0.48,1.65,0.27 +61.00,0.00,31.00,0.33,1.61,0.27 +1.40,0.00,0.00,0.43,1.78,0.38 +15.20,0.00,0.00,0.56,1.71,0.24 +53.00,0.00,23.00,0.50,1.72,0.32 +39.50,1.00,37.00,1.03,1.77,0.20 +37.00,0.00,7.00,0.45,1.69,0.31 +104.00,0.00,74.00,0.31,1.58,0.29 +57.70,1.00,41.00,0.60,1.49,0.15 +18.40,0.00,0.00,0.84,1.67,0.25 +30.00,0.00,0.00,0.81,1.70,0.23 +45.00,0.00,15.00,0.41,1.61,0.25 +58.00,0.00,28.00,0.32,1.64,0.28 +62.20,1.00,54.00,0.49,1.71,0.30 +71.00,0.00,41.00,0.41,1.86,0.40 +32.10,1.00,21.00,0.56,1.54,0.20 +73.00,0.00,43.00,0.39,1.65,0.27 +47.00,0.00,17.00,0.46,1.69,0.26 +67.00,0.00,37.00,0.59,1.83,0.26 +29.60,1.00,11.00,0.71,1.82,0.24 +59.00,0.00,29.00,0.77,1.66,0.28 +49.00,0.00,19.00,0.79,1.55,0.17 +37.50,1.00,34.00,0.41,1.70,0.27 +29.40,0.00,0.00,0.39,1.61,0.24 +71.60,1.00,46.00,0.70,1.69,0.22 +28.80,1.00,0.00,0.82,1.66,0.25 +47.00,0.00,17.00,0.53,1.66,0.24 +14.60,0.00,0.00,0.55,1.71,0.31 +59.00,0.00,29.00,0.50,1.63,0.22 +23.50,0.00,0.00,0.50,1.58,0.21 +30.00,0.00,0.00,0.55,1.63,0.25 +9.40,0.00,0.00,0.77,1.63,0.29 +2.40,0.00,0.00,0.82,1.55,0.18 +83.00,0.00,53.00,0.52,1.56,0.20 +58.00,0.00,28.00,0.32,1.66,0.28 +30.00,0.00,0.00,0.93,1.69,0.25 +87.00,0.00,57.00,0.44,1.68,0.27 +29.40,1.00,24.00,0.65,1.56,0.21 +65.00,0.00,35.00,0.35,1.66,0.28 +78.00,0.00,48.00,0.46,1.71,0.27 +89.00,0.00,59.00,0.39,1.82,0.38 +47.20,1.00,25.00,0.55,1.60,0.22 +82.00,0.00,52.00,0.52,1.64,0.29 +15.40,0.00,0.00,0.70,1.73,0.34 +26.10,1.00,12.00,0.33,1.59,0.27 +51.00,0.00,21.00,0.33,1.60,0.30 +30.00,0.00,0.00,0.58,1.78,0.27 +72.00,0.00,42.00,0.37,1.65,0.28 +58.00,0.00,28.00,0.32,1.65,0.28 +44.00,0.00,14.00,0.74,1.97,0.25 +17.70,0.00,0.00,0.43,1.72,0.26 +101.00,0.00,71.00,0.35,1.50,0.27 +64.00,0.00,34.00,0.41,1.71,0.27 +30.00,0.00,0.00,0.32,1.54,0.27 +80.00,0.00,50.00,0.38,1.66,0.28 +99.90,1.00,77.00,0.39,1.61,0.25 +101.00,0.00,71.00,0.51,1.79,0.28 +90.00,1.00,68.00,0.36,1.63,0.30 +10.60,0.00,0.00,0.40,1.69,0.27 +15.50,0.00,0.00,1.49,1.73,0.27 +65.30,1.00,43.00,0.61,1.68,0.23 +25.70,1.00,4.00,0.59,1.60,0.25 +53.00,0.00,23.00,0.68,1.57,0.22 +32.00,0.00,2.00,0.56,1.65,0.24 +40.00,0.00,10.00,0.91,1.59,0.17 +59.00,0.00,29.00,0.70,1.72,0.25 +19.30,0.00,0.00,0.45,1.71,0.27 +101.30,1.00,78.00,0.65,1.54,0.18 +1.20,0.00,0.00,1.28,1.94,0.59 +30.00,0.00,0.00,0.60,1.63,0.25 +46.30,1.00,42.00,0.69,1.81,0.39 +56.00,0.00,26.00,0.37,1.67,0.31 +59.60,1.00,53.00,0.52,1.58,0.20 +47.00,0.00,17.00,0.51,1.71,0.30 +25.20,0.00,0.00,0.71,1.74,0.36 +5.20,0.00,0.00,0.95,1.84,0.53 +30.00,0.00,0.00,0.62,1.54,0.20 +89.00,1.00,62.00,0.82,1.58,0.17 +43.00,0.00,13.00,0.41,1.68,0.26 +49.00,0.00,19.00,0.32,1.63,0.30 +0.20,0.00,0.00,0.59,1.60,0.22 +30.00,0.00,0.00,0.65,1.53,0.16 +30.00,0.00,0.00,0.69,1.61,0.27 +107.00,0.00,77.00,0.38,1.60,0.25 +46.00,0.00,16.00,0.55,1.72,0.25 +66.00,0.00,36.00,0.32,1.62,0.29 +80.00,0.00,50.00,0.38,1.66,0.28 +32.80,1.00,24.00,0.40,1.84,0.40 +86.00,0.00,56.00,0.52,1.71,0.26 +67.00,0.00,37.00,1.05,1.75,0.21 +18.50,0.00,0.00,0.32,1.58,0.31 +43.00,0.00,13.00,0.44,1.73,0.28 +78.00,0.00,48.00,0.46,1.71,0.27 +30.00,0.00,0.00,0.32,1.55,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +32.00,0.00,2.00,0.59,1.67,0.24 +76.00,0.00,46.00,0.70,1.69,0.22 +89.00,0.00,59.00,0.38,1.82,0.37 +82.00,0.00,52.00,0.53,1.65,0.30 +63.00,0.00,33.00,0.31,1.58,0.29 +86.50,1.00,60.00,0.59,1.74,0.32 +16.40,0.00,0.00,0.65,1.51,0.18 +21.00,1.00,0.00,1.36,1.83,0.34 +30.00,0.00,0.00,0.53,1.90,0.48 +5.00,0.00,0.00,0.60,1.68,0.23 +40.00,0.00,10.00,0.36,1.57,0.24 +2.30,0.00,0.00,1.13,1.77,0.27 +66.00,0.00,36.00,0.54,1.71,0.24 +59.00,0.00,29.00,0.64,1.77,0.25 +15.10,0.00,0.00,0.90,1.67,0.26 +43.00,0.00,13.00,0.44,1.66,0.24 +55.00,0.00,25.00,0.40,1.83,0.39 +23.70,0.00,0.00,0.86,1.71,0.23 +54.00,0.00,24.00,0.55,1.56,0.18 +30.00,0.00,0.00,0.32,1.71,0.29 +79.00,0.00,49.00,0.47,1.74,0.28 +31.80,1.00,10.00,1.06,1.70,0.21 +75.90,1.00,48.00,0.50,1.69,0.25 +32.00,0.00,2.00,0.49,1.56,0.25 +2.80,0.00,0.00,0.46,1.70,0.27 +69.00,0.00,39.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.80,1.59,0.16 +47.00,0.00,17.00,0.85,1.59,0.16 +60.00,0.00,30.00,0.44,1.65,0.24 +45.00,0.00,15.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.89,1.67,0.26 +51.00,0.00,21.00,0.53,1.66,0.29 +86.70,1.00,59.00,0.41,1.85,0.40 +17.80,0.00,0.00,0.41,1.57,0.27 +30.00,0.00,0.00,0.82,1.80,0.40 +35.00,1.00,7.00,0.52,1.56,0.19 +6.40,1.00,0.00,1.26,1.77,0.25 +85.00,0.00,55.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.42,1.62,0.24 +45.30,1.00,21.00,0.71,1.74,0.25 +83.00,0.00,53.00,0.78,1.65,0.29 +71.00,0.00,41.00,0.80,1.68,0.24 +59.00,0.00,29.00,0.36,1.58,0.24 +1.70,0.00,0.00,0.34,1.55,0.25 +61.00,0.00,31.00,0.45,1.63,0.24 +41.00,0.00,11.00,0.67,1.78,0.25 +92.00,0.00,62.00,0.36,1.63,0.30 +84.20,1.00,62.00,0.67,1.52,0.19 +82.00,0.00,52.00,0.51,1.64,0.29 +42.00,0.00,12.00,0.55,1.62,0.25 +76.00,0.00,46.00,0.34,1.55,0.27 +94.50,1.00,68.00,0.42,1.70,0.26 +30.00,0.00,0.00,0.32,1.59,0.31 +53.00,0.00,23.00,0.40,1.68,0.27 +92.00,0.00,62.00,0.40,1.70,0.27 +30.00,0.00,0.00,0.46,1.73,0.27 +59.00,0.00,29.00,0.37,1.58,0.24 +68.00,0.00,38.00,0.45,1.71,0.28 +10.90,0.00,0.00,0.41,1.62,0.24 +37.00,0.00,7.00,0.51,1.57,0.20 +70.00,0.00,40.00,0.39,1.65,0.26 +40.00,0.00,10.00,0.92,1.73,0.20 +98.00,0.00,68.00,0.37,1.64,0.27 +65.00,0.00,35.00,0.82,1.60,0.16 +83.00,0.00,53.00,0.45,1.73,0.28 +43.00,0.00,13.00,0.68,1.74,0.41 +53.00,0.00,23.00,0.44,1.73,0.34 +38.00,0.00,8.00,0.82,1.60,0.17 +22.40,1.00,0.00,1.09,1.63,0.23 +91.00,0.00,61.00,0.34,1.60,0.28 +34.20,1.00,19.00,0.66,1.74,0.40 +21.20,0.00,0.00,0.93,1.74,0.22 +13.70,0.00,0.00,0.43,1.53,0.27 +8.30,0.00,0.00,0.78,1.57,0.16 +30.00,0.00,0.00,0.41,1.62,0.24 +30.00,0.00,0.00,0.65,1.53,0.20 +44.20,1.00,19.00,0.87,1.71,0.25 +43.00,0.00,13.00,0.40,1.69,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +63.00,0.00,33.00,0.60,1.57,0.23 +25.40,0.00,0.00,0.92,1.73,0.24 +34.00,0.00,4.00,0.36,1.66,0.32 +50.50,1.00,42.00,0.51,1.75,0.37 +69.00,1.00,58.00,0.86,1.57,0.16 +66.00,0.00,36.00,0.32,1.59,0.28 +30.00,0.00,0.00,0.69,1.61,0.28 +47.00,0.00,17.00,0.66,1.56,0.21 +90.00,0.00,60.00,0.62,1.76,0.33 +58.00,0.00,28.00,0.34,1.59,0.27 +29.30,1.00,10.00,0.96,1.76,0.21 +37.00,0.00,7.00,0.52,1.55,0.19 +82.00,0.00,52.00,0.53,1.65,0.30 +1.50,0.00,0.00,0.41,1.62,0.24 +44.00,0.00,14.00,0.45,1.65,0.26 +107.00,0.00,77.00,0.38,1.61,0.25 +19.90,0.00,0.00,0.88,1.60,0.17 +35.90,1.00,29.00,0.40,1.68,0.29 +11.20,0.00,0.00,0.87,1.81,0.49 +65.00,0.00,35.00,0.34,1.62,0.29 +44.30,1.00,39.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.64,1.67,0.23 +31.00,0.00,1.00,0.37,1.66,0.30 +47.00,0.00,17.00,0.58,1.53,0.19 +14.40,0.00,0.00,0.59,1.51,0.16 +6.50,1.00,0.00,0.76,1.62,0.21 +46.00,0.00,16.00,0.37,1.55,0.28 +63.00,0.00,33.00,0.45,1.69,0.26 +66.00,0.00,36.00,0.55,1.81,0.27 +28.50,1.00,20.00,1.04,1.86,0.54 +88.20,1.00,76.00,0.47,1.65,0.27 +44.00,0.00,14.00,0.56,1.68,0.25 +8.20,1.00,0.00,0.77,1.78,0.44 +52.50,1.00,35.00,0.35,1.64,0.31 +45.00,1.00,24.00,0.49,1.70,0.29 +87.00,0.00,57.00,0.44,1.69,0.25 +70.00,0.00,40.00,0.39,1.64,0.25 +65.00,0.00,35.00,0.90,1.73,0.20 +15.70,0.00,0.00,0.86,1.69,0.19 +87.70,1.00,67.00,0.59,1.70,0.27 +44.00,0.00,14.00,0.43,1.63,0.26 +3.90,0.00,0.00,0.53,1.57,0.18 +91.00,0.00,61.00,0.39,1.68,0.28 +38.00,0.00,8.00,0.53,1.55,0.18 +4.80,0.00,0.00,0.41,1.56,0.25 +45.00,0.00,15.00,0.61,1.52,0.17 +86.00,0.00,56.00,0.60,1.69,0.23 +41.00,0.00,11.00,0.79,1.54,0.18 +71.00,0.00,41.00,0.37,1.60,0.25 +60.00,0.00,30.00,0.43,1.67,0.24 +61.00,0.00,31.00,0.43,1.73,0.27 +44.00,0.00,14.00,0.53,1.59,0.18 +83.00,0.00,53.00,0.82,1.68,0.23 +24.60,0.00,0.00,0.49,1.64,0.28 +77.60,1.00,62.00,0.41,1.71,0.27 +30.00,0.00,0.00,0.45,1.63,0.25 +21.90,0.00,0.00,0.37,1.71,0.34 +50.00,0.00,20.00,0.56,1.60,0.22 +70.00,1.00,49.00,0.61,1.52,0.18 +51.00,0.00,21.00,0.60,1.59,0.23 +35.00,0.00,5.00,0.57,1.64,0.25 +101.00,0.00,71.00,0.64,1.57,0.20 +6.10,1.00,0.00,0.32,1.60,0.31 +63.30,1.00,55.00,0.47,1.55,0.27 +20.50,0.00,0.00,0.70,1.52,0.15 +69.00,0.00,39.00,0.61,1.55,0.21 +31.70,1.00,10.00,0.36,1.57,0.23 +66.00,0.00,36.00,0.42,1.85,0.40 +59.10,1.00,44.00,0.38,1.66,0.29 +72.00,0.00,42.00,0.43,1.71,0.27 +58.00,0.00,28.00,0.69,1.73,0.35 +43.00,0.00,13.00,0.36,1.66,0.29 +48.00,0.00,18.00,0.54,1.53,0.17 +48.00,0.00,18.00,0.66,1.50,0.16 +79.40,1.00,68.00,0.51,1.83,0.29 +74.00,0.00,44.00,0.53,1.76,0.27 +58.20,1.00,58.00,0.85,1.57,0.16 +5.20,0.00,0.00,0.36,1.64,0.28 +42.50,1.00,20.00,0.96,1.84,0.52 +92.00,0.00,62.00,0.67,1.52,0.19 +47.00,0.00,17.00,0.53,1.73,0.24 +83.00,0.00,53.00,0.43,1.70,0.26 +50.00,0.00,20.00,0.40,1.57,0.27 +63.00,0.00,33.00,0.32,1.66,0.28 +52.00,0.00,22.00,0.42,1.67,0.25 +4.30,0.00,0.00,0.38,1.66,0.28 +23.80,0.00,0.00,0.34,1.62,0.32 +63.00,0.00,33.00,0.60,1.58,0.23 +30.00,0.00,0.00,0.52,1.70,0.28 +61.00,0.00,31.00,0.34,1.60,0.27 +2.10,0.00,0.00,0.58,1.66,0.23 +9.20,1.00,0.00,0.94,1.63,0.17 +39.00,0.00,9.00,0.37,1.66,0.30 +43.00,0.00,13.00,0.38,1.68,0.28 +66.00,0.00,36.00,0.46,1.67,0.25 +41.00,0.00,11.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.36,1.65,0.32 +6.20,0.00,0.00,0.57,1.68,0.34 +69.00,0.00,39.00,0.60,1.57,0.20 +45.00,0.00,15.00,0.62,1.53,0.16 +30.00,0.00,0.00,0.46,1.54,0.27 +49.00,0.00,19.00,0.79,1.73,0.25 +85.00,0.00,55.00,0.52,1.71,0.31 +83.00,0.00,53.00,0.40,1.67,0.26 +64.50,1.00,59.00,0.58,1.57,0.26 +74.00,0.00,44.00,0.35,1.59,0.27 +92.00,0.00,62.00,0.39,1.67,0.29 +36.30,1.00,10.00,0.96,1.67,0.20 +27.80,0.00,0.00,0.71,1.68,0.22 +59.00,0.00,29.00,0.41,1.67,0.25 +30.00,0.00,0.00,0.92,1.73,0.24 +88.00,0.00,58.00,0.54,1.85,0.28 +16.70,0.00,0.00,0.72,1.59,0.25 +51.00,0.00,21.00,0.63,1.54,0.16 +72.00,0.00,42.00,0.56,1.71,0.24 +48.00,0.00,18.00,0.44,1.61,0.25 +30.00,0.00,0.00,0.71,1.77,0.37 +34.50,1.00,13.00,0.75,1.73,0.23 +1.10,1.00,0.00,0.87,1.70,0.19 +50.00,0.00,20.00,1.01,1.77,0.21 +86.00,0.00,56.00,0.36,1.67,0.31 +69.00,0.00,39.00,0.45,1.66,0.28 +4.10,0.00,0.00,0.87,1.72,0.23 +31.00,0.00,1.00,0.41,1.68,0.26 +82.00,0.00,52.00,0.47,1.66,0.25 +90.00,0.00,60.00,0.57,1.72,0.31 +50.00,0.00,20.00,0.70,1.52,0.15 +70.00,0.00,40.00,0.38,1.59,0.24 +59.00,0.00,29.00,0.41,1.68,0.26 +72.00,0.00,42.00,0.55,1.69,0.23 +58.00,0.00,28.00,0.35,1.55,0.28 +69.00,0.00,39.00,0.61,1.55,0.21 +5.80,0.00,0.00,0.65,1.74,0.34 +30.00,0.00,0.00,0.50,1.83,0.28 +37.80,1.00,21.00,0.80,1.59,0.16 +69.00,0.00,39.00,0.48,1.69,0.29 +30.00,0.00,0.00,0.73,1.59,0.20 +49.10,1.00,21.00,0.90,1.59,0.18 +48.10,1.00,30.00,0.58,1.58,0.22 +45.00,0.00,15.00,0.54,1.69,0.23 +3.10,0.00,0.00,0.48,1.55,0.26 +39.00,0.00,9.00,0.37,1.66,0.30 +88.00,0.00,58.00,0.62,1.74,0.24 +13.70,1.00,0.00,0.93,1.70,0.24 +50.50,1.00,43.00,0.38,1.67,0.28 +59.00,0.00,29.00,0.36,1.61,0.25 +11.30,0.00,0.00,0.73,1.72,0.25 +43.00,0.00,13.00,0.65,1.73,0.39 +50.00,0.00,20.00,0.48,1.66,0.24 +30.00,0.00,0.00,0.34,1.62,0.30 +77.40,1.00,71.00,0.40,1.61,0.24 +59.00,1.00,42.00,0.50,1.78,0.39 +48.70,1.00,33.00,0.97,1.60,0.22 +80.00,0.00,50.00,0.59,1.58,0.21 +4.80,0.00,0.00,0.34,1.55,0.27 +70.60,1.00,43.00,0.61,1.68,0.23 +30.00,0.00,0.00,0.93,1.70,0.25 +41.00,0.00,11.00,0.46,1.68,0.26 +5.70,0.00,0.00,0.83,1.80,0.48 +53.00,0.00,23.00,0.30,1.55,0.29 +38.00,0.00,8.00,0.37,1.67,0.30 +6.20,0.00,0.00,0.75,1.68,0.23 +69.00,0.00,39.00,0.44,1.71,0.28 +60.60,1.00,31.00,0.72,1.52,0.18 +30.00,0.00,0.00,0.47,1.55,0.25 +30.00,0.00,0.00,0.56,1.51,0.16 +58.00,0.00,28.00,0.35,1.55,0.28 +30.00,0.00,0.00,0.40,1.69,0.28 +30.00,0.00,0.00,0.50,1.81,0.28 +108.00,0.00,78.00,0.56,1.67,0.33 +65.00,0.00,35.00,0.34,1.63,0.28 +54.20,1.00,52.00,0.51,1.63,0.30 +16.60,0.00,0.00,0.36,1.65,0.31 +45.00,0.00,15.00,1.05,1.62,0.17 +30.00,0.00,0.00,0.85,1.70,0.23 +23.90,0.00,0.00,0.47,1.67,0.26 +34.80,1.00,18.00,0.67,1.50,0.16 +8.80,0.00,0.00,0.83,1.80,0.39 +13.20,0.00,0.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.32,1.60,0.31 +47.00,0.00,17.00,0.70,1.58,0.21 +72.00,0.00,42.00,0.37,1.65,0.29 +59.00,0.00,29.00,0.48,1.64,0.24 +30.00,0.00,0.00,0.83,1.67,0.25 +3.30,0.00,0.00,0.49,1.68,0.25 +23.70,0.00,0.00,0.71,1.69,0.22 +71.20,1.00,53.00,0.65,1.80,0.25 +47.00,0.00,17.00,0.38,1.67,0.29 +58.00,0.00,28.00,0.33,1.56,0.27 +59.00,0.00,29.00,0.36,1.62,0.26 +66.00,0.00,36.00,0.44,1.73,0.34 +67.00,0.00,37.00,1.02,1.77,0.21 +44.00,0.00,14.00,0.64,1.55,0.22 +44.00,0.00,14.00,0.51,1.60,0.21 +8.00,0.00,0.00,1.04,1.61,0.18 +16.70,0.00,0.00,0.40,1.69,0.28 +59.00,0.00,29.00,0.62,1.76,0.25 +45.00,0.00,15.00,0.51,1.66,0.24 +15.10,0.00,0.00,0.42,1.67,0.26 +0.20,0.00,0.00,0.41,1.68,0.26 +46.90,1.00,28.00,0.67,1.74,0.34 +11.50,1.00,0.00,0.88,1.72,0.20 +21.60,0.00,0.00,0.65,1.63,0.24 +54.00,0.00,24.00,0.56,1.56,0.18 +15.80,0.00,0.00,0.48,1.64,0.24 +78.00,0.00,48.00,0.44,1.70,0.27 +88.00,0.00,58.00,0.42,1.66,0.25 +44.90,1.00,33.00,0.57,1.66,0.24 +17.30,0.00,0.00,0.62,1.62,0.23 +50.00,0.00,20.00,0.88,1.82,0.49 +11.90,1.00,10.00,0.78,1.80,0.49 +28.00,0.00,0.00,1.18,1.76,0.22 +101.00,0.00,71.00,0.38,1.57,0.24 +52.00,0.00,22.00,0.82,1.77,0.25 +30.00,0.00,0.00,0.76,1.59,0.16 +17.40,0.00,0.00,0.82,1.62,0.18 +60.50,1.00,31.00,0.56,1.55,0.18 +63.50,1.00,39.00,1.02,1.78,0.26 +42.10,1.00,20.00,1.00,1.77,0.21 +10.10,0.00,0.00,1.02,1.77,0.21 +70.00,0.00,40.00,0.49,1.69,0.24 +7.30,0.00,0.00,0.47,1.68,0.29 +63.00,0.00,33.00,0.32,1.65,0.28 +65.00,0.00,35.00,0.35,1.65,0.28 +9.30,0.00,0.00,0.61,1.55,0.21 +90.00,0.00,60.00,0.37,1.65,0.29 +86.00,0.00,56.00,0.52,1.77,0.28 +50.00,0.00,20.00,0.58,1.69,0.26 +34.00,0.00,4.00,0.61,1.53,0.16 +48.00,0.00,18.00,0.64,1.49,0.16 +22.50,0.00,0.00,0.61,1.52,0.18 +69.00,0.00,39.00,0.47,1.67,0.24 +24.30,0.00,0.00,0.63,1.58,0.21 +30.00,0.00,0.00,0.62,1.67,0.23 +85.00,0.00,55.00,0.49,1.64,0.28 +30.00,0.00,0.00,0.79,1.79,0.42 +6.10,0.00,0.00,0.48,1.66,0.24 +80.00,0.00,50.00,0.59,1.59,0.22 +27.60,1.00,7.00,0.76,1.67,0.29 +10.60,0.00,0.00,1.50,1.73,0.27 +49.00,0.00,19.00,0.78,1.75,0.25 +48.00,0.00,18.00,0.62,1.69,0.23 +50.00,0.00,20.00,0.40,1.58,0.23 +30.00,0.00,0.00,0.77,1.63,0.25 +5.10,0.00,0.00,0.54,1.57,0.18 +53.00,0.00,23.00,0.46,1.71,0.33 +52.00,0.00,22.00,0.64,1.55,0.20 +16.40,0.00,0.00,0.71,1.52,0.18 +30.00,0.00,0.00,0.62,1.56,0.22 +51.00,0.00,21.00,0.83,1.60,0.16 +68.00,0.00,38.00,0.46,1.71,0.26 +48.00,0.00,18.00,0.44,1.61,0.25 +47.00,0.00,17.00,0.57,1.68,0.23 +55.00,0.00,25.00,0.39,1.85,0.41 +25.30,1.00,10.00,0.92,1.73,0.20 +49.40,1.00,35.00,0.35,1.64,0.30 +21.70,1.00,0.00,1.29,1.80,0.30 +47.00,0.00,17.00,0.58,1.69,0.26 +59.00,0.00,29.00,0.53,1.65,0.22 +92.00,0.00,62.00,0.67,1.52,0.19 +53.00,0.00,23.00,0.71,1.58,0.22 +74.00,0.00,44.00,0.32,1.64,0.29 +69.00,1.00,51.00,0.34,1.59,0.27 +50.00,0.00,20.00,0.46,1.66,0.26 +44.00,0.00,14.00,0.44,1.71,0.26 +18.70,0.00,0.00,0.41,1.67,0.26 +44.00,0.00,14.00,0.55,1.67,0.24 +87.60,1.00,62.00,0.31,1.58,0.31 +19.10,0.00,0.00,0.38,1.59,0.24 +2.80,0.00,0.00,0.71,1.59,0.21 +8.70,1.00,0.00,1.24,1.75,0.25 +50.00,0.00,20.00,0.63,1.52,0.19 +43.00,0.00,13.00,0.37,1.67,0.29 +8.60,0.00,0.00,0.59,1.58,0.22 +7.80,0.00,0.00,0.86,1.71,0.25 +76.00,0.00,46.00,0.31,1.61,0.30 +21.00,1.00,11.00,0.58,1.68,0.32 +48.00,0.00,18.00,0.53,1.57,0.18 +49.00,0.00,19.00,0.79,1.55,0.17 +61.00,0.00,31.00,0.36,1.65,0.32 +30.00,0.00,0.00,0.86,1.81,0.50 +30.00,0.00,0.00,0.88,1.67,0.25 +63.00,0.00,33.00,0.31,1.63,0.28 +49.00,0.00,19.00,0.81,1.55,0.18 +93.00,0.00,63.00,0.59,1.72,0.24 +43.00,0.00,13.00,0.59,1.75,0.25 +74.00,0.00,44.00,0.42,1.86,0.40 +48.00,0.00,18.00,0.69,1.69,0.23 +87.00,0.00,57.00,0.44,1.61,0.25 +13.20,0.00,0.00,0.70,1.69,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +1.10,0.00,0.00,0.68,1.80,0.38 +42.70,1.00,14.00,0.62,1.60,0.23 +81.70,1.00,52.00,0.50,1.65,0.29 +71.00,0.00,41.00,0.87,1.67,0.25 +86.70,1.00,61.00,0.35,1.60,0.27 +68.00,0.00,38.00,0.46,1.72,0.26 +42.20,1.00,20.00,0.85,1.68,0.35 +22.30,1.00,0.00,0.80,1.74,0.23 +7.90,0.00,0.00,0.75,1.58,0.18 +38.80,1.00,35.00,1.03,1.77,0.21 +34.00,0.00,4.00,0.32,1.74,0.29 +38.10,1.00,33.00,0.53,1.55,0.20 +69.00,0.00,39.00,0.51,1.55,0.26 +0.30,0.00,0.00,0.88,1.82,0.41 +79.80,1.00,53.00,0.82,1.68,0.23 +30.00,0.00,0.00,0.36,1.64,0.31 +42.90,1.00,34.00,0.39,1.68,0.28 +10.70,0.00,0.00,0.57,1.59,0.22 +26.70,1.00,26.00,1.12,1.76,0.24 +30.00,0.00,0.00,0.42,1.62,0.24 +62.00,0.00,32.00,0.45,1.55,0.25 +34.00,0.00,4.00,0.58,1.62,0.25 +90.00,0.00,60.00,0.46,1.72,0.26 +29.40,0.00,0.00,0.66,1.84,0.25 +18.30,0.00,0.00,0.44,1.71,0.26 +37.00,0.00,7.00,0.61,1.55,0.21 +30.00,0.00,0.00,0.86,1.67,0.19 +52.40,1.00,41.00,0.36,1.59,0.26 +40.00,0.00,10.00,0.54,1.53,0.19 +86.00,0.00,56.00,0.58,1.71,0.23 +73.00,0.00,43.00,0.44,1.73,0.27 +31.00,0.00,1.00,0.56,1.58,0.25 +62.70,1.00,44.00,0.32,1.64,0.29 +47.00,0.00,17.00,0.48,1.67,0.25 +44.00,0.00,14.00,0.64,1.87,0.25 +48.00,0.00,18.00,0.68,1.69,0.23 +60.70,1.00,57.00,0.43,1.68,0.25 +30.00,0.00,0.00,0.88,1.72,0.20 +30.00,0.00,0.00,0.54,1.56,0.18 +66.00,0.00,36.00,0.43,1.83,0.39 +0.50,0.00,0.00,0.43,1.72,0.26 +11.30,1.00,4.00,0.59,1.51,0.16 +15.30,0.00,0.00,0.79,1.66,0.29 +42.00,0.00,12.00,0.51,1.61,0.25 +32.50,1.00,14.00,0.67,1.57,0.24 +50.00,0.00,20.00,0.58,1.77,0.25 +95.00,0.00,65.00,0.36,1.79,0.36 +108.00,0.00,78.00,0.63,1.53,0.17 +53.00,0.00,23.00,0.44,1.77,0.37 +41.00,0.00,11.00,0.42,1.65,0.25 +40.00,0.00,10.00,1.04,1.69,0.21 +49.00,0.00,19.00,0.70,1.52,0.19 +66.00,0.00,36.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.70,1.50,0.17 +67.90,1.00,42.00,0.55,1.68,0.23 +86.50,1.00,62.00,0.82,1.56,0.17 +6.40,1.00,0.00,1.50,1.73,0.27 +45.00,0.00,15.00,0.44,1.65,0.25 +30.00,0.00,0.00,0.45,1.70,0.26 +43.90,1.00,21.00,0.62,1.56,0.21 +30.00,0.00,0.00,0.74,1.79,0.39 +19.50,1.00,0.00,1.10,1.71,0.22 +24.00,1.00,11.00,0.65,1.77,0.25 +44.00,0.00,14.00,0.65,1.56,0.23 +87.00,0.00,57.00,0.44,1.61,0.25 +70.00,0.00,40.00,0.38,1.60,0.25 +44.00,0.00,14.00,0.61,1.63,0.26 +5.50,0.00,0.00,0.32,1.72,0.28 +2.20,0.00,0.00,0.42,1.56,0.25 +35.60,1.00,15.00,0.53,1.67,0.24 +71.00,0.00,41.00,0.35,1.60,0.27 +7.40,1.00,0.00,1.01,1.77,0.21 +32.00,0.00,2.00,0.62,1.58,0.22 +2.50,0.00,0.00,0.54,1.84,0.29 +44.00,0.00,14.00,0.42,1.70,0.26 +33.00,0.00,3.00,0.69,1.69,0.31 +78.00,0.00,48.00,0.50,1.83,0.28 +2.80,0.00,0.00,0.78,1.58,0.15 +31.00,0.00,1.00,0.54,1.61,0.22 +3.30,1.00,0.00,0.77,1.78,0.44 +41.00,0.00,11.00,0.55,1.67,0.27 +17.40,1.00,0.00,0.66,1.52,0.19 +40.00,0.00,10.00,0.43,1.66,0.25 +50.00,0.00,20.00,0.58,1.69,0.26 +30.00,0.00,0.00,0.33,1.47,0.27 +11.80,0.00,0.00,0.65,1.54,0.18 +93.60,1.00,66.00,0.57,1.66,0.22 +24.00,0.00,0.00,0.70,1.58,0.22 +30.00,0.00,0.00,0.61,1.56,0.20 +60.80,1.00,56.00,0.54,1.81,0.28 +30.00,0.00,0.00,0.83,1.64,0.18 +33.60,1.00,15.00,0.53,1.67,0.24 +40.00,0.00,10.00,0.74,1.80,0.45 +30.00,0.00,0.00,0.75,1.80,0.41 +52.00,0.00,22.00,0.64,1.55,0.20 +47.00,0.00,17.00,0.73,1.52,0.17 +41.00,0.00,11.00,0.50,1.61,0.27 +49.00,0.00,19.00,0.33,1.71,0.28 +21.70,1.00,20.00,0.90,1.82,0.50 +108.00,0.00,78.00,0.38,1.60,0.24 +30.00,0.00,0.00,0.32,1.53,0.27 +82.00,0.00,52.00,0.52,1.63,0.29 +43.00,0.00,13.00,0.67,1.74,0.40 +69.00,0.00,39.00,0.61,1.55,0.21 +78.00,0.00,48.00,0.45,1.70,0.27 +83.00,0.00,53.00,0.65,1.74,0.24 +10.20,0.00,0.00,0.87,1.70,0.19 +15.40,0.00,0.00,0.51,1.58,0.20 +88.00,0.00,58.00,0.42,1.69,0.26 +43.00,0.00,13.00,0.74,1.72,0.23 +37.70,1.00,37.00,0.55,1.71,0.25 +27.60,0.00,0.00,0.51,1.67,0.23 +71.00,0.00,41.00,0.36,1.59,0.26 +17.70,1.00,17.00,0.54,1.67,0.24 +30.00,0.00,0.00,0.83,1.65,0.18 +30.00,0.00,0.00,0.57,1.73,0.32 +28.90,1.00,18.00,0.87,1.88,0.26 +29.30,1.00,12.00,0.96,1.64,0.17 +47.00,0.00,17.00,0.38,1.68,0.29 +18.50,0.00,0.00,0.77,1.78,0.44 +48.40,1.00,39.00,0.45,1.66,0.28 +101.00,0.00,71.00,0.37,1.56,0.24 +81.00,0.00,51.00,0.32,1.63,0.31 +30.00,0.00,0.00,0.39,1.66,0.27 +106.00,0.00,76.00,0.52,1.71,0.30 +40.00,0.00,10.00,0.44,1.57,0.26 +70.00,0.00,40.00,0.38,1.60,0.25 +44.00,0.00,14.00,0.56,1.68,0.25 +71.00,0.00,41.00,0.63,1.68,0.23 +58.00,0.00,28.00,0.31,1.63,0.28 +63.00,0.00,33.00,0.32,1.60,0.29 +14.20,0.00,0.00,1.47,1.73,0.27 +44.00,0.00,14.00,0.47,1.75,0.28 +83.00,0.00,53.00,0.58,1.66,0.22 +30.00,0.00,0.00,0.82,1.79,0.47 +40.60,1.00,11.00,0.69,1.80,0.24 +71.00,0.00,41.00,0.36,1.59,0.26 +81.00,0.00,51.00,0.48,1.65,0.27 +106.00,0.00,76.00,0.34,1.55,0.26 +63.00,0.00,33.00,0.31,1.62,0.28 +59.00,0.00,29.00,0.64,1.59,0.22 +29.10,1.00,0.00,0.82,1.61,0.17 +6.00,0.00,0.00,0.82,1.57,0.17 +72.00,0.00,42.00,0.37,1.65,0.29 +40.30,1.00,28.00,0.32,1.64,0.28 +60.00,0.00,30.00,0.58,1.58,0.22 +9.50,0.00,0.00,0.43,1.55,0.26 +0.90,0.00,0.00,0.59,1.53,0.19 +4.60,1.00,0.00,1.06,1.75,0.21 +69.00,0.00,39.00,0.62,1.60,0.28 +44.00,0.00,14.00,0.33,1.60,0.32 +93.00,0.00,63.00,0.35,1.66,0.31 +30.00,0.00,0.00,0.81,1.66,0.25 +30.00,0.00,0.00,0.50,1.56,0.25 +49.00,0.00,19.00,0.78,1.74,0.25 +8.90,0.00,0.00,0.86,1.58,0.16 +18.40,0.00,0.00,0.57,1.71,0.24 +71.00,0.00,41.00,0.39,1.60,0.26 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.52,1.56,0.19 +34.00,0.00,4.00,0.59,1.51,0.16 +89.00,0.00,59.00,0.41,1.85,0.40 +74.00,0.00,44.00,0.53,1.79,0.28 +24.40,1.00,13.00,0.68,1.74,0.41 +30.00,0.00,0.00,0.61,1.61,0.24 +47.00,0.00,17.00,0.62,1.56,0.22 +55.00,0.00,25.00,0.58,1.67,0.27 +70.00,0.00,40.00,0.51,1.69,0.24 +87.00,0.00,57.00,0.47,1.73,0.26 +107.00,0.00,77.00,0.38,1.61,0.25 +80.60,1.00,71.00,0.37,1.55,0.25 +91.40,1.00,67.00,0.58,1.53,0.19 +53.10,1.00,41.00,0.89,1.67,0.26 +29.80,1.00,21.00,0.82,1.60,0.16 +67.00,0.00,37.00,0.56,1.74,0.25 +4.60,0.00,0.00,0.59,1.54,0.20 +3.30,0.00,0.00,0.99,1.77,0.24 +60.00,0.00,30.00,0.43,1.66,0.24 +61.00,0.00,31.00,0.35,1.60,0.25 +44.00,0.00,14.00,0.61,1.64,0.27 +24.20,0.00,0.00,0.87,1.57,0.16 +90.00,0.00,60.00,0.58,1.69,0.27 +13.00,0.00,0.00,0.89,1.72,0.20 +30.00,0.00,0.00,0.88,1.82,0.50 +66.00,0.00,36.00,0.46,1.68,0.26 +54.00,0.00,24.00,0.41,1.84,0.39 +47.00,0.00,17.00,0.62,1.59,0.22 +30.00,0.00,0.00,0.35,1.61,0.31 +88.00,0.00,58.00,0.55,1.81,0.27 +92.00,0.00,62.00,0.40,1.69,0.28 +68.50,1.00,42.00,0.83,1.80,0.40 +19.60,0.00,0.00,0.59,1.78,0.36 +22.30,0.00,0.00,0.58,1.53,0.19 +50.00,0.00,20.00,0.54,1.56,0.20 +74.00,0.00,44.00,0.34,1.63,0.28 +47.00,0.00,17.00,0.66,1.56,0.21 +48.30,1.00,30.00,0.71,1.55,0.15 +30.00,0.00,0.00,0.86,1.70,0.23 +63.00,0.00,33.00,0.58,1.66,0.24 +104.00,0.00,74.00,0.31,1.58,0.29 +30.00,0.00,0.00,0.77,1.63,0.25 +20.40,0.00,0.00,0.47,1.64,0.26 +63.00,0.00,33.00,0.32,1.65,0.28 +53.40,1.00,33.00,0.73,1.54,0.20 +49.30,1.00,28.00,0.34,1.56,0.27 +72.00,0.00,42.00,0.56,1.72,0.24 +30.00,0.00,0.00,0.48,1.60,0.27 +74.00,0.00,44.00,0.39,1.77,0.37 +63.00,0.00,33.00,0.57,1.54,0.20 +43.40,1.00,38.00,0.84,1.69,0.25 +30.00,0.00,0.00,1.04,1.77,0.32 +72.00,0.00,42.00,0.38,1.68,0.28 +30.00,0.00,0.00,0.50,1.66,0.28 +67.00,0.00,37.00,0.57,1.78,0.25 +30.00,0.00,0.00,0.35,1.62,0.30 +59.00,0.00,29.00,0.40,1.68,0.27 +59.00,0.00,29.00,0.47,1.66,0.24 +101.00,0.00,71.00,0.55,1.67,0.28 +48.00,0.00,18.00,0.47,1.62,0.23 +98.00,0.00,68.00,0.37,1.64,0.27 +86.00,0.00,56.00,0.50,1.64,0.22 +71.00,0.00,41.00,0.37,1.59,0.26 +66.00,1.00,60.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.83,1.65,0.18 +18.10,0.00,0.00,0.64,1.79,0.37 +90.00,0.00,60.00,0.39,1.57,0.23 +44.00,0.00,14.00,0.39,1.50,0.26 +29.90,0.00,0.00,0.38,1.68,0.29 +72.00,1.00,53.00,0.56,1.66,0.22 +48.00,0.00,18.00,0.61,1.59,0.27 +53.00,0.00,23.00,0.43,1.78,0.37 +4.90,0.00,0.00,0.35,1.65,0.28 +66.30,1.00,66.00,0.52,1.64,0.22 +33.90,1.00,27.00,0.76,1.66,0.28 +1.50,0.00,0.00,0.49,1.71,0.30 +30.00,0.00,0.00,0.47,1.74,0.28 +106.00,0.00,76.00,0.53,1.70,0.29 +16.00,0.00,0.00,0.62,1.59,0.27 +63.00,0.00,33.00,0.32,1.64,0.28 +35.40,1.00,13.00,0.66,1.58,0.22 +73.60,1.00,61.00,0.35,1.64,0.30 +27.90,1.00,0.00,0.37,1.54,0.28 +16.90,1.00,2.00,1.15,1.65,0.20 +12.80,0.00,0.00,0.72,1.61,0.27 +53.00,0.00,23.00,0.31,1.55,0.30 +59.00,0.00,29.00,0.41,1.68,0.26 +42.00,0.00,12.00,0.35,1.61,0.26 +78.00,0.00,48.00,0.44,1.70,0.27 +30.00,0.00,0.00,0.47,1.55,0.25 +44.00,0.00,14.00,0.71,2.06,0.26 +32.60,1.00,30.00,0.53,1.71,0.24 +85.00,0.00,55.00,0.35,1.55,0.27 +51.00,0.00,21.00,0.67,1.53,0.15 +10.30,0.00,0.00,1.06,1.79,0.28 +59.00,0.00,29.00,0.47,1.64,0.24 +59.00,0.00,29.00,0.47,1.64,0.24 +37.70,1.00,10.00,0.88,1.58,0.16 +101.00,0.00,71.00,0.38,1.57,0.25 +44.00,0.00,14.00,0.49,1.61,0.21 +73.00,0.00,43.00,0.45,1.74,0.28 +30.00,0.00,0.00,0.57,1.50,0.16 +5.50,0.00,0.00,0.52,1.70,0.30 +52.00,0.00,22.00,0.36,1.62,0.26 +70.00,0.00,40.00,0.40,1.60,0.24 +91.00,0.00,61.00,0.38,1.67,0.28 +82.00,0.00,52.00,0.50,1.63,0.26 +30.00,0.00,0.00,1.00,1.75,0.25 +3.30,0.00,0.00,0.39,1.66,0.27 +26.30,0.00,0.00,0.38,1.58,0.28 +30.00,0.00,0.00,0.82,1.60,0.17 +30.00,0.00,0.00,0.60,1.62,0.25 +23.40,1.00,0.00,0.55,1.58,0.19 +28.30,0.00,0.00,0.51,1.58,0.20 +66.00,0.00,36.00,0.43,1.70,0.32 +30.00,0.00,0.00,0.59,1.75,0.33 +27.60,1.00,0.00,1.22,1.79,0.30 +60.00,0.00,30.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.45,1.62,0.25 +44.00,0.00,14.00,0.46,1.61,0.23 +16.40,1.00,0.00,0.82,1.77,0.38 +49.00,0.00,19.00,0.38,1.82,0.37 +61.00,0.00,31.00,0.34,1.60,0.27 +30.00,0.00,0.00,0.33,1.60,0.31 +51.00,0.00,21.00,0.68,1.53,0.15 +48.50,1.00,37.00,0.61,1.69,0.23 +40.00,0.00,10.00,0.84,1.57,0.16 +50.00,0.00,20.00,0.53,1.72,0.24 +5.30,0.00,0.00,0.59,1.50,0.17 +45.00,0.00,15.00,0.43,1.67,0.25 +50.00,0.00,20.00,0.69,1.50,0.17 +60.00,0.00,30.00,0.32,1.68,0.28 +30.00,0.00,0.00,0.56,1.73,0.32 +69.00,0.00,39.00,0.58,1.68,0.23 +8.00,0.00,0.00,0.58,1.68,0.33 +78.00,0.00,48.00,0.50,1.81,0.28 +96.00,0.00,66.00,0.46,1.64,0.24 +49.00,0.00,19.00,0.51,1.63,0.21 +42.00,0.00,12.00,0.47,1.60,0.26 +83.00,0.00,53.00,0.40,1.67,0.27 +30.00,0.00,0.00,0.51,1.69,0.28 +0.10,0.00,0.00,0.83,1.69,0.22 +15.20,1.00,13.00,0.45,1.66,0.24 +43.00,0.00,13.00,0.38,1.67,0.29 +37.00,0.00,7.00,0.75,1.67,0.28 +42.10,1.00,25.00,1.06,1.63,0.23 +50.00,0.00,20.00,0.73,1.77,0.24 +17.60,0.00,0.00,0.57,1.57,0.26 +30.00,0.00,0.00,0.86,1.81,0.49 +25.40,1.00,15.00,0.68,1.53,0.18 +43.60,1.00,18.00,0.74,1.69,0.23 +23.50,1.00,9.00,0.36,1.64,0.29 +43.00,0.00,13.00,0.68,1.74,0.40 +30.00,0.00,0.00,0.94,1.84,0.53 +51.00,0.00,21.00,0.44,1.73,0.27 +30.00,0.00,0.00,0.39,1.61,0.24 +86.00,0.00,56.00,0.51,1.75,0.27 +58.00,0.00,28.00,0.65,1.74,0.34 +58.20,1.00,37.00,0.61,1.76,0.24 +59.50,1.00,41.00,0.61,1.69,0.23 +23.20,1.00,0.00,0.54,1.56,0.18 +72.00,0.00,42.00,0.46,1.82,0.39 +15.00,0.00,0.00,0.57,1.71,0.24 +30.00,0.00,0.00,0.34,1.61,0.31 +30.00,0.00,0.00,1.14,1.77,0.27 +43.70,1.00,18.00,0.89,1.68,0.25 +56.00,0.00,26.00,0.52,1.65,0.30 +49.00,0.00,19.00,0.64,1.60,0.28 +51.00,0.00,21.00,0.49,1.63,0.26 +27.40,0.00,0.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.76,1.65,0.24 +30.00,0.00,0.00,0.55,1.82,0.28 +45.00,0.00,15.00,0.55,1.59,0.22 +107.00,0.00,77.00,0.39,1.61,0.25 +52.00,0.00,22.00,0.42,1.67,0.25 +30.00,0.00,0.00,0.53,1.56,0.18 +30.00,0.00,0.00,0.71,1.54,0.20 +92.00,0.00,62.00,0.53,1.84,0.29 +2.20,0.00,0.00,0.36,1.65,0.30 +65.00,0.00,35.00,0.34,1.64,0.28 +45.60,1.00,20.00,0.95,1.84,0.52 +4.50,0.00,0.00,0.56,1.53,0.19 +44.80,1.00,30.00,0.59,1.62,0.22 +12.20,0.00,0.00,0.99,1.63,0.18 +44.00,0.00,14.00,0.69,2.08,0.26 +43.00,0.00,13.00,0.41,1.68,0.26 +9.60,0.00,0.00,0.39,1.58,0.28 +19.40,0.00,0.00,0.32,1.70,0.29 +48.00,0.00,18.00,0.66,1.50,0.16 +78.00,0.00,48.00,0.49,1.77,0.28 +91.00,0.00,61.00,0.39,1.68,0.28 +51.00,0.00,21.00,0.52,1.66,0.29 +74.00,0.00,44.00,0.34,1.63,0.28 +44.00,0.00,14.00,0.59,1.77,0.25 +48.00,0.00,18.00,0.55,1.52,0.17 +30.00,0.00,0.00,0.51,1.80,0.29 +44.00,0.00,14.00,0.60,1.70,0.29 +30.00,0.00,0.00,0.56,1.62,0.25 +30.00,0.00,0.00,0.40,1.69,0.27 +30.00,0.00,0.00,0.66,1.52,0.18 +15.00,0.00,0.00,0.52,1.70,0.28 +47.00,0.00,17.00,0.59,1.53,0.19 +67.00,0.00,37.00,0.44,1.70,0.28 +43.00,0.00,13.00,0.44,1.73,0.28 +1.30,0.00,0.00,0.95,1.64,0.17 +9.50,0.00,0.00,0.56,1.67,0.27 +59.00,0.00,29.00,0.58,1.74,0.24 +18.00,0.00,0.00,0.58,1.58,0.22 +12.20,0.00,0.00,0.62,1.53,0.18 +47.00,0.00,17.00,0.39,1.56,0.24 +23.50,0.00,0.00,0.66,1.54,0.18 +25.10,1.00,19.00,0.73,1.52,0.18 +42.00,0.00,12.00,0.50,1.76,0.27 +51.30,1.00,40.00,0.44,1.58,0.25 +72.40,1.00,60.00,0.62,1.75,0.33 +26.60,1.00,0.00,0.54,1.57,0.18 +30.00,0.00,0.00,0.39,1.56,0.28 +108.00,0.00,78.00,0.48,1.60,0.26 +60.20,1.00,36.00,0.86,1.63,0.18 +30.00,0.00,0.00,0.66,1.65,0.24 +23.80,0.00,0.00,0.56,1.68,0.33 +30.00,0.00,0.00,0.73,1.54,0.20 +71.00,0.00,41.00,0.52,1.82,0.28 +66.00,0.00,36.00,0.38,1.58,0.28 +11.20,0.00,0.00,0.57,1.79,0.37 +69.00,0.00,39.00,0.43,1.71,0.26 +30.00,0.00,0.00,0.47,1.55,0.25 +1.70,0.00,0.00,0.69,1.63,0.25 +3.20,0.00,0.00,0.67,1.65,0.24 +27.70,0.00,0.00,0.50,1.70,0.26 +41.00,0.00,11.00,0.72,1.83,0.24 +52.00,0.00,22.00,0.43,1.67,0.25 +22.10,0.00,0.00,0.82,1.57,0.17 +26.40,0.00,0.00,0.46,1.67,0.26 +45.00,0.00,15.00,0.51,1.66,0.24 +61.00,0.00,31.00,0.51,1.67,0.28 +44.00,0.00,14.00,0.40,1.63,0.25 +63.00,0.00,33.00,0.32,1.64,0.28 +63.00,0.00,33.00,0.43,1.70,0.27 +30.00,0.00,0.00,0.94,1.75,0.22 +15.60,0.00,0.00,0.33,1.55,0.26 +44.00,0.00,14.00,0.44,1.71,0.27 +71.00,0.00,41.00,0.37,1.60,0.25 +40.00,0.00,10.00,0.36,1.57,0.23 +44.00,0.00,14.00,0.46,1.55,0.27 +45.00,0.00,15.00,0.64,1.50,0.15 +44.00,0.00,14.00,0.47,1.75,0.27 +88.00,0.00,58.00,0.64,1.69,0.23 +107.00,0.00,77.00,0.39,1.61,0.24 +83.00,0.00,53.00,0.51,1.58,0.21 +74.00,0.00,44.00,0.32,1.58,0.31 +58.00,0.00,28.00,0.32,1.56,0.28 +44.00,0.00,14.00,0.66,1.57,0.23 +4.00,0.00,0.00,0.94,1.63,0.30 +39.00,0.00,9.00,0.33,1.51,0.27 +51.00,0.00,21.00,0.86,1.61,0.16 +4.70,0.00,0.00,0.60,1.60,0.28 +60.00,0.00,30.00,0.33,1.66,0.28 +34.00,0.00,4.00,0.58,1.50,0.16 +47.00,0.00,17.00,0.47,1.70,0.26 +51.60,1.00,23.00,0.43,1.78,0.38 +7.00,0.00,0.00,0.59,1.58,0.21 +85.00,0.00,55.00,0.48,1.61,0.27 +19.70,0.00,0.00,0.57,1.52,0.17 +98.00,0.00,68.00,0.39,1.55,0.24 +28.70,1.00,0.00,0.74,1.80,0.39 +50.00,0.00,20.00,0.53,1.58,0.21 +72.00,0.00,42.00,0.38,1.66,0.28 +45.00,0.00,15.00,0.44,1.65,0.25 +41.00,1.00,31.00,0.43,1.72,0.26 +45.00,0.00,15.00,0.62,1.52,0.16 +52.00,0.00,22.00,0.38,1.68,0.28 +30.00,0.00,0.00,1.03,1.76,0.21 +50.00,0.00,20.00,0.55,1.54,0.20 +15.20,0.00,0.00,1.05,1.79,0.27 +62.00,0.00,32.00,0.61,1.60,0.26 +52.00,0.00,22.00,0.43,1.67,0.25 +48.00,0.00,18.00,0.53,1.58,0.18 +69.00,0.00,39.00,0.54,1.55,0.18 +90.00,0.00,60.00,0.58,1.73,0.31 +8.00,0.00,0.00,0.34,1.55,0.25 +45.00,0.00,15.00,0.45,1.66,0.25 +30.00,0.00,0.00,0.97,1.78,0.21 +71.00,0.00,41.00,0.40,1.85,0.41 +38.00,1.00,28.00,0.70,1.74,0.35 +58.00,0.00,28.00,0.32,1.56,0.27 +65.00,0.00,35.00,0.55,1.67,0.31 +30.00,0.00,0.00,0.93,1.74,0.22 +5.00,0.00,0.00,0.83,1.80,0.40 +98.40,1.00,71.00,0.42,1.67,0.25 +81.30,1.00,58.00,0.54,1.80,0.28 +35.40,1.00,32.00,0.33,1.60,0.32 +69.00,0.00,39.00,0.59,1.57,0.21 +35.00,0.00,5.00,0.68,1.69,0.23 +10.50,0.00,0.00,0.88,1.82,0.50 +106.00,0.00,76.00,0.49,1.67,0.28 +60.00,0.00,30.00,0.33,1.66,0.28 +1.60,0.00,0.00,0.65,1.69,0.23 +30.00,0.00,0.00,0.66,1.52,0.18 +78.00,0.00,48.00,0.45,1.71,0.27 +22.40,1.00,0.00,0.76,1.59,0.16 +36.70,1.00,20.00,0.54,1.59,0.21 +48.00,0.00,18.00,0.59,1.59,0.27 +50.00,0.00,20.00,0.58,1.66,0.22 +30.00,0.00,0.00,0.79,1.78,0.43 +63.00,1.00,35.00,0.93,1.75,0.21 +29.90,0.00,0.00,0.68,1.53,0.19 +48.00,0.00,18.00,0.51,1.59,0.21 +44.00,0.00,14.00,0.44,1.71,0.26 +43.00,0.00,13.00,0.80,1.57,0.16 +70.00,0.00,40.00,0.38,1.61,0.25 +45.00,0.00,15.00,0.42,1.61,0.25 +83.00,0.00,53.00,0.51,1.58,0.21 +51.30,1.00,25.00,0.58,1.57,0.21 +30.00,0.00,0.00,0.32,1.59,0.32 +69.00,0.00,39.00,0.61,1.55,0.21 +66.70,1.00,52.00,0.88,1.71,0.20 +63.00,0.00,33.00,0.52,1.70,0.24 +43.00,0.00,13.00,0.47,1.67,0.25 +33.00,0.00,3.00,0.46,1.67,0.26 +37.00,1.00,10.00,0.93,1.73,0.20 +44.00,0.00,14.00,0.51,1.59,0.20 +64.00,0.00,34.00,0.41,1.70,0.27 +46.00,0.00,16.00,0.40,1.66,0.26 +30.00,0.00,0.00,0.65,1.53,0.20 +57.10,1.00,41.00,0.82,1.67,0.25 +13.00,0.00,0.00,0.37,1.66,0.28 +85.10,1.00,58.00,0.64,1.69,0.23 +5.90,0.00,0.00,0.32,1.56,0.27 +90.00,0.00,60.00,0.38,1.56,0.23 +26.70,1.00,12.00,0.58,1.69,0.27 +30.00,0.00,0.00,0.39,1.66,0.26 +7.60,0.00,0.00,0.67,1.54,0.18 +30.50,1.00,17.00,0.66,1.56,0.21 +66.00,0.00,36.00,0.49,1.66,0.24 +87.00,0.00,57.00,0.42,1.67,0.25 +25.60,0.00,0.00,0.63,1.73,0.24 +60.00,0.00,30.00,0.33,1.64,0.29 +30.00,0.00,0.00,0.32,1.54,0.27 +30.00,0.00,0.00,0.33,1.59,0.31 +47.20,1.00,29.00,0.38,1.67,0.30 +81.50,1.00,76.00,0.52,1.70,0.28 +90.00,0.00,60.00,0.40,1.67,0.27 +46.00,0.00,16.00,0.59,1.80,0.38 +19.50,0.00,0.00,0.39,1.56,0.28 +44.00,0.00,14.00,0.61,1.62,0.25 +50.30,1.00,39.00,0.61,1.55,0.21 +40.00,0.00,10.00,0.92,1.65,0.19 +47.00,0.00,17.00,0.49,1.70,0.29 +44.00,0.00,14.00,0.45,1.70,0.25 +14.80,0.00,0.00,0.61,1.71,0.36 +43.00,0.00,13.00,0.80,1.57,0.16 +90.00,0.00,60.00,0.42,1.59,0.24 +24.30,1.00,0.00,0.90,1.83,0.52 +49.00,0.00,19.00,0.70,1.52,0.19 +57.00,0.00,27.00,0.45,1.71,0.26 +59.00,0.00,29.00,0.48,1.64,0.23 +49.20,1.00,42.00,0.64,1.79,0.37 +10.50,1.00,0.00,0.82,1.61,0.18 +42.00,1.00,13.00,0.50,1.64,0.22 +20.80,0.00,0.00,0.96,1.64,0.18 +79.00,0.00,49.00,0.69,1.59,0.25 +59.00,0.00,29.00,0.69,1.73,0.34 +49.00,0.00,19.00,0.47,1.85,0.41 +38.00,0.00,8.00,0.53,1.54,0.18 +30.00,0.00,0.00,0.72,1.54,0.20 +37.00,0.00,7.00,0.60,1.55,0.21 +90.00,0.00,60.00,0.40,1.67,0.27 +72.00,0.00,42.00,0.37,1.62,0.26 +72.00,0.00,42.00,0.37,1.63,0.26 +77.00,0.00,47.00,0.55,1.66,0.23 +24.20,1.00,0.00,0.85,1.58,0.17 +54.00,0.00,24.00,0.40,1.83,0.39 +56.00,0.00,26.00,0.82,1.67,0.32 +3.50,0.00,0.00,0.67,1.71,0.24 +83.00,0.00,53.00,0.46,1.73,0.27 +45.00,0.00,15.00,0.58,1.53,0.19 +52.00,0.00,22.00,0.36,1.62,0.26 +107.00,0.00,77.00,0.39,1.61,0.25 +9.00,0.00,0.00,0.45,1.74,0.28 +29.10,0.00,0.00,0.68,1.72,0.24 +38.40,1.00,29.00,0.49,1.62,0.23 +22.40,0.00,0.00,0.66,1.52,0.19 +88.00,0.00,58.00,0.59,1.75,0.25 +50.00,0.00,20.00,0.64,1.51,0.19 +106.00,0.00,76.00,0.34,1.55,0.25 +30.00,0.00,0.00,0.59,1.82,0.26 +13.80,0.00,0.00,0.41,1.81,0.39 +50.00,0.00,20.00,0.63,1.52,0.19 +72.00,0.00,42.00,0.72,1.82,0.42 +41.00,0.00,11.00,0.79,1.54,0.18 +44.00,0.00,14.00,0.44,1.71,0.26 +60.00,0.00,30.00,0.51,1.70,0.24 +30.00,0.00,0.00,0.32,1.55,0.27 +53.00,0.00,23.00,0.31,1.56,0.31 +60.00,0.00,30.00,0.32,1.64,0.28 +42.00,0.00,12.00,0.47,1.61,0.25 +47.00,0.00,17.00,0.55,1.67,0.24 +30.00,0.00,0.00,0.35,1.59,0.26 +30.00,0.00,0.00,0.85,1.67,0.25 +5.40,0.00,0.00,0.63,1.54,0.20 +30.00,0.00,0.00,0.45,1.70,0.27 +44.00,0.00,14.00,0.62,1.56,0.22 +48.00,0.00,18.00,0.33,1.65,0.30 +87.00,0.00,57.00,0.48,1.74,0.27 +30.00,0.00,0.00,0.82,1.62,0.18 +43.00,0.00,13.00,0.44,1.71,0.26 +43.00,0.00,13.00,0.45,1.66,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +71.10,1.00,67.00,0.59,1.70,0.27 +48.10,1.00,32.00,0.68,1.57,0.22 +47.00,0.00,17.00,0.62,1.56,0.22 +30.30,1.00,20.00,0.68,1.50,0.17 +72.00,0.00,42.00,0.72,1.83,0.42 +13.00,0.00,0.00,0.64,1.56,0.21 +53.00,0.00,23.00,0.44,1.56,0.27 +50.90,1.00,39.00,0.46,1.69,0.24 +6.50,0.00,0.00,0.58,1.50,0.16 +107.00,0.00,77.00,0.39,1.61,0.24 +30.00,0.00,0.00,0.60,1.65,0.23 +53.00,0.00,23.00,0.40,1.68,0.27 +43.00,0.00,13.00,0.44,1.70,0.26 +72.00,0.00,42.00,0.39,1.69,0.28 +63.00,0.00,33.00,0.35,1.66,0.28 +59.00,0.00,29.00,0.52,1.64,0.22 +44.00,0.00,14.00,0.44,1.70,0.25 +63.00,0.00,33.00,0.61,1.56,0.21 +30.00,0.00,0.00,0.66,1.52,0.19 +66.00,0.00,36.00,0.44,1.69,0.32 +30.00,0.00,0.00,0.70,1.77,0.38 +5.50,0.00,0.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.72,1.67,0.35 +61.00,0.00,31.00,0.56,1.56,0.18 +41.00,0.00,11.00,0.80,1.54,0.17 +75.10,1.00,67.00,0.58,1.68,0.33 +35.20,1.00,11.00,0.73,1.86,0.25 +101.00,0.00,71.00,0.63,1.58,0.21 +54.10,1.00,33.00,0.60,1.57,0.23 +43.00,0.00,13.00,0.31,1.59,0.28 +63.00,0.00,33.00,0.74,1.55,0.20 +2.20,0.00,0.00,0.61,1.52,0.18 +88.00,0.00,58.00,0.42,1.67,0.25 +33.60,1.00,22.00,0.78,1.66,0.28 +64.00,0.00,34.00,0.34,1.65,0.29 +7.00,0.00,0.00,0.45,1.63,0.26 +18.50,1.00,0.00,0.98,1.76,0.23 +24.10,1.00,0.00,0.66,1.51,0.17 +53.00,0.00,23.00,0.35,1.60,0.27 +52.00,0.00,22.00,0.41,1.62,0.25 +47.00,0.00,17.00,0.33,1.53,0.27 +42.00,0.00,12.00,0.55,1.65,0.24 +5.10,0.00,0.00,0.39,1.59,0.24 +30.00,0.00,0.00,0.34,1.49,0.27 +40.00,0.00,10.00,1.00,1.61,0.18 +61.00,0.00,31.00,0.44,1.63,0.24 +81.00,0.00,51.00,0.35,1.60,0.27 +10.00,0.00,0.00,0.38,1.66,0.27 +30.00,0.00,0.00,0.76,1.58,0.15 +99.00,0.00,69.00,0.56,1.52,0.17 +58.00,0.00,28.00,0.68,1.74,0.35 +21.70,0.00,0.00,0.80,1.67,0.31 +47.00,0.00,17.00,0.57,1.68,0.23 +58.00,0.00,28.00,0.33,1.61,0.30 +9.00,0.00,0.00,0.61,1.55,0.21 +52.00,0.00,22.00,0.38,1.68,0.28 +24.00,1.00,15.00,0.63,1.49,0.15 +1.30,0.00,0.00,0.35,1.57,0.26 +44.00,0.00,14.00,0.54,1.67,0.24 +72.00,0.00,42.00,0.69,1.81,0.39 +48.00,0.00,18.00,0.65,1.69,0.23 +46.20,1.00,39.00,0.64,1.53,0.20 +17.60,0.00,0.00,0.80,1.60,0.23 +53.00,0.00,23.00,0.53,1.72,0.32 +56.00,0.00,26.00,0.78,1.67,0.29 +30.00,0.00,0.00,0.82,1.80,0.40 +30.00,0.00,0.00,0.58,1.74,0.33 +34.00,0.00,4.00,0.33,1.62,0.27 +66.00,0.00,36.00,0.32,1.60,0.29 +60.00,0.00,30.00,0.37,1.66,0.30 +16.20,0.00,0.00,0.58,1.65,0.26 +47.50,1.00,40.00,0.43,1.57,0.25 +30.00,0.00,0.00,0.85,1.81,0.50 +63.00,0.00,33.00,0.49,1.69,0.25 +30.00,0.00,0.00,0.32,1.53,0.27 +13.40,0.00,0.00,0.86,1.67,0.25 +30.00,0.00,0.00,0.72,1.70,0.23 +96.00,0.00,66.00,0.48,1.63,0.23 +30.00,0.00,0.00,0.58,1.66,0.24 +80.20,1.00,74.00,0.31,1.58,0.29 +58.00,0.00,28.00,0.70,1.74,0.35 +51.70,1.00,26.00,0.82,1.67,0.33 +84.00,0.00,54.00,0.45,1.62,0.25 +64.00,0.00,34.00,0.33,1.64,0.29 +74.00,0.00,44.00,0.36,1.64,0.28 +31.00,0.00,1.00,0.60,1.60,0.26 +97.00,0.00,67.00,0.58,1.53,0.19 +63.30,1.00,42.00,0.83,1.80,0.40 +74.00,0.00,44.00,0.32,1.63,0.29 +40.00,0.00,10.00,0.42,1.66,0.25 +52.00,0.00,22.00,0.38,1.68,0.28 +59.60,1.00,52.00,0.85,1.68,0.19 +69.00,0.00,39.00,0.34,1.63,0.27 +78.00,1.00,50.00,0.59,1.58,0.21 +81.50,1.00,60.00,0.60,1.70,0.37 +73.10,1.00,58.00,0.63,1.68,0.23 +29.90,1.00,0.00,1.01,1.77,0.24 +60.00,0.00,30.00,0.45,1.65,0.24 +23.10,0.00,0.00,1.05,1.79,0.27 +81.00,0.00,51.00,0.46,1.63,0.26 +45.30,1.00,42.00,0.55,1.69,0.23 +31.00,0.00,1.00,0.89,1.72,0.20 +85.00,0.00,55.00,0.48,1.61,0.28 +41.00,0.00,11.00,0.50,1.61,0.27 +63.00,0.00,33.00,0.52,1.57,0.20 +78.00,0.00,48.00,0.44,1.70,0.27 +71.00,0.00,41.00,0.75,1.68,0.23 +62.60,1.00,53.00,0.82,1.68,0.23 +73.00,0.00,43.00,0.44,1.72,0.26 +72.00,0.00,42.00,0.37,1.65,0.28 +68.10,1.00,56.00,0.56,1.71,0.24 +5.30,0.00,0.00,0.68,1.61,0.28 +77.00,0.00,47.00,0.81,1.55,0.21 +45.00,1.00,42.00,0.84,1.78,0.39 +21.00,1.00,17.00,0.51,1.58,0.21 +76.00,0.00,46.00,0.33,1.55,0.27 +3.10,0.00,0.00,1.49,1.73,0.27 +72.00,0.00,42.00,0.46,1.82,0.40 +40.00,0.00,10.00,0.54,1.54,0.19 +17.20,1.00,0.00,1.14,1.89,0.56 +104.00,0.00,74.00,0.30,1.57,0.29 +50.00,0.00,20.00,0.45,1.66,0.25 +18.60,1.00,0.00,1.26,1.77,0.25 +66.00,0.00,36.00,0.45,1.70,0.27 +30.00,0.00,0.00,1.04,1.62,0.23 +30.00,0.00,0.00,0.63,1.50,0.17 +11.60,0.00,0.00,0.35,1.58,0.26 +52.00,0.00,22.00,0.37,1.64,0.27 +53.50,1.00,29.00,0.59,1.74,0.24 +10.80,0.00,0.00,0.43,1.73,0.27 +51.00,0.00,21.00,0.60,1.58,0.23 +91.00,0.00,61.00,0.35,1.59,0.27 +30.00,0.00,0.00,0.38,1.67,0.28 +4.10,0.00,0.00,0.71,1.74,0.36 +30.00,0.00,0.00,0.79,1.59,0.15 +12.10,0.00,0.00,1.49,1.73,0.27 +45.00,0.00,15.00,0.60,1.54,0.21 +88.00,0.00,58.00,0.42,1.67,0.25 +27.30,1.00,17.00,0.40,1.57,0.28 +30.00,0.00,0.00,0.70,1.67,0.33 +30.00,0.00,0.00,0.73,1.79,0.39 +60.00,0.00,30.00,0.44,1.65,0.24 +45.40,1.00,31.00,0.88,1.70,0.19 +101.00,0.00,71.00,0.51,1.81,0.29 +30.00,0.00,0.00,0.62,1.56,0.22 +60.00,0.00,30.00,0.59,1.63,0.22 +18.60,0.00,0.00,0.58,1.69,0.27 +76.30,1.00,58.00,0.88,1.58,0.16 +47.00,0.00,17.00,0.39,1.55,0.24 +8.30,0.00,0.00,0.37,1.55,0.27 +60.20,1.00,42.00,0.50,1.78,0.38 +7.00,1.00,0.00,0.95,1.66,0.19 +30.00,0.00,0.00,1.01,1.62,0.18 +30.00,0.00,0.00,0.86,1.70,0.23 +99.00,0.00,69.00,0.55,1.52,0.18 +15.10,0.00,0.00,0.63,1.52,0.19 +30.00,0.00,0.00,0.72,1.58,0.20 +47.00,0.00,17.00,0.54,1.73,0.24 +44.00,0.00,14.00,0.61,1.64,0.27 +47.90,1.00,30.00,0.71,1.55,0.15 +41.00,0.00,11.00,0.46,1.72,0.28 +30.50,1.00,29.00,0.68,1.61,0.24 +58.00,0.00,28.00,0.42,1.56,0.28 +5.10,0.00,0.00,0.61,1.79,0.25 +78.00,0.00,48.00,0.46,1.73,0.26 +41.00,0.00,11.00,0.55,1.66,0.27 +101.00,0.00,71.00,0.38,1.56,0.25 +88.00,0.00,58.00,0.62,1.68,0.23 +3.80,0.00,0.00,0.71,1.82,0.41 +66.00,0.00,36.00,0.44,1.75,0.36 +14.10,0.00,0.00,0.57,1.77,0.35 +45.00,0.00,15.00,0.62,1.52,0.17 +30.00,0.00,0.00,0.56,1.79,0.26 +30.00,0.00,0.00,0.91,1.81,0.44 +44.00,0.00,14.00,0.44,1.72,0.27 +80.70,1.00,76.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.58,1.83,0.26 +29.90,0.00,0.00,1.07,1.76,0.22 +47.00,0.00,17.00,0.52,1.72,0.31 +44.00,0.00,14.00,0.64,1.88,0.25 +21.00,1.00,0.00,0.67,1.52,0.19 +59.00,0.00,29.00,0.60,1.77,0.26 +51.00,0.00,21.00,0.43,1.73,0.27 +30.00,0.00,0.00,0.42,1.68,0.26 +48.00,0.00,18.00,0.54,1.55,0.18 +3.90,0.00,0.00,0.40,1.61,0.24 +40.00,0.00,10.00,0.45,1.87,0.47 +30.00,0.00,0.00,0.46,1.65,0.24 +44.00,0.00,14.00,0.52,1.59,0.20 +59.00,0.00,29.00,0.70,1.72,0.25 +46.10,1.00,31.00,0.89,1.69,0.19 +50.60,1.00,25.00,0.41,1.52,0.27 +63.00,0.00,33.00,0.55,1.54,0.20 +16.50,0.00,0.00,0.49,1.67,0.24 +18.70,1.00,0.00,0.97,1.74,0.24 +37.50,1.00,23.00,0.35,1.60,0.27 +3.00,0.00,0.00,0.78,1.67,0.29 +63.00,0.00,33.00,0.32,1.63,0.28 +30.00,0.00,0.00,0.73,1.53,0.16 +45.00,0.00,15.00,0.42,1.61,0.25 +44.00,0.00,14.00,0.57,1.68,0.27 +54.00,0.00,24.00,0.43,1.67,0.27 +61.00,0.00,31.00,0.43,1.72,0.26 +63.00,0.00,33.00,0.42,1.70,0.28 +83.00,0.00,53.00,0.59,1.67,0.23 +30.00,0.00,0.00,0.60,1.60,0.25 +38.30,1.00,31.00,0.60,1.55,0.21 +58.00,0.00,28.00,0.39,1.58,0.27 +44.00,0.00,14.00,0.62,1.59,0.22 +34.10,1.00,6.00,0.54,1.56,0.20 +78.00,0.00,48.00,0.50,1.80,0.28 +62.70,1.00,46.00,0.32,1.61,0.29 +31.60,1.00,11.00,0.67,1.78,0.24 +100.10,1.00,71.00,0.34,1.48,0.27 +30.00,0.00,0.00,0.85,1.67,0.19 +1.40,0.00,0.00,0.93,1.74,0.22 +27.00,0.00,0.00,0.65,1.72,0.24 +34.00,0.00,4.00,0.33,1.63,0.27 +54.00,0.00,24.00,0.55,1.56,0.18 +64.20,1.00,43.00,0.39,1.66,0.27 +6.70,0.00,0.00,0.68,1.74,0.34 +61.00,0.00,31.00,0.49,1.66,0.28 +41.00,0.00,11.00,0.46,1.75,0.27 +96.30,1.00,76.00,0.52,1.70,0.28 +85.00,0.00,55.00,0.46,1.54,0.27 +30.00,0.00,0.00,0.47,1.67,0.25 +88.00,0.00,58.00,0.64,1.69,0.23 +63.00,0.00,33.00,0.62,1.65,0.23 +84.00,1.00,61.00,0.36,1.64,0.29 +31.00,0.00,1.00,0.41,1.68,0.26 +52.00,0.00,22.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.68,1.61,0.28 +43.00,0.00,13.00,0.41,1.69,0.27 +63.00,0.00,33.00,0.45,1.69,0.26 +30.00,0.00,0.00,0.45,1.62,0.26 +106.00,0.00,76.00,0.48,1.65,0.27 +89.40,1.00,61.00,0.34,1.65,0.31 +50.00,0.00,20.00,0.44,1.65,0.25 +8.00,0.00,0.00,0.92,1.63,0.18 +38.00,0.00,8.00,0.53,1.55,0.18 +40.00,0.00,10.00,0.78,1.80,0.50 +30.00,0.00,0.00,0.50,1.75,0.28 +11.80,0.00,0.00,0.45,1.72,0.26 +8.70,0.00,0.00,0.75,1.54,0.20 +87.00,0.00,57.00,0.44,1.69,0.25 +30.00,0.00,0.00,0.37,1.57,0.28 +63.00,0.00,33.00,0.52,1.57,0.20 +90.00,0.00,60.00,0.38,1.56,0.23 +34.90,1.00,26.00,0.79,1.67,0.30 +76.00,0.00,46.00,0.70,1.69,0.22 +66.10,1.00,39.00,0.56,1.57,0.26 +48.00,0.00,18.00,0.62,1.69,0.23 +28.80,0.00,0.00,0.39,1.61,0.24 +84.00,0.00,54.00,0.46,1.68,0.30 +50.00,0.00,20.00,0.62,1.52,0.19 +65.00,1.00,55.00,0.35,1.56,0.27 +83.00,0.00,53.00,0.52,1.57,0.20 +53.00,0.00,23.00,0.40,1.67,0.26 +46.00,0.00,16.00,0.46,1.67,0.26 +9.80,0.00,0.00,0.47,1.67,0.25 +30.00,0.00,0.00,0.66,1.52,0.18 +90.00,0.00,60.00,0.39,1.62,0.25 +58.00,0.00,28.00,0.32,1.59,0.31 +63.00,0.00,33.00,0.56,1.65,0.24 +62.00,0.00,32.00,0.34,1.62,0.32 +15.90,0.00,0.00,0.69,1.84,0.25 +43.50,1.00,20.00,0.56,1.71,0.24 +41.00,0.00,11.00,0.54,1.65,0.26 +63.00,0.00,33.00,0.31,1.58,0.29 +30.00,0.00,0.00,0.57,1.66,0.22 +26.00,0.00,0.00,0.33,1.57,0.26 +30.00,0.00,0.00,0.55,1.52,0.17 +87.00,0.00,57.00,0.43,1.68,0.25 +90.70,1.00,71.00,0.49,1.63,0.25 +44.00,0.00,14.00,0.32,1.59,0.31 +30.00,0.00,0.00,0.78,1.59,0.17 +22.40,1.00,0.00,0.83,1.57,0.16 +53.00,0.00,23.00,0.38,1.65,0.26 +6.70,0.00,0.00,0.32,1.58,0.31 +35.80,1.00,14.00,0.57,1.68,0.27 +43.00,0.00,13.00,0.53,1.71,0.23 +53.00,0.00,23.00,0.31,1.56,0.31 +30.00,0.00,0.00,0.54,1.56,0.18 +92.00,0.00,62.00,0.31,1.59,0.31 +19.00,0.00,0.00,0.85,1.56,0.18 +30.00,0.00,0.00,1.02,1.77,0.30 +41.00,0.00,11.00,0.48,1.61,0.26 +32.00,0.00,2.00,0.59,1.66,0.24 +57.20,1.00,33.00,1.03,1.62,0.23 +56.90,1.00,37.00,0.91,1.59,0.17 +65.00,0.00,35.00,1.02,1.77,0.21 +52.00,0.00,22.00,0.66,1.54,0.21 +44.00,0.00,14.00,0.44,1.71,0.26 +74.00,0.00,44.00,0.36,1.64,0.28 +72.00,0.00,42.00,0.45,1.82,0.39 +71.00,0.00,41.00,0.42,1.86,0.40 +87.00,0.00,57.00,0.37,1.57,0.25 +14.80,0.00,0.00,0.59,1.69,0.36 +9.80,0.00,0.00,1.21,1.76,0.23 +43.50,1.00,39.00,0.59,1.57,0.21 +92.00,0.00,62.00,0.68,1.53,0.19 +30.00,0.00,0.00,0.54,1.55,0.18 +85.00,0.00,55.00,0.46,1.55,0.27 +30.00,0.00,0.00,0.97,1.82,0.45 +60.70,1.00,42.00,0.73,1.82,0.43 +7.90,0.00,0.00,0.90,1.88,0.26 +47.00,0.00,17.00,0.66,1.56,0.21 +30.00,0.00,0.00,0.33,1.48,0.27 +83.00,0.00,53.00,0.52,1.57,0.20 +50.00,0.00,20.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.87,1.82,0.41 +72.00,0.00,42.00,0.84,1.78,0.39 +13.50,0.00,0.00,1.26,1.93,0.59 +86.00,0.00,56.00,0.54,1.83,0.29 +55.00,0.00,25.00,0.41,1.51,0.26 +40.00,0.00,10.00,0.69,1.54,0.17 +16.20,0.00,0.00,0.59,1.71,0.23 +53.00,0.00,23.00,0.46,1.71,0.33 +62.00,0.00,32.00,0.33,1.60,0.32 +67.00,0.00,37.00,0.44,1.72,0.28 +44.00,0.00,14.00,0.67,1.63,0.25 +24.10,0.00,0.00,0.64,1.58,0.20 +16.80,1.00,0.00,0.85,1.71,0.23 +47.00,0.00,17.00,0.54,1.66,0.24 +23.80,1.00,10.00,0.88,1.58,0.16 +74.00,0.00,44.00,0.38,1.76,0.36 +8.90,0.00,0.00,0.64,1.58,0.20 +89.00,1.00,71.00,0.54,1.66,0.27 +17.00,0.00,0.00,0.56,1.67,0.32 +12.30,1.00,0.00,0.65,1.61,0.26 +50.00,0.00,20.00,0.56,1.53,0.19 +20.60,1.00,0.00,0.83,1.71,0.23 +48.30,1.00,42.00,0.82,1.78,0.38 +43.00,0.00,13.00,0.32,1.61,0.28 +92.00,0.00,62.00,0.32,1.59,0.31 +62.00,0.00,32.00,0.33,1.60,0.32 +3.50,0.00,0.00,1.06,1.78,0.29 +30.00,0.00,0.00,0.45,1.71,0.28 +5.30,1.00,0.00,0.66,1.52,0.19 +33.00,0.00,3.00,0.46,1.61,0.25 +23.80,0.00,0.00,0.41,1.57,0.26 +69.00,0.00,39.00,0.40,1.57,0.27 +31.00,0.00,1.00,0.52,1.64,0.22 +61.00,0.00,31.00,0.57,1.53,0.18 +86.00,0.00,56.00,0.53,1.71,0.26 +50.00,0.00,20.00,0.60,1.53,0.19 +30.00,0.00,0.00,0.32,1.60,0.31 +11.20,0.00,0.00,0.36,1.55,0.28 +61.00,0.00,31.00,0.34,1.60,0.27 +87.00,0.00,57.00,0.36,1.58,0.26 +30.00,0.00,0.00,0.75,1.79,0.39 +2.60,0.00,0.00,0.64,1.53,0.16 +63.00,0.00,33.00,0.31,1.62,0.28 +86.00,0.00,56.00,0.46,1.72,0.26 +75.00,0.00,45.00,0.34,1.56,0.25 +30.00,0.00,0.00,0.63,1.67,0.23 +52.80,1.00,42.00,0.80,1.77,0.38 +75.70,1.00,68.00,0.37,1.64,0.27 +58.00,0.00,28.00,0.42,1.56,0.28 +30.00,0.00,0.00,0.57,1.55,0.17 +66.00,0.00,36.00,0.47,1.64,0.27 +60.00,0.00,30.00,0.45,1.74,0.26 +101.00,0.00,71.00,0.40,1.62,0.24 +61.00,0.00,31.00,0.68,1.84,0.25 +44.00,0.00,14.00,0.46,1.70,0.25 +52.00,0.00,22.00,0.42,1.67,0.25 +21.60,0.00,0.00,0.86,1.57,0.21 +63.00,0.00,33.00,0.32,1.69,0.29 +56.00,0.00,26.00,0.58,1.78,0.36 +30.00,0.00,0.00,0.71,1.51,0.16 +30.00,0.00,0.00,0.62,1.55,0.21 +6.10,0.00,0.00,0.68,1.53,0.19 +43.00,0.00,13.00,0.50,1.64,0.22 +56.00,0.00,26.00,0.32,1.59,0.31 +17.30,0.00,0.00,0.79,1.56,0.16 +30.00,0.00,0.00,0.40,1.69,0.28 +87.00,0.00,57.00,0.46,1.74,0.27 +38.10,1.00,35.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.37,1.65,0.29 +31.00,0.00,1.00,0.87,1.71,0.21 +50.40,1.00,41.00,0.68,1.68,0.23 +69.00,0.00,39.00,0.66,1.52,0.19 +49.00,0.00,19.00,0.72,1.52,0.18 +7.20,0.00,0.00,0.35,1.57,0.25 +62.00,0.00,32.00,0.42,1.55,0.26 +62.50,1.00,57.00,0.69,1.61,0.27 +45.00,0.00,15.00,0.43,1.67,0.25 +72.00,0.00,42.00,0.44,1.72,0.27 +30.00,0.00,0.00,0.65,1.51,0.19 +55.00,0.00,25.00,0.55,1.73,0.32 +69.00,0.00,39.00,0.42,1.63,0.27 +66.00,0.00,36.00,0.47,1.65,0.24 +45.50,1.00,36.00,0.45,1.67,0.26 +30.00,0.00,0.00,0.61,1.55,0.20 +67.00,0.00,37.00,0.62,1.56,0.22 +90.00,0.00,60.00,0.38,1.59,0.24 +50.00,0.00,20.00,0.53,1.72,0.24 +63.00,0.00,33.00,0.63,1.68,0.23 +45.00,0.00,15.00,0.46,1.68,0.25 +3.00,0.00,0.00,0.44,1.63,0.24 +11.10,0.00,0.00,0.34,1.64,0.27 +51.00,0.00,21.00,0.73,1.79,0.25 +30.00,0.00,0.00,0.43,1.70,0.26 +86.00,0.00,56.00,0.53,1.80,0.28 +46.80,1.00,42.00,0.84,1.79,0.40 +17.10,1.00,0.00,0.70,1.54,0.20 +59.00,0.00,29.00,0.54,1.61,0.22 +37.30,1.00,28.00,0.70,1.73,0.36 +87.00,0.00,57.00,0.48,1.73,0.27 +40.00,0.00,10.00,0.93,1.59,0.17 +38.00,1.00,10.00,0.45,1.68,0.25 +106.00,0.00,76.00,0.45,1.62,0.25 +72.00,0.00,42.00,0.51,1.76,0.37 +59.30,1.00,40.00,0.93,1.75,0.22 +61.00,0.00,31.00,0.43,1.73,0.27 +24.40,0.00,0.00,0.59,1.74,0.24 +44.00,0.00,14.00,0.44,1.71,0.26 +67.00,0.00,37.00,0.59,1.59,0.22 +72.00,0.00,42.00,0.72,1.82,0.42 +22.10,0.00,0.00,0.41,1.57,0.26 +3.90,0.00,0.00,0.48,1.62,0.28 +33.00,0.00,3.00,0.76,1.63,0.25 +101.00,0.00,71.00,0.40,1.62,0.24 +58.00,0.00,28.00,0.46,1.71,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +51.00,0.00,21.00,0.47,1.72,0.26 +45.00,0.00,15.00,0.42,1.61,0.25 +5.70,0.00,0.00,0.78,1.68,0.33 +63.00,0.00,33.00,0.49,1.69,0.25 +20.70,0.00,0.00,0.58,1.68,0.32 +28.00,1.00,0.00,0.51,1.57,0.21 +77.00,0.00,47.00,0.75,1.54,0.20 +42.00,0.00,12.00,0.54,1.62,0.25 +30.00,0.00,0.00,0.37,1.64,0.29 +44.00,0.00,14.00,0.49,1.60,0.21 +30.00,0.00,0.00,0.94,1.81,0.45 +65.60,1.00,63.00,0.59,1.72,0.24 +68.00,0.00,38.00,0.71,1.58,0.23 +28.30,1.00,25.00,0.98,1.76,0.23 +62.00,0.00,32.00,0.69,1.57,0.22 +28.80,0.00,0.00,0.91,1.69,0.39 +6.80,0.00,0.00,0.80,1.68,0.24 +81.10,1.00,56.00,0.53,1.79,0.28 +3.80,0.00,0.00,1.19,1.76,0.22 +70.00,0.00,40.00,0.39,1.59,0.24 +27.00,1.00,13.00,0.67,1.74,0.40 +53.00,0.00,23.00,0.42,1.84,0.40 +30.00,0.00,0.00,0.73,1.67,0.36 +63.90,1.00,62.00,0.42,1.72,0.27 +37.00,0.00,7.00,0.68,1.53,0.17 +92.00,0.00,62.00,0.37,1.65,0.30 +23.10,1.00,14.00,0.33,1.60,0.32 +30.00,0.00,0.00,0.44,1.69,0.28 +30.00,0.00,0.00,0.61,1.67,0.23 +14.60,0.00,0.00,0.46,1.67,0.26 +30.00,0.00,0.00,0.76,1.57,0.15 +44.00,0.00,14.00,0.34,1.61,0.32 +30.00,0.00,0.00,0.72,1.78,0.38 +6.80,0.00,0.00,0.31,1.58,0.31 +97.00,0.00,67.00,0.45,1.68,0.27 +86.00,0.00,56.00,0.52,1.82,0.29 +49.00,0.00,19.00,0.32,1.61,0.30 +72.00,0.00,42.00,0.55,1.73,0.24 +72.00,0.00,42.00,0.35,1.59,0.25 +67.00,0.00,37.00,0.60,1.71,0.23 +42.00,0.00,12.00,0.57,1.68,0.28 +29.60,0.00,0.00,0.45,1.65,0.28 +51.00,0.00,21.00,0.47,1.69,0.26 +78.00,0.00,48.00,0.45,1.71,0.27 +52.00,0.00,22.00,0.42,1.66,0.25 +30.00,0.00,0.00,0.76,1.58,0.15 +59.00,0.00,29.00,0.63,1.59,0.22 +47.00,0.00,17.00,0.57,1.54,0.20 +51.00,0.00,21.00,0.41,1.68,0.26 +57.60,1.00,53.00,0.83,1.69,0.22 +24.40,1.00,10.00,0.93,1.74,0.20 +85.00,0.00,55.00,0.48,1.62,0.28 +48.00,0.00,18.00,0.40,1.57,0.23 +26.70,1.00,0.00,0.89,1.68,0.25 +63.00,0.00,33.00,0.59,1.55,0.21 +5.80,0.00,0.00,0.72,1.59,0.22 +72.00,0.00,42.00,0.57,1.79,0.37 +47.50,1.00,37.00,1.11,1.63,0.19 +30.00,0.00,0.00,0.87,1.70,0.19 +83.00,0.00,53.00,0.50,1.58,0.20 +95.50,1.00,67.00,0.32,1.63,0.29 +47.90,1.00,23.00,0.71,1.58,0.22 +85.00,1.00,71.00,0.64,1.58,0.21 +67.00,0.00,37.00,0.58,1.82,0.26 +2.00,0.00,0.00,0.45,1.68,0.27 +84.00,0.00,54.00,0.45,1.62,0.25 +4.30,0.00,0.00,0.55,1.68,0.24 +108.00,0.00,78.00,0.64,1.54,0.18 +95.10,1.00,69.00,0.55,1.52,0.17 +4.70,0.00,0.00,0.90,1.70,0.23 +30.00,0.00,0.00,0.51,1.57,0.20 +91.00,0.00,61.00,0.36,1.64,0.29 +30.00,0.00,0.00,0.45,1.70,0.27 +12.40,0.00,0.00,1.17,1.76,0.22 +13.40,0.00,0.00,0.55,1.82,0.28 +2.20,0.00,0.00,0.72,1.56,0.17 +59.00,0.00,29.00,0.39,1.67,0.30 +15.40,0.00,0.00,0.36,1.60,0.25 +2.90,0.00,0.00,0.72,1.52,0.16 +4.30,0.00,0.00,0.35,1.60,0.27 +17.80,0.00,0.00,0.58,1.74,0.24 +31.00,0.00,1.00,0.46,1.63,0.26 +30.00,0.00,0.00,1.12,1.72,0.22 +72.00,0.00,42.00,0.68,1.75,0.34 +67.50,1.00,60.00,0.50,1.61,0.28 +66.00,0.00,36.00,0.46,1.67,0.25 +101.00,0.00,71.00,0.53,1.66,0.27 +40.00,0.00,10.00,0.44,1.67,0.25 +78.90,1.00,71.00,0.63,1.58,0.21 +87.00,0.00,57.00,0.49,1.74,0.28 +9.90,0.00,0.00,0.46,1.73,0.27 +59.00,0.00,29.00,0.48,1.62,0.23 +22.90,1.00,0.00,0.44,1.70,0.28 +18.80,0.00,0.00,0.57,1.71,0.24 +79.00,0.00,49.00,0.46,1.65,0.25 +43.00,0.00,13.00,0.47,1.67,0.25 +83.00,0.00,53.00,0.84,1.70,0.22 +89.20,1.00,61.00,0.39,1.68,0.28 +21.10,1.00,21.00,0.47,1.69,0.26 +19.00,0.00,0.00,0.62,1.52,0.18 +21.50,1.00,0.00,0.56,1.52,0.17 +38.60,1.00,10.00,0.73,1.81,0.43 +42.00,0.00,12.00,0.81,1.67,0.25 +5.20,0.00,0.00,0.86,1.68,0.19 +40.00,0.00,10.00,0.54,1.54,0.19 +1.30,0.00,0.00,0.93,1.69,0.25 +44.00,0.00,14.00,0.50,1.61,0.21 +83.00,0.00,53.00,0.39,1.67,0.28 +50.00,0.00,20.00,0.74,1.52,0.18 +56.00,0.00,26.00,0.77,1.57,0.15 +56.00,0.00,26.00,0.37,1.67,0.31 +44.30,1.00,19.00,0.82,1.55,0.18 +45.00,0.00,15.00,0.43,1.66,0.24 +26.90,1.00,20.00,0.98,1.78,0.21 +30.00,0.00,0.00,0.51,1.83,0.29 +2.10,0.00,0.00,0.81,1.58,0.17 +79.50,1.00,60.00,0.58,1.70,0.27 +61.50,1.00,41.00,0.67,1.68,0.23 +47.00,0.00,17.00,0.33,1.54,0.28 +106.00,0.00,76.00,0.48,1.65,0.27 +30.00,0.00,0.00,0.58,1.60,0.25 +48.10,1.00,33.00,0.55,1.72,0.25 +6.80,0.00,0.00,1.05,1.70,0.21 +13.50,0.00,0.00,0.44,1.65,0.25 +86.00,0.00,56.00,0.48,1.77,0.28 +35.30,1.00,33.00,0.74,1.54,0.20 +52.00,0.00,22.00,0.66,1.54,0.21 +30.00,0.00,0.00,1.03,1.76,0.25 +74.00,0.00,44.00,0.32,1.64,0.29 +30.00,0.00,0.00,0.51,1.80,0.29 +27.20,0.00,0.00,0.47,1.63,0.23 +19.10,0.00,0.00,0.59,1.66,0.27 +55.00,0.00,25.00,0.36,1.67,0.32 +58.00,0.00,28.00,0.32,1.59,0.31 +40.00,0.00,10.00,0.76,1.80,0.48 +56.00,0.00,26.00,0.59,1.78,0.36 +98.00,0.00,68.00,0.41,1.56,0.25 +18.90,1.00,1.00,0.60,1.60,0.25 +30.00,0.00,0.00,0.81,1.79,0.41 +73.50,1.00,55.00,0.43,1.55,0.27 +44.00,0.00,14.00,0.43,1.63,0.26 +30.00,0.00,0.00,0.73,1.80,0.43 +9.30,1.00,0.00,0.60,1.58,0.26 +61.00,0.00,31.00,0.33,1.59,0.31 +19.20,1.00,0.00,0.57,1.55,0.17 +62.00,0.00,32.00,0.70,1.57,0.23 +64.80,1.00,42.00,0.35,1.57,0.25 +70.00,0.00,40.00,0.51,1.70,0.24 +7.30,0.00,0.00,0.82,1.58,0.16 +98.00,0.00,68.00,0.32,1.60,0.31 +91.00,0.00,61.00,0.36,1.66,0.31 +49.00,0.00,19.00,0.79,1.73,0.25 +45.00,0.00,15.00,0.42,1.72,0.27 +1.40,0.00,0.00,0.85,1.66,0.18 +69.00,0.00,39.00,0.67,1.52,0.19 +43.00,0.00,13.00,0.68,1.74,0.41 +74.60,1.00,50.00,0.38,1.66,0.28 +18.60,0.00,0.00,0.84,1.67,0.25 +52.30,1.00,37.00,0.62,1.77,0.24 +30.00,0.00,0.00,0.42,1.67,0.25 +16.40,0.00,0.00,1.11,1.89,0.56 +28.30,0.00,0.00,0.50,1.77,0.37 +36.00,0.00,6.00,0.42,1.69,0.26 +88.50,1.00,76.00,0.46,1.64,0.26 +30.00,0.00,0.00,0.61,1.67,0.23 +58.00,0.00,28.00,0.34,1.56,0.26 +18.00,0.00,0.00,0.52,1.64,0.30 +25.40,1.00,15.00,0.75,1.76,0.24 +44.00,0.00,14.00,0.50,1.58,0.21 +71.00,0.00,41.00,0.38,1.59,0.26 +11.60,0.00,0.00,0.56,1.67,0.32 +30.00,0.00,0.00,0.54,1.57,0.18 +74.00,0.00,44.00,0.36,1.64,0.32 +10.30,0.00,0.00,0.47,1.70,0.26 +4.10,0.00,0.00,0.33,1.59,0.31 +1.10,0.00,0.00,0.36,1.63,0.29 +59.00,0.00,29.00,0.70,1.72,0.25 +82.00,1.00,61.00,0.38,1.68,0.28 +50.00,0.00,20.00,0.61,1.52,0.19 +90.00,0.00,60.00,0.39,1.62,0.25 +55.00,0.00,25.00,0.43,1.56,0.28 +35.00,0.00,5.00,0.82,1.58,0.16 +63.00,0.00,33.00,0.35,1.65,0.28 +52.00,0.00,22.00,0.43,1.61,0.24 +61.00,0.00,31.00,0.72,1.51,0.18 +13.70,0.00,0.00,0.69,1.53,0.20 +30.00,0.00,0.00,0.54,1.55,0.18 +10.50,0.00,0.00,0.64,1.58,0.20 +69.00,0.00,39.00,0.61,1.55,0.21 +108.00,0.00,78.00,0.57,1.68,0.33 +19.40,0.00,0.00,0.53,1.67,0.24 +14.00,1.00,0.00,0.86,1.80,0.43 +54.00,0.00,24.00,0.43,1.67,0.27 +41.00,0.00,11.00,0.42,1.65,0.25 +33.00,0.00,3.00,0.66,1.69,0.30 +56.00,0.00,26.00,0.53,1.66,0.23 +82.00,0.00,52.00,0.50,1.65,0.29 +25.00,0.00,0.00,0.60,1.55,0.21 +47.00,0.00,17.00,0.63,1.56,0.22 +63.00,0.00,33.00,0.33,1.61,0.28 +101.00,0.00,71.00,0.42,1.65,0.25 +87.00,0.00,57.00,0.42,1.67,0.25 +52.00,0.00,22.00,0.36,1.63,0.26 +33.00,0.00,3.00,0.64,1.69,0.30 +42.00,0.00,12.00,0.57,1.68,0.28 +91.00,0.00,61.00,0.37,1.65,0.29 +29.30,0.00,0.00,0.79,1.55,0.17 +17.50,0.00,0.00,0.43,1.81,0.39 +86.00,0.00,56.00,0.41,1.66,0.26 +52.00,0.00,22.00,0.42,1.63,0.25 +69.10,1.00,58.00,0.61,1.68,0.23 +49.00,0.00,19.00,0.77,1.54,0.17 +56.90,1.00,27.00,0.42,1.67,0.26 +77.10,1.00,60.00,0.56,1.72,0.30 +14.90,0.00,0.00,0.57,1.51,0.17 +7.70,0.00,0.00,0.94,1.74,0.20 +71.00,0.00,41.00,0.35,1.60,0.27 +20.40,0.00,0.00,0.93,1.65,0.19 +30.00,0.00,0.00,0.63,1.53,0.16 +74.00,0.00,44.00,0.32,1.63,0.29 +11.10,0.00,0.00,0.58,1.66,0.27 +106.00,0.00,76.00,0.47,1.64,0.26 +45.00,0.00,15.00,0.44,1.66,0.25 +54.00,0.00,24.00,0.54,1.56,0.18 +60.50,1.00,36.00,0.46,1.67,0.26 +18.80,0.00,0.00,0.54,1.78,0.37 +72.00,0.00,42.00,0.66,1.80,0.38 +48.00,0.00,18.00,0.52,1.59,0.20 +98.00,0.00,68.00,0.52,1.82,0.29 +81.10,1.00,76.00,0.53,1.70,0.29 +53.00,0.00,23.00,0.41,1.85,0.40 +10.70,0.00,0.00,0.31,1.57,0.30 +69.00,0.00,39.00,0.41,1.62,0.26 +60.00,0.00,30.00,0.44,1.66,0.25 +33.00,1.00,21.00,0.70,1.54,0.15 +64.00,0.00,34.00,0.38,1.66,0.30 +44.00,0.00,14.00,0.44,1.64,0.26 +45.00,0.00,15.00,0.54,1.69,0.23 +53.00,0.00,23.00,0.41,1.60,0.24 +30.00,0.00,0.00,0.78,1.79,0.41 +19.80,0.00,0.00,0.42,1.71,0.27 +44.00,0.00,14.00,0.46,1.70,0.25 +0.20,0.00,0.00,0.43,1.71,0.26 +56.60,1.00,52.00,0.86,1.69,0.19 +60.00,0.00,30.00,0.44,1.72,0.25 +2.60,0.00,0.00,0.60,1.50,0.17 +50.70,1.00,37.00,1.10,1.63,0.19 +49.00,0.00,19.00,0.32,1.62,0.30 +40.00,0.00,10.00,0.84,1.57,0.16 +21.80,1.00,17.00,0.56,1.68,0.23 +45.00,0.00,15.00,0.63,1.49,0.15 +9.30,0.00,0.00,0.66,1.72,0.34 +56.00,0.00,26.00,0.48,1.60,0.27 +30.00,0.00,0.00,0.32,1.60,0.31 +61.00,0.00,31.00,0.59,1.54,0.20 +50.00,0.00,20.00,0.78,1.68,0.32 +63.00,0.00,33.00,0.38,1.58,0.28 +73.00,0.00,43.00,0.62,1.68,0.23 +6.60,0.00,0.00,0.34,1.62,0.30 +108.00,0.00,78.00,0.69,1.54,0.17 +58.90,1.00,29.00,0.41,1.67,0.26 +97.00,0.00,67.00,0.49,1.64,0.22 +50.00,0.00,20.00,0.48,1.67,0.24 +30.00,0.00,0.00,0.96,1.64,0.18 +30.00,0.00,0.00,1.01,1.68,0.21 +34.00,0.00,4.00,0.32,1.74,0.29 +50.00,0.00,20.00,0.53,1.72,0.24 +30.00,0.00,0.00,0.87,1.72,0.23 +30.00,1.00,26.00,0.78,1.57,0.16 +47.00,0.00,17.00,0.51,1.64,0.23 +92.00,0.00,62.00,0.33,1.60,0.31 +30.00,0.00,0.00,0.59,1.53,0.17 +62.00,0.00,32.00,0.49,1.56,0.25 +6.00,1.00,0.00,0.84,1.59,0.16 +91.00,0.00,61.00,0.37,1.66,0.28 +81.00,0.00,51.00,0.34,1.59,0.27 +72.00,0.00,42.00,0.37,1.65,0.29 +30.00,0.00,0.00,0.86,1.81,0.40 +57.50,1.00,36.00,0.32,1.60,0.29 +81.10,1.00,69.00,0.56,1.52,0.17 +30.00,0.00,0.00,0.53,1.81,0.29 +3.40,0.00,0.00,0.59,1.53,0.20 +72.00,0.00,42.00,0.36,1.60,0.25 +14.40,0.00,0.00,0.56,1.60,0.22 +12.00,0.00,0.00,0.42,1.66,0.25 +99.00,0.00,69.00,0.61,1.50,0.17 +42.10,1.00,17.00,0.85,1.59,0.16 +71.00,0.00,41.00,0.54,1.82,0.28 +58.00,0.00,28.00,0.35,1.55,0.28 +41.00,0.00,11.00,0.54,1.66,0.26 +58.00,0.00,28.00,0.31,1.59,0.28 +2.50,0.00,0.00,0.60,1.67,0.24 +53.00,0.00,23.00,0.35,1.60,0.28 +72.00,0.00,42.00,0.51,1.75,0.37 +11.40,0.00,0.00,0.42,1.68,0.26 +45.00,0.00,15.00,0.44,1.72,0.27 +29.50,1.00,10.00,0.83,1.62,0.18 +90.00,0.00,60.00,0.47,1.66,0.27 +45.00,0.00,15.00,0.73,1.68,0.23 +44.00,0.00,14.00,0.40,1.63,0.25 +64.00,0.00,34.00,0.34,1.61,0.31 +56.00,0.00,26.00,0.77,1.57,0.15 +61.00,0.00,31.00,0.32,1.59,0.31 +33.20,1.00,4.00,0.61,1.53,0.16 +20.60,0.00,0.00,0.47,1.67,0.27 +68.00,0.00,38.00,0.46,1.62,0.24 +52.00,0.00,22.00,0.62,1.55,0.21 +30.00,0.00,0.00,0.48,1.65,0.27 +79.00,0.00,49.00,0.45,1.73,0.28 +71.00,0.00,41.00,0.76,1.68,0.24 +60.00,0.00,30.00,0.33,1.66,0.28 +38.00,0.00,8.00,0.53,1.54,0.18 +73.00,0.00,43.00,0.39,1.67,0.28 +87.00,0.00,57.00,0.42,1.67,0.25 +22.90,0.00,0.00,0.35,1.58,0.27 +23.00,0.00,0.00,0.83,1.80,0.49 +19.10,0.00,0.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.68,1.53,0.19 +72.00,0.00,42.00,0.51,1.76,0.37 +30.00,0.00,0.00,0.40,1.61,0.24 +72.00,0.00,42.00,0.43,1.84,0.40 +30.00,0.00,0.00,0.40,1.68,0.28 +30.00,0.00,0.00,0.60,1.70,0.23 +30.00,0.00,0.00,0.75,1.79,0.39 +47.10,1.00,20.00,0.41,1.57,0.27 +55.00,0.00,25.00,0.69,1.88,0.25 +36.90,1.00,13.00,0.32,1.61,0.28 +72.00,0.00,42.00,0.35,1.65,0.31 +42.00,0.00,12.00,0.34,1.62,0.27 +69.00,0.00,39.00,0.34,1.61,0.27 +6.20,0.00,0.00,0.33,1.61,0.31 +30.70,1.00,19.00,0.48,1.85,0.41 +66.10,1.00,42.00,0.64,1.79,0.37 +43.30,1.00,42.00,0.68,1.80,0.38 +106.00,0.00,76.00,0.48,1.65,0.27 +86.00,0.00,56.00,0.58,1.71,0.23 +30.00,0.00,0.00,0.59,1.53,0.18 +68.80,1.00,58.00,0.63,1.68,0.23 +40.00,1.00,20.00,0.78,1.68,0.33 +11.30,0.00,0.00,0.66,1.71,0.24 +54.00,0.00,24.00,0.69,1.84,0.25 +2.70,0.00,0.00,0.95,1.63,0.18 +29.40,0.00,0.00,0.68,1.58,0.25 +73.00,0.00,43.00,0.43,1.72,0.26 +45.00,0.00,15.00,0.44,1.65,0.25 +41.00,0.00,11.00,0.79,1.54,0.18 +30.00,0.00,0.00,0.78,1.57,0.21 +75.10,1.00,60.00,0.57,1.68,0.29 +53.00,0.00,23.00,0.39,1.66,0.26 +45.00,0.00,15.00,0.53,1.67,0.24 +22.50,0.00,0.00,0.31,1.58,0.29 +56.00,0.00,26.00,0.49,1.60,0.27 +69.00,0.00,39.00,0.43,1.71,0.26 +30.00,0.00,0.00,0.58,1.63,0.25 +79.00,0.00,49.00,0.54,1.66,0.31 +75.70,1.00,50.00,0.38,1.66,0.28 +57.80,1.00,39.00,0.36,1.55,0.28 +12.00,0.00,0.00,0.78,1.76,0.37 +70.00,1.00,50.00,0.38,1.66,0.27 +44.00,0.00,14.00,0.47,1.75,0.27 +28.50,1.00,0.00,0.57,1.51,0.16 +30.00,0.00,0.00,0.88,1.82,0.51 +64.00,0.00,34.00,0.39,1.68,0.28 +45.00,0.00,15.00,0.54,1.69,0.23 +30.00,0.00,0.00,0.54,1.58,0.19 +53.00,0.00,23.00,0.31,1.57,0.31 +30.00,0.00,0.00,0.99,1.78,0.21 +62.40,1.00,42.00,0.74,1.76,0.36 +86.00,0.00,56.00,0.46,1.72,0.26 +41.80,1.00,18.00,0.67,1.50,0.16 +60.00,0.00,30.00,0.60,1.83,0.26 +30.00,0.00,0.00,0.61,1.70,0.38 +36.70,1.00,20.00,0.55,1.54,0.20 +9.60,0.00,0.00,0.59,1.50,0.17 +2.50,0.00,0.00,0.54,1.54,0.18 +65.00,0.00,35.00,0.35,1.65,0.31 +92.00,0.00,62.00,0.40,1.68,0.28 +90.00,0.00,60.00,0.40,1.66,0.27 +30.00,0.00,0.00,0.51,1.57,0.19 +41.00,0.00,11.00,0.73,1.85,0.25 +53.00,0.00,23.00,0.72,1.59,0.23 +26.90,1.00,0.00,0.72,1.67,0.35 +17.40,0.00,0.00,0.37,1.63,0.27 +99.00,0.00,69.00,0.56,1.52,0.17 +53.00,0.00,23.00,0.51,1.72,0.32 +45.00,0.00,15.00,0.62,1.54,0.21 +61.00,0.00,31.00,0.52,1.67,0.29 +67.90,1.00,56.00,0.50,1.64,0.22 +34.00,0.00,4.00,0.33,1.73,0.27 +72.00,0.00,42.00,0.82,1.80,0.40 +51.00,0.00,21.00,0.35,1.63,0.31 +64.40,1.00,42.00,0.49,1.82,0.40 +40.00,0.00,10.00,0.93,1.73,0.20 +90.80,1.00,66.00,0.47,1.64,0.24 +44.00,0.00,14.00,0.58,1.78,0.26 +30.00,0.00,0.00,0.75,1.56,0.15 +14.80,0.00,0.00,0.63,1.56,0.21 +63.00,0.00,33.00,0.69,1.53,0.20 +0.10,0.00,0.00,0.77,1.62,0.25 +72.00,0.00,42.00,0.35,1.59,0.25 +13.70,0.00,0.00,0.47,1.64,0.24 +72.00,0.00,42.00,0.48,1.83,0.40 +69.00,0.00,39.00,0.43,1.58,0.25 +61.00,0.00,31.00,0.35,1.63,0.31 +30.00,0.00,0.00,0.81,1.58,0.17 +22.20,1.00,20.00,0.78,1.67,0.30 +30.00,0.00,0.00,0.59,1.53,0.17 +12.80,0.00,0.00,1.12,1.65,0.19 +5.30,0.00,0.00,0.44,1.69,0.28 +30.00,0.00,0.00,0.72,1.55,0.20 +30.00,0.00,0.00,0.86,1.80,0.43 +67.00,0.00,37.00,0.96,1.76,0.21 +43.00,0.00,13.00,0.31,1.59,0.28 +46.20,1.00,20.00,0.40,1.58,0.27 +45.90,1.00,42.00,0.35,1.58,0.26 +30.00,0.00,0.00,0.38,1.57,0.24 +6.60,0.00,0.00,1.11,1.63,0.19 +23.90,1.00,1.00,0.62,1.60,0.26 +87.00,0.00,57.00,0.46,1.70,0.26 +52.20,1.00,39.00,0.66,1.52,0.18 +66.00,0.00,36.00,0.36,1.62,0.28 +39.00,0.00,9.00,0.35,1.60,0.27 +27.80,0.00,0.00,0.36,1.66,0.32 +63.00,0.00,33.00,0.50,1.65,0.24 +48.00,0.00,18.00,0.35,1.63,0.32 +54.00,0.00,24.00,0.52,1.57,0.19 +61.00,0.00,31.00,0.66,1.84,0.25 +60.00,0.00,30.00,0.51,1.69,0.24 +12.00,0.00,0.00,0.34,1.59,0.27 +51.00,0.00,21.00,0.49,1.65,0.28 +61.00,0.00,31.00,0.43,1.72,0.26 +30.00,0.00,0.00,0.75,1.79,0.39 +63.00,0.00,33.00,0.93,1.59,0.22 +70.00,0.00,40.00,0.38,1.61,0.25 +31.00,0.00,1.00,0.59,1.59,0.25 +67.00,0.00,37.00,0.60,1.74,0.24 +47.00,0.00,17.00,0.81,1.65,0.28 +9.50,0.00,0.00,0.31,1.57,0.30 +44.00,0.00,14.00,0.65,1.56,0.23 +20.80,0.00,0.00,0.68,1.69,0.23 +45.00,0.00,15.00,0.41,1.71,0.27 +101.00,0.00,71.00,0.39,1.58,0.26 +6.90,1.00,0.00,1.17,1.73,0.23 +66.00,0.00,36.00,0.32,1.59,0.28 +59.00,0.00,29.00,0.60,1.76,0.26 +30.00,0.00,0.00,0.42,1.67,0.25 +72.00,0.00,42.00,0.50,1.79,0.39 +78.80,1.00,62.00,0.82,1.57,0.17 +98.00,0.00,68.00,0.52,1.81,0.29 +25.90,0.00,0.00,0.33,1.60,0.27 +1.50,0.00,0.00,0.39,1.59,0.26 +5.50,0.00,0.00,0.57,1.68,0.34 +58.00,0.00,28.00,0.47,1.69,0.25 +38.00,0.00,8.00,0.53,1.55,0.18 +56.40,1.00,31.00,0.51,1.67,0.28 +73.00,0.00,43.00,0.39,1.66,0.27 +59.00,0.00,29.00,0.42,1.66,0.25 +40.00,0.00,10.00,0.95,1.75,0.20 +54.00,0.00,24.00,0.51,1.58,0.20 +30.00,0.00,0.00,0.55,1.81,0.28 +81.00,0.00,51.00,0.33,1.60,0.28 +30.00,0.00,0.00,0.62,1.54,0.20 +18.10,0.00,0.00,0.60,1.56,0.20 +25.80,0.00,0.00,0.87,1.81,0.50 +50.50,1.00,31.00,0.72,1.74,0.36 +52.00,0.00,22.00,0.42,1.67,0.25 +73.90,1.00,69.00,0.59,1.50,0.17 +51.00,0.00,21.00,0.52,1.65,0.28 +27.70,0.00,0.00,0.74,1.54,0.20 +54.00,0.00,24.00,0.32,1.77,0.29 +43.00,0.00,13.00,0.41,1.68,0.27 +62.00,0.00,32.00,0.48,1.56,0.25 +55.00,0.00,25.00,0.31,1.57,0.31 +55.20,1.00,33.00,0.63,1.68,0.23 +20.70,0.00,0.00,0.70,1.73,0.36 +47.00,0.00,17.00,0.39,1.56,0.24 +22.40,1.00,20.00,1.06,1.87,0.55 +34.10,1.00,31.00,0.36,1.65,0.32 +50.00,0.00,20.00,0.77,1.67,0.29 +1.00,0.00,0.00,1.02,1.76,0.32 +48.00,0.00,18.00,0.33,1.65,0.30 +9.30,0.00,0.00,1.12,1.64,0.20 +62.00,0.00,32.00,0.58,1.59,0.26 +83.00,0.00,53.00,0.38,1.67,0.28 +61.00,0.00,31.00,0.45,1.63,0.24 +72.00,0.00,42.00,0.31,1.58,0.31 +101.00,0.00,71.00,0.39,1.58,0.26 +43.00,0.00,13.00,0.44,1.73,0.28 +4.50,0.00,0.00,0.60,1.55,0.21 +58.00,0.00,28.00,0.32,1.71,0.29 +99.00,0.00,69.00,0.59,1.51,0.17 +64.60,1.00,37.00,1.03,1.77,0.21 +20.70,1.00,0.00,1.25,1.75,0.25 +4.80,0.00,0.00,0.66,1.89,0.25 +52.00,0.00,22.00,0.38,1.68,0.28 +30.70,1.00,10.00,1.03,1.61,0.18 +86.00,0.00,56.00,0.55,1.81,0.28 +36.00,0.00,6.00,0.54,1.58,0.21 +64.20,1.00,41.00,0.80,1.68,0.24 +30.00,0.00,0.00,0.88,1.68,0.25 +20.60,0.00,0.00,0.51,1.65,0.28 +54.00,0.00,24.00,0.53,1.57,0.18 +27.10,0.00,0.00,0.69,1.53,0.20 +41.00,0.00,11.00,0.76,1.93,0.25 +99.00,0.00,69.00,0.58,1.51,0.17 +78.00,0.00,48.00,0.48,1.77,0.28 +47.00,0.00,17.00,0.58,1.79,0.37 +30.00,0.00,0.00,0.54,1.62,0.22 +83.00,0.00,53.00,0.65,1.74,0.24 +47.20,1.00,42.00,0.39,1.69,0.28 +72.30,1.00,69.00,0.61,1.50,0.17 +30.00,0.00,0.00,0.45,1.72,0.28 +49.00,0.00,19.00,0.36,1.60,0.25 +33.00,0.00,3.00,0.32,1.66,0.32 +59.00,0.00,29.00,0.41,1.68,0.26 +61.00,0.00,31.00,0.43,1.73,0.26 +87.00,0.00,57.00,0.47,1.73,0.26 +7.70,0.00,0.00,0.61,1.68,0.23 +41.50,1.00,20.00,1.01,1.77,0.21 +29.40,0.00,0.00,0.46,1.63,0.25 +76.40,1.00,47.00,0.79,1.55,0.20 +56.80,1.00,44.00,0.53,1.79,0.28 +73.50,1.00,57.00,0.45,1.69,0.27 +45.00,0.00,15.00,0.72,1.75,0.23 +98.70,1.00,69.00,0.57,1.51,0.17 +51.00,0.00,21.00,0.67,1.53,0.15 +71.00,0.00,41.00,0.38,1.59,0.26 +20.50,0.00,0.00,0.48,1.65,0.27 +48.00,0.00,18.00,0.53,1.58,0.18 +66.00,0.00,36.00,0.47,1.64,0.24 +83.00,0.00,53.00,0.51,1.57,0.20 +59.00,0.00,29.00,0.41,1.68,0.26 +28.10,0.00,0.00,0.56,1.74,0.33 +49.00,0.00,19.00,0.69,1.51,0.15 +73.00,0.00,43.00,0.61,1.68,0.23 +70.60,1.00,67.00,0.57,1.59,0.21 +89.40,1.00,69.00,0.56,1.52,0.17 +101.00,0.00,71.00,0.37,1.57,0.28 +96.00,0.00,66.00,0.55,1.65,0.22 +10.30,0.00,0.00,0.88,1.67,0.25 +30.00,0.00,0.00,0.88,1.67,0.26 +31.00,0.00,1.00,0.86,1.71,0.21 +58.60,1.00,35.00,0.54,1.66,0.30 +1.90,0.00,0.00,1.14,1.64,0.20 +2.00,0.00,0.00,0.47,1.61,0.25 +50.00,0.00,20.00,0.54,1.56,0.20 +44.00,0.00,14.00,0.54,1.66,0.23 +74.00,0.00,44.00,0.35,1.66,0.28 +30.00,0.00,0.00,0.42,1.63,0.24 +30.00,0.00,0.00,0.49,1.56,0.25 +27.20,0.00,0.00,1.10,1.63,0.19 +30.00,0.00,0.00,0.31,1.52,0.27 +73.00,0.00,43.00,0.44,1.72,0.26 +31.00,0.00,1.00,0.41,1.67,0.26 +73.00,0.00,43.00,0.45,1.76,0.28 +58.00,0.00,28.00,0.42,1.56,0.28 +14.20,1.00,0.00,1.09,1.88,0.56 +30.00,0.00,0.00,0.78,1.57,0.15 +65.40,1.00,37.00,0.60,1.73,0.24 +41.00,0.00,11.00,0.71,1.83,0.24 +6.00,0.00,0.00,0.36,1.63,0.30 +61.00,0.00,31.00,0.53,1.67,0.29 +3.10,0.00,0.00,0.99,1.76,0.31 +49.00,0.00,19.00,0.70,1.53,0.19 +27.70,0.00,0.00,0.82,1.68,0.23 +34.00,0.00,4.00,0.60,1.51,0.16 +58.00,0.00,28.00,0.65,1.74,0.34 +38.50,1.00,11.00,0.79,1.54,0.18 +30.00,0.00,0.00,0.78,1.57,0.21 +47.00,0.00,17.00,0.51,1.71,0.30 +62.00,0.00,32.00,0.33,1.60,0.32 +43.20,1.00,17.00,0.62,1.56,0.22 +30.00,0.00,0.00,0.73,1.81,0.43 +18.20,1.00,0.00,1.14,1.77,0.27 +36.30,1.00,14.00,0.43,1.64,0.26 +14.10,0.00,0.00,0.83,1.56,0.21 +44.00,0.00,14.00,0.54,1.60,0.18 +30.00,0.00,0.00,0.40,1.61,0.24 +30.00,0.00,0.00,0.88,1.67,0.25 +50.00,0.00,20.00,0.57,1.68,0.22 +6.10,0.00,0.00,0.60,1.70,0.23 +7.40,1.00,0.00,0.34,1.55,0.27 +80.00,0.00,50.00,0.38,1.66,0.28 +30.00,0.00,0.00,0.69,1.77,0.25 +76.30,1.00,71.00,0.41,1.62,0.24 +30.00,0.00,0.00,0.70,1.55,0.18 +22.60,0.00,0.00,1.01,1.77,0.21 +23.20,0.00,0.00,0.71,1.52,0.18 +64.00,0.00,34.00,0.34,1.61,0.31 +36.80,1.00,14.00,1.21,1.81,0.29 +70.00,0.00,40.00,0.38,1.62,0.25 +72.00,0.00,42.00,0.42,1.85,0.40 +30.00,0.00,0.00,0.46,1.69,0.26 +40.70,1.00,14.00,1.22,1.81,0.30 +78.10,1.00,50.00,0.59,1.58,0.22 +98.00,0.00,68.00,0.39,1.55,0.24 +30.40,1.00,26.00,0.85,1.68,0.36 +64.00,1.00,60.00,0.58,1.69,0.28 +12.90,0.00,0.00,0.95,1.63,0.30 +2.00,0.00,0.00,0.61,1.58,0.27 +82.00,0.00,52.00,0.87,1.69,0.19 +19.90,0.00,0.00,0.75,1.61,0.24 +44.00,0.00,14.00,0.44,1.71,0.25 +57.00,0.00,27.00,0.42,1.66,0.26 +44.00,0.00,14.00,0.50,1.58,0.21 +69.00,0.00,39.00,0.57,1.68,0.23 +60.00,0.00,30.00,0.47,1.66,0.25 +26.20,1.00,1.00,0.65,1.61,0.27 +71.00,0.00,41.00,0.62,1.49,0.15 +49.00,0.00,19.00,0.78,1.74,0.25 +45.00,0.00,15.00,0.39,1.58,0.27 +12.50,0.00,0.00,0.40,1.56,0.25 +42.00,0.00,12.00,0.54,1.62,0.25 +50.00,0.00,20.00,0.57,1.61,0.23 +40.00,1.00,11.00,0.42,1.66,0.24 +88.00,0.00,58.00,0.93,1.61,0.17 +30.00,0.00,0.00,0.46,1.64,0.26 +106.00,0.00,76.00,0.34,1.55,0.25 +37.90,1.00,17.00,0.38,1.67,0.29 +30.00,0.00,0.00,0.73,1.79,0.39 +30.00,0.00,0.00,0.33,1.46,0.26 +61.00,0.00,31.00,0.43,1.71,0.26 +7.30,0.00,0.00,0.61,1.51,0.18 +44.00,0.00,14.00,0.54,1.59,0.18 +37.60,1.00,33.00,0.43,1.70,0.27 +81.00,0.00,51.00,0.32,1.62,0.30 +6.80,0.00,0.00,0.93,1.63,0.17 +66.00,0.00,36.00,0.36,1.62,0.28 +47.00,0.00,17.00,0.56,1.68,0.25 +5.90,0.00,0.00,0.41,1.71,0.27 +72.00,0.00,42.00,0.54,1.75,0.26 +48.00,0.00,18.00,0.35,1.66,0.32 +81.00,0.00,51.00,0.33,1.59,0.28 +61.00,0.00,31.00,0.46,1.64,0.24 +56.00,0.00,26.00,0.56,1.76,0.34 +84.00,0.00,54.00,0.48,1.70,0.30 +53.00,0.00,23.00,0.30,1.55,0.30 +30.00,0.00,0.00,0.82,1.75,0.23 +40.50,1.00,19.00,0.76,1.74,0.25 +66.00,0.00,36.00,0.32,1.59,0.28 +92.90,1.00,78.00,0.57,1.60,0.22 +50.00,0.00,20.00,0.48,1.67,0.24 +6.90,0.00,0.00,0.44,1.72,0.26 +85.00,0.00,55.00,0.48,1.61,0.27 +41.00,0.00,11.00,0.42,1.65,0.24 +30.00,0.00,0.00,0.61,1.55,0.21 +38.80,1.00,14.00,0.52,1.60,0.21 +55.00,0.00,25.00,0.69,1.93,0.25 +33.00,0.00,3.00,0.42,1.69,0.26 +98.90,1.00,71.00,0.49,1.64,0.25 +47.00,0.00,17.00,0.56,1.68,0.23 +65.00,0.00,35.00,0.32,1.60,0.31 +53.00,0.00,23.00,0.45,1.69,0.26 +17.00,0.00,0.00,0.66,1.88,0.25 +63.00,0.00,33.00,0.43,1.70,0.27 +51.50,1.00,40.00,1.17,1.73,0.23 +72.00,1.00,67.00,0.59,1.69,0.26 +58.00,0.00,28.00,0.32,1.56,0.27 +69.00,0.00,39.00,0.60,1.55,0.20 +45.20,1.00,20.00,0.79,1.67,0.30 +30.00,0.00,0.00,0.79,1.55,0.17 +44.00,0.00,14.00,0.57,1.68,0.26 +15.90,0.00,0.00,0.60,1.55,0.20 +29.00,1.00,10.00,0.95,1.66,0.19 +30.00,0.00,0.00,0.91,1.73,0.20 +104.00,0.00,74.00,0.30,1.57,0.29 +44.00,0.00,14.00,0.53,1.59,0.19 +30.00,0.00,0.00,0.53,1.56,0.18 +85.00,0.00,55.00,0.38,1.55,0.25 +70.00,0.00,40.00,0.39,1.62,0.25 +85.00,0.00,55.00,0.40,1.58,0.27 +82.40,1.00,61.00,0.35,1.60,0.27 +72.00,0.00,42.00,0.43,1.72,0.27 +48.00,0.00,18.00,0.57,1.68,0.23 +42.00,0.00,12.00,0.33,1.60,0.27 +69.00,1.00,41.00,0.81,1.67,0.24 +11.10,1.00,11.00,0.75,1.58,0.17 +24.00,0.00,0.00,0.38,1.55,0.25 +47.00,0.00,17.00,0.34,1.54,0.28 +41.00,0.00,11.00,0.71,1.82,0.24 +90.00,0.00,60.00,0.45,1.62,0.26 +44.00,0.00,14.00,0.68,1.58,0.25 +11.70,0.00,0.00,0.34,1.50,0.27 +51.00,0.00,21.00,0.43,1.73,0.27 +72.00,0.00,42.00,0.68,1.80,0.38 +62.00,0.00,32.00,0.39,1.69,0.28 +26.70,1.00,17.00,0.73,1.59,0.21 +11.60,0.00,0.00,0.74,1.67,0.31 +35.20,1.00,28.00,0.33,1.57,0.27 +55.00,0.00,25.00,0.41,1.51,0.26 +10.50,0.00,0.00,0.74,1.74,0.25 +52.00,0.00,22.00,0.36,1.68,0.31 +63.60,1.00,47.00,0.88,1.58,0.21 +32.00,0.00,2.00,0.62,1.58,0.22 +76.00,0.00,46.00,0.32,1.61,0.29 +30.00,0.00,0.00,0.97,1.74,0.25 +29.70,0.00,0.00,0.51,1.58,0.20 +99.00,0.00,69.00,0.55,1.52,0.18 +106.00,0.00,76.00,0.32,1.56,0.27 +38.90,1.00,20.00,0.59,1.53,0.19 +30.00,0.00,0.00,0.79,1.57,0.21 +30.00,0.00,0.00,0.88,1.82,0.50 +91.00,0.00,61.00,0.39,1.69,0.28 +56.50,1.00,42.00,0.84,1.79,0.40 +69.00,0.00,39.00,0.61,1.55,0.20 +30.00,0.00,0.00,0.46,1.69,0.26 +101.00,0.00,71.00,0.64,1.57,0.20 +45.00,0.00,15.00,0.42,1.72,0.27 +69.00,0.00,39.00,0.60,1.68,0.23 +69.00,0.00,39.00,0.33,1.59,0.27 +71.00,0.00,41.00,0.61,1.49,0.15 +51.00,0.00,21.00,0.47,1.68,0.25 +30.00,0.00,0.00,0.82,1.80,0.39 +57.20,1.00,39.00,0.66,1.52,0.19 +45.00,0.00,15.00,0.45,1.67,0.25 +4.20,0.00,0.00,0.86,1.58,0.18 +43.00,0.00,13.00,0.42,1.69,0.26 +59.00,0.00,29.00,0.40,1.68,0.27 +59.00,0.00,29.00,0.70,1.72,0.25 +21.60,0.00,0.00,0.82,1.60,0.16 +30.00,0.00,0.00,0.82,1.60,0.16 +99.00,0.00,69.00,0.58,1.51,0.17 +44.00,0.00,14.00,0.39,1.50,0.26 +19.00,0.00,0.00,0.44,1.73,0.35 +67.00,0.00,37.00,0.61,1.72,0.24 +63.00,0.00,33.00,0.55,1.72,0.25 +48.40,1.00,42.00,0.31,1.58,0.31 +30.00,0.00,0.00,0.47,1.68,0.25 +28.30,0.00,0.00,0.48,1.62,0.28 +48.00,0.00,18.00,0.70,1.69,0.22 +63.00,0.00,33.00,0.47,1.70,0.26 +54.00,0.00,24.00,0.50,1.58,0.20 +69.00,0.00,39.00,0.43,1.71,0.25 +42.00,0.00,12.00,0.34,1.62,0.26 +65.00,0.00,35.00,0.32,1.60,0.30 +49.90,1.00,35.00,0.53,1.66,0.29 +30.00,0.00,0.00,0.57,1.50,0.16 +50.00,0.00,20.00,0.71,1.51,0.16 +63.00,0.00,33.00,0.37,1.81,0.37 +30.00,0.00,0.00,0.87,1.57,0.18 +63.00,0.00,33.00,0.49,1.65,0.24 +69.10,1.00,43.00,0.39,1.65,0.27 +101.00,0.00,71.00,0.41,1.63,0.24 +10.00,0.00,0.00,0.75,1.61,0.28 +26.50,0.00,0.00,0.54,1.64,0.22 +30.00,0.00,0.00,0.72,1.54,0.15 +0.70,0.00,0.00,0.39,1.60,0.24 +19.20,0.00,0.00,0.64,1.58,0.21 +44.00,0.00,14.00,0.46,1.70,0.25 +26.20,1.00,0.00,0.93,1.70,0.24 +81.00,0.00,51.00,0.45,1.62,0.26 +23.40,0.00,0.00,0.45,1.76,0.28 +43.00,0.00,13.00,0.44,1.74,0.28 +66.10,1.00,43.00,0.45,1.76,0.28 +53.00,0.00,23.00,0.35,1.60,0.28 +17.10,1.00,17.00,0.89,1.60,0.17 +3.20,1.00,0.00,0.78,1.78,0.42 +91.00,0.00,61.00,0.35,1.58,0.28 +59.00,0.00,29.00,0.41,1.68,0.26 +72.40,1.00,49.00,0.70,1.59,0.26 +57.00,0.00,27.00,0.35,1.72,0.33 +39.50,1.00,19.00,0.61,1.60,0.28 +42.00,0.00,12.00,0.34,1.62,0.27 +92.00,0.00,62.00,0.35,1.62,0.30 +40.00,0.00,10.00,0.73,1.81,0.43 +1.70,0.00,0.00,0.50,1.61,0.21 +63.00,0.00,33.00,0.35,1.65,0.28 +27.50,1.00,20.00,0.65,1.51,0.18 +25.60,1.00,18.00,0.92,1.72,0.25 +18.60,1.00,10.00,0.73,1.81,0.43 +101.00,0.00,71.00,0.39,1.59,0.26 +101.00,0.00,71.00,0.64,1.58,0.20 +43.50,1.00,15.00,1.03,1.62,0.17 +62.00,0.00,32.00,0.34,1.61,0.32 +81.00,0.00,51.00,0.32,1.61,0.29 +67.00,0.00,37.00,0.62,1.56,0.22 +72.00,0.00,42.00,0.47,1.83,0.40 +39.00,0.00,9.00,0.37,1.65,0.29 +44.40,1.00,21.00,0.60,1.58,0.23 +63.00,0.00,33.00,0.33,1.62,0.28 +43.00,0.00,13.00,0.53,1.53,0.17 +68.10,1.00,56.00,0.54,1.71,0.25 +39.90,1.00,38.00,0.55,1.58,0.19 +24.90,1.00,10.00,0.83,1.62,0.18 +65.00,0.00,35.00,0.34,1.60,0.29 +19.90,0.00,0.00,0.60,1.57,0.23 +75.00,0.00,45.00,0.76,1.59,0.18 +93.00,0.00,63.00,0.59,1.72,0.24 +74.00,0.00,44.00,0.36,1.66,0.32 +59.00,0.00,29.00,0.36,1.59,0.25 +101.00,0.00,71.00,0.53,1.66,0.27 +58.00,0.00,28.00,0.67,1.74,0.34 +58.30,1.00,39.00,0.63,1.54,0.20 +82.00,0.00,52.00,0.47,1.67,0.25 +13.80,1.00,0.00,0.70,1.52,0.19 +27.00,1.00,0.00,0.76,1.59,0.16 +27.40,0.00,0.00,0.82,1.56,0.17 +56.00,0.00,26.00,0.52,1.65,0.23 +33.60,1.00,29.00,0.42,1.67,0.25 +63.00,0.00,33.00,0.32,1.67,0.28 +44.00,0.00,14.00,0.62,1.60,0.22 +30.00,0.00,0.00,0.80,1.58,0.17 +10.10,0.00,0.00,0.34,1.55,0.26 +44.00,0.00,14.00,1.07,1.78,0.30 +46.00,0.00,16.00,0.46,1.72,0.26 +52.00,0.00,22.00,0.44,1.72,0.27 +2.30,0.00,0.00,1.00,1.64,0.30 +45.00,0.00,15.00,0.55,1.68,0.23 +30.00,0.00,0.00,0.32,1.60,0.31 +23.10,0.00,0.00,0.35,1.64,0.31 +30.00,0.00,0.00,0.92,1.83,0.42 +45.00,0.00,15.00,0.43,1.66,0.24 +40.00,0.00,10.00,0.36,1.57,0.23 +85.00,0.00,55.00,0.48,1.60,0.27 +20.40,0.00,0.00,0.71,1.51,0.16 +61.00,0.00,31.00,0.34,1.60,0.25 +45.00,0.00,15.00,0.73,1.68,0.23 +74.00,0.00,44.00,0.35,1.61,0.28 +101.00,0.00,71.00,0.53,1.82,0.29 +40.90,1.00,31.00,0.32,1.58,0.31 +34.00,0.00,4.00,0.81,1.59,0.17 +52.00,0.00,22.00,0.36,1.62,0.26 +43.00,0.00,13.00,0.65,1.59,0.22 +58.00,0.00,28.00,0.70,1.74,0.35 +30.00,0.00,0.00,0.55,1.51,0.16 +48.00,0.00,18.00,0.45,1.62,0.25 +61.00,0.00,31.00,0.36,1.65,0.32 +37.00,0.00,7.00,0.61,1.60,0.23 +34.00,0.00,4.00,0.60,1.68,0.23 +43.40,1.00,15.00,0.62,1.52,0.17 +30.00,0.00,0.00,0.59,1.61,0.25 +72.00,0.00,42.00,0.38,1.67,0.28 +30.00,0.00,0.00,0.33,1.59,0.31 +31.40,1.00,22.00,0.51,1.65,0.28 +69.00,0.00,39.00,0.61,1.55,0.21 +11.80,0.00,0.00,0.56,1.71,0.24 +13.30,0.00,0.00,0.37,1.66,0.28 +42.00,0.00,12.00,0.50,1.75,0.27 +1.30,0.00,0.00,0.74,1.80,0.39 +45.00,0.00,15.00,0.47,1.62,0.23 +87.00,0.00,57.00,0.49,1.74,0.28 +74.00,0.00,44.00,0.33,1.64,0.29 +74.00,0.00,44.00,0.41,1.81,0.38 +30.00,0.00,0.00,0.81,1.66,0.25 +57.70,1.00,55.00,0.39,1.57,0.28 +30.00,0.00,0.00,0.87,1.81,0.50 +51.00,0.00,21.00,0.47,1.72,0.25 +30.00,0.00,0.00,0.53,1.55,0.18 +33.00,0.00,3.00,0.46,1.64,0.26 +53.00,0.00,23.00,0.46,1.71,0.33 +30.00,0.00,0.00,0.77,1.73,0.23 +72.00,0.00,42.00,0.37,1.62,0.26 +16.10,1.00,0.00,0.82,1.64,0.18 +44.00,0.00,14.00,0.44,1.71,0.26 +52.00,1.00,33.00,0.60,1.57,0.23 +30.00,0.00,0.00,0.86,1.71,0.23 +5.40,1.00,0.00,0.82,1.71,0.23 +53.00,0.00,23.00,0.35,1.59,0.27 +74.00,0.00,44.00,0.35,1.64,0.28 +44.00,0.00,14.00,0.47,1.71,0.25 +46.60,1.00,25.00,0.41,1.53,0.27 +15.50,0.00,0.00,0.89,1.66,0.24 +42.00,0.00,12.00,0.51,1.59,0.19 +49.00,0.00,19.00,0.32,1.62,0.30 +30.00,0.00,0.00,0.33,1.56,0.27 +92.00,0.00,62.00,0.69,1.53,0.20 +75.00,0.00,45.00,0.69,1.51,0.15 +92.00,0.00,62.00,0.44,1.73,0.27 +108.00,0.00,78.00,0.56,1.67,0.32 +88.00,0.00,58.00,0.42,1.70,0.26 +64.00,0.00,34.00,0.36,1.64,0.30 +49.00,0.00,19.00,0.52,1.89,0.47 +47.00,0.00,17.00,0.38,1.68,0.29 +30.00,0.00,0.00,0.54,1.83,0.29 +19.00,0.00,0.00,0.82,1.63,0.19 +69.00,0.00,39.00,0.60,1.58,0.27 +30.00,0.00,0.00,0.55,1.81,0.28 +0.10,0.00,0.00,0.64,1.57,0.20 +30.00,0.00,0.00,0.78,1.57,0.15 +45.60,1.00,28.00,0.69,1.73,0.35 +48.00,0.00,18.00,0.56,1.68,0.23 +59.20,1.00,31.00,0.43,1.72,0.26 +44.00,0.00,14.00,0.54,1.59,0.18 +30.00,0.00,0.00,0.45,1.69,0.27 +63.00,0.00,33.00,0.75,1.54,0.20 +58.00,0.00,28.00,0.34,1.56,0.27 +60.00,0.00,30.00,0.71,1.54,0.15 +107.00,0.00,77.00,0.38,1.61,0.25 +34.00,0.00,4.00,0.33,1.68,0.27 +46.00,0.00,16.00,0.45,1.66,0.26 +50.00,0.00,20.00,0.58,1.69,0.26 +45.00,0.00,15.00,0.45,1.73,0.27 +30.00,0.00,0.00,0.67,1.52,0.18 +90.50,1.00,68.00,0.41,1.56,0.25 +83.00,0.00,53.00,0.82,1.68,0.22 +48.00,0.00,18.00,0.58,1.68,0.23 +66.00,0.00,36.00,0.45,1.72,0.27 +69.00,0.00,39.00,0.66,1.52,0.18 +39.30,1.00,31.00,0.64,1.71,0.34 +96.00,0.00,66.00,0.46,1.64,0.24 +66.00,0.00,36.00,0.44,1.76,0.37 +59.10,1.00,33.00,0.47,1.70,0.26 +66.00,0.00,36.00,0.48,1.64,0.24 +25.00,0.00,0.00,0.72,1.68,0.23 +57.20,1.00,44.00,0.36,1.64,0.28 +88.00,0.00,58.00,0.42,1.67,0.25 +24.50,0.00,0.00,0.62,1.57,0.22 +69.00,0.00,39.00,0.47,1.67,0.24 +12.20,0.00,0.00,0.49,1.65,0.24 +60.00,0.00,30.00,0.33,1.67,0.28 +30.00,0.00,0.00,0.56,1.51,0.16 +12.00,0.00,0.00,0.60,1.74,0.32 +30.00,0.00,0.00,0.91,1.73,0.20 +30.00,0.00,0.00,0.93,1.69,0.25 +47.00,0.00,17.00,0.41,1.58,0.24 +41.70,1.00,13.00,0.74,1.72,0.23 +44.00,0.00,14.00,0.67,1.58,0.24 +55.00,0.00,25.00,0.44,1.62,0.25 +79.00,0.00,49.00,0.55,1.66,0.32 +30.00,0.00,0.00,0.33,1.48,0.27 +90.00,0.00,60.00,0.58,1.70,0.27 +30.00,0.00,0.00,0.47,1.63,0.26 +83.00,0.00,53.00,0.51,1.57,0.20 +40.00,0.00,10.00,0.54,1.54,0.19 +65.00,0.00,35.00,0.34,1.61,0.29 +30.00,0.00,0.00,0.74,1.64,0.24 +83.00,0.00,53.00,0.58,1.66,0.22 +8.80,1.00,0.00,1.12,1.76,0.21 +7.60,0.00,0.00,1.19,1.74,0.24 +53.00,0.00,23.00,0.35,1.61,0.28 diff --git a/relife/datasets/power_transformer.csv b/relife/datasets/power_transformer.csv new file mode 100644 index 0000000..414682a --- /dev/null +++ b/relife/datasets/power_transformer.csv @@ -0,0 +1,1651 @@ +time,event,entry +34.3,1.0,34.0 +45.1,1.0,44.0 +53.2,1.0,52.0 +48.2,1.0,47.0 +33.2,1.0,32.0 +19.3,1.0,18.0 +43.8,1.0,42.0 +54.9,1.0,53.0 +26.9,1.0,25.0 +52.0,1.0,50.0 +44.2,1.0,42.0 +31.4,1.0,29.0 +20.8,1.0,18.0 +34.9,1.0,32.0 +28.0,1.0,25.0 +13.3,1.0,10.0 +53.6,1.0,50.0 +40.6,1.0,37.0 +47.3,1.0,43.0 +51.6,1.0,47.0 +25.7,1.0,21.0 +41.7,1.0,37.0 +9.9,1.0,5.0 +65.9,1.0,60.0 +30.0,1.0,24.0 +29.0,1.0,23.0 +54.5,1.0,48.0 +60.5,1.0,54.0 +26.8,1.0,20.0 +54.0,1.0,47.0 +50.0,1.0,43.0 +47.1,1.0,40.0 +49.1,1.0,42.0 +28.3,1.0,21.0 +58.3,1.0,51.0 +38.4,1.0,31.0 +53.6,1.0,46.0 +39.7,1.0,32.0 +67.9,1.0,60.0 +47.9,1.0,40.0 +80.0,1.0,72.0 +60.0,1.0,52.0 +70.4,1.0,62.0 +61.4,1.0,53.0 +45.4,1.0,37.0 +51.8,1.0,43.0 +51.8,1.0,43.0 +50.0,1.0,41.0 +55.0,1.0,46.0 +28.2,1.0,19.0 +32.3,1.0,23.0 +59.5,1.0,50.0 +60.5,1.0,51.0 +61.6,1.0,52.0 +36.6,1.0,27.0 +58.7,1.0,49.0 +43.8,1.0,34.0 +61.9,1.0,52.0 +53.1,1.0,43.0 +70.2,1.0,60.0 +63.3,1.0,53.0 +56.3,1.0,46.0 +52.4,1.0,42.0 +32.5,1.0,22.0 +45.6,1.0,35.0 +52.9,1.0,42.0 +52.9,1.0,42.0 +26.0,1.0,15.0 +58.1,1.0,47.0 +54.4,1.0,43.0 +62.5,1.0,51.0 +62.5,1.0,51.0 +28.5,1.0,17.0 +70.7,1.0,59.0 +56.8,1.0,45.0 +47.9,1.0,36.0 +39.2,1.0,27.0 +12.4,1.0,0.0 +37.5,1.0,25.0 +47.5,1.0,35.0 +51.5,1.0,39.0 +12.6,1.0,0.0 +42.6,1.0,30.0 +53.6,1.0,41.0 +12.7,1.0,0.0 +35.8,1.0,23.0 +63.8,1.0,51.0 +59.8,1.0,47.0 +49.9,1.0,37.0 +65.9,1.0,53.0 +54.0,1.0,41.0 +44.1,1.0,31.0 +13.2,1.0,0.0 +67.2,1.0,54.0 +52.4,1.0,39.0 +62.4,1.0,49.0 +67.6,1.0,54.0 +66.7,1.0,53.0 +15.1,1.0,1.0 +57.2,1.0,43.0 +60.2,1.0,46.0 +73.3,1.0,59.0 +29.3,1.0,15.0 +43.5,1.0,29.0 +33.5,1.0,19.0 +59.6,1.0,45.0 +63.7,1.0,49.0 +35.8,1.0,21.0 +66.8,1.0,52.0 +66.9,1.0,52.0 +63.9,1.0,49.0 +62.1,1.0,47.0 +68.3,1.0,53.0 +49.3,1.0,34.0 +76.4,1.0,61.0 +57.5,1.0,42.0 +28.7,1.0,13.0 +54.7,1.0,39.0 +39.8,1.0,24.0 +56.9,1.0,41.0 +50.2,1.0,34.0 +53.2,1.0,37.0 +19.4,1.0,3.0 +38.5,1.0,22.0 +64.7,1.0,48.0 +43.7,1.0,27.0 +61.8,1.0,45.0 +55.8,1.0,39.0 +52.1,1.0,35.0 +61.1,1.0,44.0 +52.1,1.0,35.0 +56.1,1.0,39.0 +69.3,1.0,52.0 +68.3,1.0,51.0 +41.3,1.0,24.0 +52.3,1.0,35.0 +57.4,1.0,40.0 +61.5,1.0,44.0 +39.5,1.0,22.0 +33.6,1.0,16.0 +68.7,1.0,51.0 +54.7,1.0,37.0 +58.7,1.0,41.0 +36.8,1.0,19.0 +63.9,1.0,46.0 +35.0,1.0,17.0 +56.0,1.0,38.0 +56.1,1.0,38.0 +72.2,1.0,54.0 +61.2,1.0,43.0 +31.3,1.0,13.0 +46.7,1.0,28.0 +1.8,1.0,0.0 +60.2,1.0,41.0 +48.2,1.0,29.0 +60.3,1.0,41.0 +60.4,1.0,41.0 +62.6,1.0,43.0 +50.6,1.0,31.0 +39.6,1.0,20.0 +71.7,1.0,52.0 +45.8,1.0,26.0 +62.8,1.0,43.0 +49.0,1.0,29.0 +73.0,1.0,53.0 +54.1,1.0,34.0 +64.2,1.0,44.0 +60.2,1.0,40.0 +53.2,1.0,33.0 +58.4,1.0,38.0 +36.4,1.0,16.0 +78.4,1.0,58.0 +50.5,1.0,30.0 +72.5,1.0,52.0 +63.6,1.0,43.0 +38.7,1.0,18.0 +53.8,1.0,33.0 +72.0,1.0,51.0 +50.0,1.0,29.0 +44.1,1.0,23.0 +74.1,1.0,53.0 +69.2,1.0,48.0 +13.3,1.0,0.0 +30.5,1.0,9.0 +35.6,1.0,14.0 +36.6,1.0,15.0 +41.7,1.0,20.0 +57.7,1.0,36.0 +69.8,1.0,48.0 +52.8,1.0,31.0 +64.8,1.0,43.0 +47.0,1.0,25.0 +73.0,1.0,51.0 +57.1,1.0,35.0 +58.1,1.0,36.0 +49.2,1.0,27.0 +61.2,1.0,39.0 +53.3,1.0,31.0 +50.4,1.0,28.0 +64.4,1.0,42.0 +66.4,1.0,44.0 +73.6,1.0,51.0 +75.7,1.0,53.0 +66.8,1.0,44.0 +33.1,1.0,10.0 +69.1,1.0,46.0 +74.1,1.0,51.0 +69.1,1.0,46.0 +55.1,1.0,32.0 +70.2,1.0,47.0 +56.2,1.0,33.0 +74.3,1.0,51.0 +44.3,1.0,21.0 +40.4,1.0,17.0 +73.4,1.0,50.0 +73.4,1.0,50.0 +56.4,1.0,33.0 +55.5,1.0,32.0 +65.5,1.0,42.0 +69.5,1.0,46.0 +58.5,1.0,35.0 +53.6,1.0,30.0 +27.7,1.0,4.0 +57.7,1.0,34.0 +49.8,1.0,26.0 +61.9,1.0,38.0 +53.0,1.0,29.0 +42.1,1.0,18.0 +54.2,1.0,30.0 +54.3,1.0,30.0 +49.4,1.0,25.0 +68.4,1.0,44.0 +27.4,1.0,3.0 +42.6,1.0,18.0 +65.8,1.0,41.0 +36.8,1.0,12.0 +38.8,1.0,14.0 +48.8,1.0,24.0 +75.8,1.0,51.0 +57.8,1.0,33.0 +45.9,1.0,21.0 +42.0,1.0,17.0 +70.0,1.0,45.0 +77.1,1.0,52.0 +50.2,1.0,25.0 +50.2,1.0,25.0 +74.2,1.0,49.0 +56.3,1.0,31.0 +45.4,1.0,20.0 +67.5,1.0,42.0 +69.6,1.0,44.0 +56.7,1.0,31.0 +41.8,1.0,16.0 +71.8,1.0,46.0 +72.0,1.0,46.0 +60.1,1.0,34.0 +73.1,1.0,47.0 +66.2,1.0,40.0 +60.2,1.0,34.0 +70.3,1.0,44.0 +75.4,1.0,49.0 +59.4,1.0,33.0 +62.6,1.0,36.0 +65.7,1.0,39.0 +18.3,1.0,0.0 +58.8,1.0,32.0 +79.9,1.0,53.0 +75.9,1.0,49.0 +59.0,1.0,32.0 +57.0,1.0,30.0 +67.0,1.0,40.0 +44.1,1.0,17.0 +78.2,1.0,51.0 +47.2,1.0,20.0 +64.2,1.0,37.0 +49.4,1.0,22.0 +28.5,1.0,1.0 +27.7,1.0,0.0 +79.9,1.0,52.0 +64.9,1.0,37.0 +77.0,1.0,49.0 +53.1,1.0,25.0 +45.1,1.0,17.0 +60.2,1.0,32.0 +69.2,1.0,41.0 +79.2,1.0,51.0 +80.3,1.0,52.0 +53.4,1.0,25.0 +57.5,1.0,29.0 +57.5,1.0,29.0 +40.6,1.0,12.0 +60.8,1.0,32.0 +67.8,1.0,39.0 +55.8,1.0,27.0 +55.8,1.0,27.0 +85.8,1.0,57.0 +75.0,1.0,46.0 +25.7,1.0,0.0 +81.0,1.0,52.0 +49.1,1.0,20.0 +70.1,1.0,41.0 +60.1,1.0,31.0 +69.2,1.0,40.0 +46.2,1.0,17.0 +78.4,1.0,49.0 +72.4,1.0,43.0 +63.4,1.0,34.0 +71.4,1.0,42.0 +37.4,1.0,8.0 +55.6,1.0,26.0 +59.6,1.0,30.0 +66.6,1.0,37.0 +55.8,1.0,26.0 +78.8,1.0,49.0 +55.9,1.0,26.0 +92.9,1.0,63.0 +46.9,1.0,17.0 +69.0,1.0,39.0 +62.0,0.0,32.0 +61.0,0.0,31.0 +55.0,0.0,25.0 +53.0,0.0,23.0 +61.0,0.0,31.0 +73.0,0.0,43.0 +21.6,0.0,0.0 +48.0,0.0,18.0 +60.0,0.0,30.0 +4.2,0.0,0.0 +56.0,0.0,26.0 +44.0,0.0,14.0 +6.1,0.0,0.0 +67.0,0.0,37.0 +55.0,0.0,25.0 +64.0,0.0,34.0 +3.0,0.0,0.0 +21.6,0.0,0.0 +15.1,0.0,0.0 +83.0,0.0,53.0 +75.0,0.0,45.0 +4.2,0.0,0.0 +81.0,0.0,51.0 +17.2,0.0,0.0 +54.0,0.0,24.0 +54.0,0.0,24.0 +58.0,0.0,28.0 +47.0,0.0,17.0 +27.1,0.0,0.0 +4.7,0.0,0.0 +67.0,0.0,37.0 +6.5,0.0,0.0 +65.0,0.0,35.0 +59.0,0.0,29.0 +78.0,0.0,48.0 +61.0,0.0,31.0 +43.0,0.0,13.0 +43.0,0.0,13.0 +50.0,0.0,20.0 +12.7,0.0,0.0 +57.0,0.0,27.0 +53.0,0.0,23.0 +54.0,0.0,24.0 +17.5,0.0,0.0 +53.0,0.0,23.0 +43.0,0.0,13.0 +12.5,0.0,0.0 +6.7,0.0,0.0 +7.7,0.0,0.0 +5.1,0.0,0.0 +49.0,0.0,19.0 +71.0,0.0,41.0 +8.4,0.0,0.0 +48.0,0.0,18.0 +43.0,0.0,13.0 +48.0,0.0,18.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +76.0,0.0,46.0 +61.0,0.0,31.0 +56.0,0.0,26.0 +8.8,0.0,0.0 +78.0,0.0,48.0 +71.0,0.0,41.0 +70.0,0.0,40.0 +27.6,0.0,0.0 +48.0,0.0,18.0 +54.0,0.0,24.0 +8.0,0.0,0.0 +13.2,0.0,0.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +4.8,0.0,0.0 +55.0,0.0,25.0 +57.0,0.0,27.0 +61.0,0.0,31.0 +6.6,0.0,0.0 +1.5,0.0,0.0 +68.0,0.0,38.0 +1.9,0.0,0.0 +75.0,0.0,45.0 +57.0,0.0,27.0 +57.0,0.0,27.0 +56.0,0.0,26.0 +51.0,0.0,21.0 +6.7,0.0,0.0 +19.5,0.0,0.0 +8.2,0.0,0.0 +61.0,0.0,31.0 +14.6,0.0,0.0 +24.1,0.0,0.0 +90.0,0.0,60.0 +51.0,0.0,21.0 +41.0,0.0,11.0 +7.6,0.0,0.0 +47.0,0.0,17.0 +45.0,0.0,15.0 +55.0,0.0,25.0 +52.0,0.0,22.0 +46.0,0.0,16.0 +3.9,0.0,0.0 +21.0,0.0,0.0 +70.0,0.0,40.0 +62.0,0.0,32.0 +29.7,0.0,0.0 +78.0,0.0,48.0 +60.0,0.0,30.0 +55.0,0.0,25.0 +50.0,0.0,20.0 +50.0,0.0,20.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +56.0,0.0,26.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +73.0,0.0,43.0 +77.0,0.0,47.0 +59.0,0.0,29.0 +62.0,0.0,32.0 +41.0,0.0,11.0 +44.0,0.0,14.0 +46.0,0.0,16.0 +55.0,0.0,25.0 +60.0,0.0,30.0 +54.0,0.0,24.0 +5.8,0.0,0.0 +28.1,0.0,0.0 +52.0,0.0,22.0 +54.0,0.0,24.0 +35.0,0.0,5.0 +6.5,0.0,0.0 +35.0,0.0,5.0 +48.0,0.0,18.0 +17.2,0.0,0.0 +52.0,0.0,22.0 +41.0,0.0,11.0 +79.0,0.0,49.0 +71.0,0.0,41.0 +56.0,0.0,26.0 +46.0,0.0,16.0 +43.0,0.0,13.0 +12.3,0.0,0.0 +60.0,0.0,30.0 +59.0,0.0,29.0 +80.0,0.0,50.0 +1.7,0.0,0.0 +13.5,0.0,0.0 +51.0,0.0,21.0 +66.0,0.0,36.0 +46.0,0.0,16.0 +63.0,0.0,33.0 +73.0,0.0,43.0 +72.0,0.0,42.0 +13.3,0.0,0.0 +49.0,0.0,19.0 +57.0,0.0,27.0 +22.9,0.0,0.0 +52.0,0.0,22.0 +69.0,0.0,39.0 +64.0,0.0,34.0 +64.0,0.0,34.0 +60.0,0.0,30.0 +25.7,0.0,0.0 +77.0,0.0,47.0 +25.3,0.0,0.0 +3.8,0.0,0.0 +72.0,0.0,42.0 +72.0,0.0,42.0 +5.6,0.0,0.0 +56.0,0.0,26.0 +55.0,0.0,25.0 +44.0,0.0,14.0 +69.0,0.0,39.0 +59.0,0.0,29.0 +63.0,0.0,33.0 +63.0,0.0,33.0 +59.0,0.0,29.0 +50.0,0.0,20.0 +57.0,0.0,27.0 +62.0,0.0,32.0 +63.0,0.0,33.0 +63.0,0.0,33.0 +45.0,0.0,15.0 +47.0,0.0,17.0 +37.0,0.0,7.0 +38.0,0.0,8.0 +71.0,0.0,41.0 +10.4,0.0,0.0 +34.0,0.0,4.0 +6.9,0.0,0.0 +77.0,0.0,47.0 +50.0,0.0,20.0 +73.0,0.0,43.0 +78.0,0.0,48.0 +75.0,0.0,45.0 +77.0,0.0,47.0 +73.0,0.0,43.0 +68.0,0.0,38.0 +73.0,0.0,43.0 +12.1,0.0,0.0 +15.2,0.0,0.0 +9.0,0.0,0.0 +22.4,0.0,0.0 +59.0,0.0,29.0 +68.0,0.0,38.0 +9.8,0.0,0.0 +22.0,0.0,0.0 +80.0,0.0,50.0 +81.0,0.0,51.0 +34.0,0.0,4.0 +28.8,0.0,0.0 +65.0,0.0,35.0 +45.0,0.0,15.0 +24.0,0.0,0.0 +54.0,0.0,24.0 +45.0,0.0,15.0 +7.9,0.0,0.0 +65.0,0.0,35.0 +65.0,0.0,35.0 +56.0,0.0,26.0 +62.0,0.0,32.0 +19.4,0.0,0.0 +48.0,0.0,18.0 +47.0,0.0,17.0 +43.0,0.0,13.0 +54.0,0.0,24.0 +62.0,0.0,32.0 +21.2,0.0,0.0 +63.0,0.0,33.0 +65.0,0.0,35.0 +6.3,0.0,0.0 +17.8,0.0,0.0 +77.0,0.0,47.0 +61.0,0.0,31.0 +6.0,0.0,0.0 +21.0,0.0,0.0 +73.0,0.0,43.0 +67.0,0.0,37.0 +18.2,0.0,0.0 +43.0,0.0,13.0 +70.0,0.0,40.0 +57.0,0.0,27.0 +64.0,0.0,34.0 +15.7,0.0,0.0 +18.3,0.0,0.0 +76.0,0.0,46.0 +45.0,0.0,15.0 +27.0,0.0,0.0 +1.2,0.0,0.0 +82.0,0.0,52.0 +42.0,0.0,12.0 +74.0,0.0,44.0 +36.0,0.0,6.0 +56.0,0.0,26.0 +58.0,0.0,28.0 +46.0,0.0,16.0 +64.0,0.0,34.0 +4.6,0.0,0.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +50.0,0.0,20.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +7.2,0.0,0.0 +11.8,0.0,0.0 +67.0,0.0,37.0 +7.3,0.0,0.0 +28.1,0.0,0.0 +19.7,0.0,0.0 +10.0,0.0,0.0 +83.0,0.0,53.0 +47.0,0.0,17.0 +74.0,0.0,44.0 +0.6,0.0,0.0 +72.0,0.0,42.0 +73.0,0.0,43.0 +46.0,0.0,16.0 +73.0,0.0,43.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +33.0,0.0,3.0 +60.0,0.0,30.0 +20.7,0.0,0.0 +6.3,0.0,0.0 +34.0,0.0,4.0 +1.2,0.0,0.0 +12.7,0.0,0.0 +14.3,0.0,0.0 +70.0,0.0,40.0 +55.0,0.0,25.0 +78.0,0.0,48.0 +59.0,0.0,29.0 +6.9,0.0,0.0 +8.7,0.0,0.0 +67.0,0.0,37.0 +1.2,0.0,0.0 +56.0,0.0,26.0 +1.9,0.0,0.0 +7.8,0.0,0.0 +13.3,0.0,0.0 +69.0,0.0,39.0 +59.0,0.0,29.0 +50.0,0.0,20.0 +3.9,0.0,0.0 +16.6,0.0,0.0 +47.0,0.0,17.0 +37.0,0.0,7.0 +61.0,0.0,31.0 +7.6,0.0,0.0 +3.6,0.0,0.0 +40.0,0.0,10.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +67.0,0.0,37.0 +53.0,0.0,23.0 +72.0,0.0,42.0 +8.3,0.0,0.0 +71.0,0.0,41.0 +15.8,0.0,0.0 +59.0,0.0,29.0 +67.0,0.0,37.0 +47.0,0.0,17.0 +75.0,0.0,45.0 +55.0,0.0,25.0 +38.0,0.0,8.0 +76.0,0.0,46.0 +82.0,0.0,52.0 +15.1,0.0,0.0 +61.0,0.0,31.0 +67.0,0.0,37.0 +43.0,0.0,13.0 +3.0,0.0,0.0 +41.0,0.0,11.0 +52.0,0.0,22.0 +6.9,0.0,0.0 +60.0,0.0,30.0 +6.6,0.0,0.0 +13.8,0.0,0.0 +12.0,0.0,0.0 +63.0,0.0,33.0 +70.0,0.0,40.0 +67.0,0.0,37.0 +56.0,0.0,26.0 +52.0,0.0,22.0 +62.0,0.0,32.0 +4.4,0.0,0.0 +1.0,0.0,0.0 +82.0,0.0,52.0 +50.0,0.0,20.0 +72.0,0.0,42.0 +0.9,0.0,0.0 +13.6,0.0,0.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +64.0,0.0,34.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +49.0,0.0,19.0 +11.3,0.0,0.0 +10.8,0.0,0.0 +23.0,0.0,0.0 +11.1,0.0,0.0 +54.0,0.0,24.0 +51.0,0.0,21.0 +0.6,0.0,0.0 +76.0,0.0,46.0 +51.0,0.0,21.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +72.0,0.0,42.0 +6.6,0.0,0.0 +4.8,0.0,0.0 +4.0,0.0,0.0 +48.0,0.0,18.0 +67.0,0.0,37.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +57.0,0.0,27.0 +46.0,0.0,16.0 +39.0,0.0,9.0 +56.0,0.0,26.0 +53.0,0.0,23.0 +44.0,0.0,14.0 +28.8,0.0,0.0 +71.0,0.0,41.0 +0.8,0.0,0.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +51.0,0.0,21.0 +40.0,0.0,10.0 +48.0,0.0,18.0 +38.0,0.0,8.0 +15.3,0.0,0.0 +82.0,0.0,52.0 +64.0,0.0,34.0 +6.4,0.0,0.0 +67.0,0.0,37.0 +53.0,0.0,23.0 +50.0,0.0,20.0 +50.0,0.0,20.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +49.0,0.0,19.0 +60.0,0.0,30.0 +46.0,0.0,16.0 +59.0,0.0,29.0 +24.0,0.0,0.0 +12.5,0.0,0.0 +59.0,0.0,29.0 +82.0,0.0,52.0 +82.0,0.0,52.0 +55.0,0.0,25.0 +60.0,0.0,30.0 +56.0,0.0,26.0 +17.5,0.0,0.0 +63.0,0.0,33.0 +53.0,0.0,23.0 +47.0,0.0,17.0 +75.0,0.0,45.0 +80.0,0.0,50.0 +62.0,0.0,32.0 +70.0,0.0,40.0 +50.0,0.0,20.0 +69.0,0.0,39.0 +67.0,0.0,37.0 +58.0,0.0,28.0 +52.0,0.0,22.0 +2.8,0.0,0.0 +55.0,0.0,25.0 +49.0,0.0,19.0 +38.0,0.0,8.0 +48.0,0.0,18.0 +65.0,0.0,35.0 +68.0,0.0,38.0 +50.0,0.0,20.0 +51.0,0.0,21.0 +71.0,0.0,41.0 +9.8,0.0,0.0 +21.2,0.0,0.0 +3.8,0.0,0.0 +58.0,0.0,28.0 +63.0,0.0,33.0 +64.0,0.0,34.0 +20.2,0.0,0.0 +39.0,0.0,9.0 +39.0,0.0,9.0 +49.0,0.0,19.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +54.0,0.0,24.0 +52.0,0.0,22.0 +39.0,0.0,9.0 +39.0,0.0,9.0 +78.0,0.0,48.0 +82.0,0.0,52.0 +12.7,0.0,0.0 +20.4,0.0,0.0 +42.0,0.0,12.0 +43.0,0.0,13.0 +34.0,0.0,4.0 +57.0,0.0,27.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +69.0,0.0,39.0 +78.0,0.0,48.0 +3.1,0.0,0.0 +6.9,0.0,0.0 +40.0,0.0,10.0 +78.0,0.0,48.0 +49.0,0.0,19.0 +47.0,0.0,17.0 +9.6,0.0,0.0 +79.0,0.0,49.0 +51.0,0.0,21.0 +62.0,0.0,32.0 +32.0,0.0,2.0 +63.0,0.0,33.0 +59.0,0.0,29.0 +62.0,0.0,32.0 +53.0,0.0,23.0 +62.0,0.0,32.0 +58.0,0.0,28.0 +52.0,0.0,22.0 +79.0,0.0,49.0 +26.4,0.0,0.0 +51.0,0.0,21.0 +58.0,0.0,28.0 +38.0,0.0,8.0 +33.0,0.0,3.0 +47.0,0.0,17.0 +3.0,0.0,0.0 +67.0,0.0,37.0 +34.0,0.0,4.0 +79.0,0.0,49.0 +67.0,0.0,37.0 +69.0,0.0,39.0 +64.0,0.0,34.0 +36.0,0.0,6.0 +35.0,0.0,5.0 +3.6,0.0,0.0 +8.2,0.0,0.0 +65.0,0.0,35.0 +51.0,0.0,21.0 +49.0,0.0,19.0 +49.0,0.0,19.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +0.4,0.0,0.0 +0.4,0.0,0.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +63.0,0.0,33.0 +61.0,0.0,31.0 +53.0,0.0,23.0 +15.4,0.0,0.0 +61.0,0.0,31.0 +77.0,0.0,47.0 +51.0,0.0,21.0 +50.0,0.0,20.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +50.0,0.0,20.0 +54.0,0.0,24.0 +47.0,0.0,17.0 +48.0,0.0,18.0 +64.0,0.0,34.0 +59.0,0.0,29.0 +58.0,0.0,28.0 +4.3,0.0,0.0 +63.0,0.0,33.0 +50.0,0.0,20.0 +52.0,0.0,22.0 +57.0,0.0,27.0 +50.0,0.0,20.0 +2.8,0.0,0.0 +22.9,0.0,0.0 +54.0,0.0,24.0 +54.0,0.0,24.0 +43.0,0.0,13.0 +53.0,0.0,23.0 +39.0,0.0,9.0 +49.0,0.0,19.0 +55.0,0.0,25.0 +71.0,0.0,41.0 +65.0,0.0,35.0 +9.6,0.0,0.0 +36.0,0.0,6.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +47.0,0.0,17.0 +40.0,0.0,10.0 +71.0,0.0,41.0 +69.0,0.0,39.0 +54.0,0.0,24.0 +58.0,0.0,28.0 +3.2,0.0,0.0 +59.0,0.0,29.0 +58.0,0.0,28.0 +54.0,0.0,24.0 +68.0,0.0,38.0 +34.0,0.0,4.0 +59.0,0.0,29.0 +7.8,0.0,0.0 +53.0,0.0,23.0 +8.5,0.0,0.0 +71.0,0.0,41.0 +65.0,0.0,35.0 +60.0,0.0,30.0 +56.0,0.0,26.0 +72.0,0.0,42.0 +52.0,0.0,22.0 +22.1,0.0,0.0 +65.0,0.0,35.0 +61.0,0.0,31.0 +56.0,0.0,26.0 +52.0,0.0,22.0 +0.9,0.0,0.0 +57.0,0.0,27.0 +65.0,0.0,35.0 +60.0,0.0,30.0 +33.0,0.0,3.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +3.2,0.0,0.0 +49.0,0.0,19.0 +52.0,0.0,22.0 +5.2,0.0,0.0 +18.5,0.0,0.0 +81.0,0.0,51.0 +40.0,0.0,10.0 +60.0,0.0,30.0 +10.4,0.0,0.0 +53.0,0.0,23.0 +48.0,0.0,18.0 +18.5,0.0,0.0 +5.0,0.0,0.0 +47.0,0.0,17.0 +2.6,0.0,0.0 +38.0,0.0,8.0 +37.0,0.0,7.0 +37.0,0.0,7.0 +38.0,0.0,8.0 +27.2,0.0,0.0 +55.0,0.0,25.0 +64.0,0.0,34.0 +70.0,0.0,40.0 +51.0,0.0,21.0 +58.0,0.0,28.0 +55.0,0.0,25.0 +57.0,0.0,27.0 +64.0,0.0,34.0 +75.0,0.0,45.0 +61.0,0.0,31.0 +62.0,0.0,32.0 +55.0,0.0,25.0 +5.7,0.0,0.0 +53.0,0.0,23.0 +49.0,0.0,19.0 +42.0,0.0,12.0 +39.0,0.0,9.0 +5.2,0.0,0.0 +60.0,0.0,30.0 +69.0,0.0,39.0 +0.1,0.0,0.0 +1.8,0.0,0.0 +67.0,0.0,37.0 +64.0,0.0,34.0 +19.0,0.0,0.0 +70.0,0.0,40.0 +73.0,0.0,43.0 +26.4,0.0,0.0 +61.0,0.0,31.0 +17.0,0.0,0.0 +43.0,0.0,13.0 +43.0,0.0,13.0 +9.9,0.0,0.0 +50.0,0.0,20.0 +49.0,0.0,19.0 +12.3,0.0,0.0 +57.0,0.0,27.0 +8.2,0.0,0.0 +14.1,0.0,0.0 +72.0,0.0,42.0 +62.0,0.0,32.0 +68.0,0.0,38.0 +63.0,0.0,33.0 +12.9,0.0,0.0 +67.0,0.0,37.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +60.0,0.0,30.0 +1.8,0.0,0.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +62.0,0.0,32.0 +8.9,0.0,0.0 +52.0,0.0,22.0 +46.0,0.0,16.0 +16.9,0.0,0.0 +34.0,0.0,4.0 +19.8,0.0,0.0 +38.0,0.0,8.0 +13.2,0.0,0.0 +49.0,0.0,19.0 +58.0,0.0,28.0 +48.0,0.0,18.0 +54.0,0.0,24.0 +5.6,0.0,0.0 +25.1,0.0,0.0 +64.0,0.0,34.0 +4.8,0.0,0.0 +28.9,0.0,0.0 +20.5,0.0,0.0 +52.0,0.0,22.0 +56.0,0.0,26.0 +16.4,0.0,0.0 +11.8,0.0,0.0 +84.0,0.0,54.0 +22.3,0.0,0.0 +60.0,0.0,30.0 +0.2,0.0,0.0 +0.8,0.0,0.0 +72.0,0.0,42.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +68.0,0.0,38.0 +22.7,0.0,0.0 +22.0,0.0,0.0 +0.1,0.0,0.0 +73.0,0.0,43.0 +72.0,0.0,42.0 +71.0,0.0,41.0 +62.0,0.0,32.0 +71.0,0.0,41.0 +58.0,0.0,28.0 +57.0,0.0,27.0 +46.0,0.0,16.0 +7.6,0.0,0.0 +71.0,0.0,41.0 +57.0,0.0,27.0 +50.0,0.0,20.0 +17.4,0.0,0.0 +70.0,0.0,40.0 +47.0,0.0,17.0 +47.0,0.0,17.0 +76.0,0.0,46.0 +48.0,0.0,18.0 +58.0,0.0,28.0 +67.0,0.0,37.0 +12.9,0.0,0.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +61.0,0.0,31.0 +16.8,0.0,0.0 +23.5,0.0,0.0 +83.0,0.0,53.0 +82.0,0.0,52.0 +68.0,0.0,38.0 +3.7,0.0,0.0 +48.0,0.0,18.0 +50.0,0.0,20.0 +47.0,0.0,17.0 +50.0,0.0,20.0 +59.0,0.0,29.0 +25.3,0.0,0.0 +45.0,0.0,15.0 +45.0,0.0,15.0 +65.0,0.0,35.0 +8.9,0.0,0.0 +40.0,0.0,10.0 +40.0,0.0,10.0 +69.0,0.0,39.0 +67.0,0.0,37.0 +5.6,0.0,0.0 +58.0,0.0,28.0 +0.1,0.0,0.0 +86.0,0.0,56.0 +50.0,0.0,20.0 +46.0,0.0,16.0 +61.0,0.0,31.0 +12.2,0.0,0.0 +49.0,0.0,19.0 +46.0,0.0,16.0 +72.0,0.0,42.0 +6.8,0.0,0.0 +15.5,0.0,0.0 +61.0,0.0,31.0 +72.0,0.0,42.0 +6.5,0.0,0.0 +33.0,0.0,3.0 +79.0,0.0,49.0 +61.0,0.0,31.0 +39.0,0.0,9.0 +33.0,0.0,3.0 +34.0,0.0,4.0 +53.0,0.0,23.0 +48.0,0.0,18.0 +14.7,0.0,0.0 +69.0,0.0,39.0 +2.8,0.0,0.0 +59.0,0.0,29.0 +35.0,0.0,5.0 +65.0,0.0,35.0 +33.0,0.0,3.0 +1.6,0.0,0.0 +45.0,0.0,15.0 +46.0,0.0,16.0 +69.0,0.0,39.0 +62.0,0.0,32.0 +14.2,0.0,0.0 +54.0,0.0,24.0 +71.0,0.0,41.0 +42.0,0.0,12.0 +47.0,0.0,17.0 +59.0,0.0,29.0 +20.4,0.0,0.0 +52.0,0.0,22.0 +15.5,0.0,0.0 +20.8,0.0,0.0 +62.0,0.0,32.0 +6.6,0.0,0.0 +1.5,0.0,0.0 +49.0,0.0,19.0 +56.0,0.0,26.0 +58.0,0.0,28.0 +49.0,0.0,19.0 +33.0,0.0,3.0 +58.0,0.0,28.0 +5.2,0.0,0.0 +40.0,0.0,10.0 +42.0,0.0,12.0 +56.0,0.0,26.0 +50.0,0.0,20.0 +49.0,0.0,19.0 +47.0,0.0,17.0 +15.2,0.0,0.0 +55.0,0.0,25.0 +3.3,0.0,0.0 +71.0,0.0,41.0 +28.2,0.0,0.0 +0.6,0.0,0.0 +41.0,0.0,11.0 +12.6,0.0,0.0 +54.0,0.0,24.0 +67.0,0.0,37.0 +52.0,0.0,22.0 +23.5,0.0,0.0 +0.9,0.0,0.0 +61.0,0.0,31.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +33.0,0.0,3.0 +58.0,0.0,28.0 +8.3,0.0,0.0 +59.0,0.0,29.0 +10.6,0.0,0.0 +14.5,0.0,0.0 +34.0,0.0,4.0 +34.0,0.0,4.0 +14.7,0.0,0.0 +17.1,0.0,0.0 +55.0,0.0,25.0 +39.0,0.0,9.0 +1.0,0.0,0.0 +39.0,0.0,9.0 +47.0,0.0,17.0 +60.0,0.0,30.0 +6.5,0.0,0.0 +73.0,0.0,43.0 +16.6,0.0,0.0 +59.0,0.0,29.0 +75.0,0.0,45.0 +43.0,0.0,13.0 +67.0,0.0,37.0 +9.4,0.0,0.0 +48.0,0.0,18.0 +43.0,0.0,13.0 +2.1,0.0,0.0 +80.0,0.0,50.0 +51.0,0.0,21.0 +54.0,0.0,24.0 +61.0,0.0,31.0 +59.0,0.0,29.0 +54.0,0.0,24.0 +1.4,0.0,0.0 +43.0,0.0,13.0 +47.0,0.0,17.0 +57.0,0.0,27.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +34.0,0.0,4.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +11.9,0.0,0.0 +8.0,0.0,0.0 +18.1,0.0,0.0 +65.0,0.0,35.0 +7.9,0.0,0.0 +39.0,0.0,9.0 +12.4,0.0,0.0 +51.0,0.0,21.0 +44.0,0.0,14.0 +64.0,0.0,34.0 +60.0,0.0,30.0 +6.2,0.0,0.0 +60.0,0.0,30.0 +49.0,0.0,19.0 +3.4,0.0,0.0 +74.0,0.0,44.0 +12.3,0.0,0.0 +43.0,0.0,13.0 +18.9,0.0,0.0 +63.0,0.0,33.0 +2.1,0.0,0.0 +49.0,0.0,19.0 +18.6,0.0,0.0 +2.0,0.0,0.0 +49.0,0.0,19.0 +50.0,0.0,20.0 +6.8,0.0,0.0 +51.0,0.0,21.0 +20.5,0.0,0.0 +51.0,0.0,21.0 +19.1,0.0,0.0 +49.0,0.0,19.0 +68.0,0.0,38.0 +12.0,0.0,0.0 +67.0,0.0,37.0 +43.0,0.0,13.0 +42.0,0.0,12.0 +51.0,0.0,21.0 +47.0,0.0,17.0 +0.6,0.0,0.0 +37.0,0.0,7.0 +41.0,0.0,11.0 +71.0,0.0,41.0 +79.0,0.0,49.0 +73.0,0.0,43.0 +22.7,0.0,0.0 +51.0,0.0,21.0 +14.3,0.0,0.0 +46.0,0.0,16.0 +47.0,0.0,17.0 +40.0,0.0,10.0 +39.0,0.0,9.0 +10.4,0.0,0.0 +53.0,0.0,23.0 +58.0,0.0,28.0 +6.9,0.0,0.0 +80.0,0.0,50.0 +28.0,0.0,0.0 +76.0,0.0,46.0 +46.0,0.0,16.0 +48.0,0.0,18.0 +28.7,0.0,0.0 +15.7,0.0,0.0 +56.0,0.0,26.0 +44.0,0.0,14.0 +9.2,0.0,0.0 +67.0,0.0,37.0 +64.0,0.0,34.0 +1.0,0.0,0.0 +63.0,0.0,33.0 +54.0,0.0,24.0 +63.0,0.0,33.0 +14.9,0.0,0.0 +74.0,0.0,44.0 +40.0,0.0,10.0 +47.0,0.0,17.0 +10.8,0.0,0.0 +46.0,0.0,16.0 +67.0,0.0,37.0 +48.0,0.0,18.0 +73.0,0.0,43.0 +9.8,0.0,0.0 +57.0,0.0,27.0 +60.0,0.0,30.0 +58.0,0.0,28.0 +59.0,0.0,29.0 +51.0,0.0,21.0 +10.2,0.0,0.0 +57.0,0.0,27.0 +43.0,0.0,13.0 +11.7,0.0,0.0 +22.6,0.0,0.0 +10.3,0.0,0.0 +9.5,0.0,0.0 +68.0,0.0,38.0 +81.0,0.0,51.0 +5.2,0.0,0.0 +74.0,0.0,44.0 +44.0,0.0,14.0 +2.9,0.0,0.0 +45.0,0.0,15.0 +44.0,0.0,14.0 +44.0,0.0,14.0 +20.1,0.0,0.0 +67.0,0.0,37.0 +62.0,0.0,32.0 +58.0,0.0,28.0 +23.2,0.0,0.0 +50.0,0.0,20.0 +61.0,0.0,31.0 +19.6,0.0,0.0 +23.0,0.0,0.0 +4.5,0.0,0.0 +5.9,0.0,0.0 +53.0,0.0,23.0 +56.0,0.0,26.0 +47.0,0.0,17.0 +49.0,0.0,19.0 +59.0,0.0,29.0 +56.0,0.0,26.0 +48.0,0.0,18.0 +48.0,0.0,18.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +52.0,0.0,22.0 +19.9,0.0,0.0 +56.0,0.0,26.0 +54.0,0.0,24.0 +57.0,0.0,27.0 +15.8,0.0,0.0 +57.0,0.0,27.0 +62.0,0.0,32.0 +78.0,0.0,48.0 +20.3,0.0,0.0 +48.0,0.0,18.0 +8.4,0.0,0.0 +48.0,0.0,18.0 +53.0,0.0,23.0 +80.0,0.0,50.0 +55.0,0.0,25.0 +1.2,0.0,0.0 +75.0,0.0,45.0 +60.0,0.0,30.0 +62.0,0.0,32.0 +4.9,0.0,0.0 +79.0,0.0,49.0 +0.2,0.0,0.0 +55.0,0.0,25.0 +54.0,0.0,24.0 +47.0,0.0,17.0 +46.0,0.0,16.0 +54.0,0.0,24.0 +87.0,0.0,57.0 +9.6,0.0,0.0 +9.3,0.0,0.0 +49.0,0.0,19.0 +48.0,0.0,18.0 +46.0,0.0,16.0 +5.4,0.0,0.0 +47.0,0.0,17.0 +3.1,0.0,0.0 +28.8,0.0,0.0 +52.0,0.0,22.0 +58.0,0.0,28.0 +40.0,0.0,10.0 +59.0,0.0,29.0 +7.4,0.0,0.0 +76.0,0.0,46.0 +5.0,0.0,0.0 +61.0,0.0,31.0 +59.0,0.0,29.0 +71.0,0.0,41.0 +1.2,0.0,0.0 +50.0,0.0,20.0 +57.0,0.0,27.0 +40.0,0.0,10.0 +78.0,0.0,48.0 +66.0,0.0,36.0 +51.0,0.0,21.0 +53.0,0.0,23.0 +52.0,0.0,22.0 +19.7,0.0,0.0 +52.0,0.0,22.0 +55.0,0.0,25.0 +13.8,0.0,0.0 +44.0,0.0,14.0 +39.0,0.0,9.0 +68.0,0.0,38.0 +34.0,0.0,4.0 +16.3,0.0,0.0 +52.0,0.0,22.0 +53.0,0.0,23.0 +53.0,0.0,23.0 +59.0,0.0,29.0 +55.0,0.0,25.0 +25.4,0.0,0.0 +1.8,0.0,0.0 +27.8,0.0,0.0 +78.0,0.0,48.0 +49.0,0.0,19.0 +48.0,0.0,18.0 +17.5,0.0,0.0 +69.0,0.0,39.0 +10.2,0.0,0.0 +57.0,0.0,27.0 +58.0,0.0,28.0 +9.5,0.0,0.0 +67.0,0.0,37.0 +78.0,0.0,48.0 +44.0,0.0,14.0 +53.0,0.0,23.0 +65.0,0.0,35.0 +17.4,0.0,0.0 +12.9,0.0,0.0 +5.2,0.0,0.0 +55.0,0.0,25.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +78.0,0.0,48.0 +52.0,0.0,22.0 +33.0,0.0,3.0 +33.0,0.0,3.0 +59.0,0.0,29.0 +59.0,0.0,29.0 +10.0,0.0,0.0 +5.2,0.0,0.0 +69.0,0.0,39.0 +39.0,0.0,9.0 +43.0,0.0,13.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +42.0,0.0,12.0 +19.1,0.0,0.0 +10.7,0.0,0.0 +9.0,0.0,0.0 +59.0,0.0,29.0 +48.0,0.0,18.0 +18.5,0.0,0.0 +12.7,0.0,0.0 +65.0,0.0,35.0 +32.0,0.0,2.0 +35.0,0.0,5.0 +0.4,0.0,0.0 +32.0,0.0,2.0 +35.0,0.0,5.0 +32.0,0.0,2.0 +17.2,0.0,0.0 +31.0,0.0,1.0 +34.0,0.0,4.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +15.9,0.0,0.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +32.0,0.0,2.0 +56.0,0.0,26.0 +47.0,0.0,17.0 +55.0,0.0,25.0 +56.0,0.0,26.0 +32.0,0.0,2.0 +17.1,0.0,0.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +46.0,0.0,16.0 +32.0,0.0,2.0 +55.0,0.0,25.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +31.0,0.0,1.0 +37.0,0.0,7.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +72.0,0.0,42.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +31.0,0.0,1.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +2.5,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +42.0,0.0,12.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +56.0,0.0,26.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +82.0,0.0,52.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +39.0,0.0,9.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +33.0,0.0,3.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +16.8,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +68.0,0.0,38.0 +0.6,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.3,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +52.0,0.0,22.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +34.0,0.0,4.0 +30.0,0.0,0.0 +32.0,0.0,2.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.6,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +35.0,0.0,5.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +17.4,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +2.3,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 +30.0,0.0,0.0 diff --git a/relife/discounting.py b/relife/discounting.py new file mode 100644 index 0000000..51f8f82 --- /dev/null +++ b/relife/discounting.py @@ -0,0 +1,202 @@ +"""Discount functions.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +import numpy as np + + +class Discount(ABC): + """Generic discount function. + + References + ---------- + .. [1] Van der Weide, J. A. M., & Van Noortwijk, J. M. (2008). Renewal + theory with exponential and hyperbolic discounting. Probability in the + Engineering and Informational Sciences, 22(1), 53-74. + """ + + @classmethod + @abstractmethod + def factor(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The discount factor. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The discount factor evaluated at `t`. + + Notes + ----- + The discount factor evaluated at :math:`t` that multiplies the reward to get the + discounted reward :math:`D(t) \cdot y`. + """ + pass + + @classmethod + @abstractmethod + def rate(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The discount rate. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The discount rate evaluated at `t`. + + Notes + ----- + The discount rate evaluated at :math:`t` is defined by: + + .. math:: + + r(t) = -\dfrac{D'(t)}{D(t)} + + where :math:`D` is the discount factor. + """ + pass + + @classmethod + @abstractmethod + def annuity_factor(cls, t: np.ndarray, *discount_args: np.ndarray) -> np.ndarray: + r"""The annuity factor. + + Parameters + ---------- + t : ndarray + Time. + *discount_args : ndarray + Extra arguments required by the discount model. + + Returns + ------- + ndarray + The annuity factor evaluated at `t`. + + Notes + ----- + + The annuity factor at time :math:`t` is defined by: + + .. math:: + + AF(t) = \int_0^t D(x) \mathrm{d}x + + where :math:`D` is the discount factor. + + It is used to compute the equivalent annual cost of continuous + discounted cash flows over the period :math:`[0, t]`. + """ + pass + + +class ExponentialDiscounting(Discount): + r"""Exponential discounting model. + + The exponetial discount factor is: + + .. math:: + + D(x) = e^{-\delta x} + + where :math:`\delta` is the `rate`. + """ + + @classmethod + def factor(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + return np.exp(-rate * t) + + @classmethod + def rate(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + return rate * np.ones_like(t) + + @classmethod + def annuity_factor(cls, t: np.ndarray, rate: np.ndarray = 0) -> np.ndarray: + mask = rate == 0 + rate = np.ma.MaskedArray(rate, mask) + return np.where(mask, t, (1 - np.exp(-rate * t)) / rate) + + +class HyperbolicDiscounting(Discount): + r"""Hyperbolic discounting model. + + The hyperbolic discount factor is: + + .. math:: + + D(x) = \dfrac{1}{1 + \beta x} + + where :math:`\beta>0`. + """ + + @classmethod + def factor(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + return 1 / (1 + beta * t) + + @classmethod + def rate(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + return beta / (1 + beta * t) + + @classmethod + def annuity_factor(cls, t: np.ndarray, beta: np.ndarray = 0) -> np.ndarray: + mask = beta == 0 + beta = np.ma.MaskedArray(beta, mask) + return np.where(mask, t, np.log1p(beta * t) / beta) + + +class GeneralizedHyperbolicDiscounting(Discount): + r"""Generalized hyperbolic discounting model. + + The generalized hyperbolic discount factor is: + + .. math:: + + D(x) = \dfrac{1}{(1 + \beta x)^\eta} + + where :math:`\beta,\eta >0`. + """ + + @classmethod + def factor( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + return 1 / (1 + beta * t) ** eta + + @classmethod + def rate( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + return beta * eta / (1 + beta * t) + + @classmethod + def annuity_factor( + cls, t: np.ndarray, beta: np.ndarray = 0, eta: np.ndarray = 1 + ) -> np.ndarray: + mask_beta = beta == 0 + mask_eta = eta == 1 + beta = np.ma.MaskedArray(beta, mask_beta) + eta = np.ma.MaskedArray(eta, mask_eta) + return np.where( + mask_eta, + HyperbolicDiscounting.annuity_factor(t, beta), + np.where( + mask_beta, t, ((1 + beta * t) ** (1 - eta) - 1) / (beta * (1 - eta)) + ), + ) diff --git a/relife/distribution.py b/relife/distribution.py new file mode 100644 index 0000000..dddd5cf --- /dev/null +++ b/relife/distribution.py @@ -0,0 +1,601 @@ +"""Parametric lifetime distribution.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from dataclasses import dataclass, fields +from typing import Tuple +import numpy as np +from scipy.optimize import Bounds +from scipy.special import exp1, gamma, gammaincc, gammainccinv, digamma + +from .data import LifetimeData +from .parametric import ParametricLifetimeModel +from .utils import MIN_POSITIVE_FLOAT, plot, shifted_laguerre + + +@dataclass +class ParametricLifetimeDistribution(ParametricLifetimeModel): + """Generic class for parametric lifetime distribution.""" + + @property + def n_params(self) -> int: + return len(fields(self)) + + @property + def _param_bounds(self) -> Bounds: + # return Bounds(*[(MIN_POSITIVE_FLOAT, None)] * len(fields(self))) + return Bounds( + np.full(self.n_params, MIN_POSITIVE_FLOAT), np.full(self.n_params, np.inf) + ) + + def _init_params(self, data: LifetimeData) -> np.ndarray: + params0 = np.ones(self.n_params) + params0[-1] = 1 / np.median(data.time) + return params0 + + def _set_params(self, params: np.ndarray) -> None: + for i, field in enumerate(fields(self)): + setattr(self, field.name, params[i]) + + def fit( + self, + time: np.ndarray, + event: np.ndarray = None, + entry: np.ndarray = None, + args: np.ndarray = (), + params0: np.ndarray = None, + method: str = None, + **kwargs, + ) -> ParametricLifetimeDistribution: + """Fit the parametric lifetime distribution to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + args : float or 2D array, optional + Extra arguments required by the parametric lifetime model. + params0 : 1D array, optional + Initial guess, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + **kwargs: dict, optional + Extra arguments to pass to the minimize method. + + Returns + ------- + self + Return the fitted distribution as the current object. + """ + data = LifetimeData(time, event, entry, args) + self._fit(data, params0, method=method, **kwargs) + return self + + def plot( + self, + timeline: np.ndarray = None, + args: Tuple[np.ndarray] = (), + alpha_ci: float = 0.05, + fname: str = "sf", + **kwargs, + ) -> None: + r"""Plot functions of the distribution model. + + Parameters + ---------- + timeline : 1D array, optional + Timeline of the plot (x-axis), by default guessed by the millile. + args : Tuple[ndarray], optional + Extra arguments required by the parametric lifetime model, by + default (). + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + fname : str, optional + Name of the function to be plotted, by default 'sf'. Should be one + of: + + - 'sf': survival function, + - 'cdf': cumulative distribution function, + - 'chf': cumulative hazard function, + - 'hf': hazard function, + - 'pdf': probability density function. + + **kwargs : dict, optional + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + Raises + ------ + ValueError + If `fname` value is not among 'sf', 'cdf', 'chf', 'hf' or 'pdf'. + """ + flist = ["sf", "cdf", "chf", "hf", "pdf"] + if fname not in flist: + raise ValueError( + "Function name '{}' is not supported for plotting, `fname` must be in {}".format( + fname, flist + ) + ) + if timeline is None: + timeline = np.linspace(0, self.isf(1e-3), 200) + f = getattr(self, "_" + fname) + jac_f = getattr(self, "_jac_" + fname) + y = f(self.params, timeline, *args) + if alpha_ci is not None and hasattr(self, "result"): + i0 = 0 + se = np.empty_like(timeline, float) + if timeline[0] == 0: + i0 = 1 + se[0] = 0 + se[i0:] = self.result.standard_error( + jac_f(self.result.opt.x, timeline[i0:].reshape(-1, 1), *args) + ) + else: + se = None + label = kwargs.pop("label", self.__class__.__name__) + bounds = (0, 1) if fname in ["sf", "cdf"] else (0, np.inf) + plot(timeline, y, se, alpha_ci, bounds=bounds, label=label, **kwargs) + + +@dataclass +class Exponential(ParametricLifetimeDistribution): + r"""Exponential parametric lifetime distribution. + + The exponential distribution is a 1-parameter distribution with + :math:`(\lambda)`. The probability density function is: + + .. math:: + + f(t) = \lambda e^{-\lambda t} + + where: + + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + rate = params[0] + return rate * t + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + rate = params[0] + return rate * np.ones_like(t) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.zeros_like(t) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.ones((t.size, 1)) * t + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + return np.ones((t.size, 1)) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + rate = params[0] + return v / rate + + def mean(self) -> np.ndarray: + rate = self.params[0] + return 1 / rate + + def var(self) -> np.ndarray: + rate = self.params[0] + return 1 / rate**2 + + def mrl(self, t: np.ndarray) -> np.ndarray: + rate = self.params[0] + return 1 / rate * np.ones_like(t) + + +@dataclass +class Weibull(ParametricLifetimeDistribution): + r"""Weibull parametric lifetime distribution. + + The Weibull distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = c \lambda^c t^{c-1} e^{-(\lambda t)^c} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return (rate * t) ** c + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * rate * (rate * t) ** (c - 1) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * (c - 1) * rate**2 * (rate * t) ** (c - 2) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + (np.log(rate * t) * (rate * t) ** c, c * t * (rate * t) ** (c - 1)) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + ( + rate * (rate * t) ** (c - 1) * (1 + c * np.log(rate * t)), + c**2 * (rate * t) ** (c - 1), + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return v ** (1 / c) / rate + + def mean(self) -> np.ndarray: + c, rate = self.params + return gamma(1 + 1 / c) / rate + + def mrl(self, t: np.ndarray) -> np.ndarray: + c, rate = self.params + return ( + gamma(1 / c) / (rate * c * self.sf(t)) * gammaincc(1 / c, (rate * t) ** c) + ) + + def var(self) -> np.ndarray: + c, rate = self.params + return gamma(1 + 2 / c) / rate**2 - self.mean() ** 2 + + +@dataclass +class Gompertz(ParametricLifetimeDistribution): + r"""Gompertz parametric lifetime distribution. + + The Gompertz distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = c \lambda e^{\lambda t} e^{ -c \left( e^{\lambda t}-1 \right) } + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _init_params(self, data: LifetimeData) -> np.ndarray: + rate = np.pi / (np.sqrt(6) * np.std(data.time)) + c = np.exp(-rate * np.mean(data.time)) + return np.array([c, rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * np.expm1(rate * t) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * rate * np.exp(rate * t) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return c * (rate) ** 2 * np.exp(rate * t) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack((np.expm1(rate * t), c * t * np.exp(rate * t))) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return np.column_stack( + (rate * np.exp(rate * t), c * np.exp(rate * t) * (1 + rate * t)) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return 1 / rate * np.log1p(v / c) + + def mean(self) -> np.ndarray: + c, rate = self.params + return np.exp(c) * exp1(c) / rate + + def mrl(self, t: np.ndarray) -> np.ndarray: + c, rate = self.params + z = c * np.exp(rate * t) + return np.exp(z) * exp1(z) / rate + + +@dataclass +class Gamma(ParametricLifetimeDistribution): + r"""Gamma parametric lifetime distribution. + + The Gamma distribution is a 2-parameter distribution with + :math:`(c,\lambda)`. The probability density function is: + + .. math:: + + f(t) = \frac{\lambda^c t^{c-1} e^{-\lambda t}}{\Gamma(c)} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None # shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @staticmethod + def _uppergamma(c: np.ndarray, x: np.ndarray) -> np.ndarray: + return gammaincc(c, x) * gamma(c) + + @staticmethod + def _jac_uppergamma_c(c: np.ndarray, x: np.ndarray) -> np.ndarray: + return shifted_laguerre(lambda s: np.log(s) * s ** (c - 1), x, ndim=np.ndim(x)) + + @property + def _default_hess_scheme(self): + return "2-point" + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.log(gamma(c)) - np.log(self._uppergamma(c, x)) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return rate * x ** (c - 1) * np.exp(-x) / self._uppergamma(c, x) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + return self._hf(params, t) * ((c - 1) / t - rate + self._hf(params, t)) + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + digamma(c) - self._jac_uppergamma_c(c, x) / self._uppergamma(c, x), + x ** (c - 1) * t * np.exp(-x) / self._uppergamma(c, x), + ) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return ( + x ** (c - 1) + * np.exp(-x) + / self._uppergamma(c, x) ** 2 + * np.column_stack( + ( + rate * np.log(x) * self._uppergamma(c, x) + - rate * self._jac_uppergamma_c(c, x), + (c - x) * self._uppergamma(c, x) + x**c * np.exp(-x), + ) + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return 1 / rate * gammainccinv(c, np.exp(-v)) + + def mean(self) -> np.ndarray: + c, rate = self.params + return c / rate + + def var(self, params: np.ndarray) -> np.ndarray: + c, rate = params + return c / (rate**2) + + +@dataclass +class LogLogistic(ParametricLifetimeDistribution): + r"""Log-logistic parametric lifetime distribution. + + The Log-logistic distribution is defined as a 2-parameter distribution + :math:`(c, \lambda)`. The probability density function is: + + .. math:: + + f(t) = \frac{c \lambda^c t^{c-1}}{(1+(\lambda t)^{c})^2} + + where: + + - :math:`c > 0`, the shape parameter, + - :math:`\lambda > 0`, the rate parameter, + - :math:`t\geq 0`, the operating time, age, cycles, etc. + """ + + c: float = None #: shape parameter + rate: float = None #: rate parameter (inverse of scale) + + @property + def params(self) -> np.ndarray: + return np.array([self.c, self.rate]) + + def _chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.log(1 + x**c) + + def _hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return c * rate * x ** (c - 1) / (1 + x**c) + + def _dhf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return c * rate**2 * x ** (c - 2) * (c - 1 - x**c) / (1 + x**c) ** 2 + + def _jac_chf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + (x**c / (1 + x**c)) * np.log(rate * t), + (x**c / (1 + x**c)) * (c / rate), + ) + ) + + def _jac_hf(self, params: np.ndarray, t: np.ndarray) -> np.ndarray: + c, rate = params + x = rate * t + return np.column_stack( + ( + (rate * x ** (c - 1) / (1 + x**c) ** 2) + * (1 + x**c + c * np.log(rate * t)), + (rate * x ** (c - 1) / (1 + x**c) ** 2) * (c**2 / rate), + ) + ) + + def _ichf(self, params: np.ndarray, v: np.ndarray) -> np.ndarray: + c, rate = params + return ((np.exp(v) - 1) ** (1 / c)) / rate + + def mean(self) -> np.ndarray: + c, rate = self.params + b = np.pi / c + if c > 1: + return b / (rate * np.sin(b)) + else: + raise ValueError(f"Expectancy only defined for c > 1: c = {c}") + + def var(self) -> np.ndarray: + c, rate = self.params + b = np.pi / c + if c > 2: + return (1 / rate**2) * (2 * b / np.sin(2 * b) - b**2 / (np.sin(b) ** 2)) + else: + raise ValueError(f"Variance only defined for c > 2: c = {c}") + + +@dataclass +class MinimumDistribution(ParametricLifetimeDistribution): + r"""Series structure of n identical and independent components. + + The hazard function of the system is given by: + + .. math:: + + h(t) = n \cdot h_0(t) + + where :math:`h_0` is the baseline hazard function of the components. + + Examples + -------- + + Computing the survival (or reliability) function for 3 structures of 3,6 and + 9 identical and idependent components: + + .. code-block:: + + model = MinimumDistribution(Weibull(2, 0.05)) + t = np.arange(0, 10, 0.1) + n = np.array([3, 6, 9]).reshape(-1, 1) + model.sf(t, n) + """ + + baseline: ParametricLifetimeDistribution #: Underlying lifetime model of the components. + + @property + def _default_hess_scheme(self) -> str: + return self.baseline._default_hess_scheme + + @property + def params(self) -> np.ndarray: + return self.baseline.params + + @property + def n_params(self) -> int: + return self.baseline.n_params + + @property + def _param_bounds(self) -> Bounds: + return self.baseline._param_bounds + + def _set_params(self, params: np.ndarray) -> None: + self.baseline._set_params(params) + + def _chf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._chf(params, t, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._hf(params, t, *args) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._dhf(params, t, *args) + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._jac_chf(params, t, *args) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return n * self.baseline._jac_hf(params, t, *args) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, n: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + return self.baseline._ichf(params, v / n, *args) diff --git a/relife/model.py b/relife/model.py new file mode 100644 index 0000000..77c37f7 --- /dev/null +++ b/relife/model.py @@ -0,0 +1,663 @@ +"""Generic lifetime models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +from dataclasses import dataclass +import numpy as np +import scipy.optimize as optimize +from typing import Callable + +from .utils import args_size, args_ndim, gauss_legendre, quad_laguerre + + +class LifetimeModel(ABC): + """Generic lifetime model. + + Abstract class for lifetime models, with basic functions pertaining to + statiscal distributions. + """ + + @abstractmethod + def support_upper_bound(self, *args: np.ndarray) -> np.ndarray: + """Support upper bound of the lifetime model. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The support upper bound of the lifetime model with respect to the extra arguments. + """ + pass + + @abstractmethod + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Survival (or reliability) function of the lifetime model. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The survival function evaluated at `t` with extra arguments `args`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Probability density function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The probability density function evaluated at `t` with extra arguments `args`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse survival function. + + Parameters + ---------- + p : float or 1D array + Probability. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Complement quantile corresponding to `p`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(p),) + """ + pass + + @abstractmethod + def ls_integrate( + self, func: Callable, a: np.ndarray, b: np.ndarray, *args: np.ndarray, **kwargs + ) -> np.ndarray: + r"""Lebesgue-Stieltjes integration. + + The Lebesgue-Stieljes intregration of a function with respect to the + lifetime model taking into account the probability density function and + jumps. + + Parameters + ---------- + func : Callable + Function or method to integrate on interval [a,b] integrated with + respect to the lifetime model. + a : float or 1D array + Lower bound of integration. + b : float or 1D array + Upper bound of integration (use numpy.inf for +infinity). + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + **kwargs: int or float + Extra keyword arguments required for the Lebesgue-Stieljes + integration. + + Returns + ------- + float or ndarray + Lebesgue-Stieltjes integral of func with respect to `cdf` from `a` + to `b`. + + Notes + ----- + The Lebesgue-Stieltjes integral is: + + .. math:: + + \int_a^b g(x) \mathrm{d}F(x) = \int_a^b g(x) f(x)\mathrm{d}x + + \sum_i g(a_i) w_i + + where: + + - :math:`F` is the cumulative distribution function, + - :math:`f` the probability density function of the lifetime model, + - :math:`a_i` and :math:`w_i` are the points and weights of the jumps. + + .. [1] Resnick, S. I. (1992). Adventures in stochastic processes. + Springer Science & Business Media. p176. + """ + pass + + def cdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Cumulative distribution function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Cumulative distribution function at `t` with extra `args` . + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + return 1 - self.sf(t, *args) + + def rvs( + self, *args: np.ndarray, size: int = 1, random_state: int = None + ) -> np.ndarray: + """Random variable sampling. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + size : int, optional + Size of sample, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + float or ndarray + Sample of random variates with shape[-1]=size. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (size,) + """ + if len(args) > 0: + size = (args_size(*args), size) + u = np.random.RandomState(seed=random_state).uniform(size=size) + return self.isf(u, *args) + + def ppf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Percent point function. + + The `ppf` is the inverse of `cdf`. + + Parameters + ---------- + p : float or 1D array + Probability. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Quantile corresponding to `p`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(p),) + """ + return self.isf(1 - p, *args) + + def median(self, *args: np.ndarray) -> np.ndarray: + """Median of the distribution. + + The median is the `ppf` evaluated at 0.5. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The median of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.ppf(0.5, *args) + + def moment(self, n: int, *args: np.ndarray) -> np.ndarray: + """N-th order moment of the distribution. + + The n-th order moment is the Lebegue-Stieljes integral of x**n with + respect to the `cdf`. + + Parameters + ---------- + n : int, n >=1 + Order of moment. + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + N-th order moment of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + ub = self.support_upper_bound(*args) + return self.ls_integrate(lambda x: x**n, 0, ub, *args, ndim=args_ndim(*args)) + + def mean(self, *args: np.ndarray) -> np.ndarray: + """Mean of the distribution. + + The mean of a distribution is the moment of the first order. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Mean of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.moment(1, *args) + + def var(self, *args: np.ndarray) -> np.ndarray: + """Variance of the distribution. + + Parameters + ---------- + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + Variance of the distribution. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (1,) + """ + return self.moment(2, *args) - self.moment(1, *args) ** 2 + + def mrl(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + r"""Mean residual life. + + The mean residual life for an asset aged `t` is the mean of the lifetime + distribution truncated at `t` on the interval `[t,ub)`. + + Parameters + ---------- + t : float or 1D array + Age of the asset + + *args : float or 2D array, optional + Extra arguments required by the lifetime model. + + Returns + ------- + float or ndarray + The mean residual life of assets at age `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),). + + The mean residual life is: + + .. math:: + + \mu(t) = \dfrac{\int_t^{\infty} (x - t) \mathrm{d}F(x)}{S(t)} + + where + :math:`F` is the cumulative distribution function and + :math:`S` is the survival function. + """ + ndim = args_ndim(t, *args) + ub = self.support_upper_bound(*args) + mask = t >= ub + if np.any(mask): + t, ub = np.broadcast_arrays(t, ub) + t = np.ma.MaskedArray(t, mask) + ub = np.ma.MaskedArray(ub, mask) + mu = self.ls_integrate(lambda x: x - t, t, ub, *args, ndim=ndim) / self.sf( + t, *args + ) + return np.ma.filled(mu, 0) + + +@dataclass +class AgeReplacementModel(LifetimeModel): + r"""Age replacement model. + + Lifetime model where the asset is replaced at age `ar`. + + Notes + ----- + This is equivalent to the distribution of :math:`\min(X,a_r)` where + :math:`X` is a baseline lifetime model and ar the age of replacement. + """ + + baseline: LifetimeModel #: Underlying lifetime model of the asset. + + def support_upper_bound(self, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.minimum(ar, self.baseline.support_upper_bound(*args)) + + def sf(self, t: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.where(t < ar, self.baseline.sf(t, *args), 0) + + def pdf(self, t: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.where(t < ar, self.baseline.pdf(t, *args), 0) + + def isf(self, p: np.ndarray, ar: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.minimum(self.baseline.isf(p, *args), ar) + + def ls_integrate( + self, + func: Callable, + a: np.ndarray, + b: np.ndarray, + ar: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100 + ) -> np.ndarray: + ub = self.support_upper_bound(ar, *args) + b = np.minimum(ub, b) + f = lambda x, *args: func(x) * self.baseline.pdf(x, *args) + w = np.where(b == ar, func(ar) * self.baseline.sf(ar, *args), 0) + return gauss_legendre(f, a, b, *args, ndim=ndim, deg=deg) + w + + +class HazardFunctions(ABC): + """Generic hazard functions. + + Abstract class for the definition of a hazard functions: hazard rate, + cumulative hazard function, and inverse cumulative hazard function. + """ + + @abstractmethod + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Hazard function (or hazard rate). + + The hazard function is the derivative of the cumulative hazard function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or 1D array + Hazard rate at `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Cumulative hazard function. + + The cumulative hazard function is the integral of the hazard function. + + Parameters + ---------- + t : float or 1D array + Elapsed time. + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or ndarray + Cumulative hazard function at `t`. + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + @abstractmethod + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse cumulative hazard function. + + Parameters + ---------- + v : float or 1D array + Cumulative hazard rate + *args : float or 2D array, optional + Extra arguments required by the hazard function. + + Returns + ------- + float or ndarray + + Notes + ----- + If `args` are of type ndarray, the arrays should be broadcastable with :code:`shape[-1]=1`. + + The shape of the result will be: + + .. code-block:: + + np.broadcast_shapes(*(np.shape(arg) for arg in args))[:-1] + (np.size(t),) + """ + pass + + +class AbsolutelyContinuousLifetimeModel(LifetimeModel, HazardFunctions): + """Absolutely continuous lifetime model. + + Abstract class that implements LifetimeModel with HazardFunctions. + """ + + def support_upper_bound(self, *args: np.ndarray) -> float: + return np.inf + + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return np.exp(-self.chf(t, *args)) + + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.hf(t, *args) * self.sf(t, *args) + + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.ichf(-np.log(p), *args) + + def ls_integrate( + self, + func: Callable, + a: np.ndarray, + b: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100, + q0: float = 1e-4 + ) -> np.ndarray: + ub = self.support_upper_bound(*args) + b = np.minimum(ub, b) + f = lambda x, *args: func(x) * self.pdf(x, *args) + if np.all(np.isinf(b)): + b = self.isf(q0, *args) + res = quad_laguerre(f, b, *args, ndim=ndim, deg=deg) + else: + res = 0 + return gauss_legendre(f, a, b, *args, ndim=ndim, deg=deg) + res + + +@dataclass +class LeftTruncated(AbsolutelyContinuousLifetimeModel): + """Left truncation of an absolutely continuous lifetime model. + + Conditional distribution of the lifetime model for an asset having reach age `a0`. + """ + + baseline: AbsolutelyContinuousLifetimeModel #: Underlying absolutely continuous lifetime model of the asset. + + def chf(self, t: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.chf(a0 + t, *args) - self.baseline.chf(a0, *args) + + def hf(self, t: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.hf(a0 + t, *args) + + def ichf(self, v: np.ndarray, a0: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.ichf(v + self.baseline.chf(a0, *args), *args) - a0 + + +@dataclass +class EquilibriumDistribution(AbsolutelyContinuousLifetimeModel): + """Equilibrium distribution of a lifetime model. + + The equilibirum distribution is the distrbution computed from a lifetime + model that makes the associated delayed renewal process stationary [1]_. + + .. [1] Ross, S. M. (1996). Stochastic processes. New York: Wiley. + """ + + baseline: LifetimeModel #: Underlying lifetime model of the asset. + + def support_upper_bound(self, *args: np.ndarray) -> np.ndarray: + return self.baseline.support_upper_bound(*args) + + def sf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return 1 - self.cdf(t, *args) + + def cdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + ndim = args_ndim(t, *args) + return gauss_legendre( + self.baseline.sf, 0, t, *args, ndim=ndim + ) / self.baseline.mean(*args) + + def pdf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.baseline.sf(t, *args) / self.baseline.mean(*args) + + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return 1 / self.baseline.mrl(t, *args) + + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return -np.log(self.sf(t, *args)) + + def isf(self, p: np.ndarray, *args: np.ndarray) -> np.ndarray: + f = lambda t, *args: self.sf(t, *args) - p + t = optimize.newton(f, self.baseline.isf(p, *args), args=args) + return t + + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self.isf(np.exp(-v), *args) diff --git a/relife/nonparametric.py b/relife/nonparametric.py new file mode 100644 index 0000000..3d198b9 --- /dev/null +++ b/relife/nonparametric.py @@ -0,0 +1,352 @@ +"""Non-parametric estimator for survival analysis.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from typing import Tuple +import numpy as np + +from .data import LifetimeData +from .utils import plot + + +def _estimate(data: LifetimeData) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + r"""Counting failures and assets at risks + + Counts the number of failures and assets at risk sorted along the timeline + of unique times, needed to compute the Kaplan-Meier and Nelson-Aalen + estimators. + + Parameters + ---------- + data : LifetimeData + The lifetime data. + + Returns + ------- + Tuple[1D array, 1D array, 1D array] + timeline : sorted unique time-to-event. + d : number of failures. + n : number of assets at risk + + Raises + ------ + ValueError + If `data.event` type is not 0 or 1. + + Notes + ----- + For :math:`N` the unique times in timeline: + + .. math:: + + \begin{align*} + d_j &= \sum_{i=1}^N \delta_i \mathbbm{1}_{\{t_j = t_i\}} \\ n_j &= + \sum_{i=1}^N \mathbbm{1}_{\{t_j \leq t_i\}} + \end{align*} + + """ + if not np.all(np.isin(data.event, [0, 1])): + raise ValueError("event values must be in [0,1]") + timeline, inv, counts = np.unique( + data.time, return_inverse=True, return_counts=True + ) + d = np.zeros_like(timeline, int) + np.add.at(d, inv, data.event) + x_in = np.histogram(data.entry, np.insert(timeline, 0, 0))[0] + x_out = np.insert(counts[:-1], 0, 0) + n = np.cumsum(x_in - x_out) + return timeline, d, n + + +class ECDF: + """Empirical Cumulative Distribution Function.""" + + def fit(self, time: np.ndarray) -> ECDF: + """Fit the empirical cumuative distribution function. + + Parameters + ---------- + time : 1D array + Failure times. + + Returns + ------- + ECDF + Return the fitted empirical estimate as the current object. + + """ + + data = LifetimeData(time) + self.n_samples = data.size + x1, n1 = np.unique(data.time, return_counts=True) + self.timeline = np.insert(x1, 0, 0) + self.cdf = np.insert(np.cumsum(n1), 0, 0) / np.sum(n1) + self.sf = 1 - self.cdf + self.se = np.sqrt(self.cdf * (1 - self.cdf) / self.n_samples) + return self + + def plot( + self, alpha_ci: float = 0.05, fname: str = "cdf", **kwargs: np.ndarray + ) -> None: + r"""Plot the empirical cumulative distribution function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + fname : str, optional + Name of the function to be plotted, by default 'cdf'. Should be one + of: + + - 'sf' : survival function, + - 'cdf': cumulative distribution function. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + Raises + ------ + ValueError + If `fname` value is not 'sf' or 'cdf'. + + """ + flist = ["sf", "cdf"] + if fname in flist: + y = getattr(self, fname) + else: + raise ValueError( + "Function name '{}' is not supported for plotting, 'fname' must be in {}".format( + fname, flist + ) + ) + label = "ECDF" + plot( + self.timeline, + y, + self.se, + alpha_ci, + bounds=(0, 1), + label=label, + drawstyle="steps-post", + **kwargs, + ) + + +class KaplanMeier: + r"""Kaplan-Meier Estimator. + + Compute the non-parametric Kaplan-Meier estimator (also known as the product + limit estimator) of the survival function from lifetime data. + + Notes + ----- + For a given time instant :math:`t` and :math:`n` total observations, this + estimator is defined as: + + .. math:: + + \hat{S}(t) = \prod_{i: t_i \leq t} \left( 1 - \frac{d_i}{n_i}\right) + + where :math:`d_i` is the number of failures until :math:`t_i` and + :math:`n_i` is the number of assets at risk just prior to :math:`t_i`. + + The variance estimation is obtained by: + + .. math:: + + \widehat{Var}[\hat{S}(t)] = \hat{S}(t)^2 \sum_{i: t_i \leq t} + \frac{d_i}{n_i(n_i - d_i)} + + which is often referred to as Greenwood's formula. + + References + ---------- + .. [1] Lawless, J. F. (2011). Statistical models and methods for lifetime + data. John Wiley & Sons. + + .. [2] Kaplan, E. L., & Meier, P. (1958). Nonparametric estimation from + incomplete observations. Journal of the American statistical + association, 53(282), 457-481. + + """ + + def fit( + self, time: np.ndarray, event: np.ndarray = None, entry: np.ndarray = None + ) -> KaplanMeier: + """Fit the Kaplan-Meier estimator to a time, event and entry arrays. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + + Returns + ------- + KaplanMeier + Return the fitted Kaplan-Meier estimator as the current object. + + """ + data = LifetimeData(time, event, entry) + timeline, d, n = _estimate(data) + # [1] eq (3.2.2) + s = np.cumprod(1 - d / n) + with np.errstate(divide="ignore"): + # [1] eq (3.2.3) + var = s**2 * np.cumsum(np.where(n > d, d / (n * (n - d)), 0)) + self.timeline = np.insert(timeline, 0, 0) + self.sf = np.insert(s, 0, 1) + self.se = np.sqrt(np.insert(var, 0, 0)) + return self + + def plot(self, alpha_ci: float = 0.05, **kwargs) -> None: + r"""Plot the Kaplan-Meier estimator of the survival function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + """ + label = kwargs.pop("label", "Kaplan-Meier") + plot( + self.timeline, + self.sf, + self.se, + alpha_ci, + bounds=(0, 1), + label=label, + drawstyle="steps-post", + **kwargs, + ) + + +class NelsonAalen: + r"""Nelson-Aalen Estimator. + + Compute the non-parametric Nelson-Aalen estimator of the cumulative hazard + function from lifetime data. + + Notes + ----- + For a given time instant :math:`t` and :math:`n` total observations, this + estimator is defined as: + + .. math:: + + \hat{H}(t) = \sum_{i: t_i \leq t} \frac{d_i}{n_i} + + where :math:`d_i` is the number of failures until :math:`t_i` and + :math:`n_i` is the number of assets at risk just prior to :math:`t_i`. + + The variance estimation is obtained by: + + .. math:: + + \widehat{Var}[\hat{H}(t)] = \sum_{i: t_i \leq t} \frac{d_i}{n_i^2} + + Note that the alternative survivor function estimate: + + .. math:: + + \tilde{S}(t) = \exp{(-\hat{H}(t))} + + is sometimes suggested for the continuous-time case. + + References + ---------- + .. [1] Lawless, J. F. (2011). Statistical models and methods for lifetime + data. John Wiley & Sons. + """ + + def fit( + self, time: np.ndarray, event: np.ndarray = None, entry: np.ndarray = None + ) -> NelsonAalen: + """Fit the Nelson-Aalen estimator to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + + Returns + ------- + NelsonAalen + The fitted Nelson-Aalen estimator as the current object. + + """ + data = LifetimeData(time, event, entry) + timeline, d, n = _estimate(data) + # [1] eq (3.2.13) + s = np.cumsum(d / n) + # [1] eq (3.2.15) + var = np.cumsum(d / np.where(n == 0, 1, n**2)) + self.timeline = np.insert(timeline, 0, 0) + self.chf = np.insert(s, 0, 0) + self.se = np.sqrt(np.insert(var, 0, 0)) + return self + + def plot(self, alpha_ci: float = 0.05, **kwargs: np.ndarray) -> None: + r"""Plot the Nelson-Aalen estimator of the cumulative hazard function. + + Parameters + ---------- + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` + confidence interval, by default 0.05 corresponding to the 95\% + confidence interval. If set to None or if the model has not been + fitted, no confidence interval is plotted. + + **kwargs : + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + """ + label = kwargs.pop("label", "Nelson-Aalen") + plot( + self.timeline, + self.chf, + self.se, + alpha_ci, + bounds=(0, np.inf), + label=label, + drawstyle="steps-post", + **kwargs, + ) diff --git a/relife/parametric.py b/relife/parametric.py new file mode 100644 index 0000000..ed74263 --- /dev/null +++ b/relife/parametric.py @@ -0,0 +1,424 @@ +"""Generic parametric models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import abstractmethod +from dataclasses import dataclass, field, asdict +import numpy as np +from scipy.optimize import minimize, Bounds, OptimizeResult +from scipy.optimize.optimize import approx_fprime + +from .data import LifetimeData +from .model import HazardFunctions, AbsolutelyContinuousLifetimeModel + + +class ParametricHazardFunctions(HazardFunctions): + """Generic parametric hazard functions. + + Generic class for the parametric hazard functions with a fitting method based + on the maximum likelihood estimator. + """ + + _default_method: str = ( + "L-BFGS-B" #: Default method for minimizing the negative log-likelihood. + ) + _default_hess_scheme: str = "cs" #: Default method for evaluating the hessian of the negative log-likelihood. + + @property + @abstractmethod + def params(self) -> np.ndarray: + """Parameters of the hazard functions.""" + pass + + @property + @abstractmethod + def n_params(self) -> int: + """Number of parameters.""" + pass + + @property + @abstractmethod + def _param_bounds(self) -> Bounds: + """Bounds of the parameters for the fit.""" + pass + + @abstractmethod + def _set_params(self, params: np.ndarray) -> None: + """Sets the parameters after the fit.""" + + pass + + @abstractmethod + def _init_params(self, data: LifetimeData) -> np.ndarray: + """Initial guess for the fit.""" + pass + + @abstractmethod + def _chf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric cumulative hazard function.""" + pass + + @abstractmethod + def _hf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric hazard function.""" + pass + + @abstractmethod + def _dhf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Derivative of the parametric hazard function with repspect to t.""" + pass + + @abstractmethod + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric cumulative hazard function with respect to params.""" + pass + + @abstractmethod + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric hazard function with respect to params.""" + pass + + @abstractmethod + def _ichf(self, params: np.ndarray, x: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Inverse of the parametric cumulative hazard function.""" + pass + + def chf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._chf(self.params, t, *args) + + def hf(self, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._hf(self.params, t, *args) + + def ichf(self, v: np.ndarray, *args: np.ndarray) -> np.ndarray: + return self._ichf(self.params, v, *args) + + def _negative_log_likelihood( + self, params: np.ndarray, data: LifetimeData + ) -> np.ndarray: + """Negative log-likelihood function. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + + Returns + ------- + float + The negative log-likelihood for the lifetime `data` evaluated at + `params`. + """ + return ( + -np.sum(np.log(self._hf(params, data._time.D, *data._args.D))) + + np.sum(self._chf(params, data._time.D_RC, *data._args.D_RC)) + - np.sum(self._chf(params, data._time.LT, *data._args.LT)) + - np.sum( + np.log(-np.expm1(-self._chf(params, data._time.LC, *data._args.LC))) + ) + ) + + def _jac_negative_log_likelihood( + self, params: np.ndarray, data: LifetimeData + ) -> np.ndarray: + """Jacobian of the negative log-likelihood function. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + + Returns + ------- + 1D array + The Jacobian of the negative log-likelihood evaluated at `params` with + `data`. + """ + return ( + -np.sum( + self._jac_hf(params, data._time.D, *data._args.D) + / self._hf(params, data._time.D, *data._args.D), + axis=0, + ) + + np.sum(self._jac_chf(params, data._time.D_RC, *data._args.D_RC), axis=0) + - np.sum(self._jac_chf(params, data._time.LT, *data._args.LT), axis=0) + - np.sum( + self._jac_chf(params, data._time.LC, *data._args.LC) + / np.expm1(self._chf(params, data._time.LC, *data._args.LC)), + axis=0, + ) + ) + + def _hess_negative_log_likelihood( + self, + params: np.ndarray, + data: LifetimeData, + eps: float = 1e-6, + scheme: str = None, + ) -> np.ndarray: + """Hessian of the negative log-likelihood. + + Parameters + ---------- + params : 1D array + Parameters of the hazard functions. + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + eps : float, optional + Increment to params for computing the numerical approximation, + by default 1e-6. + scheme : str, optional + Approximation method for computing the hessian matrix, 2 options: + + - "cs" (Complex Step derivative approximation) + - "2-point" (Finite-Difference approximation) + + by default None. + + Returns + ------- + 2D array + The Hessian of the negative log-likelihood. + + Raises + ------ + ValueError + If the scheme argument is not 'cs' or '2-point'. + """ + size = np.size(params) + hess = np.empty((size, size)) + + if scheme is None: + scheme = self._default_hess_scheme + + if scheme == "cs": + u = eps * 1j * np.eye(size) + for i in range(size): + for j in range(i, size): + hess[i, j] = ( + np.imag( + self._jac_negative_log_likelihood(params + u[i], data)[j] + ) + / eps + ) + if i != j: + hess[j, i] = hess[i, j] + + elif scheme == "2-point": + for i in range(size): + hess[i] = approx_fprime( + params, + lambda params: self._jac_negative_log_likelihood(params, data)[i], + eps, + ) + + else: + raise ValueError("scheme argument must be 'cs' or '2-point'") + + return hess + + def _fit( + self, + data: LifetimeData, + params0: np.ndarray = None, + method: str = None, + eps: float = 1e-6, + hess_scheme: str = None, + **kwargs, + ) -> None: + """Maximum likelihood estimation of the parameters + + Fit a parametric hazard function to lifetime data, by minimizing the + negative log-likelihood. + + Parameters + ---------- + data : LifetimeData + Lifetime data with time, event, entry and args attributes. + params0 : 1D array, optional + Initial guess for the parameters, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + eps : float, optional + Increment to params for computing the numerical approximation, + by default 1e-6. + hess_scheme : str, optional + Approximation method for computing the hessian matrix, 2 options: + + - "cs" (Complex Step derivative approximation) + - "2-point" (Finite-Difference approximation), + + by default None. + + Raises + ------ + ValueError + If `params0` size does not match the expected size of the hazard + functions parameters. + """ + if params0 is not None: + params0 = np.asanyarray(params0, float) + if self.n_params != params0.size: + raise ValueError( + f"Wrong dimension for params0, expected {self.n_params} got {params0.size}" + ) + else: + params0 = self._init_params(data) + if method is None: + method = self._default_method + jac = kwargs.pop("jac", self._jac_negative_log_likelihood) + bounds = kwargs.pop("bounds", self._param_bounds) + opt = minimize( + self._negative_log_likelihood, + params0, + args=(data), + method=method, + jac=jac, + bounds=bounds, + **kwargs, + ) + jac = self._jac_negative_log_likelihood(opt.x, data) + var = np.linalg.inv( + self._hess_negative_log_likelihood(opt.x, data, eps, hess_scheme) + ) + self._set_params(opt.x) + self._set_fitting_result(opt, jac, var, data) + + def _set_fitting_result( + self, opt, jac: np.ndarray, var: np.ndarray, data: LifetimeData + ) -> None: + """Set the fitting result. + + Create a `result` attribute which store fitting information in an + instance of FittingResult. + + Parameters + ---------- + opt : OptimizeResult + Represents the optimization result (see + scipy.optimize.OptimizeResult documentation). + jac : 1D array + Jacobian of the negative log-likelihood of the data. + var : 2D array + Covariance matrix (computed as the inverse of the Hessian matrix). + data : LifetimeData + Lifetime data used for the fit. + """ + self.result = FittingResult(opt, jac, var, data.size) + + +@dataclass +class FittingResult: + """Fitting results of the parametric model.""" + + opt: OptimizeResult = field( + repr=False + ) #: Optimization result (see scipy.optimize.OptimizeResult doc). + jac: np.ndarray = field( + repr=False + ) #: Jacobian of the negative log-likelihood with the lifetime data. + var: np.ndarray = field( + repr=False + ) #: Covariance matrix (computed as the inverse of the Hessian matrix) + se: np.ndarray = field( + init=False, repr=False + ) #: Standard error, square root of the diagonal of the covariance matrix. + n_samples: int #: Number of observations (samples). + n_params: int = field(init=False) #: Number of parameters. + AIC: float = field(init=False) #: Akaike Information Criterion. + AICc: float = field( + init=False + ) #: Akaike Information Criterion with a correction for small sample sizes. + BIC: float = field(init=False) #: Bayesian Information Criterion. + + def __post_init__(self): + self.se = np.sqrt(np.diag(self.var)) + self.n_params = self.opt.x.size + self.AIC = 2 * self.n_params + 2 * self.opt.fun + self.AICc = self.AIC + 2 * self.n_params * (self.n_params + 1) / ( + self.n_samples - self.n_params - 1 + ) + self.BIC = np.log(self.n_samples) * self.n_params + 2 * self.opt.fun + + def standard_error(self, jac_f: np.ndarray) -> np.ndarray: + """Standard error estimation function. + + Parameters + ---------- + jac_f : 1D array + The Jacobian of a function f with respect to params. + + Returns + ------- + 1D array + Standard error for f(params). + + References + ---------- + .. [1] Meeker, W. Q., Escobar, L. A., & Pascual, F. G. (2022). + Statistical methods for reliability data. John Wiley & Sons. + """ + # [1] equation B.10 in Appendix + return np.sqrt(np.einsum("ni,ij,nj->n", jac_f, self.var, jac_f)) + + def asdict(self) -> dict: + """converts FittingResult into a dictionary. + + Returns + ------- + dict + Returns the fitting result as a dictionary. + """ + return asdict(self) + + +class ParametricLifetimeModel( + ParametricHazardFunctions, AbsolutelyContinuousLifetimeModel +): + """Parametric lifetime model.""" + + def _sf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric survival function.""" + return np.exp(-self._chf(params, t, *args)) + + def _cdf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric cumulative distribution function.""" + return 1 - self._sf(params, t, *args) + + def _pdf(self, params: np.ndarray, t: np.ndarray, *args: np.ndarray) -> np.ndarray: + """Parametric probability density function.""" + return self._hf(params, t, *args) * self._sf(params, t, *args) + + def _jac_sf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric survival function with respect to params.""" + return -self._jac_chf(params, t, *args) * self._sf(params, t, *args) + + def _jac_cdf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric cumulative distribution function with + respect to params.""" + return -self._jac_sf(params, t, *args) + + def _jac_pdf( + self, params: np.ndarray, t: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + """Jacobian of the parametric probability density function with respect to + params.""" + return self._jac_hf(params, t, *args) * self._sf( + params, t, *args + ) + self._jac_sf(params, t, *args) * self._hf(params, t, *args) diff --git a/relife/regression.py b/relife/regression.py new file mode 100644 index 0000000..7c52f67 --- /dev/null +++ b/relife/regression.py @@ -0,0 +1,432 @@ +"""Survival regression models.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +from dataclasses import dataclass +from typing import Tuple +import numpy as np +from scipy.optimize import Bounds, OptimizeResult + +from .data import LifetimeData +from .parametric import ParametricLifetimeModel, FittingResult +from .distribution import ParametricLifetimeDistribution + + +def concordance_index( + time: np.ndarray, + event: np.ndarray, + score: np.ndarray, + include_tied_score: bool = True, +) -> Tuple[float, int, int, int]: + """Computes the concordance index (c-index). + + The concordance index is a metric for evaluating the predictions of a + survival regression model. It is the proportion of concordant + pairs divided by the total number of possible evaluation pairs. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + + score : 1D array + Vector of individual risk scores (e.g. the median). + + include_tied_score : bool, optional + Specifies whether ties in risk score are included in calculations, by + default True. + + Returns + ------- + Tuple[float, int, int, int] + + - cindex : The computed concordance index (float) + - concordant : Number of concordant pairs (int) + - discordant : Number of discordant pairs (int) + - tied_score : Number of pairs having tied estimated risks (int) + """ + admissible = 0 + concordant = 0 + tied_score = 0 + + event_observed = event == 1 + event_not_observed = ~event_observed + + t1 = time[event_observed] + s1 = score[event_observed] + + t0 = time[event_not_observed] + s0 = score[event_not_observed] + + for ti, si in zip(t1, s1): + ind1 = ti < t1 + ind0 = ti <= t0 + admissible += np.sum(ind1) + np.sum(ind0) + concordant += np.sum(si < s1[ind1]) + np.sum(si < s0[ind0]) + tied_score += np.sum(si == s1[ind1]) + np.sum(si == s0[ind0]) + + if include_tied_score: + cindex = (concordant + 0.5 * tied_score) / admissible + else: + cindex = concordant / (admissible - tied_score) + + discordant = admissible - concordant - tied_score + + return cindex, concordant, discordant, tied_score + + +@dataclass +class Regression(ParametricLifetimeModel): + r"""Generic regression for parametric lifetime model. + + A generic class for survival regression model. The model includes a baseline + lifetime model and a multiplier function :math:`g` that specifies the effect + of the covariates (explanatory variables) on the baseline model: + + .. math:: + + g(\beta, x) = e^{\beta \cdot x} + """ + + baseline: ParametricLifetimeModel #: Baseline parametric lifetime model for the regression. + beta: np.ndarray = None #: Coefficients for the covariates. + + def __post_init__(self): + if self.beta is not None: + self.beta = np.asanyarray(self.beta, float) + self.n_covar = self.beta.size + + @property + def params(self) -> np.ndarray: + return np.concatenate((self.beta, self.baseline.params)) + + @property + def n_params(self) -> int: + return self.n_covar + self.baseline.n_params + + @property + def _param_bounds(self) -> Bounds: + lb = np.concatenate( + (np.full(self.n_covar, -np.inf), self.baseline._param_bounds.lb) + ) + ub = np.concatenate( + (np.full(self.n_covar, np.inf), self.baseline._param_bounds.ub) + ) + return Bounds(lb, ub) + + @property + def _default_hess_scheme(self) -> str: + return self.baseline._default_hess_scheme + + def _init_params(self, data: LifetimeData) -> np.ndarray: + args = data.args + if not len(data.args) > 0: + raise ValueError( + "`covar` argument is missing for regression model {}".format( + self.__class__.__name__ + ) + ) + if data.args[0].ndim != 2: + raise ValueError("`covar` argument must be a 2d-array") + covar, *args = args + self.n_covar = covar.shape[1] + data = LifetimeData(*data.astuple()[:-1], args) + return np.concatenate( + (np.zeros(self.n_covar), self.baseline._init_params(data)) + ) + + def _dispatch(self, params: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: + """Dispatch the params array into two arrays. + + Parameters + ---------- + params : 1D array + Parameters array for the regression model. + + Returns + ------- + Tuple[1D array, 1D array] + The first array contains the beta parameters for the covariates, and the + second the parameters of the baseline model. + """ + return params[: self.n_covar], params[self.n_covar :] + + def _set_params(self, params: np.ndarray) -> None: + self.beta, params0 = self._dispatch(params) + self.baseline._set_params(params0) + + @classmethod + def _g(cls, beta: np.ndarray, covar: np.ndarray) -> np.ndarray: + """The multiplier that specifies the effect of covariates. + + Parameters + ---------- + beta : 1D array + The beta parameters of the covariates. + covar : 2D array + The covariates array. + + Returns + ------- + float or 2D array + The multiplier function evaluated at `beta` and `covar`. + """ + return np.exp(np.sum(beta * covar, axis=1, keepdims=True)) + + @classmethod + def _jac_g(cls, beta: np.ndarray, covar: np.ndarray) -> np.ndarray: + """Jacobian of the multiplier function. + + Parameters + ---------- + beta : 1D array + The `beta` parameters of the covariates. + covar : 2D array + The covariates array. + + Returns + ------- + float or 2D array + The jacobian of the multiplier function `g` evaluated at `beta` and `covar`. + """ + return covar * cls._g(beta, covar) + + def fit( + self, + time: np.ndarray, + event: np.ndarray = None, + entry: np.ndarray = None, + covar: np.ndarray = None, + args: np.ndarray = (), + params0: np.ndarray = None, + method: str = None, + **kwargs, + ) -> Regression: + """Fit the parametric survival regression model to lifetime data. + + Parameters + ---------- + time : 1D array + Array of time-to-event or durations. + event : 1D array, optional + Array of event types coded as follows: + + - 0 if observation ends before the event has occurred (right censoring) + - 1 if the event has occured + - 2 if observation starts after the event has occurred (left censoring) + + by default the event has occured for each asset. + entry : 1D array, optional + Array of delayed entry times (left truncation), + by default None. + covar : 2D array + Array of covariates. + args : float or 2D array, optional + Extra arguments required by the baseline parametric lifetime model. + params0 : 1D array, optional + Initial guess, by default None. + method : str, optional + Type of solver (see scipy.optimize.minimize documentation), by + default None. + + Returns + ------- + self + Return the fitted regression as the current object. + """ + args = (covar, *args) if covar is not None else args + data = LifetimeData(time, event, entry, args) + self._fit(data, params0, method=method, **kwargs) + return self + + def _set_fitting_result( + self, opt: OptimizeResult, jac: np.ndarray, var: np.ndarray, data: LifetimeData + ) -> None: + cindex = concordance_index(data.time, data.event, self.median(*data.args))[0] + self.result = RegressionFittingResult(opt, jac, var, data.time.size, cindex) + + +@dataclass +class RegressionFittingResult(FittingResult): + """Class for the result of the fitted regression, inheriting from + FittingResult. + + Used as the type for the instance attribute 'result' for an object of the + Regression class, after fitting. + """ + + cindex: float + + +# Regression models + + +class AFT(Regression): + r"""Accelerated Failure Time Regression Model. + + The cumulative hazard function :math:`H` is linked to the multiplier + function :math:`g` by the relation: + + .. math:: + + H(t, x) = H_0\left(\dfrac{t}{g(\beta, x)}\right) = H_0(t e^{- \beta + \cdot x}) + + where :math:`x` is a vector of covariates, :math:`\beta` is the coefficient + vector of the effect of covariates, :math:`H_0` is the baseline cumulative + hazard function. + + References + ---------- + .. [1] Kalbfleisch, J. D., & Prentice, R. L. (2011). The statistical + analysis of failure time data. John Wiley & Sons. + """ + + def _chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._chf(params0, t0, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._hf(params0, t0, *args) / self._g(beta, covar) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return self.baseline._dhf(params0, t0, *args) / self._g(beta, covar) ** 2 + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return np.column_stack( + ( + -self._jac_g(beta, covar) + / self._g(beta, covar) + * t0 + * self.baseline._hf(params0, t0, *args), + self.baseline._jac_chf(params0, t0, *args), + ) + ) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + t0 = t / self._g(beta, covar) + return np.column_stack( + ( + -self._jac_g(beta, covar) + / self._g(beta, covar) ** 2 + * ( + self.baseline._hf(params0, t0, *args) + + t0 * self.baseline._dhf(params0, t0, *args) + ), + self.baseline._jac_hf(params0, t0, *args) / self._g(beta, covar), + ) + ) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._ichf(params0, v, *args) + + def mean(self, covar: np.ndarray, *args: np.ndarray) -> np.ndarray: + if issubclass(self.baseline.__class__, ParametricLifetimeDistribution): + return self._g(self.beta, covar) * self.baseline.mean(*args) + else: + super().mean(covar, *args) + + def mrl(self, t: np.ndarray, covar: np.ndarray, *args: np.ndarray) -> np.ndarray: + if issubclass(self.baseline.__class__, ParametricLifetimeDistribution): + t0 = t / self._g(self.beta, covar) + return self._g(self.beta, covar) * self.baseline.mrl(t0, *args) + else: + super().mrl(t, covar, *args) + + +class ProportionalHazards(Regression): + r"""Parametric Proportional Hazards Regression Model. + + The cumulative hazard function :math:`H` is linked to the multiplier + function :math:`g` by the relation: + + .. math:: + + H(t, x) = g(\beta, x) H_0(t) = e^{\beta \cdot x} H_0(t) + + where :math:`x` is a vector of covariates, :math:`\beta` is the coefficient + vector of the effect of covariates, :math:`H_0` is the baseline cumulative + hazard function. + + References + ---------- + .. [1] Sun, J. (2006). The statistical analysis of interval-censored failure + time data (Vol. 3, No. 1). New York: springer. + """ + + def _chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._chf(params0, t, *args) + + def _hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._hf(params0, t, *args) + + def _dhf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self._g(beta, covar) * self.baseline._dhf(params0, t, *args) + + def _jac_chf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return np.column_stack( + ( + self._jac_g(beta, covar) * self.baseline._chf(params0, t, *args), + self._g(beta, covar) * self.baseline._jac_chf(params0, t, *args), + ) + ) + + def _jac_hf( + self, params: np.ndarray, t: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return np.column_stack( + ( + self._jac_g(beta, covar) * self.baseline._hf(params0, t, *args), + self._g(beta, covar) * self.baseline._jac_hf(params0, t, *args), + ) + ) + + def _ichf( + self, params: np.ndarray, v: np.ndarray, covar: np.ndarray, *args: np.ndarray + ) -> np.ndarray: + beta, params0 = self._dispatch(params) + return self.baseline._ichf(params0, v / self._g(beta, covar), *args) diff --git a/relife/renewal_process.py b/relife/renewal_process.py new file mode 100644 index 0000000..cad8b78 --- /dev/null +++ b/relife/renewal_process.py @@ -0,0 +1,1006 @@ +"""Generic renewal processes.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +from typing import Tuple + +from .model import LifetimeModel, AbsolutelyContinuousLifetimeModel +from .reward import Reward +from .discounting import Discount, ExponentialDiscounting +from .data import RenewalData, RenewalRewardData +from .utils import args_size, args_take, args_ndim + + +def _check_absolutely_continuous(model: LifetimeModel) -> None: + if not isinstance(model, AbsolutelyContinuousLifetimeModel): + raise NotImplementedError("The lifetime model must be absolutely continuous") + + +def _check_exponential_discounting(discount: Discount) -> None: + if not isinstance(discount, ExponentialDiscounting): + raise NotImplementedError("The discount function must be exponential") + + +def renewal_equation_solver( + F: np.ndarray, Fm: np.ndarray, y: np.ndarray, D: np.ndarray = None +) -> np.ndarray: + r"""Renewal equation solver. + + Parameters + ---------- + F : ndarray + The cumulative distribution function evaluated at each point of the + timeline. + Fm : ndarray + The cumulative distribution function evaluated at each midpoint of the + timeline. + y : ndarray + A given function evaluated at each point of the timeline. + D : ndarray, optional + Discount function value at each point of the timeline, by default None. + + Returns + ------- + ndarray + Renewal function evaluated at each point of the timeline. + + Notes + ----- + The timeline must start at 0. + + Solve the renewal equation for :math:`z`, such that for :math:`t\geq 0`. + + .. math:: + + \begin{aligned} z(t) & = y(t) + \int_0^t z(t-x) D(x) \mathrm{d}F(x) \\ + & = y(t) + z \ast F(t) + \end{aligned} + + where :math:`F` is the cumulative distribution function, :math:`y` a + function and :math:`D` the exponential discounting factor. + + References + ---------- + .. [1] Dragomir, S. S. (2011). Approximating the Riemann–Stieltjes integral + by a trapezoidal quadrature rule with applications. Mathematical and + computer modelling, 54(1-2), 243-260. + + .. [2] Tortorella, M. (2005). Numerical solutions of renewal-type integral + equations. INFORMS Journal on Computing, 17(1), 66-74. + """ + if D is None: + D = np.ones_like(F) + z = np.empty(y.shape) + u = D * np.insert(F[..., 1:] - Fm, 0, 1, axis=-1) + v = D[..., :-1] * np.insert(np.diff(Fm), 0, 1, axis=-1) + q0 = 1 / (1 - D[..., 0] * Fm[..., 0]) + z[..., 0] = y[..., 0] + z[..., 1] = q0 * (y[..., 1] + z[..., 0] * u[..., 1]) + for n in range(2, F.shape[-1]): + z[..., n] = q0 * ( + y[..., n] + + z[..., 0] * u[..., n] + + np.sum(z[..., 1:n][..., ::-1] * v[..., 1:n], axis=-1) + ) + return z + + +def delayed_renewal( + z: np.ndarray, F1: np.ndarray, F1m: np.ndarray, y1: np.ndarray, D: np.ndarray = None +) -> np.ndarray: + r"""Add delay for the first renewal to a solution of a renewal equation. + + Parameters + ---------- + z : ndarray + The solution of a renewal equation at each point of the timeline. + F1 : ndarray + The cumulative distribution function of the first renewal evaluated at + each point of the timeline. + F1m : ndarray + The cumulative distribution function of the first renewal evaluated at + each midpoint of the timeline. + y : ndarray + A given function related to the first renewal evaluated at each point of + the timeline. + D : ndarray, optional + Discount function value at each point of the timeline, by default None. + + Returns + ------- + ndarray + Delayed solution of the renewal equation at each point of the timeline. + + Notes + ----- + The solution of the renewal equation is delayed by computing: + + .. math:: + + z_1(t) = y_1(t) + \int_0^t z(t-x) D(x) \mathrm{d}F_1(x) + + where :math:`z` is a solution of a renewal equation, :math:`D` the + exponential discounting factor, :math:`F_1` is the cumulative distribution + function of the first renwal and :math:`y_1` a function related to the first + renewal. + """ + if D is None: + D = np.ones_like(F1) + z1 = np.empty(y1.shape) + u1 = D * np.insert(F1[..., 1:] - F1m, 0, 1, axis=-1) + v1 = D[..., :-1] * np.insert(np.diff(F1m), 0, 1, axis=-1) + z1[..., 0] = y1[..., 0] + z1[..., 1] = ( + y1[..., 1] + z[..., 0] * u1[..., 1] + z[..., 1] * D[..., 0] * F1m[..., 0] + ) + for n in range(2, F1.shape[-1]): + z1[..., n] = ( + y1[..., n] + + z[..., 0] * u1[..., n] + + z[..., n] * D[..., 0] * F1m[..., 0] + + np.sum(z[..., 1:n][..., ::-1] * v1[..., 1:n], axis=-1) + ) + return z1 + + +class RenewalProcess: + """Renewal process.""" + + def __init__(self, model: LifetimeModel, model1: LifetimeModel = None) -> None: + """Creates a renewal process. + + Parameters + ---------- + model : LifetimeModel + A lifetime model representing the durations between events. + + model1 : LifetimeModel, optional + A lifetime model for the first renewal (delayed renewal process), by + default None. + + """ + self.model = model + self.model1 = model1 + + def renewal_function( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The renewal function. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + + Returns + ------- + ndarray + The renewal function evaluated at each point of the timeline. + + Notes + ----- + + The expected total number of renewals is computed by solving the + renewal equation: + + .. math:: + + m(t) = F_1(t) + \int_0^t m(t-x) \mathrm{d}F(x) + + where: + + - :math:`m` is the renewal function, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`F_1` is the cumulative distribution function of the underlying + lifetime model for the fist renewal in the case of a delayed renewal + process. + + References + ---------- + .. [1] Rausand, M., Barros, A., & Hoyland, A. (2020). System Reliability + Theory: Models, Statistical Methods, and Applications. John Wiley & + Sons. + """ + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + if self.model1 is not None: + y = self.model1.cdf(t, *model1_args) + else: + y = F + return renewal_equation_solver(F, Fm, y) + + def renewal_density( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The renewal density. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + + Returns + ------- + ndarray + Renewal density evaluated at each point of the timeline. + + Raises + ------ + NotImplementedError + If the lifetime model is not absolutely continuous. + + Notes + ----- + The renewal density is the derivative of the renewal function with + respect to time. It is computed by solving the renewal equation: + + .. math:: + + \mu(t) = f_1(t) + \int_0^t \mu(t-x) \mathrm{d}F(x) + + where: + + - :math:`\mu` is the renewal function, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`f_1` is the probability density function of the underlying + lifetime model for the fist renewal in the case of a delayed renewal + process. + + References + ---------- + .. [1] Rausand, M., Barros, A., & Hoyland, A. (2020). System Reliability + Theory: Models, Statistical Methods, and Applications. John Wiley & + Sons. + """ + if self.model1 is not None: + _check_absolutely_continuous(self.model1) + y = self.model1.pdf(t, *model1_args) + else: + _check_absolutely_continuous(self.model) + y = self.model.pdf(t, *model_args) + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + return renewal_equation_solver(F, Fm, y) + + def sample( + self, + T: float, + model_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + n_samples: int = 1, + random_state: int = None, + ) -> RenewalData: + """Renewal data sampling. + + Parameters + ---------- + T : float + Time at the end of the observation. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalData + Samples of replacement times and durations. + """ + n_indices = max(1, args_size(*model_args, *model1_args)) + if self.model1 is not None: + data = self._sample_init( + T, self.model1, model1_args, n_indices, n_samples, random_state + ) + else: + data = self._sample_init( + T, self.model, model_args, n_indices, n_samples, random_state + ) + return self._sample_loop(data, self.model, model_args) + + @classmethod + def _sample_init( + cls, + T: float, + model: LifetimeModel, + model_args: Tuple[np.ndarray, ...], + n_indices: int, + n_samples: int, + random_state: int = None, + ) -> RenewalData: + """Initializing a RenewalData sample. + + Creates a RenewalData instance with the first renewal times and durations. + + Parameters + ---------- + T : float + Time at the end of observation. + model : LifetimeModel + A lifetime model representing the durations between events. + model_args : Tuple[ndarray,...] + Extra arguments required by the lifetime model. + n_indices : int + Number of assets. + n_samples : int + Number of samples. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalData + The renewal data sample with the first renewal times and durations. + """ + indices = np.repeat(np.arange(n_indices), n_samples) + samples = np.tile(np.arange(n_samples), n_indices) + size = n_indices * n_samples if len(model_args) == 0 else 1 + times = model.rvs( + *args_take(indices, *model_args), size=size, random_state=random_state + ).ravel() + durations = times.copy() + return RenewalData(T, n_indices, n_samples, indices, samples, times, durations) + + @classmethod + def _sample_loop( + cls, data: RenewalData, model: LifetimeModel, model_args: Tuple[np.ndarray, ...] + ) -> RenewalData: + """Sampling loop on renewals until the end time is reached. + + Parameters + ---------- + data : RenewalData + An initial RenewalData instance. + model : LifetimeModel + A lifetime model representing the durations between events. + model_args : Tuple[ndarray,...] + Extra arguments required by the lifetime model. + + Returns + ------- + RenewalData + The renewal data sample with times and durations. + """ + T = data.T + ind_T = np.nonzero(data.times < T) + times = data.times[ind_T] + indices = data.indices[ind_T] + samples = data.samples[ind_T] + + while len(ind_T[0])>0: + size = indices.size if len(model_args) == 0 else 1 + durations = model.rvs(*args_take(indices, *model_args), size=size).ravel() + times = times + durations + data.times = np.concatenate((data.times, times)) + data.durations = np.concatenate((data.durations, durations)) + data.indices = np.concatenate((data.indices, indices)) + data.samples = np.concatenate((data.samples, samples)) + ind_T = np.nonzero(times < T) + times = times[ind_T] + indices = indices[ind_T] + samples = samples[ind_T] + + return data + + +class RenewalRewardProcess(RenewalProcess): + """Renewal reward process.""" + + def __init__( + self, + model: LifetimeModel, + reward: Reward, + model1: LifetimeModel = None, + reward1: Reward = None, + discount: Discount = ExponentialDiscounting(), + ): + """Creates a renewal reward process. + + Parameters + ---------- + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + model1 : LifetimeModel, optional + A lifetime model for the first renewal (delayed renewal process), by + default None. + reward1 : Reward, optional + A reward associated to the first renewal, by default None + discount : Discount, optional + A discount function related to the rewards, by default + ExponentialDiscounting() + """ + super().__init__(model, model1) + self.reward = reward + self.reward1 = reward1 + self.discount = discount + + def expected_total_reward( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""The expected total reward. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + Expected total reward of process evaluated at each point of the + timeline. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + + Notes + ----- + The renewal equation solved by the expected reward is: + + .. math:: + + z(t) = \int_0^t E[Y | X = x] D(x) \mathrm{d}F(x) + \int_0^t z(t-x) + D(x)\mathrm{d}F(x) + + where: + + - :math:`z` is the expected total reward, + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + + If the renewal reward process is delayed, the expected total reward is + modified as: + + .. math:: + + z_1(t) = \int_0^t E[Y_1 | X_1 = x] D(x) \mathrm{d}F_1(x) + \int_0^t + z(t-x) D(x) \mathrm{d}F_1(x) + + where: + + - :math:`z_1` is the expected total reward with delay, + - :math:`F_1` is the cumulative distribution function of the lifetime + model for the first renewal, + - :math:`X_1` the interarrival random variable of the first renewal, + - :math:`Y_1` the associated reward of the first renewal, + """ + + _check_exponential_discounting(self.discount) + tm = 0.5 * (t[1:] + t[:-1]) + F = self.model.cdf(t, *model_args) + Fm = self.model.cdf(tm, *model_args) + D = self.discount.factor(t, *discount_args) + y = self._reward_partial_expectation( + t, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + ) + z = renewal_equation_solver(F, Fm, y, D) + if self.model1 is not None: + F1 = self.model1.cdf(t, *model1_args) + F1m = self.model1.cdf(tm, *model1_args) + y1 = self._reward_partial_expectation( + t, + self.model1, + self.reward1, + self.discount, + model1_args, + reward1_args, + discount_args, + ) + z = delayed_renewal(z, F1, F1m, y1, D) + return z + + def expected_equivalent_annual_worth( + self, + t: np.ndarray, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + """Expected equivalent annual worth. + + Gives the equivalent annual worth of the expected total reward of the + process at each point of the timeline. + + Parameters + ---------- + t : 1D array + Timeline. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The expected equivalent annual worth evaluated at each point of the + timeline. + + Notes + ----- + The equivalent annual worth at time :math:`t` is equal to the expected + total reward :math:`z` divided by the annuity factor :math:`AF(t)`. + """ + z = self.expected_total_reward( + t, model_args, reward_args, model1_args, reward1_args, discount_args + ) + af = self.discount.annuity_factor(t, *discount_args) + mask = af == 0 + af = np.ma.masked_where(mask, af) + q = z / af + if self.model1 is not None: + q0 = self.reward1.conditional_expectation( + 0, *reward1_args + ) * self.model1.pdf(0, *model1_args) + else: + q0 = self.reward.conditional_expectation(0, *reward_args) * self.model.pdf( + 0, *model_args + ) + return np.where(mask, q0, q) + + def asymptotic_expected_total_reward( + self, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""Asymptotic expected total reward. + + Parameters + ---------- + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The assymptotic expected total reward of the process. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + + Notes + ----- + The asymptotic expected total reward is: + + .. math:: + + z^\infty = \lim_{t\to \infty} z(t) = \dfrac{E[Y D(X)]}{1-E[D(X)]} + + where: + + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + + If the renewal reward process is delayed, the asymptotic expected total + reward is modified as: + + .. math:: + + z_1^\infty = E[Y_1 D(X_1)] + z^\infty E[D(X_1)] + + where: + + - :math:`X_1` the interarrival random variable of the first renewal, + - :math:`Y_1` the associated reward of the first renewal, + """ + _check_exponential_discounting(self.discount) + rate = discount_args[0] + mask = rate <= 0 + rate = np.ma.MaskedArray(rate, mask) + ndim = args_ndim(*model_args, *reward_args, rate) + f = lambda x: self.discount.factor(x, rate) + y = lambda x: self.discount.factor( + x, rate + ) * self.reward.conditional_expectation(x, *reward_args) + lf = self.model.ls_integrate(f, 0, np.inf, *model_args, ndim=ndim) + ly = self.model.ls_integrate(y, 0, np.inf, *model_args, ndim=ndim) + z = ly / (1 - lf) + if self.model1 is not None: + ndim1 = args_ndim(*model1_args, *reward1_args, rate) + y1 = lambda x: self.discount.factor( + x, rate + ) * self.reward.conditional_expectation(x, *reward1_args) + lf1 = self.model1.ls_integrate(f, 0, np.inf, *model1_args, ndim=ndim1) + ly1 = self.model1.ls_integrate(y1, 0, np.inf, *model1_args, ndim=ndim1) + z = ly1 + z * lf1 + return np.where(mask, np.inf, z) + + def asymptotic_expected_equivalent_annual_worth( + self, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + """Asymptotic expected equivalent annual worth. + + Parameters + ---------- + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + The asymptotic expected equivalent annual worth of the process. + + Raises + ------ + NotImplementedError + If the discount function is not exponential. + """ + _check_exponential_discounting(self.discount) + rate = discount_args[0] + mask = rate <= 0 + rate = np.ma.MaskedArray(rate, mask) + ndim = args_ndim(*model_args, *reward_args) + q = rate * self.asymptotic_expected_total_reward( + model_args, reward_args, model1_args, reward1_args, discount_args + ) + q0 = self.model.ls_integrate( + lambda x: self.reward.conditional_expectation(x, *reward_args), + 0, + np.inf, + *model_args, + ndim=ndim + ) / self.model.mean(*model_args) + return np.where(mask, q0, q) + + def sample( + self, + T: float, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + model1_args: Tuple[np.ndarray, ...] = (), + reward1_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + n_samples: int = 1, + random_state: int = None, + ) -> RenewalRewardData: + """Renewal reward data sampling. + + Parameters + ---------- + T : float + Time at the end of the observation. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + model1_args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model of the first renewal, + by default (). + reward1_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward of the first + renewal, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalRewardData + Samples of replacement times, durations and rewards. + """ + n_indices = max( + 1, args_size(*model_args, *reward_args, *model1_args, *reward1_args) + ) + if self.model1 is not None: + data = self._sample_init( + T, + self.model1, + self.reward1, + self.discount, + model1_args, + reward1_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + else: + data = self._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + return self._sample_loop( + data, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + ) + + @classmethod + def _reward_partial_expectation( + cls, + t: np.ndarray, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...] = (), + reward_args: Tuple[np.ndarray, ...] = (), + discount_args: Tuple[np.ndarray, ...] = (), + ) -> np.ndarray: + r"""Reward partial expectation. + + Parameters + ---------- + t : float or 1D array + Timeline. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...], optional + Extra arguments required by the underlying lifetime model, by + default (). + reward_args : Tuple[ndarray,...], optional + Extra arguments required by the associated reward, by default (). + discount_args : Tuple[ndarray,...], optional + Extra arguments required by the discount function, by default (). + + Returns + ------- + ndarray + Reward partial expectation at each point of the timeline. + + Notes + ----- + The reward partial expactation is defined by: + + .. math:: + + y(t) = \int_0^t E[Y | X = x] D(x) \mathrm{d}F(x) + + where: + + - :math:`F` is the cumulative distribution function of the underlying + lifetime model, + - :math:`X` the interarrival random variable, + - :math:`Y` the associated reward, + - :math:`D` the exponential discount factor. + """ + func = lambda x: reward.conditional_expectation( + x, *reward_args + ) * discount.factor(x, *discount_args) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + return model.ls_integrate(func, 0, t, *model_args, ndim=ndim) + + @classmethod + def _sample_init( + cls, + T: float, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...], + reward_args: Tuple[np.ndarray, ...], + discount_args: Tuple[np.ndarray, ...], + n_indices: int, + n_samples: int, + random_state: int = None, + ) -> RenewalRewardData: + """Initializing a RenewalRewardData sample. + + Creates a RenewalRewardData instance with the first renewal times, + durations and rewards. + + Parameters + ---------- + T : float + Time at the end of the observation. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...] + Extra arguments required by the underlying lifetime model. + reward_args : Tuple[ndarray,...] + Extra arguments required by the associated reward. + discount_args : Tuple[ndarray,...] + Extra arguments required by the discount function. + n_indices : int + Number of assets. + n_samples : int + Number of samples. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + RenewalRewardData + The renewal reward data sample with the first renewal times, + durations and rewards. + """ + data = super()._sample_init( + T, model, model_args, n_indices, n_samples, random_state + ) + rewards = ( + np.array( + reward.sample( + data.durations.reshape(-1, 1), + *args_take(data.indices, *reward_args) + ).swapaxes(-2, -1) + * discount.factor(data.times, *discount_args), + ndmin=3, + ) + .sum(axis=0) + .ravel() + ) + return RenewalRewardData(*data.astuple(), rewards) + + @classmethod + def _sample_loop( + cls, + data: RenewalRewardData, + model: LifetimeModel, + reward: Reward, + discount: Discount, + model_args: Tuple[np.ndarray, ...], + reward_args: Tuple[np.ndarray, ...], + discount_args: Tuple[np.ndarray, ...], + ) -> RenewalRewardData: + """Sampling loop on renewals until the end time is reached. + + Parameters + ---------- + data : RenewalRewardData + An initial RenewalRewardData instance. + model : LifetimeModel + A lifetime model representing the durations between events. + reward : Reward + A reward associated to the interarrival time. + discount : Discount + A discount function related to the rewards. + model_args : Tuple[ndarray,...] + Extra arguments required by the underlying lifetime model. + reward_args : Tuple[ndarray,...] + Extra arguments required by the associated reward. + discount_args : Tuple[ndarray,...] + Extra arguments required by the discount function. + + Returns + ------- + RenewalRewardData + The renewal reward data sample with times, durations and rewards. + """ + data = super()._sample_loop(data, model, model_args) + ind = data.rewards.size + indices = data.indices[ind:] + times = data.times[ind:] + durations = data.durations[ind:] + rewards = ( + np.array( + reward.sample( + durations.reshape(-1, 1), *args_take(indices, *reward_args) + ).swapaxes(-2, -1) + * discount.factor(times, *discount_args), + ndmin=3, + ) + .sum(axis=0) + .ravel() + ) + data.rewards = np.concatenate((data.rewards, rewards)) + return data diff --git a/relife/replacement_policy.py b/relife/replacement_policy.py new file mode 100644 index 0000000..230a81c --- /dev/null +++ b/relife/replacement_policy.py @@ -0,0 +1,1604 @@ +"""Run-to-failure and age replacement maintenance policies.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from __future__ import annotations +import numpy as np +import scipy.optimize as optimize +from typing import Tuple + +from .model import AbsolutelyContinuousLifetimeModel, AgeReplacementModel, LeftTruncated +from .data import ReplacementPolicyData +from .reward import FailureCost, AgeReplacementCost +from .discounting import ExponentialDiscounting +from .renewal_process import RenewalRewardProcess +from .utils import args_size, args_take, args_ndim, gauss_legendre + + +# One Cyle Replacement Policies + + +class OneCycleRunToFailure: + """One cyle run-to-failure policy.""" + + reward: FailureCost = FailureCost() #: The failure cost of the asset. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...] = (), + a0: np.ndarray = None, + cf: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """One cycle run-to-failure policy. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model. + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `cf` is set to None, if should be defined when using methods to + compute costs. + + If `cf` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Coolen-Schrijner, P., & Coolen, F. P. A. (2006). On optimality + criteria for age replacement. Proceedings of the Institution of + Mechanical Engineers, Part O: Journal of Risk and Reliability, + 220(1), 21-29 + """ + if a0 is not None: + model = LeftTruncated(model) + args = (a0, *args) + self.model = model + self.args = args + self.cf = cf + self.rate = rate + + def _parse_policy_args( + self, cf: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + cf : float, 2D array or 3D array + Costs of failures. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(cf, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if cf is None: + cf = self.cf + if rate is None: + rate = self.rate + return cf, rate + + def rrp_args( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reaward_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + cf, rate = self._parse_policy_args(cf, rate) + model_args = self.args + reward_args = (cf,) + discount_args = (rate,) + return model_args, reward_args, discount_args + + def expected_total_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The expected total discounted cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + t, self.model, self.reward, self.discount, *self.rrp_args(cf, rate) + ) + + def asymptotic_expected_total_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + np.inf, self.model, self.reward, self.discount, *self.rrp_args(cf, rate) + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + cf: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The expected equivalent annual cost until time `t`. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost until time :math:`t` is given by: + + .. math:: + + EEAC(t) = \int_0^t \frac{\delta c_f e^{-\delta x}}{1 - e^{-\delta + x}} \mathrm{d}F(x) + """ + model_args, reward_args, discount_args = self.rrp_args(cf, rate) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + f = ( + lambda x: self.reward.conditional_expectation(x, *reward_args) + * self.discount.factor(x, *discount_args) + / self.discount.annuity_factor(x, *discount_args) + ) + mask = t < dt + q0 = self.model.cdf(dt, *model_args) * f(dt) + return q0 + np.where( + mask, 0, self.model.ls_integrate(f, dt, t, *model_args, ndim=ndim) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None, dt: float = 1.0 + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \int_0^\infty \frac{\delta c_f e^{-\delta x}}{1 - + e^{-\delta x}} \mathrm{d}F(x) + """ + return self.expected_equivalent_annual_cost(np.inf, cf, rate, dt) + + def sample( + self, + cf: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """One cycle run-to-failure policy sampling. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + T = np.inf + model_args, reward_args, discount_args = self.rrp_args(cf, rate) + n_indices = max(1, args_size(*model_args, *reward_args)) + data = RenewalRewardProcess._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + events = np.ones(data.size) + if isinstance(self.model, LeftTruncated): + a0, *args = args_take(data.indices, *self.args) + else: + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.indices.size).reshape(-1, 1) + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +class OneCycleAgeReplacementPolicy: + """One-cyle age replacement policy. + + The asset is disposed at a fixed age `ar` with costs `cp` or upon failure + with costs `cf` if earlier. + """ + + reward: AgeReplacementCost = AgeReplacementCost() #: Costs of the replacement. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """One-cyle age replacement policy. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `ar`, `cf` or `cp` is set to None, the argument should be defined + when using methods to compute costs. + + If `cf`, `cp` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Coolen-Schrijner, P., & Coolen, F. P. A. (2006). On optimality + criteria for age replacement. Proceedings of the Institution of + Mechanical Engineers, Part O: Journal of Risk and Reliability, + 220(1), 21-29 + """ + if a0 is not None: + model = LeftTruncated(model) + args = (a0, *args) + self.model = AgeReplacementModel(model) + self.args = args + self.ar = ar + self.cf = cf + self.cp = cp + self.rate = rate + + def _parse_policy_args( + self, ar: np.ndarray, cf: np.ndarray, cp: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + ar : float or 2D array + Ages of preventive replacements. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(ar, cf, cp, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if ar is None: + ar = self.ar + if cf is None: + cf = self.cf + if cp is None: + cp = self.cp + if rate is None: + rate = self.rate + return ar, cf, cp, rate + + def rrp_args( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reaward_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ar, cf, cp, rate = self._parse_policy_args(ar, cf, cp, rate) + model_args = (ar, *self.args) + reward_args = (ar, cf, cp) + discount_args = (rate,) + return model_args, reward_args, discount_args + + @classmethod + def optimal_replacement_age( + cls, + model: AbsolutelyContinuousLifetimeModel, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray = 0, + args:Tuple[np.ndarray,...]=(), + ) -> np.ndarray: + r"""Compute the optimal age of preventive replacement for each asset. + + The optimal age of preventive replacement is computed by minimizing the + asymptotic expected equivalent annual cost on one-cycle. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + + Returns + ------- + ndarray + The optimal age of preventive replacement. + + Notes + ----- + The optimal age of replacement minimizes the asymptotic expected + equivalent annual cost: + + .. math:: + + EEAC_\infty(a) = \sum_i {c_f}_i \int_0^a \dfrac{\delta_i e^{-\delta_i + t}}{1 - e^{-\delta_i t}} f(t) \mathrm{d}t + {c_p}_i S(a)\dfrac{\delta_i + e^{-\delta_i a}}{1 - e^{-\delta_i a}} + + where: + + - :math:`a` is the age of replacement, + - :math:`{c_f}_i, {c_p}_i, \delta_i` are respectively the components of + the failures costs, preventive costs and the associated discount rate, + - :math:`S, f, h` are respectively the survival function, the + probability density function and the hazard function of the underlying + lifetime model. + + The optimal age of replacement is then solution of the equation: + + .. math:: + + \sum_i \dfrac{\delta_i e^{-\delta_i a}}{1 - e^{-\delta_i a}} \left( + ({c_f}_i - {c_p}_i) h(a) - \dfrac{\delta_i {c_p}_i}{1 - e^{-\delta_i + a}} \right) = 0 + """ + size = args_size(cf, cp, *args) + cf, cp = np.array(cf, ndmin=3), np.array(cp, ndmin=3) + x0 = np.minimum(np.sum(cp, axis=0) / np.sum(cf - cp, axis=0), 1) + if np.size(x0) == 1: + x0 = np.tile(x0, (size, 1)) + eq = lambda a: np.sum( + cls.discount.factor(a, rate) + / cls.discount.annuity_factor(a, rate) + * ( + (cf - cp) * model.hf(a, *args) + - cp / cls.discount.annuity_factor(a, rate) + ), + axis=0, + ) + ar = optimize.newton(eq, x0) + return ar.squeeze() if np.size(ar) == 1 else ar + + def fit( + self, cf: np.ndarray = None, cp: np.ndarray = None, rate: np.ndarray = None + ) -> OneCycleAgeReplacementPolicy: + """Computes and sets the optimal age of replacement for each asset. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + self + The fitted policy as the current object. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + _, cf, cp, rate = self._parse_policy_args(None, cf, cp, rate) + self.ar = self.optimal_replacement_age( + self.model.baseline, cf, cp, rate, self.args + ) + return self + + def expected_total_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The expected total discounted cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + t, self.model, self.reward, self.discount, *self.rrp_args(ar, cf, cp, rate) + ) + + def asymptotic_expected_total_cost( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return RenewalRewardProcess._reward_partial_expectation( + np.inf, + self.model, + self.reward, + self.discount, + *self.rrp_args(ar, cf, cp, rate), + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The cumulative expected equivalent annual cost until time t. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost until time :math:`t` is: + + .. math:: + + EEAC(t) = \int_0^t \frac{\delta c_f e^{-\delta x}}{1 - e^{-\delta + x}} \mathrm{d}F(x) + """ + model_args, reward_args, discount_args = self.rrp_args(ar, cf, cp, rate) + ndim = args_ndim(t, *model_args, *reward_args, *discount_args) + f = ( + lambda x: self.reward.conditional_expectation(x, *reward_args) + * self.discount.factor(x, *discount_args) + / self.discount.annuity_factor(x, *discount_args) + ) + mask = t < dt + q0 = self.model.cdf(dt, *model_args) * f(dt) + return q0 + np.where( + mask, 0, self.model.ls_integrate(f, dt, t, *model_args, ndim=ndim) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + dt: float = 1.0, + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + dt : float, optional + The length of the first period before discounting, by default 1. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \int_0^\infty \frac{\delta c_f e^{-\delta x}}{1 - + e^{-\delta x}} \mathrm{d}F(x) + """ + return self.expected_equivalent_annual_cost(np.inf, ar, cf, cp, rate, dt) + + def sample( + self, + ar: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """One-cycle age replacement policy sampling. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + T = np.inf + model_args, reward_args, discount_args = self.rrp_args(ar, cf, cp, rate) + n_indices = max(1, args_size(*model_args, *reward_args)) + data = RenewalRewardProcess._sample_init( + T, + self.model, + self.reward, + self.discount, + model_args, + reward_args, + discount_args, + n_indices, + n_samples, + random_state, + ) + ar = model_args[0] + events = np.where(data.durations < args_take(data.indices, ar)[0].ravel(), 1, 0) + if isinstance(self.model.baseline, LeftTruncated): + a0, *args = args_take(data.indices, *self.args) + else: + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.indices.size).reshape(-1, 1) + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +# Renewal Process Replacement Policy + + +class RunToFailure: + """Run-to-failure renewal policy.""" + + reward: FailureCost = FailureCost() #: The failure cost of the asset. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + cf: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """Run-to-failure renwal policy. + + Renewal reward process where assets are replaced on failure with costs + `cf`. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `cf` is set to None, if should be defined when using methods to + compute costs. + + If `cf` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Van der Weide, J. A. M., & Van Noortwijk, J. M. (2008). Renewal + theory with exponential and hyperbolic discounting. Probability in + the Engineering and Informational Sciences, 22(1), 53-74. + """ + if a0 is not None: + self.model1 = LeftTruncated(model) + self.args1 = (a0, *args) + else: + self.model1 = None + self.args1 = () + self.model = model + self.args = args + self.cf = cf + self.rate = rate + self.rrp = RenewalRewardProcess( + self.model, self.reward, self.model1, self.reward, self.discount + ) + + def _parse_policy_args( + self, cf: np.ndarray, rate: np.ndarray + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + cf : float, 2D array or 3D array + Costs of failures. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(cf, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if cf is None: + cf = self.cf + if rate is None: + rate = self.rate + return cf, rate + + def rrp_args( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reward_args, model1_args, reward1_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + cf, rate = self._parse_policy_args(cf, rate) + model_args = self.args + reward_args = (cf,) + model1_args = self.args1 + reward1_args = (cf,) + discount_args = (rate,) + return model_args, reward_args, model1_args, reward1_args, discount_args + + def expected_total_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The expected total discounted cost. + + The expected total discounted cost is computed by solving the renewal + equation. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.expected_total_reward(t, *self.rrp_args(cf, rate)) + + def asymptotic_expected_total_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.asymptotic_expected_total_reward(*self.rrp_args(cf, rate)) + + def expected_equivalent_annual_cost( + self, t: np.ndarray, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + where :math:`z` is the expected total cost. + + Parameters + ---------- + t : 1D array + Timeline. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The expected equivalent annual cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost at time :math:`t` is: + + .. math:: + + EEAC(t) = \dfrac{\delta z(t)}{1 - e^{-\delta t}} + """ + return self.rrp.expected_equivalent_annual_worth(t, *self.rrp_args(cf, rate)) + + def asymptotic_expected_equivalent_annual_cost( + self, cf: np.ndarray = None, rate: np.ndarray = None + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \lim_{t \to \infty} EEAC(t) + """ + return self.rrp.asymptotic_expected_equivalent_annual_worth( + *self.rrp_args(cf, rate) + ) + + def sample( + self, + T: float, + cf: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """Run-to-failure renewal policy sampling. + + Parameters + ---------- + T : float + End of the observation period. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + data = self.rrp.sample(T, *self.rrp_args(cf, rate), n_samples, random_state) + events = np.ones(data.size) + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.size) + if self.model1 is not None: + ind1 = data.n_indices * data.n_samples + a0[:ind1] = args_take(data.indices[:ind1], *self.args1)[0] + return ReplacementPolicyData(*data.astuple(), events, args, a0) + + +class AgeReplacementPolicy: + """Time based replacement policy.""" + + reward: AgeReplacementCost = AgeReplacementCost() #: Costs of the replacement. + discount: ExponentialDiscounting = ( + ExponentialDiscounting() + ) #: Exponential discounting. + + def __init__( + self, + model: AbsolutelyContinuousLifetimeModel, + args:Tuple[np.ndarray,...]=(), + a0: np.ndarray = None, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = 0, + ) -> None: + """Age replacement renewal policy. + + Renewal reward process where assets are replaced at a fixed age `ar` + with costs `cp` or upon failure with costs `cf` if earlier. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model of the asset. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + a0 : float or 2D array, optional + Current ages of the assets, by default 0 for each asset. + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Notes + ----- + If `ar`, `ar1`, `cf` or `cp` is set to None, the argument should be + defined when using methods to compute costs. + + If `cf`, `cp` and `rate` are 2D or 3D array, then: + + - axis=-2 represents the indices of each asset, + - axis=-3 represents the indices of each component of the cost vector. + + References + ---------- + .. [1] Mazzuchi, T. A., Van Noortwijk, J. M., & Kallen, M. J. (2007). + Maintenance optimization. Encyclopedia of Statistics in Quality and + Reliability, 1000-1008. + """ + if a0 is not None: + self.model1 = AgeReplacementModel(LeftTruncated(model)) + self.args1 = (a0, *args) + else: + self.model1 = None + self.args1 = () + self.model = AgeReplacementModel(model) + self.args = args + self.ar = ar + self.ar1 = ar1 + self.cf = cf + self.cp = cp + self.rate = rate + self.rrp = RenewalRewardProcess( + self.model, self.reward, self.model1, self.reward, self.discount + ) + + def _parse_policy_args( + self, + ar: np.ndarray, + ar1: np.ndarray, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray, + ) -> Tuple[np.ndarray, ...]: + """Parse the arguments of the policy. + + Parameters + ---------- + ar : float or 2D array + Ages of preventive replacements. + ar1 : float, 2D array + Ages of the first preventive replacements. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array + Discount rate. + + Returns + ------- + Tuple[ndarray,...] + `(ar, ar1, cf, cp, rate)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + if ar is None: + ar = self.ar + if ar1 is None: + ar1 = self.ar1 + if cf is None: + cf = self.cf + if cp is None: + cp = self.cp + if rate is None: + rate = self.rate + return ar, ar1, cf, cp, rate + + def rrp_args( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> Tuple[Tuple[np.ndarray, ...], ...]: + """Arguments of the underlying renewal reward process. + + Parameters + ---------- + ar : float, 2D array, optional + Ages of preventive replacements, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + + Returns + ------- + Tuple[Tuple[ndarray,...],...] + `(model_args, reward_args, model1_args, reward1_args, discount_args)` + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ar, ar1, cf, cp, rate = self._parse_policy_args(ar, ar1, cf, cp, rate) + model_args = (ar, *self.args) + reward_args = (ar, cf, cp) + model1_args = (ar1, *self.args1) + reward1_args = (ar1, cf, cp) + discount_args = (rate,) + return model_args, reward_args, model1_args, reward1_args, discount_args + + @classmethod + def optimal_replacement_age( + cls, + model: AbsolutelyContinuousLifetimeModel, + cf: np.ndarray, + cp: np.ndarray, + rate: np.ndarray = 0, + args:Tuple[np.ndarray,...]=(), + ) -> np.ndarray: + r"""Compute the optimal age of preventive replacement for each asset. + + The optimal age of preventive replacement is computed by minimizing the + asymptotic expected equivalent annual cost of the renewal reward + process. + + Parameters + ---------- + model : AbsolutelyContinuousLifetimeModel + Absolutely continuous lifetime model. + cf : float, 2D array or 3D array + Costs of failures. + cp : float, 2D array or 3D array + Costs of preventive replacements. + rate : float, 2D array or 3D array, optional + Discount rate, by default 0. + args : Tuple[ndarray,...], optional + Extra arguments required by the lifetime model, by default (). + + Returns + ------- + ndarray + The optimal age of preventive replacement. + + Notes + ----- + The optimal age of replacement minimizes the asymptotic expected + equivalent annual cost: + + .. math:: + + EEAC_\infty(a) = \sum_i \dfrac{{c_f}_i \int_0^a e^{-\delta_i x} f(x) + \mathrm{d}x + {c_p}_i e^{-\delta_i a} S(a)}{\int_0^a e^{-\delta_i x} + S(x) \mathrm{d}x} + + where: + + - :math:`a` is the age of replacement, + - :math:`{c_f}_i, {c_p}_i, \delta_i` are respectively the components of + the failures costs, preventive costs and the associated discount rate, + - :math:`S, f, h` are respectively the survival function, the + probability density function and the hazard function of the underlying + lifetime model. + + The optimal age of replacement is then solution of the equation: + + .. math:: + + \sum_i \dfrac{\left( ({c_f}_i - {c_p}_i) \left( + h(a) \int_0^a e^{-\delta_i x} S(x) \mathrm{d}x - \int_0^a + e^{-\delta_i x} f(x) \mathrm{d}x \right) - {c_p}_i \right)} + {\left( \int_0^a e^{-\delta_i x} S(x) \mathrm{d}x \right)^2} = 0 + """ + size = args_size(cf, cp, *args) + cf, cp = np.array(cf, ndmin=3), np.array(cp, ndmin=3) + ndim = args_ndim(cf, cp, rate, *args) + x0 = np.minimum(np.sum(cp, axis=0) / np.sum(cf - cp, axis=0), 1) + if np.size(x0) == 1: + x0 = np.tile(x0, (size, 1)) + f = lambda x: cls.discount.factor(x, rate) * model.sf(x, *args) + g = lambda x: cls.discount.factor(x, rate) * model.pdf(x, *args) + + def eq(a): + F = gauss_legendre(f, 0, a, ndim=ndim) + G = gauss_legendre(g, 0, a, ndim=ndim) + return np.sum( + cls.discount.factor(a, rate) + * ((cf - cp) * (model.hf(a, *args) * F - G) - cp) + / F**2, + axis=0, + ) + + ar = optimize.newton(eq, x0) + return ar.squeeze() if np.size(ar) == 1 else ar + + def fit( + self, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + fit_ar1: bool = True, + ) -> AgeReplacementPolicy: + """Computes and sets the optimal age of replacement for each asset. + + Parameters + ---------- + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + fit_ar1 : bool, optional + If True, computes and sets the optimal age of replacement for the + first replacement considering a one-cycle age replacement criteria. + + Returns + ------- + self + The fitted policy as the current object. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + _, _, cf, cp, rate = self._parse_policy_args(None, None, cf, cp, rate) + self.ar = self.optimal_replacement_age( + self.model.baseline, cf, cp, rate, self.args + ) + if self.model1 is not None and fit_ar1: + self.ar1 = OneCycleAgeReplacementPolicy.optimal_replacement_age( + self.model1.baseline, cf, cp, rate, self.args1 + ) + return self + + def expected_total_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The expected total discounted cost. + + The expected total discounted cost is computed by solving the renewal + equation. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The cumulative expected total cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.expected_total_reward(t, *self.rrp_args(ar, ar1, cf, cp, rate)) + + def asymptotic_expected_total_cost( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + """The asymptotic expected total cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of preventive replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected total cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + return self.rrp.asymptotic_expected_total_reward( + *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def expected_equivalent_annual_cost( + self, + t: np.ndarray, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + r"""The expected equivalent annual cost. + + Parameters + ---------- + t : 1D array + Timeline. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The expected equivalent annual cost for each asset along the + timeline. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The expected equivalent annual cost at time :math:`t` is: + + .. math:: + + EEAC(t) = \dfrac{\delta z(t)}{1 - e^{-\delta t}} + + where :math:`z` is the expected total cost. + """ + return self.rrp.expected_equivalent_annual_worth( + t, *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def asymptotic_expected_equivalent_annual_cost( + self, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + ) -> np.ndarray: + r"""The asymptotic expected equivalent annual cost. + + Parameters + ---------- + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + + Returns + ------- + ndarray + The asymptotic expected equivalent annual cost for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + + The asymptotic expected equivalent annual cost is: + + .. math:: + + EEAC_\infty = \lim_{t \to \infty} EEAC(t) + """ + return self.rrp.asymptotic_expected_equivalent_annual_worth( + *self.rrp_args(ar, ar1, cf, cp, rate) + ) + + def sample( + self, + T: float, + ar: np.ndarray = None, + ar1: np.ndarray = None, + cf: np.ndarray = None, + cp: np.ndarray = None, + rate: np.ndarray = None, + n_samples: int = 1, + random_state: int = None, + ) -> ReplacementPolicyData: + """Age replacement renewal policy sampling. + + Parameters + ---------- + T : float + End of the observation period. + ar : float or 2D array, optional + Ages of replacement, by default None. + ar1 : float, 2D array, optional + Ages of the first preventive replacements, by default None. + cf : float, 2D array or 3D array, optional + Costs of failures, by default None. + cp : float, 2D array or 3D array, optional + Costs of preventive replacements, by default None. + rate : float, 2D array or 3D array, optional + Discount rate, by default None. + n_samples : int, optional + Number of samples, by default 1. + random_state : int, optional + Random seed, by default None. + + Returns + ------- + ReplacementPolicyData + Samples of replacement times, durations, costs and events for each asset. + + Notes + ----- + If an argument is None, the value of the class attribute is taken. + """ + ( + model_args, + reward_args, + model1_args, + reward1_args, + discount_args, + ) = self.rrp_args(ar, ar1, cf, cp, rate) + data = self.rrp.sample( + T, + model_args, + reward_args, + model1_args, + reward1_args, + discount_args, + n_samples, + random_state, + ) + events = np.ones(data.size) + args = args_take(data.indices, *self.args) + a0 = np.zeros(data.size) + ind1 = 0 + if self.model1 is not None: + ar1 = model1_args[0] + ind1 = data.n_indices * data.n_samples + a0[:ind1] = args_take(data.indices[:ind1], *self.args1)[0] + events[:ind1] = np.where( + data.durations[:ind1] < args_take(data.indices[:ind1], ar1)[0].ravel(), + 1, + 0, + ) + ar = model_args[0] + events[ind1:] = np.where( + data.durations[ind1:] < args_take(data.indices[ind1:], ar)[0].ravel(), 1, 0 + ) + return ReplacementPolicyData(*data.astuple(), events, args, a0) diff --git a/relife/reward.py b/relife/reward.py new file mode 100644 index 0000000..039d6d3 --- /dev/null +++ b/relife/reward.py @@ -0,0 +1,75 @@ +"""Rewards for renewal reward processes.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +from abc import ABC, abstractmethod +import numpy as np + + +class Reward(ABC): + """Generic reward class.""" + + @abstractmethod + def conditional_expectation( + self, x: np.ndarray, *reward_args: np.ndarray + ) -> np.ndarray: + """Conditional expected reward. + + Parameters + ---------- + x : ndarray + Duration. + *reward_args : ndarray + Extra arguments of the reward random variable. + + Returns + ------- + ndarray + The conditional expected reward with respect to the duration. + """ + pass + + def sample(self, x: np.ndarray, *reward_args: np.ndarray) -> np.ndarray: + """Reward conditional sampling. + + Parameters + ---------- + x : ndarray + Duration. + *reward_args : ndarray + Extra arguments of the reward random variable. + + Returns + ------- + ndarray + Random drawing of a reward with respect to the duration. + + """ + return self.conditional_expectation(x, *reward_args) + + +class FailureCost(Reward): + """Run-to-failure costs. + + The replacements occur upon failures with costs `cf`. + """ + + def conditional_expectation(self, x: np.ndarray, cf: np.ndarray) -> np.ndarray: + return cf + + +class AgeReplacementCost(Reward): + """Age replacement costs. + + The replacements occur at a fixed age `ar` with preventive costs `cp` or + upon failure with failure costs `cf` if earlier. + """ + + def conditional_expectation( + self, x: np.ndarray, ar: np.ndarray, cf: np.ndarray, cp: np.ndarray + ) -> np.ndarray: + return np.where(x < ar, cf, cp) diff --git a/relife/utils.py b/relife/utils.py new file mode 100644 index 0000000..f19aaa8 --- /dev/null +++ b/relife/utils.py @@ -0,0 +1,292 @@ +"""Numerical integration, args manipulation, plot, etc.""" + +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import numpy as np +import scipy.stats as stats +import matplotlib.pyplot as plt +from typing import Callable, Tuple + +MIN_POSITIVE_FLOAT = np.finfo(float).resolution + +# numerical integration + + +def gauss_legendre( + func: Callable, + a: np.ndarray, + b: np.ndarray, + *args: np.ndarray, + ndim: int = 0, + deg: int = 100 +) -> np.ndarray: + r"""Gauss-Legendre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray. + The lower bound of integration. + b : float or 1D array. + The upper bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int, optional + Degree of the Legendre polynomials (see numpy.polynomial.legendre.leggauss + documentation), by default 100. + + Returns + ------- + ndarray + The numerical integration of `func` from `a` to `b`. + + Notes + ----- + It is a numerical integration of: + + .. math:: + + \int_a^b f(x) \mathrm{d} x + """ + shape = (-1,) + (1,) * ndim + x, w = np.polynomial.legendre.leggauss(deg) + x, w = x.reshape(shape), w.reshape(shape) + p = (b - a) / 2 + m = (a + b) / 2 + u = p * x + m + v = p * w + return np.sum(v * func(u, *args), axis=0) + + +def gauss_laguerre( + func: Callable, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Gauss-Laguerre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + The Gauss-Laguerre integration of the function `func`. + + Notes + ----- + It is the numerical integration of: + + .. math:: + + \int_0^{+\infty} f(x) e^{-x} \mathrm{d} x + """ + shape = (-1,) + (1,) * ndim + x, w = np.polynomial.laguerre.laggauss(deg) + x, w = x.reshape(shape), w.reshape(shape) + return np.sum(w * func(x, *args), axis=0) + + +def shifted_laguerre( + func: Callable, a: np.ndarray, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Shifted Gauss-Laguerre integration. + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray + The lower bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + The Gauss-Laguerre integration of the function `func` from `a` to infinity. + + Notes + ----- + It is the numerical integration of: + + .. math:: + + \int_a^{+\infty} f(x) e^{-x} \mathrm{d} x + """ + f = lambda x, *args: func(x + a, *args) * np.exp(-a) + return gauss_laguerre(f, *args, ndim=ndim, deg=deg) + + +def quad_laguerre( + func: Callable, a: np.ndarray, *args: np.ndarray, ndim: int = 0, deg: int = 100 +) -> np.ndarray: + r"""Numerical integration over the interval `[a,inf]`. + + + Parameters + ---------- + func : Callable + The function to be integrated. + a : float or ndarray + The lower bound of integration. + *args : float or 2D array, optional + Extra arguments required by the function `func`. + ndim : int, optional + Number of dimensions of the `func`, by default 0. + deg : int, optional + Degree of the Laguerre polynomials (see numpy.polynomial.laguerre.laggauss + documentation), by default 100. + + Returns + ------- + ndarray + Numerical integration of `func` over the interval `[a,inf]`. + + Notes + ----- + The numerical integration using Gauss-Laguerre quadrature of: + + .. math:: + + \int_a^{+\infty} f(x) \mathrm{d} x + """ + f = lambda x, *args: func(x + a, *args) * np.exp(x) + return gauss_laguerre(f, *args, ndim=ndim, deg=deg) + + +# args manipulation functions + + +def args_size(*args) -> int: + """Number of elements on axis=-2. + + Parameters + ---------- + *args : float or 2D array + Sequence of arrays. + + Returns + ------- + int + The number of elements. + + Raises + ------ + ValueError + If `args` have not same size on axis=-2. + """ + if len(args) == 0: + return 0 + elif 1 in map(np.ndim, args): + raise ValueError("args must be float or 2D array") + else: + s = set(np.size(arg, axis=-2) if np.ndim(arg) >= 2 else 1 for arg in args) + if len(s - {1}) <= 1: + return max(s) + else: + raise ValueError("args must have same size on axis=-2") + + +def args_ndim(*args) -> int: + """Max number of array dimension in args. + + Parameters + ---------- + *args : float or ndarray + Sequence of arrays. + + Returns + ------- + int + Maximum number of array dimension in `args`. + """ + return max(map(np.ndim, args), default=0) + + +def args_take(indices: np.ndarray, *args) -> Tuple[np.ndarray, ...]: + """Take elements in each array of args on axis=-2. + + Parameters + ---------- + indices : ndarray + The indices of the values to extract for each array. + *args : float or 2D array + Sequence of arrays. + + Returns + ------- + Tuple[ndarray, ...] + The tuple of arrays where values at indices are extracted. + """ + return tuple( + np.take(arg, indices, axis=-2) + if np.ndim(arg) > 0 + else np.tile(arg, (np.size(indices), 1)) + for arg in args + ) + + +# plotting + + +def plot( + x: np.ndarray, + y: np.ndarray, + se: np.ndarray = None, + alpha_ci: float = 0.05, + bounds=(-np.inf, np.inf), + **kwargs +) -> None: + r"""Plot a function with a confidence interval. + + Parameters + ---------- + x : 1D array + x-axis values. + y : np.ndarray + y-axis values. + se : np.ndarray, optional + The standard error, by default None. + alpha_ci : float, optional + :math:`\alpha`-value to define the :math:`100(1-\alpha)\%` confidence + interval, by default 0.05 corresponding to the 95\% confidence interval. + If set to None or if se is None, no confidence interval is plotted, by + default 0.05. + bounds : tuple, optional + Bounds for clipping the value of the confidence interval, by default + (-np.inf, np.inf). + **kwargs : dict, optional + Extra arguments to specify the plot properties (see + matplotlib.pyplot.plot documentation). + + """ + ax = kwargs.pop("ax", plt.gca()) + drawstyle = kwargs.pop("drawstyle", "default") + (lines,) = ax.plot(x, y, drawstyle=drawstyle, **kwargs) + if alpha_ci is not None and se is not None: + z = stats.norm.ppf(1 - alpha_ci / 2) + yl = np.clip(y - z * se, bounds[0], bounds[1]) + yu = np.clip(y + z * se, bounds[0], bounds[1]) + step = drawstyle.split("-")[1] if "steps-" in drawstyle else None + ax.fill_between(x, yl, yu, facecolor=lines.get_color(), step=step, alpha=0.25) + ax.legend() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4ef3cb8 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +numpy>=1.17.0 +scipy>=1.3.1 +matplotlib>=3.1.1 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..60b6b2e --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. diff --git a/tests/test_distribution.py b/tests/test_distribution.py new file mode 100644 index 0000000..fc42657 --- /dev/null +++ b/tests/test_distribution.py @@ -0,0 +1,73 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.datasets import load_power_transformer +from relife.distribution import ( + Exponential, + MinimumDistribution, + Weibull, + Gompertz, + Gamma, + LogLogistic, +) + +# fixtures + + +@pytest.fixture(scope="module") +def data(): + return load_power_transformer() + + +@pytest.fixture( + scope="module", + params=[ + Exponential(0.00795203), + Weibull(3.46597395, 0.01227849), + Gompertz(0.00865741, 0.06062632), + Gamma(5.3571091, 0.06622822), + LogLogistic(3.92614064, 0.0133325), + ], +) +def model(request): + return request.param + + +# test functions + + +def test_sf(model): + assert model.sf(model.median()) == pytest.approx(0.5, rel=1e-3) + + +def test_rvs(model): + size = 10 + assert model.rvs(size=size).shape == (size,) + + +def test_mean(model): + assert super(type(model), model).mean() == pytest.approx(model.mean(), rel=1e-3) + + +def test_mrl(model): + t = np.arange(10) + assert model.mrl(t).shape == (t.size,) + + +def test_fit(model, data): + params = model.params.copy() + model.fit(*data.astuple()) + assert model.params == pytest.approx(params, rel=1e-3) + + +def test_minimum_distribution(model, data): + params = model.params.copy() + n = np.ones((data.size, 1)) + model = MinimumDistribution(model).fit(*data.astuple(), args=(n,)) + assert model.params == pytest.approx(params, rel=1e-3) diff --git a/tests/test_nonparametric.py b/tests/test_nonparametric.py new file mode 100644 index 0000000..abf3872 --- /dev/null +++ b/tests/test_nonparametric.py @@ -0,0 +1,28 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.datasets import load_power_transformer +from relife.nonparametric import ECDF, KaplanMeier + +# fixtures + + +@pytest.fixture +def data(): + return load_power_transformer() + + +# test functions + + +def test_fit_ecdf_kaplan_meier(data): + time = data.time[data.event == 1] + ecdf = ECDF().fit(time) + km = KaplanMeier().fit(time) + assert ecdf.sf == pytest.approx(km.sf, rel=1e-4) diff --git a/tests/test_regression.py b/tests/test_regression.py new file mode 100644 index 0000000..d5d413c --- /dev/null +++ b/tests/test_regression.py @@ -0,0 +1,79 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np +from scipy.stats import boxcox, zscore + +from relife.datasets import load_insulator_string +from relife.distribution import Exponential, Weibull, Gompertz, Gamma, LogLogistic +from relife.regression import AFT, ProportionalHazards + + +# fixtures + + +@pytest.fixture(scope="module") +def data(): + time, event, entry, *args = load_insulator_string().astuple() + covar = zscore(np.column_stack([boxcox(col)[0] for col in args[0].T])) + return time, event, entry, covar + + +@pytest.fixture( + scope="module", + params=[ + Exponential(0.05), + Weibull(2, 0.05), + Gompertz(0.01, 0.1), + Gamma(2, 0.05), + LogLogistic(3, 0.05), + ], +) +def baseline(request): + return request.param + + +@pytest.fixture(scope="module", params=[AFT, ProportionalHazards]) +def model(request, baseline): + beta = [1.0, 1.0] + return request.param(baseline, beta) + + +@pytest.fixture(scope="module") +def covar(): + return np.random.uniform(size=(5, 2)) + + +# test functions + + +def test_sf(model, covar): + assert model.sf(model.median(covar), covar) == pytest.approx(0.5, rel=1e-3) + + +def test_rvs(model, covar): + size = 10 + assert model.rvs(covar, size=size).shape == (covar.shape[0], size) + + +def test_mean(model, covar): + assert model.mean(covar).shape[0] == covar.shape[0] + + +def test_fit(model, data): + model.fit(*data) + + +def test_aft_pph_weibull_eq(data): + model_aft = AFT(Weibull()).fit(*data) + model_pph = ProportionalHazards(Weibull()).fit(*data) + assert model_pph.baseline.params == pytest.approx( + model_aft.baseline.params, rel=1e-3 + ) + assert model_pph.beta == pytest.approx( + -model_aft.baseline.c * model_aft.beta, rel=1e-3 + ) diff --git a/tests/test_renewal_process.py b/tests/test_renewal_process.py new file mode 100644 index 0000000..8ebd8ea --- /dev/null +++ b/tests/test_renewal_process.py @@ -0,0 +1,108 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np + +from relife.model import AgeReplacementModel, EquilibriumDistribution +from relife.distribution import Weibull, Gompertz, Gamma, LogLogistic +from relife.regression import AFT, ProportionalHazards +from relife.renewal_process import RenewalProcess, RenewalRewardProcess +from relife.reward import FailureCost + +# fixtures + + +@pytest.fixture( + scope="module", + params=[ + Weibull(2, 0.05), + Gompertz(0.01, 0.1), + Gamma(2, 0.05), + LogLogistic(3, 0.05), + ], +) +def baseline(request): + return request.param + + +@pytest.fixture(scope="module", params=[None, AFT, ProportionalHazards]) +def regression(request): + return request.param + + +@pytest.fixture( + scope="module", + params=[ + None, + AgeReplacementModel, + ], +) +def age_replacement_model(request): + return request.param + + +@pytest.fixture(scope="module") +def model_and_args(baseline, regression, age_replacement_model): + model = baseline + args = () + if regression is not None: + beta = [np.log(2), np.log(2)] + covar = np.arange(0.0, 0.6, 0.1).reshape(-1, 2) + model = regression(model, beta) + args = (covar,) + args + if age_replacement_model is not None: + tmax = model.isf(0.75, *args) + model = age_replacement_model(model) + args = (tmax,) + args + return model, args + + +# test functions + + +def test_renewal_process(model_and_args): + t = np.arange(0, 100, 0.5) + model, model_args = model_and_args + model1 = EquilibriumDistribution(model) + rp = RenewalProcess(model, model1) + y0 = 1 / model.mean(*model_args) + y = rp.renewal_density(t, model_args, model_args) + assert y[..., -1:] == pytest.approx(y0, rel=1e-4) + + +def test_renewal_reward_process(model_and_args): + t = np.arange(0, 100, 0.5) + model, model_args = model_and_args + reward = FailureCost() + reward_args = (1,) + rrp = RenewalRewardProcess(model, reward) + m = rrp.renewal_function(t, model_args) + z = rrp.expected_total_reward(t, model_args, reward_args) + assert m == pytest.approx(z, rel=1e-4) + + +def test_renewal_reward_process_vec(model_and_args): + t = np.arange(0, 100, 0.5) + n = 3 + cf = 1 + rate = 0.04 + model, model_args = model_and_args + reward = FailureCost() + reward_args0 = (n * cf,) + reward_args = (cf,) + discount_args0 = (rate,) + discount_args = (np.repeat(rate, n).reshape(-1, 1, 1),) + rrp = RenewalRewardProcess(model, reward) + z0 = np.atleast_2d( + rrp.expected_total_reward( + t, model_args, reward_args0, discount_args=discount_args0 + ) + ) + z = rrp.expected_total_reward( + t, model_args, reward_args, discount_args=discount_args + ) + assert z0 == pytest.approx(z.sum(axis=0), rel=1e-4) diff --git a/tests/test_replacement_policy.py b/tests/test_replacement_policy.py new file mode 100644 index 0000000..3266a7a --- /dev/null +++ b/tests/test_replacement_policy.py @@ -0,0 +1,106 @@ +# Copyright (c) 2022, RTE (https://www.rte-france.com) +# See AUTHORS.txt +# SPDX-License-Identifier: Apache-2.0 (see LICENSE.txt) +# This file is part of ReLife, an open source Python library for asset +# management based on reliability theory and lifetime data analysis. + +import pytest +import numpy as np +from itertools import chain + +from relife.replacement_policy import ( + OneCycleRunToFailure, + RunToFailure, + OneCycleAgeReplacementPolicy, + AgeReplacementPolicy, +) +from relife.utils import args_size +from .test_renewal_process import baseline + + +# fixtures + + +@pytest.fixture(scope="module", params=[0, 0.04]) +def fit_args(request): + rate = request.param + cp = 1 + cf = cp + np.array([5, 10, 20, 100, 1000]).reshape(-1, 1) + return cf, cp, rate + + +@pytest.fixture( + scope="module", + params=[ + OneCycleRunToFailure, + OneCycleAgeReplacementPolicy, + RunToFailure, + AgeReplacementPolicy, + ], +) +def policy(request, baseline, fit_args): + policy = request.param(baseline) + cf, cp, rate = fit_args + policy.cf = cf + policy.rate = rate + if hasattr(policy, "cp"): + policy.cp = cp + policy.fit() + return policy + + +# test functions + + +def test_one_cycle_optimal_replacement_age(baseline, fit_args): + cf, cp, rate = fit_args + eps = 1e-2 + policy = OneCycleAgeReplacementPolicy(baseline, cf=cf, cp=cp, rate=rate).fit() + ar = policy.ar + assert np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar + eps, dt=0.1) + > policy.asymptotic_expected_equivalent_annual_cost() + ) and np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar - eps, dt=0.1) + > policy.asymptotic_expected_equivalent_annual_cost() + ) + + +def test_optimal_replacement_age(baseline, fit_args): + cf, cp, rate = fit_args + eps = 1e-2 + policy = AgeReplacementPolicy(baseline, cf=cf, cp=cp, rate=rate).fit(fit_ar1=False) + ar = policy.ar + assert np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar + eps) + > policy.asymptotic_expected_equivalent_annual_cost() + ) and np.all( + policy.asymptotic_expected_equivalent_annual_cost(ar - eps) + > policy.asymptotic_expected_equivalent_annual_cost() + ) + + +def test_asymptotic_expected_equivalent_annual_cost(policy): + t = np.arange(0, 400, 0.2) + qa = policy.asymptotic_expected_equivalent_annual_cost() + q = policy.expected_equivalent_annual_cost(t) + assert q[..., -1:] == pytest.approx(qa, rel=1e-1) + + +def test_expected_total_cost_vec(policy): + n = 3 + policy.cf = np.tile(policy.cf, (n, 1, 1)) + policy.rate = np.tile(policy.rate, (n, 1, 1)) + t = np.arange(0, 100, 0.5) + z = policy.expected_total_cost(t) + assert z.sum(axis=0) == pytest.approx(n * z[0, ...], rel=1e-4) + + +def test_sample(policy): + n_indices = max(1, args_size(*chain(*policy.rrp_args()))) + n_samples = 10 + if hasattr(policy, "rrp"): + data = policy.sample(0, n_samples=n_samples) + else: + data = policy.sample(n_samples=n_samples) + assert data.size == n_indices * n_samples