diff --git a/engine/data/Kazaross-XG2.xml b/engine/data/Kazaross-XG2.xml new file mode 100644 index 0000000..942656a --- /dev/null +++ b/engine/data/Kazaross-XG2.xml @@ -0,0 +1,765 @@ + + + + + + + + Kazaross XG2 25 point MET + Generated using XG rollouts to 9pts, GNUbg 0.90 2-ply full rollouts to 15 points. Extended to 25pts by projecting take points. + 25 + + + + + 0.50000 + 0.67736 + 0.75076 + 0.81436 + 0.84179 + 0.88731 + 0.90724 + 0.93250 + 0.94402 + 0.959275 + 0.966442 + 0.975534 + 0.979845 + 0.985273 + 0.987893 + 0.99114 + 0.99273 + 0.99467 + 0.99563 + 0.99679 + 0.99737 + 0.99807 + 0.99842 + 0.99884 + 0.99905 + + + + 0.32264 + 0.50000 + 0.59947 + 0.66870 + 0.74359 + 0.79940 + 0.84225 + 0.87539 + 0.90197 + 0.923034 + 0.939311 + 0.952470 + 0.962495 + 0.970701 + 0.976887 + 0.98196 + 0.98580 + 0.98893 + 0.99129 + 0.99322 + 0.99466 + 0.99585 + 0.99675 + 0.99746 + 0.99802 + + + + 0.24924 + 0.40053 + 0.50000 + 0.57150 + 0.64795 + 0.71123 + 0.76209 + 0.80468 + 0.84017 + 0.870638 + 0.894417 + 0.914831 + 0.930702 + 0.944426 + 0.954931 + 0.96399 + 0.97093 + 0.97687 + 0.98139 + 0.98522 + 0.98814 + 0.99062 + 0.99248 + 0.99407 + 0.99527 + + + + 0.18564 + 0.33130 + 0.42850 + 0.50000 + 0.57732 + 0.64285 + 0.69924 + 0.74577 + 0.78799 + 0.824059 + 0.853955 + 0.879141 + 0.900233 + 0.918040 + 0.932657 + 0.94495 + 0.95499 + 0.96341 + 0.97021 + 0.97589 + 0.98044 + 0.98422 + 0.98726 + 0.98975 + 0.99174 + + + + 0.15821 + 0.25641 + 0.35205 + 0.42268 + 0.50000 + 0.56635 + 0.62638 + 0.67786 + 0.72540 + 0.767055 + 0.802732 + 0.833654 + 0.859934 + 0.882866 + 0.902013 + 0.91847 + 0.93223 + 0.94397 + 0.95367 + 0.96189 + 0.96864 + 0.97432 + 0.97896 + 0.98283 + 0.98600 + + + + 0.11269 + 0.20060 + 0.28877 + 0.35715 + 0.43365 + 0.50000 + 0.56261 + 0.61636 + 0.66787 + 0.713057 + 0.753427 + 0.788634 + 0.819569 + 0.846648 + 0.869999 + 0.89021 + 0.90756 + 0.92246 + 0.93508 + 0.94583 + 0.95488 + 0.96254 + 0.96894 + 0.97432 + 0.97879 + + + + 0.09276 + 0.15775 + 0.23791 + 0.30076 + 0.37362 + 0.43739 + 0.50000 + 0.55480 + 0.60854 + 0.656283 + 0.700209 + 0.739054 + 0.774121 + 0.805203 + 0.832566 + 0.85659 + 0.87761 + 0.89591 + 0.91171 + 0.92535 + 0.93702 + 0.94703 + 0.95553 + 0.96276 + 0.96887 + + + + 0.06750 + 0.12461 + 0.19532 + 0.25423 + 0.32214 + 0.38364 + 0.44520 + 0.50000 + 0.55442 + 0.603718 + 0.649899 + 0.691356 + 0.729447 + 0.763593 + 0.794397 + 0.82158 + 0.84578 + 0.86714 + 0.88589 + 0.90230 + 0.91658 + 0.92898 + 0.93968 + 0.94891 + 0.95682 + + + + 0.05598 + 0.09803 + 0.15983 + 0.21201 + 0.27460 + 0.33213 + 0.39146 + 0.44558 + 0.50000 + 0.550196 + 0.597926 + 0.641481 + 0.682119 + 0.718927 + 0.752814 + 0.78301 + 0.81037 + 0.83483 + 0.85662 + 0.87591 + 0.89294 + 0.90791 + 0.92098 + 0.93240 + 0.94230 + + + + 0.040725 + 0.076966 + 0.129362 + 0.175941 + 0.232945 + 0.286943 + 0.343717 + 0.396282 + 0.449804 + 0.500000 + 0.548547 + 0.593459 + 0.635880 + 0.674830 + 0.711113 + 0.74371 + 0.77375 + 0.80093 + 0.82543 + 0.84741 + 0.86703 + 0.88448 + 0.89991 + 0.91353 + 0.92550 + + + + 0.033558 + 0.060689 + 0.105583 + 0.146045 + 0.197268 + 0.246573 + 0.299791 + 0.350101 + 0.402074 + 0.451453 + 0.500000 + 0.545552 + 0.589242 + 0.629736 + 0.667927 + 0.70303 + 0.73530 + 0.76494 + 0.79198 + 0.81648 + 0.83862 + 0.85849 + 0.87629 + 0.89214 + 0.90622 + + + + 0.024466 + 0.047530 + 0.085169 + 0.120859 + 0.166346 + 0.211366 + 0.260946 + 0.308644 + 0.358519 + 0.406541 + 0.454448 + 0.500000 + 0.544068 + 0.585701 + 0.625259 + 0.66178 + 0.69610 + 0.72778 + 0.75703 + 0.78381 + 0.80826 + 0.83044 + 0.85051 + 0.86856 + 0.88476 + + + + 0.020155 + 0.037505 + 0.069298 + 0.099767 + 0.140066 + 0.180431 + 0.225879 + 0.270553 + 0.317881 + 0.364120 + 0.410758 + 0.455932 + 0.500000 + 0.541943 + 0.582545 + 0.62036 + 0.65619 + 0.68966 + 0.72081 + 0.74963 + 0.77619 + 0.80054 + 0.82276 + 0.84295 + 0.86123 + + + + 0.014727 + 0.029299 + 0.055574 + 0.081960 + 0.117134 + 0.153352 + 0.194797 + 0.236407 + 0.281073 + 0.325170 + 0.370264 + 0.414299 + 0.458057 + 0.500000 + 0.540750 + 0.57942 + 0.61634 + 0.65117 + 0.68391 + 0.71448 + 0.74290 + 0.76917 + 0.79339 + 0.81559 + 0.83586 + + + + 0.012107 + 0.023113 + 0.045069 + 0.067343 + 0.097987 + 0.130001 + 0.167434 + 0.205603 + 0.247186 + 0.288887 + 0.332073 + 0.374741 + 0.417455 + 0.459250 + 0.500000 + 0.53916 + 0.57679 + 0.61261 + 0.64659 + 0.67859 + 0.70862 + 0.73664 + 0.76265 + 0.78669 + 0.80883 + + + + 0.00886 + 0.01804 + 0.03601 + 0.05505 + 0.08153 + 0.10979 + 0.14341 + 0.17842 + 0.21699 + 0.25629 + 0.29697 + 0.33822 + 0.37964 + 0.42058 + 0.46084 + 0.50000 + 0.53796 + 0.57441 + 0.60929 + 0.64241 + 0.67376 + 0.70323 + 0.73084 + 0.75657 + 0.78046 + + + + 0.00727 + 0.01420 + 0.02907 + 0.04501 + 0.06777 + 0.09244 + 0.12239 + 0.15422 + 0.18963 + 0.22625 + 0.26470 + 0.30390 + 0.34381 + 0.38366 + 0.42321 + 0.46204 + 0.50000 + 0.53676 + 0.57222 + 0.60618 + 0.63856 + 0.66925 + 0.69822 + 0.72542 + 0.75087 + + + + 0.00533 + 0.01107 + 0.02313 + 0.03659 + 0.05603 + 0.07754 + 0.10409 + 0.13286 + 0.16517 + 0.19907 + 0.23506 + 0.27222 + 0.31034 + 0.34883 + 0.38739 + 0.42559 + 0.46324 + 0.50000 + 0.53574 + 0.57023 + 0.60336 + 0.63501 + 0.66510 + 0.69356 + 0.72038 + + + + 0.00437 + 0.00871 + 0.01861 + 0.02979 + 0.04633 + 0.06492 + 0.08829 + 0.11411 + 0.14338 + 0.17457 + 0.20802 + 0.24297 + 0.27919 + 0.31609 + 0.35341 + 0.39071 + 0.42778 + 0.46426 + 0.50000 + 0.53475 + 0.56838 + 0.60073 + 0.63171 + 0.66122 + 0.68921 + + + + 0.00321 + 0.00678 + 0.01478 + 0.02411 + 0.03811 + 0.05417 + 0.07465 + 0.09770 + 0.12409 + 0.15259 + 0.18352 + 0.21619 + 0.25037 + 0.28552 + 0.32141 + 0.35759 + 0.39382 + 0.42977 + 0.46525 + 0.50000 + 0.53387 + 0.56667 + 0.59830 + 0.62864 + 0.65760 + + + + 0.00263 + 0.00534 + 0.01186 + 0.01956 + 0.03136 + 0.04512 + 0.06298 + 0.08342 + 0.10706 + 0.13297 + 0.16138 + 0.19174 + 0.22381 + 0.25710 + 0.29138 + 0.32624 + 0.36144 + 0.39664 + 0.43162 + 0.46613 + 0.50000 + 0.53303 + 0.56508 + 0.59603 + 0.62576 + + + + 0.00193 + 0.00415 + 0.00938 + 0.01578 + 0.02568 + 0.03746 + 0.05297 + 0.07102 + 0.09209 + 0.11552 + 0.14151 + 0.16956 + 0.19946 + 0.23083 + 0.26336 + 0.29677 + 0.33075 + 0.36499 + 0.39927 + 0.43333 + 0.46697 + 0.50000 + 0.53226 + 0.56360 + 0.59391 + + + + 0.00158 + 0.00325 + 0.00752 + 0.01274 + 0.02104 + 0.03106 + 0.04447 + 0.06032 + 0.07902 + 0.10009 + 0.12371 + 0.14949 + 0.17724 + 0.20661 + 0.23735 + 0.26916 + 0.30178 + 0.33490 + 0.36829 + 0.40170 + 0.43492 + 0.46774 + 0.50000 + 0.53153 + 0.56221 + + + + 0.00116 + 0.00254 + 0.00593 + 0.01025 + 0.01717 + 0.02568 + 0.03724 + 0.05109 + 0.06760 + 0.08647 + 0.10786 + 0.13144 + 0.15705 + 0.18441 + 0.21331 + 0.24343 + 0.27458 + 0.30644 + 0.33878 + 0.37136 + 0.40397 + 0.43640 + 0.46847 + 0.50000 + 0.53086 + + + + 0.00095 + 0.00198 + 0.00473 + 0.00826 + 0.01400 + 0.02121 + 0.03113 + 0.04318 + 0.05770 + 0.07450 + 0.09378 + 0.11524 + 0.13877 + 0.16414 + 0.19117 + 0.21954 + 0.24913 + 0.27962 + 0.31079 + 0.34240 + 0.37424 + 0.40609 + 0.43779 + 0.46914 + 0.50000 + + + + + + + 0.500000 + 0.48803 + 0.32264 + 0.31002 + 0.19012 + 0.18072 + 0.11559 + 0.10906 + 0.06953 + 0.065161 + 0.042069 + 0.039060 + 0.025371 + 0.023428 + 0.015304 + 0.014050 + 0.009240 + 0.008420 + 0.005560 + 0.005050 + 0.003360 + 0.003030 + 0.002030 + 0.001820 + 0.001230 + + + + + + diff --git a/engine/data/gnubg.weights b/engine/data/gnubg.weights new file mode 100644 index 0000000..1a6b8e5 --- /dev/null +++ b/engine/data/gnubg.weights @@ -0,0 +1,101973 @@ +GNU Backgammon 1.01 +250 128 5 0 0.1000000 1.0000000 +-3.2630785 +-2.5951145 +1.2166669 +3.9571550 +-0.6251975 +-0.9514757 +6.7359786 +0.1843251 +-2.2232103 +-2.6085324 +0.5113356 +0.5699041 +-0.4588919 +-3.5076666 +-0.5302894 +-0.1171034 +3.0299737 +-2.6685348 +-1.2139442 +-7.5429077 +-1.5058811 +-2.5029807 +-1.7715229 +-0.1214760 +-0.8260607 +-1.8209642 +-2.7298121 +-4.4525237 +1.2649674 +-2.5277421 +0.4372739 +24.0655594 +-0.0538021 +-0.5263628 +-0.1272734 +0.7758872 +-3.0779676 +0.5612360 +-0.9533053 +-7.2029672 +0.0523563 +7.1035948 +1.8091669 +-0.4401488 +-3.1030889 +0.2037937 +4.7141414 +-6.3457141 +-0.2667190 +1.8956021 +-2.9971378 +1.0577508 +-1.7704699 +0.4918472 +1.4956863 +-1.6156567 +1.1246160 +0.4308738 +1.6801161 +-1.5325040 +2.3667657 +-2.0572004 +-1.2046926 +-0.3633396 +-2.3653119 +-3.4910989 +2.7990646 +-0.2579477 +-1.6445107 +-1.8153435 +-1.4301842 +-2.3514256 +-2.5402114 +0.0302004 +-6.3121862 +0.2676840 +-1.1553664 +-7.1764264 +-4.1949697 +2.1605790 +15.0099831 +-1.2176555 +-3.7875445 +-0.6525487 +1.7469025 +-5.1358514 +-2.2538991 +5.9926271 +0.8604234 +0.5465414 +10.2534781 +2.0343356 +-0.8529384 +-2.3475235 +-2.2634652 +-1.7471613 +-2.6538734 +-0.3545569 +-1.3986638 +0.0446277 +-0.5583611 +-1.7118865 +-7.9818878 +1.2890155 +-0.7898102 +0.0497389 +0.0953465 +-0.0486736 +-0.6482612 +1.7374216 +-0.0174016 +0.5086141 +1.5396509 +0.6532667 +0.3555358 +-0.4300672 +12.7855902 +-5.8876638 +0.5931880 +-2.1604097 +-2.4369991 +0.4011405 +2.3036582 +-6.3999891 +1.6628745 +1.6463131 +0.1707394 +-2.0337164 +-3.1058383 +-6.3096876 +-2.5100851 +8.0499144 +-1.3482034 +1.2425112 +10.5055542 +-1.1845516 +-2.5500426 +-3.8983185 +1.6287246 +-0.7536786 +-4.4073005 +-5.2089429 +5.1754742 +-5.4377875 +1.2492975 +-2.6778760 +-4.8266559 +-12.3614492 +-6.8107138 +-7.3189025 +-2.8740058 +-3.9860218 +-7.6302476 +-15.4823313 +0.6710127 +3.0451810 +3.4049799 +-1.8168724 +2.8310425 +42.1161690 +-0.0395632 +-4.5432930 +-0.6340613 +1.0366423 +-4.5067611 +-2.4498670 +-2.2900300 +0.9284374 +-1.7677927 +11.6659088 +2.9213586 +-4.3220992 +-5.3598018 +-6.0912819 +7.5946040 +-15.4589834 +0.5073658 +2.3336170 +-4.5381570 +4.4572787 +-3.4337077 +1.2284665 +3.0709970 +-6.2781539 +0.0838783 +-2.1259453 +2.3516777 +-1.3189969 +5.6256533 +-1.3297201 +-4.3402395 +-1.3851031 +-4.2918329 +-7.5131836 +3.6709931 +0.1062456 +-0.8351016 +-31.3088512 +-3.3755195 +-2.4120088 +1.8324236 +-0.6262449 +-13.1985493 +-0.3824441 +-1.0558372 +-16.2764168 +-9.4082432 +2.8565741 +26.5271606 +-2.2241261 +-2.1969337 +-2.0563855 +2.9330664 +-2.6047828 +-9.0618668 +10.9698467 +3.2951052 +2.7795208 +11.7952118 +2.6313212 +-1.9856031 +-4.3031573 +-3.3352208 +-2.8693008 +-5.6561165 +0.6025390 +-2.3317952 +-3.6431081 +4.7899857 +-8.2875891 +4.4635215 +1.8374455 +4.6022029 +-2.0385535 +-0.4321131 +0.3360066 +-2.9743879 +2.4040616 +0.4208915 +0.2709796 +3.6448236 +2.4359546 +-1.1119783 +-3.5614297 +18.6617222 +-10.5862255 +2.5573199 +-3.2791615 +-2.5862656 +-0.3052702 +1.6269001 +-5.4542656 +-0.4094180 +2.8937776 +0.5152699 +-2.7423477 +-5.0878468 +-6.8499322 +-1.6971900 +8.6603813 +-1.7650293 +-0.4747723 +14.8105650 +-1.6418247 +-4.4642572 +-7.9011884 +0.5447897 +-1.9128567 +-6.2489843 +-12.4232244 +5.8086238 +-5.9435930 +3.2702150 +-5.6314664 +-7.7710838 +-23.0926208 +-7.0152597 +-10.7889557 +-5.2382989 +-5.8727946 +-8.7192383 +-22.0594120 +-1.5548539 +-0.8294895 +3.9576449 +-3.7161765 +3.0952578 +59.0419540 +-0.3323484 +-7.5450006 +-0.8469557 +1.5791932 +-7.1431527 +-2.6942887 +-4.0689030 +-3.9524148 +-2.4430149 +13.6612701 +-2.6168084 +-5.7734971 +-8.5375252 +-10.3404055 +11.0774517 +-20.1372070 +0.5623002 +4.2363162 +-6.7209606 +5.1430221 +-6.3066878 +1.9797844 +3.5543795 +-9.8203344 +0.3879169 +-2.3241653 +3.8682206 +-2.0226176 +7.9044962 +-3.5998201 +-6.0741992 +-2.7376642 +-6.7065444 +-12.3165426 +2.1409819 +-0.6809424 +-2.4449131 +-20.5031319 +-5.7468371 +-4.4607601 +-0.6125760 +-1.8577477 +-22.0466423 +-0.2468694 +-3.1413484 +-25.6338329 +-16.2756901 +5.0019822 +38.8889999 +-3.9704494 +-8.3524342 +-2.6086750 +5.1589279 +-3.6595118 +-7.9090681 +15.8941593 +5.2237401 +1.2552146 +19.2969074 +3.7291994 +-2.7689617 +-7.1009879 +-5.4128013 +-5.6142273 +-8.6701689 +0.0584597 +-4.0482116 +-4.3158994 +6.5374980 +-7.5714965 +3.3788040 +3.4952204 +5.9575973 +-2.8278754 +-0.7237384 +0.7058963 +-2.8662474 +2.8751163 +-0.7646383 +-0.4315735 +3.9433653 +0.2613437 +-2.2470028 +-7.0392361 +30.7644882 +-19.3716850 +3.7650948 +-6.2408452 +-5.4633589 +-0.9318150 +0.3158310 +-14.6941957 +-0.0449143 +4.3314404 +1.4705060 +-3.9919667 +-4.6459689 +-4.0942254 +1.1397423 +1.6416653 +-0.6922868 +-2.9235933 +8.4803190 +-2.5300605 +-3.9472506 +-7.6773767 +-0.8747015 +-1.6674008 +0.6309687 +-15.0074139 +2.0123539 +-0.7204044 +3.3367209 +-7.5401001 +-8.7539253 +-6.1119204 +0.7945973 +-8.9433565 +-3.6900184 +-2.4723642 +-3.3535130 +2.1885962 +-4.2780032 +-7.2003694 +1.1259183 +-6.8492599 +0.8129429 +31.0650291 +0.0459426 +-6.0336552 +-0.4819881 +-0.2601428 +-3.6533270 +0.9873478 +-2.5192959 +-11.6411810 +-2.1175542 +3.7186193 +-8.1632929 +-1.8914746 +-7.6849136 +-13.8308687 +6.4993782 +-5.4332304 +0.1099890 +2.4559636 +-2.6654952 +2.1432886 +-2.6160412 +1.7895638 +0.1262171 +-4.9476628 +0.2370670 +-0.4088812 +1.9959936 +-2.1919758 +5.0637975 +-3.3674047 +-2.3388391 +-2.8112092 +-3.4248948 +-8.9591637 +-0.0469778 +-1.5939610 +-3.3097262 +-1.3017056 +4.7461748 +-3.8278151 +-4.5620975 +-3.3333013 +-18.6857948 +0.7996172 +-4.3583612 +-11.2459249 +-13.9668989 +3.9767509 +22.7412319 +-3.7854567 +-13.2272139 +-0.2647592 +2.5308738 +-2.4053526 +-1.2433414 +10.0447960 +2.3923366 +-2.4904082 +18.4876633 +3.0219610 +-1.3933357 +-6.1279283 +-2.6869621 +-5.4564686 +-5.7349434 +-0.7540606 +-3.1545348 +-3.5696001 +2.3265460 +-13.4674873 +-1.8609520 +2.9407694 +2.8184693 +-2.3759668 +-0.8191799 +-1.7786224 +-1.1238667 +-1.1746341 +-1.7894074 +-1.4119470 +1.7188197 +-3.2814829 +0.4926389 +-9.1734533 +23.6400604 +-15.9694376 +-0.2505890 +-6.1906457 +-6.3870330 +0.0944191 +-1.8356328 +-14.5566864 +0.7254740 +2.4560742 +1.6228774 +-2.4422598 +-2.8294284 +-2.3935051 +1.2638731 +3.2986772 +-0.9368540 +-0.7692054 +5.4614077 +-0.7560355 +-1.7008040 +-3.4722555 +0.8746986 +1.9799964 +-0.8874362 +-2.9372628 +-0.2640986 +0.1989908 +3.0715508 +-2.6945579 +-0.4998630 +-5.3839517 +-1.5984514 +-2.2482030 +-1.4086845 +-0.3338858 +-0.5033299 +-0.7297831 +-2.0393949 +-4.2430930 +1.5572128 +-1.9440516 +-2.0082173 +22.1618977 +0.2252402 +-0.2223777 +0.3836547 +0.6733524 +-2.6135700 +0.9757100 +-1.8417592 +-5.3979731 +-0.0885181 +5.3952827 +1.6441537 +-0.4864500 +-2.6838369 +1.4318429 +3.7457678 +-6.3254213 +0.1816457 +1.9538301 +-2.2236679 +0.2811757 +-1.8099242 +0.5789543 +1.0532296 +-1.2640436 +1.1723363 +0.6023179 +0.7637220 +-1.1811800 +1.9022859 +-1.9172381 +-0.8663096 +0.0777739 +-1.6136291 +-2.5818310 +1.6758199 +0.0252557 +-2.3863046 +-2.0046256 +-1.5301957 +-1.2536548 +-3.4186914 +0.3754251 +-4.7303815 +0.5633305 +-1.4196337 +-8.0583448 +-3.9260030 +2.0134153 +16.4253902 +-0.2915777 +-3.2241843 +-0.8747069 +1.0747567 +-4.7844090 +-1.8755101 +5.7551312 +0.5275332 +0.4313366 +10.0415936 +1.7858360 +-1.3449005 +-1.9939027 +-2.1573937 +-1.4184620 +-2.7521718 +0.2926398 +-1.2720952 +-0.5681263 +-0.7131932 +-2.3026576 +-14.1354141 +1.2063597 +0.0289390 +0.4386136 +-0.1812319 +-0.9522309 +-0.5219580 +1.3343263 +0.2986618 +0.2235422 +1.3404362 +1.0097052 +-0.4786549 +-0.1981751 +12.3161650 +-4.4035659 +0.4865953 +-1.9570175 +-1.2084135 +0.5105437 +3.4533312 +-4.5701079 +0.9119594 +1.4998504 +0.3580139 +-2.2178991 +-1.5010413 +-6.6187878 +-2.7691171 +8.1469479 +-1.9439902 +2.1241381 +10.3181534 +-2.1499820 +-1.5427547 +-4.9045830 +1.4968539 +2.3078668 +-1.3043075 +-4.0913897 +4.9921727 +-4.4911809 +1.0515767 +-2.0905650 +-4.8183150 +-9.4784956 +-6.3244486 +-6.4237404 +-2.4870143 +-4.1026425 +-7.6901908 +-9.3467751 +2.2027981 +2.4145923 +3.5375926 +-0.6306841 +-0.3110920 +36.9426956 +-0.0943293 +-4.7490816 +0.1494192 +1.6211350 +-3.7916455 +-3.0708570 +-2.6915023 +2.2443631 +-1.2073616 +10.3533745 +3.9852355 +-3.5724168 +-4.4471121 +-4.4142456 +7.1000085 +-8.6331062 +0.5163687 +2.5492308 +-3.9872739 +3.0358384 +-3.1196651 +1.5411322 +2.3277895 +-5.2430434 +0.2084942 +-2.3964007 +2.0706546 +-0.1164718 +5.2166228 +-0.5966008 +-4.7254791 +-0.6039162 +-3.0336480 +-5.9580431 +1.4984343 +-0.0775665 +-1.4929134 +-0.4910687 +-5.1872692 +-2.3446834 +1.2435849 +0.0146745 +-10.3647633 +-0.5548275 +-1.2533560 +-3.2880685 +-8.8386755 +1.5762343 +26.5769978 +-1.5070933 +-0.5769849 +-1.6752416 +1.0113689 +0.8615211 +-5.6718097 +10.7002029 +3.7741058 +1.6230103 +11.9668293 +2.0927026 +-2.4607520 +-1.4089237 +-2.7496259 +-2.3111591 +-5.9598398 +1.0001613 +-2.9026682 +-3.1748750 +3.5489173 +-7.0563455 +4.9231076 +1.7092379 +5.0493946 +-1.2161922 +-0.3813125 +-3.9192576 +-3.0459149 +0.5599936 +0.9276856 +0.2727137 +3.5213120 +3.1458962 +-0.3636478 +-2.2698934 +18.8384609 +-7.8077197 +1.7760811 +-2.6569142 +-4.4967451 +0.3128172 +4.1418805 +-2.3000829 +-0.8575351 +2.9974909 +0.9091890 +-2.6193674 +-2.7940993 +-8.8552923 +-2.0121009 +10.4761419 +-2.1126785 +1.0995966 +14.4714785 +-2.2835598 +-3.0521243 +-8.0188465 +1.1644287 +1.5563089 +-5.7073970 +-8.9296694 +6.0082426 +-5.0469761 +3.1111438 +-4.2953358 +-7.4027104 +-18.9079189 +-7.9214282 +-9.7550039 +-4.5744467 +-5.5824599 +-9.0296116 +-18.9267235 +0.3573261 +-1.0531030 +4.6702847 +-2.7764366 +-0.3994407 +55.9067459 +0.1298990 +-7.0360775 +0.1574293 +1.8961326 +-6.5209327 +-3.1027436 +-4.0736742 +-6.6164432 +-2.0407848 +14.3170567 +2.2801957 +-4.1807208 +-7.0642185 +-3.6554751 +10.0988550 +-17.1808567 +0.9844744 +4.1523914 +-6.2204242 +3.2107689 +-5.3351331 +2.2930369 +2.5905700 +-8.4462910 +0.3401747 +-2.5869954 +3.2466502 +-0.5153241 +7.8384590 +-2.3036509 +-6.0153313 +-1.2047865 +-5.0604138 +-9.5248470 +1.1382846 +-0.7369633 +-3.0200803 +-2.1040695 +-6.9782224 +-4.1608539 +-1.1136048 +-0.7082337 +-16.5092392 +0.0441766 +-2.7934563 +-12.3414450 +-14.6125698 +3.7942946 +40.2433167 +-2.6006005 +-4.2485795 +-2.4096508 +2.9965525 +-0.9204491 +-5.2888761 +15.5310717 +5.4585414 +0.7951001 +19.9292545 +3.4797461 +-3.0020809 +-4.2016730 +-4.6944995 +-3.9646513 +-8.8280411 +1.0460253 +-4.3262362 +-3.9784539 +5.1469517 +-8.4060631 +4.0292649 +3.5462968 +6.4985685 +-2.2025826 +0.0090490 +-2.9316452 +-3.6423280 +0.7144063 +-0.0090364 +0.0520647 +5.0537825 +2.4977748 +-1.9258285 +-5.0977101 +29.8270912 +-14.7827768 +2.6632953 +-5.2063503 +-8.4354372 +-0.3281663 +4.1066818 +-8.0534286 +-0.4995272 +4.1850810 +1.6080188 +-4.0003920 +-3.0984399 +-2.8722312 +1.4135040 +2.7763340 +-0.7804693 +-2.6521893 +7.8222136 +-1.5255084 +-3.1492527 +-7.2099376 +-0.8554603 +-2.7278955 +-6.5777593 +-13.6012888 +2.1851361 +-1.4100057 +3.5383439 +-7.3621888 +-6.4421806 +-13.6721182 +-3.2524238 +-7.7066927 +-4.6646824 +-1.4675515 +-3.1990721 +-5.3285861 +-8.9277191 +-7.8845968 +0.4794999 +-4.4654670 +1.1818134 +29.0928059 +0.3904020 +-5.2422423 +-0.1580284 +-0.1101544 +-3.5654628 +0.8219844 +-2.6573362 +-9.9330320 +-2.4598930 +5.2993445 +-6.4318285 +-1.5800006 +-5.7565513 +-7.3140278 +5.9716072 +-4.6690302 +-0.4855048 +2.4667454 +-3.4810009 +0.7671294 +-3.1265044 +1.9306943 +1.1686836 +-5.2136216 +0.4029596 +-0.2051128 +2.3812556 +-0.4455507 +4.9782438 +-4.7514892 +-1.6353531 +-2.5423648 +-2.7368572 +-8.1098709 +-0.8902031 +-1.8994613 +-3.8808901 +-5.1512084 +-5.9711323 +-3.6247344 +-4.0571589 +-3.5566766 +-12.8409147 +1.5688566 +-6.5047984 +-24.3427525 +-13.3364296 +4.2534261 +23.4197140 +-3.8237803 +-12.7661734 +0.0668257 +2.9873068 +0.5479861 +-2.2373109 +9.8649178 +1.3280201 +-2.4428096 +15.7888269 +2.9770613 +-1.3742387 +-4.6164637 +-3.8154240 +-6.1179380 +-5.4659343 +-2.2490375 +-3.7560949 +-3.4654675 +3.0761731 +-6.0079789 +-1.1705616 +2.6429245 +2.1995642 +-2.2879882 +-0.4025489 +-1.5835537 +-0.5991306 +1.4911271 +-2.6674914 +-1.5450244 +0.7106628 +-3.3575132 +0.0955474 +-8.6449184 +23.8939018 +-15.6500807 +1.1382338 +-5.9222693 +-2.9074616 +-0.4107440 +-2.5373902 +-15.5931149 +1.2316717 +2.5815139 +1.5000461 +-4.2004447 +-2.1971877 +-2.6141191 +1.2101640 +3.3829279 +-1.4535410 +-0.0085974 +4.9316478 +-1.3727218 +-0.6902640 +-4.1647816 +1.4131672 +0.8871522 +-0.3201621 +-2.5928504 +-0.7685314 +-0.4948182 +2.9706120 +-1.3037444 +-0.5658464 +-3.5897501 +-1.3409342 +-1.7652336 +-0.8614082 +-0.7442642 +-0.3771860 +0.3338196 +-0.6651455 +-4.8174067 +1.6942208 +-2.5252728 +-4.4891109 +20.9714413 +-0.3350453 +0.4030088 +1.0980545 +0.9915413 +-2.1277769 +0.5058218 +-3.2590034 +-3.4176188 +0.1093220 +4.9560142 +0.7608551 +-1.3772895 +-1.9236430 +0.5321200 +3.5116787 +-4.4266315 +-0.2273422 +1.5616851 +-1.3799946 +-0.6522825 +-1.8941518 +0.6602320 +1.0752617 +-0.8011289 +0.7114565 +0.5811698 +0.4651424 +-1.2412008 +0.8188938 +-1.6074874 +-1.4957505 +0.2561871 +-0.8216842 +-1.7721344 +0.5750757 +-0.0007013 +-2.0491438 +-1.5659816 +-3.8443749 +0.0158803 +-4.1137052 +1.0463433 +-3.3680980 +-0.1221837 +-1.1491922 +-6.4906912 +-3.5658517 +1.5346020 +18.7096214 +-0.2829136 +-2.2710981 +-1.3413333 +0.6001179 +-4.4677258 +0.0461623 +5.6944947 +0.9600857 +0.3806743 +9.9910831 +1.8408016 +-1.7752949 +-1.2606103 +-1.7736027 +-0.9710064 +-2.8153408 +0.1414635 +-1.7828156 +-0.8884946 +-1.0518339 +-1.9744319 +-28.9577866 +1.2332317 +0.8392358 +0.0862102 +-0.4817042 +-1.2500314 +-0.4272945 +0.4719780 +0.7306095 +0.1233732 +1.2794943 +1.4838709 +-0.4460594 +-0.2055990 +9.5388126 +-3.1145196 +0.5900097 +-1.3323511 +-0.4213253 +0.6100612 +-2.6088917 +-3.5284691 +0.6409837 +0.9603800 +0.3543298 +-2.0651748 +0.7364463 +-5.5954142 +-2.7178643 +8.3728256 +-2.2168450 +3.5744665 +9.2067680 +-2.4732230 +-0.2007327 +-6.4823384 +1.4970785 +3.9954677 +1.0174793 +-3.3721566 +5.7416606 +-4.5595794 +0.9964144 +0.5035083 +-4.6702828 +-6.2001519 +-6.5953312 +-5.8683963 +-1.4963671 +-4.0304379 +-7.9245882 +-7.4994130 +5.4656758 +3.0564854 +3.3992262 +-0.3384963 +-0.0866315 +33.1214867 +0.0758507 +-4.9560194 +0.7557735 +2.3760331 +-2.9695101 +-2.7267427 +-3.1096551 +-0.9365119 +-0.8446810 +9.7621107 +4.1333489 +-4.5618396 +-3.3500154 +-7.2798753 +6.3758140 +-3.3927262 +0.6149533 +2.4325032 +-2.9735029 +2.7706912 +-2.9358323 +1.4192649 +2.7040949 +-3.7447424 +0.2401911 +-2.2174799 +1.9576646 +-0.1924181 +3.5559340 +0.2879217 +-4.5509496 +0.0551829 +-2.2554772 +-4.1036496 +-0.3635580 +-0.1423831 +-1.6492302 +0.3755102 +-6.9061880 +-0.8386620 +0.0888304 +0.8153592 +-7.3957705 +-0.4725527 +-0.6088471 +4.5629458 +-8.5014830 +0.6086998 +26.7119961 +-1.3130909 +1.9494479 +-2.0230734 +-0.0056482 +0.3539625 +1.5564666 +10.8038673 +3.9982693 +0.6140798 +11.5875731 +1.6444498 +-2.5527956 +0.8798097 +-1.8778752 +-1.2612734 +-5.9185610 +1.1776100 +-2.8978629 +-3.2849243 +3.6860285 +-4.2383366 +3.5875015 +2.0169001 +6.4981418 +-1.8372740 +-0.3163142 +-7.8922343 +-2.9122388 +0.6075510 +1.3051679 +0.2418867 +2.9738722 +3.7544675 +-0.0524816 +-1.8455756 +18.8100986 +-5.5545883 +2.0686376 +-1.8134732 +0.0155939 +0.0718623 +-2.3172631 +-0.9179842 +-1.5705004 +2.3055544 +1.1537424 +-2.8002377 +1.4929903 +-7.6863246 +-2.3736897 +11.3001080 +-2.4810469 +3.2270069 +13.3365469 +-1.9951446 +-1.4045982 +-9.5960608 +1.7703389 +3.5564773 +-2.6164804 +-6.9492083 +6.1704516 +-5.9805269 +2.8238206 +-1.3913991 +-6.4393182 +-13.8953638 +-8.8402433 +-8.8225079 +-3.3421910 +-5.2184100 +-9.3966970 +-17.4227943 +5.0728908 +-0.0863572 +4.5604744 +-1.7851589 +-1.2138269 +49.3823471 +0.4508708 +-6.6805921 +1.0201479 +2.6681092 +-5.7489629 +-2.6625896 +-4.0373960 +-12.1743670 +-1.5256193 +14.0797186 +4.3122411 +-5.3536096 +-5.6679192 +-9.9348993 +9.2969303 +-9.0354376 +1.0470976 +3.9267399 +-5.3973236 +3.4348745 +-5.1331692 +1.8414290 +2.9192467 +-6.2262173 +0.4668513 +-2.5905180 +3.0722766 +-1.0031549 +6.7108035 +-1.1458398 +-5.8961363 +-0.2245982 +-3.9700763 +-6.7851944 +-0.1157362 +0.1179240 +-3.2357674 +-1.9798318 +-8.0659189 +-1.7822683 +-1.4981154 +0.7619355 +-11.9856510 +0.0653654 +-1.9171523 +-4.9491081 +-13.1470785 +2.4995403 +41.3355980 +-2.4896579 +-0.2898487 +-2.4502306 +1.7297584 +-0.9558122 +-1.4562016 +15.7323256 +5.3036122 +0.0189249 +18.9431725 +3.0966656 +-3.1672571 +0.2460497 +-4.0090351 +-3.0402358 +-8.7053785 +1.6244688 +-3.9466796 +-4.0770693 +5.1521211 +-5.4680262 +1.7873718 +3.7980785 +8.1157951 +-3.5599236 +0.1089847 +-9.3592176 +-3.8220727 +1.2032957 +0.6826840 +0.0525817 +4.4873152 +4.2539821 +-2.6249402 +-3.6484628 +28.6070309 +-11.1955853 +3.2972889 +-3.7532289 +-0.4295067 +0.2279795 +-1.1341934 +-4.7685061 +-0.9978490 +3.5660622 +1.4428874 +-4.2385097 +-2.7787008 +-1.9516691 +1.3831712 +3.5534816 +0.1654471 +-1.9369053 +7.0677500 +-0.9898072 +-3.5310230 +-6.6094160 +-1.8502892 +-1.0733106 +0.1270736 +-8.6475506 +1.6880804 +-2.7655337 +3.5811949 +-4.6979113 +-3.8355141 +-16.5758591 +-0.1413772 +-6.6629100 +-3.7693863 +-1.0826708 +-2.3686948 +-30.8470154 +-6.3853488 +-4.9023638 +1.0248865 +-6.0553908 +1.0779781 +34.2880287 +0.6205879 +-4.6234765 +0.2318162 +0.6676472 +-4.3148956 +1.0743659 +-2.3907886 +-14.1379318 +-2.4271672 +5.9856501 +-2.2761495 +-1.9020849 +-3.9509683 +-24.5363388 +5.1735106 +-7.2431784 +0.3814516 +2.8020694 +-4.1950588 +0.5329245 +-3.1420584 +1.0516557 +1.1904771 +-5.6494765 +0.1108806 +-0.3187039 +2.4843915 +-1.4767290 +5.2977247 +-3.5511348 +-1.0899982 +-1.8992256 +-4.3186836 +-7.7010074 +-0.1307776 +-0.6546961 +-3.4516170 +-6.3459063 +1.7650384 +-3.8226752 +-4.5520902 +-0.2050694 +-14.0516129 +1.5503992 +-4.3283973 +-24.9747028 +-11.2795563 +3.5898571 +25.5030041 +-2.7571511 +-7.9644055 +-0.3502910 +2.7499142 +-17.5683918 +-1.6739683 +9.5663509 +2.7446647 +-2.0138912 +17.0938740 +3.2041609 +-1.0366420 +-1.2039509 +-3.4131939 +-3.6907382 +-5.4354477 +0.0476544 +-2.3701653 +-2.5447366 +1.4108537 +-1.1586425 +-1.2647429 +2.7294014 +3.0782800 +-2.7149458 +-0.1916495 +-2.3259339 +-0.8799897 +2.6674833 +-2.2597132 +-1.5029353 +2.4727314 +-2.0373497 +-6.8996372 +-5.0948529 +24.0648384 +-11.6427679 +0.6033567 +-6.3729787 +-4.7452750 +0.3125747 +-0.5296812 +-12.7773008 +1.2630955 +2.1167603 +2.1486683 +-2.9924889 +-1.6555122 +-3.3251727 +1.3108939 +3.1968064 +-1.6668493 +0.3736165 +3.8506639 +-2.4588411 +0.2303975 +-4.4005079 +1.1455300 +-3.0492187 +-1.0760789 +-2.0786462 +1.9060930 +-1.3692743 +3.0936539 +-1.0462743 +-0.9102946 +-2.2745230 +-1.3359624 +-1.4229941 +-1.0394936 +-0.4501481 +-0.3275095 +-0.3983202 +0.4342790 +-5.4372020 +2.2332792 +-2.0325735 +-8.3033161 +22.3587170 +-0.2239455 +0.0983491 +1.1014212 +0.7584802 +-2.0134342 +0.9121975 +-5.0433459 +-2.7381237 +-0.0432411 +4.3685641 +0.2764427 +-0.7596357 +-2.3904669 +-1.3667537 +2.6609015 +-3.6749444 +-0.6189196 +1.2053238 +-0.6104986 +-1.2759581 +-1.6028289 +0.5884616 +1.4542575 +-0.8704668 +0.4892673 +0.4141681 +0.0327295 +-0.5539690 +0.2325681 +-1.5152644 +-1.3449205 +1.0663795 +-0.3317944 +-0.1841667 +0.3103426 +0.2051909 +-0.5033728 +-1.1662564 +-4.4336081 +0.6609008 +-4.6620889 +0.8195183 +-1.0341128 +0.0921293 +-1.2199972 +-2.5843341 +-3.2771475 +1.3275245 +17.0827522 +0.0026859 +-1.6440850 +-1.5441889 +0.0245893 +-2.8320441 +0.4945618 +5.7294474 +1.3004414 +0.1195605 +10.0557117 +1.2770308 +-1.8259550 +-0.8725595 +-1.0378499 +-1.3253051 +-2.6641307 +-0.1543676 +-2.2943592 +-1.1267186 +-1.4686852 +-2.7429483 +-10.2279062 +1.9719126 +0.7093419 +-0.9531396 +-0.4264172 +-1.0801452 +-0.6315277 +2.1591971 +0.9973966 +0.6060714 +0.5160768 +1.6440268 +-0.5984527 +-0.4177701 +9.1350307 +-2.1504517 +0.2422655 +-1.3164674 +0.5248001 +1.1195624 +-3.3935609 +-1.5871694 +0.1223989 +0.0073593 +0.4354451 +-2.0855751 +-15.8750305 +-5.3109794 +-2.8908370 +8.1440611 +-2.3918488 +4.4316010 +7.5505891 +-3.7703886 +1.0782628 +-7.2627273 +0.7059036 +1.9188784 +3.5800152 +-2.1849785 +6.1232433 +-4.5642247 +0.7391185 +1.5603670 +-5.2096653 +-4.0411673 +-7.0369396 +-5.4658046 +-1.1112913 +-3.7641284 +-8.0406733 +-7.8342729 +8.3580236 +3.9589455 +4.0192499 +0.0472611 +-1.2887354 +31.9776363 +-0.2137033 +-5.3608627 +0.9980053 +2.8153238 +-2.3249719 +-2.3411615 +-3.7234745 +-3.9803452 +-0.7456331 +9.0372295 +3.9089522 +-3.3847513 +-2.7809327 +-7.7970805 +5.4617295 +-0.7282804 +0.6704420 +2.2273731 +-2.0511403 +0.2257859 +-2.4994862 +1.5293040 +3.5722651 +-3.1946256 +0.4134462 +-2.4504168 +0.4375412 +0.9255285 +1.4088526 +0.5603209 +-4.0151167 +1.0946062 +-1.9099166 +-1.9679513 +-1.3931645 +0.4451121 +-0.7191975 +0.1132749 +-6.7596955 +0.2568071 +-0.9612466 +1.3557479 +-4.2274442 +-0.2624012 +-0.8702624 +11.9887190 +-8.0354414 +0.2447871 +26.3624115 +-0.9970303 +4.0299549 +-2.3426745 +-0.8114023 +3.8484297 +2.5155632 +10.5780401 +4.9758086 +0.1273747 +11.2496767 +1.1300808 +-2.4477522 +-0.4322138 +-0.8983563 +-1.0087211 +-5.7984943 +1.4538196 +-3.7109110 +-3.6740153 +3.6839066 +-4.2528934 +2.3363395 +1.9261025 +7.9635901 +-2.7923570 +-0.7075984 +-5.1618218 +-3.4528167 +2.9952292 +1.3378533 +0.4395613 +2.4461563 +4.0007315 +1.7883399 +-1.7702104 +19.4006119 +-4.1122866 +1.3073089 +-1.5370362 +1.2865759 +1.0670382 +-5.4829955 +1.5697722 +-2.5466602 +1.5949979 +1.3541133 +-2.7909105 +-19.1139469 +-6.9381595 +-2.3605347 +11.3744974 +-2.6260967 +4.4428582 +10.9901390 +-3.6944652 +0.2719437 +-10.3188572 +1.0257207 +1.3309532 +0.4923519 +-5.0903001 +6.1218348 +-6.1589656 +2.8798666 +-0.9817556 +-6.1293836 +-9.7630577 +-8.6306715 +-7.7731876 +-2.5258973 +-4.6811714 +-8.9355202 +-10.6068201 +8.5944958 +1.2073270 +5.5783820 +-1.5569094 +-0.3517807 +48.6590195 +0.4994762 +-7.0214357 +1.6349474 +3.3229907 +-4.7217999 +-1.6844815 +-3.3538897 +-13.5385065 +-1.2165393 +13.5660191 +5.2788558 +-3.7779164 +-5.2567630 +-9.9247437 +8.1519938 +-5.5860176 +1.0712334 +3.6937487 +-3.7449441 +0.5269756 +-4.3099008 +1.7563884 +3.9895692 +-4.9659986 +0.9240567 +-2.8586147 +1.3695729 +0.2197457 +4.6013174 +-0.7245649 +-5.1019464 +1.4244540 +-3.0939884 +-3.2810934 +-0.9645249 +0.9663659 +-2.2959194 +-1.9557813 +-6.9063945 +0.4463612 +-3.0811081 +1.8156720 +-6.6789050 +0.6157660 +-1.7708776 +3.6731296 +-11.9715538 +1.5309665 +40.5152740 +-1.3519130 +2.7712677 +-2.5651624 +0.0541696 +2.7893810 +0.7446937 +15.3614025 +6.3986616 +-0.5353504 +18.8955498 +2.1315095 +-3.1342757 +0.5326484 +-2.4750979 +-2.1618910 +-8.6136465 +1.8631569 +-4.8143129 +-4.2032585 +4.6530766 +-5.8187943 +0.3297781 +3.8240521 +9.4180412 +-4.6256332 +-0.1846332 +-8.1303825 +-4.5864105 +4.1384373 +0.9470469 +0.6089964 +3.9633353 +5.3418264 +0.7702597 +-2.8767316 +29.7244530 +-8.3098125 +2.3931420 +-3.4053657 +1.2793760 +2.1652648 +-4.9664559 +-1.2876770 +-3.3230996 +3.1608555 +1.8503784 +-4.0098681 +7.2577500 +-4.4725814 +1.9868691 +3.1217394 +-0.6881358 +-1.3594332 +6.4319496 +-1.2799528 +-2.0939393 +-5.8965282 +-2.3230627 +-1.2214651 +-10.7554808 +-8.3768892 +1.8685349 +-1.1947155 +4.1307073 +-5.4883852 +-4.4758439 +-14.1252785 +-0.9287837 +-4.6353951 +-4.9988451 +-1.0417677 +-3.9144397 +-2.0432770 +-2.5730140 +-6.9263525 +0.6090559 +-3.7013829 +1.0977902 +28.5129757 +0.0867461 +-2.2866042 +1.1310604 +0.2388355 +-5.5939960 +0.3389938 +-1.9374416 +-15.8739462 +-1.6663262 +4.8184156 +-0.0106714 +-1.6830879 +-4.1737375 +-5.6839485 +4.3922400 +-6.7221303 +1.1096814 +3.0760870 +-3.2767296 +-0.3634589 +-3.2943459 +0.5953241 +1.4968210 +-6.2019005 +-0.1880767 +-0.2864142 +1.8397948 +-2.4634953 +5.1732183 +-2.6506586 +-1.7007794 +-1.4321139 +-2.9507618 +-5.5624151 +0.3582135 +-1.4826978 +-2.4703760 +-3.2840238 +-3.7665548 +-1.3310027 +-4.6362271 +0.8720662 +-8.6200762 +1.0654541 +-2.8316770 +-24.0207806 +-9.1017456 +1.8498256 +26.2929382 +-2.0552125 +-4.9128904 +-0.9330269 +0.5440956 +1.8574480 +-1.2020208 +9.1022625 +3.1350732 +-1.9940000 +16.4614906 +3.3689725 +-0.8986520 +-4.4031258 +-1.8958043 +-1.2322750 +-5.2417650 +0.8455766 +-1.7967187 +-3.5293453 +-0.4114042 +-2.8375046 +0.1124267 +2.9572320 +2.3253016 +-1.3802084 +0.4598669 +-2.4144342 +-0.4966398 +4.7573123 +-1.6920533 +-1.0793265 +2.8224812 +-0.5218757 +-3.0437031 +-2.6983905 +21.9937038 +-10.4192247 +-1.1228112 +-5.5598879 +-1.8389717 +-0.2161390 +-0.6041927 +-9.3424749 +0.3879820 +1.7652135 +0.8784524 +-2.8977947 +-1.6948552 +-2.2419324 +1.3686516 +3.1424801 +-1.7056286 +0.6893230 +2.6534007 +-2.2661750 +0.6061199 +-4.6221571 +0.7006034 +-4.4492712 +-1.5324149 +-1.4730738 +2.9936845 +-1.2096967 +2.8712630 +-0.6124099 +-0.8860305 +-1.9949245 +-1.5671636 +-1.3415385 +-1.6370401 +-0.5731360 +-0.5373395 +-0.5024185 +1.5557277 +-5.7473249 +1.3850882 +-1.4377154 +-10.7042980 +21.4709091 +-0.1607873 +-0.3954491 +1.2355855 +0.4852597 +-1.8988410 +1.6041449 +-5.8955555 +-3.2274642 +-0.3754740 +4.0046988 +-0.2460533 +-1.5076758 +-2.8519034 +-1.4889609 +1.7643991 +-3.1917689 +-0.5591274 +0.7951035 +-0.2651347 +-2.1374016 +-1.7131095 +0.4448711 +1.2477216 +-0.6238146 +0.0392958 +0.3642372 +0.2071538 +-0.6436267 +-0.8121153 +-1.3694328 +-1.0258666 +0.9106683 +-0.0505910 +0.0220581 +-0.6356784 +0.3065135 +-0.2148274 +-1.3495289 +-5.4116139 +1.1773417 +-5.0835619 +0.4015717 +-0.3480319 +0.0955220 +-0.9283611 +-6.3058753 +-2.7246044 +0.8023037 +16.0328865 +-0.0000175 +-1.1013573 +-1.4263991 +-0.3157265 +-3.0701423 +-0.0256486 +5.7631474 +1.5490392 +-0.5056396 +9.3646755 +0.8463355 +-1.7746254 +-0.8369134 +-0.6340865 +-1.3343834 +-2.5910561 +-0.6993308 +-2.0552115 +-1.8053620 +-1.1528811 +-2.2578280 +-8.6800051 +2.1174884 +0.7650836 +-1.7016783 +-0.4095858 +-1.1267864 +-0.8762921 +2.3177326 +0.9041108 +0.2552167 +0.3871906 +1.9860952 +-0.0230382 +-0.3248531 +7.6440716 +-2.0038795 +0.6247978 +-1.0037509 +0.9288251 +1.3193481 +-1.9196386 +0.6946863 +-0.2442348 +0.1302934 +0.3384669 +-1.6588086 +0.8486804 +-5.0073709 +-2.9641657 +7.7440953 +-2.5149696 +4.9255557 +6.0781116 +-3.9833357 +2.2190545 +-8.1965857 +-0.1061032 +1.7427126 +5.1701961 +-1.1585823 +6.7446718 +-4.1581955 +0.4415684 +3.8749132 +-5.6099558 +-2.6070764 +-6.8856125 +-5.0098634 +-1.0507880 +-3.7198670 +-8.1714907 +-7.1138825 +10.3248205 +4.1879678 +3.7353983 +0.6635730 +-2.8266423 +27.8193855 +0.0115224 +-5.7779555 +1.3988576 +3.3482261 +-2.0268807 +-1.3989515 +-4.5216098 +-7.6229973 +-0.7048792 +7.9762006 +4.2476687 +-3.3056068 +-2.1690028 +-7.1575251 +4.6097755 +-1.2408814 +0.8333702 +2.3479576 +-1.4637951 +-1.4759457 +-2.1200995 +1.6107210 +3.7687378 +-2.7033603 +0.5330917 +-2.5407391 +-0.6920162 +1.2572318 +-0.2691645 +0.9872839 +-3.4479947 +1.4178135 +-1.4658320 +-0.7594038 +-1.8264472 +1.5883675 +0.7686375 +0.6182999 +-4.1653142 +1.2572749 +-1.9555125 +1.6183109 +-2.1660948 +-0.4574162 +-0.4870889 +23.8757954 +-7.1835141 +-0.6115595 +24.7308769 +-0.6277970 +5.4506021 +-2.0674520 +-1.6361008 +0.4580730 +1.9596807 +10.4424286 +5.8433685 +-0.5831996 +10.5836706 +0.8954606 +-2.5220602 +-5.5381312 +-0.3543998 +-0.3546789 +-5.5093808 +1.2523583 +-3.8965466 +-4.2426476 +4.1500988 +-3.9201508 +2.2822239 +2.2887783 +9.6072102 +-3.4319744 +-0.7856714 +-5.0061440 +-3.9212832 +4.7805400 +1.1892465 +0.2229695 +2.2325540 +4.3468070 +1.7069733 +-1.6209671 +18.7213650 +-2.9433050 +1.0526388 +-0.9730709 +2.3355913 +1.2850214 +-3.8059032 +4.0082412 +-3.3533676 +1.1659971 +1.4167403 +-2.0093174 +-2.6896439 +-6.4304028 +-2.3343592 +10.9371567 +-3.0867524 +5.3938828 +9.0756149 +-4.9034038 +2.1270456 +-11.0653601 +0.2730969 +0.3208454 +3.4741626 +-3.5282302 +6.2537289 +-6.1356072 +2.7381635 +1.5938278 +-6.5672693 +-6.7566967 +-8.0160685 +-7.0484347 +-2.2803330 +-4.5017695 +-9.5985289 +-10.6915359 +11.0049191 +1.4851074 +5.2202749 +-1.0056919 +-1.6989393 +44.6904602 +0.4853990 +-7.4534025 +2.2107003 +3.7950013 +-4.1238589 +-0.9887499 +-4.1792622 +-16.0942383 +-1.1434387 +12.0344696 +5.6668992 +-3.4623158 +-4.6601095 +-12.5375118 +6.8669252 +-4.6899672 +1.1761117 +3.5174212 +-2.9933450 +-1.2752866 +-3.7719791 +1.7274524 +3.6549587 +-3.8979440 +0.8975786 +-2.9616127 +-0.3001568 +0.7511645 +2.6183534 +0.0415711 +-4.5590577 +1.9007221 +-2.4193616 +-1.3714176 +-1.5343827 +2.2721217 +-0.6334659 +-1.2636802 +-4.8995976 +1.5404936 +-4.3018436 +2.1388710 +-3.2853875 +0.2151784 +-1.5559808 +16.6772480 +-10.7028723 +0.3300746 +39.7891006 +-0.8720815 +4.7585297 +-2.4024787 +-1.2636569 +0.7402970 +0.4454632 +15.4876165 +7.6893148 +-0.9030666 +18.1601772 +1.6564853 +-3.3602059 +-5.9381399 +-1.7388488 +-1.2206748 +-8.3367615 +1.7949544 +-5.0652876 +-4.7247047 +5.0205636 +-5.4326458 +-0.0711897 +3.6661530 +11.2055674 +-5.3892097 +-0.5973346 +-7.6350927 +-5.1962004 +5.7479873 +0.9421394 +0.5398210 +3.6389699 +6.2300754 +0.7352536 +-2.6283767 +28.9826527 +-6.1165905 +1.5122633 +-2.3363118 +2.4472563 +2.3800714 +-4.3762126 +1.9226602 +-4.8770819 +2.4060669 +1.8334981 +-3.0793033 +-1.5618094 +-2.9822195 +2.0524607 +4.8288436 +-0.7786810 +-1.2215334 +4.4048095 +-2.4404397 +-1.6423051 +-6.1193991 +-1.8674405 +-1.3543003 +-8.3773575 +-7.5056453 +1.0098710 +0.3916451 +4.4969182 +-3.9363601 +-1.9635438 +-12.6236267 +-3.9119248 +-3.9118884 +-3.3961809 +-0.7621045 +-3.5707872 +-7.5396128 +0.2888487 +-7.7222128 +1.3427076 +-2.9000046 +0.9799382 +24.8811760 +0.6548743 +-2.7285450 +2.3719778 +0.1491256 +-4.8986554 +1.0267593 +-1.5329218 +-13.4988546 +-0.8398883 +7.6834011 +-0.3070017 +-1.0631113 +-4.4138060 +-9.2049751 +3.8235812 +-9.4989719 +0.6267932 +2.4495323 +-3.0516043 +-0.6084617 +-3.5376413 +0.3613513 +1.0806223 +-4.2804613 +0.1904436 +-0.5512607 +1.7092323 +-2.6117079 +4.3891368 +-1.7327641 +-1.4666653 +-0.1868648 +-3.2153337 +-2.9426110 +1.5178032 +-1.5235107 +-2.4933667 +-4.5634751 +-0.8381680 +-0.8031192 +-5.0775766 +0.7701893 +-4.5927973 +1.6627856 +-3.5373156 +-14.4531355 +-8.1021175 +2.1297004 +25.8243961 +0.2242931 +-5.2373753 +-1.2526275 +0.4213620 +-5.1484108 +-4.3496218 +8.7990198 +2.2498775 +-2.5294926 +15.5987196 +2.9046152 +-1.3537726 +1.3416950 +-0.9583676 +-0.7832614 +-5.0959678 +-0.6318799 +-0.2819780 +-1.7561314 +-0.2313736 +-2.5886180 +-1.1161300 +3.2702510 +1.8553606 +-2.2827492 +-0.0589328 +-2.0761335 +-1.5206803 +5.4877396 +-1.7447174 +-0.5170178 +2.4603395 +1.0611850 +-2.2015500 +-2.2928336 +22.9356594 +-8.2332468 +-1.2780437 +-4.9402189 +-1.6819544 +0.2868153 +-0.9019538 +-8.1672812 +-0.3364375 +1.7054591 +0.7755499 +-2.5670598 +-2.0016921 +-2.4861393 +0.9785609 +2.7091930 +-1.8214426 +0.1328384 +1.4638208 +-2.7105949 +1.6961122 +-3.4531631 +0.5940107 +-4.9342041 +-1.4618864 +-0.2166763 +2.2693565 +-1.6684780 +2.9377294 +-0.5316862 +-0.8163049 +-1.1338197 +-1.6025225 +-1.0327457 +-1.7522656 +-0.5169926 +-0.6796626 +0.2419314 +-1.7319838 +-4.9714265 +1.0984532 +0.5035806 +-20.3450546 +20.5275669 +-0.4632920 +-0.7001970 +1.0541047 +1.0783241 +-1.9226061 +0.0114261 +-8.6156073 +-2.5312130 +-0.3704477 +3.4027877 +0.0604534 +-0.2640704 +-2.8104463 +-0.2762375 +1.1187024 +-1.8760748 +-0.3111097 +0.9158676 +-0.9034015 +-1.1965864 +-1.4066268 +0.0651301 +0.9058191 +-0.6573453 +-0.1698038 +-0.0100683 +0.4019587 +-1.2316502 +-2.0972025 +-0.8928443 +-2.9283769 +1.4385650 +-0.0346954 +1.0398533 +-0.6067647 +-0.0817731 +-0.0242351 +-1.7100428 +-9.7998838 +-0.2193135 +-4.2693052 +0.5602183 +0.7616859 +-0.2279458 +-0.6300668 +-1.9742436 +-2.9842284 +0.1230815 +15.6874218 +-0.9659685 +-0.9890239 +-1.4008880 +-0.8918805 +-2.5592008 +-1.2743945 +5.4790802 +1.8610407 +-0.7988606 +9.1304426 +0.2259361 +-2.0592015 +-0.9494528 +-0.3103333 +-1.3855644 +-2.8112056 +0.7937388 +-2.4647696 +-1.3403798 +-1.6139781 +-0.8572261 +-9.1059370 +2.5781608 +0.1254006 +-2.1579483 +-0.2384232 +-1.6381381 +-0.0396341 +2.9571552 +-0.0997691 +0.1094603 +1.2470112 +1.8491104 +1.3132515 +-0.2874453 +9.1249266 +-1.0102971 +0.2331156 +-1.6695974 +-0.6812428 +1.5308410 +0.0787508 +7.3745866 +-0.1667247 +0.0862363 +0.7727299 +-1.2363449 +0.1621396 +-4.6150055 +-3.3699038 +7.0027213 +-2.7260599 +4.6804714 +4.0037723 +-4.0780954 +3.0915222 +-8.7526522 +-0.3338010 +0.5079889 +4.0894356 +0.9692082 +4.1076655 +-3.1653841 +0.0501990 +3.9705021 +-4.8748956 +-1.0260737 +-6.6773987 +-4.3131237 +-0.8156255 +-3.8965542 +-8.2679596 +-3.1739299 +8.5250502 +6.1081057 +3.3127999 +0.4908257 +-3.5447228 +26.2671089 +-0.2693362 +-6.9992652 +1.3229510 +4.2851014 +-2.0794506 +-1.6563275 +-5.2965717 +-7.4021406 +-0.2702750 +6.2124019 +6.1971622 +-2.4826617 +-3.0036588 +-4.4107771 +3.7003849 +-1.2099802 +1.1523405 +2.6116216 +-1.6375655 +-2.7097449 +-2.4361231 +1.3212698 +3.3043721 +-2.1311505 +0.7905384 +-2.8810830 +-1.3256028 +1.1088141 +-1.6689686 +2.8815501 +-4.2465229 +2.3217490 +-1.1733299 +0.9046340 +-1.6820961 +2.6515133 +0.7808583 +0.1467948 +-6.4383273 +0.6754284 +-0.9748023 +2.2886753 +0.1116487 +-0.9187559 +-0.9814305 +9.4097738 +-6.7218189 +-0.8814517 +23.2651482 +-1.8276629 +7.3785896 +-1.8941934 +-1.3823069 +-1.9092519 +0.0763826 +10.1473351 +5.4973192 +-2.1091008 +10.0312376 +-0.0417444 +-2.9801702 +-3.8125219 +0.6594533 +-0.4925765 +-5.2203169 +2.8474295 +-4.0269380 +-4.6939688 +5.8407960 +-4.4811621 +-0.2830678 +2.4096031 +9.1430264 +-3.7354898 +-0.7711220 +-5.9546547 +-3.1471772 +5.8396578 +0.3359181 +-0.0037000 +2.6445143 +4.4912395 +4.0697403 +-1.6828027 +17.7775860 +-1.4985337 +0.8554012 +-1.1506857 +0.2793227 +1.9923842 +0.6229833 +11.0730066 +-4.7323012 +0.8772827 +1.9792553 +-1.9264766 +-1.5369191 +-5.3889079 +-2.6961877 +10.2175179 +-3.5089462 +5.5926490 +7.3791480 +-5.7289705 +3.3771372 +-11.1701555 +0.1504571 +-1.0404963 +3.5041101 +-1.0783216 +3.3504770 +-5.5348282 +2.4480350 +1.7677374 +-5.9816799 +-4.2748251 +-7.6259980 +-6.0988317 +-1.8382022 +-4.6662903 +-9.7942886 +-8.2248173 +9.7024765 +4.0915508 +4.7965775 +-0.9973752 +-4.0438561 +42.9873734 +0.1075268 +-8.3805561 +2.4514558 +4.7526660 +-3.9298766 +-1.3567698 +-4.9140463 +-9.8638182 +-0.7963223 +10.1101904 +7.6718817 +-3.1606164 +-5.4185028 +-10.6629143 +5.9686971 +-3.6866186 +1.4227973 +3.5361638 +-2.9206669 +-2.7114818 +-3.9375601 +1.4630855 +3.2951272 +-2.9808762 +1.0366627 +-3.4341567 +-0.8608609 +0.3550480 +-0.1539891 +2.1055872 +-5.3817148 +3.1566989 +-1.9160240 +1.2466155 +-1.5889202 +3.2414250 +-0.3874246 +-1.1460047 +-7.2965965 +1.0956463 +-2.6845908 +2.8541696 +0.5931064 +-0.3983776 +-2.0136979 +3.9154439 +-9.7532263 +-0.4834051 +38.7378540 +-1.9537815 +7.7305417 +-2.3652523 +-1.6382447 +-0.5706960 +-1.7564476 +15.2536678 +7.6628466 +-2.1856592 +17.0434380 +0.6466901 +-3.8577700 +-5.9926906 +-0.3181118 +-1.6519182 +-7.9635358 +3.3417134 +-5.4790902 +-5.2544789 +6.3848343 +-5.2107525 +-3.8208435 +3.7361445 +11.0781260 +-6.3026147 +-0.6744874 +-8.1557446 +-4.4417014 +7.0101151 +0.3488748 +0.5373576 +3.9392893 +6.9421682 +3.4737892 +-2.3754234 +28.4114094 +-4.0335898 +0.7646409 +-2.1107206 +0.7388735 +3.0300190 +0.0197390 +9.5079403 +-5.9267592 +1.7843956 +2.3881984 +-2.9530368 +-1.4504564 +-2.7160287 +1.7055792 +5.2063212 +-1.3173871 +0.2952423 +5.1663704 +-1.1537232 +-0.0934843 +-7.0830588 +0.2312984 +-1.0997599 +-4.2037549 +-5.7951899 +-0.4569151 +-3.1899443 +4.5710826 +-4.5834994 +-1.7908081 +-9.6141033 +-2.0008793 +-4.1860065 +-3.0191295 +-0.8285404 +-2.8939874 +-10.4129467 +0.1283726 +-4.7791090 +0.7934371 +-2.8498299 +2.2856677 +29.0504951 +0.5088853 +-2.2300696 +2.8682878 +1.8661705 +-3.2405546 +1.6811534 +-1.4943179 +-7.2670898 +-0.7957197 +6.4698124 +2.5165069 +-1.3335592 +-3.7667878 +-11.9546967 +3.8621025 +-5.1600595 +0.6022997 +2.7119360 +-2.8611243 +-0.3922626 +-3.2605579 +0.6958098 +-0.1934226 +-1.5537986 +0.9955333 +-0.6583264 +1.0962766 +-1.7367507 +4.2513652 +-1.1895634 +-1.4154395 +-0.5610664 +-1.6293821 +-2.5485528 +2.3453541 +-0.1154619 +-2.9026587 +-3.7222083 +-2.1373036 +0.4862029 +-6.2035837 +0.8637751 +-3.5594463 +1.5086991 +-4.2732730 +-12.6074200 +-7.2114253 +1.7534343 +29.2963428 +-1.1697874 +-1.8078574 +-0.9080135 +1.1584004 +3.8732185 +-2.7945404 +9.8270292 +2.4909189 +-2.2330918 +17.4450016 +2.5397046 +-1.7553101 +-9.3271523 +-2.9744065 +-2.8273606 +-5.6328678 +0.4017478 +-2.8091259 +-0.0595334 +1.6104760 +-3.3572376 +-0.8973953 +3.2042499 +2.8216884 +-3.5120590 +-0.1762356 +-5.3169312 +-0.4243449 +3.4258032 +-1.2520756 +-0.9355175 +1.8519275 +2.7704735 +-1.7757211 +-1.8356100 +21.7725430 +-6.3992209 +0.6101965 +-2.8733652 +-0.6927981 +1.6425682 +-0.5144275 +-6.6463442 +-0.8836549 +1.1501220 +1.3597801 +-3.8932886 +-0.8123112 +-1.3029846 +0.6605800 +2.6177478 +-1.6543988 +1.0620852 +1.9164509 +-1.7378950 +0.6723226 +-1.7466278 +0.3497833 +-2.0935800 +0.5904286 +-1.6906327 +0.3850299 +-0.9763808 +2.2336938 +-1.0857364 +-1.0475211 +-1.8724757 +-0.9444799 +-1.5549619 +-0.7180400 +-1.1597023 +-0.0376948 +-0.2439050 +1.9393380 +-1.4668404 +0.6006386 +-1.4532498 +-14.5363226 +13.5745802 +-0.3296362 +-1.5245495 +0.8085205 +0.2126669 +-1.7720374 +1.4540293 +-5.8457699 +-1.7655308 +-0.7574692 +3.0716236 +1.8149914 +-0.6898053 +-0.8828795 +-1.5385592 +0.6344389 +1.3290284 +-0.3813945 +0.2108077 +-0.9387448 +-0.1105409 +-1.3336492 +0.5153507 +0.4485621 +-0.8682463 +0.4619125 +-0.1005922 +-0.0163957 +-0.7451155 +-1.6167948 +-0.5607238 +-0.9406626 +1.3970292 +-0.4215023 +1.5601280 +-0.6328835 +0.3503039 +-1.3431443 +-0.7810752 +-10.3228359 +0.1852587 +-1.3817892 +0.1304421 +1.9200677 +0.0195752 +-0.1636284 +28.8385487 +-3.2408323 +0.4419246 +14.2349739 +0.4014119 +0.6977264 +-0.9731228 +0.0838792 +-0.1194064 +-0.5356032 +4.7836046 +2.3139136 +0.1598206 +10.7841091 +0.8827792 +-1.7626272 +-1.3205900 +-0.1179356 +-1.0039935 +-1.8235974 +-0.3438085 +-1.6404009 +-1.0517712 +-0.0953960 +-0.6995091 +-4.5487852 +1.7832781 +0.9483381 +-2.2168667 +-0.7329830 +-1.6119063 +-0.9708721 +3.9650142 +0.2903282 +0.4380560 +0.8302778 +1.7915568 +-0.0667111 +-0.5976452 +5.5098476 +-1.7089915 +-0.0310266 +-0.7745954 +-0.4277023 +1.4377406 +1.0678313 +-0.0512455 +0.5593308 +-0.1829365 +0.7535813 +-0.6959679 +-0.6513559 +-0.5866214 +1.7101169 +5.8590455 +-2.0310531 +1.4897648 +3.8663518 +-2.6151562 +1.0981295 +-3.2992120 +-0.6818003 +-0.2564956 +0.2114724 +-3.8572099 +-0.8293202 +-1.7016919 +4.7313342 +-2.5936840 +-2.0424130 +-4.4104600 +-2.3540869 +-2.3225617 +-0.7611766 +-1.5361074 +-3.4525201 +-3.5564122 +2.3024359 +-0.6738476 +1.1271232 +-3.4503345 +-2.8646307 +26.1482906 +0.5197031 +-5.2643371 +1.7548512 +2.7908311 +-2.8200419 +1.5367255 +-2.0592449 +-2.2164657 +-0.0592589 +7.8966179 +7.2728252 +1.6301030 +-1.9385651 +-4.3243017 +2.6900172 +-2.4100900 +0.4910524 +2.5867956 +-2.5776842 +-1.0798481 +-2.5001993 +1.3379011 +2.1340296 +-0.5620620 +1.0755391 +-0.1888406 +0.8177124 +0.7620370 +-4.1462102 +-0.1101794 +-1.8177044 +3.2473786 +-0.4697637 +3.8660645 +-0.5400327 +0.9699563 +-2.9929864 +0.7550896 +-0.1417330 +-0.2375240 +-3.8010845 +1.7131728 +4.8841553 +1.0952718 +-2.1197965 +-28.1647224 +-6.4413047 +-0.0124756 +22.5245838 +-0.5952179 +1.8188562 +-0.6207343 +-1.7121936 +-2.9714720 +-2.9258018 +7.8367968 +3.6101182 +-3.0850720 +18.1902008 +1.0634520 +-2.1112053 +0.2413132 +0.0714559 +-1.7136474 +-3.7161942 +2.5614631 +-2.8808432 +-0.1430688 +1.4444946 +-0.6738377 +-7.5494661 +2.9031587 +2.9520876 +-4.3158908 +0.1265585 +-4.6430573 +-2.0107317 +7.9437909 +-0.9587532 +1.1760888 +1.9057169 +3.2735183 +0.4389575 +-1.3976892 +18.9154682 +-3.1562531 +-0.2391297 +-2.1877744 +1.6388336 +1.9142691 +1.3415871 +-2.4364448 +-1.3617134 +0.5765702 +1.9054736 +-2.3294814 +-1.0907428 +-1.1177719 +2.6986699 +8.8568001 +-2.9599333 +2.5377679 +6.1717367 +-4.7350364 +1.5668076 +-6.5605497 +0.0029125 +-2.6973755 +-0.4250196 +-5.8735895 +-1.6612545 +-3.3072755 +7.4592490 +-3.7132370 +-2.0478435 +-6.5441723 +-2.9403996 +-3.6789417 +-1.4606893 +-2.2550180 +-5.3043318 +-6.5248518 +3.9331028 +-2.8707893 +2.3031423 +-5.0718637 +-4.1587210 +40.0886841 +0.5548461 +-6.1152816 +2.5255935 +3.0644157 +-4.2530632 +1.5883448 +-2.0764954 +-4.2709398 +-0.5965358 +11.7313023 +11.3374510 +1.4221898 +-3.3965743 +-7.0935245 +4.0787115 +-4.4706144 +0.4260222 +3.0996397 +-3.8154099 +-1.1424727 +-4.2134767 +1.6004035 +1.0760319 +-0.7262929 +1.7123402 +-0.2003964 +1.5464531 +0.5425917 +-4.3003788 +-0.7581527 +-2.6122494 +4.2682424 +-1.1556901 +4.6939497 +-0.7686802 +0.8135565 +-4.3323183 +-0.4585842 +-0.8042613 +-0.1035578 +-5.1961203 +2.4877062 +6.1661820 +1.5070918 +-3.3468816 +-32.7905273 +-9.5178604 +0.3939063 +36.5333328 +-0.6160997 +2.4155138 +-1.2370443 +-1.2753847 +-3.6561596 +-5.0365267 +12.0765800 +5.5528812 +-3.2767577 +27.0727367 +1.9825495 +-3.2366004 +-0.4634068 +0.0637691 +-3.1439586 +-5.4735785 +3.4372330 +-4.0892472 +0.3277881 +2.8085051 +-1.2273737 +-11.6629019 +3.8664455 +3.9951737 +-7.0032020 +0.0916972 +-5.2570353 +-3.2063205 +10.1179438 +-0.9869813 +1.7840791 +2.7171953 +5.0936208 +-0.1258388 +-2.3291945 +27.7349911 +-4.7657905 +-0.6829184 +-2.8002706 +2.1038842 +2.6470931 +2.3590782 +-4.1341538 +-2.3977427 +1.0838736 +2.6263561 +-3.5787659 +1.2424815 +-0.7407837 +1.1676009 +4.4412045 +-0.8445475 +1.3476559 +8.4273281 +-1.8427474 +0.1149166 +-7.0820937 +-1.2920674 +-0.2106331 +-1.4955553 +-6.3677564 +-1.3084236 +-3.3904524 +4.5684862 +-2.8775449 +1.0520302 +-7.5531569 +-2.2308304 +-1.5174205 +-1.8596543 +-1.9434508 +-2.1649497 +-0.6611072 +1.4930815 +1.6011944 +-1.8131505 +-3.8853619 +1.5624884 +25.0157967 +0.3026667 +0.3293533 +2.2692041 +1.0431688 +-1.8764170 +1.0203356 +-1.5426894 +-2.4656372 +-0.1902986 +5.5338998 +3.7317390 +-1.7029860 +-1.5171887 +-6.1611233 +4.9264927 +-4.1250024 +2.0287671 +3.0038443 +-2.8681567 +-0.4997294 +-2.8572552 +1.0961643 +-0.0886922 +-1.8289328 +1.6242431 +-0.2910567 +1.5912782 +-2.0684028 +4.4955630 +-1.7029655 +0.4476312 +-0.4971210 +-1.4674457 +-1.0686907 +2.6216960 +-1.3087677 +-3.3980405 +-3.6545525 +0.1824397 +0.4422485 +-6.7118211 +2.3540637 +-1.0199467 +1.3428681 +-0.3048867 +-7.6631923 +-5.9009385 +0.5104418 +27.9414635 +-1.6604394 +0.6679009 +-0.7542212 +1.0793867 +-2.0995398 +-5.1896100 +4.8588262 +4.0212688 +-1.4926507 +17.1531715 +3.1266868 +-1.4797642 +-2.2613492 +1.5353436 +-2.4386353 +-2.1802602 +-0.6011924 +-1.5408496 +0.8826048 +2.8476391 +-0.1784667 +-1.5725838 +2.9040174 +2.6744871 +-4.6865792 +0.2370401 +-4.3782620 +-0.8511302 +6.7604556 +-0.7232716 +-0.3066179 +2.0181541 +2.4658823 +0.0467348 +-0.8500826 +14.5571260 +-4.2736340 +-0.2585085 +-3.0410450 +-0.7902907 +0.9525700 +1.7315259 +-8.5541153 +1.0775619 +1.0365260 +3.2453840 +-3.8254440 +-1.1382893 +-0.7833410 +0.3438732 +2.5475695 +-1.2307247 +1.3483185 +1.8669732 +-2.2050171 +0.7249236 +-1.8094239 +0.1986439 +-1.7074171 +1.0135250 +-1.6065893 +-0.0690120 +-0.8911355 +1.8993338 +-1.2446277 +-0.8585905 +-0.9855838 +-0.5745894 +-1.5494720 +-0.7528293 +-0.9068618 +0.1290665 +0.4099421 +1.5133578 +-1.3751609 +0.2021257 +-0.2911747 +-14.4942770 +12.8371544 +-0.3725487 +-1.4699407 +1.0103400 +0.3840080 +-1.6897812 +1.0307344 +-6.1708364 +-0.7983537 +-0.7857583 +2.8717752 +2.3783917 +-1.3445939 +-0.9527841 +-1.1906536 +0.3481807 +1.7076324 +-0.1594941 +-0.0749654 +-0.9180737 +-0.0720083 +-1.3930881 +0.3941747 +-0.2230025 +-0.5122223 +0.5097091 +-0.0420555 +0.0789504 +-0.7078239 +-1.5346590 +-0.7334720 +-0.8107618 +1.5494282 +-0.4281713 +1.8627634 +-0.3877776 +0.3838821 +-1.0445248 +-1.2929895 +-4.8520412 +0.4343857 +-0.8737962 +0.1523029 +2.5614390 +-0.1294594 +-0.2887903 +-4.0616131 +-3.0140889 +0.4186181 +10.7164669 +0.3534432 +1.0050977 +-0.6188726 +0.2151107 +1.0985478 +-0.0643741 +4.1513786 +2.3769178 +0.0101672 +11.0515327 +1.0019493 +-1.4938480 +-1.0532019 +0.0878109 +-0.6291816 +-1.5814550 +-0.0075761 +-1.6535602 +-0.8196976 +0.1330676 +-0.9332050 +-3.9917102 +1.9161637 +1.1158240 +-3.2413764 +-0.5008208 +-2.1902325 +-1.0685201 +4.5267377 +0.3627253 +0.3968246 +0.6889191 +1.7823390 +0.0984816 +-1.0661277 +6.8553753 +-0.9831766 +-0.6394874 +-0.3063715 +0.9177386 +0.7284411 +1.9792010 +-0.1007064 +1.2034478 +-0.2944557 +0.6165801 +-0.6021008 +-2.9464800 +-0.1628902 +1.6085238 +5.6301346 +-1.9145199 +1.8192072 +3.3264527 +-2.5268979 +1.5880884 +-3.8016679 +-1.1944770 +-0.6934859 +0.2321184 +-3.5575442 +0.8845905 +-1.3945637 +4.5101514 +-1.9898819 +-2.4456737 +-3.1754029 +-1.8406005 +-2.3143187 +-0.8227729 +-1.4372098 +-4.0427866 +-2.5611298 +3.5543520 +-2.1574526 +0.7350026 +-3.1437118 +-3.1407528 +25.8098335 +0.1436194 +-4.5232706 +1.9014577 +2.1974301 +-2.8359962 +0.8849936 +-2.0789018 +-2.8451431 +-0.2270766 +7.4543428 +6.8165054 +0.8644579 +-2.2663240 +-3.7621760 +1.9728066 +0.6196236 +0.3286489 +2.6006336 +-2.7816556 +-1.5792458 +-2.2774897 +0.9803493 +1.1347975 +-0.3914734 +0.9615585 +-0.0656177 +0.8067780 +0.4843522 +-5.6256752 +-0.5734517 +-1.4781048 +3.2820175 +-0.7248607 +4.2902007 +-0.0129631 +0.2938685 +-2.7916284 +-6.1116881 +-1.6648794 +0.2095826 +-2.6645260 +2.0143645 +5.7816792 +0.7050002 +-2.2319789 +-4.1432586 +-5.6697640 +-0.4581428 +22.8166218 +-0.9529161 +2.2561774 +-0.8981312 +-1.6848030 +-1.4235966 +-2.3801758 +7.2179613 +4.1999540 +-2.6186490 +17.1995029 +0.7903240 +-1.9366815 +-0.1089176 +-0.2568100 +-1.4941518 +-3.5582042 +1.6223668 +-3.1795139 +-0.1437868 +1.7105240 +-0.9306459 +-6.7233272 +3.4423800 +1.4245898 +-4.9296765 +0.3076779 +-5.1506581 +-1.9108227 +9.1535425 +-0.6201491 +1.0699720 +1.0685160 +3.5182896 +0.2152130 +-1.0197536 +17.2946167 +-2.3044391 +-0.7339607 +-1.3429118 +2.5471647 +1.4428285 +1.8623877 +-1.9203923 +-1.6264058 +0.0102899 +1.8211738 +-2.2023525 +-3.5798287 +-0.6035521 +2.6315815 +8.5212317 +-3.1795855 +2.8768370 +5.7079382 +-4.5807729 +2.3135459 +-6.4445853 +-0.7489623 +-2.7503889 +-0.3159734 +-5.5640364 +0.0009619 +-2.3380270 +7.0741005 +-2.5618947 +-3.0261521 +-4.9882140 +-2.2751482 +-3.4550676 +-0.6771317 +-2.4699318 +-5.8853421 +-3.4991963 +5.3726873 +-3.4187536 +1.5212891 +-4.7823539 +-5.2242060 +39.9302673 +-0.0611644 +-5.1473622 +3.2517252 +2.8618109 +-3.9169526 +1.2965158 +-2.3845174 +-4.3091736 +-0.6903593 +11.0805311 +11.3539639 +0.3816125 +-3.1124947 +-5.4533601 +3.3262157 +-0.3359209 +0.2591589 +3.4626656 +-3.4788928 +-2.5708122 +-3.9063983 +1.4437287 +-0.0229443 +-0.4203213 +1.5381105 +-0.1458866 +1.1647173 +0.3341880 +-3.8970449 +-0.7606946 +-2.3684235 +4.5185027 +-0.7201556 +5.7118268 +-0.7429312 +-0.1150550 +-4.5288043 +-9.5162554 +-2.6262560 +0.7955619 +-3.5296571 +3.2224851 +8.0778074 +0.8829861 +-3.4558091 +-7.7664914 +-8.1586418 +-0.0351890 +36.8644066 +-0.8812122 +3.5714962 +-1.4030073 +-1.2828482 +-1.8827367 +-4.2785487 +10.6651220 +6.6518874 +-3.1829290 +25.5994720 +1.6655412 +-3.3230276 +-0.0125733 +-0.0336099 +-2.7153344 +-4.9671922 +1.8548425 +-5.0096169 +0.1349200 +3.0968463 +-1.7911695 +-11.0204744 +4.5213070 +1.6074659 +-7.2720270 +0.1234591 +-6.6110287 +-2.8956628 +13.4097862 +-0.7717164 +1.5584493 +1.6857498 +5.3232956 +-0.4408198 +-1.4295152 +24.6555233 +-3.6884031 +-1.3515720 +-2.0492668 +2.8105872 +1.6880974 +3.1553404 +-3.3242946 +-2.3268955 +-0.3202947 +2.8881028 +-3.1968367 +-0.5292464 +-1.9582497 +1.1515230 +4.0287552 +-1.7956607 +1.0171161 +5.1891260 +-4.1534767 +0.7932854 +-5.3222752 +0.4182228 +0.2008296 +-0.9027229 +-5.6956954 +-3.5750706 +-2.5678942 +4.1757216 +-2.1030726 +-1.4556609 +-6.6632853 +-0.9134285 +-3.1274190 +-0.1041944 +-1.3195145 +-2.7938340 +-6.3687711 +1.9259797 +-3.2680962 +-0.0056350 +-2.6004736 +1.9760364 +29.6670475 +-0.0103165 +-1.7258430 +2.5362599 +1.0340747 +-1.2555407 +0.9303715 +-0.9980026 +-3.6468000 +-0.7555324 +5.1474090 +5.7409830 +-1.4642985 +-0.1908351 +-9.8415565 +2.7808053 +-3.4084277 +0.0650771 +0.9933233 +-1.9926864 +0.6020280 +-3.1289113 +1.1047463 +-1.1310029 +-1.2436031 +1.0950228 +0.0461539 +0.2839816 +-1.7416480 +2.8395829 +-1.0127736 +-1.3687352 +0.6237774 +-0.0157071 +0.3557839 +1.3077058 +-1.4174329 +-6.7392168 +-5.2489977 +-0.1507207 +0.5055074 +-1.3364873 +2.1611755 +0.6527616 +1.1085907 +-2.4794617 +-7.9206810 +-6.0111508 +1.4516171 +24.8373394 +-0.5961890 +0.7997275 +-0.9381050 +0.8523064 +-2.3094959 +-5.6370931 +6.4344153 +2.6793590 +-1.3198341 +18.4571686 +2.1944559 +-1.8791211 +2.1286376 +-1.2115012 +-2.3703082 +-3.6983724 +0.5657035 +-4.1523023 +0.3569592 +1.7651161 +-4.7078080 +-4.7771382 +3.6612239 +-0.8380795 +-5.7431140 +-0.1330499 +-8.9898052 +-0.3953061 +7.6530099 +-1.2697229 +-0.6020605 +2.1408677 +2.1075354 +-2.0232935 +-1.6600984 +15.7624941 +-4.0499701 +-3.0072663 +-2.3651812 +-3.0724595 +1.4130989 +2.2995753 +-7.9335513 +1.5433502 +-0.1026219 +2.6455984 +-3.2306056 +0.0385445 +-1.1304851 +-0.0540523 +2.7123330 +-1.3916240 +1.4903586 +1.5205507 +-2.6680539 +0.7691565 +-1.8311037 +-0.2336925 +-1.6619866 +1.2812992 +-1.6505421 +0.0080402 +-0.9065152 +1.5505979 +-0.6526113 +-0.7496807 +-0.2300594 +-0.1071987 +-1.7088948 +-0.6003729 +-1.0094727 +0.1147520 +0.3249965 +1.9406775 +-1.1671989 +-0.1048282 +-0.7590051 +-13.4721022 +12.3639812 +-0.3143270 +-1.3369530 +0.7242949 +0.0911832 +-1.5087241 +0.6366923 +-6.5128279 +0.5782897 +-1.0059727 +3.2279851 +2.8700285 +-2.5495157 +-0.5852535 +-1.4260572 +-0.0333269 +0.8189202 +-0.2792614 +-0.5127603 +-0.7700156 +0.3347110 +-1.1842234 +0.1502855 +-0.7271363 +-0.2977313 +0.5967890 +0.0177971 +0.0379001 +-1.1056519 +-1.9321563 +-0.6200660 +-0.8031975 +1.5425773 +-0.0921357 +2.0644362 +-0.1603981 +0.0956051 +-1.5037754 +-0.8666303 +-1.7923944 +0.5482494 +-0.7195320 +0.4050208 +3.1758144 +-0.2798489 +-0.2505954 +-3.2926936 +-2.5131412 +0.1149624 +8.3828011 +0.4708554 +1.3797462 +-0.8252049 +0.0145475 +-0.1951808 +-1.0637137 +3.9213006 +2.3379741 +-0.1948110 +11.1390371 +0.9745281 +-1.5575720 +-0.8223644 +0.2262464 +-1.0711890 +-1.0650742 +0.0681340 +-1.7408209 +-1.4752476 +0.3104915 +-1.0340941 +-3.4777775 +1.4736667 +0.8605360 +-3.4922869 +-0.6901200 +-2.3135207 +-0.8671986 +5.6711721 +0.2907844 +0.4446400 +0.2678343 +2.1649101 +-0.3107427 +-0.8949064 +7.7684093 +-0.4627660 +-0.9752594 +0.0350443 +-0.0057333 +0.6407186 +-0.4954781 +-0.1420740 +1.3522680 +-0.5653452 +0.7963779 +-0.7848933 +-1.6979902 +-0.0428304 +1.5159693 +5.2769308 +-2.2470639 +1.6201452 +3.3913689 +-3.0522280 +1.6513517 +-3.4358435 +-2.1861529 +-1.8212872 +0.6315159 +-3.3097703 +0.6449126 +-0.8281118 +4.2249055 +-1.5170527 +-3.0377116 +-2.0825646 +-1.4678757 +-2.4767206 +-0.6097277 +-1.4324394 +-4.5685720 +-2.2673821 +3.1679029 +-2.5740120 +0.0689158 +-4.6741238 +-2.2635195 +24.7097607 +-0.5637211 +-3.5500059 +1.6680694 +1.3726704 +-2.8731368 +0.4384822 +-2.3448372 +-0.6144099 +-0.4082485 +6.7909989 +8.1976624 +-0.0755986 +-1.5811203 +-2.6850498 +1.7240766 +-0.8274788 +-0.0266783 +1.9500784 +-2.8435106 +-1.2503105 +-1.7798928 +0.7147166 +-0.0882724 +-0.0563296 +1.0413835 +-0.1384198 +0.3939617 +0.0552479 +-6.0134139 +-0.5218527 +-1.4684676 +3.0821605 +-0.0479464 +4.3736858 +-0.1280692 +-0.5637736 +-3.4763889 +-2.6860456 +-0.7721710 +0.5368576 +-1.7312033 +2.4101114 +6.2048373 +0.0004927 +-2.6716652 +-2.2612643 +-4.6546583 +-0.7980725 +21.1294422 +-1.2913152 +2.2293179 +-1.7466325 +-1.4471081 +-2.8538599 +-3.3989480 +6.4707355 +3.3690753 +-2.2485087 +16.8517170 +0.8579910 +-2.2940202 +0.7736551 +-0.1773699 +-2.1342669 +-2.7340829 +0.8185501 +-3.0357575 +-0.7520533 +2.0329669 +-0.6744261 +-7.0307851 +3.2289619 +0.2026024 +-4.8673720 +0.0784325 +-6.6315856 +-1.2887076 +10.8995094 +-1.0301187 +0.8536953 +0.1218530 +3.8499987 +-0.4052876 +-0.0912163 +15.8299494 +-1.7634212 +-1.2924477 +-1.0004447 +-2.5697947 +1.1062254 +-1.0153098 +-1.2060012 +-1.5544101 +-0.6256784 +1.7294004 +-2.4082186 +-1.6422381 +-0.3643192 +2.6594832 +7.7355433 +-3.5523548 +2.7157278 +6.4201446 +-6.1459155 +2.5861280 +-5.9691973 +-2.1367648 +-4.1822252 +1.0735435 +-5.0350485 +0.2730722 +-2.1202614 +6.9591203 +-1.8001386 +-3.8460841 +-2.9989057 +-0.9450102 +-3.4961908 +-0.1845516 +-2.5796332 +-6.4861188 +-2.2557263 +5.0067739 +-3.9735250 +0.7321687 +-5.2868638 +-5.0058413 +32.6402512 +-1.1004597 +-3.4635766 +3.1531129 +2.1158278 +-4.0160522 +0.9147749 +-3.0062468 +-1.1352453 +-0.9831879 +9.8106909 +13.3566961 +-1.3304709 +-2.0038948 +-4.1547999 +3.4681356 +-1.2265384 +-0.1478047 +2.8352618 +-4.0310693 +-1.5426327 +-3.3573554 +1.2468687 +-1.5305685 +0.4131505 +1.5604715 +-0.1304118 +1.2088101 +-0.6895607 +-3.0080662 +-0.5311481 +-2.9014311 +4.4873414 +0.2042753 +6.4104652 +0.7060026 +-1.0549722 +-4.7506723 +-4.6054220 +-1.2611821 +-0.1327063 +-3.9594960 +3.8591940 +9.4798841 +-0.3179342 +-3.9872921 +-4.6693010 +-6.3736258 +-0.8099188 +34.0376778 +-1.3877519 +3.4282546 +-2.2862704 +-1.2095562 +-3.4977207 +-3.3581347 +9.1533575 +6.3165641 +-2.3795421 +24.0637035 +2.0851305 +-4.0241985 +1.1647483 +0.2708637 +-3.7012451 +-4.0216084 +1.8462481 +-5.0902262 +-0.3531119 +3.4856670 +-1.9008262 +-10.7016611 +3.5100582 +0.4470414 +-7.9432120 +-0.6411309 +-8.5650425 +-2.0220401 +14.0268459 +-1.3317081 +1.5943172 +-0.4653772 +5.8168235 +-0.8847463 +-0.1150402 +22.1150608 +-2.5901666 +-1.4148053 +-1.3911239 +-3.2202320 +1.0075417 +0.1587534 +-2.4314506 +-1.5287583 +-1.5219866 +2.8877263 +-3.6522825 +-0.7590917 +0.2425868 +2.3524089 +3.9134672 +-2.1414828 +0.9177830 +2.8199494 +0.3621140 +0.0143812 +-6.4058099 +-2.0407500 +-1.7983565 +-1.6333469 +-4.2224355 +2.8367312 +0.7532571 +4.0724792 +-2.2162318 +-2.0180798 +-8.2231836 +-7.9536147 +-2.8448849 +-1.9893757 +2.4517639 +-3.8555245 +0.2200078 +0.5554512 +0.4831227 +-3.7546036 +0.3433328 +-0.1566573 +21.6360283 +-0.2021964 +-0.1803456 +2.1264446 +-0.8225699 +-1.2459757 +1.8328886 +-0.2081324 +1.7924596 +-1.5982019 +5.5139108 +4.9263129 +-1.9262308 +-0.9210531 +1.2583092 +0.8134810 +-2.6933990 +-1.3166584 +1.6120217 +0.8228907 +2.6009271 +-3.5611253 +0.0184451 +0.3921131 +-2.9841280 +1.9193174 +0.1137503 +2.9429791 +-2.1489959 +5.3188791 +-0.3201901 +-0.4116203 +0.3010462 +0.5343073 +1.6253949 +2.6011839 +-2.7073691 +-4.1828532 +-5.2578859 +-0.5213982 +0.9637597 +-3.5612671 +2.0157816 +3.3420236 +0.0988014 +-8.5154152 +-7.9377518 +-4.3060803 +-0.7785341 +17.1751308 +0.6153299 +-2.4212022 +-0.3996279 +-0.9340953 +1.2499546 +-7.1918688 +5.8821664 +2.4912922 +-1.4925530 +3.2711484 +3.2898779 +-1.7889358 +2.8686397 +-0.9826031 +-3.8547022 +-2.6980495 +1.3030393 +-2.5691521 +-1.1974838 +1.0364478 +1.9519702 +-2.4027872 +3.6593990 +-1.2760822 +-6.8680792 +1.8934721 +-2.4405966 +-1.3884269 +11.5004482 +-2.2635686 +-1.2313941 +-2.7694240 +2.5565565 +-5.4992700 +1.1135805 +10.2127857 +-5.2240376 +0.1894277 +-1.2682624 +0.6429284 +2.4907625 +0.3948810 +-8.1162138 +1.9408985 +-3.1396332 +2.7995338 +-0.8615606 +-1.1844953 +-0.8370579 +-0.3614657 +2.5629859 +-1.4311675 +1.3959447 +1.9703127 +-3.2904632 +1.0473423 +-1.9750133 +-0.3539315 +-1.7586001 +1.1502006 +-1.5245335 +0.1870558 +-0.2124103 +1.1641812 +-0.1694195 +-1.1651386 +0.6091158 +-0.1747431 +-1.7264440 +-0.1919858 +-0.7369381 +-0.0634729 +0.1656216 +2.4518154 +-1.2598398 +-0.8114631 +-1.0002033 +-11.2639322 +11.9817696 +-0.7949311 +-1.2975669 +1.1124334 +0.0526607 +-1.0357053 +1.2978108 +-6.7533760 +0.9828374 +-1.0078638 +3.1915596 +3.6398373 +-1.8618796 +-0.3045435 +-1.3841872 +-0.2550291 +0.3870418 +-0.5299307 +-0.6858103 +-0.8647634 +-0.3931606 +-0.9319958 +0.1361056 +-1.2754741 +-0.2788977 +0.6795621 +-0.0512181 +-0.0498111 +-0.5725298 +-1.4746345 +-0.4113071 +-0.3045142 +1.6719512 +-0.1457368 +2.4328728 +-0.3533631 +-0.0813364 +-1.4093375 +-1.1134278 +-0.5414881 +0.6318365 +-0.6759305 +0.2214048 +3.8558187 +-0.2868690 +-0.5538157 +-2.6548362 +-2.2250290 +0.1359704 +2.1872761 +0.8067505 +1.5231285 +-1.0145051 +0.2377938 +0.0200687 +-1.1875352 +3.5037975 +2.4283209 +-0.2592641 +10.9660873 +1.1253462 +-1.4831150 +-1.4992523 +0.5697741 +-0.6355999 +-0.8101194 +0.1630853 +-1.7811400 +-1.4703599 +0.3675340 +-1.0139936 +-3.1008446 +1.6765114 +0.5801410 +-3.1907380 +-0.9288206 +-0.6100540 +-0.9249352 +6.2304134 +0.3744565 +0.2390486 +0.3872508 +1.9820756 +-0.6356053 +-1.0960546 +7.7744436 +0.0523034 +-1.8016745 +0.2654796 +0.1126914 +0.8087311 +-0.4353626 +-0.0671027 +1.8620716 +-1.0404551 +0.7791033 +-0.5837333 +-6.0304232 +0.9369665 +1.3213938 +4.8978066 +-2.3993342 +1.8097171 +4.5171828 +-5.1043129 +1.3308301 +-3.6538169 +-2.9767087 +-0.7102139 +0.2890022 +-3.1383901 +1.4305089 +-0.9924796 +3.7514389 +-1.7588309 +-2.8468792 +-0.7720446 +-1.4154371 +-2.3795161 +-0.3766237 +-1.2692795 +-4.5864177 +-0.3929668 +3.2493463 +-2.2402194 +-0.1422325 +-4.8983846 +-1.8844125 +21.6856346 +-0.9458900 +-2.8315542 +2.2367826 +1.2928971 +-2.2738209 +0.9840763 +-2.1723762 +0.5909496 +-0.8666341 +6.1619329 +9.4511614 +0.0394415 +-1.0923719 +-2.6580074 +1.7454090 +-1.2515444 +-0.1637493 +2.0651166 +-3.1148181 +-2.8809948 +-1.7942911 +1.2427860 +-1.1086531 +0.3110260 +0.5089926 +-0.1770947 +0.2257145 +0.8081050 +-6.3371677 +-0.8936973 +-1.4855551 +2.8934507 +-0.8593730 +4.7242908 +-0.3366514 +-1.4315034 +-3.4961033 +-2.3711228 +-1.6208920 +0.6692518 +-0.9060109 +2.4809690 +7.0091023 +-0.1661754 +-2.8666277 +-2.9965062 +-3.9021819 +-1.1842405 +19.3731136 +-1.0092314 +2.7110093 +-1.3358865 +-1.1904461 +-1.5587467 +-2.4014449 +5.0409451 +4.3393312 +-2.1964419 +16.4989967 +1.1894225 +-1.9049011 +-2.1698651 +0.1914459 +-1.9661888 +-2.7036986 +1.0708485 +-3.3806217 +-1.1602509 +1.8552910 +-0.2010846 +-5.3651943 +3.7273369 +0.1074631 +-4.6020122 +-0.2118925 +-1.9707216 +-1.8578912 +12.2719641 +-0.3765623 +0.6656172 +-0.5102389 +3.8049610 +-0.1481259 +-0.1389434 +14.7519197 +-0.7593952 +-3.3859885 +-0.5967693 +-1.2857500 +0.9933501 +-0.2379031 +-0.8550963 +-0.1976689 +-1.1029288 +1.9307505 +-1.7309836 +-9.9174271 +0.6582052 +2.0650589 +7.8441544 +-3.7390718 +2.6829586 +6.2197900 +-8.7306290 +2.5749342 +-4.8700180 +-3.1591713 +-2.1225026 +1.1929169 +-5.1642623 +1.2920897 +-1.2640284 +5.9815426 +-1.5901353 +-2.5847456 +-1.2226298 +-2.8675456 +-3.0991642 +0.5171058 +-2.3790700 +-7.6983156 +-1.6902469 +4.8727016 +-3.8534625 +0.4165208 +-6.9776945 +-3.0168493 +32.9082947 +-1.1499001 +-2.9095488 +3.8193126 +2.5166061 +-4.1124654 +0.2013590 +-3.3545930 +-1.3344213 +-0.8761820 +10.0481529 +13.7565269 +-1.4025533 +-1.2136281 +-4.2544756 +2.7764509 +-1.7536027 +0.1090785 +2.6812007 +-3.2711101 +-3.8220844 +-2.7925248 +2.5468533 +-2.4898310 +0.4428411 +1.1661506 +-0.0452411 +0.4743718 +0.1224743 +-2.2010915 +-1.1824803 +-2.4681876 +4.4213061 +-0.0674413 +7.5285902 +-0.2042820 +-2.5125370 +-4.9291224 +-3.6582427 +-2.4684401 +0.4651722 +-0.8568600 +3.7402692 +11.5699091 +-0.1432680 +-4.1544814 +-6.8061776 +-5.3689418 +-1.3529338 +31.1647339 +-1.9270219 +4.4964991 +-1.6157933 +-1.0346369 +-1.9637903 +-1.2171336 +7.3724694 +7.4786491 +-3.2141666 +22.1019478 +2.4915512 +-3.4607046 +-2.6473064 +1.9927663 +-3.8164911 +-3.2569070 +1.7112266 +-5.6315341 +-1.2469884 +3.6526146 +-0.5832378 +-7.9108696 +2.8824272 +0.2306544 +-7.0941820 +0.1949790 +-2.7137833 +-2.6901972 +17.9487228 +0.0157638 +1.3373948 +-0.8623493 +6.3178759 +2.1884706 +0.1301797 +19.4117031 +-0.8028067 +-4.6807227 +-0.7105832 +-3.5970795 +1.3834780 +-0.8279262 +-4.1175175 +-0.0114985 +-2.6595585 +3.2061477 +-3.5718253 +-6.5036273 +-3.9073265 +4.4194431 +3.5332456 +-1.2455020 +-1.7022630 +6.6565032 +-2.6060300 +1.3298178 +-8.4894447 +3.0125766 +-0.5322592 +-4.2373366 +-3.3178623 +1.9667742 +-0.7291952 +6.1412215 +0.4200146 +9.6935263 +-0.8733824 +-0.3920701 +-0.5160203 +1.4328560 +-1.4333272 +-10.4533844 +9.0693226 +0.6465779 +0.1550960 +-2.5694036 +-0.4629134 +-1.6856854 +9.7772799 +0.3420002 +1.7755122 +4.5055809 +-3.0348263 +4.4407816 +3.1815913 +-2.4470422 +4.2326937 +-0.7417233 +4.9654799 +9.0041285 +-2.7097950 +3.2660775 +2.5108540 +2.3354623 +-4.5925765 +2.1799529 +2.8691602 +-4.9018254 +-1.4730241 +-4.5470095 +0.4142490 +-1.5223137 +-1.9164350 +-0.1362549 +1.3917369 +0.3913446 +-1.7724783 +0.8354169 +-3.4342844 +2.1116781 +2.6282613 +-0.1318458 +5.6045017 +-0.4082300 +-3.8015442 +-7.0462584 +-5.9260912 +-2.8209867 +-1.5135839 +2.8679669 +3.2678616 +8.8323841 +-1.0835050 +-0.7349096 +0.0663167 +-2.9389515 +-0.5462715 +17.0699940 +-6.9014635 +-4.3430557 +-3.1687217 +2.3053515 +-3.6060848 +-0.3043597 +6.7725863 +11.8908720 +-1.1193584 +2.7774172 +3.5879815 +-2.3733094 +4.0952730 +1.8850074 +-7.5154901 +-2.5585387 +1.3182049 +-7.5323510 +-1.8441238 +3.2138112 +-6.1371493 +-1.7599386 +1.9709623 +-2.5534315 +-4.4767952 +2.2952127 +-2.4189482 +0.5813554 +16.9135952 +-1.2250786 +1.9096769 +0.8216839 +2.9784908 +2.5757582 +-1.8392850 +-0.1594429 +-3.4689231 +-7.9114013 +-6.5962319 +-0.5936477 +-1.8961198 +-1.7511601 +1.2531892 +1.0363015 +-2.1458929 +2.4783895 +-6.2020335 +1.4638387 +-0.7355199 +-0.3632102 +2.6356251 +-1.6457484 +1.2614584 +0.8473299 +-3.5640869 +1.3850915 +-2.0935152 +-0.5884721 +-1.4989574 +1.1524464 +-1.3826847 +0.1339495 +-0.2937427 +1.0414696 +0.2750343 +-1.2029688 +1.3924420 +-0.2117454 +-1.7492108 +0.1568978 +-1.2044928 +-0.2253080 +0.5502960 +2.6135266 +-1.0931604 +-0.8693023 +-1.2426805 +-8.8102980 +10.5363140 +-1.1993639 +-1.2956761 +1.1206313 +-0.0749007 +-1.0190411 +0.4347424 +-6.5224223 +0.9912466 +-1.2080846 +3.4907672 +4.5658574 +-1.4878954 +-0.0268566 +-1.2332894 +-0.9863938 +0.6339637 +-0.5643808 +-1.5993630 +-1.0887629 +-0.7664469 +-1.2319241 +-0.0827185 +-1.4306898 +0.0506083 +0.7468824 +-0.1527391 +-0.4008292 +-0.3437711 +-2.4480088 +-0.5893407 +-0.7251332 +2.2648017 +-0.0311439 +3.3936238 +-0.5437487 +-0.4487396 +-1.5347798 +-1.1949772 +0.1713158 +0.4280745 +-0.4964786 +0.4350032 +5.0595665 +-0.6370531 +-0.5884897 +-2.3839815 +-1.7729379 +0.2969994 +0.2172823 +0.7051631 +1.8038853 +-1.1124848 +0.4737913 +-0.5630969 +-0.4926764 +2.9744651 +2.5687897 +-0.5777979 +10.9852858 +1.0657153 +-1.7121556 +-2.0387149 +0.7087961 +-1.2744533 +-0.6019583 +0.0847402 +-1.6760280 +-1.4185913 +0.4408461 +-0.8878719 +-3.1185062 +1.6527965 +0.1554153 +-2.5804443 +-0.9522257 +-0.4900944 +-0.8471326 +6.8780236 +0.4352287 +0.4879011 +-0.2625831 +2.2237473 +-0.2035060 +-0.7300310 +6.9810619 +0.4752545 +-1.8095952 +0.2984888 +-0.3478777 +0.7169290 +-0.0539190 +0.1606030 +1.4778897 +-0.9279841 +0.8251860 +-0.3925824 +2.7811875 +0.5891851 +1.0253769 +4.2107549 +-2.8264513 +1.2876617 +4.1640606 +-5.5820847 +1.3079751 +-4.0187035 +-2.6696048 +0.2190827 +0.8039677 +-2.8775198 +1.9803222 +-1.0152137 +3.2274544 +-1.2936993 +-2.6198239 +0.0228067 +-1.4024624 +-2.3535011 +0.8104906 +-1.0488335 +-5.5227208 +-2.0464776 +3.2694161 +-2.1117775 +0.1907010 +-5.6945381 +-1.2001499 +18.1696548 +-0.9337584 +-2.8565607 +2.3062019 +1.0175738 +-2.5131125 +1.3269304 +-2.8668768 +1.2977885 +-1.1147740 +4.7676101 +10.2365112 +-0.3736509 +-0.5253765 +-4.0102358 +1.1918832 +-0.6320586 +-0.3447204 +1.5997601 +-3.0041251 +-3.0542355 +-2.0690804 +1.2563618 +-2.1881175 +0.4657211 +0.0346305 +-0.1927763 +-0.6313036 +0.6887836 +-6.7834978 +-0.9524341 +-1.4471968 +3.0803635 +-0.5139179 +5.1137404 +0.3877707 +-1.6580970 +-4.0926418 +-2.2108021 +-2.0631390 +1.0857878 +-0.7042083 +2.3283410 +7.4671588 +-0.4288506 +-3.1820862 +-0.2007108 +-3.3485098 +-1.1065274 +17.1511707 +-1.1126578 +2.6002805 +-1.6996161 +-0.8311810 +-2.7844338 +-0.6041479 +4.5402942 +3.7540834 +-2.2805176 +15.8239460 +1.1629015 +-2.5013151 +-3.3326106 +0.2429213 +-1.7618651 +-2.1997027 +1.3727814 +-3.1392624 +-1.6119297 +1.7488440 +-0.6228580 +-4.4561272 +2.5107510 +-0.3706709 +-4.4815621 +-0.6379508 +-1.8430660 +-1.4734635 +12.0312500 +-0.3127573 +0.0750639 +-1.2402951 +3.9449940 +0.6769712 +-0.3528384 +11.3741398 +-0.2409178 +-3.8365889 +-0.5740098 +-0.7386149 +0.1801963 +0.1264758 +0.1499800 +-0.5051357 +-1.8685670 +1.8820189 +-1.7406681 +4.0764065 +1.2116400 +2.0183017 +6.4625182 +-4.3003249 +2.5437801 +6.4118586 +-8.8545427 +2.0597634 +-6.8882890 +-3.5495257 +-1.4440075 +0.9132652 +-4.4684391 +2.4502540 +-0.6734965 +5.4614162 +-0.8057934 +-2.8871393 +0.1773329 +-2.3200505 +-3.3627603 +1.6431289 +-2.3984272 +-9.0498934 +-2.4473999 +4.2458735 +-2.1850967 +-0.5732718 +-7.9244499 +-3.4715180 +27.1769428 +-1.0571803 +-2.4204926 +3.8474247 +1.6013228 +-4.1463590 +0.3237244 +-4.5772653 +1.5657228 +-1.8435268 +7.9805822 +15.6301889 +-1.3300161 +-0.3992628 +-4.8246045 +1.8403776 +-1.8315387 +-1.2422378 +2.4244759 +-3.7698491 +-4.6426530 +-3.6349344 +2.5112073 +-4.5295167 +0.7388903 +0.7009966 +0.0479811 +-0.0598118 +0.6466618 +-2.6697977 +-1.1090395 +-3.1559887 +4.8472276 +-0.5264137 +8.7655411 +-0.4941160 +-3.2573094 +-5.4570694 +-3.6398630 +-2.8678458 +1.3746517 +-3.2762144 +4.0137625 +13.3718805 +-1.2494256 +-4.8453369 +1.5774026 +-4.7343454 +-2.0620601 +28.1596661 +-1.6679255 +4.0988517 +-1.9344307 +-1.2099737 +-3.3018184 +-2.6495636 +5.3223920 +5.6005263 +-3.3180895 +21.9841385 +2.3540201 +-4.1389399 +-5.0357671 +-0.1303410 +-3.5605309 +-3.1925900 +0.7337734 +-4.5631514 +-1.3758048 +3.5893583 +-0.3886537 +-6.8977776 +3.4666765 +-0.4611973 +-6.5834851 +-0.6207177 +-2.0756361 +-2.7396979 +19.0233059 +-0.4141671 +0.7506605 +-1.6623517 +5.6565218 +-1.8337837 +-0.4059865 +15.5107841 +-0.0270259 +-5.2865229 +-0.9374633 +-1.6741362 +-0.1904957 +0.5430902 +-1.2738521 +-1.1539246 +-3.1278367 +3.0685894 +-4.0359778 +1.8261243 +0.4983504 +-1.2171235 +8.9863129 +-3.7345681 +3.1863718 +-6.0023160 +-8.5557756 +-0.4002429 +-4.6609430 +1.4742597 +2.6419115 +1.2698647 +-4.1214919 +-0.3954526 +0.3777532 +2.2142479 +-0.8383003 +0.4375487 +3.0581863 +-12.7211084 +-4.7101169 +-1.1957910 +-0.8420308 +-4.9341927 +6.6846809 +-2.8941288 +-2.7884665 +-4.5504894 +-6.0231147 +3.6718662 +8.7911844 +-1.7188693 +-0.2306570 +3.2378292 +-2.7085574 +0.8260183 +0.2675076 +0.7539794 +-0.2303533 +-6.6281271 +13.2584572 +4.2751670 +0.4067527 +-2.3394761 +2.6135924 +-7.0030055 +-3.3761363 +-1.6012844 +-2.4436395 +-0.2286080 +-1.0231346 +0.1591822 +-2.0268877 +-0.5863868 +-2.4417412 +-0.2613078 +-0.7764862 +-1.0774951 +0.6233066 +2.9469643 +-0.3068129 +-0.6764159 +2.6271329 +1.9373496 +6.4733901 +-5.5056324 +-5.3967214 +-5.6657434 +-4.3437052 +-1.8773140 +0.3599752 +-1.0147610 +1.4384058 +10.9349871 +-1.0927018 +-4.2799144 +-0.1436600 +-2.1075430 +0.5079403 +3.4152300 +-1.9634677 +4.0142179 +-2.7495058 +-0.9775087 +1.6985688 +1.3397956 +3.1565897 +1.2017992 +-5.4120688 +10.6331539 +2.2338231 +-2.4277537 +-3.8757949 +4.9776425 +-4.9844112 +-0.9106096 +-0.3975970 +-0.8944839 +-6.3377962 +0.0802088 +-2.1282451 +-0.9851975 +-0.8843476 +-7.8719158 +-5.8646255 +0.2929847 +-4.8402195 +-1.6546811 +16.3809299 +-0.1181756 +2.4817712 +-2.7307217 +5.4148579 +-6.8640761 +-6.2918873 +6.9896350 +0.1213454 +-7.0096068 +0.6509107 +-2.7876933 +-0.3843552 +8.0414248 +-7.2382827 +-3.4315681 +-1.7945689 +1.6504002 +-3.3948052 +1.4496053 +-0.8675343 +-1.2234735 +1.9804969 +-1.7500101 +0.7975417 +-0.3119408 +-3.7462952 +1.4895651 +-1.6121955 +-1.1308811 +-1.9491438 +0.4511506 +-1.7013130 +0.0426947 +-0.8401116 +0.4260513 +0.6302894 +-1.3358263 +1.3549185 +0.3888830 +-2.0699785 +-0.0885151 +-0.8125679 +-0.0756942 +0.9048855 +2.1565831 +-1.0993898 +-1.9630175 +-0.9854841 +-11.3920975 +9.7204552 +-1.1635339 +-1.7126290 +0.8770429 +0.0858060 +-1.1746200 +0.1725253 +-6.4610014 +0.2338331 +-1.3698931 +3.1771564 +3.7209070 +-1.4136707 +-0.0524907 +-1.6825162 +-1.8581598 +0.2228080 +-1.2060539 +-2.0922174 +-1.0338950 +-0.8465630 +-1.3091253 +-0.6130226 +-1.8635036 +0.1591315 +0.4635558 +-0.3466985 +-0.5501257 +-0.0605508 +-4.6673927 +-0.9974492 +-0.2249911 +2.1173823 +0.1587511 +3.1676378 +-0.1518970 +-0.5357949 +-1.9725962 +-1.2272063 +-0.2014498 +0.6661762 +-0.1031489 +-0.0325816 +4.4819899 +-0.7416228 +-0.4635841 +-1.6943804 +-1.7766893 +0.2096575 +-5.1255841 +0.5692476 +1.4078180 +-1.7308519 +0.4322537 +-0.3719845 +-0.3282526 +2.5259216 +2.3756657 +-0.8404556 +10.8910751 +1.0069680 +-1.6858032 +-0.9201820 +0.5591609 +-0.9152389 +-0.2263715 +0.1398860 +-1.6625460 +-1.9462771 +-0.1217638 +-1.0788218 +-2.9951408 +1.8895862 +-0.0987690 +-2.3800559 +-0.9310101 +-0.3462537 +-0.3847193 +8.4631262 +0.5891405 +0.2495965 +-0.3422794 +1.9849615 +-0.7763538 +-0.2178758 +7.4431562 +0.4250809 +-1.8989711 +0.0843713 +-0.5030152 +0.6440000 +0.7893090 +-0.1441247 +1.6374613 +-0.8882245 +1.0128080 +-0.3060576 +1.3302977 +0.8763365 +0.6329440 +3.0888691 +-2.5197566 +0.2153805 +-0.3680641 +-7.2542348 +0.9292959 +-3.0968854 +-2.8126512 +0.4977277 +-0.6897112 +-3.4204466 +0.3559509 +-0.8409252 +2.5747662 +-0.7317860 +-2.7203615 +1.0881737 +0.1923213 +-2.4943483 +0.3185472 +-1.2401409 +-6.2218294 +1.1652625 +2.4631133 +-4.0319080 +-0.3999403 +-4.7351704 +-1.1504922 +17.3653736 +-1.7393433 +-3.0543416 +2.5994883 +0.8125473 +-2.2138519 +0.0784991 +-4.3182755 +0.2589483 +-1.6303763 +4.3110032 +9.0617380 +1.2769140 +-0.5923237 +-2.1856000 +-1.6253463 +-1.1572037 +-0.6823070 +1.1602881 +-2.6257634 +-3.9027774 +-2.6171684 +1.1477189 +-3.6048286 +0.7616554 +-0.2824495 +-0.5588074 +-1.3870336 +1.9653577 +-7.3896699 +-1.3570998 +-1.0850577 +3.1796920 +0.3420428 +6.1344156 +-1.1421121 +-2.1770461 +-5.4429469 +-2.2023180 +-2.3662469 +1.8856647 +0.1875891 +1.5423172 +9.1846638 +-1.2995538 +-4.7919178 +-3.5865021 +-3.1186020 +-2.5114906 +13.3829908 +-2.3232498 +2.1878490 +-1.7994356 +-2.0288589 +-0.7714328 +-0.0326723 +2.8391485 +3.1310163 +-2.9739931 +13.0327740 +1.3154547 +-3.0892682 +-0.2506190 +-0.1380298 +-2.2687428 +-1.6922482 +-0.6650966 +-3.3001640 +-3.1100056 +0.8933021 +-1.1247861 +-3.2094901 +1.0534060 +-0.3167258 +-2.7818255 +0.2023906 +-1.6242063 +-1.3285559 +14.4128342 +-0.0340408 +-0.1187753 +-2.4482787 +3.1673431 +-0.5167380 +-0.1976204 +10.9815769 +0.2980596 +-4.8317132 +-1.2530799 +0.0386368 +0.1824157 +3.8877978 +0.8446313 +-1.9968721 +-1.5467525 +2.0423520 +-1.9505682 +2.3746088 +1.4518151 +1.9944957 +5.0924878 +-4.3796473 +0.5996160 +-4.3959594 +-9.2490044 +2.5082779 +-5.6226883 +-3.8977206 +-0.0400889 +-2.3413639 +-5.7446322 +-0.8026705 +-0.6647915 +4.9301782 +-0.5571378 +-1.1833143 +1.8998444 +0.6618239 +-2.7574582 +1.8919474 +-2.9798241 +-9.0797186 +1.0948188 +3.5809400 +-4.9864378 +-0.5136531 +-3.5716753 +-2.9629791 +22.8250217 +-3.3319862 +-5.1218448 +3.6520257 +-3.0226314 +-2.8447282 +-1.1387628 +-4.6688285 +0.0130950 +-2.5762422 +6.5296478 +-2.6985569 +0.3436357 +-0.2044779 +-3.1057787 +-4.8252254 +-3.4033034 +-0.6951329 +-0.2795390 +-2.6517601 +-4.4479141 +-4.1435790 +1.5164936 +-4.5534124 +2.2714636 +-0.3633381 +-0.6812546 +-1.8962520 +2.2252893 +-10.9489050 +-0.2325584 +-0.5488362 +5.5021381 +1.5716919 +9.9502497 +-3.6489179 +-4.0281963 +-7.8493986 +-3.2850885 +-2.0489192 +3.0146267 +0.4289985 +3.7867777 +14.4189425 +-3.0563765 +-8.3090982 +-12.2200747 +-4.4343181 +-2.8757455 +23.3848686 +-3.0830717 +3.4931617 +-2.8023281 +-1.3217798 +-1.0830123 +-0.0093356 +6.1340871 +6.0917506 +-5.4675570 +16.7580032 +1.2546827 +-4.4798779 +-0.8435503 +1.6226962 +-2.7526944 +-2.3252838 +-1.9559704 +-4.9623804 +-3.0088224 +4.1030402 +-0.2477842 +-7.0569382 +0.6588826 +-0.7397722 +-5.6409864 +-1.2728913 +-2.3801868 +-1.6720927 +18.2893295 +-0.2452785 +-0.4481255 +-5.6696930 +4.6319551 +0.7111933 +-0.3006935 +11.6131201 +0.2363686 +-5.7980542 +-0.9322116 +-1.4061689 +-0.3844033 +6.2236028 +-0.7387762 +-2.9961388 +-2.5025294 +3.0114343 +-3.3156121 +5.8602147 +0.1448219 +-2.1744747 +0.0722241 +-0.5195960 +-3.6543164 +-0.6520449 +1.4031733 +0.5817673 +1.0094819 +-0.2020641 +3.9373388 +-4.7027860 +-4.5683131 +-0.6876827 +-3.4521940 +-0.7410269 +-3.6812115 +2.6903365 +-2.5499365 +4.8687673 +-11.8300629 +3.0568717 +-2.1070733 +-8.1687775 +0.7882910 +1.1549439 +-0.7323319 +-2.3339851 +-2.0265911 +-0.0741023 +6.3870382 +-0.2452887 +-0.0152107 +4.1283016 +1.0244205 +5.9636688 +2.6922650 +-0.1589823 +1.4814860 +-2.3128455 +1.5038207 +-0.3975324 +-3.1999571 +4.2265506 +0.2593624 +1.8545977 +-4.8245530 +4.0417004 +2.4368353 +0.4234553 +-6.1411271 +2.8420897 +1.2854825 +-2.0688808 +0.2460851 +3.4344115 +-5.0137663 +-0.1805870 +-0.2860589 +-0.9286425 +1.3476187 +-3.2703590 +1.4080092 +-2.5725911 +4.8977299 +-0.0433310 +-2.1631613 +-4.5431409 +-4.7764544 +-1.5077009 +-5.3490610 +0.2048697 +1.4755269 +11.3268604 +3.6316261 +-8.6499205 +-0.1592730 +-2.1635928 +-7.5085788 +0.5133135 +7.4120412 +-1.4219456 +-3.5518453 +0.8553932 +-1.2715414 +0.4004166 +-0.4339912 +-0.9849454 +0.2928793 +3.2580538 +3.5240064 +-1.7220792 +5.4739213 +4.5372548 +4.4757357 +-2.0905147 +-0.4886023 +3.9507923 +-0.6299279 +2.2976160 +3.4347734 +-5.0929856 +-3.0640221 +-1.4663293 +0.4626403 +1.8254142 +-0.9320847 +-0.9731191 +5.7735858 +-3.5207777 +-3.1819072 +-1.6504763 +5.4002643 +1.1544409 +-0.0950704 +3.7692959 +-1.9335332 +-2.0080814 +5.1098027 +-2.3963120 +3.8128431 +-1.9876992 +0.5767320 +2.6504924 +-1.5844806 +1.3332279 +1.3848392 +1.6257643 +-0.2867503 +-0.9090483 +1.8285042 +-1.7487597 +0.5252591 +-0.5224881 +-3.6782103 +1.3432864 +-1.6398902 +-1.0696995 +-2.0510643 +0.6701575 +-1.0475986 +0.0871541 +-0.1066807 +0.2869063 +1.4928201 +-1.4907895 +2.4947186 +0.3351759 +-1.8944757 +0.5081035 +-1.3737584 +-0.5732787 +2.0068707 +1.8929621 +-0.7170354 +-1.7044286 +-0.2515714 +-12.1695471 +8.5493345 +-1.3925874 +-1.3034086 +0.6636603 +-0.4190776 +-0.7775330 +-0.5252555 +-5.8892736 +0.2358660 +-1.5791487 +2.3258307 +5.8365970 +-1.3866296 +0.5752209 +-0.5248430 +-2.1318305 +0.3737944 +-1.4183021 +-2.3494568 +-0.7003124 +-1.2805896 +-1.2081683 +-0.4916223 +-3.1422236 +0.2206450 +0.0190221 +0.0046624 +-0.5325310 +0.1569428 +-5.6196976 +-1.4302230 +-0.4984405 +2.2591414 +0.1524676 +3.2664528 +0.0085154 +-0.5138710 +-1.8303000 +-0.8872917 +-0.0266968 +1.3650986 +-0.0272750 +0.4598192 +4.6759820 +-0.7200134 +-0.0877543 +-1.2142614 +-1.0478334 +0.4447844 +-7.6715159 +0.9626614 +1.0905144 +-1.8802688 +0.7693557 +-0.5352346 +0.0774415 +2.2071536 +2.4356976 +-0.8031592 +11.4901638 +1.1229713 +-1.6475372 +0.3185648 +1.2763350 +-0.8338720 +0.5662689 +0.1616366 +-1.6599629 +-1.8478891 +-0.3237753 +-0.6327804 +-2.6336148 +1.8883036 +-0.2696742 +-2.3738649 +-0.8411420 +0.1401833 +-0.8143031 +8.9225740 +0.8260204 +-0.2013720 +-0.2171473 +2.5096867 +-0.1777069 +-0.0174891 +7.5041051 +1.1287773 +-1.9803376 +0.4245592 +-0.9635884 +1.1135700 +1.5339731 +0.8292245 +1.7219549 +-1.3854394 +1.3107371 +0.2175235 +-1.8799781 +-1.7613729 +-0.2918397 +0.6856444 +-3.5067546 +-0.0718279 +-2.2513905 +-7.8071814 +-2.6274159 +-5.0391655 +-3.8078504 +-2.7066956 +-0.1282445 +-6.0582943 +-2.2207320 +-1.2842200 +2.1223464 +-1.3536319 +-2.5737183 +1.8648170 +-0.4631775 +-3.1714194 +1.8082691 +-2.6540828 +-2.5559435 +2.2550023 +1.0177405 +-4.9425206 +0.1571904 +-3.2286391 +0.5141127 +17.1253910 +-2.7261415 +-6.1126523 +1.4117603 +1.1108207 +-1.8828065 +-0.4387390 +-2.5793121 +-1.4064504 +-2.7527316 +1.2674106 +-1.1351459 +-3.7219102 +-6.3266120 +-0.4628482 +-4.1540885 +0.7857906 +-0.9337814 +-0.4334656 +-3.3788390 +-2.0982528 +-2.6408055 +-0.7400301 +-3.3743100 +1.4696921 +0.1821052 +-1.0945516 +-2.8084700 +2.2453802 +-6.7921362 +-1.4025439 +-3.0488377 +3.1480093 +-0.5908185 +5.8748140 +-3.4878953 +-4.2872105 +-7.7948251 +-0.1403052 +-2.9469783 +0.9957930 +0.1542972 +-3.0464675 +8.3909435 +-1.6663518 +-3.5146923 +-10.3595114 +-5.6991196 +-3.9826720 +14.0497046 +-0.8330767 +0.5144804 +-2.5150826 +-6.3060217 +-3.1448042 +-3.4048243 +3.3874457 +4.2643366 +-4.5015430 +19.3696804 +-0.8130558 +-3.9636610 +-1.3567035 +1.6028962 +-2.7588906 +0.2565024 +0.6701605 +-3.0386894 +-2.4590230 +-2.6153655 +-0.7900472 +-1.6685650 +1.4301403 +-3.1508825 +-2.8141720 +-2.1932502 +-3.0957060 +-1.1806219 +20.9894733 +0.3254362 +-1.0845274 +-3.1218958 +0.6378913 +-0.3283861 +0.5357809 +9.6749182 +0.1696606 +-4.8378825 +-1.4168619 +-1.5262374 +-1.7051867 +-0.1954061 +-1.0903636 +-7.8104734 +-2.2051628 +2.8404882 +-2.4059854 +-0.8681313 +-1.0554878 +0.6968722 +2.5016384 +-5.2389889 +0.7182272 +-1.7652340 +-10.5169868 +-1.6566087 +-7.0470376 +-5.3884511 +-2.6413567 +-1.1027901 +-7.3088994 +-2.2625289 +-1.4793906 +4.0770688 +-0.6303342 +-2.9865258 +3.6243169 +-1.1496671 +-3.7048523 +3.4531865 +-3.6956236 +-5.2388148 +4.5449862 +2.4350491 +-5.6091037 +-0.5757231 +-3.8083401 +-0.6554793 +26.6607399 +-3.6037748 +-7.8670936 +2.9311881 +1.2101184 +-2.4963377 +-0.4187773 +-3.9040315 +-1.3276277 +-3.3155968 +4.1596446 +4.4465160 +-4.2220669 +-5.7036600 +-0.9915175 +-4.2782845 +-0.2822168 +-1.6027969 +-0.8583211 +-4.1389813 +-4.2099705 +-3.7532916 +0.3789633 +-4.5808883 +1.9479675 +1.0846491 +-0.8700334 +-3.4641855 +2.9314091 +-3.1394794 +-1.6241890 +-3.6805601 +5.8355427 +0.0326086 +10.9897881 +-3.8116744 +-6.0953946 +-11.6489029 +-1.7483925 +-3.3917835 +1.2984929 +0.7581625 +-1.5257666 +16.3785553 +-2.1880701 +-5.4949036 +-12.0351210 +-6.6959968 +-4.9405622 +21.1732635 +-1.0764426 +2.7232912 +-3.1865067 +-6.9411283 +-3.6452782 +-3.9896083 +4.6882153 +6.7135296 +-6.0137630 +26.8961983 +-0.7760936 +-5.8319340 +-0.1716659 +3.0604899 +-4.7523413 +0.6400913 +0.0095938 +-4.4885058 +-2.7965021 +-0.8864137 +-1.1388493 +-3.8777766 +1.5336909 +-4.9624777 +-5.2265453 +-2.7708197 +-3.1297495 +-2.0054646 +32.3869324 +0.3613420 +-0.4199663 +-4.9983439 +2.1198735 +-1.1102989 +-0.0242027 +13.7250977 +1.2834607 +-6.2533073 +-1.0820637 +-2.6876447 +-2.4367187 +2.7205238 +-0.8947626 +-13.0182953 +-3.8901212 +4.3938608 +-3.1285071 +1.6708050 +1.3734716 +-1.3022938 +3.9628944 +-3.8418858 +1.3262295 +-8.5974541 +-3.3361611 +1.0854255 +-3.3763092 +-8.8538723 +1.8136200 +-3.4374456 +-3.5001750 +-26.4403744 +0.9929407 +1.7079694 +0.2061759 +-2.1491065 +1.7935328 +-2.5052049 +-2.8660553 +1.9018993 +-3.0834219 +-8.5650635 +4.2169094 +-0.2784146 +-4.4277759 +-1.7311329 +-3.4211326 +-1.0803144 +19.2704029 +-2.5803821 +-2.1226275 +3.8911378 +0.4733907 +-0.0843063 +-0.2806444 +-3.1488075 +0.6945199 +-1.9186367 +5.6516843 +11.4445486 +-0.3428721 +1.1224422 +0.8676752 +-3.3456342 +-2.3405116 +-1.7073523 +-3.2340682 +-1.9505183 +0.7584707 +-5.5954266 +0.2479522 +-2.5650043 +2.1194146 +1.3105091 +-0.1449227 +-2.7539062 +1.4614956 +-2.8277669 +-1.1812438 +-1.8578275 +2.8127878 +-0.2932639 +6.0588775 +-1.3061706 +-4.4402909 +-16.8781471 +-4.3063078 +-2.2750087 +-0.3297264 +1.5886446 +2.9037218 +10.4407110 +-1.9898865 +-5.6998887 +-2.1133680 +-2.1958013 +-3.2585106 +13.0789890 +0.2162270 +2.6769745 +-2.9082057 +-3.9598880 +-1.9241967 +-1.2326450 +0.8002408 +6.3661003 +-3.9229562 +13.8649769 +1.0220251 +-4.0457678 +1.5169194 +1.7887105 +-3.4572785 +-0.6589412 +-0.5164803 +-4.4011264 +-1.4079479 +2.6845121 +-0.6043719 +-4.7824697 +1.5689982 +-5.6496854 +-3.0902483 +-2.6296351 +1.0275341 +-0.6527737 +17.9605331 +-1.0046548 +-1.3774583 +-2.7373154 +2.0916710 +-2.2585680 +-1.6420944 +2.8362882 +0.9936582 +-1.4346861 +-0.1723884 +-2.3545260 +-1.9638796 +1.8815721 +-1.4873261 +-10.4176006 +-2.7668686 +3.0205126 +-1.6369756 +1.3448497 +-0.1856701 +-3.5799277 +1.3203777 +-1.6109849 +-0.0790682 +0.6499932 +-3.7434137 +1.4314009 +-1.9408909 +-1.7669207 +-1.3054408 +-0.1428016 +-1.4481426 +0.2038863 +0.1491656 +-1.3008778 +1.6116425 +-1.2256880 +2.4824924 +0.4648892 +-2.0120234 +0.8710937 +-1.0999615 +-0.2040626 +1.4455813 +1.4461666 +-0.4514413 +-1.9973795 +0.2920781 +-7.7820978 +7.4218125 +-1.5915698 +-1.1334587 +0.5738305 +0.4368689 +-0.9084387 +-0.3315260 +-4.9684062 +1.0161097 +-1.1891881 +1.3820268 +5.8010325 +-1.0482403 +0.5346610 +-0.5117080 +-1.0227710 +-0.3503751 +-1.7856548 +-2.2126825 +-0.7281217 +-1.4640868 +-1.7684546 +-1.1538903 +-3.7471266 +0.5345438 +0.3861856 +-0.6942363 +-0.2357941 +0.3378874 +-6.0731511 +-1.8280662 +-0.6405933 +2.0038424 +0.3376590 +2.5935407 +-0.5756667 +-0.8325937 +-2.2910128 +-1.1457633 +-0.0073711 +1.4502877 +-0.0916662 +0.4236006 +3.6649852 +-0.9580768 +-0.1317709 +-0.9928511 +-0.7296484 +0.3067319 +-8.9715157 +0.9306520 +0.6906888 +-2.4120946 +0.9646940 +0.5571123 +0.6165327 +1.7385480 +2.2909372 +-0.8045045 +11.0358791 +0.9536481 +-2.1381171 +0.7850174 +0.9946251 +-0.8525342 +0.6301065 +0.0927992 +-1.6951145 +-2.1886716 +-0.1954855 +-0.8221239 +-3.0202506 +1.4533390 +-0.2090893 +-2.6020646 +-1.4574016 +0.1001445 +-0.1137350 +8.3775187 +0.7869147 +-0.7293301 +-0.6060767 +2.3579004 +-0.2057627 +-0.2134747 +6.5494547 +1.2355866 +-1.3500158 +-0.1150477 +-0.3560406 +0.2063133 +2.2281952 +0.3956528 +1.6560977 +-1.2004652 +1.5847299 +-0.0104391 +-3.5827823 +-1.8880967 +-0.2908770 +-1.5877825 +-4.0693164 +-1.5775437 +-4.2851567 +-6.5508876 +-2.3413973 +-4.8063698 +-5.3050666 +-2.4522541 +-1.6529087 +-6.6508656 +-4.5536714 +-1.3064258 +1.6134050 +-0.7321777 +-2.9286993 +1.2592539 +-0.4009923 +-3.6940527 +1.5313956 +-3.3916361 +-3.4699593 +4.7622781 +1.0988954 +-4.0810466 +-1.0043569 +-2.1979434 +-2.2917268 +16.2014675 +-3.5601344 +-7.9502039 +0.8108503 +-0.0971095 +-2.6025105 +-1.8827944 +-3.4884140 +-0.4840064 +-3.4141140 +-1.5100042 +-2.5033090 +-4.2389488 +-7.0437641 +1.1111701 +-5.0236382 +-0.3425493 +-1.4868329 +-1.5723006 +-4.4270563 +-2.4115958 +-3.4385931 +-0.5252102 +-3.9768758 +2.0307629 +-0.7309112 +-1.4762290 +-3.9860170 +2.2641923 +-9.5946274 +-1.6386358 +-3.7580683 +1.9305019 +-0.9648629 +4.7051401 +-1.2680008 +-5.6175671 +-7.5958467 +-1.0911043 +-3.5733085 +-0.0079245 +0.6327482 +-3.9147758 +6.6468244 +-2.6018169 +-4.4249172 +-13.2731533 +-6.1781492 +-3.4754486 +27.4071960 +-2.9122920 +-0.3704379 +-2.9499059 +-5.3648591 +-1.2505506 +-3.2383995 +2.8879786 +3.4446032 +-5.0479074 +20.4092598 +-2.0521302 +-3.8145487 +-1.0697082 +0.3797206 +-3.7957277 +0.6184249 +0.2757119 +-3.3796787 +-3.6143794 +-2.1572084 +-1.7363260 +-1.5418992 +-0.9305207 +-4.8141856 +-2.7581711 +-3.1081858 +-2.0828850 +-0.8367593 +22.5762901 +-0.4702293 +-3.0318620 +-5.1580925 +-0.3362865 +-0.2335031 +0.4822140 +9.9178877 +-0.2491779 +-4.6466737 +-2.5862117 +-0.1516116 +-2.1862283 +-0.5406300 +-1.2369845 +-7.3231497 +-2.3259618 +2.6219552 +-2.4143407 +-1.5997491 +-1.0874593 +-0.3466824 +-0.1549674 +-5.8867126 +-0.8066785 +-5.3083429 +-10.4572392 +-2.5911827 +-8.8201857 +-9.4648762 +-2.6205475 +-3.3054268 +-8.2532110 +-4.8262310 +-1.2439448 +2.5361161 +-0.1561419 +-4.4633899 +2.6638868 +-0.6057046 +-4.6592207 +2.0709510 +-3.7651839 +-9.8856087 +5.5194740 +1.0975231 +-3.1069276 +-0.7298077 +-3.3573997 +-4.6957984 +17.6197815 +-3.6758049 +-7.6416030 +1.7084099 +-2.4667304 +-4.2985992 +0.3400796 +-5.0060554 +1.2926096 +-4.3274493 +1.9675767 +-1.5087698 +-3.8593309 +-7.6648178 +0.4611416 +-6.7595806 +-2.0743322 +-2.7858155 +-1.8216015 +-6.8108187 +-4.2564378 +-3.4291663 +0.1421861 +-5.0321817 +2.2438276 +-1.3491737 +-2.3551569 +-5.3546004 +3.0727708 +-9.0307989 +-2.9630373 +-5.6599174 +5.5179925 +-0.8213488 +10.3082695 +-0.3592355 +-7.2645822 +-11.0557489 +-2.6979594 +-0.9530924 +-0.0365721 +-1.2522562 +-4.2645693 +15.1889696 +-2.6675165 +-6.8049984 +-10.8434219 +-7.0272660 +-4.4043388 +11.0412741 +-0.2562501 +1.3375349 +-3.4150677 +-6.7100649 +-1.9288770 +-6.9092808 +4.1026063 +6.9916444 +-6.6748757 +14.2175207 +-0.8275583 +-5.6709018 +-0.4296314 +1.5686125 +-3.5524075 +0.7791783 +-0.2547032 +-3.3245974 +-4.3821697 +-2.7493401 +-3.4539988 +-5.3339930 +-4.3064709 +-7.4787993 +-5.2647834 +-2.2249153 +-1.0784154 +-2.6086912 +27.1726913 +-0.6183336 +-1.9497344 +-7.4269691 +1.3917774 +-5.1175117 +0.4808577 +3.0499771 +0.5985959 +-7.8351307 +-1.7105840 +-0.4554204 +-2.8270259 +3.3372910 +-0.4209130 +-7.4042773 +-4.7611227 +3.9585099 +-2.5676563 +-0.8444420 +3.5661247 +0.7203700 +-0.0381142 +-6.5565000 +-0.2560606 +0.1699555 +-2.5756073 +1.0046121 +-0.8006801 +-2.3476210 +-1.4319118 +-1.4095285 +-3.7273540 +0.3433486 +-2.2949810 +3.0098128 +-1.2311054 +-2.0869730 +6.1541033 +1.1515654 +-1.8699130 +1.8207439 +-1.4897200 +-0.1001592 +-0.7944335 +-1.9446734 +3.4553814 +-1.9893620 +-0.1091488 +2.0776894 +5.1769547 +0.5409109 +-1.2343305 +1.6984205 +2.0250893 +0.4051764 +-0.3416540 +-3.5332546 +1.3620403 +-8.3007612 +-4.0091887 +-0.6403269 +-1.7211934 +1.4479313 +1.4428737 +1.6224248 +-1.6586012 +0.8223800 +1.1418997 +-0.4929069 +-1.2994593 +-2.8258309 +0.7403983 +-8.3687544 +3.3003020 +-0.3668656 +-1.8842720 +-0.1128305 +2.3322382 +0.0063073 +-0.1761811 +1.8011377 +1.8666310 +-0.1809925 +4.2588034 +-0.0149905 +0.0142424 +-5.0900512 +-0.6944026 +-1.0957887 +-0.3385849 +0.5385756 +10.4335480 +3.2247858 +3.9630771 +1.2066280 +-0.0712741 +0.1808324 +1.1784589 +1.5493082 +-1.1592877 +-0.7348595 +-1.9329283 +1.3919437 +1.2094212 +-1.7083356 +3.9622333 +-0.0085668 +-4.1663408 +0.3900139 +-1.7006000 +-1.4057053 +3.4696925 +-0.0893273 +-1.9438032 +0.9404216 +-0.8073983 +-0.7635332 +-3.2580695 +-1.8981750 +-1.6130532 +-0.1066182 +1.8031965 +1.5003392 +-2.7968600 +-3.4067605 +1.5248014 +-4.3433614 +3.1588914 +3.4116013 +-3.8011911 +0.7793478 +1.3626229 +-0.7100949 +-0.0922461 +0.2725239 +3.1449938 +1.5449238 +-1.4715943 +-0.3526354 +-1.7458663 +1.2282865 +0.3514339 +-2.4454021 +-3.3825228 +0.9247991 +4.1532483 +1.9192703 +0.0454322 +-4.6290808 +0.4865503 +-2.1193871 +-0.5358245 +-0.0128798 +-3.0938065 +1.3798600 +-1.7026103 +-2.1411326 +-1.8561739 +0.0863590 +-1.2064779 +0.3655570 +0.4040604 +-2.0239420 +2.0044155 +-1.6042616 +3.0628777 +0.2794987 +-2.3560841 +1.1281179 +-1.2437835 +-0.4163661 +1.6194743 +1.1636999 +-0.3926023 +-1.7567489 +0.8619657 +-8.3138218 +6.5749011 +-2.3498530 +-1.4482155 +0.3297390 +-0.8604782 +-0.6659644 +-0.3775013 +-4.8426886 +1.1997645 +-1.6572654 +0.2922234 +6.3636551 +-1.6214982 +0.8654209 +-0.1482161 +-1.7388778 +-0.2102118 +-2.3236771 +-2.8527460 +-1.2256266 +-1.4732201 +-1.8923534 +-1.5139784 +-5.8204188 +0.6032199 +0.0345218 +-0.7287408 +-0.3967063 +-0.1769545 +-6.0997648 +-1.6719518 +0.0767400 +1.8940535 +-0.1402556 +2.1988559 +0.3428777 +-1.0313474 +-2.8139322 +-1.2629389 +0.4428883 +1.0952244 +-0.1635006 +0.4118790 +3.3755898 +-1.2046496 +0.1354012 +-0.5970929 +-0.3201512 +0.4511337 +-4.4843574 +0.5446659 +0.2908006 +-2.8906341 +1.1519939 +0.5848756 +0.6515457 +1.5092514 +2.7384622 +-0.8328451 +11.4132776 +0.8948020 +-2.0184085 +0.8835379 +0.9431946 +-0.9640397 +0.6288073 +-0.3988864 +-1.6355325 +-2.3408434 +-0.0797586 +-0.8694225 +-2.8207726 +1.6022296 +-0.7722464 +-2.9056859 +-2.4735727 +0.8957615 +-0.1612600 +7.8081188 +0.6862609 +-1.1992311 +-1.3377142 +2.2774532 +-0.0949050 +-0.1655745 +6.5273824 +1.5179261 +-1.4096822 +-0.1429330 +-0.4548265 +-0.3886364 +2.0338445 +0.4722309 +1.7175250 +-1.5181625 +1.5881040 +0.5185612 +-1.5686340 +-1.2347369 +-0.7017875 +-3.7121952 +-3.2029958 +-2.2455940 +-6.2943368 +-8.7464342 +-2.1672552 +-4.2675123 +-8.1161251 +0.1189467 +-0.8533432 +-6.7868705 +-5.6170068 +-0.6217523 +0.9564307 +-0.1068851 +-3.7556591 +1.6573344 +-0.5608077 +-5.3616180 +1.4612368 +-3.7069535 +-2.8496280 +4.9527617 +0.2111093 +-3.7304132 +-1.5558456 +-1.8178686 +-2.8647645 +19.0412750 +-3.5674670 +-8.2753820 +0.0200078 +-2.8133144 +-1.9309568 +-1.7416215 +-3.4513481 +-0.0384451 +-4.9280877 +-4.7748199 +-3.2518525 +-4.9241371 +-6.9850445 +2.1328201 +-6.8299403 +0.0225857 +-2.2463658 +-2.4001043 +-4.7698331 +-0.3071378 +-2.5244334 +-1.4771953 +-5.8754573 +2.1529555 +-0.6142057 +-1.3085715 +-4.5391469 +1.6913227 +-6.8506389 +-1.1885154 +-4.0908780 +0.2976325 +-1.1882248 +2.2926910 +-0.4205348 +-6.2346978 +-5.9421721 +-1.7765971 +-2.2365963 +-0.6065114 +-1.1388558 +-4.0071468 +3.5514514 +-3.0462537 +-4.4164357 +-12.5607309 +-5.5231676 +-3.0868161 +37.5263863 +-2.2530739 +-0.8162132 +-3.4543240 +-4.8263059 +-2.5959144 +-3.3106735 +1.4482971 +4.2678952 +-5.3895230 +23.5859203 +-2.6817424 +-4.0233283 +-1.4380637 +0.0269302 +-2.7464886 +0.7747681 +-3.4863911 +-3.8948236 +-4.2553091 +-1.9315869 +-0.5005814 +-2.3726246 +-0.3100829 +-5.4558811 +-3.4907143 +-3.5387645 +-2.0096948 +-1.0005116 +21.7157078 +-1.0186716 +-5.4467316 +-5.4449644 +-0.5585255 +-1.2102157 +0.2662632 +13.8915691 +0.2523705 +-6.0946531 +-2.7689230 +-1.2848350 +-3.4256334 +0.6230009 +-2.2841601 +-8.2365370 +-2.7741857 +3.0164850 +-1.5151012 +0.0081451 +-1.4689763 +-0.2212261 +-3.1912043 +-5.5767446 +-1.2782902 +-5.9017005 +-13.8794479 +-0.6222489 +-6.4106584 +-13.7614384 +-1.5596424 +-1.8905017 +-8.0629807 +-9.1898928 +-0.3270938 +1.8137370 +0.5280521 +-3.7492907 +4.3418503 +-2.1059988 +-5.1851735 +2.7035334 +-4.9937429 +-7.9053035 +6.1452689 +1.4459409 +-5.7402048 +-1.9623358 +-0.7357709 +-7.0618515 +19.8703232 +-4.2202463 +-8.1361904 +2.4382894 +-1.8741696 +-2.9135234 +-0.8360836 +-5.8689585 +-2.5667768 +-6.0249352 +-4.4360170 +2.1102355 +-5.6913414 +-5.6637115 +2.5250430 +-8.8165236 +-1.0844072 +-3.1784346 +-3.7341332 +-6.0862427 +-0.9852814 +-3.1608844 +0.1132466 +-8.1588402 +1.3286645 +-0.3326171 +-1.2782499 +-10.1774836 +2.2189381 +-13.5150127 +-1.5702020 +-6.7102275 +3.7068787 +-1.3657491 +8.2776575 +2.6972244 +-8.1765976 +-8.1828232 +-3.9402490 +-4.1038427 +-0.2592559 +0.3190463 +-2.1182549 +12.8391361 +-3.5610437 +-7.0710263 +-7.1819983 +-5.5453839 +-3.5036664 +7.3235545 +-1.6106439 +1.7203773 +-3.2654676 +-3.7335513 +-1.9070488 +-0.4575678 +1.0259013 +6.4336715 +-6.5261445 +29.5551796 +-2.2730167 +-6.8321357 +-1.4358995 +2.2240622 +-7.1373887 +1.1276251 +-4.6178870 +-5.7663517 +-5.5106106 +-0.3372818 +-0.6332746 +-6.1260834 +0.7005118 +-6.6982660 +-6.4877243 +-4.4942393 +-1.9705167 +-2.3328600 +37.0632668 +-0.4565132 +-4.7592893 +-12.3845959 +0.4396383 +1.4949247 +-1.8131337 +13.5952950 +2.2766607 +-9.1141996 +-1.3949113 +-2.3450565 +-3.6289785 +2.2102251 +-0.0003056 +-7.8321509 +-6.1775789 +4.1205502 +-2.3677354 +0.2338354 +1.7783650 +-6.4818578 +1.2419927 +0.9649742 +-0.1810217 +-4.0249147 +2.6961114 +-1.1267363 +-4.7720618 +-4.1338930 +-0.4613735 +-7.0677924 +-3.0462825 +-2.6851554 +3.6810436 +-1.2093054 +-1.6453503 +0.0385747 +0.5917377 +5.0359097 +-5.9900231 +5.8164611 +-4.4022975 +-4.2391686 +2.2208717 +-4.3507853 +8.0315323 +-0.8754291 +1.2256896 +-0.3736365 +4.3518724 +-0.9151852 +-2.6605730 +1.9599564 +2.2488980 +-1.6604459 +-6.9486847 +0.7567750 +-1.8075008 +-6.4512997 +-3.5184405 +-0.0389265 +-3.6366844 +-5.8258700 +0.9719663 +-0.3452870 +-3.1970987 +-5.3038845 +13.4636374 +-4.4056420 +-2.0493863 +1.8085449 +-1.7605690 +-1.8047637 +-2.3264601 +-0.5715205 +-2.3003857 +-6.4332385 +-0.6268897 +-4.5941076 +0.8836475 +-3.2481320 +4.1689129 +-2.2276697 +5.1922493 +-2.6586461 +-2.6288321 +-1.0064983 +-3.8371720 +8.4212370 +-4.5704780 +-1.6306233 +4.8686485 +2.7345991 +3.1534321 +-11.1980305 +-0.2417018 +1.0763894 +-4.4037266 +1.7553289 +5.9333091 +3.2103133 +-1.1932234 +-1.7915789 +-2.3172963 +12.1524296 +-4.0950584 +-8.4733829 +-3.5852227 +-0.2013419 +0.5229914 +-5.9614081 +2.5397429 +-0.9712694 +4.8320336 +-1.8824565 +4.1313834 +0.0007461 +-3.2492745 +2.8507164 +-0.1597586 +-7.1536641 +-4.8327270 +1.3205446 +0.5643189 +-2.4253469 +0.2683973 +-4.2657661 +12.6992865 +-2.7729521 +-3.8296874 +-3.0974107 +4.2525501 +4.8987408 +3.2171223 +-0.8065419 +1.2830290 +-11.5269680 +-4.8330975 +-3.0182903 +0.3508372 +-6.8122029 +-4.7283249 +-2.5332129 +-5.3319387 +3.3127632 +-4.6061192 +1.9890528 +0.4612790 +-5.8389521 +0.1911946 +-2.2008228 +-1.2718943 +-0.9594259 +-3.1894093 +1.2626247 +-1.7229280 +-2.1465349 +-3.2948258 +-0.5740154 +-1.3048321 +-0.3732143 +0.3271257 +-3.1261096 +2.0780377 +-1.6843331 +3.2763562 +0.5116048 +-2.4092114 +1.5117146 +-1.2429031 +-0.6993211 +2.2225811 +0.4406420 +-0.0693496 +-0.7017142 +1.1452932 +-8.6785450 +6.1665359 +-2.9396718 +-1.0900745 +0.0480602 +-1.0416708 +-0.9162621 +-0.2150447 +-4.9906206 +1.2513309 +-1.9132906 +-0.0173330 +5.8308291 +-1.4768385 +0.9660467 +0.3843987 +-2.6546013 +-1.1184102 +-2.5234835 +-3.3143272 +-1.5330472 +-1.6824228 +-1.8264940 +-1.3139634 +-7.3489947 +0.6132727 +-0.5802560 +-1.2836739 +-0.7394782 +0.0079562 +-7.0808644 +-1.5522426 +0.1011367 +2.1962783 +-0.0325822 +1.9861881 +-2.3739619 +-1.1133180 +-3.1441302 +-1.4571481 +0.5664211 +0.8894151 +0.1442643 +0.6898164 +2.6886299 +-1.5843552 +0.3315157 +-0.4760636 +0.1225412 +0.1968006 +-4.7473273 +0.2489942 +-0.1849042 +-2.9310546 +1.4330578 +0.4182037 +0.3657854 +0.6515594 +2.4046724 +-1.0713112 +10.9669285 +0.8218332 +-2.6126502 +0.8512957 +0.5962232 +-1.1776710 +0.8150125 +-0.0016908 +-1.6048431 +-2.9993918 +0.1984818 +-0.6334604 +-3.0088558 +0.9838710 +-1.1906840 +-2.6917200 +-3.3345938 +1.3539740 +-0.2595547 +7.9793625 +0.2290609 +-1.5493492 +-2.1963978 +2.4555514 +-0.7737555 +-0.0202087 +6.3877435 +1.7244350 +-1.0884415 +-0.1225091 +-0.6137649 +-0.4782643 +1.4864345 +0.4674000 +1.6535597 +-1.5039502 +1.6404673 +0.1540193 +-4.0719419 +-2.3705530 +-1.3089826 +-4.5761690 +-4.3948913 +-3.4487593 +-8.7218380 +-11.7956028 +-2.1211829 +-4.3772197 +-8.2099905 +-1.1615227 +-2.4541674 +-6.6940498 +-4.3004270 +-0.9775227 +0.3381425 +-0.1778270 +-5.1016722 +3.0067582 +-0.4323803 +-5.6641989 +2.2109389 +-4.9230614 +-3.3277874 +4.2822881 +-1.9434144 +-3.0197678 +-0.7942342 +-1.4139308 +-1.8699039 +18.9705925 +-5.0316901 +-8.3757753 +-0.7056288 +-3.4887457 +-2.3530450 +-0.6258057 +-4.0933795 +-0.9332652 +-5.6462579 +-4.3577299 +-3.0783451 +-4.8659058 +-7.4831066 +2.1963089 +-8.5389404 +-1.7270019 +-2.3042181 +-4.1491170 +-6.2006016 +-0.7872192 +-2.3220682 +-2.1445305 +-8.8553562 +2.0100782 +-1.3100798 +-1.8190460 +-7.0523458 +2.2406366 +-4.1428041 +-1.0961936 +-2.9258471 +0.1876184 +-1.6344119 +1.5451323 +-0.6804457 +-7.5976410 +-4.6801405 +-2.3973265 +-2.6052547 +-1.6242708 +-0.0448530 +-3.7636602 +2.3031387 +-2.7691426 +-5.6261587 +-12.7699471 +-4.7407293 +-3.2380390 +12.9580345 +-2.1962435 +-1.0812395 +-3.2916241 +-4.2683187 +-1.4075004 +-4.6938596 +-0.3491109 +4.1236191 +-5.3164539 +24.7922707 +-3.7957361 +-4.3698893 +-2.1808960 +0.0252068 +-4.6933327 +0.8390480 +-4.3542123 +-3.9172411 +-6.4501085 +-1.5360374 +-1.4678587 +-1.4786177 +-0.7914191 +-7.4903998 +-2.5042100 +-3.7823420 +-0.6179314 +-0.9682056 +24.5715027 +-1.9936589 +-5.8694892 +-11.7998667 +-0.3611359 +-0.6244923 +-0.0161131 +14.9950113 +1.2238129 +-7.2388959 +-3.3233640 +-1.9190897 +-3.0423989 +0.3008640 +-1.4212765 +-10.8574800 +-2.5088863 +2.9767125 +-2.3307748 +-3.2561526 +-2.7738066 +-0.4863396 +-3.6146736 +-6.2500329 +-2.0905318 +-10.7841682 +-16.5551414 +-0.1952311 +-6.4929705 +-20.1663208 +-2.4678178 +-4.9150858 +-7.5806117 +-5.1511431 +-1.2652128 +1.6211247 +-0.0692821 +-9.1547661 +7.9428968 +-1.1098593 +-5.7496662 +4.9697123 +-7.7985902 +-6.9470639 +4.6534462 +-0.1511274 +-2.4275730 +-1.0620821 +-9.6943293 +-4.0420165 +26.5215321 +-7.0803199 +-7.7153683 +2.3634889 +-1.3439698 +-2.7155497 +-2.5304730 +-5.0837522 +1.9830244 +-6.4880185 +-4.8709478 +5.7003531 +-5.1598692 +-5.1584415 +0.6170332 +-9.7417440 +-3.3115537 +-3.3356395 +-3.9305587 +-8.6795464 +-1.3590652 +-3.3052309 +-0.0616629 +-15.9682856 +1.8591462 +-1.1926957 +-0.6917360 +-9.7334833 +3.5692675 +0.8983644 +-1.6942352 +-3.0383172 +2.6088743 +-1.5645509 +5.7927556 +1.4625311 +-11.2325096 +-8.5436707 +-4.7739663 +-0.1333747 +-1.9234229 +1.8227243 +-1.1771123 +8.8199511 +-3.9738605 +-7.3158040 +-6.8540854 +-4.3802524 +-3.5708671 +5.8865027 +-3.3477011 +3.4508893 +-4.1020942 +-3.6013057 +-1.1264142 +-1.8832414 +-2.3639703 +8.5229139 +-7.1219044 +30.7010021 +-3.6487517 +-5.7286325 +-2.5178072 +1.6303345 +-5.8364706 +0.4159208 +-10.0506496 +-6.2258167 +-8.8071270 +0.6513382 +-2.0026598 +-4.8380876 +-2.2509954 +-13.6817236 +-3.3121791 +-1.8641444 +1.2884126 +-1.0797545 +39.5336227 +-2.5787439 +-6.8313041 +-14.8211279 +1.1194198 +-0.1968298 +-0.9098976 +9.0047979 +4.6004815 +-11.3774309 +-2.5686920 +-2.0053091 +-4.4517016 +1.9437951 +0.4179884 +-13.9451323 +-4.4232850 +4.9058180 +-0.1058382 +-13.1643057 +0.4151091 +-7.5766940 +3.2174597 +-7.7834940 +-1.7703238 +7.7213759 +2.8869703 +2.0758092 +0.6600742 +-3.5691473 +-2.9869988 +1.4734550 +-6.2806907 +-2.2597673 +-4.5524392 +-4.2789350 +-1.6981397 +1.8898801 +4.8036151 +-3.0194633 +-4.5457177 +7.8511853 +0.6565401 +-3.2428682 +0.3145098 +-6.5283961 +-0.0050479 +-3.7053790 +-1.5695528 +2.1782997 +8.2284861 +-1.0466260 +-6.1382284 +6.6779275 +-1.9128829 +2.1770127 +0.6711463 +2.5050535 +-3.8690138 +-2.2580197 +4.0275626 +5.9463391 +-2.4454865 +-0.9447106 +-2.8283050 +0.5091010 +0.8976767 +-3.2103033 +-3.4915559 +-2.6793551 +-0.3813576 +-6.8806157 +-1.1297182 +-7.1040816 +5.8128657 +-1.6567085 +-5.7932520 +-3.6646652 +2.4601498 +-4.9118237 +-5.3712316 +-3.6968527 +2.6449940 +0.2482847 +5.9989634 +0.0374291 +-7.9431071 +-5.9744954 +-3.8234391 +-0.9991239 +-2.5709441 +-7.9620986 +-0.1494928 +11.2805271 +3.9587302 +-10.7175026 +0.0761916 +-0.1391747 +-0.3528808 +-2.0368123 +-0.9357950 +-0.0202070 +2.0793059 +-1.2403463 +2.0182707 +-3.1038013 +2.8675396 +-10.2157698 +-1.3322648 +0.6677155 +-6.4661326 +-1.7149991 +-1.6819810 +0.3456558 +-6.6443162 +2.9702499 +-1.9901125 +-14.8280945 +-1.0222099 +-0.0222674 +-2.4794450 +-5.4658036 +2.0613782 +-5.5045877 +-7.4368372 +-2.5875256 +1.7908672 +-2.9460874 +11.7891150 +-1.2406725 +3.0766747 +-4.3400402 +4.7413979 +4.7740006 +-4.4792423 +1.6970437 +1.7943935 +-3.6493266 +-0.4338320 +2.2513051 +-7.2761984 +4.2761316 +0.5409055 +-8.5796337 +-2.4437373 +6.2499480 +0.5577937 +2.5367792 +0.7740719 +-8.1775560 +-2.0225203 +-2.7548144 +-2.0403981 +-1.1994326 +-2.3262422 +0.6423029 +-1.6283646 +-2.3367105 +-4.5920644 +-0.6834340 +-1.2880696 +-1.8117611 +0.3259559 +-4.5009899 +2.3237927 +-1.6152685 +3.7941616 +0.4985607 +-2.6250403 +2.0210476 +-0.7195066 +-0.9615692 +2.5893614 +-0.1850327 +-0.1050605 +-0.4644890 +1.8240250 +-7.2561660 +5.5262942 +-1.8914928 +-1.3725828 +-0.1735368 +-1.8271077 +-1.1981143 +-0.1059834 +-4.0564466 +1.6680480 +-1.8475268 +-2.7197330 +6.1349344 +-3.1152508 +0.9857302 +0.2060238 +-2.9733353 +-0.9558187 +-2.6214144 +-2.8370688 +-2.2438297 +-2.0810022 +-1.4742489 +-1.8446850 +-9.0775385 +0.6746261 +-0.9113559 +-2.0583735 +-0.8267719 +-0.7562824 +-6.7443118 +-1.6191406 +-0.0651390 +1.8503546 +-0.0954397 +1.0171670 +-0.1169094 +-0.9963912 +-4.2511535 +-1.2487694 +0.6614225 +0.8484474 +0.7706972 +0.4040275 +1.3841821 +-1.1483836 +0.5831832 +-0.4074338 +-0.0756236 +-0.2166937 +-3.6127727 +0.9384016 +-0.0649135 +-2.9303861 +1.0360490 +0.7548550 +0.6876736 +-0.2697288 +2.4472077 +-0.9367976 +10.5893106 +0.9271368 +-2.6688962 +1.3999203 +0.0560952 +-1.1354933 +0.9397506 +-1.3141345 +-1.6845104 +-3.3628457 +-0.2282594 +-0.6353051 +-3.7552962 +2.0295284 +-0.9841864 +-2.6657107 +-3.7769730 +1.5034318 +0.0288858 +10.8083658 +-0.4862265 +-1.1235151 +-2.2718868 +1.2670434 +-0.7125505 +-0.0780863 +3.5439422 +2.1050768 +-0.2550222 +-0.9010835 +-0.7617338 +-0.4527229 +1.6003760 +0.7361752 +1.6543076 +-1.6315184 +1.4238448 +0.1136979 +-0.7867781 +-1.8945819 +-1.5856702 +-8.0129976 +-4.5545273 +-3.8248980 +-12.0040455 +-9.6781092 +-3.1682718 +-4.6790848 +-7.5571141 +-3.3660984 +-2.8350768 +-7.3752203 +-4.4495068 +-1.9839140 +-0.5340079 +0.3129432 +-4.8797336 +3.1192915 +-0.2031044 +-6.2786870 +2.5631113 +-4.9332461 +-3.5604036 +6.3408976 +-3.8458536 +-2.7546084 +-1.4302803 +-0.2936720 +-2.0363817 +19.8564014 +-3.5800197 +-8.8100662 +-2.7023282 +-6.2942538 +-4.2510443 +-1.2894620 +-4.2028227 +-0.3312229 +-6.0089626 +-8.2491045 +-5.1318030 +-6.4181070 +-9.5912189 +2.1195092 +-9.4837313 +-2.7988563 +-3.5784783 +-8.0529642 +-7.5035586 +0.6563224 +-1.6795176 +-3.5753202 +-9.3042316 +1.4283743 +-1.5825844 +-2.7783778 +-8.1753092 +0.9443924 +-1.9385861 +-1.4974279 +-2.2599683 +-0.4277963 +-2.2557158 +0.5680124 +4.3207521 +-7.9867682 +-6.0485015 +-2.2264094 +-0.8970729 +-2.8552997 +-1.0617831 +-4.9220033 +1.2444729 +-2.8990879 +-5.2278533 +-12.8626108 +-5.1275473 +-2.8947477 +5.5596862 +-1.5897186 +-1.1215147 +-3.5958912 +-4.2327733 +-2.1009605 +-8.1093311 +-1.2128025 +3.9191368 +-5.6506834 +22.8619823 +-4.9476628 +-4.3494830 +-2.7881663 +-0.8230339 +-3.6201069 +1.8982065 +-6.7832637 +-3.7523139 +-9.2147732 +-2.3307877 +-2.2105424 +-1.0463938 +-0.0039505 +-9.0159359 +-3.0018210 +-4.2871113 +-0.6956499 +-1.0726731 +23.7309361 +-2.8047009 +-8.0160418 +-11.7673903 +-1.8916953 +-4.2055688 +0.4810847 +14.3111582 +1.7220271 +-6.4085212 +-4.3642201 +-2.2903976 +-4.6613545 +-1.3995501 +-2.7237463 +-12.7321892 +-2.8742661 +2.3938642 +-4.0339808 +1.7945426 +1.1793979 +-1.7396436 +-9.9154606 +-7.2340708 +-4.1320167 +-14.2169533 +-6.3389196 +-2.6464038 +-5.0696168 +-18.9502010 +-2.0657423 +-5.2714567 +-8.7011862 +-2.3325114 +-0.9345259 +-0.3617464 +1.8926026 +-9.4357166 +5.5795784 +0.0330239 +-6.7930918 +5.6218243 +-6.7416005 +-8.4595652 +9.4248734 +-4.3678613 +-3.2666204 +-3.3268273 +-1.6181571 +-3.8365428 +20.7345924 +-4.6744456 +-12.3617287 +-0.4170498 +-6.9836874 +-4.5931306 +-0.5885715 +-6.9653826 +0.1789413 +-6.9807935 +-14.8472281 +-0.1106150 +-7.6883135 +-7.4055071 +2.5459127 +-10.6175413 +-2.6161726 +-4.3908110 +-14.9143372 +-10.0981483 +-2.8062093 +-4.3499713 +-3.4631135 +-9.5963163 +1.6901759 +-0.9301564 +-2.2491150 +-15.8858366 +1.4504906 +-6.8613310 +-3.1856527 +-3.3913159 +1.9858799 +-3.8541780 +4.8219562 +-1.3677902 +-10.4417219 +-10.2463198 +-3.1160829 +-2.8646781 +-6.1894403 +0.0332206 +-4.0743203 +8.0515537 +-3.3751194 +-8.4988966 +-10.9200754 +-4.9657226 +-4.1581774 +-2.7357721 +-1.9510036 +-0.3577817 +-7.1967978 +-3.7342191 +-2.0562007 +-8.1665030 +-1.4439980 +2.4489002 +-9.2320156 +12.3845615 +-3.9484820 +-5.4837699 +-1.4749135 +0.3733965 +-10.9870863 +2.9572988 +-5.9675341 +-3.6438708 +-15.6445723 +-1.0030550 +-0.4341321 +-1.9755216 +0.5096179 +-10.8209162 +-4.4577641 +-4.2743497 +0.1426313 +-2.4639378 +25.3056908 +-3.3441658 +-11.8045540 +-16.3280430 +-1.2690556 +-6.8999228 +1.1003896 +4.9867873 +2.1271825 +-5.0642033 +-3.8700147 +-2.9357016 +-4.5745287 +-0.2278261 +-1.4789349 +-16.2208786 +-5.9129868 +3.3102548 +-5.7148595 +3.6991422 +1.1918527 +-2.8154821 +-1.7250178 +-0.8255634 +-0.2439758 +-2.0828736 +-5.4143715 +0.3436150 +-3.2368531 +1.8064795 +-0.8647697 +-0.4410932 +-7.4570460 +-0.4224055 +-1.9819599 +-4.2071238 +-1.9050676 +3.1141663 +3.3452966 +-6.0643067 +-4.0900469 +0.0506577 +0.6155536 +-2.6012990 +9.4955244 +-3.2541249 +4.6575079 +-6.6457124 +0.3393498 +0.4477010 +2.3629527 +-5.1370087 +-2.1253252 +5.1027975 +-0.8041140 +4.3965473 +9.5614710 +-3.1340501 +-0.5824803 +-1.2296392 +-0.3722576 +0.6552706 +-0.4298229 +1.9614065 +0.6694171 +-1.4704846 +-2.5884378 +-3.8112640 +0.8190929 +-2.2668293 +-2.3143249 +-7.5247869 +-6.1115942 +-6.8097286 +-1.3314023 +1.0668200 +-4.2989616 +-1.7568246 +-2.4882052 +-1.3675150 +-1.0517030 +1.0473797 +0.2038826 +3.8719537 +1.2819847 +0.4245426 +-3.9359453 +-3.0251811 +-4.6290741 +0.4227995 +4.9857101 +1.6037418 +3.4350824 +7.6623116 +-5.2500896 +-11.0668554 +-0.1405455 +0.8546755 +-2.5449038 +-0.3709636 +0.2182603 +5.4371753 +-2.7637560 +1.5730689 +-4.4563055 +4.9532595 +-0.9910501 +-1.4222329 +-5.1997147 +0.2850089 +-1.6661370 +-7.6496739 +2.2749445 +-3.3058305 +-2.1115065 +-1.5599197 +2.3713613 +-6.9210176 +-3.8212321 +2.7557492 +-3.1195993 +-9.4761257 +0.4907937 +-0.5674586 +-8.2314730 +1.2100295 +-3.0296371 +2.2441168 +7.1909471 +-3.5117869 +-11.9925680 +2.1560354 +4.2191567 +-1.1050147 +-4.2383356 +-0.8669093 +1.8784376 +-0.6448354 +0.1164737 +-14.4767799 +-1.4370592 +1.0413502 +3.7514489 +-6.2130198 +-5.6193571 +2.1929917 +-3.5459459 +2.4127774 +1.2017244 +-12.3368702 +-3.4708817 +-2.6292815 +-2.2853632 +-1.1198183 +-1.7655871 +-0.3252626 +-1.6919420 +-2.5909357 +-4.4155688 +-1.0084549 +-1.1828148 +-1.0566229 +0.4988731 +-6.1821637 +2.5880229 +-1.5831590 +3.8411100 +0.5824965 +-2.5393741 +1.5228729 +-0.9156408 +-0.3566345 +3.5286961 +-1.5308119 +0.1794616 +-4.9075251 +1.4443785 +-5.5842509 +4.5831122 +-1.7763685 +-1.3606160 +-0.5854610 +-2.4704134 +-1.5284573 +-0.1326672 +-3.8714221 +1.3745112 +-1.9134920 +-6.5254669 +6.1845555 +-2.7570961 +0.8840542 +1.5050938 +-2.2947686 +-1.4274521 +-2.9886179 +0.6674979 +-2.3107011 +-2.1582251 +-1.4119935 +-1.7425491 +-11.1401081 +0.5689402 +-0.6139699 +-2.1812382 +-1.4537706 +-0.9784879 +-5.5904346 +-1.4150244 +-0.9201028 +1.6715168 +-0.1447077 +0.3380702 +-20.8601036 +-1.2389842 +-5.4142566 +-1.4357537 +0.9798713 +0.8317597 +-2.2143381 +0.6646791 +0.1912777 +-1.7469832 +0.8032858 +-0.2107794 +0.0610542 +0.3720047 +1.2710968 +-0.3246608 +-1.1909806 +-2.8992651 +1.8091537 +0.4969794 +0.9362261 +-0.5638521 +2.1790111 +-1.1608227 +10.3396225 +0.6154341 +-3.1531956 +1.8177977 +0.0877546 +-2.7904742 +1.1851554 +-1.9286542 +-1.6532978 +-4.0736866 +0.2085301 +-0.5161700 +-3.0992727 +1.7840840 +-1.3998463 +-2.8895240 +0.6389976 +1.6881932 +0.0832611 +9.6851568 +-0.7900221 +-1.9097047 +-3.3628941 +0.4399063 +-0.8034804 +-0.0291684 +3.2737641 +2.2664843 +-0.1241960 +-0.7756864 +-0.7620181 +-0.9049217 +2.4496114 +1.0761563 +1.8533155 +-2.0679860 +1.4045370 +-0.0239069 +-1.5365661 +-0.8684625 +-0.5807585 +-10.9580097 +-3.9835904 +-5.2490773 +-10.8484831 +-7.0931315 +-3.3663516 +-4.6657915 +-6.5999470 +-2.9354439 +-3.5991478 +-7.2228036 +-4.2802815 +-1.4053164 +-0.4968997 +0.4854279 +-7.3358321 +3.5472984 +0.2270252 +-6.5211544 +4.2338147 +-7.2825713 +-3.2493303 +7.7115979 +-4.5090752 +-2.2967901 +-1.9736784 +2.2935734 +-2.9749455 +22.3296432 +-5.4911413 +-9.9586029 +-3.2099130 +-8.5065107 +-4.0052924 +-1.9733682 +-5.7659278 +-0.4594284 +-5.8769751 +-12.1487503 +-4.8651686 +-8.7531719 +-9.3168402 +2.3863149 +-8.2403555 +-3.3307898 +-3.2867582 +-18.8947697 +-8.1276007 +-1.3167945 +-1.3215781 +-3.2106838 +-6.7781305 +2.2237616 +0.8392986 +-3.7501814 +-10.4893723 +-0.3907053 +-3.5624976 +-2.3714499 +-1.8440119 +-2.2974584 +-3.6042666 +-1.3059973 +10.0222616 +-8.2887754 +-5.5747204 +-1.5687686 +-2.5395360 +-3.5423000 +-5.4011836 +-3.8371615 +-0.9346221 +-3.0708351 +-6.3419337 +-13.6313381 +-4.8010292 +-3.1442003 +10.4332438 +-1.7546788 +-2.1494694 +-2.7905262 +-3.5191541 +-1.4000150 +-2.8398314 +-2.1677604 +3.8774316 +-5.7280378 +23.7731743 +-6.2908597 +-4.3098040 +-1.9944793 +0.4803402 +-3.1661537 +2.9388642 +-10.2051134 +-4.8708086 +-9.5177145 +-1.6268601 +-1.0682908 +-0.6346470 +3.1859157 +-9.7165003 +-2.9298184 +-3.7386928 +-0.4802823 +-1.1388893 +24.6297894 +-3.0671766 +-10.7780132 +-17.2991257 +-3.1069696 +-1.2805557 +1.1837933 +14.0218496 +2.1282635 +-5.0466323 +-5.4701524 +-1.0833871 +-4.4275804 +0.9490718 +-2.2735395 +-13.8701963 +-2.9433413 +2.3500931 +-3.9736032 +0.7795707 +0.4858178 +-0.6451184 +-13.4278650 +-7.0648298 +-4.4277425 +-12.1964760 +-12.9552450 +-3.0794673 +-7.1584496 +-16.9418049 +-7.0580769 +-6.0168247 +-8.1882648 +-3.9736872 +-1.2621466 +-0.0384531 +1.4237837 +-9.8204670 +7.1680131 +-0.2919163 +-7.2572398 +5.8878040 +-7.9473553 +-7.1472597 +10.8572264 +-4.8378396 +-2.8080134 +-4.8964248 +2.6972289 +-5.7915163 +21.4623909 +-9.0072422 +-10.6277533 +-2.6632583 +-9.2260180 +-4.6787491 +-4.2147770 +-6.8023171 +0.6991305 +-7.3812585 +-18.0221958 +2.2302880 +-7.9997435 +-6.7372370 +3.9816682 +-9.6293068 +-5.5517578 +-5.5865226 +-23.1694050 +-8.9762859 +-3.8365018 +-1.8676211 +-3.5516193 +-4.5255651 +3.2860093 +0.5420841 +-4.2433047 +-18.5131721 +0.1361177 +-3.1188087 +-2.6067374 +-3.3119457 +-0.0700063 +-2.8601253 +3.8938820 +12.6087942 +-9.9328403 +-13.4056320 +-3.4993384 +-2.3724983 +-3.2608221 +-2.8165982 +-2.0886588 +7.4780087 +-4.8152423 +-9.5268011 +-12.1820755 +-4.3345547 +-4.8780570 +-8.7852678 +-2.3801470 +-0.0136243 +-3.2554209 +-3.4241922 +-0.8789662 +-20.3725548 +-1.1992429 +5.8680596 +-8.0629282 +31.1812382 +-5.1173396 +-6.3983831 +-0.8216580 +2.9780867 +-5.4073715 +5.6181302 +-11.4650583 +-7.1109385 +-12.8207140 +1.3304632 +-1.7802159 +-2.7780838 +3.4255435 +-12.8925037 +-4.7393842 +-3.4805088 +1.8623108 +-2.1409717 +32.8838043 +-2.8078701 +-14.4085007 +-16.7103996 +-2.9777532 +-7.5843053 +1.4648907 +-17.9306583 +4.8809400 +-8.6037245 +-4.5317187 +-1.0192692 +-3.8361142 +-0.0464848 +-0.7343011 +-12.6713305 +-7.4197788 +4.1747613 +-4.5831032 +5.8410349 +1.5635561 +-9.5955906 +-3.8998795 +0.0140259 +-1.5152780 +-1.7782999 +4.8850842 +1.3342426 +-6.7178273 +6.6374774 +-2.4890187 +-11.4381104 +-8.2006979 +3.5719552 +3.6585991 +-4.5582128 +-2.1409569 +-0.5226750 +4.8015246 +0.9794189 +-3.6565435 +5.3892913 +-2.2840104 +-5.5020132 +5.7520866 +-8.2495508 +-1.7320561 +2.0520270 +0.4009701 +-2.2507322 +2.9577022 +-6.1322784 +0.6822672 +2.2498622 +-1.5092380 +-3.6799269 +-3.6157458 +-2.7399001 +0.8251635 +-4.3822241 +-10.8768444 +-2.0404823 +-0.2431551 +2.8974221 +-4.4363093 +0.8917097 +-5.7384100 +-1.5303495 +1.5099155 +-5.7681389 +-2.2517262 +1.3808409 +-1.5808529 +-0.4337592 +-2.9495299 +-0.5785441 +-9.3515415 +-10.4953489 +-1.8625853 +-5.1751986 +-2.7698915 +2.1865745 +2.0696502 +1.1903924 +4.5023489 +1.9615840 +-5.8431511 +-5.9815502 +1.7182828 +10.6310120 +-7.6670647 +-0.2559162 +6.0960555 +7.8833189 +-4.6590066 +-7.6383753 +-0.8665991 +-0.2517274 +-0.5587783 +-1.6838222 +-2.7415187 +3.8394275 +-1.9009368 +6.6785150 +-7.3169808 +15.6013479 +3.4229383 +0.9890200 +-7.7616420 +6.6547794 +0.3605370 +-3.6577947 +1.2584798 +1.5716944 +2.9372971 +4.1329165 +-0.5549009 +-0.0395645 +-6.3010941 +-6.0199380 +-2.1175191 +-3.3978882 +-10.8637800 +0.2101405 +-2.2572725 +-10.2230673 +-0.8877390 +-2.9329484 +17.9456406 +-2.8242581 +-3.6211662 +-25.0295410 +0.2213635 +-17.4814892 +-2.2926395 +8.5168791 +2.1422381 +5.9131217 +-0.5498876 +-5.2555456 +-10.5637531 +-3.3971965 +-5.5875793 +10.8591099 +-0.1163125 +-0.0163672 +-12.8815012 +2.5184262 +0.4934086 +-18.7034607 +-7.9941483 +-2.1105635 +-3.0592463 +1.6947826 +0.5124851 +-0.7101362 +-0.6732515 +-5.7481089 +-6.0999360 +-0.7433386 +-0.9619479 +-4.4307661 +1.7457732 +-12.8485498 +2.7476571 +-0.9556562 +3.2617412 +0.4160113 +-2.9423354 +1.6430869 +-0.7142486 +-3.2663720 +2.0796320 +-1.7978791 +-0.7071857 +-4.3154316 +0.5355023 +-6.9159732 +3.4895849 +-4.1055379 +-1.7587729 +-1.4015403 +-7.0969448 +-1.7400005 +-1.4298288 +-3.5005839 +2.2931919 +-2.9371457 +-14.5397415 +6.8075185 +-1.5553796 +1.5460296 +-0.3932246 +0.3225483 +-0.8000488 +-1.1119472 +-4.4972281 +-2.4439819 +-2.2691593 +0.8732523 +-0.7253429 +-9.5719709 +-1.6114858 +-0.6356112 +-5.5417452 +-1.1885062 +-2.2671049 +-6.7232394 +-0.8604440 +0.0865424 +-1.8130624 +-0.8427724 +-6.9971871 +-46.3576050 +-0.9048691 +-7.7223620 +-1.2049497 +-0.2748264 +0.5688304 +-0.0360379 +0.7189047 +-8.3474617 +-2.7874830 +-2.2097809 +0.5715621 +-0.3285667 +0.5191373 +1.9403663 +-2.9726295 +-0.0540005 +-2.1749904 +3.1148472 +0.5064099 +1.3882530 +-0.7734952 +1.6102790 +-2.3181283 +11.3008175 +0.5352513 +-3.4665120 +2.9869571 +0.0156219 +-1.9799180 +0.5771489 +-0.7592943 +-0.4742039 +-4.8474731 +1.6501542 +-0.8617076 +-3.5853531 +-6.7686515 +-1.3954793 +-3.0091856 +-3.8701403 +2.7516389 +-0.7992740 +5.9205503 +-1.5024792 +-4.3732443 +-3.3896823 +-0.5307094 +0.3647541 +0.2543015 +2.5388646 +1.9344665 +0.4121891 +0.3123243 +-1.0209123 +-1.1129361 +2.5535691 +1.1890435 +1.6658404 +-2.2633321 +1.0100288 +-1.8170447 +-2.3847244 +-2.1063979 +-11.2254477 +-16.9182968 +-1.1875336 +-3.0150692 +-4.0873218 +4.6385818 +-5.9284673 +-2.4893255 +-0.3299960 +1.2718670 +-1.7575455 +-6.2841387 +-1.0562173 +4.1920176 +-9.5739775 +1.1184973 +-2.6313303 +3.4073260 +1.3675259 +-5.0908289 +3.3080139 +-15.9942245 +-9.3798075 +5.6649475 +-4.9003291 +-3.0137923 +-0.7725999 +5.6557317 +-2.1937556 +11.8333549 +-1.6426719 +-8.4751387 +-7.6237769 +-6.1834955 +-6.5047836 +-12.5416183 +-6.7184925 +2.1307988 +-4.9522915 +-14.9015369 +0.5463098 +-1.2650977 +-8.1284742 +4.7214437 +-3.8217399 +-2.8157678 +-1.3075305 +-4.3644118 +-3.5414517 +-3.2445235 +0.1463093 +-0.4825977 +-7.5203185 +-2.4547734 +-0.1398396 +-8.5500183 +-5.9216118 +-3.2902248 +-7.4405608 +-1.8925593 +-9.2445917 +-4.7320628 +-3.9308484 +-5.7918177 +-1.0987955 +-6.4195585 +-5.1533170 +0.0065996 +-2.4845715 +-3.2113407 +-7.4470868 +-5.7943912 +-10.3057747 +-4.2056298 +-5.7836008 +-1.7547052 +-5.9021835 +-5.3027930 +0.5241450 +-15.5960150 +-1.5975435 +-1.1233783 +-6.4849968 +-1.7066265 +-2.0859306 +1.5957243 +5.9752192 +-5.1091599 +4.0044465 +-2.4070058 +-3.0943506 +0.5457833 +1.4999220 +5.0401130 +0.9843555 +-3.8277912 +-1.0538505 +-9.3993683 +-6.1646161 +-0.9260506 +-4.2438402 +-25.7721500 +-8.1102009 +-5.2605476 +2.1465225 +1.8918184 +-2.1362996 +8.6844015 +-1.8861431 +-9.2508593 +-7.2524300 +-3.4329088 +1.0942194 +1.6276169 +-16.5608807 +1.3910756 +0.5448551 +1.4098490 +-0.4461660 +-4.7792182 +-0.1271856 +-1.6501073 +-6.2736888 +-4.8780770 +1.4750143 +-6.1974854 +-4.5468493 +-1.4146121 +-15.6877623 +-13.4053230 +-2.8306396 +-5.4590235 +1.5199581 +7.2995472 +-5.5490942 +-1.2199100 +0.6974606 +-5.5084028 +-1.2321393 +-7.0197916 +-4.1641736 +1.9453226 +-10.3357878 +1.6509709 +1.1438872 +8.3082361 +-3.6025941 +-4.6701798 +7.4180093 +-11.7666969 +-16.8330288 +9.1780901 +-5.8689132 +-3.7706656 +-5.6991119 +-0.3239246 +-4.2409768 +17.2310753 +-3.3796268 +-11.4888134 +-5.2916656 +5.2787714 +-6.9839234 +-14.1705132 +-11.9119806 +-0.4166328 +-7.4819126 +-15.7050943 +5.7915292 +-7.5689602 +-6.6051135 +3.4373736 +-2.2896602 +-5.3651576 +-0.0304729 +-16.5956631 +-6.1768703 +-3.2401140 +-0.0263344 +-1.2542225 +-13.0388985 +-2.0781226 +-0.3452053 +-9.8734426 +-4.8088059 +-1.9309115 +-3.5903382 +-2.5979373 +-7.8658915 +-1.8450623 +-5.3676925 +1.0298107 +-24.5379257 +-6.9827089 +-14.6113310 +-0.6730704 +1.1905435 +-5.3655910 +2.2951968 +-6.2918777 +-1.0011636 +-10.3107271 +-6.0973330 +2.4434888 +-6.1348419 +-3.4177461 +-0.4349545 +-21.3333111 +-1.9770280 +-1.3475295 +-0.2995472 +-5.5484037 +-13.6879253 +3.9861119 +7.1529570 +-7.5036964 +0.3220456 +-2.0975108 +0.7173926 +2.6913958 +0.0139117 +7.4670944 +0.7898453 +0.3035720 +-1.5220753 +-2.8291817 +-1.5900543 +-2.4451132 +-6.9163055 +-12.1596565 +-16.7614594 +-8.2401333 +2.9140563 +3.0026500 +-2.9734082 +4.4460340 +-3.1689682 +-11.1710396 +-18.4832706 +-3.0156837 +-2.6003835 +1.8247192 +-14.3468180 +4.0301232 +10.1821489 +-0.0810473 +0.3236168 +-9.4114714 +-1.4403393 +-0.7212843 +-14.1886578 +-6.6041794 +1.9294894 +-6.7059450 +-8.4844275 +-2.9484286 +-9.2186766 +-3.9524567 +-6.0908680 +-4.1002188 +0.4581437 +8.1971884 +-5.0105171 +-0.3962872 +-7.1642299 +-0.2639110 +-4.2565084 +-5.5575161 +-0.1050685 +6.6024985 +-4.5721993 +-8.2655210 +6.5810199 +0.5933132 +6.4991837 +-2.6195061 +4.4882164 +3.1237926 +-2.1618035 +-4.9915209 +-6.9201937 +-2.9929345 +-0.4450054 +3.8171530 +0.0073616 +-0.0247079 +1.8562313 +-0.7496403 +2.8862245 +6.8704658 +-4.1791101 +-5.9620337 +1.1886668 +2.9328237 +-2.5260561 +1.6871030 +-0.4112132 +-6.9222913 +-1.8265024 +-2.2292676 +-7.5121317 +3.5098419 +-3.0139482 +0.3926204 +8.3896761 +-10.4853783 +-0.4586687 +-5.0566001 +-3.3567724 +-5.5539250 +-0.0055006 +-1.3274925 +4.7628150 +-4.6377945 +0.4006402 +-4.1041117 +0.2320823 +0.3509702 +-3.7207670 +1.7890735 +0.2080512 +2.5008078 +-2.5101671 +4.5225272 +16.7528172 +-1.1340487 +0.5373439 +-0.6346452 +3.4795654 +-5.4216681 +-5.7200203 +-0.5229542 +1.0800910 +-1.6395324 +1.0498511 +-12.2080841 +5.4792972 +-2.6792207 +2.0546489 +2.1156580 +-8.3419523 +-6.4179630 +-1.1220748 +4.1160402 +3.4668844 +2.8033037 +-0.1995752 +7.9063382 +11.5340614 +-8.3652782 +7.5415421 +-5.6018739 +3.1235580 +1.4561385 +-4.1344500 +-13.7710505 +-5.0839453 +-3.4114053 +-9.3701105 +-3.1572728 +-0.4250924 +10.4834557 +-1.0055169 +-1.4142402 +0.8618918 +-6.3306298 +1.1729167 +4.0720077 +-9.6986732 +-2.3500068 +-2.7717025 +1.8922606 +-1.3219715 +-0.7084644 +-2.2729080 +-4.4940448 +-5.7954087 +0.4300971 +-1.2328944 +-7.3775673 +3.1262999 +6.2043467 +2.5983229 +1.4009962 +-53.2235413 +-7.1090865 +-2.8761082 +-1.8777715 +0.2490655 +0.8466178 +-1.4851639 +-1.2558700 +-4.9958191 +-3.6893160 +-1.3934644 +-0.9708004 +-0.6524584 +1.2246894 +-17.0422058 +2.0404377 +-2.0189495 +3.4692721 +0.1525355 +-4.0541162 +-0.3660284 +-0.0245037 +-3.7114863 +2.4217017 +-3.3186753 +0.2179535 +-13.0238276 +-2.7206991 +-5.5037451 +1.5633662 +-4.1251812 +-2.8492715 +-2.6152954 +-10.4084425 +-2.5500891 +-2.2526107 +-3.5288260 +1.8724139 +-4.4445534 +-14.3109808 +6.7750812 +-3.1152079 +0.9909017 +0.5827703 +-1.7617625 +-1.4796268 +-1.7930286 +-6.4472976 +-2.8319747 +-2.9293129 +0.5617077 +-0.6525916 +-11.4010935 +-2.2914848 +-0.7663516 +-4.8089914 +-2.4174998 +-1.8192914 +-7.0304656 +-0.9488130 +-1.3977917 +-13.2332935 +-0.7266098 +-10.9751320 +-5.6281309 +-1.1847219 +-9.2494364 +-1.2083488 +0.5763332 +-0.5931677 +0.2649441 +0.7360646 +-9.2434444 +-3.3708918 +-1.8631964 +-1.4664946 +-0.5122490 +-0.5557308 +1.3641641 +-5.8418555 +1.0111094 +-1.1344452 +1.4335916 +0.9375709 +2.1781621 +-1.7398323 +0.3707997 +-1.0839083 +8.2527399 +-0.2201913 +-23.6880722 +2.6006901 +-0.5268638 +-6.9271393 +-0.3852038 +-0.9170264 +-0.4499165 +-7.6720095 +0.3050190 +-0.4827439 +-3.5048909 +-5.4538617 +-1.3676786 +-3.3361788 +-6.4955897 +2.8460548 +-1.2585213 +5.0585766 +-1.7685344 +-15.0878220 +-5.5299625 +-0.9486841 +0.6077242 +-0.2167898 +3.3365719 +2.4110897 +-0.3233646 +0.3875251 +-0.4232517 +-2.0662661 +1.5917745 +1.1829662 +1.8485028 +-2.5539224 +0.4409940 +-0.4774899 +-1.3017694 +-1.7393638 +-11.4395218 +-16.8578091 +-5.5818644 +-2.7841837 +-4.0477843 +1.2918042 +-6.3068008 +-4.1465683 +-0.2729820 +-3.4388242 +-1.5423115 +-6.2163658 +-4.5543652 +-0.9787962 +-11.0732222 +2.3626263 +-9.6371660 +4.9743328 +-0.6223506 +-7.1474199 +2.0727682 +-30.6335297 +-7.3553066 +7.1001930 +-4.2239890 +-2.7225614 +-5.4927816 +3.8100092 +-1.9560356 +14.6543407 +-6.0722451 +-8.3563919 +-9.5847521 +-1.5879480 +-6.5146861 +-11.1849508 +-5.1921492 +-0.0066597 +-4.6775155 +-13.6236610 +-2.9745007 +-14.6362514 +-8.0703659 +2.8354137 +0.0989771 +-2.6727328 +-4.2510204 +-12.1683588 +-3.7617419 +-4.7589254 +0.6791875 +-1.4247380 +-8.7917356 +-2.8333821 +-1.0227635 +-14.9511490 +-5.1747103 +-3.4049087 +-21.2223530 +-1.1025115 +-10.4692993 +-7.9997411 +-4.0357618 +-6.5811615 +-32.1127510 +-7.0927620 +-1.9319956 +-0.3321731 +-2.5242302 +-3.8903742 +1.3827972 +-4.3482370 +-9.6002464 +-7.1475215 +-6.3107281 +-3.2404356 +-6.2658453 +-4.0414729 +-2.8025231 +-17.7921314 +0.2602876 +0.0849646 +-5.6573186 +-1.5187941 +-2.3310072 +0.2372663 +3.4203174 +-5.1345487 +-19.8864212 +-3.5940974 +10.2073488 +-0.7510732 +4.5533175 +-0.4943935 +2.1670623 +-1.6331072 +-1.7429721 +-11.7849703 +-6.5021977 +-2.3649864 +-2.9037631 +-23.8199310 +-8.4290562 +-5.6644526 +-10.9112558 +1.3088334 +-2.8220177 +13.9504957 +-2.8739538 +-11.1803513 +-11.8569775 +-4.6230755 +0.4684269 +-0.0876321 +1.2963605 +4.3324962 +-0.7898806 +0.1283416 +-1.1639169 +-4.7866135 +-3.6407478 +-1.3298621 +-7.1672015 +-5.0134454 +0.0967828 +-6.1640911 +1.5809547 +-0.9728930 +-16.5376034 +-21.9242325 +-7.6812124 +-1.8031197 +-3.1990254 +4.1748147 +-6.6575508 +-3.0235322 +-7.5795989 +-13.7447243 +-3.5393760 +-7.1985846 +-4.3675427 +0.0549346 +-14.5359030 +4.4591193 +-5.2604017 +8.2561979 +-0.9924319 +-6.6864290 +3.0499866 +-21.5926704 +-11.8170128 +9.6711941 +-3.6860034 +-3.6813271 +-11.2706385 +9.1005411 +-4.3651733 +17.0422096 +-7.8701515 +-8.5721626 +-9.0020151 +-6.1140871 +-7.6643229 +-11.9643135 +-6.9502087 +1.4611253 +-7.6575613 +-21.5014133 +4.2900705 +-19.9633617 +-5.2201934 +4.1678314 +-0.9083543 +-4.5001354 +-5.9308052 +-17.8020000 +-2.3478155 +-5.2429681 +0.8517283 +-0.9999715 +-9.8527861 +-3.7634950 +-1.7220582 +-22.3084774 +-4.1674180 +-5.4309111 +-6.6068735 +-1.8389192 +-12.2375526 +-9.6918211 +-3.5876667 +-6.6111789 +-18.6288395 +-8.5917244 +-9.6579943 +-1.5806087 +-1.0647377 +-3.6081581 +9.8234453 +-3.0513327 +-8.1917925 +-8.3652935 +-7.3720374 +0.2967662 +-6.0105267 +-5.1312690 +-17.9521885 +-20.4993515 +2.8676908 +0.3442519 +-6.7549949 +-1.5411966 +-0.7969244 +2.5966482 +4.9714408 +-7.2847385 +-3.4280581 +-1.0571673 +8.6847773 +2.2689705 +7.7100315 +-2.5559170 +4.4680319 +-0.3642461 +-1.9065684 +-16.3552914 +-7.9520969 +-3.6990368 +-6.8187466 +-18.6170025 +-9.7541027 +-7.5624003 +-13.7224808 +4.4842043 +-3.9317670 +16.1177387 +-1.9517485 +-16.9183559 +-18.5636806 +-4.8312540 +0.0730980 +-0.5298584 +-20.8960457 +7.0324907 +0.7241553 +2.6362817 +-1.3650250 +-5.6852717 +-2.1890635 +0.1854593 +-2.5940874 +-8.9394112 +1.5003594 +-6.4336963 +4.4856157 +2.7275226 +-14.9436178 +-12.3113966 +-2.8354626 +-0.3525213 +-14.2417355 +7.6045666 +-2.1909645 +-1.8312163 +6.8098583 +1.7459927 +-2.6131673 +-2.6513102 +10.9577742 +3.3416495 +-7.4546661 +3.9830012 +8.8459253 +7.5976486 +-1.5964348 +-1.2708787 +-0.3133699 +13.0098791 +-13.7734299 +6.9205666 +-4.9453444 +1.8432672 +-1.9642241 +9.9510412 +-10.5865936 +-7.6440687 +-5.6379919 +-9.2298574 +0.8077438 +-3.1029358 +-4.4777722 +-2.7825568 +-6.8260956 +1.7169880 +-4.7649107 +-15.4525194 +1.0435835 +0.7803533 +1.7685840 +1.6008536 +-4.2506886 +-2.5216141 +-3.2761426 +-5.0670204 +0.4776835 +-6.0417547 +1.2912519 +-0.6631925 +4.5871549 +-2.6821864 +-3.4199226 +-6.2195582 +0.7363165 +-1.8346829 +4.7882180 +-2.1206388 +-1.9812799 +2.9011669 +-0.1033673 +1.7841855 +-0.4272681 +-1.3028163 +-3.6904235 +-5.5582895 +-3.0813525 +-0.4462954 +12.8043842 +2.2706287 +3.5033081 +-1.9361229 +-1.8232571 +-2.0483811 +-1.8105255 +-0.4941251 +-7.5689039 +-8.5916977 +4.9189076 +1.9887497 +8.1751938 +0.0242977 +7.1955967 +3.1616821 +-0.0691011 +-0.4715057 +5.7622452 +2.0476956 +-0.1553087 +4.8773670 +3.4946933 +-2.7021806 +4.4923449 +-6.1437688 +-2.0101519 +-10.2072105 +6.2783294 +-7.7919149 +-3.6930616 +3.2752700 +3.6220062 +-2.9820075 +-9.1219788 +6.3269815 +-3.1594210 +9.7685051 +2.1386979 +-7.0693345 +-17.6674919 +-0.3331250 +2.4459813 +-0.3614779 +-2.5815768 +5.4071178 +4.5351582 +0.7236884 +-2.0904012 +-4.3410001 +11.9679174 +0.6436315 +-0.8637838 +-5.8963981 +0.1875016 +-0.3514570 +3.0459781 +0.9778689 +-34.2397423 +-8.6960716 +-31.9234619 +-1.8736234 +-1.0494248 +0.3285913 +-1.8712933 +-1.3215173 +-5.5965381 +-5.3171244 +-1.7709905 +-0.9465065 +-0.5719332 +1.0768909 +-17.7777557 +2.0915570 +1.3264506 +3.6533194 +0.2665797 +-4.0539312 +-2.1748693 +-0.6263485 +-4.2576470 +2.8761737 +-4.3305492 +0.3222138 +-14.9822645 +-2.4690351 +-5.7171283 +0.8551311 +-4.0431542 +-3.6533008 +-3.4518158 +-5.6324768 +-3.2880991 +-2.8905458 +-2.9861867 +1.7567250 +-5.1512465 +-17.5128841 +6.9395590 +-2.8381732 +0.5100557 +1.2128655 +-2.5872233 +-2.1734488 +-2.3292816 +-7.8712163 +-1.3523130 +-3.1077173 +-0.1034344 +-0.4027284 +-17.1846027 +-2.6531992 +-1.3069402 +-5.4906330 +-2.3673069 +-1.8942293 +-6.3586335 +-0.9446201 +-1.8342979 +-12.7091713 +-0.9986255 +-9.3060837 +-9.0221777 +-1.0520502 +-12.0497904 +-1.4590598 +0.7628641 +-1.3951370 +0.3477120 +0.8221906 +-6.0992126 +-3.4898906 +-2.0531273 +-1.0767990 +-0.9936119 +-0.8233600 +-0.5697968 +-5.2753987 +1.2036412 +-0.3281422 +0.9499636 +0.5923302 +1.6353298 +-2.6089787 +-2.6827364 +-1.1197637 +7.6158414 +-0.7418317 +-1.3951725 +2.5984452 +-0.9295565 +-6.3234076 +-1.8227699 +-0.8878955 +-0.4622183 +-8.9848862 +-0.4321355 +-1.0638990 +-3.3168120 +-4.4252381 +-2.2470336 +-3.2353902 +-7.4374795 +3.1763833 +-1.4449393 +-2.5634677 +-2.0016348 +-16.2942715 +-6.3330202 +-2.0411015 +-0.6628897 +-0.3165809 +3.8659210 +2.8969035 +0.9016737 +0.1135172 +-0.5504581 +-2.7865887 +0.5042102 +0.7712676 +1.8714503 +-3.0411668 +-0.0301298 +-2.2227204 +-1.3181624 +-2.1553473 +-10.6419621 +-21.1906605 +12.5931044 +-5.3280849 +-7.8348475 +1.7325951 +-7.0874581 +-3.7055283 +2.6893766 +-0.9044895 +-2.3363578 +-7.2340193 +-3.7021976 +-1.3575314 +-11.0384731 +1.9419239 +-2.4099624 +6.0937119 +-0.4593623 +-7.0533419 +-0.3398303 +-15.6591702 +-7.8010769 +4.7421527 +-6.9372520 +-3.2351890 +-7.6420331 +5.5405965 +-4.2692051 +14.9084435 +-6.2055764 +-10.6597357 +-11.7924757 +-3.5082798 +-9.1091213 +-8.1722174 +-7.4603019 +-1.2009946 +-5.4276323 +-20.2334442 +-6.2361817 +-11.2268457 +-9.6117258 +2.1055279 +-2.8561466 +-4.3548017 +-3.0671206 +-13.9507980 +-4.6187778 +-3.3167477 +1.9740515 +-1.5759610 +-13.2561922 +-4.2281003 +-3.9746957 +-19.1442719 +-6.3242936 +-3.0479784 +-9.2550678 +-2.1023633 +-9.1471100 +-7.7578287 +-2.3894286 +-7.3591328 +-29.9569511 +-6.2609935 +-3.4347525 +-0.8569087 +-1.9319152 +-4.6529560 +0.9689649 +-4.6517115 +-11.4886217 +-9.8520517 +-6.5312748 +-6.4819551 +-7.4430790 +-3.8808978 +-0.1827725 +-15.9244308 +-2.2237356 +-2.0228741 +-5.3377171 +-2.0909157 +-2.3291028 +-0.9470274 +0.2684320 +-5.0061440 +-10.3858442 +-5.5777221 +-8.8749762 +-1.7126704 +3.0650258 +0.7734134 +0.6379378 +-2.2080646 +-0.1691640 +-11.8088703 +-8.4621572 +-3.2445202 +-2.6119509 +-11.4169855 +-8.5985298 +-5.8849854 +-15.8981733 +1.2384448 +-1.7720476 +6.4839935 +-4.2328162 +-11.9375420 +-4.6888843 +-6.7698879 +-0.0956252 +-0.4335949 +7.3997211 +5.0993571 +-0.1230249 +-2.7914793 +-0.6463425 +-5.7322769 +-7.1899853 +-2.8109720 +-9.2509499 +-4.8714237 +-0.9267219 +-6.8246460 +1.3726132 +0.0064644 +-17.3312664 +-26.7558880 +12.1698542 +-5.1658068 +-10.4112854 +5.8433714 +-7.7046914 +-4.1873913 +-1.5026023 +-20.7965679 +-5.3599815 +-8.9554300 +-6.1720719 +0.5007648 +-16.2446289 +4.1398239 +2.0057693 +10.6109362 +-0.6344770 +-7.9369826 +-0.8981628 +-16.3278027 +-12.8915596 +7.0953307 +-7.1898246 +-3.9322672 +-14.4950533 +9.5907898 +-7.8496170 +2.2894490 +-8.8729982 +-9.4189129 +-12.2064676 +-5.1904907 +-10.7635479 +-9.6806002 +-10.1228886 +0.3910998 +-8.3470697 +-26.9750004 +-0.4289677 +-10.8186998 +-7.3620300 +2.3496292 +-5.8360209 +-7.3872905 +-4.6255655 +-27.5889626 +-3.5095234 +-5.5864372 +2.1303775 +-1.9562136 +-8.0338764 +-4.4937706 +-5.4165850 +-28.7911720 +-5.6704955 +-5.9293861 +-16.2192192 +-2.6034594 +-12.1954012 +-9.6829243 +-1.6449168 +-9.1754761 +-32.4525833 +-7.6612372 +-11.4585772 +-3.0018456 +-1.3923028 +-4.0564256 +5.7854815 +-3.6044888 +-12.3687134 +-12.8489847 +-8.0155115 +-4.8648591 +-7.2077746 +-8.2639837 +-20.4368172 +-18.8385124 +0.1207743 +-1.7801479 +-9.3632374 +-2.8172834 +3.4954946 +0.8726005 +1.6992259 +-7.7156711 +3.3463554 +-2.5915475 +-11.3240795 +1.3668947 +5.4504437 +-1.5115932 +2.9182785 +-1.1434703 +0.1184114 +-18.0598335 +-7.5848193 +-4.2878075 +-8.0612297 +-15.6354494 +-10.3795500 +-10.0194483 +-22.3204174 +4.6473365 +-2.5776582 +6.0778499 +-3.3682115 +-20.8312721 +-7.4546289 +-7.5464864 +-0.9696562 +-1.5034964 +-12.3961630 +8.5897360 +2.9231126 +-0.9209620 +-0.4930104 +-8.3608408 +-4.0862060 +-2.5651405 +-5.9047456 +-8.8086615 +-0.4339651 +-6.0869389 +3.3288379 +1.5518239 +-22.2726021 +-13.8791180 +-8.8988190 +-1.6293821 +-7.1431084 +10.9585266 +-2.8100047 +0.3882788 +-20.0614090 +-2.3786306 +-5.6707659 +-7.3110876 +9.7865334 +3.2714517 +-9.9760170 +4.1575732 +4.6600065 +4.0277586 +-2.6182861 +-2.9714236 +-5.4016638 +9.9803782 +-12.7351007 +4.9636607 +-6.4593096 +-0.1289040 +1.0173227 +8.2636423 +-0.1753872 +-4.7807264 +-5.5949888 +-5.5199070 +-1.8504466 +0.4396749 +-4.7272596 +-0.1358738 +-5.4500790 +4.0412574 +-4.1353178 +-10.4044514 +1.2175578 +1.9301850 +0.3608767 +0.4092973 +-7.8959093 +-3.9122424 +-5.0912666 +-10.1991863 +1.1966029 +-3.8633707 +-0.9464494 +-5.6317725 +1.8158857 +-3.4858365 +-5.4273143 +-4.9148588 +0.0879906 +-3.6871209 +-4.4159756 +-2.0481765 +-2.4651134 +3.1798117 +-0.7251208 +5.0287108 +1.8454866 +-2.0600586 +-2.4028192 +-7.3015375 +-6.0911584 +-0.2572205 +12.9999762 +-1.5263206 +8.3038492 +1.1628484 +-2.6702435 +-2.1210995 +-2.8051481 +-7.4639487 +-8.9749498 +-3.8489301 +1.9010143 +-0.4315146 +-3.5982118 +-0.8004051 +1.1664857 +-0.9816808 +-3.3876364 +-6.0645151 +10.0565557 +2.4377308 +3.3665869 +5.0735188 +3.2776392 +-2.3937287 +4.6312513 +0.7545721 +-1.8097486 +6.8006859 +-10.0432444 +-6.0398102 +-5.3362575 +2.1499708 +6.2911444 +-3.0322082 +-5.7702117 +6.6035428 +-0.8597331 +2.0871646 +-1.7886969 +-2.6818802 +2.5282881 +-2.8767552 +5.1066494 +-2.7245212 +0.3051928 +2.8250306 +7.8666558 +5.3836751 +-1.5891626 +-3.0784850 +12.4827127 +-4.9074068 +0.3480451 +-8.3477144 +0.9915683 +0.1486483 +2.7217221 +1.2891464 +-23.9735374 +-10.4129219 +-2.5984151 +-1.6232572 +-2.6946304 +1.0838600 +-2.3623145 +-1.1111457 +-5.2767124 +-7.8222399 +-1.8872330 +-0.9745147 +-1.9547985 +1.0177408 +-15.5706186 +2.6334379 +-0.2021292 +4.7638078 +0.6679100 +-3.1603303 +-3.1933837 +-0.8513621 +-4.8999658 +4.5833879 +-5.1525059 +-0.6785998 +-13.4223785 +0.0389517 +-5.7953033 +1.0743427 +-5.4657907 +-4.1065345 +-4.8930392 +-5.5145984 +-4.1826401 +-4.5077338 +-3.6965318 +1.2530619 +-6.4905767 +-20.6411972 +5.8387723 +-2.7929630 +0.2041014 +2.1298873 +-3.8279305 +-2.5126793 +-2.7559099 +-9.1798277 +-2.6786127 +-3.1233966 +-0.8096558 +-1.4326036 +-37.4189034 +-2.4625943 +-1.6754595 +-5.5762801 +-3.2600479 +-2.0941124 +-5.3458996 +-1.1861352 +-2.4911268 +-10.5106001 +-1.8465580 +-5.7261353 +-5.6665921 +-1.0561386 +-15.8539896 +-1.8959216 +0.1396259 +-2.0700636 +1.9559524 +0.9841161 +-3.7960231 +-0.2263349 +-2.8123453 +-1.3705584 +-1.5313933 +-0.8619189 +-6.2860065 +-3.8383653 +1.8741485 +0.5597656 +0.5901937 +0.5486958 +2.3076377 +-4.3595629 +-5.2819209 +-0.8252649 +6.6088891 +-1.3832986 +-2.2602422 +2.4036784 +0.2090583 +-5.3091350 +-2.0114927 +-1.9746797 +-0.4325195 +-10.0372658 +-1.4351192 +-1.0579625 +-4.4119363 +-3.9459808 +-2.8576260 +-3.3950033 +-7.5048957 +3.4136565 +-1.8748941 +-2.1016455 +-3.7688580 +-31.6560802 +-5.3880711 +-3.1320627 +-0.8823604 +-0.4514512 +4.0682721 +3.4554825 +1.3227930 +-0.0446062 +-0.6529498 +-2.7386408 +0.4613737 +0.8671714 +1.8681728 +-3.5113406 +-0.1039209 +-2.9580004 +-2.2753119 +-3.7080193 +-10.3170185 +-26.5242844 +-4.5547500 +-8.3157206 +-15.4349480 +3.6092319 +-8.6093445 +-3.7231247 +5.1755729 +-1.4006164 +-2.9667845 +-8.1921616 +-4.4861441 +-0.8381822 +-11.4039364 +1.6774931 +1.5047350 +8.0241241 +0.1430597 +-7.5120263 +-1.2177215 +-8.1223307 +-9.4208679 +8.8906116 +-9.7209120 +-3.9491165 +-11.2002354 +7.5780892 +-5.3924708 +18.7452736 +-7.8778477 +-12.1836185 +-14.7709503 +-6.2666864 +-11.5821323 +-3.1147041 +-9.7415314 +-2.3294754 +-6.6674309 +-27.7514610 +-8.3927059 +-4.5955653 +-11.5095720 +7.1143899 +-7.9520307 +-6.1735401 +-5.8800244 +-12.8366613 +-7.9610929 +-1.3392004 +-0.5604600 +-2.6981590 +-12.6600971 +-6.0959673 +-8.3285666 +-18.9484596 +-7.0990372 +-1.2163131 +-21.4225826 +-2.5321205 +-8.5371828 +-10.3697739 +0.0379091 +-9.6425810 +-11.0253735 +-5.6423717 +-8.0049229 +-1.8893341 +-1.7159694 +-7.1166983 +0.7272018 +-5.9826760 +-15.6317587 +-14.7692394 +-6.0654931 +-9.9586029 +-9.1968794 +-4.3876338 +-0.6367331 +-15.3885574 +-4.8249521 +-0.7200490 +-7.4570122 +-3.4274137 +-1.5467254 +-3.3876624 +-3.6347408 +-4.8947730 +6.2465949 +-7.4426994 +-6.2881088 +-2.6317649 +-0.3500518 +0.9618676 +-0.1942925 +-5.6096530 +1.2291600 +-11.6914282 +-12.4534149 +-5.5488715 +-3.5754011 +-8.1140175 +-10.1747446 +-6.2922630 +-11.1406689 +1.1807607 +-1.2765119 +2.2204883 +-8.9475956 +-14.8320932 +0.0310714 +-9.3451462 +0.5906861 +-1.5775238 +8.2100067 +5.9466558 +1.1808059 +-5.7594519 +-1.1221696 +-7.0893469 +-10.4259367 +-3.8417723 +-10.9183664 +-4.9764113 +-1.2460990 +-4.6301413 +0.4902319 +-1.2269268 +-19.8236103 +-34.4654350 +-6.1004539 +-9.4531708 +-23.8622475 +7.6561346 +-9.8054171 +-4.1537495 +0.8709292 +-8.0072079 +-6.5947576 +-10.9240847 +-4.8500605 +0.4705040 +-19.0293121 +3.8280849 +4.0129180 +11.6600389 +-0.3132212 +-9.6362429 +-1.3457202 +-7.9043155 +-14.6244402 +11.7127266 +-10.3260374 +-5.4439964 +-21.7587109 +12.3442392 +-7.5803766 +8.4300642 +-12.9772062 +-13.1923313 +-15.3055420 +-9.1579132 +-12.4172220 +-2.4571431 +-11.5954952 +-0.8658960 +-10.4874172 +-33.3627930 +-16.7818222 +-4.8667836 +-9.8019419 +8.3460569 +-13.8225965 +-8.7840443 +-7.0946064 +-18.2683067 +-7.1777587 +-2.9059591 +-0.5981101 +-4.1015439 +-6.9431233 +-6.4587731 +-11.4608831 +-26.4136829 +-7.2720933 +-3.3353944 +-13.6061783 +-3.6767678 +-8.3991919 +-11.4415102 +0.1436381 +-12.7181931 +-20.3228321 +-6.8651857 +-14.9713240 +-4.1979365 +-2.2758479 +-7.1816130 +6.6626992 +-6.2150712 +-18.7069550 +-12.6918726 +-8.1867285 +-12.9283352 +-9.9262514 +-6.2473445 +-12.3583479 +-16.7253933 +-3.7675123 +-0.8076152 +-5.0702167 +-4.1134777 +-4.2152505 +-4.3531647 +-4.4949851 +-7.9671936 +26.8504009 +-4.8264918 +-7.9479160 +0.6483390 +1.2509960 +-2.1447458 +2.4005284 +-2.5592968 +0.9730636 +-20.4198875 +-9.9893579 +-6.4961996 +-7.7780619 +-15.5439806 +-12.6372824 +-9.6042852 +-14.8456554 +5.0913558 +-2.5706990 +-3.2617371 +-10.0655518 +-25.3771763 +-1.1569188 +-10.9054556 +-1.0475371 +-1.6514815 +-13.9184637 +8.6980276 +4.0756574 +-3.1580105 +-1.2224112 +-8.3852491 +-1.8552344 +-5.8850746 +-8.7350264 +-9.5619259 +-0.2372646 +-4.2747478 +-0.1378886 +2.9983647 +-30.1052837 +-5.8076577 +0.2069638 +-3.2130320 +2.4721525 +7.7080684 +-0.8959358 +0.6142587 +-9.7171259 +4.2899485 +-12.7761383 +-8.7514114 +1.7970188 +2.4407444 +-11.6598625 +1.8909391 +7.6974416 +3.4507163 +1.4308442 +-2.2130308 +-4.1219869 +5.4344573 +-3.6476851 +6.1363330 +-2.5170670 +1.2218612 +10.4283447 +6.6667976 +-4.6459599 +-2.9424794 +-6.5854592 +-11.2458096 +-0.8367833 +3.9075437 +-4.7894888 +0.6902326 +-5.8506374 +3.7154179 +-3.7338004 +0.4751100 +1.7659190 +-5.0782642 +-3.0154736 +2.6229103 +-4.1295347 +-5.7620845 +-1.8177172 +-23.6453629 +-1.4826266 +-1.9080430 +-1.7508913 +-6.8543582 +-0.5804649 +-1.4405252 +-7.0845075 +-13.0935802 +-2.6441743 +-2.4399185 +-0.5351973 +-3.5302773 +0.8342276 +0.7821102 +-1.4135009 +-2.9220829 +-6.9618907 +-4.3867207 +-2.6503594 +-6.7061439 +0.2382467 +-0.7440377 +14.3933563 +-2.7707045 +-3.4258177 +4.7541127 +-2.5708044 +-3.5601101 +-3.6073928 +-2.2552719 +-7.8273625 +-8.4312458 +3.7035265 +2.1630716 +5.3064318 +-1.0562342 +-4.5374808 +-4.3677788 +1.6982806 +-2.9651330 +17.7032223 +-0.5639064 +0.7252046 +2.5598929 +1.9435369 +-2.5323567 +0.1566574 +2.9515700 +1.2009088 +6.1439099 +9.1986370 +-26.7698784 +-11.9149141 +-1.1511524 +5.9691491 +-5.0609336 +-10.9630651 +4.5894856 +-1.3061422 +-3.4538317 +0.8689164 +-0.7201518 +-0.2474232 +-0.4424351 +0.2121227 +-2.6852446 +10.8760815 +3.1247115 +5.9023848 +4.3138986 +-4.9215517 +-5.1794195 +-12.3661165 +-8.6850176 +2.6644802 +-5.0939155 +-0.0450793 +-0.7870896 +3.4519508 +1.2632574 +-27.7237015 +-13.5375586 +-2.1501129 +-1.6214008 +-4.6730542 +2.9535477 +-3.1176679 +-0.0355461 +-4.6606245 +-11.2744703 +-1.8173314 +-1.1192812 +-2.1297536 +1.2594081 +-16.0296936 +2.7921236 +-0.0223603 +5.6764355 +0.5400227 +-3.3825188 +-4.7564607 +-1.3910414 +-4.7753396 +4.2148051 +-6.1563935 +-1.1013954 +-15.0819883 +0.1038717 +-6.0337410 +0.4802177 +-1.5787914 +-5.7053781 +-4.9834194 +-4.6449800 +-4.7592626 +-6.9926152 +-3.5223491 +1.4835299 +-7.0522728 +-24.6146584 +5.2813010 +-4.2588181 +-1.1802632 +1.2193353 +-4.0325446 +-2.7127347 +-3.0821083 +-8.3115196 +-2.0246673 +-3.0231438 +-0.7194009 +-2.1956418 +-29.3695087 +-2.4508433 +-1.6721908 +-6.9683585 +-3.4028733 +-2.8694005 +-5.4086828 +-1.1808753 +-5.7950721 +-26.9105129 +-1.3996458 +-7.1056309 +-4.7312717 +-0.9707810 +-20.1242447 +-1.7206932 +0.6931310 +-4.3058619 +2.9298043 +0.2899575 +-5.4035206 +-3.7750556 +-2.2397659 +-2.4495161 +-2.3275526 +-0.9240290 +-12.2444124 +-4.7022147 +1.0961798 +0.4848433 +0.2957236 +0.6168003 +2.4658022 +-6.1228905 +-6.7237835 +-1.0789295 +6.4280763 +-2.4705365 +-1.5821193 +2.5797591 +0.2377572 +-3.8031900 +-2.9544818 +-1.4421060 +-1.2806503 +-10.5130358 +-1.7709440 +-1.3258950 +-3.5076802 +-3.0567267 +-2.9885278 +-3.3283608 +-5.1124640 +3.5439849 +-1.6141282 +-10.0686874 +-7.0177951 +-26.9416904 +-2.2467430 +-4.6061220 +-1.2427107 +-0.5107558 +4.4548740 +4.0086880 +2.1478937 +0.0761685 +-0.5831183 +-4.2035346 +-1.0563393 +0.8456160 +0.1585331 +-3.3362274 +-0.9653955 +-3.1837649 +-2.2740176 +-2.3459966 +-11.6348181 +-31.2631779 +-3.2672544 +-11.4454823 +-25.6132526 +4.9458132 +-10.3971357 +-2.2210176 +7.6384006 +-4.4550209 +-2.7180705 +-8.6341677 +-4.6814041 +1.2748834 +-13.5490894 +3.0421088 +1.8137382 +7.7070260 +0.4635984 +-9.8853893 +-2.7837353 +-1.8400022 +-10.9125490 +17.4348106 +-12.4464025 +-5.3334308 +-20.1498260 +7.0284119 +-9.3294096 +20.2401257 +-6.1566496 +-15.6275520 +-20.0193386 +-6.8542933 +-16.6182747 +-4.1673698 +-13.1930103 +-2.5576956 +-8.7343178 +-31.7962055 +-9.2270575 +-1.6571382 +-14.0965700 +10.4544916 +-13.2750797 +-6.9765019 +-5.0163059 +-5.6272488 +-11.1358232 +-0.1933913 +-4.1062260 +-5.4907784 +-15.0456800 +-8.2754831 +-10.6415510 +-21.8679810 +-7.8429198 +-0.5736431 +-7.2520099 +-3.4609096 +-3.9303889 +-11.0639172 +0.1082925 +-9.4347029 +-7.3539767 +-5.3630958 +-15.0933971 +-2.1777163 +-1.8049877 +-11.8196716 +0.9681033 +-7.9075484 +-18.5841236 +-3.4637842 +-4.5564089 +-15.2515383 +-11.0511370 +-3.1151726 +6.1217408 +-23.8099346 +-7.1655068 +-0.2577713 +-5.8836174 +-4.0536861 +3.6756716 +-8.8970327 +-9.1085043 +-4.5711675 +21.2233181 +-9.8935957 +-4.0271635 +-3.7528238 +-4.3346944 +-1.0543400 +-3.0906780 +-7.8122578 +-0.2067626 +-13.1671095 +-13.4150324 +-5.4550176 +-3.6734939 +0.7971726 +-9.7421818 +-7.1930971 +-8.9478617 +1.4715143 +-0.8166800 +-10.6822586 +-16.1764774 +-19.3528461 +5.0709076 +-11.1779795 +0.5637248 +-1.0303288 +14.1860266 +4.3952818 +1.4645735 +-8.6538763 +-1.3426913 +-8.3660078 +-10.8674984 +-4.6776605 +-14.8851147 +-4.6695371 +-4.2537556 +-6.3001385 +0.5983483 +-0.5725294 +-24.4288712 +-30.3916969 +-4.4314036 +-13.1450691 +-25.8828964 +8.0474138 +-11.4308395 +-2.9117248 +4.5821676 +-3.7869387 +-5.7450876 +-11.4050665 +-2.8441432 +2.8196416 +-22.6621761 +5.0557232 +5.2314706 +11.4171009 +-0.1245765 +-12.0566072 +-3.5435290 +-1.8935930 +-18.2346878 +22.2614975 +-15.4391718 +-6.9500089 +-19.8057041 +11.3480301 +-9.4276810 +10.3907146 +-7.6108189 +-22.7254848 +-24.4692860 +-7.8360586 +-20.4632454 +-5.6253257 +-14.2996321 +-0.8118172 +-12.8656454 +-26.9599380 +-18.1160374 +-0.0468211 +-13.8026419 +13.1212921 +-15.8297348 +-9.7291269 +-7.8218427 +-6.7251248 +-11.3078823 +-3.2869780 +-5.1993256 +-7.1033936 +4.5673685 +-9.1854086 +-17.4400234 +-38.2273178 +-9.8480196 +-2.5559623 +-6.4901223 +-5.4159584 +-5.9735303 +-13.1033783 +-0.4666187 +-11.5705805 +-21.7225037 +-6.6259637 +-17.7183590 +-4.4843030 +-3.8011794 +-12.1127911 +5.8693652 +-8.6988010 +-21.0206261 +-3.8906972 +-5.9580312 +-15.8717184 +-12.9900885 +-0.8212737 +-13.1393576 +-26.4680080 +-5.8314886 +-0.0053212 +1.0894601 +-4.5862927 +11.8842878 +-10.3667231 +-12.3581810 +-7.4991622 +27.8389835 +-9.7504425 +-5.5157790 +-0.7068592 +-3.6020591 +-4.1682315 +-1.0183982 +-7.6411157 +0.0415199 +-23.6388874 +-11.7989931 +-6.0543370 +-7.0635676 +-1.9357460 +-13.2969313 +-10.0037842 +-12.7593651 +4.5533333 +-1.5480596 +-12.7778749 +-17.4996014 +-31.4929981 +4.2828846 +-11.7993488 +-0.6692125 +-1.5507275 +10.0374708 +7.5114880 +4.0554295 +-8.0425501 +-1.0197006 +-9.9632635 +-2.9995601 +-7.5919666 +-17.1507187 +-9.3692007 +-3.1373684 +-7.8690810 +4.6267061 +1.6778578 +-43.6085739 +-9.1484823 +-0.7055749 +-7.2835255 +15.3268862 +10.7349720 +0.6263698 +0.4594706 +-13.6006985 +-2.1056406 +-16.0194550 +-14.5202465 +7.8014021 +5.3827972 +-14.6664877 +1.0375282 +1.0289012 +1.4533509 +3.1168540 +-6.6949730 +-15.3081551 +-1.8403454 +-4.7931080 +6.2638273 +-1.5327394 +4.6231575 +7.7541385 +3.3340280 +1.5945708 +-1.0612013 +-3.2692995 +6.8863482 +1.6541641 +-0.8640643 +-1.9221878 +-3.3813038 +-3.8838828 +1.3310671 +-7.8699923 +-7.5243664 +1.8953137 +-6.6594787 +-9.1031027 +3.5050201 +-7.3736320 +-10.6801300 +-1.1079048 +-2.7278559 +-3.7260520 +-3.9656599 +-3.5914855 +-8.9586515 +7.2955246 +-1.2858640 +-18.0682793 +4.9131279 +-7.6658731 +-5.5170188 +-0.2084435 +-3.9530826 +-1.5173264 +-3.4639006 +-2.6080282 +-3.2815487 +-4.2253432 +-5.5729403 +12.3893690 +-10.2490606 +-11.4246483 +-0.0569577 +6.0306849 +-3.2193666 +-2.1674201 +-2.0941086 +-5.2232599 +-4.8837242 +-5.9010315 +0.1526023 +-9.4410067 +-8.5178499 +-0.5599895 +-1.0504639 +3.2482798 +-11.7462244 +4.9321275 +4.5171814 +-0.4835078 +-15.3204479 +10.6544905 +-2.2542689 +-1.1207706 +4.7470140 +-2.2225614 +-0.8149896 +-2.1508155 +0.0060468 +-1.6626285 +5.3592849 +-4.9062700 +-17.4215450 +-6.7381849 +-3.7590015 +-0.1747784 +-4.4023290 +-10.5295496 +2.2740405 +-1.3401804 +-10.6649685 +-2.4016478 +-5.4142561 +-1.3171092 +-10.6704302 +-1.1548810 +0.3112899 +13.7895851 +-0.5558062 +7.9877772 +-1.3899103 +-1.7925860 +-4.0317945 +5.8394861 +-16.3212433 +-4.0610361 +-8.0674162 +-1.3428065 +-3.9917212 +3.7630482 +0.6903612 +-25.9727077 +-16.5606480 +-2.0449283 +-2.1197028 +-5.7170868 +4.5018516 +-3.3935764 +-0.1027596 +-2.3960705 +-15.9417038 +-1.4680628 +-0.6137616 +-1.8034327 +1.4120363 +-16.4075985 +3.5185513 +2.8521800 +6.1465673 +0.6737636 +-2.3710063 +-3.8468053 +-1.7857882 +-5.7220478 +4.0702877 +-5.6547346 +-1.3800876 +-31.4623852 +-1.1655927 +-5.8582425 +-1.4614475 +-5.8972874 +-6.4984341 +-4.0977049 +-3.9710732 +-4.8601398 +-6.4277682 +-3.0812926 +1.6982751 +-7.4998493 +-29.4515915 +6.9475374 +-5.1451879 +-3.0632188 +1.0237215 +-3.8647285 +-2.7667789 +-3.3323500 +-6.2530046 +-2.5256846 +-3.7857633 +-2.0440459 +-2.3597944 +-36.7647896 +-3.5028629 +-1.4801911 +-9.0125914 +-2.8695052 +-3.5598431 +-5.6992245 +-2.1369624 +-4.4028111 +-17.7197227 +-2.0863981 +-6.9799986 +-5.7048802 +-0.6275012 +-22.6717701 +-1.6522176 +0.3339372 +-3.9583976 +4.6221156 +0.0963061 +-7.0212736 +-3.5610249 +-1.4513001 +-4.7807660 +-2.5002620 +-0.5308673 +-21.7479954 +-6.6501451 +0.2923067 +0.4827971 +0.8644724 +1.1653892 +1.9118191 +-7.5691781 +-9.1705923 +-0.5236986 +2.9753582 +-3.9279830 +-1.8799739 +3.1718950 +-0.3309910 +-3.5901241 +-3.2832818 +0.0105456 +-1.8232994 +-11.4795380 +-2.0201268 +-2.2448921 +-3.1990638 +-3.5576925 +-3.3404593 +-3.6624727 +-2.1284935 +4.0799084 +-1.7057796 +-14.3089914 +-9.1632738 +-63.0746117 +-2.9255927 +-5.0928082 +-2.6706021 +-0.2505533 +2.0748353 +3.8575366 +3.4696443 +-1.4469849 +-0.1593624 +-4.0111828 +-1.4205683 +1.0070215 +0.5930725 +-3.0992925 +-2.2609549 +-3.6369660 +-2.6415980 +-3.9908965 +-15.4937630 +-37.0622635 +-2.4433625 +-15.3022518 +-31.2683849 +4.9892340 +-12.2673016 +-2.4253809 +9.1597042 +-19.9149799 +-2.3053734 +-8.4967194 +-3.3169038 +0.3261198 +-17.7441139 +3.7591715 +10.4346666 +7.7371917 +0.6441442 +-14.7261333 +-5.0559244 +1.0896219 +-13.2576532 +18.9139061 +-14.3447828 +-4.6724677 +-29.3224316 +5.2351499 +-9.8632984 +18.2771626 +-9.5459366 +-15.5663204 +-29.2588978 +-7.1962771 +-21.6692314 +-3.9293239 +-15.8258686 +-3.6407194 +-11.7454777 +-32.7722588 +-3.8195214 +-8.5464220 +-17.5628166 +8.9804611 +-16.1556988 +-8.7642422 +-3.9460118 +2.4069707 +-14.4450569 +0.5874687 +-10.0019331 +-8.5636463 +-5.9471235 +-11.2863722 +-13.8061790 +-21.6983395 +-8.0521145 +-2.3983974 +5.3011923 +-3.9277568 +-3.5799003 +-10.1922665 +-5.2592330 +-9.1566820 +-1.9701384 +-5.0437307 +-10.5713072 +-3.1366725 +-2.2816551 +-17.7732449 +0.5043894 +-8.4349108 +-20.7579937 +-3.4539540 +-1.3930110 +-22.8319530 +-11.8108215 +-1.2315361 +12.8414621 +-29.2500343 +-10.3813610 +2.6551750 +-7.5841875 +-4.8418975 +0.1508333 +-15.6863546 +-12.9345875 +-3.6985645 +31.1623974 +-12.5434513 +-2.9628057 +-4.3136859 +-8.2742481 +-3.8232837 +-5.2529984 +-7.8391180 +-2.6875191 +-16.1074257 +-19.8929768 +-7.1962719 +-2.8085663 +4.7141924 +-9.8607721 +-7.7617221 +-1.1039395 +1.9317912 +-0.6970897 +-33.6758804 +-26.6449375 +-23.9340439 +0.1804491 +-12.4459438 +-4.2305293 +-0.4113131 +18.5130062 +3.7687268 +1.1483558 +-13.3242025 +-0.8050005 +-8.1066942 +-8.7312899 +-5.6121373 +-18.2385960 +-4.1678085 +-10.3239956 +-5.0347033 +-0.0516775 +-2.6766372 +-42.9463501 +-35.2263908 +-3.3318641 +-18.3226948 +-24.3997173 +7.7444987 +-14.8360758 +-2.0870569 +6.5673943 +-6.9439034 +-6.2027450 +-12.2122927 +-1.9989259 +1.8351140 +-31.7677288 +5.4330535 +12.2542248 +11.0720482 +-1.0822059 +-18.0833530 +-5.6352487 +-0.0404677 +-20.9600430 +23.5204716 +-17.8638535 +-4.7578707 +-16.3400650 +9.0284538 +-12.0422277 +9.6861897 +-19.8672237 +-19.7516918 +-30.6562042 +-8.2631550 +-25.8631248 +-6.5701137 +-19.7424088 +-4.1805582 +-16.5810242 +-30.8558140 +-8.3661070 +-15.9765387 +-21.6188316 +10.9568596 +-18.0624428 +-12.7844868 +-5.3909717 +0.0731513 +-15.6598053 +-3.5052087 +-10.4792862 +-9.8709269 +-26.7908554 +-13.1088676 +-20.6931534 +-39.0345802 +-11.9071655 +-4.8484254 +1.1084198 +-5.7490382 +-3.6459339 +-16.6033726 +-5.8167558 +-14.5467806 +-20.9541512 +-7.6058369 +-7.1388741 +-6.4864979 +-3.9776139 +-17.6007690 +6.0665307 +-10.3391867 +-25.7106476 +-5.4223375 +-3.2122855 +-22.9874725 +-15.2519007 +1.2916543 +-27.3461609 +-31.4726410 +-9.1933508 +2.4405179 +4.0573783 +-6.6988068 +4.2993541 +-20.4583721 +-19.0733433 +-5.7732511 +37.0847092 +-14.1883240 +-4.3479161 +-2.3056028 +-9.7901506 +-4.0821648 +-4.1152596 +-8.7635765 +-3.2816439 +-24.7756367 +-15.3153791 +-10.0955782 +-5.6765466 +2.0950181 +-13.9746790 +-10.1783075 +-1.7918766 +4.6649466 +-1.0047323 +-31.9682045 +-29.9416065 +-35.0218506 +-2.6660860 +-14.4061069 +-6.3145442 +-0.9499791 +15.9079828 +6.0153699 +3.9903095 +-14.1002913 +-1.2552079 +-12.2362385 +-7.6167169 +-10.0996933 +-23.5818024 +-10.0442448 +-10.4280529 +-7.1474395 +3.7679677 +2.7676342 +-11.0250015 +-4.3540425 +-0.4610992 +-11.4797173 +10.8041477 +10.8134394 +-10.3990698 +2.2060094 +-7.0388703 +1.1309942 +-6.9661274 +-7.2983313 +-2.5633574 +3.7848415 +-9.7425394 +2.1303017 +3.8642039 +2.6945813 +-0.7087851 +-5.7436199 +-7.4359403 +0.4536343 +-14.7815313 +5.9294763 +-6.2156215 +-3.7236001 +3.4670439 +4.8639750 +1.5717219 +-0.3050359 +-10.3893976 +-11.1651278 +3.5864532 +0.0316392 +1.0845804 +-1.2541616 +-7.5694776 +2.7289729 +-9.5562849 +18.1289902 +-1.8027906 +-1.8649657 +-8.3894300 +4.9985714 +-7.3329201 +-8.2186918 +-0.0788597 +2.4920747 +-4.2207890 +0.2925469 +-1.4981177 +-7.7471280 +-3.7826405 +-2.6720555 +-17.2141743 +-10.1897106 +-3.9667737 +-2.2297909 +-2.1032031 +-2.2081544 +2.6193154 +-14.3078766 +-1.0688264 +-11.8500376 +-12.5704288 +-4.5903149 +-11.0947590 +-10.1081009 +0.8587870 +-0.8986672 +9.0535860 +-11.2438374 +-7.5458245 +-0.2019005 +-2.2807283 +-1.9066556 +-6.3508849 +-0.5517725 +-7.5455756 +-9.7867479 +-9.4321709 +0.7242978 +12.7310486 +-14.8296003 +2.1622167 +-1.8115523 +-3.6562414 +-10.9378214 +13.1412039 +-4.9765663 +-1.7588764 +4.0716839 +-2.3897059 +0.9390780 +-0.7325323 +-0.7871723 +-0.9525319 +9.5982609 +2.1120441 +-6.2803001 +-5.5027938 +-5.6773486 +-8.4127865 +-2.3799510 +-1.7476614 +4.8101940 +-0.9118040 +1.9057434 +-7.2060223 +-2.8766983 +-5.9295812 +-14.8174572 +-0.1458302 +0.3641953 +14.6313725 +1.1338935 +9.4764118 +-4.7488012 +-5.4627047 +-6.5634842 +7.5426955 +-5.3172474 +-3.3648806 +-8.1324739 +-0.4436803 +-2.7480624 +2.3855429 +0.7805349 +-13.0375443 +-17.2975979 +0.0489472 +-4.6997337 +-8.8398476 +4.9940848 +-4.4202142 +1.8333901 +-5.8843274 +-11.1830616 +-3.3560741 +-2.1553557 +-0.7446758 +3.4930313 +-11.4232044 +2.9824722 +6.7826314 +7.9608636 +0.6933559 +2.6324844 +-4.7719669 +-1.0270355 +-0.1268603 +3.2560241 +-8.7174244 +-8.3376074 +-35.2064209 +10.3361416 +-1.9272966 +4.1713285 +-4.0411348 +-9.3210344 +-0.2436621 +-0.3020899 +-2.3404229 +-3.5781572 +1.5845540 +0.5552025 +-5.0089455 +-30.4576855 +2.1862748 +-5.7220368 +-1.9492093 +2.1617861 +-5.7893295 +-3.6447151 +-1.3703767 +-5.5375671 +0.2089839 +-4.3158975 +-1.3152447 +-0.4770091 +-5.0853205 +-2.2150064 +-0.9473323 +-0.9983419 +-2.3343661 +-3.9817026 +-5.2655978 +-3.1653571 +2.0458560 +-12.4058552 +0.5164533 +-10.5465765 +-2.6850653 +-0.6956999 +-24.5366879 +-2.5159843 +4.4713731 +-1.5769035 +11.0286255 +-0.3010288 +-11.9111605 +-2.1337523 +7.3280721 +1.9102048 +-3.5128896 +-0.5449048 +-13.5946541 +6.6286302 +-3.3825824 +0.6725368 +-0.7221202 +0.2792652 +3.2072277 +-7.0553174 +-12.6612778 +-2.3857441 +6.5343323 +-3.4998186 +-1.8983660 +2.4072113 +-0.5459593 +4.0396318 +2.5975082 +3.3612974 +-0.3187464 +-11.3848343 +-5.6809130 +-2.7220984 +-2.7035670 +4.6847248 +-4.5346775 +-3.8713698 +-8.2696180 +3.7785423 +0.7134284 +10.3761263 +-9.7379322 +-25.4872456 +-2.7336254 +-7.4350810 +-0.9852042 +-2.1848648 +16.1953068 +5.9308352 +4.7242832 +-8.9274216 +-1.2123702 +3.3030229 +-4.1812291 +-1.9469383 +1.7940955 +-4.2545333 +-1.6638672 +-6.1959381 +3.2156839 +2.1125827 +-11.0846481 +-8.2383070 +-0.9901521 +-6.6035209 +-18.6417255 +4.8396254 +-3.1289060 +1.5033984 +-20.5741043 +4.9968576 +-4.2172952 +-5.2598681 +-27.4210148 +2.0797930 +-14.6130533 +4.0292778 +5.2171245 +5.7548151 +-0.2184147 +-1.7317938 +-17.3050652 +0.7315834 +-2.3218222 +2.5557065 +-6.0878911 +2.9709618 +34.8284073 +9.3405657 +-4.4190850 +-8.8055887 +-2.4977899 +-13.6770172 +-3.2286732 +-2.7314405 +-2.4184060 +-1.0761583 +0.7720929 +3.2738860 +-4.9152250 +-11.8446045 +-4.5068049 +-8.6409073 +-1.7743917 +1.1225876 +-16.6557789 +-1.8633617 +-0.2833396 +-6.9995723 +-3.0231564 +-2.2706649 +-1.0365903 +-2.6127384 +-2.6834333 +-0.5961591 +-1.2178469 +-9.8260489 +-5.6431699 +-4.6351848 +-11.5611963 +-2.5958879 +-0.9241847 +-3.0092797 +-0.7353218 +-10.8899794 +-20.5952187 +-2.1203477 +-5.8716860 +-2.7625406 +4.3207560 +-25.3881264 +4.9940991 +-5.7863407 +-17.1866608 +-1.2015980 +7.7403755 +6.4774823 +-6.0530243 +0.0921356 +1.4424534 +5.6493077 +-5.8636127 +0.2610361 +2.4647777 +0.2887962 +3.7732930 +-2.8224652 +-8.3880873 +-1.1154519 +8.1936264 +-2.4023657 +-1.7151502 +1.8898476 +-2.5737653 +3.4339125 +-4.7711411 +2.5554366 +-0.0013259 +-5.0115008 +-4.0448108 +-0.4922111 +-3.8726974 +2.2516558 +-6.4178338 +-3.3658512 +-4.5725622 +3.5165565 +1.0619664 +-22.7882690 +-10.3852081 +2.8282874 +-1.7578502 +-4.3913560 +0.8719797 +-1.1398801 +9.3768835 +4.2830710 +3.9106302 +0.3676096 +-2.3427675 +-17.9438858 +7.8536253 +-5.1036735 +0.7067675 +-4.2476277 +-1.1420190 +-2.0168104 +2.7666063 +0.2622950 +18.6982574 +-5.7205896 +-2.2719302 +-3.0344875 +26.4218330 +1.9882243 +1.0189979 +-5.3703656 +-5.3380322 +19.1696758 +-3.9344478 +-16.2150517 +-6.2107224 +-0.6844117 +-25.1390076 +3.0048797 +3.4803343 +2.6551645 +-3.4997640 +-3.3794546 +-18.2632961 +-0.9652320 +-5.5590687 +2.8360674 +-6.7928467 +4.1908393 +4.6573801 +5.2027421 +-9.4100599 +5.5262761 +-2.6433539 +0.3206736 +-5.2893000 +-3.0025730 +-5.1180673 +-1.4783559 +-3.9038820 +1.7923326 +-5.6324601 +3.0003459 +7.3456378 +-9.7931681 +-0.5411748 +0.8280659 +5.5565410 +-4.1964760 +-2.1393354 +-6.8213139 +0.1706861 +0.4962485 +-1.7997513 +-6.3985209 +-5.7031789 +-1.1180316 +-4.7737036 +-6.3960786 +-12.7490044 +-4.6927538 +-4.9352965 +-3.5562265 +-2.0343277 +20.2878017 +-0.5359018 +4.9159203 +7.1654248 +-6.5762906 +3.2476423 +-1.7906688 +0.8873093 +-11.0754442 +0.5881382 +0.7583924 +1.7446381 +-1.3304046 +2.2001050 +6.6263604 +-3.8515885 +-1.2758104 +8.8273706 +2.1467302 +-2.5670910 +-0.8166451 +-6.8612175 +1.1658349 +1.9302776 +-3.0779810 +-8.6833544 +7.3024344 +5.4283671 +-3.2078977 +-2.4791427 +-1.6507514 +-0.1248976 +0.9883819 +-7.9159102 +0.7423801 +-0.6719781 +-11.2682638 +-18.1315937 +-2.7559211 +-8.3945723 +1.2725521 +3.4204831 +-3.1830873 +-2.7040555 +1.3973690 +1.1614006 +-8.5705786 +-5.9318695 +9.3712702 +-2.9423621 +4.3788848 +-1.8145825 +-2.7030227 +0.9065015 +1.3873999 +1.7547802 +0.0845035 +-3.0954359 +-11.7307367 +0.7267165 +-17.1549168 +-8.4408092 +-4.6500797 +-2.7178977 +-3.3782315 +9.0802498 +2.0152025 +-7.8566103 +3.9524813 +-7.5290322 +0.2800741 +7.6387939 +3.5569489 +3.7918160 +-5.1983662 +4.0382876 +3.1829491 +2.8228006 +-9.2393217 +-0.9747643 +-5.7388682 +-13.0188236 +2.7457261 +5.0884857 +5.0097799 +0.3538531 +-2.9239583 +1.3605875 +-0.5041117 +-9.1668186 +9.0067072 +2.2280276 +0.0339298 +-32.6733894 +2.6317623 +-3.1567638 +2.2073555 +-7.3007793 +3.2149830 +-11.4594669 +-10.4373484 +-17.4132214 +0.6504336 +-8.3932323 +-4.0630927 +-1.1288794 +-1.0553588 +-1.3595878 +-0.8502813 +-3.3567448 +6.5273380 +19.3389320 +-6.4948583 +-9.3859949 +-4.7358904 +-1.1671894 +-1.2594336 +-9.5360317 +-11.0563631 +-0.9598949 +-3.6192284 +-11.2555161 +-15.7785740 +4.3120513 +-4.4295101 +-5.9468660 +-6.9042878 +-2.9183531 +-6.9650674 +0.7211108 +-10.6369553 +0.1894974 +-8.4429789 +-0.1942202 +-6.2417765 +0.9818291 +-9.8397017 +-1.9872903 +0.9978790 +-10.9520445 +-3.0490184 +8.5698080 +-1.9585216 +-0.6115995 +-3.3499484 +-3.8417358 +-0.7409865 +20.2548428 +1.0982177 +-0.7425264 +-1.6630881 +3.3374898 +-9.7834778 +-4.2302690 +0.2188425 +2.2301288 +-14.9004459 +-6.3440166 +4.1342244 +-3.6890550 +-0.6545454 +-6.5525203 +-6.4114056 +-7.1603684 +-24.0922241 +-0.9289247 +-5.3401480 +1.7501007 +-0.4940648 +6.4162993 +-5.0782866 +-7.7489896 +4.7458086 +-1.0765734 +-3.8309298 +-0.3185757 +1.6742443 +-3.1353161 +1.0796117 +4.3657651 +-3.1890428 +-6.0685010 +5.3133192 +1.0162425 +-5.7901821 +7.1559272 +-5.2388449 +-2.3541577 +0.9912483 +2.3906128 +-3.2275198 +-11.8669882 +-2.2350903 +0.8889601 +0.0872155 +-3.9925256 +-3.4568088 +-1.8049210 +2.1789174 +-2.9835804 +-5.5434656 +0.4167765 +-0.5381169 +-2.0892632 +-1.5802249 +1.6974202 +-0.0679467 +-0.7030205 +-1.6676203 +-1.3246045 +-0.5550537 +-2.4893513 +4.2659097 +-2.6114511 +-0.4740555 +2.9707527 +-2.4796827 +-3.4994435 +-2.4966061 +0.3234333 +1.4342531 +-1.6548477 +-0.3580349 +-2.4443519 +17.3897610 +-2.6491320 +0.7878338 +1.4195917 +-4.4908614 +2.8566682 +-7.4379783 +-3.7404385 +-0.0083294 +-1.1824405 +-6.9447298 +0.9205913 +-4.4387712 +1.7035803 +-2.7803030 +-4.4897919 +1.2918278 +0.1966561 +-8.6156416 +0.4349414 +-0.9083587 +-0.0855805 +-1.6251506 +-3.0657845 +4.5473118 +-3.5902450 +-1.7019083 +-2.0630870 +-0.3378680 +-0.7905389 +-0.3010543 +-9.5030756 +-0.2133922 +0.4220751 +2.1075969 +-5.6971698 +0.1553698 +-0.8213081 +-0.1799380 +-2.9719231 +0.2054868 +0.9280238 +1.7636904 +4.9380999 +-1.0858766 +-0.6476803 +1.3633590 +-0.1391255 +-5.0282001 +14.9437246 +1.1052147 +1.7547857 +1.0563376 +-7.5198307 +0.0939713 +-2.4729505 +3.9953988 +3.3021173 +-2.2274413 +11.4777088 +2.6850519 +-2.1834049 +1.2842903 +1.6966525 +-1.7855480 +2.7843816 +-14.6675835 +1.9107118 +-2.0561681 +-5.9842153 +-0.3586619 +-0.2233539 +-2.5628061 +-0.1342948 +-0.8877841 +-3.6111352 +0.6184962 +-0.2116225 +-0.5206277 +1.4117881 +-1.8739318 +-7.0102229 +1.6069785 +-0.3876222 +-0.2940208 +12.7610111 +4.5485168 +-6.4812975 +1.0108948 +-0.2930997 +-3.7297215 +-1.5849999 +1.9845239 +-1.2667307 +-0.4229500 +3.0972381 +0.5030754 +0.9328829 +-3.4098756 +-6.6965141 +-11.4418736 +-4.2183719 +1.3419983 +-4.5711722 +-5.8737683 +1.1353521 +-2.7305107 +-3.9463201 +-1.3190826 +0.5425910 +-2.4557052 +0.8476788 +-5.9483361 +-0.1202045 +-1.1563139 +3.3704770 +7.5340843 +-4.6037693 +3.1137195 +4.4956121 +-6.6036301 +-6.2154002 +-4.6214752 +-0.5551694 +3.2842157 +-4.6802001 +2.9845738 +-2.9820664 +26.7989845 +-2.5930469 +-2.5120494 +4.4820228 +-0.8512315 +5.0843921 +1.4083452 +-2.5782025 +0.3501661 +-0.6935886 +-16.5675983 +-4.6750970 +-6.3719463 +2.9941249 +-5.6258874 +-6.7550573 +0.7305704 +-0.1115202 +-9.4875202 +1.5218478 +-2.4510813 +-1.4463916 +-1.2221783 +-6.4527302 +7.5947924 +-6.2208343 +-1.5703514 +0.1553903 +-0.3322389 +-1.0513753 +-6.2158656 +-1.8777502 +-0.0107340 +1.0913774 +3.6493444 +-8.3581028 +-3.0826576 +-2.7431803 +-1.2032931 +-3.9644322 +1.6519506 +3.4512885 +1.5962167 +7.9830017 +1.1389778 +2.7204902 +3.3545849 +-3.4454236 +-10.3975143 +23.1245670 +4.8490090 +-0.8393657 +2.9063659 +-15.0190601 +0.5873457 +-26.0941296 +7.5868006 +5.9201012 +-4.5844264 +24.4782543 +3.8027806 +-3.2928705 +1.1691858 +4.7814350 +-4.1208158 +4.6757441 +5.8096867 +4.2942457 +-2.9663951 +-14.5843916 +-6.6570101 +0.8804081 +-0.7911477 +-4.3290691 +-3.0016940 +-13.4131956 +0.5409569 +3.0172081 +-3.1461613 +1.5580575 +-2.1702185 +-12.4407969 +-2.1166058 +0.1012177 +-1.7062339 +24.9675274 +9.9975986 +-10.8911209 +-1.6776458 +0.1670277 +3.7249649 +-1.8073884 +1.2974154 +-2.7173007 +-3.2242119 +5.8356500 +4.3379230 +1.7854861 +-2.7160091 +-11.8776226 +-16.4661655 +-6.9780440 +3.1857667 +-10.9562674 +-9.1658802 +0.9240335 +-2.9517243 +-7.1668615 +-1.5344603 +0.9888801 +-3.0635388 +0.1806847 +-9.2259960 +-3.0948250 +0.4205184 +3.9737918 +10.7661638 +-9.9984369 +1.9645174 +5.1729460 +-12.2154045 +-12.3224344 +-8.3798246 +0.1424275 +4.3913364 +-7.7081189 +0.8568770 +-5.7845654 +42.2845268 +-4.4117270 +-3.2990882 +4.6838536 +-1.3149176 +6.8646388 +-2.5824392 +-4.8989120 +-0.2479510 +-2.4577687 +-25.9045982 +-5.0594220 +-12.2619619 +4.1091571 +-13.0793047 +-12.4867544 +-0.0511216 +-1.1886010 +-15.2598715 +1.7728153 +-3.0583680 +-3.0028861 +-1.8826423 +-9.1280365 +11.8648443 +-7.9268641 +-5.6036234 +-2.0822489 +-2.0609396 +-2.3232393 +-5.6879520 +-7.6498442 +-2.4539471 +-0.1446548 +2.5353723 +-22.8509903 +-5.6601777 +-5.6923904 +-1.5241197 +-8.6220341 +0.2044180 +4.3973145 +2.8064153 +8.2274199 +0.2177894 +2.1395326 +1.2317953 +-4.6125660 +-18.3631554 +33.5257187 +1.0567338 +0.2814759 +4.0259867 +-26.9103832 +0.7037240 +-27.3011246 +12.3400669 +9.2983751 +-7.3006806 +30.0634823 +5.3180060 +-6.5600801 +2.1505258 +5.7707148 +-10.9524384 +6.7010264 +7.8531408 +6.0891824 +-7.6341677 +-22.7300129 +-10.0688324 +0.3013057 +-5.2520576 +-6.4395485 +-5.5299892 +-16.7234917 +1.1295906 +2.7890074 +-4.6228909 +1.8043675 +-5.4729400 +-22.9580803 +-2.5162182 +-0.9370620 +-2.6434011 +35.7838821 +14.9712439 +-15.5098743 +-0.9817264 +0.6269898 +4.8487673 +-2.6107802 +2.5442562 +-4.7342076 +-3.7717617 +8.1006050 +5.1929436 +1.2995727 +1.0524282 +-11.0636663 +-9.5528669 +-5.6949825 +3.5873914 +-14.2216368 +-8.5849295 +-1.2296058 +-0.8748953 +-6.3018451 +-1.3662758 +0.3847905 +-1.4643644 +-0.1832601 +-10.1596766 +-4.8069773 +1.2495291 +0.3152046 +5.6692457 +-13.0074625 +-1.8540932 +2.0911102 +-13.9397964 +-9.2692690 +-0.5748510 +-0.6302990 +1.1082519 +-5.7387137 +-3.2874343 +-3.4894409 +33.0867767 +-4.3292532 +-2.3601899 +0.9958617 +2.3595419 +2.9629490 +-9.8679905 +-3.7606521 +-1.4847294 +-2.9550140 +-21.3118954 +-0.6097729 +-1.9144008 +2.0713611 +0.2919935 +-13.5429964 +-0.4655985 +-1.7246163 +-4.5782623 +1.5326304 +0.2065188 +-3.1335402 +-2.6232595 +-6.2284636 +7.7790403 +0.0181240 +-8.6483603 +-4.7021890 +-1.4609067 +-0.6489102 +0.8818711 +-12.2504969 +-4.7763929 +-1.7586402 +-2.1903086 +-18.9657612 +-4.4376187 +-5.2932267 +-1.2400371 +-7.9290533 +-3.6788359 +1.0004041 +2.2832458 +-0.2881352 +-0.4257101 +-1.1140817 +-0.4811497 +-2.7801776 +-16.6137524 +24.9805126 +-5.5889578 +3.3585541 +1.2196120 +-7.2231178 +0.3975792 +6.1936202 +9.2399244 +4.8056159 +-5.0784817 +1.7946502 +3.0246632 +-6.6748872 +2.2411702 +2.6341445 +-15.1926622 +4.4066963 +4.5789485 +3.8356907 +-6.1126962 +-7.0255485 +-8.0344067 +0.8476223 +-6.5131445 +-4.4183831 +-5.6849642 +-5.8394699 +0.6376693 +-0.9019356 +-3.2730570 +0.5918393 +-4.5993028 +-9.0557499 +-1.0636297 +-1.7911983 +-1.3137506 +22.7058258 +9.6007223 +-9.6689281 +0.1091603 +-0.2436330 +1.8159659 +0.2485752 +2.2024601 +-4.8479705 +-0.9522052 +4.6105614 +1.2071255 +1.0503469 +-0.2986773 +-4.0998087 +-2.3659399 +-1.5237701 +2.2513876 +-2.2459083 +-4.3632588 +0.1459204 +0.5493423 +-1.8446425 +-0.6353111 +1.4521996 +-0.3765016 +-0.2385775 +-1.3684022 +-1.1391017 +-0.5478731 +-0.4454390 +3.6349461 +-2.9186873 +-0.4084653 +2.7895799 +-1.5436106 +-3.0115552 +-0.6124068 +-0.4271429 +1.6085402 +-1.1300731 +0.5040824 +-1.2868975 +18.1884212 +-3.4830267 +0.5316267 +1.1096036 +-4.1536837 +1.7025425 +-6.8335209 +-3.2805119 +0.2528400 +-0.6117051 +-4.9450622 +0.1251492 +-3.4677978 +1.3035988 +-1.5320623 +-3.2217665 +0.9035094 +-0.5423226 +-5.5437284 +1.6080240 +-0.2896238 +-0.9203219 +-1.6178645 +-3.0013585 +3.3834157 +-2.6923571 +-0.9118946 +-1.0727168 +0.1568190 +-0.3526286 +-0.7162685 +-8.0786591 +0.4119949 +0.6818268 +2.1801956 +-4.3696151 +-0.5668879 +-1.3129750 +-0.1380447 +-2.3749852 +0.5917200 +1.1187385 +1.8141903 +4.3911581 +-1.1923858 +0.1892852 +0.6591811 +-0.1330129 +-3.6277509 +15.3036318 +1.6144022 +1.6480526 +0.5227246 +-5.4998498 +0.1059585 +-1.7610798 +4.1239986 +4.6351795 +-1.7313017 +13.2435379 +2.2457027 +-1.2480037 +1.4283255 +1.4246380 +-2.3535368 +2.8821425 +-43.6790123 +1.3380753 +-2.3262279 +-4.3856597 +-0.4895333 +-0.6594825 +-1.3466594 +-0.0984443 +-1.0220395 +-2.7211163 +1.0462214 +0.1763525 +0.3864851 +1.8180400 +-1.1998394 +-9.7544889 +1.7786716 +-0.4894083 +-0.9645889 +12.8707190 +4.0439939 +-5.3929482 +-0.0617543 +-0.0718304 +-3.8781650 +-0.7973517 +2.0550256 +-1.5983883 +-0.4136513 +2.4241443 +1.7986306 +0.5872785 +-3.4187808 +-6.2228379 +-9.7726936 +-3.3219235 +1.8327889 +-2.6806061 +-2.3514819 +1.0393218 +-2.6346424 +-3.0555444 +-0.1850869 +0.9776694 +-2.7095978 +1.6797731 +-4.3022294 +0.5764979 +-1.9428906 +2.9637427 +6.2721219 +-5.2106218 +2.9845614 +4.0814891 +-5.8548679 +-5.6699715 +-4.2953281 +-1.5139499 +2.4654987 +-4.0678024 +3.3613782 +-2.6181417 +25.7870617 +-12.1609859 +-2.6593351 +3.7032738 +0.8384011 +3.4734285 +2.2243056 +-2.7533784 +-0.2438720 +-0.0133674 +-13.3731899 +-5.1808033 +-4.7064357 +1.9532903 +-5.6242480 +-4.1724024 +1.1177146 +-0.3824577 +-3.7538166 +3.6625357 +-1.8909003 +-3.1815124 +-1.1553783 +-5.6848364 +6.8647842 +-3.3160341 +-0.1231888 +1.5177541 +0.2649008 +-1.0520397 +-6.6770630 +-1.3528168 +1.6049951 +1.6956373 +4.8553023 +3.3476241 +-2.6536901 +-2.5269854 +-1.2865646 +-3.6013334 +2.1740415 +2.4453597 +1.4803569 +8.7557259 +0.9829916 +2.7476184 +2.0688963 +-3.2466829 +-7.6136923 +20.5421963 +5.7331400 +-0.4971097 +2.5435262 +-11.4192400 +0.7209097 +-18.2565479 +8.3113594 +6.1516361 +-3.9330332 +24.6800709 +3.6428895 +-2.2260377 +0.9497996 +4.6141591 +-1.2283194 +4.6741571 +3.8568587 +4.9469681 +-3.5168104 +-11.1843853 +-5.5894275 +0.7411530 +2.5408525 +-3.8097355 +-2.9861743 +-4.8724704 +0.7914500 +3.3113906 +-2.0310969 +2.3876777 +-0.7525793 +-11.5374870 +-1.5452619 +-0.2107470 +-1.5508040 +23.0290565 +8.4341278 +-9.4217310 +-3.1339808 +0.1467859 +3.8364091 +-1.0204002 +1.1586918 +-3.3747616 +-3.5468109 +4.7364907 +3.7094543 +1.3022197 +-2.6439865 +-11.0284843 +-14.0903749 +-4.9816403 +3.7487621 +-7.5582609 +-6.5605941 +0.9835113 +-3.1545157 +-6.2768168 +-1.4321575 +1.3703773 +-3.3929896 +0.7992095 +-5.4304986 +-1.8259284 +-1.4427536 +3.6267726 +9.6662912 +-8.3197670 +1.9554776 +5.4509172 +-8.7864370 +-11.3127766 +-5.8829637 +-0.6309339 +3.9178240 +-6.6961722 +2.3687227 +-4.6966271 +40.4446907 +-17.1161671 +-3.8493004 +4.3167877 +0.5109519 +4.8546343 +0.3650144 +-4.0395379 +0.1444626 +-1.0362819 +-21.0932045 +-5.7985601 +-9.1704988 +3.0186872 +-9.4034986 +-9.0367622 +0.9898776 +-1.4953457 +-9.8908176 +4.5212526 +-2.8040085 +-4.2024684 +-1.6876652 +-8.8029346 +10.5697565 +-9.2189913 +-3.0884233 +-0.7047917 +-1.0318097 +-1.6133430 +-7.3903313 +-10.2472296 +0.3847928 +1.0757039 +5.2611146 +-4.0951605 +-4.2305527 +-4.8070149 +-1.4800652 +-7.3599286 +0.9998620 +3.5956626 +2.8891385 +10.9193945 +2.4410498 +2.5124967 +1.2941871 +-4.2420697 +-14.2748871 +31.3074799 +4.6400299 +1.0085340 +3.4644558 +-22.2699604 +1.4252814 +-23.1634960 +13.0383244 +9.7778873 +-6.4966021 +32.9342232 +5.2033229 +-4.7574892 +2.1919756 +5.4432435 +-6.3147116 +6.6040111 +5.1111827 +7.3859205 +-8.2736406 +-18.4966850 +-7.2516971 +0.9187679 +0.2579358 +-5.3065815 +-5.0131655 +-12.0782089 +1.7152627 +3.1077156 +-3.8185647 +2.6352415 +-2.7500155 +-17.9264908 +-1.2985253 +-0.3863203 +-1.8868411 +33.7181778 +13.3333645 +-15.6004925 +-2.2939377 +0.9566416 +5.0686121 +-1.8906589 +2.3849487 +-5.4691463 +-4.0272102 +6.8047457 +4.7430401 +1.3365664 +0.1835728 +-9.6641092 +-8.5141029 +-4.8408365 +3.3691130 +-13.7679634 +-8.9455481 +-1.2399477 +-0.8311183 +-6.4207606 +-2.3742733 +0.3606441 +-1.4129556 +-1.1863276 +-7.9753408 +-3.7884059 +0.7543170 +0.8241531 +5.4732652 +-11.5789299 +-2.1488426 +2.8097365 +-8.6118202 +-9.5787287 +-0.5098604 +0.2227491 +0.7450540 +-5.0636744 +-4.0765376 +-4.4322653 +33.5602722 +-17.9373932 +-1.7997851 +1.8363718 +1.7834752 +3.3560281 +-7.5018015 +-4.0059848 +-1.5524498 +-2.0795195 +-14.2496262 +1.7498857 +-9.9851818 +1.7831007 +-0.9336562 +-11.1627178 +-0.3213261 +-1.0666071 +-9.8994875 +1.0803157 +-0.7454486 +-2.3548052 +-2.8462570 +-5.1795964 +6.7684484 +-10.2547770 +-8.0295820 +-3.9669614 +-2.9508562 +-1.3675797 +1.1629382 +-14.3422842 +-4.6166782 +-1.8984125 +-1.6461881 +-13.7967119 +-4.7786098 +-5.3868251 +-0.9220766 +-7.1101489 +-3.0236511 +1.9664426 +2.3456516 +0.2985233 +-0.4992520 +-2.1620607 +-0.6472520 +-2.3220692 +-16.0712605 +25.2161503 +-6.4377723 +2.9510849 +1.0872819 +-18.2538223 +0.5709239 +-3.1702154 +9.0992613 +5.2397246 +-4.3674850 +8.2682581 +3.0256567 +-5.6850605 +1.7670112 +2.0100145 +-19.4507847 +4.5314751 +4.3426223 +4.0771399 +-7.7467017 +-13.7313900 +-8.3354521 +-0.0568432 +-5.2677197 +-4.9369473 +-4.6126261 +-3.7758050 +0.6099342 +-0.2126504 +-1.2612706 +0.3027680 +-4.0562692 +-1.0046577 +-0.4349258 +-2.4258473 +-1.2160641 +21.2782593 +9.1891670 +-11.5963631 +0.1782135 +-0.1909594 +1.9280219 +-0.8248965 +2.4428661 +-5.6226568 +-0.5344932 +4.1443071 +1.2698026 +0.6424574 +-0.3816830 +-3.8583620 +-1.5417017 +-0.4294654 +2.4549499 +-1.2846793 +-1.3108413 +0.2446470 +0.2584496 +-1.5316377 +-0.0187057 +1.0700454 +-0.5792298 +-0.3589932 +0.3767781 +-0.9471220 +-0.6385736 +1.6447433 +2.4982848 +-1.9572288 +-0.5137097 +2.2263403 +-0.4489218 +-3.7317395 +0.1740863 +-0.6844738 +2.4044523 +-1.1798927 +0.3175162 +-0.6042798 +13.3718758 +-2.3879621 +1.0020934 +0.8671257 +-3.2436011 +1.1504124 +-3.8064904 +-3.2416382 +0.3929071 +-0.5280281 +-3.6339722 +0.3036099 +-2.1908340 +1.4941280 +-1.3711025 +-2.0791113 +1.1056306 +0.1766679 +-1.8769380 +1.1103538 +-0.0797376 +-1.9690186 +-1.5956208 +-2.8810074 +2.6007862 +-1.8572268 +-0.0248302 +-0.6983932 +0.5477479 +0.1318768 +-1.2095630 +-3.9767756 +0.9918824 +-2.2400208 +2.3435645 +-4.5171719 +-0.5954274 +-1.4640678 +-0.1620430 +-2.2107491 +1.3300700 +-0.5146971 +2.3041854 +4.3419313 +-0.4556277 +0.4044160 +-0.8708302 +-0.0261157 +-2.3303967 +13.3495474 +1.3915668 +1.4877844 +0.5622521 +-3.7994452 +0.4584271 +-0.3823361 +4.6439209 +4.8839636 +-1.1226979 +13.2508287 +2.1813104 +-0.9241424 +1.1491529 +1.2133652 +-2.2725780 +3.0384343 +-41.1675911 +0.5668885 +-2.6256478 +-3.2573006 +-1.0552216 +-1.3008587 +-0.2670647 +-0.2389529 +-1.4149166 +-1.8724750 +0.5435109 +0.3867421 +0.6848460 +1.3214543 +-0.5748549 +-7.0071492 +1.7558799 +-1.3676302 +-2.1127913 +11.3929081 +3.1279414 +-3.6741507 +-0.1159481 +-0.2768695 +-4.5229206 +0.0063362 +1.8318377 +-1.4642103 +-0.7364612 +1.5805230 +2.5064561 +0.4012010 +-4.3050194 +-6.1787882 +-7.8652940 +-1.1509001 +2.3158588 +-0.4496685 +0.3528550 +0.8790365 +-3.4380357 +-2.4148297 +1.1851838 +0.8923720 +-2.5684035 +2.0856659 +-2.4068019 +0.7007569 +-2.5060766 +7.2455058 +4.3436174 +-4.4338303 +2.8371947 +3.6648905 +-4.9187417 +-6.0194335 +2.3125505 +-2.4951196 +2.6384680 +-3.7106507 +3.0267782 +-2.4451737 +24.6665306 +-1.9974934 +-2.4280829 +3.5115047 +2.9777191 +2.1874967 +3.6789105 +-3.3453357 +-0.5464592 +0.5423359 +-10.4434347 +-4.6235576 +-2.3804948 +1.9478130 +-3.9880486 +-1.8766013 +1.1540346 +-0.7341340 +0.7970720 +4.3189187 +-1.5647916 +-3.7079284 +-0.3689167 +-5.5749454 +5.3769255 +-2.1171827 +1.1860723 +2.8166580 +1.3398802 +-0.6988680 +-6.3428659 +-3.2090747 +2.8438330 +-1.6221455 +5.5757637 +8.5396690 +-2.0350230 +-2.3876805 +-1.1505504 +-3.6614008 +2.9762936 +1.8630458 +1.8723519 +9.2365532 +-13.9219351 +2.4142618 +-0.2826243 +-2.9674268 +-5.5087967 +18.1931915 +5.5920491 +-0.2056810 +1.5544086 +-8.0624352 +0.9314470 +-13.9465284 +8.8026085 +7.1431880 +-3.4251144 +24.6182766 +3.6284959 +-0.8673715 +0.6645875 +4.9072242 +1.3912922 +4.6970611 +2.0926609 +3.2126186 +-3.8817048 +-8.2783651 +-6.0079188 +0.6796086 +3.4999630 +-3.4090111 +-2.8216963 +-2.4568264 +0.3130150 +3.2844555 +-1.7066116 +2.3306634 +0.2267506 +-4.4945488 +-0.9992564 +-5.8562446 +-1.3535143 +20.6840839 +6.9385691 +-7.3534241 +-3.1885481 +-0.2126340 +4.3368354 +-0.2815946 +1.2001247 +-3.6104629 +-4.4758420 +3.3109522 +3.1361454 +0.8867458 +-4.2355385 +-9.9678850 +-11.4795122 +-2.2319436 +3.7781115 +-3.7537072 +-3.1229260 +0.9597198 +-3.9330966 +-5.2896719 +0.1087357 +1.1875426 +-3.4104202 +1.4459116 +-3.2169790 +-0.5370766 +-2.8045805 +7.3622680 +7.0052547 +-6.7789640 +1.9503579 +5.0799236 +-6.6362352 +-10.3484783 +-1.2278225 +-1.5415466 +3.5635068 +-5.7856822 +2.2534542 +-4.2142873 +38.3726120 +-6.9040260 +-3.2950044 +4.4412012 +1.9978584 +3.3648047 +3.7497039 +-4.9349937 +-0.6191891 +0.0440866 +-16.4343510 +-4.7776475 +-5.7320247 +2.8498621 +-10.9753675 +-5.3066335 +1.2968928 +-1.2039183 +-3.9484682 +5.3901052 +-2.1316688 +-4.6354132 +-1.0636655 +-8.5408201 +8.7784481 +-5.4161811 +-0.7888525 +1.2576573 +0.5410380 +-1.1092378 +-7.9572549 +-10.9576426 +2.4264524 +-1.8436159 +6.6218066 +1.0403312 +-3.4249902 +-4.2573957 +-1.4383284 +-6.2932496 +2.1279490 +2.8566544 +3.2914140 +11.9498377 +-12.3983164 +2.4291439 +-0.1946755 +-3.8515837 +-10.7688999 +28.8221169 +5.7355356 +0.7876787 +2.5818827 +-16.0549946 +1.5144928 +-26.2102833 +13.5943527 +10.9684372 +-5.6208944 +34.4823227 +5.4197941 +-2.4334462 +1.7426643 +5.2304282 +-0.9141415 +6.4038744 +2.7163341 +6.4756169 +-6.6397610 +-13.7629232 +-8.3139582 +1.2532575 +2.4138610 +-4.7740397 +-4.6371517 +-6.1462464 +1.0189010 +3.3397613 +-3.0324047 +2.5038149 +-0.9212471 +-9.2072592 +-0.7211320 +-5.0317383 +-1.7632648 +30.6771736 +11.1356983 +-13.1878929 +-3.2083414 +0.4898219 +4.7773118 +-1.2239250 +2.3190162 +-5.6203251 +-4.8879099 +5.1968246 +4.3190913 +1.6730670 +0.4998904 +-8.5337391 +-9.0531759 +-3.9249482 +2.5133026 +-8.3098612 +-7.0676160 +-1.0628687 +-1.0224407 +-6.0063033 +-3.6707160 +0.7951759 +-1.3027614 +-2.4684937 +-4.0419507 +-3.0400956 +-1.8418490 +0.1738687 +6.1556602 +-4.3290286 +-1.9193665 +3.3803031 +-6.5669746 +-9.4684830 +-4.0593605 +-0.7965178 +1.4864984 +-3.9215686 +-3.5281146 +-2.0915143 +32.9019890 +-1.4685249 +-2.3834960 +2.2270162 +2.4185524 +2.8604348 +-4.0260110 +-2.6515214 +-0.3236107 +-0.7963687 +-16.9174671 +-0.5477668 +-8.1343832 +1.8607501 +-17.7294674 +-6.7991104 +0.0556537 +-1.0037812 +-8.4901686 +1.7643209 +-1.6683340 +-2.4086497 +-1.3692017 +-5.3658357 +6.5824037 +-7.4053478 +-6.5393028 +-4.4601498 +-2.2933340 +0.3544104 +-0.1561869 +-19.6944275 +-3.1842766 +-1.4807582 +-0.4874814 +-18.3922691 +-2.0926185 +-4.2727318 +-0.5268126 +-6.5381303 +-2.4658017 +1.8932741 +2.7213748 +1.8223419 +-34.7813301 +-2.3058910 +-1.4486673 +-2.1575608 +-13.8636065 +20.7487755 +-3.5918436 +2.4866145 +1.0149914 +-18.7224636 +0.6998804 +-20.8792171 +9.0951319 +6.7875094 +-4.9086142 +12.4640865 +3.2773502 +-3.9715736 +1.8345838 +1.2621994 +-8.4057455 +4.3482175 +5.6142106 +4.5691051 +-7.8718033 +-9.8272400 +-5.9886937 +1.1825560 +-5.4209671 +-2.1397362 +-3.0704598 +-6.7482862 +0.2340924 +-0.0157683 +-0.1155897 +-0.0663814 +-4.0703354 +-5.7231445 +-0.4858311 +-4.2204094 +0.5328997 +21.5437527 +8.5563583 +-10.7407980 +-0.3886547 +0.4947694 +2.5100818 +-1.6938109 +2.8064930 +-6.3107843 +-0.7870552 +3.6056294 +3.4061933 +0.5433447 +-0.4497496 +-4.3337770 +-0.5910455 +-0.5775011 +2.5198262 +-0.4632193 +0.8892800 +-0.1655760 +1.3276050 +-2.4745343 +0.5796768 +0.7544132 +-0.9687756 +0.1940252 +0.8553470 +-1.2534592 +-0.8654485 +2.1254411 +2.0146065 +-2.1525652 +-0.5204731 +2.2245471 +0.1537626 +-3.9839277 +-0.4608684 +-1.7315406 +2.5143476 +-1.0634319 +-0.0387958 +-0.9526513 +14.4744749 +-1.2018768 +0.6766528 +1.0938854 +-2.1170738 +0.2820245 +-1.7198911 +-3.0117550 +0.9064047 +-0.1159260 +-2.0822921 +1.3838944 +-1.8580773 +1.0405447 +-0.6970680 +-0.7883358 +0.4198600 +-0.1830601 +1.4984772 +1.9442589 +0.2044597 +-1.2328917 +-1.5691468 +-3.2146807 +1.5471110 +-0.7763187 +0.6185275 +0.7611024 +0.5960447 +-0.1210398 +-1.5681139 +-2.1356075 +1.6317928 +-0.8437520 +2.4549756 +-1.8390198 +-0.5475070 +-1.4939095 +-0.2508336 +-2.5009608 +0.1485451 +-2.3122907 +2.1428170 +4.1333361 +-0.5930943 +0.9626804 +-0.7310166 +-0.2753991 +-1.8680192 +13.9520340 +0.6115492 +1.1415421 +0.3445382 +-2.5707469 +0.2975624 +-0.8289258 +4.0463686 +4.6189127 +-1.2366849 +12.9541941 +1.8479303 +0.0745382 +1.1551006 +0.0673756 +-2.4551144 +2.7078958 +-22.4963207 +0.3810020 +-2.2197132 +-2.4504986 +-1.3791163 +-1.1797389 +0.5705408 +-0.2875081 +-1.5583183 +-0.3802749 +0.2060299 +0.9045638 +-0.1742283 +0.0500419 +-0.0525457 +-3.3208201 +1.7812082 +-1.9132985 +-2.2133651 +10.1017399 +2.9023416 +-1.2247962 +-0.2714603 +-0.3283546 +-5.2698870 +0.0815500 +1.2126318 +-2.1074941 +-1.0243540 +1.2998606 +3.3192263 +0.0205598 +-4.5271773 +-6.3390737 +-6.2501655 +16.9955864 +2.5830200 +0.6086209 +3.9920290 +0.4182281 +-2.6285295 +-2.4276106 +1.8968775 +0.8167807 +-2.9470351 +2.8024740 +-2.5246994 +0.6499987 +-2.6426795 +10.6679201 +2.5804086 +-4.0063457 +2.2992179 +3.6228032 +-3.6642008 +-6.4374886 +3.6450512 +-3.5977595 +2.8811328 +-3.4587526 +2.7404747 +-3.1586533 +25.8973579 +-1.2761430 +-2.8178215 +3.3020616 +5.3384271 +0.5740072 +-2.3488576 +-3.6842380 +-0.9325121 +0.8232672 +-7.9298420 +-4.7425542 +-1.3196037 +1.7815434 +-1.8426820 +-0.5807457 +0.7641057 +-0.5288977 +3.5047369 +5.4065137 +-1.5109421 +-2.6604602 +-0.3373203 +-5.3949795 +4.0684819 +-1.4199982 +1.9792620 +4.4191418 +1.8010178 +-1.0149059 +-6.7579370 +-6.1851788 +3.7313261 +-2.1222539 +5.8924117 +12.4987535 +-1.5073705 +-2.1200025 +-1.1118119 +-4.5871377 +1.6101143 +2.0538709 +1.4455571 +9.2949343 +0.2089575 +2.3375323 +-1.2429416 +-3.3269188 +-4.4377332 +18.1666012 +5.5286098 +-0.8251637 +1.0815250 +-5.8107114 +0.9548568 +-11.8823099 +8.6431131 +7.9648347 +-3.1791897 +23.0089989 +3.4825029 +-1.9615664 +0.7296888 +3.6733477 +3.4050725 +4.6823521 +3.7730174 +-0.2470062 +-3.6775236 +-7.2708149 +-5.6905885 +0.9205498 +4.6600122 +-3.3747895 +-3.0455027 +-1.6967744 +0.2791783 +3.3365231 +-1.4905864 +1.1503925 +0.8473266 +0.8226825 +-0.9354253 +-1.4016914 +-0.8841945 +20.5750961 +5.9755936 +-5.0252180 +-2.9219682 +-0.0199415 +5.1774678 +-0.0406601 +0.4349084 +-4.0533581 +-5.6991539 +2.5912473 +4.7016978 +0.5354012 +-4.8150649 +-9.4809647 +-8.4779491 +15.1475306 +4.4348216 +-1.9388256 +1.0646368 +0.1743815 +-2.7087712 +-4.3896971 +1.0434495 +1.2366611 +-3.6803923 +2.4522083 +-3.7063913 +0.1490952 +-3.3910775 +10.9598360 +4.6436329 +-5.4066825 +1.6172750 +5.5158949 +-4.4781280 +-9.5936441 +1.7189605 +-3.4562008 +3.7208393 +-5.0618606 +1.7970436 +-4.7140613 +40.6999397 +-4.8510628 +-3.5714991 +4.8203025 +4.5688081 +1.4960873 +-0.6649873 +-5.0784411 +-1.0504555 +0.4322078 +-11.6904430 +-4.6054196 +-4.2381234 +2.7456541 +-4.6208110 +-3.4487262 +1.0349324 +-2.4493954 +-0.2727353 +6.8880777 +-1.9838156 +-3.2191262 +-1.0911690 +-8.3927650 +6.7541385 +-3.8513525 +0.7410192 +3.4551029 +1.3365847 +-1.5916164 +-8.4876032 +-12.6226015 +3.9612093 +-2.2214320 +7.2501159 +6.7681894 +-2.4917138 +-3.7117412 +-1.4244393 +-6.8979974 +0.8517427 +3.3303549 +2.9998994 +12.1686001 +-2.7611773 +2.3532066 +-1.2842773 +-4.0678420 +-8.6300163 +28.5307121 +5.8928165 +0.4456392 +2.0728612 +-12.0969086 +1.4979424 +-22.2339592 +12.6765146 +11.2740164 +-5.1174016 +33.7961578 +5.4208426 +-2.8266160 +1.7495946 +4.3823996 +1.9552916 +6.5440278 +1.0820826 +2.4838681 +-5.8950143 +-11.7410221 +-7.6748209 +1.7008163 +4.3804545 +-4.1864629 +-4.6849647 +-3.9084961 +1.1695335 +3.6878617 +-2.5229778 +1.4618704 +0.3487570 +-2.7493975 +-0.2377521 +-9.6038303 +-1.1266462 +30.1988602 +9.6149778 +-10.1510973 +-2.7702198 +0.3718899 +5.5538816 +-0.6503391 +1.7601780 +-5.8855758 +-5.7915158 +3.8533366 +4.6689496 +1.1386486 +-0.5330352 +-7.8668537 +-5.9820790 +-3.5117927 +2.6927292 +-8.9300642 +-2.2988403 +0.0266015 +-1.2860687 +-5.3865390 +-4.1603584 +0.9968939 +-1.0056527 +-2.3790653 +-1.6318030 +-2.7571063 +-2.5297515 +-0.7284175 +4.5436039 +-3.1700065 +-1.8953116 +3.6202047 +-2.4909666 +-10.7537861 +-3.0287988 +0.4426162 +1.4537923 +-3.7685249 +-3.9956005 +-2.8022714 +31.4235725 +-1.8377740 +-1.7733027 +2.6480429 +-0.2185100 +2.6720824 +-3.0035763 +-2.3567469 +-0.5920078 +-0.8311185 +-10.4326391 +0.8294669 +-7.1066279 +2.1974907 +-5.9995852 +-7.7374172 +-0.0635248 +1.1909137 +-8.9993505 +1.2918113 +-1.6222439 +-2.4852629 +-1.3436680 +-6.2210078 +5.1913805 +-12.0207443 +-4.9987679 +-4.0422063 +-1.6549479 +0.0031657 +-0.5123472 +-11.8045397 +-2.0089571 +-1.5443038 +-0.2814368 +-15.5887680 +-1.3492824 +-3.4407666 +-0.7073808 +-4.9388185 +-2.6603143 +-0.0870950 +3.0926547 +1.3913666 +3.1364536 +-1.3502452 +-1.3511233 +-1.2839803 +-9.7131233 +20.2433949 +-1.3665247 +2.4318023 +1.8634845 +-14.4967928 +1.1095555 +-3.7722983 +8.8843231 +6.8431849 +-4.9145503 +15.3433180 +3.8271008 +-2.1328068 +1.5731049 +1.4137671 +-3.0629046 +4.1760192 +6.2097664 +3.7048452 +-7.8787093 +-9.1573229 +-3.5268672 +1.9170599 +-0.3890755 +-3.4042475 +-3.3223121 +-4.3989611 +0.4212047 +0.2568421 +-0.5826618 +-0.1147691 +-2.2276134 +-4.0987420 +1.2141759 +-2.9992518 +-0.2983387 +15.6446304 +7.1265769 +-8.6556854 +0.7303460 +1.3157796 +2.3902099 +-1.4236755 +2.9728818 +-4.4425716 +-2.0890689 +2.9793935 +1.8309892 +0.5202494 +-0.2522816 +-4.1705174 +-0.1306770 +-0.3332072 +2.7087278 +-0.8169690 +3.3373494 +-0.3466422 +2.0163805 +-2.6645207 +0.6375313 +0.2760830 +-1.0279192 +0.4442447 +1.2170449 +-1.0968204 +-1.2111968 +2.0415664 +2.0414031 +-2.0267315 +-0.0995146 +1.8561897 +0.3052786 +-3.9665279 +-1.8262999 +-1.5908604 +2.3799970 +-1.3600032 +0.2697197 +-1.1136091 +14.3290529 +-0.7712288 +-0.1086837 +0.8540247 +-3.2082229 +-0.1517099 +-1.0518200 +-3.1952901 +-0.3189946 +0.1835870 +-0.9878998 +0.9507083 +-1.1656468 +0.5415708 +-1.1666931 +-0.2792092 +0.4511880 +0.4030132 +3.0173359 +1.1262842 +0.1195119 +0.0192640 +-1.5952194 +-3.4525623 +1.1809393 +-0.2084191 +1.2453810 +0.7313919 +0.7625394 +-0.2355059 +-1.6725991 +-1.8027353 +1.9802970 +0.9511579 +2.2359943 +8.0853987 +-0.5456429 +-1.7095222 +-0.1969585 +-3.0889492 +-0.8914388 +-3.3846643 +1.8897799 +3.4256592 +-0.8049040 +1.0457349 +-1.7513400 +-0.5625615 +-1.9440114 +12.8637218 +0.0391393 +1.1114107 +0.8219671 +-2.7305212 +0.6266122 +-0.9385329 +4.2166386 +4.2799320 +-1.3299407 +12.3897505 +1.5717800 +3.4974947 +1.2124870 +-1.1344244 +-2.2109721 +1.9784015 +-9.3946953 +0.2704390 +-1.8632561 +-2.6997914 +-0.9585679 +-1.4470390 +1.0654671 +-0.5870100 +-1.7959598 +-0.8267181 +0.2149037 +0.9604928 +-0.9725294 +-1.0015485 +-0.0984513 +-0.2431292 +1.2103946 +-1.0125335 +-2.3319068 +10.1510506 +3.0101905 +0.2154850 +-0.2319956 +0.2413972 +-7.0459065 +0.1795518 +1.1757233 +-2.1161988 +-1.1057668 +1.3298327 +3.5256672 +-0.2695195 +-4.8892164 +-5.8914704 +-5.2754970 +0.1623673 +2.4438777 +0.2819987 +6.9441996 +0.1630606 +-2.2109182 +-2.4912870 +2.4107928 +0.5755776 +-3.0974138 +3.2523663 +-2.0733788 +1.0337392 +-3.0079956 +11.3551855 +1.6809102 +-3.3863246 +2.5366175 +3.7724411 +-4.2985635 +-6.4684286 +3.2242587 +-4.1170440 +2.4473062 +-3.3227139 +3.6871064 +-3.3559036 +24.5889587 +-0.2982408 +-3.4065728 +2.7658880 +5.0835690 +-1.0537157 +-4.8869767 +-3.6701498 +-1.2009741 +1.0393425 +-6.0674357 +-4.5546422 +-0.2755071 +1.4314786 +-1.2109761 +-0.0130418 +0.6353285 +-1.4668916 +5.4056330 +4.7423449 +-1.0598383 +-1.8240353 +-0.4048853 +-5.1802697 +3.3888028 +-0.4805774 +2.7343085 +5.1638575 +2.1340380 +-1.2159100 +-6.3616161 +-7.2215109 +4.2587337 +-0.6084874 +5.6242356 +14.5145054 +-1.1814854 +-2.2270441 +-1.3245947 +-4.8465018 +0.0319226 +3.6280463 +1.1425314 +8.3194151 +0.5270816 +2.5161173 +-1.6711437 +-3.7268698 +-3.6687322 +17.2255783 +4.8913565 +-1.0966889 +0.6839079 +-4.6758094 +0.5252787 +-12.1463728 +8.6250858 +8.4470091 +-3.0292253 +22.2245007 +3.2775140 +17.9296303 +0.6793045 +1.6703234 +4.7970533 +4.2375422 +3.5877066 +-1.9713918 +-3.4169939 +-6.7967997 +-5.6812787 +0.6845523 +7.4122968 +-3.6531539 +-3.2758324 +-1.4301629 +-0.1730289 +3.6796255 +-0.8345674 +-0.5749910 +1.2843065 +2.3184099 +-1.3527784 +-1.9875392 +-0.8674228 +20.2648144 +4.9156871 +-2.1142964 +-3.2263029 +0.0020227 +5.0722842 +0.1290557 +0.3127528 +-4.4024606 +-6.5586305 +2.0164821 +5.6767101 +0.2111107 +-5.0682034 +-8.8151522 +-6.4672790 +-3.1582694 +4.2999930 +-1.7790320 +5.8594255 +-0.1131046 +-2.1126328 +-4.2828150 +1.8118176 +1.1874881 +-3.8262072 +3.0250208 +-3.0375953 +0.7911116 +-4.2150683 +11.9615669 +3.1819053 +-4.5029359 +1.8029680 +5.5351796 +-3.9555051 +-9.0202427 +1.4850897 +-4.6837702 +3.7388501 +-4.9594607 +2.7848408 +-4.4869518 +39.5739174 +-2.2774620 +-4.5658288 +4.1474123 +4.2859449 +-0.5379724 +-3.0358570 +-5.1541481 +-1.2647181 +0.9317043 +-7.9783077 +-4.7014294 +-2.5475843 +2.3972147 +-4.3293781 +-2.5297494 +1.1302837 +-5.4093227 +2.7838750 +5.4486489 +-1.4867216 +-2.4576275 +-1.4112843 +-8.1239262 +5.8460069 +-2.0687449 +1.7768469 +4.7123508 +1.8422590 +-1.5971723 +-7.8579259 +-12.6025276 +5.0838962 +-1.2670728 +7.2636395 +9.4248190 +-2.1143148 +-3.8586569 +-1.7513584 +-7.0731277 +-0.5995697 +4.3665643 +2.4588931 +11.2100210 +-0.6844838 +2.3485115 +-1.7035681 +-4.5398912 +-6.9971089 +27.1970196 +5.6223731 +0.3148817 +1.5313783 +-9.4275780 +1.0840327 +-18.6935673 +12.3147993 +11.0782356 +-4.8833809 +33.1879158 +5.1487803 +18.9861240 +1.4917026 +1.3506987 +5.0417690 +5.7669072 +-5.2745008 +-0.1383630 +-5.1782331 +-10.1573210 +-7.3286381 +1.5202365 +7.2285457 +-4.7937369 +-4.9995470 +-1.7821683 +0.2905872 +4.2908068 +-1.4273483 +-0.2871986 +1.3505520 +-0.4197940 +-0.3337514 +-14.4603653 +-0.8219130 +30.2782173 +7.9820457 +-5.6612449 +-3.2190096 +0.1065071 +5.0495925 +-0.2912745 +1.5686383 +-6.1794319 +-7.1517940 +3.3392055 +5.3442659 +0.3277754 +-0.6200222 +-7.2715445 +-4.0240703 +-2.7044768 +2.9474430 +-6.6400056 +-5.0076241 +-0.4763640 +-1.3030517 +-5.2518444 +-1.9950738 +0.2597740 +-1.7612691 +-0.8891709 +-1.5138988 +-1.7153208 +-1.9218442 +-0.4195701 +4.0223947 +-2.0759773 +-2.0288744 +3.3635769 +-1.7393767 +-8.3587599 +-6.1718121 +-0.1944391 +1.8967620 +-2.8921854 +-2.4675608 +-2.7692320 +30.5291119 +-2.6471858 +-1.1332715 +2.8333166 +-0.9247968 +1.3095245 +-1.5406609 +-4.0862985 +-1.1507149 +-0.5001946 +-6.8957181 +1.4717977 +-6.0430050 +1.7171650 +-8.6770458 +-6.7280908 +0.2312592 +0.9717281 +-7.2882729 +0.9871837 +-0.4990524 +-1.7391593 +-1.7977462 +-5.7171659 +3.6024969 +-9.0630789 +-4.1523666 +-3.3662891 +-1.0937077 +-0.7839407 +-0.9936644 +-7.1048012 +-0.3373648 +-1.5428711 +1.5952702 +-9.5187035 +-2.5207620 +-3.3484030 +-0.8788760 +-6.1892529 +-2.8589275 +0.6765174 +2.5904515 +4.2525001 +-1.2640032 +-1.1438518 +0.3263012 +-1.6217020 +-8.3155422 +17.9231148 +-1.1759923 +3.0194280 +1.5494361 +-11.6314297 +0.3706860 +3.6352642 +8.1701488 +6.3071666 +-2.9639480 +18.4583225 +3.8291566 +-2.9936886 +1.2245487 +0.8779416 +-1.6575267 +3.6830184 +3.9823263 +3.0729742 +-6.0848598 +-6.9778099 +-3.4651389 +0.9951807 +-1.3411189 +-1.6281537 +-2.6703038 +-3.2964859 +1.0318091 +0.1317442 +1.6295372 +-0.2599651 +-0.6224558 +-4.2480359 +1.7629210 +-4.8521457 +-0.3314816 +19.0858517 +6.4839573 +-8.8777285 +0.6918435 +-0.3746960 +1.4072157 +-2.8118832 +2.0528364 +-3.4729013 +-0.5649107 +1.7805882 +-1.9295686 +0.9819263 +-0.4755955 +-4.4534431 +0.7720762 +-1.5916785 +2.9135869 +-1.0189567 +4.6951332 +-0.0079482 +3.2424319 +-3.6686261 +0.0481788 +1.0576149 +-1.1671619 +0.5378268 +0.8496001 +-1.3461285 +-0.8683378 +0.9124361 +2.6980066 +-2.0338409 +-1.2644320 +0.7864078 +-0.9062321 +-3.8513291 +-0.4438333 +-1.2019610 +1.0952675 +-2.1534319 +0.8215368 +-1.0827684 +15.8048849 +-2.1383429 +-0.7265815 +0.7232335 +-6.9169106 +-0.3538557 +-0.8092940 +-3.8439503 +-1.0528735 +-0.6021591 +0.9962142 +0.8150992 +-0.6750130 +-0.0539000 +0.0974209 +-1.2258668 +1.1610590 +-0.8697899 +9.1118355 +1.0310239 +0.0675204 +1.5234038 +-1.7475117 +-2.9561696 +1.2176334 +-0.3189037 +1.0655209 +0.2949775 +0.7481478 +-0.8899146 +-1.1060275 +-0.4724989 +2.2963178 +1.5241472 +2.9724760 +2.8344624 +-0.4178565 +-1.5992419 +-0.3521697 +-2.8787658 +-0.4085249 +-4.1080780 +1.3037927 +4.1869378 +-2.3601046 +0.9624687 +-1.3457099 +-0.9443302 +-1.2745272 +14.9389658 +-0.7271131 +1.8750802 +-0.1746746 +-1.3385079 +1.4500147 +-0.9387105 +4.3570399 +2.2421257 +-2.2634597 +13.0091038 +1.4480928 +-0.2687945 +0.2374164 +-0.8465790 +-3.8144217 +1.8241185 +-6.8983102 +0.2429870 +-0.8186243 +-1.0327854 +-1.1492884 +0.0057388 +0.8705350 +-0.7021036 +-2.1115577 +-0.9517631 +-0.0983322 +0.4635966 +0.2100081 +-1.0469155 +0.4755799 +-2.5612242 +1.7043113 +-1.7230014 +-1.5644879 +9.4383736 +3.0267050 +2.0537720 +-0.0482305 +0.0015480 +-6.1669402 +-0.0567527 +0.5649137 +-2.3129811 +-0.7195195 +0.9309683 +0.1959827 +0.0715838 +-5.3947768 +-5.9981756 +-3.7226968 +0.7538528 +2.2275550 +1.5863771 +11.2208834 +0.3798952 +-1.6614237 +-2.4634395 +2.4560237 +0.5678091 +-3.5617459 +3.9425871 +-1.2084078 +1.0366668 +-3.5639203 +9.9103479 +1.4253429 +-0.2300971 +1.8946569 +2.8939328 +-1.4279429 +-6.0610623 +3.1024547 +-3.9477239 +1.1420203 +-3.4863081 +5.8818326 +-3.4494717 +24.3995152 +0.3034732 +-4.3735132 +2.5428886 +4.7758884 +-2.1320753 +-6.0633059 +-4.5017438 +-3.2001662 +1.3792666 +-2.7031436 +-4.9607515 +0.8607507 +0.8208216 +1.8329355 +0.2131555 +1.8342093 +-1.6938312 +11.0491295 +5.0653787 +-0.7389645 +-0.8079696 +-0.0617472 +-4.4027977 +2.9210646 +0.3115945 +3.4421091 +4.9774566 +2.6043921 +-1.5410851 +-6.3008552 +-5.4552693 +5.1388049 +1.7891381 +6.1260972 +16.4315090 +-0.8801636 +-2.2136936 +-0.9940490 +-3.7359934 +0.1502060 +1.6234323 +0.5745041 +7.8981051 +1.0530238 +3.1115804 +-0.3218651 +-3.7654562 +-2.9494805 +19.8737774 +4.8608842 +-0.7766361 +0.3158146 +-2.9453664 +1.5981860 +-8.4335775 +8.6305923 +8.1742191 +-2.9419856 +23.5494595 +2.8873837 +5.4664879 +0.5730574 +1.8602141 +5.7223840 +4.3903222 +1.4065576 +-4.8991575 +-2.9792202 +-4.7825279 +-5.3865471 +0.5956954 +11.4128361 +-3.2965307 +-2.9286799 +0.2959966 +-0.7211330 +3.6464891 +0.8292674 +-0.9609912 +2.4681232 +-0.2183226 +-0.5350631 +-1.7708732 +-0.2683601 +19.1453609 +4.4429560 +1.4585027 +-2.9479787 +0.1604823 +4.3418655 +0.2295027 +-0.5583934 +-4.9502983 +-6.2730308 +1.3693200 +2.4352431 +0.5088750 +-5.8136749 +-8.5826063 +-4.2378573 +-1.5088407 +4.2974181 +0.4923562 +10.8967962 +-0.0847174 +-1.0293993 +-3.9145906 +2.3091486 +1.0483274 +-4.5051084 +4.0827188 +-1.8748196 +1.1481324 +-4.8917270 +10.9485998 +2.4113994 +-1.0899453 +1.1464310 +4.5888839 +0.4202359 +-8.5886745 +0.6808730 +-4.9352746 +3.3364475 +-4.6088963 +4.8780580 +-4.4707565 +40.6147041 +-0.7551246 +-5.7387109 +3.4259577 +4.1805468 +-2.3139372 +-5.0901852 +-6.3457937 +-3.1925874 +1.4579231 +-3.5919437 +-4.9930825 +-0.7618117 +1.6258841 +-1.8843558 +-1.4559788 +1.9008483 +-7.3487415 +9.3399372 +5.3988910 +-0.9972216 +-1.4466629 +-0.8113855 +-7.2695174 +4.9084601 +-0.9739924 +2.8731985 +4.7506146 +2.3967891 +-1.8275613 +-7.6969757 +-8.7336912 +6.3711343 +1.1720031 +7.9772987 +12.7159700 +-1.9355537 +-4.0251122 +-1.6179798 +-5.8270359 +-0.4953380 +2.2876799 +2.0085545 +10.8319197 +0.7539517 +3.3993502 +-0.8465168 +-4.6366162 +-5.5120583 +30.0935001 +5.6449552 +0.9375363 +1.0381804 +-6.5639062 +2.0674918 +-15.5569706 +12.1870451 +10.0701618 +-4.4005089 +34.1996956 +4.6182146 +4.0857859 +1.3990359 +0.8352000 +7.3654056 +5.6376762 +-11.7846918 +-3.6899254 +-4.7987366 +-7.3948102 +-7.7787604 +1.3095181 +11.1662912 +-4.7868786 +-4.6513996 +0.9122053 +-0.1581788 +4.1556692 +0.8326851 +-0.8161186 +3.0619745 +-2.4915726 +0.5611365 +-16.2702847 +-0.4872790 +28.4037743 +6.9892693 +-1.3361880 +-3.6435747 +0.2374747 +3.6220558 +-0.2582678 +0.4028303 +-6.9129338 +-7.4929833 +2.9254613 +2.4009478 +0.8035052 +-0.8438019 +-6.0989962 +-3.1175430 +-4.2073140 +3.4745076 +-3.0990756 +-4.0289550 +-1.0920149 +-1.8099129 +-3.4657578 +-1.2795738 +1.0730757 +-0.8557719 +-0.7017871 +-1.1890280 +-1.2032843 +-2.4331806 +0.5723246 +2.9065082 +-1.6155108 +-2.5295842 +2.1259634 +0.2314195 +-5.9054046 +-5.3979788 +-0.8184340 +2.1959085 +-2.7847364 +-4.9077129 +-2.0950692 +28.8758488 +-2.0177331 +-1.5488342 +2.2906773 +-2.2428076 +0.0696947 +2.4841988 +-2.8229997 +-0.5487863 +-0.3855459 +-5.4283504 +2.1810360 +-4.1874614 +1.7461159 +-5.2195735 +-3.9289508 +0.9222851 +-20.5917835 +-6.0136819 +0.9548687 +-0.9891375 +-1.6020596 +-0.9933196 +-5.8614922 +3.2265224 +-4.4158983 +-2.6900530 +-1.8099616 +-0.1907286 +-0.5638354 +-1.1090922 +-5.7917738 +0.9078305 +-1.6907250 +2.3818221 +-6.2680187 +-0.9757583 +-3.3633151 +-0.9243022 +-4.9897289 +-2.2427630 +-0.6824064 +3.0447948 +4.6841168 +0.7356731 +-1.7712239 +0.6200138 +-1.5952495 +-7.2116256 +17.4541664 +-2.5518601 +2.6107595 +0.4070323 +-10.1010847 +1.0427887 +-10.2221107 +7.6418815 +6.3994412 +-3.2884371 +21.3847675 +4.3123899 +-1.9248562 +1.6542673 +-0.9093820 +-0.3353765 +2.3084013 +-3.6528826 +2.2867026 +-4.4055471 +-6.0397182 +-2.6446090 +1.0138025 +-2.7763114 +-1.2388391 +-2.6099379 +-1.2404563 +0.6338043 +0.1909433 +-1.3718270 +-0.7307109 +-0.1627697 +-4.1228557 +1.9087905 +-9.8768568 +0.3075324 +19.5442181 +5.3228893 +-6.9515085 +1.2940036 +-0.5218074 +1.6772847 +-0.0540980 +2.7958293 +-4.0181866 +-0.3057913 +1.6378251 +1.9821551 +0.3200837 +-0.9734355 +-2.6637950 +0.8656080 +-1.4839158 +2.1874032 +-0.3338163 +2.8100574 +-0.1855490 +2.4366107 +-3.0983191 +0.0024424 +0.5447878 +-0.9980599 +0.2917441 +0.0333733 +0.1680680 +-1.1212223 +-0.6421664 +1.4870255 +-2.1254799 +-0.6165475 +1.5683416 +0.8881069 +-2.1664889 +-0.7647117 +-1.1180062 +1.2723851 +-1.0392503 +0.4935866 +-0.9277562 +11.7827368 +0.4383072 +-0.9104959 +1.2742549 +1.7627205 +-0.3122394 +1.9017951 +-2.7109916 +-0.4076005 +0.3002955 +0.4745398 +0.5314730 +-1.0805823 +-0.1491344 +-1.2095900 +0.4845761 +0.1408185 +-2.8401089 +2.4002516 +0.6866328 +-0.2209571 +0.2274516 +-0.7937565 +-2.1774294 +1.0985081 +0.1990485 +-0.0216368 +1.2711762 +0.3779525 +-0.4646004 +-1.0602912 +-2.2272186 +1.2912533 +1.5808284 +1.7700496 +-2.4724276 +-0.9193724 +-1.7295789 +-0.5732147 +-2.0372319 +-0.2290878 +-3.1123762 +1.2325646 +2.6426821 +0.1854585 +0.3952538 +-1.4185412 +-0.9285408 +-1.7457718 +8.8645277 +1.2572595 +2.7263281 +0.5595369 +-2.0381496 +0.3854145 +-0.4589330 +2.8962808 +1.3998075 +-2.2477620 +8.8149900 +1.3250777 +-1.5839825 +0.7310563 +-0.1697467 +1.9300276 +1.1008872 +-8.9761953 +-0.7565061 +-1.5704488 +-1.4462477 +-1.5746790 +-0.1899424 +0.6390178 +-0.8325866 +-1.4152910 +-2.3291080 +-0.1626638 +0.2628009 +1.3011750 +-1.5133637 +0.3150560 +1.7764456 +1.7131191 +-3.0554981 +-1.3609295 +7.5751834 +2.2674518 +0.9431861 +-2.0827012 +0.0136352 +-1.9593832 +-0.0306898 +0.4740067 +-2.1362078 +-0.8316516 +1.3257191 +-2.1806617 +0.0728351 +-1.6118643 +-4.6219158 +2.2026048 +-2.5143285 +4.7672396 +-0.6649625 +3.7555366 +-0.9061257 +-0.5571001 +-6.5482225 +0.0629805 +0.3565477 +-1.3403285 +0.6465012 +0.3873684 +0.8282186 +-2.2499568 +1.4120035 +-0.1639111 +-0.8038160 +-1.8812804 +2.4701762 +1.4547473 +-5.4758434 +-2.6451659 +-1.9754595 +0.1010096 +-2.1199963 +-1.4744925 +-1.9375429 +28.3120270 +-2.1698720 +-2.6016889 +1.9500459 +0.4230547 +-0.9766740 +1.1274674 +-4.0050330 +-1.8070819 +-0.0882824 +2.1222694 +0.5993818 +-2.0836222 +-1.2120121 +-0.6648255 +-0.1960028 +0.6412776 +-1.9576068 +-1.9918114 +3.8392844 +-0.3309059 +-0.2732774 +-1.4132676 +-3.0257561 +3.3587048 +-0.2996780 +-1.5963938 +1.9243094 +1.0249393 +-0.8142473 +-1.4955684 +-3.4995954 +2.5322545 +1.7908534 +4.3464046 +-23.3752460 +-1.6399299 +-3.7009194 +-1.0851464 +-4.1430106 +-0.9330316 +0.1439359 +2.5962873 +7.1364379 +-0.6856009 +1.0344266 +-2.5783782 +-1.6713144 +-4.2859645 +13.2158051 +-0.6996207 +4.2522449 +0.7807695 +-4.9344816 +1.4306102 +-5.2430367 +7.0702233 +5.1730013 +-3.2077808 +19.6444397 +1.9062823 +-2.1543255 +1.1926190 +0.2342200 +2.3936658 +3.6707346 +-2.4322255 +-8.2557335 +-2.3764279 +-2.8047154 +-2.5269537 +1.3887902 +8.1468153 +-1.3857024 +-2.6007683 +-22.0404606 +0.3144171 +0.7715766 +5.5749555 +-1.8351876 +0.9000055 +0.6628448 +3.1872432 +-5.4024124 +0.8168108 +12.4498138 +2.8344991 +-1.2381225 +-1.2727505 +0.1438557 +-1.2024586 +0.6743398 +1.8921163 +-4.6891532 +-2.8299894 +2.3850844 +-6.2391229 +0.3925843 +-1.5187695 +-7.2985620 +2.3076451 +-4.1022744 +6.6218328 +-0.8199562 +4.5758700 +-1.3972598 +-0.6168053 +-8.8015575 +-0.4010805 +0.8184576 +-1.8843598 +0.8799795 +0.6374272 +0.7555530 +-3.8261783 +0.3498118 +0.7785590 +-2.0618432 +-2.7902868 +3.9454672 +2.5620918 +-8.3497992 +-4.9773974 +-2.9299119 +1.1310792 +-3.1655712 +-3.2480016 +-2.4783602 +40.8367424 +-2.4411738 +-4.0756750 +3.1010582 +0.3810943 +-0.8914207 +2.0734003 +-6.0353775 +-1.8900443 +-0.2599805 +2.0778441 +0.4035506 +-3.1373863 +-1.5547762 +-2.8108790 +-0.8717921 +0.6110900 +-4.1084633 +-3.2474875 +2.6808982 +0.0821546 +-0.6968752 +-1.6456435 +-5.6525917 +4.2747521 +-1.4563618 +-2.2556748 +1.8491981 +1.1044801 +-0.5519479 +-2.0937405 +-5.7891860 +3.5044641 +1.9335598 +6.0589337 +-26.5417252 +-2.9073253 +-5.5551343 +-1.6944531 +-5.9142423 +-1.9858737 +0.2625830 +4.0746436 +9.9069452 +-1.0098503 +-0.1928553 +-3.6454210 +-2.3670731 +-6.6826310 +22.0619926 +-1.0857557 +6.5555439 +1.9640347 +-7.8563328 +1.8807900 +-9.7071495 +10.2077341 +4.9701180 +-4.4439588 +31.3979340 +3.1800568 +-3.4985209 +1.9286944 +-1.6644307 +3.1964724 +3.4598062 +-11.9525080 +-8.3723993 +-4.4579067 +-4.3212843 +-3.8716516 +2.5156612 +9.5333748 +-2.6807246 +-3.8210418 +-40.6761818 +0.6661626 +0.8494665 +5.0212216 +-2.9387727 +1.2905748 +-0.9506496 +4.6949930 +-13.8653069 +0.0427751 +20.6782875 +4.8654351 +-2.9648383 +-2.2081571 +0.3150879 +-1.5619472 +-0.3185498 +2.7456064 +-6.7654700 +-3.6248877 +4.2157917 +-7.7468052 +0.8603118 +-0.3597026 +-6.0896697 +-0.9904385 +-2.5464275 +3.6242912 +-0.0704967 +0.0764554 +-0.9169395 +-1.6179454 +-4.6895032 +0.5199198 +0.6828931 +-1.0223385 +-0.5056789 +0.3307299 +-1.5776447 +-2.3922086 +-2.0781047 +1.7438313 +-1.5078322 +-3.4077404 +1.6594093 +0.7571130 +-7.3718147 +-7.7424383 +0.4072025 +0.0361287 +-2.6306853 +-5.6460490 +-2.5644963 +28.0688972 +-0.0738757 +-1.4204345 +2.1025982 +-2.3759677 +1.3275962 +2.4051576 +-4.3677726 +-0.6813672 +-0.4543071 +-2.5941722 +1.2207228 +-1.8520842 +-1.7293110 +-3.8744440 +-1.9242778 +0.9204822 +-1.8204286 +-4.3054242 +-0.2199360 +0.0022053 +-0.0782797 +0.4470988 +-3.4504516 +1.2448090 +-2.9826076 +-3.1381593 +-2.3345249 +1.1112049 +-0.2064539 +-2.1644959 +-4.3316188 +0.5548227 +0.2742492 +2.4010050 +-5.3264775 +-2.0283375 +-4.3024750 +-0.8580202 +-6.7835150 +-1.7744310 +-0.7050786 +2.3698218 +4.8567758 +0.8640946 +-3.1820765 +-0.3907491 +-1.6169277 +-5.8212633 +10.7625523 +-4.3091488 +3.2165623 +1.9316089 +-9.2241364 +0.8856130 +-8.6419497 +7.3447118 +0.8113640 +-2.2607539 +15.9588776 +2.2124305 +-3.0946791 +1.8144506 +-1.4852358 +-2.3913836 +1.0741999 +0.5220633 +1.6764312 +-4.2680459 +-3.6268442 +-1.5511795 +0.0474024 +-0.3497700 +-0.6390474 +-1.4109635 +7.5264030 +0.0737111 +-1.3295356 +0.3640594 +-1.7015320 +-0.2228193 +-2.3334212 +3.0153058 +-2.3238597 +0.1557161 +13.0656242 +4.0418448 +-4.6729589 +1.2172911 +1.4959103 +0.5893138 +-0.6278101 +1.5899760 +-3.2829857 +0.3575636 +3.3618612 +-28.3890400 +0.3073191 +-0.9138634 +-2.3464046 +1.5802904 +-2.1863003 +2.0519969 +-0.0596870 +1.5823544 +-0.2798196 +1.8335068 +-1.8052837 +-0.0481176 +0.6538516 +-0.8642939 +0.2953640 +-0.0816362 +0.2753902 +-1.2283252 +-1.3447725 +1.4772784 +-2.5155928 +-0.9720873 +1.6647182 +1.1446162 +-2.3743498 +-0.5735482 +-1.3092452 +0.7331498 +-0.6704211 +-0.4818507 +-0.9830178 +9.5017996 +-2.3980832 +-0.7903844 +0.9764985 +1.9269940 +-0.7640346 +1.5845947 +-2.6385584 +-0.4317664 +0.0979475 +1.7732595 +1.9858643 +-0.9978192 +-0.6772295 +-0.7521817 +0.0775758 +-0.2827167 +-3.2639272 +1.3410679 +-0.3340558 +0.1603797 +-0.0705771 +-0.5479285 +-1.8514962 +0.6802998 +0.2475028 +-0.3732416 +0.4476534 +0.1915202 +-0.4761976 +-0.8074137 +-1.2840393 +1.2753236 +1.3782213 +1.9314470 +-1.9868094 +-0.9875627 +-2.0292239 +-0.8055026 +-1.2914754 +-0.5106906 +-1.9244804 +1.3346971 +2.9086955 +-0.2775562 +0.0833055 +-1.1719656 +-0.8192772 +-1.2350413 +8.4701586 +0.4608613 +2.5310493 +0.3767066 +-1.4479845 +0.1139005 +-0.1828861 +3.2278569 +0.4219611 +-1.7342782 +8.1549568 +1.0866256 +-1.4420797 +0.4963162 +-0.9435362 +2.8824046 +0.7875996 +-9.0269117 +-1.7725248 +-1.6947659 +-0.9170191 +-1.5355082 +-0.3798005 +0.6291820 +-0.8404116 +-1.5989463 +1.6952544 +-0.5566207 +0.1093151 +2.9055161 +-1.6729100 +0.4603476 +1.4951611 +1.7890922 +-2.1811881 +-1.3111645 +7.3019929 +1.8050861 +0.1102535 +-1.3158801 +0.1404410 +-2.1388047 +0.1444883 +0.1870632 +-1.9137590 +-0.7643769 +0.9668011 +-4.2880001 +0.0322861 +-1.7532979 +-4.4089527 +2.8977554 +-4.4026804 +3.9579213 +-0.4910656 +2.1490149 +-0.8251079 +-1.4865729 +-5.4279652 +-0.0691689 +0.3684686 +-1.1287993 +0.6278228 +0.1724094 +0.6712556 +-2.2477865 +-2.1865318 +-0.2114972 +-1.2977170 +-2.8170435 +2.7234888 +1.2775345 +-6.0541978 +-2.9656658 +-1.5736984 +0.3975698 +-1.4044915 +-2.0763061 +-2.7285054 +25.2295914 +-8.4210520 +-1.7427746 +1.4203242 +2.7136517 +-1.6664133 +0.5519812 +-4.5893197 +-1.5457491 +-0.3781953 +3.6219437 +2.9055047 +-2.0927367 +-1.7009410 +-2.2848644 +-0.2766256 +-0.0392184 +-2.7920272 +-0.3642702 +1.9397069 +-0.2997997 +0.5024161 +-0.5014195 +-2.9520533 +1.9870716 +0.1028331 +-1.7753205 +0.9607301 +0.4682870 +-1.2322614 +-1.4649441 +-2.8032780 +2.3231206 +1.6460434 +4.2014976 +-1.8855716 +-1.6169269 +-3.6612806 +-1.5777829 +-3.1047454 +-1.6768630 +0.6071233 +2.6866477 +6.7994537 +-1.5908227 +-0.6717705 +-1.4758688 +-1.3133947 +-3.1433475 +15.6217442 +-0.8414554 +3.4812365 +0.4802159 +-3.6973214 +0.6765412 +-4.1830826 +6.7604270 +4.5410261 +-2.5485806 +17.9083881 +2.1522822 +-2.1843209 +0.8076627 +-0.3174050 +3.5690451 +2.5834115 +-3.7882557 +-11.2901812 +-2.8200321 +-2.0493076 +-2.9004304 +0.3255752 +4.6570945 +-1.7110462 +-2.4681792 +0.6834786 +-0.2231048 +0.2240899 +6.3058696 +-2.7274718 +0.8810517 +1.9928515 +3.4934478 +-4.5233383 +0.6262991 +13.6216335 +2.1751447 +-2.0598776 +-1.1541376 +0.2034363 +-1.5640707 +0.5708590 +1.8823525 +-4.0882487 +-3.2328930 +1.2254757 +-8.5613308 +0.2749548 +-2.0871582 +-6.8917108 +3.9939916 +-6.3094678 +6.0446630 +0.3449999 +3.2506654 +-1.1534649 +-1.6046830 +-6.7473950 +-0.0819830 +0.6358976 +-1.9141120 +1.3618156 +0.2940134 +0.6476096 +-3.7567225 +-4.5514278 +0.3062890 +-1.8553435 +-4.1551795 +3.8173883 +1.2519621 +-8.7836485 +-5.1706553 +-2.2699740 +1.5424508 +-1.9324095 +-4.6334639 +-3.3496287 +38.2350044 +-14.0261059 +-3.2843375 +2.1667590 +3.3806334 +-2.3997180 +1.3874577 +-6.6204519 +-1.8752154 +-0.5502084 +4.9191322 +4.0060058 +-2.8301916 +-3.0885420 +-4.0835285 +0.0133020 +-0.1168398 +-3.9048603 +-1.0404087 +0.5252505 +-0.0840288 +0.1470655 +-0.3956601 +-4.8164759 +2.5854962 +-0.2522818 +-2.5312493 +1.3327094 +0.6799484 +-1.3927455 +-2.1545155 +-4.3244271 +3.4105234 +1.9956031 +6.3490181 +-4.0441170 +-2.7041101 +-5.5851488 +-2.0001528 +-4.3270507 +-2.6811824 +0.0714930 +4.1900239 +10.4217510 +-2.7696297 +-1.8472000 +-2.6769223 +-1.8879941 +-4.9891133 +23.6861572 +-1.8833864 +5.8406286 +0.8926300 +-5.9015946 +1.2637920 +-5.9756079 +10.2019072 +6.5862808 +-3.2806058 +27.9873314 +3.0052991 +-3.3689344 +1.6525797 +-1.4211736 +4.8803339 +2.5673680 +-7.0899658 +-10.3893099 +-4.7162519 +-3.1480992 +-4.1177597 +0.7213615 +6.3131595 +-2.8177824 +-3.8620322 +0.6048249 +0.0651994 +0.2338329 +8.2314501 +-3.5804489 +1.3748232 +1.3204292 +5.3855958 +-6.3628950 +0.5911751 +20.8281059 +3.6871874 +-3.1151791 +-1.5192839 +0.5137926 +-1.9410145 +0.5344702 +1.9253854 +-6.0051618 +-4.1905408 +2.3570342 +-9.9080162 +0.4028576 +-0.9654508 +-5.3329492 +-0.0615212 +-4.2534156 +3.3854795 +-0.7818655 +-0.6943299 +-0.6860551 +-2.6773715 +-2.6406684 +-0.9146228 +0.4342273 +-0.7114210 +-0.3669197 +0.4174670 +-0.8260885 +-2.3764448 +-7.1840234 +1.1877024 +-1.6057795 +-4.3686690 +1.4605249 +-2.1264884 +-6.2929864 +-4.8894858 +-0.5574296 +-1.0216421 +-1.9586377 +-6.2148075 +-1.6614385 +24.3957348 +-39.6776810 +-2.0911608 +1.8859544 +-1.3599043 +-0.9130192 +0.3050982 +-4.5779586 +-1.4119097 +-0.7654656 +-1.1044782 +4.0632167 +-2.6237400 +-2.0420709 +-3.7594266 +-1.2186432 +-0.2643977 +-1.9482150 +-6.7541037 +-1.1818752 +-0.6203882 +-0.8154415 +-0.2223112 +-4.0429416 +0.5031227 +-1.5962254 +-3.1786087 +-1.0742506 +0.2984065 +-0.8231837 +-1.1610209 +-2.9677291 +1.0468228 +0.9534339 +2.5323205 +0.1142702 +-1.9939057 +-4.0658174 +-1.3732011 +-4.1682644 +-1.4020412 +0.1410922 +2.4531586 +4.9803133 +-3.1684282 +-1.9165299 +-0.3975691 +-1.7594639 +-4.9307485 +14.6342173 +-3.0456848 +3.5783575 +-0.0111122 +-6.9933147 +0.5689032 +-6.4964466 +6.4750161 +4.4376106 +-2.1438334 +18.0723267 +1.8592235 +-3.6031733 +0.7324682 +-2.0699854 +2.4445968 +-0.5725958 +-0.6030057 +-0.4589561 +-3.7780311 +-2.4716403 +-2.3446510 +1.3366772 +2.0939262 +-1.3022360 +-2.7312393 +-1.7008839 +0.1346927 +-0.3752348 +1.6440120 +-2.5233641 +-0.9458671 +-2.0542655 +2.9445329 +-7.9619236 +-0.2940697 +16.2003632 +2.4424491 +-4.2186947 +1.2720919 +0.4578101 +-1.5097537 +1.4182444 +1.5020555 +-3.1289802 +0.4123975 +1.0129025 +-23.5986366 +0.3568447 +-1.1673487 +-2.0744529 +1.8374456 +-1.7584324 +1.7709520 +0.5017477 +2.0413289 +-0.5522698 +1.8521795 +-1.9423710 +-0.1903598 +0.6308302 +-0.9246821 +0.4665731 +0.1506167 +0.3380330 +-1.1284693 +-1.3140094 +1.0002271 +-1.9564890 +-1.2702098 +1.7263757 +1.2678006 +-2.7667286 +-0.9083347 +-1.3368176 +0.3814090 +-0.3849128 +-1.0442913 +-1.1174949 +10.1289339 +0.5312411 +-1.0747980 +0.6600475 +2.0726306 +-1.3348234 +0.8934420 +-2.8502576 +-0.8571693 +-0.0996702 +2.4937515 +2.5402458 +-0.5498079 +-1.1916938 +-0.6239579 +0.3622140 +-0.5664198 +-2.5157537 +1.3446034 +-1.0419068 +0.0663392 +0.1390666 +-0.4359300 +-1.7058020 +-0.0814661 +-0.0225306 +-0.4410711 +0.1014194 +0.4044894 +-0.3900507 +-0.7040057 +-0.5301930 +1.5384743 +0.8243794 +2.2910841 +-1.8815206 +-0.8672292 +-2.1604769 +-0.9075359 +-0.7979128 +-1.1111922 +-0.4593178 +0.9182814 +3.3211045 +-1.5835415 +-0.2070307 +-1.4825314 +-1.0110415 +-0.7385106 +7.5800414 +-0.2681591 +1.9206574 +0.0821378 +-0.5091951 +-0.3266739 +0.1870801 +3.0468149 +0.2588091 +-1.1742359 +7.8170023 +0.8894492 +-1.6562825 +0.2374454 +0.0760553 +2.7369676 +-0.1613572 +-6.8249078 +-1.3472784 +-1.8241694 +-0.1911851 +-1.9343833 +-0.6106341 +0.2242335 +-0.8003085 +-1.6812485 +0.7780514 +-0.7208357 +-0.1942932 +3.5315871 +-1.9156892 +0.5692139 +0.9582776 +1.9097462 +-1.5255992 +-1.0809474 +7.4605503 +1.1822731 +0.5523522 +-1.1378362 +0.1102822 +-2.1598825 +0.1804088 +0.0493132 +-1.8825347 +-0.9749770 +0.7769330 +-5.0679445 +-0.1608751 +-1.7535938 +-4.0743728 +3.4438281 +-4.4218698 +3.7251697 +-0.0798889 +2.7821271 +-1.6413460 +-2.5505223 +-5.6763673 +-0.7343343 +-0.3036244 +-1.2143351 +0.3705936 +-0.0519245 +0.5730864 +-2.3296213 +-2.7047064 +-1.3787605 +-0.7972870 +-3.6162934 +2.0750101 +1.4022772 +-6.2321272 +-3.7274518 +-1.8755808 +-0.2438503 +-0.9142466 +-1.3728684 +-2.5144827 +22.0734177 +0.6285986 +-2.4930682 +0.3667101 +2.9424753 +-3.3105226 +-0.4804457 +-4.9971576 +-2.0733244 +-0.7515258 +4.6714516 +3.9289572 +-1.9861550 +-3.2796295 +-3.0241735 +-0.5727684 +-0.6459278 +-2.6675570 +-0.1588306 +0.0191989 +-0.3324273 +0.2426510 +-1.0321001 +-2.7636590 +0.5477145 +-0.2934653 +-2.0701864 +-0.5020176 +0.5730169 +-0.9346811 +-1.0118009 +-2.1012032 +2.9046185 +0.6575293 +4.5878191 +-0.8734097 +-1.4721351 +-4.3145924 +-2.1299624 +-1.9510159 +-2.2769213 +-0.5096144 +2.0939946 +6.8376245 +-5.5018673 +-1.3198292 +-0.9912522 +-1.8789159 +-2.3457398 +14.6089563 +-1.7699542 +3.0081079 +-0.0539683 +-2.5452061 +0.3099859 +-2.8307910 +6.6882305 +1.4635509 +-2.2167339 +17.0623970 +1.6291189 +-2.7709291 +0.3707233 +-0.7434129 +2.3963981 +1.0841151 +-2.8604677 +-9.7716322 +-2.9368908 +-1.3016334 +-3.0713961 +-0.0493166 +3.8481469 +-2.0476491 +-3.1131263 +-0.3078189 +-1.0226246 +-0.4173764 +7.8196139 +-2.5466027 +0.9586816 +0.8431481 +3.3895855 +-2.7554564 +0.8019648 +12.9301825 +1.0130137 +-0.9714563 +-0.6767427 +-0.2683657 +-1.8290359 +0.4372552 +1.1830803 +-3.6552119 +-3.2530849 +0.6348431 +-10.8887691 +0.7092096 +-1.8266739 +-6.0223079 +5.2177329 +-6.6876221 +5.7427335 +1.2545893 +4.0053620 +-2.3731425 +-2.6460767 +-6.9583607 +-0.8928674 +-0.1323932 +-1.9307222 +1.0955682 +0.2610485 +0.7483898 +-3.2377238 +-5.4159198 +-0.9670805 +-1.3161274 +-4.6277823 +3.5921879 +1.0287377 +-9.4110289 +-3.9350104 +-2.3609769 +1.0225648 +-1.8475842 +-3.7034042 +-3.1999488 +33.5464554 +0.9170006 +-3.5940993 +1.2692966 +4.1142244 +-4.6913757 +0.7515707 +-7.3398619 +-2.3925536 +-1.1238953 +6.8646574 +5.1095471 +-2.1448889 +-3.8556442 +-3.1361363 +-0.2593841 +-0.9783458 +-3.5368781 +-0.6503898 +-2.6236002 +-0.1639370 +-0.2816451 +-1.2257951 +-4.1962724 +0.3917407 +-0.4140644 +-2.8436792 +-0.9426362 +0.9547819 +-1.3834318 +-1.5682788 +-2.9319773 +3.7270601 +1.1629590 +6.1448793 +-2.9295459 +-3.0466542 +-6.6161571 +-2.9654469 +-4.2326407 +-3.3329594 +-0.7106833 +3.4808829 +9.5813742 +-9.7256813 +-2.9047666 +-1.3235875 +-2.4617476 +-4.0922804 +21.5465622 +-3.8390732 +5.4977636 +0.3297969 +-3.7563322 +0.8138046 +-4.4943891 +9.2407465 +4.3944278 +-3.0745218 +24.7099133 +2.4529052 +-4.6117067 +0.6779476 +-1.5489312 +2.5200462 +0.7764632 +-6.7823834 +-7.4045897 +-4.5226431 +-1.2887223 +-3.7497516 +-0.0894026 +5.8317208 +-3.6486695 +-5.0467062 +-0.1890792 +-1.0918810 +-0.4782114 +10.8333273 +-3.6668777 +1.1598907 +0.9612395 +5.4534349 +-4.2765493 +0.2242159 +17.0500717 +1.9713905 +-1.6484103 +-1.3126552 +0.1655382 +-3.0958164 +1.7763318 +1.6857744 +-5.1139917 +-3.5894053 +1.4414507 +-17.2143116 +-0.9017864 +-1.6201152 +-3.2692161 +1.3575261 +-0.1920284 +3.2464719 +0.2808149 +0.2216427 +0.5692895 +-1.1560122 +-3.7346337 +-0.3077983 +-0.2365488 +-1.3145837 +0.3368352 +0.7154453 +0.3805180 +-4.5314951 +0.8258320 +3.3668551 +-1.1199553 +-3.0567110 +-3.8680818 +-0.7332240 +-7.3085399 +-2.2856929 +-2.2019279 +-1.4706844 +-3.4443495 +1.7028332 +-0.1600893 +12.6447210 +2.3580613 +-4.6661272 +2.2676930 +3.0659838 +-1.2370836 +2.5496979 +-4.2608781 +-1.8292582 +-0.8875269 +0.8536959 +2.8131652 +-3.1235931 +-3.8367560 +-1.0482942 +-0.7152934 +-0.3848030 +-1.5914726 +-3.8650148 +-1.8337693 +-0.2444063 +-1.2261711 +-0.4370323 +-2.1151464 +-0.5996956 +-0.9645534 +-4.4676523 +-1.9806890 +2.7865086 +0.2001300 +-3.6419895 +1.9118816 +0.2395344 +0.6657058 +2.1943374 +-0.6983579 +-1.5219325 +-3.1090333 +-3.6956267 +-7.1927562 +-0.7034444 +3.2695477 +1.8517022 +6.0256195 +-0.0059853 +-1.0610803 +0.3586352 +-3.2722914 +-4.4552355 +0.4392941 +-4.2437015 +4.1489744 +0.3328559 +-6.3048820 +0.0065767 +0.3898177 +6.0212994 +7.6397128 +-2.9059465 +4.0341082 +0.8874348 +-3.2890215 +0.0862074 +-0.1296621 +5.4189801 +0.1693799 +-2.5938559 +8.4886293 +-1.9544643 +-2.0406282 +-2.2755055 +0.7169355 +0.5214518 +0.4922584 +-2.6332788 +-3.4473343 +-2.0680611 +-0.8654771 +6.5745635 +-1.9800237 +-1.4352609 +-0.7973779 +1.5959049 +-7.6097879 +0.6853243 +-0.6830990 +2.7604599 +-1.7860450 +-0.1176426 +-0.0444281 +-1.6471460 +0.3272111 +-0.0143487 +-4.3834023 +0.8434728 +4.3550124 +1.9847940 +-0.0301559 +-1.1105013 +-2.1740465 +2.2473364 +-2.3230886 +1.6116171 +1.0191277 +2.1858032 +-0.7610900 +1.3548417 +-1.8725455 +-0.2604277 +0.3134847 +-0.9273747 +0.6829292 +0.3042198 +0.2223092 +-1.1249230 +-1.8980469 +0.6585102 +-1.9486802 +-1.5040213 +1.7833644 +1.3318086 +-3.0012944 +-0.9873931 +-1.5353999 +-1.2818609 +-0.2065522 +-2.0931211 +-1.3198291 +9.6700401 +0.0652992 +-1.4926939 +0.7520096 +2.1621273 +-1.4933274 +0.0033328 +-2.9531050 +-0.7214618 +-0.0944015 +3.2416413 +3.3117816 +-0.1624477 +-1.9307534 +-0.8975982 +0.8774886 +-0.6598231 +-2.2713287 +1.1920513 +-2.1462233 +-0.0381160 +0.1160467 +-0.3698713 +-1.1830977 +-0.5920680 +-0.0007627 +-0.7060266 +-0.1382533 +0.7114922 +-0.6970885 +-0.6051533 +-0.5723922 +1.4063940 +0.4096655 +2.1200056 +-1.1337135 +-1.1466858 +-2.2711878 +-0.7770815 +-0.1243266 +-1.0606390 +-0.4166320 +0.3309608 +3.2122154 +1.3145840 +-0.3419897 +-1.2768385 +-1.1010892 +-0.0238777 +7.9363346 +-0.9561737 +1.8160589 +0.0188091 +0.6427969 +-0.2583207 +0.7266001 +2.8232718 +0.0832043 +-0.7982202 +7.1889281 +0.6698791 +-1.6441973 +0.2308051 +0.0854444 +2.4242842 +-0.4400316 +-3.6170151 +-2.5835712 +-1.6302719 +0.4234579 +-1.7679170 +-0.9169397 +1.1910591 +-0.9729047 +-1.5598968 +0.3789241 +-0.9953707 +-0.5581934 +5.1724734 +-1.5237249 +0.5222865 +0.7556193 +2.1059875 +-1.2173233 +-0.9928893 +6.7789903 +0.6954854 +0.8819806 +-0.8280597 +0.0405587 +-2.1340675 +0.1405750 +-0.3953889 +-1.6520756 +-1.0766044 +0.4329481 +-6.9530873 +-0.2763865 +-2.1197054 +-4.0084190 +3.8450906 +-5.6862192 +3.2095289 +1.2542381 +2.6632798 +-1.9643344 +-2.4872160 +-5.3327136 +-0.3832775 +-0.9492817 +-1.2741653 +0.5690649 +0.1032605 +0.4830005 +-2.3064048 +-2.9270988 +-1.9707841 +-0.8705898 +-4.1387310 +1.5934104 +1.5054095 +-6.8488898 +-3.0048187 +-2.1258700 +-0.0447285 +-0.6543657 +-3.6159780 +-2.6658552 +21.4136791 +-1.0266881 +-2.3581173 +0.0814749 +3.1418564 +-4.4420557 +-1.8869183 +-5.2212491 +-2.2414651 +-1.1144822 +5.1216407 +6.3922906 +-1.6304247 +-4.2475419 +-0.8852361 +0.3126113 +-1.5519601 +-2.9811726 +0.3144456 +-2.1666119 +-0.0498846 +-0.4364523 +-0.7043455 +-2.6944032 +-0.9668316 +-0.2708532 +-2.2853312 +-1.1389971 +0.6587978 +-0.8025851 +-0.9460083 +-1.6256828 +2.8384306 +-0.0745659 +4.4691133 +-2.6602135 +-1.9559665 +-4.7878466 +-2.2381954 +-0.7092181 +-2.2296267 +-1.0454395 +1.6551549 +6.2722521 +1.1214799 +-1.2816163 +-1.2982421 +-2.1123302 +-1.3623325 +15.1998034 +-3.2107925 +2.8501949 +0.1472590 +-0.8742445 +-0.0370932 +-1.6322598 +6.1515350 +-2.6228838 +-1.4809917 +15.6190720 +1.1678681 +-3.0871716 +0.1858717 +-1.9249119 +2.0091679 +-0.3209040 +-1.1485267 +-6.9442210 +-2.8235672 +-0.2231546 +-3.3736556 +-0.8605461 +4.5517073 +-1.9275328 +-2.6502900 +-0.2331884 +-0.8480403 +-1.0482727 +9.2044411 +-1.5438447 +0.9185312 +-0.5056545 +3.6040611 +-2.5705457 +0.0169119 +10.6551218 +0.1709887 +-0.6863876 +-0.6781741 +-0.3824085 +-2.2234309 +0.1050565 +1.0673320 +-3.5417712 +-3.3249259 +0.6529908 +-12.5364828 +-0.4198954 +-3.5335159 +-6.3690982 +6.2869644 +-8.9148388 +5.0576015 +3.2687747 +4.2130117 +-2.7992127 +-4.1678047 +-7.0915942 +-0.8302183 +-1.1934643 +-1.8931010 +0.7226108 +0.4815664 +0.4367872 +-4.0132170 +-6.0257592 +-1.5485518 +-1.1545843 +-5.3619719 +2.4333243 +1.3932858 +-9.0615377 +-4.2081409 +-3.2506828 +0.5047741 +-1.2761805 +-5.7874770 +-1.7694173 +25.8916702 +-1.4208940 +-3.2861331 +0.1569741 +4.4946117 +-5.9479537 +-0.9650458 +-6.8548932 +-2.1413481 +-1.3546996 +8.8989487 +8.1165943 +-1.7273548 +-5.4275475 +-0.7355215 +1.4265122 +-2.7591000 +-4.0958629 +-0.2996965 +-5.1589651 +-0.6342534 +-0.6161090 +-1.1996902 +-3.8093235 +-2.1053767 +0.1029979 +-3.4626932 +-1.7889273 +1.1860840 +-0.4494326 +-1.7436100 +-3.0863185 +4.2260132 +-0.3241459 +6.9562850 +-3.7217505 +-3.0903499 +-5.9589086 +-3.1565106 +-1.8297353 +-3.8301878 +-2.3131983 +3.2316325 +10.0875692 +1.2738400 +-3.3163221 +-0.9562829 +-2.2841623 +-2.3240170 +17.0084019 +-4.0867777 +5.1338682 +0.5185521 +-1.5105923 +0.4298180 +-0.3157085 +9.3118448 +10.7747736 +-2.0846038 +23.3320904 +2.1345046 +-4.5356579 +0.3238134 +-1.8658012 +1.8843522 +-0.8926332 +-1.4047688 +-4.7971311 +-4.5026078 +-0.5244908 +-4.1913033 +-1.1961131 +6.9995003 +-2.6491632 +-4.7822337 +0.0897967 +-0.5838154 +-1.9781744 +14.4591560 +-3.2602448 +1.5805311 +-2.0856440 +5.7071681 +-2.2907627 +0.3213345 +16.4175625 +1.1032274 +-0.3526444 +-1.0228660 +0.6929423 +-1.1372273 +1.1156197 +0.9642680 +-4.5714540 +-4.0602970 +1.7173626 +-16.5585938 +3.2656088 +-3.8498185 +-2.3104155 +4.7859974 +-3.3423340 +4.4667263 +2.4447587 +0.2477615 +-0.3677792 +-5.0742636 +0.0158094 +-1.5048320 +0.8598023 +-0.8964182 +1.6654490 +2.0539095 +1.7451941 +-0.8932014 +-1.8767134 +4.3863244 +-2.1117747 +-3.8031242 +-3.8839822 +-4.0659571 +-11.3614883 +2.5686471 +-0.0361730 +3.4063954 +-3.8876941 +-4.0735841 +-2.2284377 +0.8455558 +-0.4416839 +-2.5281603 +0.7767096 +-2.1682026 +-3.9505785 +-10.1411724 +-2.9158945 +7.6908588 +-2.4166279 +6.4307728 +-3.5276268 +0.0203865 +-0.6930975 +4.0779505 +0.4196512 +-2.0898724 +0.6015912 +-0.6330059 +-1.4648204 +1.3341219 +-1.1963502 +0.8267128 +-3.5634973 +-2.3869572 +-0.6633038 +-0.3018665 +-1.0317982 +2.2655895 +3.9542763 +-3.5814960 +-4.0716724 +0.1990568 +2.0510471 +3.3877895 +0.3101294 +-3.3294399 +-5.5220485 +-2.4371967 +-0.8323914 +-1.6360067 +-8.6038465 +1.5816797 +7.3374529 +-3.0320461 +-4.2602754 +1.6153204 +-3.5697896 +-1.4211367 +-0.0966152 +-0.5466265 +4.0376115 +-0.8705946 +-3.8063011 +-1.8946266 +-9.1464405 +5.1923008 +-1.7599108 +-1.3566109 +6.8664627 +2.4464362 +-2.6205771 +1.2551994 +0.5321683 +5.6960073 +-1.3288383 +-0.4976931 +0.6042699 +-5.2322669 +-1.7228233 +-7.2817388 +-0.7343253 +-2.7056706 +-0.4398942 +-2.2702129 +-4.5884547 +-0.7045004 +-1.8579621 +9.9253197 +-3.7858236 +-0.2760941 +-3.7086685 +3.0667887 +2.3321500 +-5.6181717 +7.8316112 +1.5029329 +-2.1045945 +1.7808406 +0.8412384 +-4.3725562 +-0.7761393 +2.6432467 +-4.7668533 +-2.9770103 +-1.6765563 +-8.9555655 +-0.3189664 +-1.2015355 +-2.0870306 +3.0305865 +-0.2858894 +1.7637628 +1.5420628 +2.3809869 +-1.1539710 +0.9593935 +-1.6124005 +-0.5149827 +0.0616969 +-1.0326121 +0.5049973 +0.5231124 +0.0705863 +-1.1582170 +-1.7772712 +0.5185572 +-1.6382413 +-1.9815675 +2.0151420 +0.9574904 +-3.2365346 +-0.7765511 +-1.8320558 +-2.1087265 +0.5074621 +-2.0275831 +-1.4938630 +9.1225872 +0.6893684 +-1.3718702 +0.6723334 +2.3986218 +-1.8779942 +-0.0624190 +-2.9125760 +-0.5953730 +-0.1954235 +4.2998567 +4.0562077 +-0.2855064 +-2.6411760 +-0.4550605 +1.3169099 +-1.1918261 +-1.8274962 +1.3675100 +-2.4686427 +-0.4113148 +0.4447149 +-0.0335940 +-1.0330632 +-1.2062610 +0.1703393 +-0.7282763 +-0.1258031 +0.6821736 +-0.6997668 +-0.3108647 +-0.9005106 +1.6717649 +0.4273723 +2.3975441 +-1.1948931 +-0.9708701 +-2.7262101 +-1.0289335 +0.2608403 +-1.1918931 +0.3858751 +0.4623794 +3.5024672 +0.6072889 +-0.7742913 +-1.5180519 +-1.1459956 +0.2389824 +7.2321439 +-1.4197918 +2.0670037 +-0.4417265 +1.1906006 +-0.8097373 +0.6151842 +2.6863430 +-0.7754018 +-0.4845433 +6.2213645 +0.3365189 +-3.0590181 +0.1431663 +-0.3055893 +1.9900099 +-1.2096280 +-3.5111165 +-3.7014582 +-1.6564950 +1.0665252 +-1.8720111 +-1.2161256 +1.1367397 +-0.8740917 +-1.7721082 +0.1053038 +-1.1289512 +-0.6714944 +6.0072360 +-1.5319310 +0.4765996 +0.9407056 +2.3228126 +-1.4045664 +-1.0199891 +5.8437200 +0.4403946 +1.1411660 +-0.4291285 +-0.1102940 +-1.9922240 +0.2502717 +-1.1496750 +-1.7099243 +-1.1797031 +0.1566733 +-7.8069715 +-1.0737160 +-2.0119793 +-4.1139956 +4.4330235 +-1.2758652 +3.1150429 +2.7287948 +2.5350025 +-2.5880568 +-3.9493546 +-4.2329831 +-0.9009022 +-1.1992402 +-1.3862801 +0.7898269 +-0.0065094 +0.1343703 +-2.8108764 +-2.4508607 +-1.7588925 +-0.9505473 +-4.5713916 +2.7234786 +1.2066004 +-6.5277948 +-1.6817131 +-2.5013561 +0.0846555 +0.2513826 +-4.6376886 +-2.3411672 +17.3964386 +0.1713744 +-1.9989991 +0.1480657 +3.8648252 +-5.0459437 +-0.8938407 +-5.8633790 +-2.0405378 +-1.3329630 +5.9853778 +6.6719122 +-1.1445464 +-5.0167899 +-1.2430466 +1.7764598 +-1.8408002 +-2.3094492 +0.8520623 +-3.4472344 +-0.1520644 +-0.1055683 +-0.1620715 +-2.2698007 +-1.6643866 +0.0329853 +-2.7071888 +-1.0964041 +0.5958533 +-0.7168954 +-0.4603156 +-1.7593189 +2.4416792 +0.0466532 +3.7231929 +3.2127678 +-2.1606827 +-5.4572344 +-2.6519573 +0.6136181 +-1.9818363 +-2.9261580 +1.5199196 +4.6160889 +-0.1820941 +-2.4462895 +-0.9014858 +-2.3945532 +-0.8333814 +11.2813244 +-3.7990577 +3.2450638 +-1.1155677 +0.1448388 +-0.7377979 +-1.5573632 +5.1283131 +-2.6279695 +-1.2337456 +13.3706913 +0.9386309 +-6.1976171 +-0.5858429 +-2.4867721 +2.2112949 +-1.6980158 +-1.8465912 +-4.1325960 +-3.1451156 +0.5698960 +-3.2836118 +-1.3480785 +3.6182775 +-2.3395159 +-2.9552298 +-1.8298386 +-1.6134202 +-1.1025958 +10.9122601 +-1.5436791 +0.4552293 +0.4213997 +3.4568853 +-2.6077478 +0.2533064 +9.6268673 +-0.4560174 +0.0695925 +-0.0637555 +-0.4627366 +-2.8228827 +0.1252968 +0.3548351 +-3.4941216 +-2.9886959 +0.6364447 +-7.6216340 +-0.5674004 +-3.3542547 +-5.9996214 +7.5804844 +-2.8071036 +4.4350810 +4.1115999 +4.0005174 +-3.3974664 +-5.0158420 +-6.0243044 +-1.7842238 +-1.0459830 +-1.9590684 +0.3104409 +0.1957868 +0.1225453 +-3.7655156 +-5.8028760 +-2.7651596 +-2.1519003 +-7.0952368 +2.1585016 +0.9309350 +-9.5660982 +-3.3485022 +-3.0183494 +-1.3247929 +0.1222625 +-8.3491764 +-4.0474257 +23.0825577 +-0.0663006 +-3.6429245 +-0.6810942 +4.9443831 +-8.1377096 +0.2599112 +-8.1166639 +-2.3219514 +-2.1941400 +10.7709532 +9.0823498 +-0.9698123 +-7.1476693 +-2.8335230 +2.4745226 +-2.6378739 +-3.8500841 +-0.3382741 +-6.1716156 +-0.2250018 +0.7586627 +0.1147060 +-3.6789951 +-3.0082464 +0.1378679 +-3.8680389 +-2.4874399 +1.1265100 +-1.2727864 +-0.6488822 +-2.1259987 +3.7364583 +0.9372647 +6.3302708 +5.7113161 +-3.6432555 +-7.3711743 +-3.5985081 +-2.0603659 +-3.7140708 +-3.4654891 +2.5355132 +9.0917072 +-0.9089743 +-5.1295137 +-2.5563779 +-2.4952981 +-1.3097888 +16.5665588 +-6.4801679 +4.8429575 +-2.2194757 +0.3003804 +-0.1059695 +-0.8236173 +7.8861737 +8.9410219 +-1.8507965 +20.7847519 +1.3983192 +-10.1457157 +-0.1639930 +-3.0054893 +1.3211143 +-3.8271832 +-2.5421133 +-3.0634646 +-5.0263062 +1.2937083 +-4.4959812 +-2.7500072 +4.2754436 +-3.6957834 +-4.8227520 +-2.5585852 +-2.1351395 +-1.6368395 +14.3870077 +-3.8125467 +0.7919833 +-0.5562091 +6.1527009 +-3.4117553 +0.1726025 +10.7109423 +-0.6975074 +0.2508960 +-0.5464997 +0.3108051 +-3.2664609 +0.2176043 +0.4415336 +-5.2056346 +-4.3102579 +1.1795805 +-14.1436195 +0.2899989 +-3.0334847 +-2.5674224 +4.2309661 +-1.2879308 +3.2823927 +3.3181267 +-0.1006003 +-3.6446445 +-3.0051475 +-2.3942449 +-3.0512831 +-2.1442561 +-2.9252975 +-3.5672584 +1.3318684 +0.7276833 +-0.4083655 +-12.1112700 +0.9166607 +0.6235031 +-4.9578943 +0.1914105 +0.7690096 +-4.3534384 +4.8584528 +-1.3262271 +0.0026790 +-0.1885049 +1.7111390 +0.1674289 +8.2368946 +-1.8626733 +3.1004882 +2.4444773 +-4.7654190 +-1.3305939 +2.0034826 +-8.3585148 +-6.9039540 +-1.8574725 +6.0912623 +4.7579083 +-1.3786042 +1.4323720 +4.0060072 +0.6900532 +-3.1772447 +1.3472577 +-3.0543044 +-2.6651535 +1.1067311 +0.6596080 +0.2862993 +-4.2474484 +-5.9837198 +-0.7265329 +-3.6535671 +5.3298788 +0.8048372 +1.4447294 +1.7569230 +-1.2974890 +0.3672627 +3.7609890 +0.6822836 +-0.4087760 +-3.3415730 +-5.4308701 +-1.9233966 +-2.7885635 +0.3221548 +-0.8895102 +0.7470366 +3.1860909 +0.9329355 +-3.1132154 +-4.5324264 +-2.4252055 +-0.9111179 +-4.4258709 +-4.1820955 +5.5033188 +-1.6176481 +2.5888021 +-0.5214716 +5.2906933 +-0.3711995 +4.5825529 +0.0859024 +11.8706741 +2.9346311 +-5.0253735 +-0.2317255 +-3.6686258 +-0.3982014 +-0.9827448 +5.1727743 +2.1438570 +-2.6851578 +3.6303160 +-3.0144157 +1.9284117 +7.2156425 +0.4288108 +-3.7274528 +2.4493611 +-0.8812824 +-2.2123106 +10.5192595 +-8.4528027 +-0.4607370 +-4.5987720 +3.4372759 +3.2118447 +1.1812760 +3.0807118 +0.6385959 +0.2742309 +1.1296746 +-4.5865607 +0.6991711 +-1.2245104 +-1.1476408 +0.2575733 +-3.1139483 +-0.1652721 +-4.9612818 +-0.0057384 +-0.7817957 +-1.9783796 +2.8801448 +-0.9610708 +1.5986570 +2.0195527 +2.1559095 +-1.3899006 +0.6879083 +-1.2493827 +-0.6314457 +0.1775072 +-1.0522112 +0.6031144 +0.6672581 +0.0381940 +-1.6315621 +-2.4866998 +-0.2703335 +-1.9152299 +-2.8275812 +1.5633500 +-0.3215937 +-2.5739930 +-1.2107388 +-2.1702063 +-3.5720308 +1.0625297 +-2.2388649 +-1.4058300 +8.9471693 +0.6676375 +-1.2717595 +0.2490340 +2.5755141 +-2.1315222 +-0.4330081 +-2.3450098 +-0.1318879 +-0.5080224 +3.8766279 +5.1129594 +-0.3023133 +-2.7214506 +-0.7785212 +1.6162055 +-1.2032411 +-1.5475320 +1.1961092 +-2.5619431 +-0.0204413 +0.4562539 +0.3725534 +-0.4325384 +-1.6828321 +0.4046833 +-0.9992977 +-0.5702732 +0.3898455 +-0.4431469 +0.2332244 +-1.1444504 +1.3900063 +0.7065439 +1.8532790 +-0.4483877 +-0.2931247 +-3.3868229 +-1.1171242 +0.6476770 +-1.1478684 +-0.2833024 +0.9897872 +2.5820019 +0.1534739 +-1.3628528 +-1.3319290 +-1.3409957 +0.5578369 +6.7553506 +-1.8020194 +1.9329182 +-0.4759529 +1.5543767 +-0.7265103 +1.3243015 +2.2671933 +-3.1888824 +-0.3933637 +6.6819310 +-0.0308897 +-1.1782404 +-0.4711830 +-1.2323706 +1.6294608 +-1.4364414 +-2.0411274 +-4.5569887 +-1.4082191 +1.6663637 +-1.6023821 +-1.3296721 +1.7028962 +-0.4967428 +-1.9853680 +0.2739904 +-1.0105639 +-1.1251305 +7.7785301 +-1.5065707 +0.0625428 +1.3370063 +2.0075717 +-1.0035866 +-1.2005057 +5.8756661 +-0.1799227 +1.1869922 +-0.2044826 +-0.1285797 +-1.1127257 +0.2319044 +-1.7809244 +-1.9320285 +-1.1541566 +0.2263358 +-6.4684954 +-0.7370279 +-1.5418319 +-3.6119845 +5.2435489 +-2.4346642 +1.7659485 +1.8561434 +1.8442055 +-2.5941913 +-4.3194375 +-3.2973537 +-2.1824782 +-1.3009775 +-1.6599915 +0.2325036 +0.6171387 +0.2396840 +-3.0853169 +-3.8491294 +-3.7856019 +-1.6678377 +-6.8859859 +2.3639517 +-1.6568372 +-6.5086775 +-2.1571457 +-2.4042330 +0.0463833 +0.8240029 +-4.3348546 +-3.7633634 +16.5776291 +-0.4443603 +-2.5643387 +-0.8293355 +1.6963414 +-6.6348472 +-2.5594087 +-5.2470164 +-0.3699900 +-1.8357505 +7.6087680 +7.6108875 +-1.4796287 +-6.0590754 +-0.0471953 +2.3978798 +-3.3104444 +-0.4208524 +0.7775790 +-4.0858579 +0.5044460 +-0.7781267 +0.3402738 +-0.9324952 +-2.2163651 +0.0277479 +-3.2357686 +-0.4507988 +0.1477771 +-1.6884327 +0.1603859 +-2.2791157 +2.0367072 +0.9660751 +3.6489558 +-11.3971949 +-2.1022913 +-6.5203667 +-2.9705396 +1.2001141 +-4.5363612 +-1.4759688 +1.3431116 +5.3235002 +-0.7864610 +-2.7434673 +-1.1296316 +-2.3278434 +0.2569984 +11.1662493 +-3.8537133 +1.5872560 +-1.9418207 +1.4693288 +-1.7704043 +-0.1266812 +3.5911460 +10.0739241 +-1.0565983 +10.1327591 +-0.0065165 +-1.8580968 +-0.2108265 +-7.4671078 +3.4014506 +-1.8935237 +1.8374546 +-5.9424539 +-2.6321678 +2.4432077 +-3.5210986 +-2.2331583 +5.9486198 +-2.7198367 +-2.8292930 +-1.6713918 +-1.7491750 +-1.3235344 +13.9732838 +-2.2884014 +-0.3451310 +1.9443045 +3.6918781 +-0.4630643 +-0.1503979 +8.5619888 +-2.2689645 +0.2999951 +-0.2632105 +0.4791972 +-3.2442582 +0.3630761 +-0.6741014 +-4.3620219 +-2.6587110 +0.0459251 +-3.2296605 +-5.0676546 +-1.8874445 +-5.4286137 +8.6625328 +-4.1303935 +3.3761432 +3.9544408 +2.8828280 +-3.9158416 +-6.4649472 +-6.6412745 +0.3525147 +-2.5165336 +-2.9646556 +1.7823644 +-0.4802416 +0.1209774 +-5.8172636 +-5.7871051 +-6.5589404 +-1.0984523 +-8.8098164 +2.2918777 +-4.1907778 +-8.2576923 +-4.6481705 +-6.6132097 +-0.8557785 +1.6062579 +-12.6584826 +-4.0016632 +14.0384483 +-2.9940407 +-5.1366310 +-0.8101269 +5.0579529 +-9.6149368 +-2.7814276 +-9.6602917 +-2.3232644 +-2.9614217 +12.2533531 +8.3707991 +-2.8910277 +-9.5990229 +-2.0397458 +3.5589943 +-6.2347379 +-0.2963892 +-0.3040680 +-5.5487947 +0.8284557 +-2.8302212 +0.6347228 +-3.7105069 +-4.2787724 +-0.2681105 +-4.6654863 +-1.3719198 +-0.0709761 +-2.2006774 +-0.6294606 +-3.4606791 +3.2098825 +0.7484924 +5.5796161 +-12.6324854 +-2.7590413 +-7.7543945 +-5.3077321 +6.6518106 +-4.2000551 +-6.3727002 +2.9179506 +8.6291599 +-1.0592722 +-4.6957555 +-2.0819249 +-3.1357563 +0.2191800 +11.4875402 +-7.5096049 +4.6687312 +-3.5987599 +1.3539579 +-4.7218690 +-0.5702111 +5.1060290 +0.4571207 +-1.6527787 +20.8427296 +0.7212995 +-3.9116261 +-0.3913404 +-9.3485355 +2.7965336 +-4.6907444 +3.1562631 +-8.7052641 +-5.3866472 +1.4561981 +-5.5392966 +-3.0387557 +6.1550226 +-1.7866868 +-3.9386134 +-4.1346588 +-1.6330096 +-2.0620203 +16.1956444 +-5.0153627 +-0.1392460 +-0.1529435 +6.4170146 +-3.0210698 +0.1354028 +10.4485722 +-3.7265859 +2.1527359 +-0.7554051 +0.1655481 +-3.1586623 +0.4775087 +-3.3850970 +-5.0652933 +-3.7277572 +0.7178156 +-18.3866444 +3.4079340 +7.7118039 +-1.5964484 +1.6368269 +-0.9136374 +1.2410663 +-2.8758528 +-3.1300609 +-9.5763884 +-2.1849070 +-1.1039536 +4.3035645 +0.1003124 +-1.7507485 +1.0826985 +3.9084356 +2.6077113 +4.1403875 +0.4505263 +0.7250051 +5.0909033 +-2.1398714 +-3.1516221 +0.4859112 +-2.7329092 +3.7113962 +0.3548640 +0.2740543 +-1.3964221 +-0.6771075 +-5.9052081 +0.2139346 +-2.2462311 +-1.7039521 +3.9822676 +-1.3710320 +1.5588593 +-0.0950718 +-1.3189927 +-2.2804058 +0.2585067 +7.9970198 +0.5602651 +-2.5255158 +-0.8962069 +-0.8565187 +2.9324796 +-1.6516545 +4.5927057 +1.8696967 +-2.3496597 +5.0067420 +-1.8119229 +-4.0472217 +2.7195702 +-3.8652947 +-3.5374939 +-6.4515343 +2.2566617 +-0.6682488 +1.5007855 +0.0341650 +2.7015939 +1.1722749 +-1.4284947 +-2.0108056 +0.0920673 +-5.0530286 +-0.5735354 +-0.8141950 +-0.9618810 +1.3443907 +1.2024869 +1.8004357 +-0.3485385 +1.0231365 +-5.6714673 +-0.0994388 +-0.3076048 +-4.4789019 +2.2808242 +1.1435140 +-2.9323182 +-4.0164304 +-6.4901867 +0.7927988 +1.6626335 +-0.6842564 +1.6278615 +1.9653955 +3.9710538 +3.7702496 +-2.3358183 +1.0487871 +2.8633163 +8.0984125 +5.9495182 +3.3469484 +0.9070965 +1.8625382 +-2.8941414 +-2.6739395 +-0.0908832 +0.7952811 +4.7833977 +-5.1150403 +2.4751790 +-1.6197016 +-2.0286069 +4.2426877 +-4.3182063 +0.7632951 +-3.8946598 +0.9496059 +-1.9107286 +-1.3594341 +0.0197418 +2.6820574 +-1.8983330 +-0.8283803 +-1.4357874 +-3.4649003 +-4.0819416 +-0.7012013 +0.8780485 +-2.3920565 +-0.5244139 +0.5486791 +-0.3986369 +-1.2180368 +-1.4621316 +3.3845186 +-1.0743929 +1.2942127 +2.5948052 +1.9535439 +-1.5307052 +0.6080959 +-0.7881610 +-0.5192321 +0.2927283 +-0.9717040 +0.5792367 +0.5649887 +0.4846095 +-1.2780899 +-2.8246970 +0.0311460 +-1.5854313 +-2.7451556 +1.6558533 +-0.4150248 +-2.3121755 +-0.5554506 +-1.8533442 +-5.3597121 +1.4463972 +-3.1062758 +-0.9803216 +8.2309856 +0.4230634 +-1.1601752 +0.5290968 +2.6270134 +-1.8297710 +0.8782323 +-2.6801145 +-1.1657735 +-0.7906092 +4.8640103 +5.1087165 +-0.6199027 +-3.6425619 +0.1225791 +2.1048326 +-1.4595609 +-0.0246305 +1.3566828 +-3.0876076 +0.1192216 +0.4440975 +0.5316312 +-0.1578939 +-1.9577210 +0.8394854 +-0.7020980 +-0.6806440 +0.0497778 +-0.4361419 +0.2429671 +-0.8171217 +1.3299595 +1.4061245 +1.6544504 +0.2673452 +-0.6011989 +-3.2653775 +-1.4659750 +1.5342357 +-1.1462768 +0.0023846 +0.5697848 +1.8848981 +-0.1038664 +-1.1317582 +-1.1823850 +-1.4630189 +1.0280552 +6.2210307 +-1.5844457 +1.7085028 +-0.4003772 +2.3372583 +-1.3140945 +1.6443915 +2.1198840 +-9.5165167 +0.0371626 +6.1132841 +-0.1137821 +-1.5271853 +-0.7903438 +-0.2399897 +1.6483126 +-2.0705972 +-0.1151422 +-5.0950890 +-1.2375134 +2.0638578 +-2.0907295 +-1.6537681 +3.2044969 +-0.4342676 +-1.9148418 +-0.8931174 +-1.3239063 +-1.4249717 +8.4515438 +-1.4069537 +0.1066109 +0.7261916 +2.2557297 +0.2673610 +-1.2890041 +5.1465068 +-0.4372946 +1.9857007 +0.3177801 +-0.3256789 +-0.9089587 +0.3303387 +-1.8391122 +-1.5935955 +-0.8544984 +-0.0020284 +-8.3699846 +-2.2766614 +-1.7329335 +-4.9355187 +4.8943667 +-2.7702463 +1.3306986 +5.0035830 +-0.4248218 +-3.9665487 +-4.4875050 +-1.2407041 +-1.3391584 +-1.3620000 +-1.9358202 +1.3433801 +0.8175725 +-1.0913699 +-3.8370564 +0.4594349 +-5.5569806 +-1.5036842 +-5.6903014 +0.8293371 +-1.8068625 +-7.3374443 +-2.3960156 +-5.0293250 +-0.0343967 +0.9021611 +-3.0084865 +-2.6698129 +13.5377836 +-1.8215809 +-3.9300342 +-3.3021135 +1.4150563 +-8.7025509 +-3.1976373 +-5.1882710 +-2.2404854 +-2.1737385 +7.8827128 +7.0018725 +-1.8700602 +-10.1402330 +0.6673827 +3.9397848 +-2.4443760 +0.3368603 +-0.9524596 +-8.3478451 +0.7560172 +-5.3956800 +-0.1587652 +0.4331663 +-4.3383303 +0.5354034 +-4.0036936 +0.0661702 +-0.5803206 +-0.9800503 +-0.7864363 +-3.1805105 +1.6976007 +-2.5418718 +1.8340588 +-6.1295552 +-1.9958837 +-7.1088109 +-3.9513915 +-0.1160142 +-5.2400231 +-1.0408983 +0.4673231 +1.7658889 +-0.8865833 +-4.3628178 +-3.4383962 +-3.4959188 +0.0031621 +14.5345526 +-5.6523604 +0.5556644 +0.0130838 +1.4361584 +-2.8198929 +0.8680922 +4.8593512 +1.4020041 +0.2770410 +13.5378294 +-1.1826422 +-3.6016505 +-1.6046596 +-4.7729845 +-4.9733267 +-2.0380921 +-0.2394130 +-4.2136235 +-3.1076405 +0.5382431 +-2.8987951 +-3.5180035 +1.6485951 +-2.6606538 +-4.0509748 +-3.1943536 +-2.3716774 +-1.3482442 +17.4643841 +-1.0293176 +-1.1125331 +0.7876008 +2.8507900 +-2.5202549 +-1.6939771 +7.5618577 +-2.9072433 +-0.3355076 +0.9064534 +-1.4584502 +-2.5726633 +0.6284050 +-2.7691844 +-3.3187573 +-3.0040858 +1.1947541 +-6.6331701 +-2.0597360 +-2.2023528 +-6.6995668 +9.2033281 +-4.2969456 +2.7393799 +7.3582549 +0.6985345 +-5.2048078 +-6.3923383 +-2.9201961 +-1.8957496 +-1.9246280 +-2.8076229 +2.0744247 +1.1294085 +-1.1641411 +-4.6583939 +-3.2309985 +-6.4758601 +-1.4581329 +-9.1518269 +0.2983368 +-2.7033100 +-10.2982063 +-3.7560852 +-6.0307550 +-0.7115367 +1.5566998 +-11.9852924 +-3.7393038 +21.9242916 +-2.0155807 +-6.3332777 +-2.7840555 +3.0477562 +-10.7073755 +-2.7249191 +-7.5437155 +-2.2466898 +-3.3794713 +14.3882418 +9.9571400 +-2.4246380 +-15.6527510 +-0.1905557 +5.8004756 +-4.4526310 +-0.0328609 +-1.0105356 +-11.0724754 +0.5798471 +-5.3499551 +0.4938264 +0.6039385 +-6.3571215 +1.0905032 +-5.3090277 +-0.7807353 +-0.1216313 +-1.8168272 +-0.8140053 +-4.1406474 +2.3851030 +-0.9196357 +3.1796296 +-5.9771433 +-3.3103552 +-9.2849836 +-4.9948134 +0.6966526 +-6.9996099 +-2.1690698 +0.4857951 +4.7262926 +-1.7931559 +-6.4332409 +-4.0352736 +-3.8187203 +0.4037870 +19.6662712 +-9.4612303 +2.7418776 +-1.3130615 +3.0496194 +-2.6831717 +2.4359055 +6.3863792 +7.6406569 +0.5261948 +19.0449791 +-1.2397666 +-5.2690225 +-1.1897606 +-5.9834275 +-5.7018890 +-4.3105388 +-0.0642166 +-16.6466942 +-4.6738052 +2.3657877 +-4.0392632 +-4.9401364 +3.6914656 +-3.6334076 +-5.3937306 +-4.0917501 +-2.6177223 +-2.6040471 +26.5451469 +-2.9450986 +-1.3300294 +-0.1414628 +6.1116805 +-2.4494815 +-1.2929642 +11.5087509 +-3.7327647 +0.8156253 +0.8986682 +-1.1166924 +-4.4782367 +1.1239355 +-4.5173821 +-4.4702630 +-4.2716703 +1.1189153 +-15.6427250 +-0.4228987 +-0.2888963 +-3.7499466 +5.9484463 +-2.8897295 +1.8923004 +4.5299702 +0.9785928 +-2.0871139 +-5.7689548 +-1.0935861 +-2.2887065 +-1.5296630 +-2.2300324 +1.6070793 +0.1285913 +-0.9007547 +-3.6943398 +-10.8095818 +-5.3704433 +-1.6403170 +-9.8099108 +-13.8829489 +-2.4307647 +-4.8835015 +-3.6586998 +-1.8679518 +-1.8234215 +-1.8547076 +-12.8194447 +-1.7030392 +17.8127327 +-0.4419957 +-4.4914961 +1.2028797 +-4.2532296 +-3.8681784 +-3.2545917 +-5.6028318 +-1.6586652 +-2.7591236 +8.8972092 +6.9999270 +-1.5926259 +-16.9381428 +-2.7891526 +3.2136114 +-4.0374842 +-0.2238972 +-1.7185606 +-6.6008554 +0.0089517 +-0.8997922 +1.3665463 +-0.6428285 +-4.2709289 +0.0520188 +-4.1199274 +-2.5856886 +0.7003202 +-1.1860894 +0.4508312 +-3.8432057 +0.3856676 +0.3616045 +2.0553868 +3.9980803 +-3.0305808 +-4.7981367 +-2.6841607 +2.6116729 +-3.2065299 +-2.8961174 +-1.3174824 +4.5605516 +-2.6461926 +-3.9928265 +-0.8990294 +-3.4104738 +0.7813778 +6.1555281 +-7.3396888 +3.0953019 +-2.1176093 +2.2628074 +-0.6513099 +3.6340177 +1.0188642 +4.7131243 +0.3576383 +10.5146046 +0.0361383 +-3.2090840 +-0.2514152 +-5.2997923 +-1.3476058 +-10.2556782 +0.3911209 +-12.9351692 +-3.9312966 +4.3168354 +-1.6542041 +-0.4334123 +4.3744607 +-1.2055986 +-1.8654956 +-1.6818969 +-2.0186582 +-3.1025150 +12.8527832 +-2.8143010 +-2.2818027 +-2.3025947 +4.6086178 +0.6512067 +0.0860390 +7.3470430 +-2.6932819 +0.7130824 +1.4870338 +1.1869210 +-4.2211666 +0.7709039 +-6.3275332 +-2.3100433 +0.8439249 +-0.8354936 +12.7357244 +-0.4644617 +-0.5692213 +-1.5253638 +3.5883849 +-0.9879371 +0.8621552 +3.4009478 +1.8432642 +-1.9062464 +0.7055243 +-0.3099004 +-0.8577902 +0.2805585 +-1.3477352 +0.4899540 +0.6554133 +0.2416575 +-1.0022602 +-2.8713882 +0.3600103 +-1.8339890 +-2.9319923 +1.2778002 +-0.4897657 +-2.6924961 +-0.0622184 +-1.8807964 +-6.2141171 +1.5439479 +-3.0221605 +-1.7891400 +6.9751177 +-0.1501322 +-1.4135674 +0.1166398 +2.2811179 +-2.2577524 +0.7355219 +-3.3574040 +-1.8499143 +-0.9438396 +5.1899652 +5.8282652 +-0.4682174 +-4.6119485 +0.1893639 +2.5870295 +-1.4281129 +-0.1726893 +0.8350344 +-4.2075973 +-0.0551484 +0.6696492 +0.7519488 +0.4795762 +-2.3142407 +0.3793457 +-1.5047946 +-0.5002041 +-0.0576606 +-0.7644807 +0.8618680 +-0.6511126 +1.0364366 +1.7672895 +1.3285941 +0.2728908 +-0.6572354 +-4.5651565 +-1.2650777 +1.7750549 +-1.0257294 +0.3233609 +0.0859277 +1.1764067 +-0.1612825 +-2.0444927 +-2.9281678 +-1.8366809 +1.3952930 +5.4519305 +-2.4223840 +1.8135844 +-0.4747945 +2.7984204 +-0.8590464 +0.9244695 +1.5978580 +-16.0983181 +0.0726564 +4.7115884 +-0.5346873 +-1.3686991 +-0.5636112 +-0.0702000 +1.2434214 +-2.2688785 +-0.9924254 +-5.1889596 +-1.6803056 +2.5300584 +-1.2748580 +-1.5914367 +1.5039235 +-0.7781647 +-1.9368508 +1.3484564 +-1.4526383 +-1.7182066 +10.0688219 +-0.9812121 +-0.0645758 +-0.0666430 +2.2133830 +0.2148946 +-1.0070850 +4.5239449 +-0.7333699 +2.4154978 +0.0609130 +-0.2623657 +-1.7227718 +0.3020977 +-3.1808929 +-1.4216458 +-1.0137923 +-0.1215981 +-7.9836407 +-3.3617091 +-1.6053551 +-4.8769531 +4.4176059 +-3.4118011 +0.3360356 +4.3860917 +-1.8086840 +-4.6727242 +-5.3346486 +0.1155576 +-1.8737464 +-2.2923474 +-1.6429851 +0.6382215 +0.5836230 +-1.2744727 +-3.7118826 +-0.6220352 +-6.6411176 +-1.7634189 +-5.9847569 +-3.1765034 +-2.5363145 +-7.2066255 +-1.4735388 +-5.8017402 +-0.3107986 +-0.3711565 +-6.0648575 +-3.3166482 +14.2137270 +-3.7863326 +-5.2888813 +-3.8403041 +-1.0693543 +-8.8370914 +-3.1779845 +-5.1874266 +-3.9619613 +-3.3718932 +7.2591081 +8.5072966 +-1.7084892 +-9.2039585 +1.5725771 +3.0825145 +-4.0189371 +-0.6759858 +-2.5761132 +-9.1323824 +0.4005845 +-4.5209937 +0.5640508 +-0.3067599 +-5.1114750 +0.0538527 +-5.0757976 +-0.9373584 +-0.9301056 +-1.6994046 +-0.2813425 +-1.8292859 +-0.0456211 +-2.0528171 +-0.2339831 +-9.3248243 +-2.9022443 +-9.0027514 +-4.2371607 +1.4899485 +-2.9908841 +-1.8221815 +0.5911616 +-1.9647787 +0.0817592 +-6.1795678 +-1.6934913 +-4.9593692 +0.5952925 +13.6761847 +-7.5637021 +-0.2197774 +-0.6402204 +2.0928946 +-3.8311937 +0.8349150 +4.9166775 +-1.1158810 +0.5211582 +13.6385622 +-1.5308462 +-3.7281215 +-1.9720659 +-3.3557236 +-6.1468239 +-5.2132001 +-3.0798516 +-3.4924762 +-4.1753573 +1.2773112 +-2.9559813 +-4.1629596 +-5.4525800 +-2.9002230 +-3.5965180 +-0.5381134 +-2.8026550 +-1.7217722 +18.8159618 +-1.1186377 +-1.9422529 +0.5764358 +0.8924987 +-4.5654778 +-1.1188161 +8.8025017 +-4.1600590 +-0.3981874 +-0.1906841 +-1.8049244 +-3.3310857 +0.5120080 +-3.4290323 +-2.2042820 +-2.9061551 +0.3426093 +-3.8684464 +-3.8826101 +-0.8914076 +-6.0929456 +9.0193863 +-4.2337317 +2.1588669 +8.1291666 +-1.5068958 +-5.8337493 +-8.2863045 +-2.9247441 +-2.6402450 +-5.0407939 +-3.1236651 +1.6597512 +0.4638813 +-1.3288635 +-5.4484315 +-5.1305032 +-7.6330948 +-2.2770679 +-8.9669380 +-3.6661689 +-4.3172817 +-9.9855518 +-4.7828946 +-6.1664653 +0.1535324 +-0.8027661 +-6.5202065 +-4.8359361 +15.5464830 +-3.9767342 +-8.6558428 +-1.8697926 +-2.4175370 +-10.7356892 +-1.7788738 +-7.4985013 +-3.2287760 +-4.7650170 +13.6520872 +8.9269361 +-3.0760908 +-12.1792393 +-2.7556732 +6.1116047 +-7.3524051 +-0.0451721 +-3.3908863 +-16.7100925 +-0.3600423 +-5.6449184 +1.5212636 +-0.1867257 +-8.3361502 +0.2992773 +-5.3568854 +-2.0445004 +-1.0811533 +-2.8353307 +-0.5818922 +-2.9819188 +0.8068091 +-1.8826952 +1.4824482 +-4.0996265 +-4.7184596 +-12.6431808 +-6.4388719 +1.7116889 +-7.2778540 +-4.3723650 +0.7916590 +3.1766047 +0.3428885 +-7.5950317 +-1.7590504 +-6.0861449 +2.5126832 +10.7156410 +-11.3347073 +3.5890656 +-2.2397714 +4.9574738 +-5.2107368 +5.1461368 +3.3687639 +-6.6350012 +0.2462959 +14.3943357 +-1.1155633 +-4.7180033 +-0.7072755 +-3.0972319 +-6.4017177 +-7.4304290 +-5.5379257 +-7.8242817 +-6.9342189 +4.2140036 +-4.6230283 +-4.1224909 +-5.9461336 +-4.8191428 +-4.4744563 +0.5424284 +-2.8404064 +-3.3967290 +24.8688469 +-0.9123011 +-1.3158242 +-0.3683046 +5.1140738 +0.1021842 +-2.0242622 +0.1109290 +-5.7776461 +1.4264491 +-0.3939926 +-1.7846812 +-4.4280024 +0.7323539 +-4.7289066 +-3.7826920 +-2.5449014 +0.4301001 +-9.7572613 +0.7648978 +-2.1432295 +-0.8253309 +1.8087167 +-1.3589799 +0.2708256 +4.4360847 +1.0596759 +-5.5844970 +-0.2623924 +-3.6017551 +-0.3247374 +-0.7385067 +-0.3712046 +3.8521926 +0.5223816 +1.8378763 +5.7170281 +1.0143940 +5.9506974 +0.2008295 +-6.3159442 +-1.5964606 +2.9796031 +-1.3435374 +2.4904563 +0.4903227 +1.4405419 +5.8882813 +0.5082260 +-1.0262836 +0.9216844 +0.0718917 +-0.0237154 +0.8760444 +0.3964721 +-1.7898145 +0.8819988 +-6.9027076 +-0.9178994 +-2.7127190 +2.0545263 +0.4082837 +-1.5779667 +0.5625481 +0.1907545 +6.1399283 +-0.3556364 +-0.6152388 +-5.1548576 +-3.0663083 +-0.4371068 +1.4902629 +3.6134913 +0.0668900 +-2.8146362 +4.6717343 +-5.3180175 +2.6566720 +2.8450570 +2.5674274 +-1.8912090 +1.3317124 +0.5606355 +1.0288155 +-2.4882326 +-0.0528400 +-2.5697398 +-2.3377218 +3.7269061 +-0.8906230 +-1.5374959 +-0.0824660 +0.4829905 +-2.8625851 +-0.9045956 +-7.8581533 +-0.0760670 +-1.1363355 +-0.7168827 +0.1196259 +-2.7251346 +-0.6158944 +-4.1502562 +2.9177320 +0.8045833 +-4.4852509 +3.9330542 +-0.0271116 +-3.6097164 +2.2541125 +-0.9945354 +0.8390892 +-1.0419927 +-0.5681860 +0.3448354 +-2.2197349 +0.2927534 +-0.2194719 +-1.9338038 +4.3902178 +-0.6934013 +-4.8192592 +1.7690037 +0.6178483 +-3.4407971 +-4.4317198 +3.2937851 +-3.3063352 +1.2268890 +-1.7720202 +-3.4576743 +-1.9763600 +2.5374510 +-2.0232923 +1.7779101 +0.3620627 +-0.2918369 +-0.7959973 +1.2130337 +-0.9171096 +-0.5488802 +3.7078779 +-1.4296961 +0.3634878 +-0.5214145 +1.5188954 +0.9464998 +-0.2450925 +-0.6334121 +-1.2990818 +3.5445907 +-0.9222157 +0.1633316 +3.8452606 +1.4181124 +-1.8752248 +0.0629237 +-0.0491596 +-0.5585192 +-0.7880797 +-1.5001173 +1.1442919 +0.7750312 +0.2561884 +-1.2315593 +-2.9326177 +-0.0166407 +-2.0781772 +-3.1777256 +1.0427936 +-0.2387619 +-2.4074483 +-0.2877462 +-2.2091670 +-7.7864423 +1.9329756 +-3.5985022 +-1.5397915 +8.1535530 +1.4458928 +-0.7131612 +0.0865907 +2.4253740 +-2.6193368 +0.9005257 +-3.3164771 +-1.4058858 +-1.0627111 +5.4638557 +6.1654844 +-0.4446243 +-4.9597654 +0.1370903 +2.9559906 +-2.8134549 +0.0260612 +1.0590228 +-5.2936039 +-0.0178613 +0.8924206 +1.0484552 +0.4424891 +-2.7551055 +0.4874156 +-1.4899286 +-0.7827733 +-0.0319042 +-0.7542976 +0.9612242 +-0.5711818 +1.0336033 +1.7413492 +0.9873876 +0.2035193 +-1.0045952 +-4.3384771 +-1.5734473 +2.0260365 +-0.8184867 +0.3874270 +0.1942854 +0.4158397 +-0.2659539 +-2.3390939 +-0.8035588 +-2.1805964 +2.0529742 +5.6413112 +-2.6508968 +1.8033599 +-0.6492109 +3.5641737 +-1.7162666 +1.3061831 +1.1535403 +-23.0743389 +0.1893698 +4.7460527 +-0.5546890 +-1.4078660 +-0.8121939 +0.4752738 +1.1297193 +-3.0861247 +-0.3815474 +-4.7296147 +-1.7248578 +3.1054263 +-1.3896816 +-1.8505136 +1.4987265 +-0.6307309 +-1.8195796 +0.9716937 +-1.8395813 +-2.0249331 +11.0662985 +-0.9370441 +-0.1924743 +-0.0205527 +1.8405734 +-0.0385816 +-1.1290796 +3.7434113 +-1.1893092 +2.4644158 +-0.2587872 +-0.0997021 +-1.9833272 +0.0518652 +-3.3888073 +-1.1922362 +-0.9162145 +-0.3031140 +-7.4289961 +-1.4791478 +-0.4574676 +-5.1323581 +3.8479030 +-2.9886706 +-0.9156907 +5.3174062 +-1.3624343 +-5.0180020 +-6.5724602 +0.2163609 +-2.8813694 +-2.7215095 +-1.0108430 +0.2660186 +0.5084150 +-1.5850625 +-3.6701474 +-2.0469239 +-7.0325031 +-1.4841894 +-5.5068398 +-2.7225249 +-2.4685938 +-6.8624825 +0.7287626 +-6.5926790 +-0.7695844 +-0.1322904 +-5.5291424 +-4.1732340 +18.1786060 +-0.6535708 +-5.6770315 +-4.9919348 +-1.6875550 +-9.3458385 +-3.1912911 +-5.4414392 +-3.8212910 +-3.5759664 +6.9800749 +11.1198463 +-2.2392745 +-10.0888271 +2.0295951 +3.7545934 +-4.6247363 +-0.4081891 +-2.5495179 +-8.7021790 +0.1590846 +-5.2260714 +0.2354160 +0.8869839 +-6.0544205 +0.1127788 +-5.5074162 +-2.0515921 +-1.4876947 +-2.0941663 +-0.5988005 +-2.7037833 +-0.3906031 +-1.5963296 +-1.0494133 +-9.0805836 +-3.0370545 +-10.0065718 +-4.8623061 +-1.9709464 +-3.0537686 +-2.2760212 +0.6741389 +-3.3209901 +-1.2033764 +-7.1597962 +-0.1611334 +-5.5352635 +0.9549858 +14.7636499 +-7.6985898 +-1.5995382 +-0.9975221 +2.7379398 +-3.2824326 +3.2000084 +6.6272354 +-0.8435292 +1.0280671 +13.6012077 +-2.5101795 +-4.5514097 +-3.4150069 +-1.8998840 +-7.3475146 +-6.1354356 +-2.3321333 +-2.9718649 +-4.5205908 +1.8811537 +-1.9810227 +-6.5088720 +-5.7543221 +-3.2040679 +-3.9612083 +-0.6569991 +-3.3453109 +-1.9299896 +19.5614185 +-1.1141286 +-2.7268789 +-1.0662067 +-0.1553040 +-3.1749043 +-1.6884986 +8.5627155 +-4.9773374 +1.3900026 +-0.8096083 +-1.3779036 +-3.6850200 +0.3314359 +-2.5818050 +-2.4170272 +-2.3947010 +1.1785543 +-4.4310732 +-1.9860691 +-1.4415594 +-6.6056395 +9.7570944 +-3.1571083 +0.6515324 +7.7706857 +0.1435280 +-7.3398752 +-10.9970636 +0.8886783 +-2.3562641 +-4.9792361 +-2.4662192 +1.6706258 +1.3562815 +-1.8431728 +-3.6577504 +-3.1480463 +-6.9700651 +-2.1236308 +-9.5022011 +-2.3362758 +-1.8867775 +-10.1376543 +1.0422711 +-7.3903990 +-1.5414085 +1.6198533 +-11.6918478 +-4.8217010 +18.5472279 +0.9706546 +-6.4674206 +-4.8530025 +0.0582923 +-14.2893381 +-2.6843839 +-7.5231194 +-4.3229470 +-5.6422739 +16.1509018 +15.6971874 +-1.1387948 +-17.3546238 +3.0878913 +6.0095010 +-9.0369186 +-0.8878853 +-1.0389346 +-13.0682058 +-0.9308519 +-5.2229176 +1.1944258 +2.5638177 +-8.7269335 +1.1541641 +-6.8339562 +-2.8102322 +-0.1394773 +-3.3812928 +-1.7466174 +-3.6864698 +-0.1398592 +-1.1431233 +-0.7181883 +-5.0332766 +-5.3536520 +-15.8604441 +-6.2883687 +3.0554056 +-3.6105721 +-2.3108878 +-0.0930874 +-2.0521514 +-1.8144573 +-8.7046566 +2.1392386 +-5.1772599 +2.3089395 +21.8786697 +-11.6276255 +0.8783597 +-2.6609988 +5.3936095 +-3.5744102 +4.2034469 +2.7489624 +6.9362612 +2.0158341 +17.2009315 +-2.9707098 +-6.3020201 +-4.1770482 +-2.3193600 +-6.9658108 +-7.8376517 +-4.7641277 +-12.1837454 +-6.6387253 +4.2717643 +-4.6095076 +-8.1558075 +-1.7368459 +-5.1945114 +-6.1296873 +0.6378044 +-4.9049273 +-4.6155562 +36.1032486 +-2.7886076 +-3.0192800 +-2.9791632 +4.0423942 +-3.3031781 +-0.8253698 +-0.5149107 +-6.3556790 +3.9816706 +-0.6429892 +-1.9264987 +-5.8842263 +2.3667006 +-5.9625225 +-3.7442513 +-2.4534400 +1.1035705 +-10.9584761 +6.0370669 +2.5654578 +-2.5381851 +1.0037366 +-2.8808672 +-2.9194603 +2.8575759 +-10.5484076 +-6.2054186 +-5.4339151 +-1.7676411 +-3.5867116 +-1.3705361 +-3.6209648 +5.3549142 +0.8712630 +-1.5413289 +4.0126305 +-1.6860065 +2.0630989 +1.1685704 +-8.3079967 +-7.5812197 +-2.8010974 +-6.6179795 +5.0744572 +-4.7869039 +-4.6871204 +-0.6259347 +-1.3273280 +-6.1551991 +-0.3734461 +-5.1332321 +-0.2860515 +-2.5854952 +-1.7997919 +-7.4248204 +-4.9498615 +-3.8090112 +-1.2619860 +-3.1493306 +1.9636449 +5.8116188 +-9.9407034 +-1.0179712 +-2.7168624 +2.4424777 +-2.7666113 +-3.3328481 +-5.3584814 +-1.4828563 +-3.6392198 +-2.3066378 +1.7235779 +-0.7398775 +-5.5892358 +2.1396601 +-8.8457174 +-0.8448619 +-8.8553429 +-4.3392353 +-2.9385333 +0.7912636 +2.2997677 +-3.7238486 +-1.5644544 +-0.3772891 +-0.7203812 +-10.8582850 +0.5550933 +-0.9984784 +-11.0367966 +4.4739714 +4.2368889 +-7.0004325 +-4.2020087 +-5.1473899 +-1.4901899 +-5.8585777 +-1.1486361 +2.8371053 +-6.9426398 +-2.5545657 +-5.0343370 +-1.5784657 +2.3847528 +-2.4040568 +-5.2963834 +-0.5801260 +2.6787484 +6.2603226 +0.7223253 +0.5024910 +5.2634034 +-0.1502852 +0.4736235 +-1.1566907 +-2.5251799 +-2.8870511 +-0.0550422 +-2.3414938 +-0.9512589 +-2.6132791 +-2.5562680 +-3.9438596 +0.2531199 +-3.2257960 +-0.6068581 +-2.6473620 +-0.5981241 +1.0288208 +-4.7926111 +-2.2031689 +4.7841682 +-9.9544430 +1.3910056 +-0.8236285 +-1.1494168 +-6.2411380 +-3.1067865 +1.1318146 +-11.4719152 +3.2123787 +-2.9379752 +-0.3244016 +-1.7083583 +8.9520416 +1.4698699 +-0.6348833 +-0.3058933 +-1.2394854 +3.0601909 +-0.9881070 +-0.6333902 +3.6873889 +1.1187767 +-2.1676090 +-0.3478614 +0.6451832 +-1.0919956 +-1.2875818 +-1.9784369 +0.6882443 +0.7161142 +0.1380600 +-1.0980358 +-3.2984395 +0.0629863 +-1.5374527 +-3.8641100 +1.5192215 +-0.5549093 +-2.5652666 +0.3269742 +-2.0222037 +-9.5949383 +1.9850389 +-3.9350362 +-1.3899871 +7.1653543 +1.0070276 +-1.4093105 +0.0252853 +1.8258214 +-2.8572240 +1.0374395 +-2.9556684 +-1.8448291 +-1.5630454 +4.8780479 +6.1891880 +-0.4553914 +-5.5116448 +0.4970019 +2.8415360 +-3.7244759 +0.3148729 +0.6742109 +-6.2978449 +-0.2440683 +0.8422586 +1.1837543 +0.8438379 +-3.1182251 +0.3828470 +-1.7769444 +-1.2752069 +-0.2347291 +-0.7023183 +0.8955388 +-0.3866455 +0.7167395 +2.0866125 +0.5740560 +-0.0574379 +-0.9916264 +-5.0102329 +-1.5205318 +2.5912721 +-1.0402231 +0.4028984 +-0.2289554 +-0.6434121 +0.3259496 +-2.4029176 +-3.8504329 +-2.7985697 +2.3949108 +5.3381872 +-2.9910412 +0.8411098 +-0.5082126 +3.9996796 +-1.8237468 +1.8508983 +0.5799348 +-22.8975677 +0.3719005 +2.9399409 +-0.8975527 +-1.5705453 +-1.2884908 +0.0814439 +0.7312013 +-4.0747375 +-0.2371005 +-5.2287855 +-1.9835937 +3.3879166 +-1.4610877 +-2.2519045 +1.6901156 +-0.9507205 +-1.7671673 +0.5560181 +-1.7583624 +-2.4711912 +11.5391140 +-0.9202981 +-0.7102763 +-0.6960838 +1.3361282 +0.9470969 +-1.0467553 +3.0519943 +-1.5595536 +2.6536560 +-0.0185380 +-0.3241633 +-1.8688300 +0.1109303 +-4.8716111 +-1.2453218 +-0.8096530 +-0.6690997 +-5.9877896 +-3.5335491 +-0.7841381 +-4.3952031 +2.9566464 +-3.8837283 +-2.8344252 +4.5543242 +-3.3093266 +-5.2923503 +-7.7665024 +1.8696560 +-4.2638483 +-4.4121575 +-1.0708923 +0.2902890 +-0.5553467 +-1.5979919 +-2.8670743 +-5.0945706 +-7.9837856 +-1.3760170 +-6.7276468 +-0.7389362 +-3.2089009 +-7.0788074 +1.2120532 +-6.1182871 +0.3944847 +0.5466843 +-4.0269504 +-4.6483970 +19.2595634 +-2.1498456 +-6.4134016 +-4.6110682 +-1.0639592 +-8.4121513 +-3.5866621 +-5.5733981 +-3.5555463 +-5.0503511 +6.2788863 +11.3195629 +-1.9156685 +-9.3820467 +1.8146474 +2.9858410 +-8.5193281 +-0.2939431 +-3.1354411 +-7.6774168 +-0.0434617 +-4.5749793 +0.8949735 +1.7150602 +-6.7497606 +-0.1049921 +-4.9942937 +-2.6070173 +-1.4892242 +-2.6003563 +-1.1368626 +-2.3520639 +-0.4271722 +-0.6402426 +-1.6728535 +-9.1328096 +-4.0377197 +-11.5419855 +-5.7501836 +-2.4818759 +-3.9975910 +-2.6121225 +0.2656648 +-3.9066498 +0.1741085 +-7.9024153 +1.3909378 +-6.0289097 +1.9149263 +15.2636671 +-9.1479149 +-3.8528235 +-0.6921602 +4.1118841 +-4.7846365 +1.7006992 +7.8036256 +-3.5011501 +1.5227724 +12.6563091 +-2.7635562 +-4.0525537 +-4.2034760 +0.1911991 +-8.9678402 +-6.4314599 +-1.8545080 +-5.2829843 +-5.5904884 +2.8471992 +-2.5841215 +-7.6428728 +-5.7288570 +-4.1306248 +-2.9698756 +-1.1012092 +-2.6113405 +-2.4932914 +21.5645390 +-0.0309796 +-4.0114517 +-2.6327233 +-1.2279115 +-3.9646218 +-0.4722632 +9.1848783 +-6.0398989 +1.3835332 +-0.8226073 +-1.6179634 +-4.5596194 +0.3564509 +-4.3115993 +-2.1621208 +-1.7030090 +1.3079332 +-5.1668868 +-4.0710692 +-1.1495392 +-5.6443386 +8.4736204 +-4.9826155 +-2.5607703 +7.8512878 +-2.5490718 +-7.6713848 +-12.6051636 +1.4129288 +-4.2612224 +-5.0316591 +-2.0616415 +0.7742215 +-2.1684759 +-1.7084004 +-3.9615703 +-10.4331436 +-7.6688848 +-2.2178667 +-9.4461966 +-0.9522504 +-4.0630484 +-10.3770428 +1.6366826 +-9.6523314 +1.1509464 +2.5054967 +-6.5212135 +-7.9537740 +5.1644073 +-1.3874117 +-5.4506402 +-4.8265224 +-1.5955426 +-14.0944309 +-3.2545154 +-9.0818434 +-1.5955487 +-6.8730783 +14.1642494 +18.9498482 +-1.5140148 +-14.7768869 +-1.4274783 +4.8471484 +-15.7752218 +-0.0123049 +-3.9176221 +-18.5478897 +-0.0941482 +-5.7258854 +1.4285760 +2.7804861 +-10.5458097 +-0.1225289 +-6.3416500 +-3.7232821 +-0.4895588 +-6.4828892 +-1.5446223 +-2.9584434 +0.4212367 +-0.8170770 +-1.3136179 +1.2623703 +-5.8694868 +-13.7694139 +-7.5779920 +0.1078900 +-6.3819866 +-3.4145615 +1.0560182 +-4.0429196 +0.5488963 +-10.5634022 +-0.0892797 +-6.2459865 +3.6963077 +22.3219337 +-14.6448278 +-3.6832182 +-1.5217535 +8.0233402 +-8.4549313 +4.1871371 +6.3932571 +12.7559166 +3.1781082 +16.7871914 +-2.8217821 +-5.8034267 +-3.3834512 +-0.0505235 +-11.2590685 +-9.9907875 +-6.5383778 +-0.3562675 +-7.4389076 +5.9160457 +-4.2263274 +-12.6216230 +-5.5397034 +-5.6268554 +-4.7128878 +1.1469101 +-4.7595687 +-3.9737680 +35.8212433 +0.3806801 +-4.5155373 +-4.2568421 +3.4495735 +-2.2237682 +-1.5852330 +12.0483255 +-7.4291539 +3.7394056 +-0.9493451 +-1.5888199 +-5.1610832 +0.6973897 +-7.5975962 +-2.4067013 +-2.5569808 +1.6797028 +-4.0236130 +-6.1196866 +-4.8721008 +-2.7221127 +6.5063930 +-6.2996559 +4.1739845 +11.5405350 +-9.7261438 +-0.4902499 +2.0496004 +-1.1839789 +2.9055650 +-12.8476000 +-6.2366352 +6.9978824 +1.0882261 +1.2662219 +-9.4207306 +-2.2288084 +-10.2035379 +4.0478725 +-10.5545835 +-5.9470735 +-4.2244763 +1.6154263 +-6.9757285 +-5.7017379 +-1.6927416 +-2.7022936 +-6.7202811 +-2.6179869 +-5.1257892 +-15.7649946 +-0.3114539 +1.8077686 +-1.1179127 +-4.3122296 +-2.6700125 +1.0039073 +-7.3864241 +-4.3694439 +15.9825869 +-1.6692157 +-9.2238770 +7.1305780 +1.5542336 +6.0909104 +-5.0978179 +-0.2670014 +-1.5815972 +-3.3407583 +-3.2227244 +-0.1571825 +3.8111444 +6.9349604 +-8.8925686 +2.5457401 +-8.6109104 +-9.4273310 +-2.8290544 +-5.5063415 +1.5720724 +-2.3466721 +1.6125292 +1.9104998 +5.9780903 +1.3478354 +-3.7637134 +-5.9456916 +2.6767311 +-8.3211823 +-10.6527548 +3.3308125 +3.2978003 +7.5950456 +0.5996218 +-2.9257810 +0.2162415 +-5.4530473 +-4.4057980 +-8.6137266 +0.3423584 +4.0999126 +-5.5760217 +-2.2567458 +-5.9150400 +2.0044448 +4.4026341 +-1.6736317 +-3.3136489 +11.5187979 +0.4686000 +-4.8949008 +-8.3755512 +-0.2781337 +3.0144539 +-2.7573433 +0.2874945 +-3.9276235 +-2.5624256 +1.3629978 +-4.9197459 +2.5599115 +3.4970150 +5.3102827 +0.7043049 +-1.7668842 +-1.0009649 +-5.1599011 +16.1837997 +-3.7081196 +6.3135166 +-10.3937473 +0.8436375 +2.0052805 +-2.9061177 +0.1189494 +-6.9442110 +2.6998484 +6.0470328 +-8.0915651 +-5.5545855 +-1.7137545 +2.0030015 +-0.8576555 +-0.6709012 +-1.1143932 +8.1223688 +-0.9299620 +-0.3431017 +-1.1981859 +2.1631567 +-0.6048201 +-2.0456712 +4.0261726 +0.9977357 +-2.2891026 +0.3612955 +0.8572353 +-0.6845914 +-1.5190473 +-2.2751956 +1.0984575 +0.5515288 +-0.0235008 +-0.8140646 +-4.0582166 +-0.1945670 +-1.8850693 +-4.2262888 +1.6699759 +-0.6484160 +-2.6584330 +0.5139157 +-2.4257576 +-8.9956236 +2.1413269 +-4.4381852 +-1.6430011 +8.5012245 +1.2717806 +-1.5194074 +-0.1089811 +1.8513439 +-2.9209549 +1.5977968 +-3.0544562 +-0.8950120 +-1.7294860 +4.0722427 +6.3786273 +-0.2557315 +-4.6585665 +0.4968517 +3.0988457 +-6.5378327 +0.3450195 +0.7552463 +-7.8563156 +-0.3444535 +0.8193758 +1.4898626 +0.8513108 +-3.7003870 +0.3454301 +-2.1677186 +-1.2558178 +-0.5413104 +-0.8977688 +0.8837993 +-0.2563686 +0.2460217 +2.1991479 +-0.0435811 +-0.4978399 +-1.4532744 +-5.6464362 +-1.3363211 +4.3590226 +-0.8730851 +0.9339628 +-0.3938967 +-0.9190276 +-0.2110902 +-2.9858949 +-3.4204059 +-3.7312560 +2.5904632 +5.1729326 +-2.9953282 +0.0386862 +-0.9706349 +4.2519035 +-2.6520944 +2.1121078 +0.2313700 +-25.7607765 +0.9899434 +1.4680690 +-1.2033657 +-1.3475783 +-1.1518165 +-1.2679193 +0.8067449 +-4.9905939 +-0.0335173 +-5.4298730 +-2.0274947 +3.6067915 +-1.5867419 +-2.8891590 +2.3073363 +-0.6449237 +-1.4532913 +0.3875074 +-1.2794342 +-2.3959408 +12.7382507 +-2.5258968 +-1.1374351 +-0.4592561 +0.0586012 +1.1619232 +-1.1491405 +3.2537053 +-2.1043720 +2.9075119 +-0.8384839 +-0.9195226 +-2.3527963 +0.4301541 +-5.2680221 +-0.8802332 +-0.5243815 +-0.9887569 +-5.6669760 +-4.3297491 +-0.4947560 +-4.1099896 +2.7793126 +-2.7655411 +-4.9311709 +3.2061336 +-4.2037182 +-5.2334495 +-7.3994989 +1.0951785 +-5.7922516 +-5.3532467 +-2.0841985 +-2.2839601 +0.0174820 +-1.8400973 +-2.9624324 +-7.6824117 +-9.7998295 +-1.9760990 +-7.8035836 +-0.9548399 +-4.1512241 +-7.0928931 +-1.5488007 +-7.4292960 +-0.4427271 +0.1794558 +-2.5169773 +-5.3722377 +21.5571175 +-2.2351980 +-7.7701435 +-5.1559067 +-2.4020853 +-9.3221779 +-2.2078254 +-6.4907265 +-1.6858203 +-6.3975978 +6.3466225 +10.6203203 +-1.6773663 +-9.3833055 +0.8677558 +1.9125311 +-16.6603088 +0.5031893 +-3.7311604 +-6.5769668 +0.4117618 +-5.9024019 +0.2673258 +2.5416541 +-8.8462954 +-0.2105972 +-5.4257469 +-3.3759956 +-2.1942186 +-2.8539474 +-1.0867893 +-1.8775752 +-1.2222470 +-1.7018297 +-3.4753380 +-8.5182247 +-5.6728806 +-12.5750504 +-6.1196809 +-0.9618845 +-4.2158351 +-1.8402897 +-0.1230142 +-7.2804618 +-0.4988056 +-9.0622578 +2.0349383 +-5.6933851 +2.8187418 +15.1571083 +-8.1627674 +-5.7125607 +-0.8827181 +4.8212132 +-7.7211351 +4.4053473 +7.5009685 +-2.6513972 +1.4165297 +9.9772673 +-4.0085974 +-5.3129301 +-5.2979598 +0.6393409 +-9.2662544 +-7.6589084 +-3.2383509 +-3.5948839 +-5.7844572 +2.5344763 +-2.7809439 +-9.6021051 +-5.0562587 +-4.3045607 +-2.3193436 +-2.0574331 +-3.2463319 +-2.0208640 +24.6442719 +-0.4450319 +-5.2674499 +-3.6572034 +-1.0946642 +-0.7286333 +-2.2515848 +9.5318546 +-7.6411252 +1.7908350 +-0.8890925 +-4.4354048 +-6.6095858 +-1.8975388 +-5.4963603 +-2.7600849 +-1.4318810 +1.9988686 +-4.6349926 +-3.6950223 +-2.2573221 +-6.4641562 +6.3779202 +-3.4496896 +-3.8618746 +9.2592802 +-7.1444907 +-7.8525352 +-7.8691659 +0.8509341 +-9.3523884 +-5.0908861 +-3.2961438 +-3.5301430 +-1.8286949 +-3.0203941 +-1.8953770 +-11.6399641 +-9.8622713 +0.8048728 +-9.2117453 +-2.8901141 +-5.1572442 +-12.3893280 +-1.3983917 +-8.9396772 +-0.9802342 +1.9041028 +-7.6269431 +-8.3283558 +-1.0441501 +-1.6746827 +-13.9744110 +-7.6530132 +-2.0542102 +-24.6985016 +-1.9132800 +-9.4519997 +-5.6775980 +-7.8542247 +12.2190447 +16.7475567 +-2.7626355 +-11.8906155 +-2.6654174 +6.8331733 +-14.4333668 +-1.0854437 +-2.2161934 +-11.0580044 +-1.5653102 +-6.5134273 +2.8529861 +3.2081735 +-12.3412075 +-0.7947681 +-8.6802063 +-3.7235553 +-2.4164224 +-3.7889621 +-2.2294240 +-5.8302350 +-1.2592566 +-0.5909665 +-5.5255203 +-6.9829383 +-6.4773698 +-19.1620464 +-8.4626951 +4.1826639 +-7.6912928 +6.1290917 +-2.1598506 +-10.9185286 +-1.6841898 +-11.6104374 +-1.7346171 +-11.6301031 +4.2786684 +17.3110104 +-11.4671211 +-5.0536399 +-3.2656076 +7.9507656 +-8.8634396 +6.3640943 +0.5290266 +-7.1214762 +3.4383657 +1.8912959 +-4.0921164 +-8.3619156 +-6.5339518 +1.0377942 +-10.1911860 +-9.5947456 +-3.0979061 +-5.6615314 +-8.7198792 +4.3010325 +-4.4993939 +-12.3943691 +-0.0016939 +-7.4831891 +-3.1673391 +-3.5278969 +-3.8491607 +-4.7929330 +30.8042622 +-0.2857496 +-6.6400642 +-7.5806756 +0.3258188 +-4.1027374 +0.7710559 +12.5438442 +-9.2442827 +3.6634820 +0.4228585 +-9.5690622 +-6.6327052 +-4.4260030 +-15.5817223 +-2.6106346 +-4.0052485 +0.4138256 +-7.6498446 +-21.4802494 +-2.8945849 +0.2944443 +2.5618145 +-7.2429061 +0.8751298 +3.4309042 +0.8112378 +0.3152832 +-2.5909894 +-0.5558839 +-10.7650099 +-6.3471565 +-5.0541749 +3.2433879 +-5.8334126 +0.0055140 +-7.1546779 +2.3773694 +-0.2831769 +-2.6609244 +-3.4626033 +-0.0283071 +2.1573024 +-6.7818084 +3.4847581 +-4.7726817 +-4.8232713 +4.1045074 +2.3456652 +-1.8780689 +-1.6550696 +-0.5457957 +-1.9994186 +-5.4318151 +-3.3338909 +-0.4230058 +2.0822632 +-1.3149062 +-6.9081273 +-3.5767126 +6.6950698 +1.1036102 +-6.4015703 +-3.5250535 +-6.3187165 +7.3165922 +-0.6612609 +-4.8278813 +-1.6387916 +-2.1905797 +1.4604244 +-8.6529093 +0.3774703 +-0.8257027 +-6.2808414 +1.0506692 +-4.1641660 +-1.3436165 +-0.9058398 +-1.7108769 +-5.6176810 +-1.4242070 +1.6736959 +2.9937460 +-1.4372063 +-0.0574638 +-1.3381667 +-2.6429129 +-0.6997830 +1.9486444 +-1.2735949 +-2.8309097 +-2.8359857 +-3.1100230 +-1.1697239 +-5.9486332 +0.2281769 +-0.5100409 +5.8360214 +7.3502245 +-3.7941139 +0.1185572 +-7.4883542 +5.1441073 +-1.8135301 +12.6050158 +1.1827217 +-0.6566744 +3.0715084 +2.4905090 +2.3863037 +-6.7437353 +3.6166260 +-0.9062089 +6.3517385 +-8.3663597 +-0.8436252 +-2.8667824 +-9.7894821 +-2.7965350 +-6.7091856 +-8.2793856 +-2.1149230 +3.4506068 +-3.5808609 +-3.2884381 +-5.2312131 +-1.8415443 +11.1254873 +-4.7138205 +-3.3853748 +-3.7361047 +1.5641418 +0.1371131 +-1.6317759 +4.1379666 +-8.2729731 +13.0016747 +3.5792353 +5.7334762 +-11.6675472 +-2.3436825 +0.0565055 +3.7462316 +-2.0718644 +2.3744771 +3.3407140 +-1.0898947 +-0.1747706 +-1.0796319 +0.9189845 +-0.5372828 +-3.6407752 +4.3679595 +0.3393552 +-2.0149159 +0.9694155 +1.5244886 +-0.9749026 +-1.9634340 +-3.1331356 +0.0949647 +0.7869859 +-0.2508210 +-0.2436450 +-3.8395414 +0.2384826 +-1.5954751 +-5.2086525 +2.2764840 +-1.1453115 +-2.9596801 +1.4836912 +-0.8842976 +-4.4719691 +1.7732346 +-4.0300894 +-1.6831238 +6.2654290 +1.3061415 +-2.1970479 +-0.6083003 +1.1361619 +-3.0962882 +1.3684592 +-2.6855214 +-0.8834535 +-2.0459988 +2.5697613 +6.1538696 +-0.1982109 +-3.3907635 +1.2030262 +3.3040569 +-6.8858943 +0.6354546 +0.7094822 +-9.3784218 +-0.2777716 +1.1269373 +1.7199441 +1.5337281 +-4.0162086 +0.2047478 +-2.2170365 +-1.3741741 +-0.1213247 +-1.0457364 +0.8839092 +-0.2794090 +-0.3163185 +2.3423238 +-1.2843246 +0.3254405 +-2.0703962 +-6.5559835 +-3.8972409 +0.4098877 +-1.6616198 +0.8804771 +-1.0916781 +-3.8508952 +-0.1113455 +-2.7491117 +-16.5358143 +-4.9600825 +2.5307438 +4.2375050 +-3.3086832 +-1.0521427 +-0.9682819 +4.2464533 +-2.8929873 +2.5462320 +0.9215131 +-19.6134415 +0.6827460 +1.3729365 +-1.5015363 +-1.2587130 +-1.8199893 +-1.4411485 +0.5467925 +-5.1268096 +-0.4217550 +-5.2574968 +-2.3592775 +3.7928557 +-1.7273252 +-3.1372247 +2.1962049 +-1.5644761 +-1.2817990 +0.4096059 +-1.6306384 +-2.8963468 +14.3303652 +-3.3190100 +-1.7666944 +-1.1070158 +-1.8164364 +1.2235742 +-1.0699384 +2.7544234 +-2.0787251 +2.7257452 +-0.6435821 +-0.6450948 +-2.9787648 +0.8022136 +-5.9606481 +-1.1155691 +-0.6201391 +-0.7781044 +-3.5972221 +-3.9726057 +-1.7014755 +-4.5529366 +1.3134934 +-3.1282909 +-8.0026579 +3.1933227 +-5.2339835 +-4.0096736 +-6.7709775 +1.9814994 +-6.3894105 +-5.0249629 +-3.1844072 +-4.0035691 +-0.3300742 +-2.7721319 +-1.9448004 +-10.6221571 +-10.1269255 +-2.2550964 +-7.8194289 +0.6546674 +-4.8645058 +-8.0392017 +-1.3755522 +-5.7972913 +-1.4202324 +1.8446475 +-2.8851624 +-5.3967800 +23.5069065 +-1.9822000 +-9.8783970 +-6.1316624 +-3.3451047 +-9.9336290 +-2.2150481 +-5.9818754 +-1.4521191 +-6.9342990 +4.6548452 +7.9236598 +-1.0494844 +-7.7859449 +1.2464582 +1.9829391 +-32.0913048 +0.2548761 +-3.6344533 +-6.7142348 +0.1803046 +-4.9930553 +1.1059245 +2.4663796 +-9.8255615 +-1.1775471 +-5.5533161 +-4.2957954 +-1.6975316 +-3.0922861 +-1.1067441 +-2.0173411 +-1.5865562 +0.8380592 +-4.9639707 +-11.4557228 +-5.5192518 +-12.3228369 +-10.5944700 +-9.1330700 +-4.3093543 +-3.0449247 +-0.5862694 +-10.5805683 +-0.6777616 +-8.8983669 +-11.5291147 +-5.7014275 +3.4011989 +16.0509491 +-9.6425972 +-6.9385700 +-1.1158841 +5.5217152 +-8.3238382 +4.8414197 +10.8242846 +8.9736500 +0.3374938 +10.7559509 +-4.2747016 +-4.6851754 +-6.4136505 +2.2984095 +-10.4753456 +-7.5336585 +-2.9961023 +-12.0343475 +-6.4484348 +2.8391752 +-5.1106939 +-11.0082111 +-7.0229335 +-4.7798486 +-2.1939137 +-1.1459852 +-3.1557171 +-2.8163025 +24.8796482 +-1.0158745 +-6.4679890 +-3.4232745 +-1.7331380 +-2.2389364 +-2.0877585 +8.4351940 +-8.5143652 +1.0590479 +-1.8771011 +-4.2704258 +-6.3655977 +-1.3382528 +-10.8837137 +-2.4042056 +-1.6643658 +2.4103138 +-4.0917597 +-5.6849890 +-0.7341335 +-6.1932316 +5.3355169 +-3.6855578 +-8.1119728 +7.1948862 +-5.7056041 +-4.9490533 +-9.0155125 +1.0392838 +-10.5625334 +-6.7703896 +-6.0155950 +-7.3729849 +-1.4915479 +-3.8402605 +-2.3229494 +-12.4878092 +-16.0449295 +-1.3651928 +-12.3130302 +-0.8588839 +-5.8568316 +-10.5567675 +4.0290718 +-6.5067096 +-5.8489161 +3.4440961 +-3.7100267 +-8.6555042 +26.8168354 +-1.0890499 +-12.1261063 +-10.7923441 +-6.5942593 +-19.8248329 +-1.6402789 +-8.7272701 +-2.2602880 +-9.5456896 +11.1135836 +11.2955112 +-1.4690769 +-9.5986738 +3.2346685 +5.1112957 +-29.7169476 +-0.6448318 +-4.2224331 +-17.3575420 +-0.4640962 +-6.9157939 +2.1405275 +4.9397888 +-12.6749620 +-1.2218341 +-8.2308712 +-6.9987931 +-1.7119063 +-5.1235681 +-2.1501915 +-2.4558511 +-1.7502198 +-0.8954512 +-6.8478665 +-13.1466789 +-6.8761306 +-12.4467812 +-13.6059189 +-4.3007207 +-9.5353413 +-1.7578952 +-1.2983438 +-14.3348274 +-0.9671434 +-11.5283937 +-2.5047123 +-9.5661116 +6.0076060 +24.1333027 +-14.0274343 +-6.1585813 +-3.1052561 +9.9498739 +-9.8273010 +8.3911610 +9.7659359 +-7.1265717 +0.7096780 +13.7203560 +-4.1596985 +-5.8052330 +-7.4799767 +3.5456524 +-9.9746180 +-9.8161678 +-4.7040172 +-5.3550076 +-9.7003660 +5.7377715 +-5.4037142 +-12.8993196 +-4.0175338 +-5.9909425 +-3.1673813 +-0.9953238 +-4.5185461 +-6.2324185 +40.0062141 +-1.6368390 +-8.3769846 +-4.8866487 +0.2136689 +-2.2123604 +-0.3102280 +7.2022319 +-13.0329523 +3.2301033 +-2.3524146 +-3.4525816 +-8.5959883 +-1.5195713 +-27.4619827 +-4.5408325 +-1.5885607 +2.8851404 +-7.0670748 +-2.3964651 +-3.3358796 +-0.0256544 +1.3580340 +-4.8969164 +-3.4917057 +4.6615405 +-11.4299402 +-5.6048255 +-13.1938324 +9.3447790 +-1.5224171 +1.8485079 +-5.6638126 +-5.9799709 +-8.5046272 +1.1341416 +3.5021298 +-2.6285026 +7.1109867 +0.6362098 +0.9358006 +-5.5256538 +-3.7953019 +-5.4467511 +4.1684389 +-4.5009317 +-5.1468296 +-0.3175914 +2.9599078 +-5.5214553 +0.9758700 +0.4610954 +-5.9538569 +-5.9631295 +-2.6996603 +-11.9188700 +8.0491171 +-6.2373619 +1.1135683 +-7.9263153 +4.0562019 +-2.9715579 +-9.3751507 +2.8357437 +-8.6102438 +4.3211474 +-6.9722624 +-7.7085338 +2.8124769 +-2.9497340 +0.0372158 +-2.8871284 +0.0616918 +4.4944749 +-16.6856937 +2.7448013 +-7.3429079 +-10.6713572 +-4.8829465 +-2.5879004 +-1.6570861 +1.4995724 +-1.5284344 +-10.3645124 +-3.9936020 +2.2300255 +-0.9836780 +-8.6726284 +-2.4073942 +1.8112702 +-5.1343184 +-3.5411990 +-4.4257154 +-11.9593801 +-4.3537560 +-5.4988933 +-0.5804470 +-4.2630134 +1.8839417 +-0.8931915 +-8.1661234 +-3.3032808 +-7.3505545 +4.7132525 +-2.5666127 +5.8029528 +1.2555686 +-2.0629876 +0.8861684 +-5.1909556 +3.1854239 +-4.7607374 +-4.2258415 +3.2278647 +-13.5953922 +1.6639692 +-3.9683943 +-8.4567013 +-6.1961451 +3.3926525 +-3.0093997 +-3.9444537 +15.5344896 +2.2692647 +-2.1535139 +-1.9616549 +-3.1956396 +-4.5800853 +20.5591869 +0.0432745 +-2.3182960 +-4.8585715 +1.3396163 +-2.6382730 +-2.8183792 +2.1062124 +-7.2971425 +-3.2475786 +-4.5791655 +-7.7680602 +-5.1217432 +3.7934148 +-7.0606856 +-1.2920446 +-1.0945780 +3.5637145 +7.8909411 +-0.7425363 +0.2923539 +-1.0137999 +-4.2862000 +-0.4572612 +-9.6288338 +2.5973392 +0.0250672 +-0.5699808 +-2.7725399 +-0.0097955 +-0.4595056 +0.2625912 +-6.8088369 +-4.1911383 +1.3918623 +-0.6749644 +1.6902541 +-4.9376631 +0.5304286 +-0.5324883 +-7.0235796 +1.2958601 +-1.0278544 +-2.4025514 +2.0245435 +-0.9394037 +-7.5634909 +1.3269014 +-5.8441949 +-1.1116480 +9.7544928 +1.9139935 +-3.7414198 +-1.8561382 +0.7201334 +-3.3501096 +1.7441361 +-2.2573795 +-1.4414670 +-2.2439134 +-4.0699658 +-0.9749669 +0.5365401 +-2.4888437 +2.2608342 +2.6931803 +-5.5241566 +1.3727303 +2.0831900 +-11.8717155 +-0.9067082 +0.5975818 +1.2944747 +1.4568229 +-4.1142640 +-0.0155219 +-3.4985561 +-1.3409457 +-1.1564667 +-1.1348901 +0.9266498 +-0.1389708 +-2.3823800 +1.9930542 +-4.7661057 +-2.0281985 +-2.0432785 +-3.6131446 +-3.9770126 +2.4018865 +-3.6000190 +-2.5618932 +-2.3113012 +-8.1508722 +0.0007769 +-2.8503218 +-45.4868355 +-18.4166050 +2.3513567 +3.9142303 +-2.6105082 +-4.0517578 +-1.7385296 +4.0446758 +-3.9043357 +2.1712091 +-0.4596176 +-19.7311230 +-2.1378000 +1.5660129 +-1.6943785 +-0.8807163 +0.0626700 +-3.7703118 +1.5345441 +-4.3933244 +1.7846893 +-5.0584135 +-1.4041650 +4.3011007 +-1.1565121 +-4.0867968 +3.4873097 +-0.4058234 +-1.6174979 +0.9867632 +-1.5837470 +-3.0614951 +14.2097378 +-4.7287903 +-5.1042628 +-0.5387701 +-6.7997632 +2.8954580 +-1.0185951 +2.4229693 +-2.5608480 +2.6630793 +-14.8840284 +-2.5854075 +-2.1747692 +0.7789328 +-13.8580379 +-1.1496857 +-0.2018438 +-1.0335888 +0.0639719 +-1.1355575 +1.4092035 +-3.3767557 +-3.5897222 +-2.7291262 +-7.4604101 +0.9697975 +-5.6038690 +-0.0755500 +-7.6031351 +-3.6830828 +-2.6715341 +4.1208091 +-8.8707495 +-6.8965411 +1.6917274 +-3.0283463 +4.8292198 +-5.5809312 +-6.8519754 +-3.8743992 +-6.8847961 +1.3107039 +-4.3232565 +-7.4849362 +6.2210031 +1.5702673 +-7.9413948 +1.2645670 +3.4401534 +-3.2314653 +13.6332283 +-1.2858950 +-9.9238501 +-5.6260996 +-1.1211985 +-13.5218573 +-1.2107546 +-3.4510477 +-6.5779114 +-6.5126276 +-3.5096495 +-0.0111430 +0.8393849 +-3.5341403 +7.8506584 +1.2188144 +-6.3577204 +2.4597216 +-1.8167558 +-6.4120302 +-0.9516057 +-7.5023246 +-1.2574581 +1.6043599 +-9.5290298 +-1.4691690 +-7.4019556 +-2.2423556 +-0.2002977 +-3.0527022 +-0.5181262 +1.5887939 +-3.5331278 +-4.6333284 +-9.1663198 +-1.2368512 +-4.6797018 +0.1940644 +-7.3829336 +-2.9335260 +-1.5239359 +-2.3740888 +0.5324834 +-14.6536312 +-0.4773229 +-7.0205727 +-0.3650358 +-5.9219680 +2.2128835 +11.6808834 +-6.7289090 +-0.8407461 +-3.5319910 +5.2389927 +-4.8612089 +4.4549818 +-0.4380497 +-9.5915270 +-8.4739485 +11.4300041 +-3.7541528 +-3.2527835 +-4.0878286 +-0.9941940 +-7.0822015 +-8.7096844 +-1.7480392 +-2.4816797 +-4.8246021 +4.4951286 +1.6291213 +-9.1702175 +-4.5381742 +-2.1040919 +-5.5295129 +-1.5959108 +-2.3298976 +-3.2950056 +19.1999817 +-5.5716138 +-12.0242214 +-0.8053569 +-3.3889599 +4.9267612 +0.1639670 +9.8423595 +-9.3824978 +1.2210269 +-8.5385408 +-9.7416544 +-5.0868969 +-3.1578934 +-9.3444519 +-2.7918434 +-0.7938794 +-0.1718321 +-5.2520652 +-0.6231479 +-2.0867498 +-5.4757996 +3.8208745 +-3.6931725 +-7.0576925 +3.9710836 +-10.1608181 +-0.1252966 +-11.8390875 +-2.0275869 +-3.6374974 +5.1247892 +-8.8802299 +1.4531908 +2.0617576 +-5.0843940 +10.6474667 +-4.5237131 +-3.2967103 +-1.2816658 +-11.0752506 +4.4891453 +-4.2284741 +-5.8840022 +-12.0598917 +3.1535087 +-17.1481190 +4.1107984 +1.0482249 +-3.6689153 +21.7130985 +0.1025805 +-10.1185093 +-2.2469413 +-2.9290047 +-9.4693737 +-2.8764601 +-3.2889230 +-7.2858343 +-8.3540392 +7.1241617 +6.9600911 +2.0365586 +-2.2730494 +1.4931600 +3.8079057 +-11.7137213 +-0.8885491 +-1.9376895 +-2.7065358 +-3.3358774 +-9.2715025 +0.6015027 +1.5859789 +-9.2447262 +3.0207090 +-9.5628967 +-4.2920256 +-2.4797430 +-5.6156335 +-1.0721288 +-0.3515442 +-1.5912346 +-1.8647460 +-8.8718939 +5.7007651 +-9.2347670 +8.4555244 +-6.5461016 +-8.2661572 +-2.6990685 +-4.3484640 +6.1920514 +-14.7260303 +-0.8411747 +-15.0537367 +-26.2005024 +-8.3434258 +4.8064427 +11.5574970 +-15.8444462 +-6.0967374 +-12.5476866 +10.2298183 +-7.9977427 +8.3056173 +-1.6222053 +-15.7548466 +-8.6602879 +16.7778454 +-2.5235162 +-4.0090442 +-6.0377464 +8.8316278 +-17.0586967 +-10.4827251 +-0.9547047 +1.3065364 +-5.3730111 +8.6827230 +2.7018979 +-8.2120991 +7.0907283 +-2.1213286 +-6.1822762 +1.8797300 +-3.5704536 +-2.5866489 +28.1886406 +-3.6839180 +-13.0354538 +-2.2768414 +3.0776682 +8.9515495 +-3.2213678 +14.6939716 +-10.6243982 +2.3956821 +-4.9512868 +-19.9683228 +-3.8324068 +-4.5171709 +-11.0276756 +-3.3746848 +-0.6872279 +3.2023005 +-3.9256463 +5.5275006 +2.5637057 +0.2441594 +2.3568735 +-6.6460214 +2.4963109 +4.4906211 +-7.8956213 +8.1970940 +-5.3866754 +-1.0178031 +-7.2937756 +-3.3145208 +1.2610096 +5.4255934 +-4.8132768 +-1.9533458 +7.2343035 +-2.6793578 +0.7503571 +0.5420839 +-1.2450039 +1.2203740 +-4.5579662 +-1.1186275 +-3.2933972 +16.4959221 +5.6163893 +1.6934196 +0.3339801 +-1.8341532 +4.5114856 +3.2393951 +0.9409876 +-4.1648240 +-0.3285608 +1.5551838 +-2.8227942 +-1.8003719 +3.9882007 +-3.8443038 +10.0171394 +-2.7676129 +-1.1321667 +-5.3063450 +-4.8819723 +3.9549398 +-3.2006292 +7.6296730 +-1.5999825 +-12.8086224 +-1.6864252 +-4.9238591 +3.3828776 +1.4253899 +-1.4884981 +-2.0499356 +-7.4720855 +-7.8753638 +-0.0966437 +2.4119325 +-0.9945245 +-0.2341233 +-2.7014859 +-10.5773783 +0.5919502 +-0.5429118 +-0.0763556 +4.8291368 +-1.6949085 +0.4055664 +2.5237749 +0.4393310 +-5.6115174 +-0.3361061 +-5.5781255 +-8.0032063 +0.2127240 +-4.4533291 +5.1247029 +9.4064550 +-4.6433120 +1.8183324 +-3.2912347 +7.6513720 +3.4297888 +-1.1451036 +-4.7265401 +0.3641092 +-4.2090154 +-7.1499653 +4.8667154 +3.0052929 +-3.4291170 +-7.4892001 +-2.3602552 +-3.0697153 +7.1285033 +1.1504451 +-4.9702444 +11.1302843 +-7.7549429 +-11.2433653 +5.7473183 +2.0050094 +-6.2763872 +-5.0757933 +-8.3962688 +-3.7672293 +-4.0910811 +-0.2185379 +-3.8683777 +-8.6552992 +1.3834627 +5.2724562 +-6.6878128 +3.9516671 +-8.0213490 +5.1637807 +-4.7752914 +-0.5821035 +5.0719519 +-9.2611475 +0.1053124 +-5.8046069 +-0.1685742 +-0.6550084 +1.2103033 +-1.1849091 +0.3329294 +-0.4360054 +-2.9806297 +-0.6973824 +-9.6445751 +3.3258297 +-0.6595747 +-0.6971101 +-3.6879618 +0.5735918 +-0.4024594 +-2.1132848 +-6.1265397 +-2.8803470 +1.0578964 +-0.1520810 +0.6154558 +-4.5334229 +-0.0524410 +-1.2931424 +-6.6139126 +1.4706560 +-0.6608130 +-2.2650723 +1.5396714 +-0.1546677 +-11.4747019 +1.6689472 +-1.0903177 +-1.0472400 +10.5312653 +1.1537430 +-5.0531926 +-0.8825573 +-0.3423300 +-3.1049910 +2.0539443 +-1.8754994 +-1.6830021 +-2.3921013 +-2.0226929 +0.5041005 +0.7607432 +-0.9132862 +1.2573913 +3.4617181 +-5.9606929 +0.7015489 +1.8749858 +-11.9860392 +-1.1245759 +0.7881413 +1.8414712 +0.0320055 +-4.0258217 +-0.1006223 +-2.9640932 +-1.5196158 +0.0991132 +-1.3273087 +0.4796619 +0.1919478 +-2.8700593 +1.8286641 +-5.9711061 +-2.9551630 +-2.5051816 +-7.7125444 +-2.5992920 +2.1578362 +-2.5897119 +-2.4838767 +-6.8510118 +-11.3489799 +0.1039656 +-3.0706165 +-4.2902412 +-21.9542065 +3.5225840 +1.6366345 +-2.7678294 +-3.5869703 +-1.9144228 +5.1678438 +-3.3232672 +2.3646276 +0.2484374 +-14.1818590 +-2.3251331 +0.8215774 +-1.6802946 +-1.4606781 +-0.2697216 +-2.9164107 +1.1935561 +-5.1947274 +0.7971510 +-5.6463022 +-2.2704005 +4.9730453 +-2.8672695 +-3.9965124 +1.1192480 +-1.3038199 +-1.4620856 +1.6842880 +-1.9032450 +-3.4110544 +10.4048176 +-7.4512544 +-4.9162607 +-1.1615677 +-8.1598711 +2.5043204 +-0.5972990 +1.3440099 +-3.0724206 +2.5182002 +-4.0231209 +-2.9383769 +-3.6294308 +0.9935019 +-10.9725409 +-0.6711781 +-0.2473612 +-0.6414131 +0.6848702 +-2.8951933 +1.5513819 +-2.8396306 +-3.8582473 +-2.1674631 +-10.8429146 +3.0868633 +-5.6561012 +0.8811533 +-9.7602577 +-2.3550012 +-3.2549453 +1.6099102 +-14.2650833 +-0.7208685 +1.2789816 +-2.6338987 +3.5219088 +-2.5192523 +-8.2018929 +-1.9824046 +-7.4426775 +-1.9194902 +-3.8189194 +-6.1938610 +6.6497707 +2.3736708 +-4.3813524 +1.0115021 +5.4967289 +-3.0344379 +16.9579716 +-1.6214149 +-15.7148724 +-5.5341029 +-5.6891193 +-11.4628439 +-3.7948384 +-3.6165416 +-6.3455453 +-7.7653351 +-2.9753408 +-3.5384002 +-0.4918526 +-4.3847027 +6.8109345 +2.4710608 +-9.9254799 +0.7001030 +-2.1418431 +-15.5841446 +-1.5330033 +-8.2880573 +-0.3091322 +2.5642977 +-8.4191980 +-0.8012787 +-6.8143983 +-1.4220653 +-1.4242334 +-3.0654142 +-2.0320444 +-0.4116975 +-4.0434098 +-4.9156218 +-9.8776627 +-1.9358081 +-5.7748551 +-7.5461345 +-6.1933618 +-2.1257770 +-3.3861136 +-3.2079456 +-2.8205714 +-13.6996965 +-0.2494704 +-7.5854511 +-32.8931541 +-7.3020277 +4.6483011 +11.5896931 +-10.1769371 +-7.8781109 +-3.5392170 +8.6585836 +-5.3395433 +5.7467747 +1.2610507 +4.6416092 +-7.5045285 +13.1287842 +-4.7304597 +-3.7178295 +-4.3092971 +-9.2727909 +-8.5857563 +-6.3291650 +-3.1037624 +-13.1078367 +-5.3172631 +7.5889931 +-3.0630705 +-9.0196600 +-9.3460922 +-3.5876663 +-4.7953401 +0.2158477 +-3.4517343 +-3.3648539 +21.7716122 +-5.9046950 +-11.4675140 +-2.5960588 +-3.7618279 +2.4407396 +0.3764641 +8.9008083 +-9.5743837 +2.6906633 +-9.6137037 +-10.8530245 +-6.1747036 +-2.3601513 +-21.3979759 +-2.2484593 +-0.5050663 +2.3084843 +-3.3391817 +-3.4358256 +2.9447291 +-3.6156812 +-3.1270633 +-2.2233360 +-11.7342291 +5.9515347 +-5.7934542 +1.1161753 +-12.4032068 +-2.8534107 +-3.4804807 +-0.8475764 +-17.0521393 +-1.0179210 +1.4969040 +-3.8347180 +6.5729184 +-0.8786731 +-7.7488265 +-2.0066321 +-12.8272038 +-10.6591349 +-4.2837439 +-8.1562471 +10.2928667 +5.8490348 +-9.3218937 +3.8151038 +12.5728922 +-3.1756656 +22.7673607 +-0.4711352 +-19.4334488 +-12.8102541 +-13.1509352 +-17.5070076 +-3.0727546 +-3.1418676 +-7.4957185 +-11.0273438 +-0.5545030 +2.9595532 +0.5986495 +-6.3082795 +8.3567390 +5.1500483 +-13.2904692 +1.0086272 +-2.0611200 +-12.8965588 +-2.9565535 +-8.3919554 +1.0052085 +5.0267444 +-12.0490742 +-0.9542921 +-9.7620173 +-2.4783306 +-0.5220081 +-5.5150247 +-2.5323904 +-0.1552077 +-4.3189402 +-5.7033210 +-13.5043125 +0.4492370 +-6.5386710 +-3.9037862 +-8.8483448 +4.9055271 +-5.6246405 +-2.0680099 +-1.8394407 +-18.3665581 +-1.0953656 +-7.6710262 +-16.0489407 +-12.5324364 +7.5423493 +15.9177103 +-14.1538553 +-8.3055687 +-6.6430554 +13.9433489 +-6.1234012 +7.9549394 +1.0235863 +-19.2409267 +-9.1389780 +15.5715256 +-4.3652287 +-4.3266845 +-4.7635245 +1.8837864 +-7.1124120 +-9.9732656 +-3.6511366 +-3.0856204 +-8.4692106 +13.0470409 +-2.3106251 +-11.3596802 +-3.7597001 +-4.1370811 +-7.2307482 +0.8055674 +-4.6583319 +-6.8922477 +32.0233498 +-7.7773843 +-14.9392338 +-3.8038065 +-3.6408877 +5.2365594 +1.2871375 +8.5423813 +-13.5918198 +6.1714640 +-10.2402067 +-16.1336746 +-5.5601411 +-1.8664901 +-20.4524956 +-3.0484581 +0.0586700 +1.2826033 +-5.7439694 +-0.0357871 +0.3661381 +-2.3922851 +1.3994117 +-2.0688684 +2.4620135 +2.2990329 +-3.7669537 +-1.0328503 +-7.6973920 +-0.0631086 +-4.5897279 +-7.6007533 +-7.1576872 +-2.1736569 +-2.4348745 +-2.7898376 +6.4484425 +-6.2008281 +6.2010274 +0.4864418 +-1.1331052 +-7.7488275 +-6.5963860 +-0.8831630 +6.8556285 +6.0868330 +-10.6414118 +3.2587888 +14.8505926 +-2.2280316 +0.8602548 +-2.6279948 +12.9746027 +-8.5144453 +1.1203877 +4.4286203 +5.9422078 +-0.3926522 +2.2509103 +-9.1645794 +3.1338692 +12.2182693 +-0.6288311 +-0.5103824 +2.1374719 +2.5311985 +-27.6354561 +0.4730293 +-3.3641486 +-2.9643545 +-3.4467716 +0.0674640 +0.2947223 +4.2528343 +-12.2545929 +-0.4157592 +-6.6447783 +-4.8894124 +0.2956232 +-2.0415211 +-0.8432320 +1.6212806 +-1.7726488 +-5.6984730 +-7.7423434 +-2.8219798 +-1.9841081 +4.8064666 +-5.0079269 +10.3627014 +2.3185778 +0.0130732 +-2.1390705 +-10.2055883 +-1.5717876 +-0.9878142 +0.7235166 +-12.0124235 +3.3917294 +3.9443555 +-0.1830292 +1.2949954 +-4.2974095 +7.3973002 +-2.2127352 +1.3730649 +-7.5666413 +-0.8280728 +-1.1357924 +7.4944115 +2.2791829 +-2.2460442 +1.6496695 +-4.7578616 +2.9479687 +-1.0312321 +0.7782684 +6.5784817 +-6.0945854 +9.1331024 +-2.2282512 +-9.8112001 +3.6634297 +5.9947853 +-5.9555120 +-3.4711182 +-1.2256309 +-9.0278578 +19.0071964 +-3.3939385 +-5.3771262 +-2.7673469 +2.8200319 +1.9542431 +-1.8463504 +5.7743573 +-6.4864588 +5.1141372 +-0.4411578 +11.2728205 +-1.7037292 +-2.3142257 +-0.2313179 +-4.2998915 +2.1332221 +4.7345462 +4.7639637 +0.8277845 +0.0890524 +-0.7796003 +-4.1835113 +-0.5863988 +-11.4769592 +2.0159991 +-0.7614179 +-0.2245752 +-3.8770781 +0.5178792 +-0.9975656 +-2.7374666 +-6.5597577 +-2.2944670 +0.8718932 +-0.5985142 +1.8538873 +-4.5822182 +-0.6342871 +-1.0570507 +-7.5079794 +0.3073294 +-0.7780825 +-2.2890115 +1.7737975 +1.9003873 +-16.2998695 +0.1124576 +-1.0929000 +-0.1600486 +11.1872749 +1.9053401 +-6.9585547 +-1.0726880 +-1.5272746 +-3.1306577 +2.1233077 +-1.3741162 +-2.3205683 +-2.7639596 +-4.0247903 +-0.4256472 +0.3684070 +-2.4505198 +0.9604172 +2.6823790 +-4.4565573 +0.9435686 +1.4240184 +-14.1398106 +-1.3395399 +0.5979935 +1.2155674 +-1.2692810 +-4.2579679 +-0.2336037 +-3.4737062 +-2.2635536 +-0.1134237 +-0.9704266 +0.5020025 +0.1624681 +-3.2952108 +1.0247737 +-6.9966440 +-1.8154613 +-1.9812073 +-5.7731509 +-3.4830050 +1.8927633 +-2.6086869 +-2.5313871 +-10.5396528 +-13.3255682 +-0.2203518 +-2.5696929 +-11.6087599 +-18.0411873 +3.6728592 +2.0406768 +-2.8863001 +-3.7648497 +-2.0711703 +5.1755247 +-3.8288984 +2.2898588 +1.2329385 +-11.7770853 +-3.0065281 +0.7689392 +-2.5851192 +-0.9768888 +-0.5095279 +-4.3685446 +1.5555540 +-5.6503744 +0.9027647 +-5.6575041 +-2.4180028 +5.3342338 +-2.0971978 +-3.4259765 +0.8304737 +-0.0580843 +-2.0133669 +1.7851871 +-2.4246662 +-3.6620362 +9.6300526 +-8.1794949 +-6.2254052 +-1.1015403 +-8.0625362 +3.7566695 +-0.7804651 +1.2570840 +-3.7394683 +2.4307296 +-3.6870089 +-2.6679342 +-3.1422784 +1.4842257 +-10.9857492 +-0.9445111 +0.2730322 +-1.3605359 +1.4406228 +-6.2232165 +1.1956580 +-3.3430808 +-4.5241909 +-2.5685642 +-12.6096001 +-0.0480320 +-7.3703032 +0.4214273 +-10.5669136 +-2.1042318 +-3.6459048 +-2.7074385 +-11.1217833 +-2.5991988 +0.9618308 +-3.5208173 +3.1157634 +-3.6775839 +-7.2449384 +-2.6232545 +-8.5328197 +-3.2364898 +-4.1695995 +-5.4569874 +5.9812307 +2.2951751 +-3.4496882 +-0.6960718 +6.6038361 +-3.5649986 +24.5740108 +-0.6588553 +-16.7566967 +-6.5913506 +-8.2420406 +-10.8601599 +-4.2045574 +-3.2976873 +-3.0828826 +-9.2916946 +-5.1775379 +-3.2355180 +-2.3883908 +-8.2412119 +7.1485429 +0.2282007 +-5.4681392 +0.5104779 +-2.9604743 +-11.3519526 +-0.4133807 +-7.6732388 +-1.5696534 +-0.4570632 +-8.3936462 +-0.9322152 +-7.5087109 +-3.1542487 +-2.8845387 +-2.9726188 +-1.5013386 +-0.6322560 +-5.1965985 +-3.9516144 +-12.9739914 +-5.9158354 +-6.6570530 +-4.1674485 +-10.3347998 +-3.1764765 +-1.2972416 +-2.3253391 +-5.1866388 +-19.8216076 +-0.7100791 +-7.6419024 +-42.1329231 +-8.7578220 +5.6371074 +12.3080473 +-10.4950857 +-8.6386499 +-4.8785133 +9.6753712 +-4.5583057 +2.5088899 +0.8478888 +6.6453471 +-8.0344543 +13.4797211 +-5.4814596 +-3.5763526 +-2.0305085 +-4.9305387 +-9.5884180 +-6.6836300 +-2.2298648 +-9.1305943 +-6.9175177 +8.1128254 +-2.7199733 +-11.4421511 +-12.4379225 +0.2571938 +-5.6089773 +0.2810511 +-5.5404587 +-3.6646700 +16.8080692 +-7.5916820 +-14.4065208 +-3.8690221 +-4.0691671 +2.1254964 +-0.4964340 +10.2212639 +-10.7787056 +2.8676109 +-8.8052750 +-7.7101870 +-7.2806516 +-0.1366687 +-11.7261715 +-2.3460922 +0.0127166 +1.7222238 +-3.4995115 +-9.8914394 +2.4614294 +-4.3559842 +-4.1796751 +-3.2798867 +-13.0367317 +2.4478300 +-8.6345863 +0.8267413 +-12.5982733 +-1.8660859 +-3.6360428 +-6.4526763 +-13.6412077 +-2.1807601 +1.0295962 +-5.1278057 +6.2924895 +-5.8504343 +-6.4186130 +-3.1568062 +-13.4406185 +-8.4086294 +-5.5610118 +-6.4901433 +9.0888939 +6.9877467 +-8.6213636 +1.5035555 +12.4669819 +-3.7908115 +23.0500565 +-0.0662101 +-16.5118313 +-12.5092907 +-16.7307186 +-20.7296219 +-3.7342727 +-2.8134632 +-5.4975419 +-13.0864143 +-3.0924056 +-0.3281585 +-1.4061674 +-10.0211210 +9.2252502 +2.3821912 +-7.7293959 +0.4115361 +-3.9917686 +-10.4968424 +-1.9423363 +-7.9088836 +-0.2027966 +2.0687304 +-13.3522358 +-1.3532130 +-10.5705919 +-5.3329701 +-2.4447780 +-4.9550843 +-1.6545075 +-0.6814918 +-6.0892253 +-3.8602099 +-17.7093410 +-7.2158623 +-8.3649149 +-2.7637489 +-16.2238598 +2.2127175 +-7.4842916 +-1.6215417 +-4.2731028 +-25.6010284 +-1.7374207 +-8.2439928 +-44.7741241 +-14.9395895 +8.8352489 +14.6267986 +-13.8183575 +-7.3751473 +-7.6896267 +15.0555906 +-4.9637446 +5.5599470 +4.2576265 +0.0463134 +-8.8500566 +15.1586580 +-4.9865499 +-4.5970840 +-0.9167762 +9.6354723 +-8.6691608 +-10.3811159 +-3.4214547 +-2.5492759 +-10.7588968 +13.2999544 +-2.0928018 +-15.6655130 +-9.2388296 +0.6916119 +-6.9919491 +-0.3939527 +-5.5818830 +-7.9638648 +27.5422535 +-8.9147987 +-17.4852924 +-4.7567215 +-5.1090050 +5.4056535 +0.0852250 +6.0615244 +-14.6901150 +5.5107751 +-8.8244238 +-10.4634562 +-7.9109492 +1.0237181 +-8.5423841 +-3.0832431 +1.1318727 +1.3747358 +-4.5249214 +0.3734750 +1.1157541 +-4.4634767 +-2.4298904 +-3.7297697 +-1.5941526 +1.7929854 +-6.6086946 +-1.7137036 +-7.7262506 +8.3433037 +-1.9220550 +-11.9129667 +-0.6680892 +-0.6016797 +-1.1646889 +-3.2779787 +6.1516867 +-5.8044367 +1.8444948 +-0.0366816 +1.6323200 +-1.2234890 +-5.9737687 +-2.1052194 +4.0980110 +3.5233431 +-8.6812601 +3.2019532 +15.8932238 +-0.5356179 +0.3023486 +-0.0305312 +-1.2682793 +-1.5445147 +3.3202577 +-9.8095312 +6.0873141 +-1.0029285 +-0.7452516 +-7.6972785 +-1.9208437 +0.1344704 +0.4492916 +-8.3425369 +-2.2454748 +3.8561430 +-3.7985818 +-3.5782385 +-3.6714377 +1.3969579 +-3.8310449 +-3.3090806 +2.2281733 +2.7244730 +-13.8215456 +0.6790463 +-6.5866041 +-11.1257277 +-1.3258436 +-4.1113305 +-0.6005540 +-0.9070431 +-3.0467753 +-6.2762322 +-6.7655554 +-5.9890079 +-1.6026266 +0.0074691 +-19.1855869 +10.0359411 +6.9643016 +-4.9403982 +-2.9980197 +-6.4158506 +-2.7804229 +-3.2501171 +0.5268880 +-11.9759464 +4.3181047 +2.1906924 +-0.8880194 +2.3548491 +-7.1102686 +7.1686206 +-3.5513639 +4.7393365 +-6.3225908 +-12.7726030 +-2.2731836 +2.6412001 +-2.0093162 +-2.6128843 +0.3979874 +-1.2383114 +-1.3332527 +-2.3559124 +-1.9611381 +1.1846548 +-8.3765869 +7.4876504 +-1.6536943 +-5.4383535 +-2.3796427 +4.2344141 +-3.1748090 +-3.1243422 +-1.3557812 +-8.6713552 +8.2948971 +-4.1237321 +-7.3118215 +-1.1345141 +1.6936646 +2.9947338 +-2.6568291 +13.1689653 +-9.7685986 +2.8577864 +-5.2753229 +-19.6042175 +0.7570146 +0.1454492 +3.4448588 +-1.4803705 +2.3798201 +2.5458307 +0.7300276 +-2.8046179 +0.5007360 +-0.8049399 +-5.3151217 +-0.3204548 +-12.7581663 +1.8927131 +-1.0379268 +-0.5243144 +-3.9442840 +-0.8889847 +-3.3317654 +-3.6049190 +-7.2253304 +-3.4740331 +0.8223500 +-0.9514142 +1.8973542 +-3.2372525 +-1.5725591 +-1.6300334 +-8.3424320 +-1.3150817 +-0.7350292 +-2.1564994 +3.3780966 +1.9372283 +-23.6207809 +-2.7725973 +-0.4241321 +-0.2207368 +8.6776571 +1.9675139 +-8.9735069 +-1.6787502 +-1.9784034 +-3.1179101 +2.3180788 +-1.3146335 +-2.5334971 +-3.2041864 +-6.9786706 +-1.3466188 +-0.7273318 +-4.6082740 +2.0938084 +2.4901948 +-4.4128790 +1.3159261 +1.4787756 +-16.0292835 +-2.8397069 +0.4105155 +0.2295595 +-3.2410624 +-4.6644473 +-0.6040969 +-3.8761466 +-1.6352997 +-0.5681685 +-1.3732041 +0.7354063 +0.6664649 +-3.9754992 +0.4445866 +-8.5285912 +-2.6515896 +-2.3688805 +-3.0013311 +-3.7112768 +2.9992225 +-1.8587166 +-1.6644223 +-13.7887230 +-16.1261673 +-0.3610067 +-2.1254778 +-9.0160465 +-17.3428993 +3.8128679 +1.2351623 +-3.1683760 +-3.1713850 +-1.9597346 +6.4539676 +-2.9294803 +3.7858872 +-1.1310890 +-6.9847083 +-3.8198476 +0.2019426 +-3.7642174 +-0.7899624 +-1.0716822 +-5.6840925 +1.8216020 +-11.2277403 +1.0216926 +-5.2181416 +-2.7219839 +6.4795046 +-1.4295820 +-3.1846347 +-0.6641442 +1.1160245 +-2.2608006 +1.8896104 +-1.5011376 +-3.7044282 +8.6625557 +-8.0711918 +-7.5619922 +-1.6406517 +-6.7673163 +5.7058959 +-0.9132332 +1.4602073 +-4.6287637 +2.7096000 +-4.2949147 +-1.1843129 +-3.7802725 +0.8176709 +-11.5618620 +-1.8657116 +0.5093097 +-1.1282078 +1.3289490 +-3.0426540 +2.4971077 +-4.7397876 +-6.0391583 +-3.0377390 +-14.7520580 +-4.5925474 +-7.6120830 +-0.1865920 +-11.7457829 +-0.7100837 +-3.7755315 +-6.9141402 +-15.1425819 +-4.7741308 +0.6667820 +-4.7714968 +2.7342179 +-1.1536041 +-7.9764228 +-5.3190169 +-10.0540237 +-6.1561890 +-5.2564573 +-4.8960676 +9.3812895 +2.8148170 +-4.7189450 +-4.5538058 +7.0951486 +-4.2593322 +20.4847832 +-1.7335593 +-21.6035938 +-7.2382970 +-9.5788717 +-10.4249878 +-4.4030972 +-3.8801799 +-4.4846830 +-10.7620840 +-9.0969734 +-22.2711239 +-6.3746805 +-12.9834099 +9.3473701 +-2.3894725 +-3.9801955 +0.3821650 +-3.9993806 +-3.9521465 +-1.1839610 +-8.2586470 +-3.1290305 +-4.9977961 +-8.2764025 +-1.5171932 +-8.8986578 +-4.5680833 +-6.0840607 +-3.0387392 +-0.9474720 +-0.7096065 +-7.9694996 +-5.6007643 +-18.2419319 +-7.8012409 +-8.0758228 +-5.0594645 +-7.6545086 +-4.0664287 +2.2774513 +-2.5352104 +-8.4951925 +-29.1943378 +-1.6849276 +-8.0980911 +-24.0011349 +-9.8102188 +6.7805347 +10.4891663 +-11.6828432 +-9.2942677 +-5.5979209 +10.7177439 +-4.9560156 +7.1720552 +-0.4912694 +7.8498273 +-8.4083519 +12.9266529 +-6.8111854 +-4.3412318 +-4.5310683 +-5.4119062 +-10.4930086 +-8.5371246 +-1.6578752 +-6.3163085 +-8.4612894 +8.7743311 +-0.8334333 +-11.2776594 +-19.0682812 +3.5858741 +-6.3029900 +-0.2631715 +-6.4705915 +-3.5647564 +10.9045639 +-10.6171274 +-18.1348381 +-6.2239046 +-5.1383839 +4.2744036 +-2.4746830 +12.2765102 +-12.5135946 +4.7918010 +-8.5219479 +-1.5197594 +-9.4042044 +5.6881814 +-9.7447901 +-1.3766559 +0.3600073 +1.1134419 +-3.6520047 +-3.6092536 +2.4873357 +-6.1840696 +-6.9410291 +-3.8644071 +-14.9058151 +-3.5736780 +-9.5202761 +-0.3192930 +-12.7199059 +2.1060758 +-3.3380067 +-12.4990129 +-22.2283154 +-4.6395965 +0.5551997 +-6.8008776 +6.1884770 +-3.8643055 +-3.5326998 +-5.9775157 +-12.0567970 +-12.2335443 +-7.1011434 +-6.1425505 +13.7808990 +7.4445724 +-9.9917955 +-3.5808926 +13.3765335 +-5.0900774 +16.0277748 +-1.9167655 +-18.8282127 +-10.2819252 +-15.3754196 +-13.1031752 +-3.0260177 +-4.4310741 +-5.3423104 +-15.2947102 +-9.5187178 +-21.5135345 +-5.2911716 +-15.2719975 +9.7305832 +-1.3549117 +-5.8294230 +0.4921290 +-5.4972892 +-9.1494102 +-3.0959260 +-8.3050699 +-1.2104849 +-2.1083415 +-14.9003668 +-3.2802820 +-13.3325500 +-6.7996140 +-5.6611738 +-6.0926571 +-0.8204607 +-1.1414993 +-10.7621984 +-7.1049018 +-25.3676624 +-10.2182655 +-9.8689146 +-5.3290834 +-13.7451677 +1.6954463 +0.2422317 +-0.8434917 +-8.2055035 +-35.2715073 +-2.9169281 +-8.6989145 +-36.4843788 +-16.1158981 +10.1560831 +11.0591364 +-15.3547573 +-8.2605228 +-8.7986431 +16.1795349 +-4.9941068 +9.9034271 +1.0079137 +3.1350565 +-9.0764599 +13.8889551 +-7.8075223 +-5.6252179 +-5.1733456 +6.6244936 +-9.9266272 +-17.4746971 +-2.1347680 +-3.2875500 +-12.5668612 +14.0728407 +-2.0327606 +-15.9470577 +-20.3922787 +4.1263366 +-7.9627762 +-1.7143711 +-5.4106822 +-9.5328732 +21.8203583 +-10.5044212 +-22.7596855 +-6.9130011 +-6.7224298 +7.5702429 +-1.0758462 +11.3206673 +-14.6237535 +6.8444371 +-10.7582359 +-1.5106143 +-9.6951618 +7.3483644 +-1.8301290 +-1.3873900 +1.7043880 +2.1492712 +-4.5527067 +-0.3778342 +-1.7485816 +-6.8892989 +-0.7374558 +-2.4482181 +1.2645919 +4.6122818 +-4.1374846 +-0.1958415 +-13.1322947 +6.8571301 +-1.3077018 +-13.6072769 +9.4203367 +2.1052656 +-1.8016984 +-7.0168223 +7.2294803 +2.6900113 +-1.0517504 +1.3121545 +-4.5939746 +7.8409142 +-1.4378222 +-3.9309347 +8.4587822 +5.0986319 +-11.4006128 +4.4342837 +10.3089561 +-1.2992774 +-12.9985008 +4.3256636 +-5.6388645 +8.7486601 +12.9161997 +-5.4320898 +-4.3887615 +-2.7921298 +3.0070279 +-6.3436790 +0.2965373 +4.4327054 +-1.4060776 +-8.9642839 +3.1818702 +5.8579488 +-6.1111999 +-1.9291196 +2.0125868 +-4.5364051 +-3.6928756 +-0.1273721 +2.8292704 +-0.8319533 +-19.1144772 +-3.0445132 +-9.5236149 +-8.2717028 +-4.9028440 +-1.5202812 +0.8631511 +-4.8533974 +0.0380874 +2.7967963 +4.1726718 +-7.3170815 +-3.5000069 +-3.3555932 +-24.5611115 +2.9051178 +-9.3999395 +-6.5113893 +-5.6902308 +0.3392135 +-1.1968900 +-3.3454399 +-3.1384616 +-19.0402946 +3.1218364 +4.0146790 +-3.2807086 +2.1697392 +-6.3775816 +4.7865748 +-7.6193576 +5.4197197 +-2.1574235 +-18.6243572 +-1.6581126 +-2.5081487 +-5.6141047 +-1.2175674 +-6.9313307 +-8.7950249 +-3.7905002 +0.3168189 +-4.2960238 +-5.3591614 +-12.6414785 +5.7069368 +-4.0415230 +-5.2329788 +25.5774784 +1.2525640 +-3.9641232 +5.9211192 +-3.1094081 +-7.6883655 +0.9351528 +-0.1693188 +-2.6373138 +-1.6310323 +-0.0902667 +6.1664186 +-3.8246059 +7.3097091 +-8.9674225 +1.8505132 +-2.1365499 +-2.5133183 +-1.8678638 +-0.2265687 +-3.3815856 +-2.5675521 +0.7120626 +5.4015417 +3.6836472 +-0.6056170 +1.1386797 +-1.0924360 +-7.1641741 +-0.2706371 +-16.0764637 +-0.1623737 +-1.2299997 +-1.0880152 +-3.6905570 +-1.8597320 +-3.3134246 +-4.0949397 +-8.4754877 +-2.5488710 +0.9359242 +-1.6638213 +2.3931897 +-3.6430771 +-2.6507447 +-1.7029120 +-10.3129625 +-4.0600967 +-0.6225055 +-2.1722348 +2.9631510 +3.5827441 +-24.3875580 +-4.6988626 +0.3588209 +0.3130321 +7.4059749 +1.9185563 +-11.7035398 +-3.0141864 +-2.2055790 +-3.5882659 +2.1620951 +-0.7721041 +-3.4831896 +-3.5783315 +-10.6807222 +-3.9549742 +-1.7984751 +-7.5777707 +1.2577844 +1.1854830 +-3.2752497 +1.0445788 +1.1429882 +-18.2356453 +-3.3020377 +0.5066725 +0.4309242 +-7.0383224 +-4.9376602 +-0.9765325 +-4.4080744 +-1.4776458 +-1.5158076 +-1.8256698 +0.6487550 +0.6483024 +-4.1948957 +-0.1731527 +-10.0184336 +-3.2322893 +-2.2884309 +-1.7865968 +-4.2207408 +3.7836819 +-1.9182322 +-1.6746520 +-17.7471714 +-18.5900288 +-0.1619638 +-1.6735884 +-7.6154270 +-19.3220482 +3.7342911 +1.5242630 +-2.3704724 +-4.0306120 +-2.2315249 +6.3663497 +-2.6711009 +4.1654549 +-2.9913230 +-6.9070597 +-6.2940717 +0.0788623 +-5.2521586 +-0.7489058 +-0.4842546 +-8.7549963 +2.5807655 +-32.3913307 +1.3036447 +-4.1763449 +-3.4059002 +6.1954207 +0.3296719 +-2.4435048 +-0.0136132 +1.1595125 +-2.6786513 +1.4751347 +-2.5555952 +-3.9306080 +0.9107871 +-2.2887144 +-9.3906250 +-1.5346702 +-5.8529291 +3.9648581 +-0.4531767 +0.4274934 +-5.5976682 +2.9626915 +-4.0772166 +2.4123888 +-2.6127257 +-1.6856387 +-12.3133707 +-3.3909056 +0.6001768 +-1.3574498 +0.4982809 +-1.6823059 +3.7929974 +-5.8150001 +-6.5525608 +-2.8698273 +-18.0160866 +-9.4172621 +-6.7405863 +-1.4977040 +-11.7802172 +-4.0696068 +-5.5718431 +-9.3446369 +-34.9970055 +-5.7234893 +1.4698333 +-5.9722481 +2.9134560 +-3.4113307 +-8.8630028 +-7.0766239 +-12.2869997 +-11.7836132 +-5.2386336 +-4.5937533 +10.5580616 +3.4299474 +-8.4883633 +-9.2950430 +8.1863499 +-4.1147680 +12.5149517 +-2.0934670 +-32.2525826 +-8.1869440 +-10.6875229 +-8.4886379 +-4.1607451 +-3.5049200 +-0.8293297 +-12.0313463 +-11.5611877 +-26.9916801 +-9.9081125 +-18.0931873 +5.5589166 +-6.2709641 +-2.0751231 +0.8835536 +-5.2741961 +-0.1453892 +-6.2966237 +-8.1731138 +-6.1748323 +-13.2883215 +-9.4436283 +-1.9840031 +-10.0113420 +-5.5284052 +-8.1596327 +-3.9267511 +0.1551109 +-0.1713730 +-10.1670780 +-7.1806202 +-22.2374611 +-12.5824423 +-8.3750992 +-7.4273958 +-4.7639303 +-5.3815989 +5.9703517 +-1.6782128 +-14.6389523 +-35.6624870 +-1.4451098 +-7.7314796 +-14.5821867 +-12.9053068 +6.5087008 +9.8181610 +-10.6450939 +-11.0750942 +-6.2149878 +10.3461742 +-2.9972634 +16.4547558 +-13.0744896 +9.0110331 +-13.2370977 +13.2890644 +-9.7357054 +-4.5390368 +-6.1541224 +-2.1111963 +-10.5787687 +-24.9133549 +-0.9448574 +-7.1767936 +-9.6212206 +7.5524449 +4.2058411 +-9.5593224 +-17.8621826 +4.8760457 +-8.0251007 +-0.5985086 +-2.9761405 +-3.9659903 +-10.3952065 +-12.6547337 +-21.5873661 +-6.2151132 +-7.0579138 +6.5403299 +-2.2345901 +13.5205460 +-14.5454693 +4.6514163 +-4.1343446 +5.0549273 +-9.7208662 +8.3253040 +-8.8929892 +-2.8273299 +-0.9371545 +1.4288348 +-4.7001853 +-2.9221582 +3.6167073 +-8.7112827 +-11.6909256 +-3.3113284 +-20.7068501 +-10.3786211 +-7.5462208 +-2.1913733 +-15.1267414 +-0.2624314 +-6.1798625 +-15.6893263 +-38.6185303 +-5.5910873 +1.5423013 +-9.3205013 +6.4034467 +-7.0788031 +-4.5175285 +-8.1430960 +-18.1274700 +-7.6214972 +-6.4742002 +-7.3887558 +17.8903866 +8.3969707 +-13.7307816 +-7.0259976 +13.9169283 +-4.9790406 +24.5082912 +-1.4823798 +-33.3052101 +-15.6132984 +-18.1686630 +-7.8897533 +-2.6300373 +-4.3807797 +-0.1337665 +-16.3675804 +-18.6398296 +-30.3869915 +-10.8157215 +-21.5747929 +6.5650792 +-5.4884596 +-3.6635575 +1.1288763 +-7.3371062 +-1.2534529 +-7.5692301 +-7.9033136 +-4.3272467 +-13.3547955 +-15.7194386 +-3.3927264 +-15.5534229 +-8.0550108 +-9.5661583 +-6.4759307 +0.7167222 +0.0285959 +-12.9752150 +-9.2771196 +-23.5140648 +-14.6059036 +-10.2186737 +-8.3087072 +-7.4273577 +-0.3116541 +3.4052448 +-2.0862696 +-17.7326965 +-34.6736221 +-2.8209536 +-8.8083124 +-20.9550228 +-22.3099575 +9.0933943 +8.7058363 +-15.3301239 +-11.9079809 +-9.3314066 +14.9871120 +-5.1679621 +21.7173424 +0.2814800 +2.7706749 +-14.4325075 +8.1580706 +-12.6654997 +-5.7079349 +-7.4864092 +6.2233710 +-9.8405714 +-13.3136797 +-1.3712626 +-20.7309475 +-14.3048401 +12.8362494 +3.5774634 +-13.5736628 +-24.2084427 +6.0701404 +-10.1832581 +-1.3276992 +-3.3130805 +-9.2580023 +-10.9820375 +-13.8458509 +-27.7463245 +-7.3462105 +-9.5618525 +11.6671801 +-3.1602178 +16.8832760 +-15.9557161 +8.0999603 +-14.4376841 +7.0649681 +-9.5985575 +8.0889912 +0.1657141 +-3.2555223 +-0.0499631 +3.0264540 +-6.2698712 +-3.4938521 +-0.2044035 +-7.2508678 +-8.6914406 +-1.6379796 +-1.9205210 +-7.9067721 +-11.5956240 +-2.2584717 +-9.2121029 +2.3546984 +-5.6956897 +-17.3432827 +9.0735130 +-2.6718061 +-1.8651780 +-9.9023142 +8.0315304 +-2.9464214 +-2.5635400 +1.6276444 +-4.3217735 +-2.2147560 +-3.5934737 +-6.9026332 +8.6522617 +3.2381215 +-26.5144310 +1.3520840 +7.8340220 +-2.0306478 +-10.3503199 +-1.2376540 +0.8927687 +10.3840151 +4.0144377 +-3.3141582 +7.1560235 +-2.6151156 +-21.8698597 +-8.8011093 +-9.6959763 +8.7948017 +-1.7575618 +-3.6116102 +0.0587096 +-2.3601422 +-6.8165646 +-0.8938670 +-3.5230169 +-5.2881017 +-6.3539715 +-1.3426969 +0.1589604 +2.0323572 +-18.1964130 +-4.2131319 +-10.5546980 +-17.1885815 +-9.0576048 +-2.4983852 +0.0147893 +0.8130824 +-0.9433777 +-8.0561838 +-3.1631541 +-4.9696975 +-1.5126901 +-5.7758803 +-5.0409532 +4.8498278 +-2.6156549 +-4.6267600 +-5.9645300 +-1.2049550 +-4.4068060 +-2.7835147 +-11.9456453 +-29.3432903 +1.6182488 +10.0856647 +-7.6349201 +2.2857842 +-4.9551973 +3.6336372 +-6.9034677 +6.5483899 +-2.8162897 +-19.0029240 +-4.2044311 +-2.7409048 +-6.8352494 +-3.8467634 +-10.8271418 +-13.7844629 +-7.0413189 +10.4035931 +-4.4751287 +-10.8838663 +-24.0718002 +3.5362027 +-0.8531047 +-1.6233399 +19.6735897 +2.2858639 +-3.7437758 +1.5385327 +-2.6676629 +-10.6421480 +-16.2634258 +-4.2586474 +-8.8802433 +-1.5539886 +-5.8048353 +6.2136841 +2.0756271 +2.0507169 +-3.0193367 +0.7867764 +-2.2099190 +-1.8773223 +-2.6995850 +-0.6328675 +-7.1954341 +-3.0929494 +-0.1974015 +4.0834641 +-0.3786743 +-0.5508057 +1.7639614 +-1.4268599 +-7.8333220 +-0.1015381 +-15.9372168 +-2.1506643 +-1.0131122 +-1.0319490 +-3.6935568 +-1.5485603 +-4.0507770 +-4.0900550 +-10.0143394 +-3.7272742 +0.8078695 +-2.0982833 +2.7115686 +-4.4420500 +-3.5241561 +-1.4963927 +-11.3932838 +-7.7195292 +-0.4672820 +-1.8722506 +4.2079954 +4.5310626 +-16.3445320 +-7.2603087 +2.1600807 +1.5341482 +3.9809375 +2.0849850 +-15.1580677 +-3.3524241 +-2.1480987 +-3.3955593 +2.6794078 +-0.9508441 +-3.1632783 +-4.2968812 +-13.1932793 +-9.2985039 +-3.8006046 +-10.8466034 +1.2228647 +-0.1849024 +-3.5759842 +1.2580922 +0.9109233 +-19.2098885 +-5.7676072 +0.2911984 +0.3226907 +-8.1457663 +-5.4536853 +-1.3904868 +-4.7161636 +-1.4212550 +-2.1759763 +-2.1844790 +0.7820910 +0.9212504 +-4.3185034 +-0.6433026 +-11.4279985 +-5.1726727 +-1.9769517 +-0.1169572 +2.7369480 +4.2778044 +-1.4310341 +-1.4923871 +-23.0210361 +-20.8919086 +-0.0409944 +-1.8609172 +-6.6960020 +-18.1999149 +4.1244926 +0.8132348 +-1.6674501 +-3.2205484 +-1.9386718 +7.4642444 +-1.4840125 +4.6489663 +-7.4279785 +-6.1291633 +-7.7918272 +-0.0093396 +-7.1762800 +-0.5403036 +0.5624191 +-12.4164200 +2.9111567 +-29.8209000 +2.0665407 +-4.6665096 +-3.7524328 +6.7625647 +1.1056637 +-2.8434548 +0.7784644 +2.8337176 +-3.2945943 +1.2852722 +-2.8917248 +-4.3502932 +9.3152418 +-0.8433203 +-11.2072592 +-1.7704773 +-3.7721825 +5.7097683 +-0.6700307 +-0.6949775 +-6.5632281 +3.3464313 +-2.6398938 +1.6851648 +-2.1035426 +-3.8017144 +-13.1048021 +-3.6900377 +0.9805284 +-1.4004362 +0.5012978 +-0.6138081 +4.0831141 +-6.4052773 +-9.5597305 +-2.7397449 +-20.7510471 +-16.0706596 +-6.8581691 +-3.6468456 +-11.3238354 +-5.3702121 +-10.7115755 +-10.7871218 +-64.5642776 +-9.0933151 +1.5994853 +-7.0243444 +2.9722981 +-2.0933733 +-12.0906067 +-8.2993765 +-13.7274456 +-16.2716942 +-5.3313680 +-4.3543396 +9.2253304 +2.5781353 +-10.4296360 +-13.5988989 +9.0742369 +-4.4001365 +42.9783859 +-2.5067050 +-39.9590034 +-7.6590729 +-11.0881519 +-8.2267256 +-4.0877881 +-5.1002784 +-2.6064448 +-13.0150566 +-16.1215496 +-11.5649366 +-15.0739918 +-25.2380676 +4.1168799 +-10.4898272 +-4.5897279 +0.5519347 +-7.2791219 +-3.4977593 +-17.8468590 +-8.1543560 +-7.9388046 +-18.6413174 +-10.5696793 +-2.5640602 +-10.1726789 +-6.4172273 +-10.2562656 +-6.5631418 +-0.0752164 +-0.0468221 +-9.8114548 +-6.7865605 +-22.0325203 +-17.8625717 +-7.4869623 +-8.4340038 +5.2554579 +-7.1241474 +8.7786121 +-2.1945083 +-22.1327972 +-34.1975784 +-1.7073723 +-9.1927919 +-7.1413980 +-17.8612843 +6.6109066 +12.0317192 +-11.8083668 +-11.8201189 +-7.1478605 +11.4437475 +-2.0929680 +16.6331615 +-19.6188145 +9.3668289 +-17.5784893 +12.4615679 +-13.9372969 +-4.3962817 +-5.7559404 +-8.9511347 +-10.9982834 +-33.2780380 +-0.8623785 +-8.5409966 +-11.3847370 +7.0431795 +3.9847443 +-10.4636602 +-23.7957058 +10.5922222 +-11.6836920 +-1.2935714 +-1.6436726 +-3.0246506 +-37.5292892 +-16.8444481 +-22.7094364 +-7.3565693 +-10.8284731 +7.5101900 +-5.9702120 +13.5293818 +-17.8978577 +5.4601712 +-3.1037493 +6.3134437 +-9.5533657 +-2.3274970 +-3.8771906 +-4.4011326 +0.0586222 +0.5576088 +-4.8651109 +-0.3452371 +3.4673119 +-10.7566299 +-16.7216301 +-3.6921906 +-20.8117981 +-19.3995113 +-9.1926651 +-4.7433224 +-15.7726984 +-2.0279858 +-11.8621206 +-15.2689590 +-39.8117142 +-10.6568003 +0.9055589 +-11.3212271 +6.5917635 +-13.8416719 +-10.7834930 +-10.7826405 +-22.3244400 +-9.5973682 +-6.4391022 +-7.2694340 +16.4095745 +7.5789986 +-23.7215385 +-11.4173231 +13.7389641 +-5.8927717 +18.3755455 +-2.4536734 +-39.5323067 +-18.9020576 +-17.0671215 +-8.9184208 +-1.3615484 +-6.5609488 +-2.6296313 +-20.4114552 +-25.8766651 +-27.1035328 +-16.9602413 +-32.3821487 +6.0353913 +-12.4590282 +-7.0239291 +-0.1520641 +-10.1307516 +-0.2218817 +-17.9622040 +-8.7509966 +-7.3066092 +-29.6851501 +-16.9319859 +-4.5634451 +-16.4282818 +-9.4971085 +-13.6378450 +-9.6576996 +0.2581515 +-0.3153959 +-14.3351116 +-8.2794819 +-23.0252304 +-20.0966702 +-9.7260084 +-11.7073755 +7.0355444 +-2.6797011 +3.6772447 +-3.7521818 +-27.4426708 +-29.0092506 +-3.4229794 +-11.0414810 +-14.6428518 +-28.9643669 +9.6063881 +12.2884979 +-15.8287640 +-11.7502966 +-11.5302944 +15.5428181 +-3.8234184 +20.7119522 +-6.2618093 +-1.7918962 +-19.8890858 +10.4020691 +-19.2152596 +-6.0001206 +-5.8932238 +5.3956203 +-10.0371971 +-18.3252659 +-0.1192032 +-12.7826185 +-16.7068253 +11.0285988 +2.6869388 +-13.7762880 +-27.5314770 +11.0095415 +-15.3293762 +-2.4533985 +-2.0584984 +-7.8799157 +-20.8387451 +-16.0064411 +-30.1387615 +-8.8636236 +-13.1369009 +11.4890089 +-8.6122408 +13.6854267 +-22.9694881 +8.3586302 +-10.4896059 +7.6624079 +-10.4360161 +-5.2586665 +-10.1130915 +-4.9921598 +1.0549092 +2.3456028 +-5.8531337 +0.9748634 +0.0134175 +-15.0306425 +-11.0616922 +-2.0055420 +1.3165139 +-8.0350552 +-11.2342720 +-1.2052969 +-12.5287533 +2.6841111 +-4.4787941 +-14.2193251 +15.4211130 +-1.1980716 +0.4481572 +-15.9396753 +7.4658666 +-9.0701361 +-7.5083933 +1.8037217 +-6.9957056 +7.7375655 +-6.4661679 +-6.0431952 +9.6266289 +8.5932570 +-14.4423943 +-2.8615713 +5.3318448 +-2.5895669 +-9.5251541 +-2.0587714 +-2.5047364 +10.5614061 +-8.3599539 +-4.1707683 +-1.7113206 +-1.5334369 +-0.5955208 +-8.9160862 +-12.1831961 +-1.1139607 +0.0700942 +-24.8966389 +3.7381997 +-4.5149727 +-4.6864109 +0.3187758 +-11.2405043 +-9.6014051 +-3.6519411 +-3.2169697 +-0.4132723 +-0.9571123 +-6.1795468 +-5.8732152 +-12.8709908 +-8.9211502 +-9.2225800 +-5.2407842 +-0.0086340 +-1.6523275 +-8.0180759 +-5.6888728 +-7.2476101 +-0.7746305 +-2.4481897 +-8.8288956 +2.2664597 +9.0292702 +-12.2519312 +-9.0833797 +-7.5277176 +14.7409039 +-6.9190478 +-3.6668320 +-15.8515739 +-11.3272133 +2.0832088 +10.1645088 +-12.4681673 +5.6261916 +-9.0221176 +2.7904065 +-3.6512935 +4.2993512 +4.1527443 +1.7994263 +-4.2620602 +-8.5371046 +-11.7666330 +-2.3189237 +-4.1030345 +-1.2350878 +2.7650750 +4.0984674 +0.5734454 +-9.1135788 +-22.2981739 +3.8941362 +-1.3360368 +-6.4659395 +3.3443294 +1.5376931 +-4.7962980 +-3.6574988 +-1.2305974 +-7.8039322 +-10.4990606 +-8.2601709 +-22.9572487 +-4.4457517 +-4.5432191 +7.6608963 +-2.0261717 +-4.6825476 +-16.9145908 +2.0051808 +-0.8914860 +0.6152099 +-2.6800966 +-3.3875284 +-8.4303074 +-1.5077593 +1.8761604 +7.0066748 +2.7541788 +0.8881686 +-0.5545369 +-1.9488997 +-8.5052290 +-0.2916222 +-11.9755888 +-5.7037606 +-0.3794737 +2.6866090 +14.6855698 +-4.1144295 +-2.2483356 +-4.1734591 +-8.6555691 +-2.2868886 +-0.5436816 +-3.8465395 +5.4548340 +-3.8774431 +-3.7189364 +-0.4001985 +-14.0242052 +-24.0333366 +-3.9532356 +-1.6170175 +4.8174758 +9.0710211 +55.5996628 +-15.4707222 +9.9214697 +-3.1791816 +-0.7883229 +0.2275793 +-4.0894952 +-4.4850078 +1.6851354 +-4.3984342 +-1.9545228 +-1.4175084 +-1.1991028 +-5.7120047 +-18.6841049 +2.3426981 +-4.0021849 +-12.6024466 +1.4083893 +-3.0056076 +-5.4333792 +1.0560426 +0.7913379 +-21.6539135 +-7.0566497 +-0.2200296 +1.0184584 +12.3259840 +-6.5726695 +-0.3095019 +-4.0854416 +-1.6112906 +-1.1541009 +-3.6451380 +1.2809825 +0.2891883 +-1.9216418 +-1.6869529 +-7.2008018 +-2.1505349 +-2.0150981 +1.1570230 +-2.5256410 +9.8131199 +-4.1729102 +4.7048368 +-28.0812511 +-14.6740551 +-2.0853233 +-0.6569009 +-1.9586964 +-22.5443058 +3.7116120 +3.3628020 +-4.6189156 +2.8424792 +-1.6655774 +8.8071337 +-1.7862736 +1.7375634 +7.4454751 +-6.1790752 +-4.4845624 +0.7121043 +-6.2616224 +-0.2079930 +1.3007026 +-12.4411354 +0.0601054 +6.8439922 +2.1946080 +-3.5362053 +-4.9346771 +10.3691759 +-0.9943842 +-9.0044355 +-0.3052679 +1.2634065 +-4.4564509 +-0.7726417 +-2.0932920 +-4.6586299 +48.5341454 +-5.0874596 +-15.0163021 +-1.4869553 +-1.8382682 +5.4477649 +-0.0716928 +1.6187375 +-6.9389586 +5.0451093 +3.3891971 +1.1950477 +-2.5121632 +1.5849886 +-11.2632627 +-1.2224953 +1.8754497 +-1.7801703 +-0.6367240 +1.9736214 +-0.0965499 +-5.9676256 +-13.7368889 +-1.3247868 +-30.9943066 +-1.9102168 +-2.0078890 +-0.3047078 +0.4101329 +3.2353950 +-0.8731179 +1.1029227 +-2.9093771 +2.3886292 +0.4545239 +-6.1872921 +4.6744328 +-5.9178219 +-1.4267396 +2.7580285 +-11.2509079 +14.3885469 +-0.6644894 +-3.4862587 +4.3980546 +6.4211907 +-12.5756893 +-6.3055081 +-7.1945977 +-3.5513623 +15.8602982 +0.6673807 +-12.0425644 +-22.0507126 +3.5479209 +-6.5673509 +7.3848553 +-4.9353337 +1.3390365 +-6.4276547 +-24.9892349 +-1.2946502 +-2.6093838 +-20.8273277 +3.3359666 +0.1239429 +-1.9846842 +-0.7739738 +-1.6658006 +-5.1304383 +-3.6771002 +-0.9843389 +-0.4357001 +-1.2150722 +-6.6489291 +-0.6657994 +-7.2140384 +-1.5517344 +-2.8588171 +-4.5900121 +0.9530064 +1.3998108 +-7.5746365 +1.7971050 +-5.7166529 +3.6415262 +0.8208835 +-3.2341261 +-0.0965919 +3.1442904 +-3.2443857 +3.4084117 +-43.4520874 +-5.6816025 +-2.1745191 +-4.2799163 +-11.5157290 +-14.6858559 +2.1219397 +-12.5055676 +-8.0447531 +-17.9235954 +-3.2380877 +5.6087494 +0.1825318 +2.0554929 +9.4523859 +-15.9503212 +2.4150047 +-2.3531945 +-6.0937638 +-2.0876057 +2.0147629 +-15.6433392 +-11.0852909 +-34.7935181 +-0.1474546 +-12.2456627 +-5.8433399 +7.1617393 +-0.2328916 +0.3423308 +-11.4692307 +3.4087393 +-1.3385303 +-2.8459461 +0.8943567 +-3.6253965 +0.0705521 +-2.9832697 +-14.1808443 +-3.1250362 +-38.3532791 +3.8686318 +1.0208226 +-1.9585487 +-5.0476141 +3.4626033 +0.6229345 +0.7302755 +0.6093391 +0.0382812 +-4.3397589 +-2.2505624 +2.1517034 +0.4923216 +-3.1627159 +-1.2146269 +-0.5055774 +-3.5004406 +-10.0648470 +0.4508766 +0.2594877 +0.7120649 +-5.8090754 +-3.5452778 +-3.1412225 +2.6089032 +-2.0416026 +-3.0260396 +-8.9022827 +-2.0284936 +-1.0966824 +-4.5421491 +0.5442191 +6.6347294 +-1.8829318 +2.0285945 +-5.2723246 +20.3383999 +-1.6606636 +-9.1964188 +3.0998347 +0.1270405 +-13.6625786 +-4.0763068 +-19.5560608 +-0.0537719 +4.7745757 +4.1967282 +-16.3344173 +-8.2762594 +-1.1066556 +-19.2428474 +7.6035218 +-8.0600262 +-2.7623973 +-4.7042656 +-8.4697924 +-8.1521616 +-9.4607849 +-10.6903372 +1.9210109 +3.2575123 +-3.5335522 +-5.2306070 +-1.5650034 +-1.5736983 +-4.0273709 +-8.2197781 +1.7095289 +-7.9999089 +-7.8952203 +-0.4423236 +-2.5670025 +-2.3278105 +-6.8105617 +-1.9566954 +-0.1691115 +1.8073009 +2.0346630 +-8.1329613 +7.5992751 +3.5775025 +2.7153945 +-6.4905782 +-2.1587515 +-2.5202653 +-4.0898170 +-0.0504553 +-22.5600262 +-0.3169230 +1.8024826 +-4.8997512 +-2.1274748 +-2.0467806 +1.7582951 +5.6446924 +-2.0302165 +-0.3138248 +-2.6850870 +4.4072371 +-6.0640774 +3.2071068 +1.2028356 +2.8966932 +-0.9503849 +-4.8676300 +-5.4305258 +-1.2464898 +-2.4598057 +-0.2093791 +7.4488530 +-10.9607906 +-9.9813957 +-5.6464696 +-5.9867325 +5.7676778 +-2.6245401 +-0.4173051 +-1.6379362 +3.3040330 +-2.3509958 +-0.9724144 +-1.6958883 +-3.4233587 +-22.5516911 +3.2159472 +2.2054005 +-6.3361273 +-3.6839483 +3.3846030 +-1.9913944 +2.1851363 +-3.1801322 +4.9615030 +-2.5162477 +0.1511944 +-0.5638502 +-4.6470084 +-21.3740826 +-2.1311052 +2.6329057 +1.5221794 +-3.3376904 +-5.9532213 +2.1696866 +-2.4107671 +-14.1119194 +-0.2421487 +1.5981760 +-1.4008203 +-7.1040006 +-4.2883563 +-10.2865591 +8.0606699 +-0.6451358 +-6.2998714 +-26.7534809 +-5.5969963 +-5.9172602 +2.6028128 +3.4991014 +-1.5886807 +1.0319389 +-0.5108321 +-4.1516495 +-0.8381220 +-0.7714335 +-9.8765755 +12.2603388 +6.6675119 +-17.9720631 +-2.9184904 +-4.3739810 +2.7472291 +-25.1346397 +3.3763146 +-1.2462947 +-2.3712704 +-2.3143308 +-9.1698828 +9.1606455 +-7.3050761 +-0.9260828 +3.4648919 +-3.6235740 +-15.2584438 +2.3568769 +9.6703129 +-2.0101705 +7.8270893 +-6.8417788 +-11.5926476 +7.0148835 +-5.2732048 +-12.4248810 +-0.8804073 +-3.6818843 +-23.5923958 +6.8842654 +-2.6541800 +-10.3063259 +-4.6941824 +-8.3037319 +-2.2306528 +0.3214067 +-9.3748865 +-0.7853871 +-3.8872168 +-1.4184173 +6.9173527 +0.2961795 +-9.0663099 +-2.7780952 +-1.6183827 +0.1629663 +-6.2111850 +-4.6942430 +0.2389044 +-0.0045853 +-19.1591511 +-1.9931060 +0.5712222 +4.1517835 +1.8974522 +-2.9191096 +0.2761688 +-9.7222700 +4.8539371 +-0.6803395 +6.2015147 +-8.9049473 +-1.2730108 +-4.4913645 +-1.0080181 +-19.5882492 +-2.4717844 +-4.3305449 +-0.3509424 +4.2799578 +-3.1016374 +-1.5995531 +-4.9179335 +-5.1784511 +5.1932869 +-4.1039281 +-3.2323582 +6.1238475 +1.2060033 +-8.5187149 +2.2437763 +-8.0238581 +-5.1445370 +-3.9510026 +1.0305327 +-9.3356638 +-1.5004613 +1.3936988 +8.0507898 +-6.9599733 +0.4601110 +5.4559746 +7.9915447 +2.2314811 +-1.2605811 +-7.9515390 +1.5933273 +19.7833214 +-7.4960551 +4.2346454 +5.6986747 +7.6025772 +-6.4183798 +-7.9387550 +-1.8964314 +-2.1801147 +0.1696804 +-3.8536499 +11.3702793 +-0.1018842 +-10.0193443 +-12.3171263 +-6.6376238 +-2.0343368 +5.8815517 +-17.9308949 +3.6934485 +-5.2554159 +-0.2995536 +-8.7009745 +-19.3780918 +5.7971306 +-1.3569632 +3.6379540 +2.4345822 +0.5307188 +-59.0851974 +-16.2888241 +-4.2414689 +-21.5991898 +5.6014199 +-12.6139555 +2.8595722 +47.2528114 +2.4161410 +-13.0332079 +-3.8013055 +1.7726601 +-8.8331575 +5.8075395 +-3.0553885 +-4.3777137 +-8.2072706 +-0.0453556 +-14.3539047 +-7.0162678 +-22.0117645 +3.1815033 +3.7717700 +-4.0629277 +0.3793119 +0.9451864 +-5.4489808 +0.1966590 +-11.6303883 +0.9546559 +2.7157905 +-14.6011810 +6.5310068 +-2.0501766 +3.3535616 +-11.4776859 +9.0821733 +-1.3208144 +2.4531343 +-3.3331690 +2.9041808 +-22.2990322 +-8.7009001 +-1.9827377 +-5.6916447 +-2.8579953 +-5.7354774 +1.8042186 +-10.0373793 +-4.4055729 +-70.1193542 +4.7813201 +-5.9717836 +-11.2378654 +-21.5119286 +7.5472655 +58.1163559 +-0.4825298 +-11.5960703 +-2.3935890 +4.8076649 +3.7768402 +-2.3613727 +16.0661278 +-7.7156196 +-7.6616974 +89.0369873 +0.5379202 +-0.5248313 +-4.8811145 +-13.2048731 +-4.9188342 +-10.1460896 +-6.5720205 +-3.6271820 +-39.0300941 +5.6097116 +-2.3098686 +-0.5947666 +5.1835623 +9.4201040 +-5.2136683 +1.0756805 +-6.8909445 +-0.9022483 +-5.4655437 +-0.7745603 +-4.1307273 +6.3073363 +-7.9366765 +11.2422724 +2.6586466 +135.6528931 +-56.4848366 +0.3227354 +-19.1938534 +1.3722075 +-3.4066095 +-6.0351968 +-28.8843651 +-1.3683404 +6.9798169 +17.2042389 +-8.3076420 +-3.2554765 +-7.8196659 +-9.4544964 +3.8752666 +-2.0056343 +1.3197702 +9.6636028 +2.3540967 +-3.2538378 +-12.2394218 +-9.9728165 +-5.1718621 +1.8838651 +-15.7481337 +-0.2086026 +3.2699332 +-5.9777675 +-9.5219707 +-3.0445900 +-11.0736122 +2.1909559 +-9.4452600 +1.7550588 +-5.4369712 +-4.8381248 +2.8053558 +7.7817907 +-18.9147987 +5.4012413 +-4.6222043 +1.9801320 +-8.7254715 +-0.9550742 +-22.8322201 +-6.5668063 +-0.5287712 +-3.9452903 +-0.9632137 +-0.9660809 +-7.2131119 +-4.6014185 +4.5553164 +-29.5007591 +-1.9867687 +-30.7577591 +11.2023954 +5.7791677 +-5.5167646 +2.9559753 +-2.1571808 +3.6065764 +-1.3201543 +-22.1306438 +3.1555145 +1.9802622 +-13.4194098 +-10.4939404 +-2.8477972 +3.4100900 +-12.1288853 +7.4214563 +2.1422229 +-4.3630371 +-6.3197951 +-2.8151381 +-38.3492966 +-7.3518143 +-5.9024000 +-6.0204802 +-6.2967157 +-4.3873034 +-7.6191163 +-10.1526737 +-13.1339645 +12.8277473 +1.5343207 +-2.6175780 +-1.9663713 +-25.8033543 +9.8930807 +30.8085060 +-2.4303610 +-1.3487465 +-4.9452024 +10.0463238 +-2.6643357 +0.8974989 +15.4381542 +-2.3828752 +-16.6967163 +3.2293582 +-0.9166773 +-3.2707324 +-3.1584616 +-6.8088970 +-11.9742260 +-14.7687521 +2.4796054 +-2.0627954 +-12.9235945 +8.7355032 +-4.5105405 +-1.2693698 +6.8174949 +3.5814691 +-6.0064330 +-2.2525856 +-4.9926920 +-1.4660685 +-3.9674637 +-6.8322310 +-6.5324774 +-3.9042659 +-6.2143879 +-8.9385672 +1.0885243 +-37.6390457 +-9.7454548 +5.8731546 +-10.9194908 +-0.5964874 +-2.8316946 +0.9112543 +-7.5891333 +1.5975100 +4.8447223 +17.3579102 +-2.1660271 +-1.4066442 +4.0075784 +-1.2236139 +2.6652265 +-0.4661462 +0.0381133 +15.2550116 +-8.9103518 +-5.2756205 +-14.8182440 +4.1178503 +0.6856796 +-15.2842417 +-3.0809267 +15.1803665 +1.9668251 +1.8376031 +-14.5160942 +1.0179337 +-16.8041744 +-28.9893551 +-12.4106245 +2.7148285 +-4.3790669 +-1.8237536 +25.6740437 +15.9233856 +0.8550378 +7.3505583 +-3.1405261 +4.6832180 +-4.3329988 +-1.9031025 +-11.0051479 +-6.5452852 +4.3766594 +2.5918078 +-2.3811555 +-8.0393629 +-4.5727706 +-1.8807232 +1.2986839 +-6.6426868 +-0.0341252 +-5.3355579 +-9.7609930 +12.4692745 +-4.6819386 +-0.2167480 +-0.5689800 +3.9714530 +-2.9051962 +1.5792506 +1.5302037 +2.0858328 +-14.2572374 +7.5105767 +-7.1131735 +-1.6308520 +-4.4093361 +10.7651310 +-5.8063073 +-6.7500877 +-11.5483656 +-5.0872054 +-4.5111647 +-9.0498419 +-14.3242760 +-15.1934938 +-11.6621571 +-0.9160532 +-4.4540648 +-5.1758981 +-6.9722953 +3.1252394 +-9.6951437 +-5.7878189 +0.2319251 +6.4612722 +6.2895284 +21.3379135 +-15.7447472 +-1.8383944 +-10.8342428 +-0.9177311 +0.9996001 +6.1793756 +12.2916336 +-3.9823189 +-3.6704869 +7.2121468 +-1.9469458 +-5.9121799 +-15.7161627 +-8.6704092 +-14.9765120 +-20.3890514 +-5.8535080 +-8.6102104 +0.1906760 +-6.0682373 +-1.7507370 +-1.4833277 +-6.2095566 +0.4708325 +-8.5494118 +-2.8684366 +-30.3890362 +-0.5588267 +-2.2789321 +-9.7809153 +-4.6952963 +-23.4698639 +0.4534849 +-13.1609020 +7.3299193 +9.5034771 +-2.0242426 +-1.1873264 +-1.6944302 +12.6715164 +-7.5291562 +-3.3690436 +0.6266237 +0.2512066 +1.4862595 +24.1603756 +-18.1878014 +1.2385510 +7.6136136 +0.7093679 +6.2489142 +-4.8873215 +15.8303871 +19.0243053 +-26.6509399 +4.8281975 +-10.0265455 +-38.0871964 +12.8413782 +-7.4641342 +-3.2132237 +6.5199795 +0.3058874 +6.2058105 +0.9132659 +-16.5758591 +-3.0189810 +-4.3476443 +3.3871710 +2.1291463 +3.6143041 +7.2193384 +9.8051271 +2.1588402 +0.7052127 +-16.7308083 +-25.0476151 +8.2077942 +8.0317955 +-3.5184839 +29.5157337 +-10.3829679 +5.8710136 +4.2385869 +-5.2526908 +-3.7099679 +2.2674704 +-1.8585203 +18.5779247 +8.0124512 +0.6946285 +13.2352448 +-5.1807976 +-9.6231098 +-2.5779762 +-6.1256399 +-22.4431629 +2.0253558 +0.8308669 +9.7504988 +-0.8025987 +-4.1061974 +13.3975143 +-3.0567136 +5.0533409 +-7.6651587 +2.0088129 +-2.1700575 +9.9621296 +-18.7884922 +-26.1340561 +3.2243574 +-14.8690577 +22.7623119 +-3.0427964 +47.1426239 +-2.0328038 +4.0272260 +2.4415567 +-21.9526062 +3.3026421 +5.0556812 +-1.2970955 +10.1975212 +11.4541636 +7.8859382 +5.3135133 +14.5361204 +8.4009743 +16.6882553 +-3.2388973 +10.0739384 +-2.9845085 +-8.4250107 +-9.1914043 +16.2850056 +-8.0729580 +22.7580757 +10.5485020 +-0.0222357 +-0.7355880 +7.4266572 +3.9627380 +-14.8181648 +7.0424523 +-10.7970438 +4.9628496 +18.2343845 +3.7172801 +4.9627085 +-0.3586951 +7.4281936 +4.5293517 +-5.4844279 +-4.0448413 +0.8003202 +-126.5492172 +-2.4404221 +-3.4495325 +-8.8555231 +3.7341394 +-2.4649329 +-2.8873739 +31.1333122 +6.2090449 +-28.8087654 +5.2929187 +-1.0993583 +-0.9431192 +21.8302574 +0.8596608 +-2.0073986 +1.8943471 +0.0307397 +-15.4194069 +2.5696328 +1.3661802 +12.0595579 +-19.1225872 +0.8057259 +-10.2422676 +-14.1521273 +20.2870979 +38.2928391 +0.1812520 +3.8071861 +-4.3870006 +5.2171803 +-0.1707173 +-9.5478191 +7.2200875 +5.8682694 +14.5970421 +-9.6380243 +-10.7450838 +11.7342815 +2.0105939 +15.7308273 +3.8886809 +62.7173309 +14.8654661 +16.2773914 +-20.6437054 +4.7053437 +31.1505413 +22.3429203 +65.4882431 +-0.9359049 +13.6039801 +5.1761594 +0.8815598 +6.6815062 +10.9887400 +34.0478210 +19.5391769 +-0.9631934 +-23.8972301 +26.0390797 +-31.6019897 +2.7140613 +1.7057344 +-9.2878075 +23.5054302 +-12.9507551 +-0.1328610 +-3.0694470 +16.8583241 +-9.8522787 +2.1040473 +-30.4707832 +-3.3887069 +15.0543203 +3.3159735 +-2.5063846 +-21.7748528 +0.6956065 +8.2190609 +8.8977785 +-14.0972605 +-14.8673973 +-16.5069885 +12.6135902 +4.1280060 +-1.6047821 +18.3590622 +16.1204758 +12.1667280 +30.8310642 +46.8547287 +-25.1513939 +-0.3425933 +0.9062642 +-57.1580772 +-48.1523170 +20.5879765 +54.4658966 +9.2168636 +-1.3370708 +3.4244192 +18.5636234 +12.4029884 +-7.4468455 +0.0284128 +-16.5061665 +30.9870968 +34.3237419 +8.5646324 +2.9683282 +-2.1136041 +-52.7904358 +8.6889009 +-9.0146208 +-29.6383686 +7.7602696 +2.8795688 +29.4875984 +-36.7733650 +24.4993725 +8.5417156 +-5.7969475 +9.6273918 +-1.8740780 +4.0227103 +-5.8487444 +10.0697527 +-18.4309120 +-13.8159227 +-3.9066563 +-20.8448009 +-49.6323700 +-10.6598043 +19.2797565 +-11.5328217 +7.9175749 +-27.0150471 +7.4632220 +3.5917804 +-31.7540646 +30.2603168 +13.0435295 +-1.0567597 +9.7282715 +-15.0587425 +5.8651476 +1.8669484 +-0.4626245 +7.0418334 +-3.0611026 +11.9713106 +6.3904080 +-7.7236967 +2.7161212 +-1.8371444 +15.8750648 +3.6289327 +7.2580919 +2.3555145 +8.9806843 +9.0768223 +4.2480407 +7.2087855 +-8.8992243 +21.3707409 +11.0538845 +5.4796629 +4.5054617 +-4.9974194 +7.8285990 +-11.2961664 +2.4035156 +-18.4744778 +-1.2959433 +-14.1479244 +7.2048421 +48.2358284 +-3.0239995 +3.7290740 +1.8904603 +-16.2926788 +6.8196325 +-3.0504780 +9.6353979 +6.3048663 +2.4340270 +14.4820900 +7.6597643 +14.0223598 +15.9963636 +-5.2323709 +5.6308351 +-1.6652830 +-5.6424217 +-10.1991901 +7.2161422 +5.5472546 +-0.1091588 +2.7403457 +2.5558875 +5.6278601 +4.5270472 +3.2221653 +-7.0113544 +10.0146503 +3.4705050 +1.8088143 +-9.6515760 +5.0985141 +3.3079734 +14.8949575 +-8.0852957 +8.9799328 +-7.9933858 +1.2463906 +5.1748395 +-12.8998766 +3.2270062 +6.9642305 +30.6660538 +-1.4727259 +8.3755293 +-22.6869831 +122.8124542 +-0.8083200 +18.0462685 +0.0713226 +10.3262053 +1.0369334 +-5.5037861 +1.0249408 +-15.9944096 +-5.7153425 +-108.2697830 +11.2142792 +19.3177891 +1.3675754 +-1.8861595 +2.2668781 +13.9051390 +-1.6079471 +-3.9321823 +-21.0934505 +26.2500343 +1.6853768 +5.4859028 +-2.2512362 +5.8104076 +4.6154046 +0.2415066 +-2.3518658 +-5.5719662 +6.0278950 +-8.4439754 +4.4236112 +-0.1704935 +12.5579376 +-4.1294651 +-1.3745576 +-14.5999603 +-8.8712654 +15.1017399 +15.5829010 +-10.5852480 +-3.9917159 +-2.6008275 +6.9751668 +13.0386314 +-0.0635462 +-1.4531785 +5.2516594 +1.0529699 +-2.4209116 +2.3538160 +-2.4525826 +-0.2329660 +-0.9090007 +-2.0995469 +3.6571739 +-4.0446343 +-1.8535746 +-3.2860749 +0.7716681 +1.3151125 +-4.2889175 +3.7023115 +7.5519552 +-3.9963167 +0.9040699 +1.1136173 +-1.2738951 +-8.8878603 +2.6294072 +1.3575839 +5.2044888 +0.7187308 +-2.7310669 +2.2801578 +0.9665068 +-4.7996416 +-2.7812858 +-1.2322912 +-6.1887140 +-2.5904324 +45.9797821 +-0.5153743 +-2.1683726 +-0.6509342 +-5.1482477 +2.5853570 +-1.0127556 +-1.4102304 +4.2694373 +-1.9710772 +-0.8986499 +12.2567530 +-0.4526236 +0.2480873 +2.0443506 +-3.6725891 +2.3280768 +-1.2686968 +-3.8528073 +20.2653751 +0.1421286 +2.3289306 +-1.5408920 +-1.3277006 +-0.1411688 +1.2430537 +2.6303089 +-3.9296823 +-0.0902296 +-1.1686631 +0.9233999 +-2.7719219 +0.9398794 +5.4388776 +2.7664347 +-6.8653479 +0.4441298 +-12.1740007 +2.0518727 +-8.9063530 +4.1430006 +1.6626316 +4.3760490 +4.4113646 +-1.5854063 +-0.6704636 +9.7954645 +-1.9897883 +0.2181059 +8.4729910 +-1.4982159 +-2.8132591 +-0.1151805 +-1.6833469 +4.0526934 +2.4016104 +10.4648905 +-21.0996971 +2.9701793 +7.9901237 +-1.5486253 +-2.1788216 +-1.9053153 +11.8008394 +-3.2531164 +-4.5668492 +-2.8247900 +3.8651557 +-1.7456403 +-1.3752619 +-1.8659538 +-4.1438527 +-4.8599939 +0.1225706 +-0.0629134 +-0.2274643 +1.1296612 +1.1871710 +-9.7293549 +-1.9365511 +0.6038588 +-4.7465968 +-12.8761883 +-3.6073451 +-1.9400810 +10.0728617 +1.8892022 +0.1402553 +-0.1408766 +3.4887733 +-2.4521348 +2.5630217 +11.2629690 +0.0768325 +0.9000666 +2.2521260 +-2.0251083 +-0.3918564 +1.2183244 +-20.3969059 +-8.1463079 +-0.4376942 +-6.1283574 +-9.5918818 +3.0281010 +-4.6962805 +0.2992140 +-3.9507937 +-12.1751795 +-2.6026354 +-0.7185847 +-11.1341782 +0.9321629 +-14.0671787 +0.4334484 +4.0184002 +8.7569160 +1.0384185 +-1.1589353 +-6.0927830 +-2.2566540 +-1.5882144 +2.3100448 +-3.8334634 +2.9157686 +16.3715782 +-3.5690238 +-7.9937816 +-6.9245906 +-3.3447657 +-3.7491386 +-0.5942404 +0.4741125 +0.4316095 +-4.7290778 +6.5525355 +2.4977903 +-2.4591167 +-8.7816029 +-4.8518920 +-2.6575649 +-3.4498737 +2.0330758 +-9.7778578 +-0.4013678 +-0.0932320 +-7.6167932 +3.9375398 +2.2410054 +1.1718569 +-2.7610776 +-33.4422226 +0.9300512 +-4.7811241 +-8.9929991 +-2.7161281 +-2.0265119 +-9.4050798 +0.5243282 +-2.6044004 +0.7860376 +2.2453632 +-14.5475464 +-5.6444407 +-0.9377172 +-7.6129942 +-1.0153506 +3.7613950 +-0.7550679 +1.4252682 +-2.9822946 +-17.7061882 +-1.7120800 +6.0344429 +6.8169255 +-3.7868392 +-4.4185057 +-59.0260735 +-0.4586438 +-8.2141151 +-0.1429240 +-6.2366533 +1.5242978 +0.6553810 +-12.3476753 +0.6385641 +-4.0709715 +-0.5905046 +-3.9071383 +-0.0872734 +-0.8774402 +4.4257479 +0.8417994 +-10.7581434 +6.4507456 +-1.0585235 +-5.7028427 +-6.5703025 +1.2075915 +-8.8429937 +8.6873598 +-2.9835761 +-0.5496079 +-3.6571269 +0.0447676 +1.8349521 +-53.6822968 +-4.2311525 +7.1728806 +-0.6189967 +-10.3017073 +-0.4366492 +-0.4163450 +-0.3062148 +5.4611807 +0.4237648 +-6.8376217 +-2.0931678 +7.9896922 +-5.3616567 +5.0589614 +-0.7041596 +-2.6039846 +-7.8241029 +2.0945861 +0.1727184 +1.5269625 +3.0365868 +0.8238164 +3.1207867 +0.8750503 +-0.5016750 +-0.3238335 +0.8478281 +1.2403526 +-1.4578891 +-7.5185156 +-0.0576145 +-2.1360211 +1.6609415 +0.1334949 +2.5642395 +0.3719361 +0.0767436 +-1.0685710 +-0.4194773 +0.8241412 +-3.5790973 +-1.1747079 +3.5884726 +-0.2007965 +0.3410691 +-4.1962862 +-52.0213318 +6.2212801 +4.9691315 +3.4126503 +3.0325181 +1.7984142 +0.8468302 +3.0153580 +-0.5553251 +5.4758162 +0.9253965 +-0.3364150 +0.8099574 +0.8458863 +2.0643258 +-1.8423791 +-1.9465775 +-0.2024757 +1.7496527 +-0.7016286 +4.0012221 +3.6735725 +-5.3690763 +-2.4531596 +-0.6479694 +-0.5673203 +14.1611452 +1.9118042 +2.0846446 +3.6732557 +-0.1962824 +0.0214326 +3.2292914 +0.2861995 +4.4344497 +-34.9949913 +-1.4839145 +-12.4168024 +1.9051148 +1.1368542 +-1.4822104 +-0.1006350 +2.3177962 +-6.6190271 +1.1101218 +-0.0970150 +-8.9518938 +2.9073863 +2.7905147 +5.1189122 +-0.1524931 +3.9182904 +15.2127256 +7.0404935 +-1.0383838 +0.6792530 +4.4223523 +-1.5432441 +1.1390977 +5.0536780 +1.5311408 +1.3181124 +5.0490303 +-2.3804493 +1.7759178 +0.3036888 +-2.6486130 +6.0254784 +-1.2772434 +-0.4145215 +0.7492902 +1.4573416 +3.0479665 +0.0699064 +1.8482542 +1.5325532 +-1.7418905 +-1.3179917 +2.3315136 +-0.1151090 +0.3933501 +3.4778945 +2.5633128 +-29.9572163 +2.6237032 +1.5814012 +3.8678002 +-1.7469558 +7.9434500 +0.3080772 +0.3108856 +1.5897539 +-0.6238897 +17.5166626 +-1.5800490 +-4.9409781 +-2.6285613 +1.0374885 +-0.9672891 +0.9022892 +0.1986250 +-1.3587000 +1.9106171 +-1.9394192 +-0.4428367 +-2.9425824 +-8.8213720 +0.7338740 +-2.7490263 +2.1581035 +-3.0267720 +-8.7299137 +-1.0560721 +-0.3585236 +-2.9175584 +2.1818888 +2.4001367 +-0.5391003 +-0.4398210 +1.7319313 +1.4703274 +0.4962043 +4.8638391 +0.9094127 +1.8386962 +-0.6817227 +-4.2139621 +-2.7061903 +-4.1061344 +2.1508143 +0.4930495 +-5.4682031 +1.1182830 +-4.5848422 +1.4362550 +-3.6187589 +4.7510667 +0.3345019 +1.6248120 +1.8419652 +-5.2548141 +2.1611245 +-5.3168697 +-2.5256491 +-0.6670104 +1.9409873 +-6.2637796 +-0.7017584 +1.0958558 +0.0958792 +2.9155643 +2.7039149 +-0.1331962 +-4.0213509 +-3.3975692 +1.2113968 +1.1333427 +0.2213504 +-1.0828381 +-3.2615862 +-1.9930784 +-0.0110051 +2.7434483 +-5.9513459 +-0.4083238 +-8.4992914 +-6.2797379 +-0.0694398 +-4.6850300 +-1.2438835 +3.0761054 +-1.8670443 +-3.0659482 +-0.5350694 +-7.2209196 +0.5246589 +0.0254123 +1.5785071 +-0.9546744 +-0.3955075 +10.6999083 +4.7681513 +-6.8201032 +-1.5960985 +-0.9138849 +-0.3576251 +0.6603061 +-1.2547920 +0.4216370 +-2.9582090 +4.1107798 +-1.3847796 +-0.0150208 +1.4408386 +3.6000724 +2.1765609 +7.8384705 +-5.4294991 +-2.2844777 +-0.1474328 +-2.4713542 +-1.0179868 +4.3821630 +3.9596822 +-2.0038373 +1.9615250 +-0.2410622 +0.9014614 +0.3975413 +8.6811810 +1.0215333 +4.9823422 +-1.2942673 +-2.9053321 +1.2018449 +1.2653925 +7.7561312 +0.8561589 +0.4360624 +-6.4324355 +-1.4814621 +5.6878238 +1.4338869 +1.2667623 +-3.0760961 +-0.2225629 +1.5051239 +0.8895125 +1.2325073 +-3.6126282 +8.5455818 +5.9249439 +-3.0402143 +-1.8710792 +2.2816639 +-3.9454172 +-2.2501879 +-2.4254413 +-3.8327787 +-8.5164137 +-2.6453371 +1.7955620 +0.7632919 +-5.2188177 +4.2792277 +0.9612901 +-21.7482662 +1.4274026 +1.1466308 +-9.3314571 +-7.7038846 +-4.7423148 +2.1679628 +5.0453196 +-4.1089253 +0.6079664 +-14.6685266 +-2.9507227 +-11.0499811 +27.4974251 +-5.7160168 +-4.4344773 +-2.5438623 +-24.5239182 +6.5391159 +-12.0496721 +-2.2542491 +0.7259731 +-12.4739676 +19.0377007 +0.1509510 +8.7991056 +1.5583446 +-0.1977184 +-0.1014628 +5.7441607 +-3.0665197 +-6.2029095 +-5.8599086 +4.8624244 +-1.2801759 +-4.5117607 +38.0719833 +0.2754071 +-1.7453586 +2.2779338 +-2.5294318 +5.9500165 +-2.4993300 +-0.8433530 +-9.3643656 +15.8712845 +-6.7023377 +31.6529179 +-86.7257767 +-1.5302665 +4.1381264 +2.0215664 +2.1170769 +-13.3600397 +-31.5293102 +2.5760005 +41.2879524 +-6.6107674 +-1.7823178 +-5.0882826 +-1.0746409 +4.4086518 +31.9870243 +0.0240670 +-8.6953526 +-5.8683167 +3.9007118 +3.5898476 +-1.8762498 +18.6343498 +-1.0408328 +-0.3746645 +15.9937449 +3.7522478 +-3.9396703 +2.1005228 +-2.6015749 +-16.4596901 +19.7803917 +-10.3850107 +-7.8850536 +-4.3808904 +0.1202343 +-1.3784978 +13.3920622 +12.4517412 +3.1885169 +-1.4292220 +-7.1616940 +0.5915787 +-2.1903656 +27.1000671 +-14.5864124 +19.7875500 +-12.6980009 +-7.5151920 +-1.0441736 +-0.5093142 +16.0572910 +-0.8329788 +-2.1709137 +1.8514031 +0.7611704 +-7.0903845 +3.0770736 +1.7533337 +3.0285685 +1.0648820 +0.3752454 +10.7440557 +0.7508765 +-1.2442768 +19.3556709 +-7.8678222 +-0.9347414 +2.5335798 +11.5807409 +-16.8289299 +-7.4877005 +-4.8784170 +5.4248652 +17.8445740 +4.9618931 +2.3623912 +5.7096529 +-8.0770206 +10.9098930 +8.9173374 +-6.5654588 +-24.6926632 +-2.0147665 +-11.5065355 +-12.6945362 +5.5408058 +1.5093246 +18.7946854 +5.5061107 +1.0060374 +-11.4514856 +-2.7988229 +-15.0318537 +26.9442730 +3.7703540 +-15.9763508 +-1.4735950 +10.8962440 +4.7297602 +-3.9634879 +0.8985306 +6.2474985 +-7.4920020 +-6.8030763 +-2.9272361 +2.4013758 +-9.1902609 +-9.4752808 +-0.0154690 +9.4318819 +-2.5858147 +4.0973892 +-5.8258862 +2.8479929 +-2.5666726 +-1.2141427 +26.0456810 +-4.4497361 +-7.1208715 +13.3853321 +1.7363888 +4.6088653 +-4.5453925 +-0.6936170 +-6.5981116 +-0.5224079 +-11.5626011 +10.8442698 +33.2349777 +-0.5630357 +-7.8141952 +3.3843164 +19.1654015 +-7.9035053 +7.6202941 +-10.3953133 +21.6685429 +1.0660625 +16.8180103 +14.6369820 +-9.1725969 +2.2961621 +38.5182648 +1.1581168 +-14.5623426 +-6.8771849 +-5.4534144 +2.8676445 +8.3334732 +17.1882095 +1.4804645 +5.2873611 +31.9908180 +2.0361955 +-0.5016254 +6.8741255 +-6.7576175 +-2.0185995 +4.9764681 +10.8067875 +4.8981452 +7.4620605 +-12.9318275 +3.6096179 +9.9273396 +13.1330395 +8.2191687 +-6.4975524 +-13.5930996 +2.5658064 +-2.7950008 +-19.7230091 +11.8590422 +-6.6329169 +-6.9172349 +-12.0354204 +0.8025899 +2.2836118 +10.4639616 +-12.7233963 +-10.6372499 +7.7949309 +3.0697453 +-3.1834528 +0.6460066 +-6.9770775 +6.5433512 +-5.7429414 +1.1166503 +33.4609718 +-1.9966210 +2.4064105 +-13.9186506 +-2.9776959 +5.4059725 +-5.3957319 +-20.1152325 +21.7110806 +3.3336504 +5.9107203 +-13.9721622 +-46.7985077 +-7.5543747 +-7.0391216 +-11.2297869 +5.3228722 +-7.8195500 +-7.8881874 +9.7781181 +14.4151735 +4.0665426 +2.3355830 +-2.0488939 +-10.0282555 +-1.3616639 +-6.1076303 +-4.7806635 +-4.2947216 +-3.0769629 +17.5064411 +10.0660315 +-3.7752807 +-3.7729678 +-5.8882604 +-2.9193962 +-6.8913851 +2.1350441 +-2.0421741 +-1.5748193 +-5.4519482 +2.6879261 +1.5575056 +-27.8909569 +-1.9579327 +-2.1039484 +16.9914265 +-5.9020638 +-2.2999635 +10.1887398 +2.2204957 +-1.5545769 +0.7170160 +-0.5982077 +-4.3479753 +-7.9944377 +3.3814297 +3.6978567 +-10.0546694 +-2.0406759 +-5.7265830 +-5.5760260 +1.1010485 +3.4912550 +0.3232269 +6.0359406 +-8.8498268 +94.4965744 +2.8006027 +10.6606846 +-2.2232711 +-12.0805626 +-1.8886977 +-7.3945346 +-1.1149153 +-15.9969530 +-1.0742251 +-11.3398571 +-14.7607803 +-3.7265053 +-2.1396010 +0.1637548 +1.7204933 +1.1107740 +6.0122547 +8.9893112 +0.9034222 +-6.1970358 +-5.5925217 +-9.8907146 +-8.7680092 +-22.2118015 +-3.8512075 +1.2764248 +-6.0876198 +-9.1806517 +0.7823468 +4.2622638 +0.2901359 +-16.6448650 +-4.3862519 +13.3560352 +-2.6450255 +-1.3637290 +-10.8053703 +-6.2743158 +1.5356205 +6.7185254 +-4.5855117 +3.3729014 +-4.9925785 +-20.6033802 +6.2703056 +8.2083673 +-2.4191232 +-5.7319932 +-6.7357264 +3.4508078 +6.2012253 +12.3272963 +-7.7885013 +-4.9354434 +-14.5695410 +-11.6733274 +-2.5024297 +-9.3454123 +5.3793745 +-1.0286138 +-16.3966408 +7.0092812 +12.0219517 +-1.2612927 +-1.5939546 +-4.8347301 +5.7141714 +7.0182481 +-18.6050587 +-2.4176521 +9.4712219 +-8.4683714 +-1.3833529 +-3.4149964 +2.0434439 +-3.5232418 +5.8562646 +-0.5552416 +7.2520394 +-16.2999687 +11.4436340 +-8.8972950 +-3.4794769 +-4.4222436 +-10.1903811 +7.9312525 +-22.2439537 +4.3206763 +1.8869725 +-5.4162483 +-22.1357422 +1.1510133 +15.9981403 +-6.5497265 +-2.4193919 +-8.2557049 +-28.6284370 +5.8815703 +2.4150722 +1.7172425 +9.0629978 +-2.2389393 +-1.2327749 +6.7769976 +-7.2473245 +-7.0617270 +-9.1768093 +-2.1740434 +-15.4833860 +-3.7308004 +-7.6789656 +-4.0895948 +-4.0195141 +6.5413184 +-5.1920347 +7.3457069 +2.3913004 +-2.6802976 +1.5197921 +-3.6521845 +-6.0323181 +7.4519377 +5.7763939 +2.6638892 +-2.4966714 +1.4668959 +-3.1083379 +-18.1068840 +-0.7614798 +-5.8755226 +3.8513362 +1.4336170 +-9.2220459 +-26.3589973 +2.0933206 +-0.8626818 +0.5335844 +11.2206240 +16.5146313 +2.3430195 +-9.5128012 +16.0102654 +7.2509217 +6.0879388 +-1.5032285 +-14.0574322 +-0.0390606 +-7.0418901 +-7.7448597 +-0.1392293 +-3.3637223 +15.9980412 +-1.9533757 +-3.4027615 +8.5207186 +7.0184379 +11.1338634 +3.9692774 +2.2832685 +-9.9863815 +-4.8524904 +-6.7884398 +7.2646122 +0.3266370 +15.7393217 +5.5244718 +3.1156809 +-19.0272312 +15.4226751 +0.6598326 +8.6760302 +4.5405903 +-3.8108706 +9.4710274 +1.3029600 +4.0642290 +5.0810704 +10.7658644 +3.2401464 +-24.0370426 +-1.3885924 +6.2601142 +1.1158925 +1.3917751 +2.0134590 +-6.1578884 +5.1964159 +9.2232399 +11.3677778 +-4.6039996 +-12.2301035 +-0.3507901 +-1.5166690 +1.8851674 +-6.7731743 +-5.4414620 +17.6764164 +2.7630186 +-8.3964453 +5.3063707 +0.6744273 +1.7407573 +-2.0922136 +2.4540462 +-3.8349361 +-0.4747863 +-5.0526853 +1.8855345 +-6.2294078 +7.3973136 +3.0309412 +1.4094650 +7.8981194 +-4.7941422 +7.7817082 +-4.1000800 +-0.7547203 +1.7643714 +15.4431820 +-2.0948417 +-7.6495695 +10.0596218 +0.9015005 +6.4450898 +23.3457870 +-7.6593685 +-0.4190517 +-0.8376219 +-2.3935964 +2.2913499 +-1.2831635 +-6.2155232 +6.4105778 +6.2959294 +-9.8545628 +2.0420442 +8.1689901 +-0.8507049 +9.8606710 +0.2272155 +2.2970662 +-2.2814474 +5.0006304 +-7.9065990 +-4.9889102 +3.8030877 +0.9372579 +3.1697552 +4.5291781 +-7.0251293 +-8.1118374 +-6.5827203 +0.7000970 +-0.5079567 +-0.7869480 +43.6495514 +-0.8642018 +2.3526719 +-4.8695951 +0.7013893 +6.9736600 +27.5699997 +-1.7874109 +-5.4507089 +1.4778786 +-11.0785990 +-8.5776997 +-3.4116285 +9.5388527 +-7.3788528 +0.4679958 +-5.5001292 +0.5757768 +12.9683781 +-3.0286760 +-1.0584929 +3.8478322 +-6.0502267 +1.3426431 +-9.5158815 +2.6743569 +0.6508601 +-8.2654104 +-9.5349178 +-6.5914183 +-6.9564986 +0.3667643 +13.8526468 +2.7548921 +6.8374100 +-11.1092482 +-2.0899744 +-21.8394222 +-8.7539721 +-0.5224989 +19.9853420 +-12.8770943 +-0.6836213 +-15.3332634 +-10.7580185 +2.1898842 +-3.3904073 +-3.5643048 +-3.8969431 +-7.1698112 +-3.4247580 +0.2298418 +20.0106506 +-0.8862560 +-5.7351351 +6.2909002 +-3.7931945 +-3.0284953 +5.3055201 +-2.7260079 +-8.4830990 +-7.0109916 +4.6241689 +-3.4787910 +-16.0204334 +-39.4186211 +3.8441751 +1.2783695 +-27.0382786 +37.6518211 +-3.6540339 +19.7976780 +-19.0861645 +7.7057123 +7.3544497 +2.1552777 +-15.9917736 +4.2445264 +-9.0801630 +-8.9258480 +-18.0523663 +-29.1589642 +6.2659664 +-13.0632582 +-52.1349220 +2.9180713 +0.3026701 +-23.0276775 +0.4336202 +-15.2092886 +-23.6870804 +-27.2748528 +6.5981755 +17.3595638 +1.0011139 +-27.6332130 +-11.6054325 +-56.6734276 +-6.6327729 +6.4118543 +10.0302877 +-4.1662278 +13.9872303 +-59.5289230 +-28.9065628 +3.6490417 +-13.0962849 +-7.4828444 +-17.6872444 +6.4663024 +6.4970732 +4.4390197 +19.7329388 +-2.0703161 +5.3601203 +-7.9493284 +-28.7380447 +3.1700602 +-0.5326295 +-4.9981494 +16.6594887 +-3.0359843 +8.1210260 +-0.6012513 +10.0646381 +-0.9094042 +-45.7495079 +-38.7558441 +14.0776281 +14.2347670 +-7.8417706 +4.9949150 +-68.2684174 +-14.5582390 +17.2007027 +-11.2980337 +-74.2259903 +4.3775296 +12.9515457 +-25.9750595 +-30.3190136 +-19.2084770 +8.6523142 +13.0528736 +-21.3902664 +2.7324817 +-25.7334709 +12.7434216 +-3.9116302 +16.8750324 +-131.8983307 +-12.9012680 +25.6101627 +-18.1600037 +5.5075359 +4.5891404 +-25.9776440 +32.6153221 +-4.8380127 +39.2680626 +-41.1554565 +7.9794149 +-15.3422747 +2.3021448 +24.1166058 +-96.0827713 +0.9691314 +3.8280463 +-2.0625403 +17.4912071 +3.2879329 +-157.9414368 +1.9481447 +5.0602217 +22.3516426 +-23.4559441 +3.7843461 +5.4443278 +12.2826109 +1.7102599 +-4.3029575 +-2.7065651 +1.2213360 +20.7092762 +-4.5691485 +11.4873486 +-12.9600897 +0.2257513 +-7.2923856 +-9.2612715 +0.8357913 +2.7596111 +0.9390790 +-4.9771328 +-0.6739238 +-1.6889685 +2.9837570 +4.4776087 +-0.8391432 +1.8737713 +0.8998446 +-1.3859862 +0.5754866 +0.2920611 +0.7885875 +1.5709286 +0.7146414 +0.6441420 +-9.7604141 +2.1382914 +-3.8019190 +2.7486157 +-0.5024642 +0.2152525 +0.6285056 +-3.1289132 +1.3791137 +0.1656326 +0.2146302 +2.6020238 +-2.1664004 +0.7072861 +1.3727376 +-2.8559601 +-2.1792569 +-2.3214922 +-1.3208531 +2.9639118 +1.4677885 +-1.2520586 +1.5302621 +-0.3750691 +1.8678690 +0.0087304 +-1.4747623 +-1.4187224 +3.4645081 +-1.5940717 +-0.6840601 +2.5523925 +-5.2248130 +0.0815983 +2.6934507 +-0.7361700 +-1.7247416 +0.3029075 +2.6907005 +1.4061525 +0.5772426 +-0.7152015 +0.2466564 +-2.1614182 +1.3295087 +5.0129147 +2.9431863 +6.9167104 +0.9110324 +0.8796253 +1.2942920 +-1.0085330 +2.4318104 +-2.0922666 +5.5246201 +-1.0958585 +8.3605137 +-0.8035455 +-0.3560294 +-2.1452596 +-4.9826479 +0.5649132 +6.9456291 +3.4888029 +-6.6890683 +1.4317725 +3.6007385 +-0.7948850 +-15.3181143 +-6.2545342 +-11.2250347 +1.7982290 +2.1966927 +-1.2226638 +-1.2451860 +0.0658100 +-5.4541874 +-0.4424592 +-3.4248598 +-6.1669073 +1.4315354 +1.6401367 +3.0418065 +3.4692683 +-1.0101893 +2.7985840 +-0.3452708 +-2.3434744 +0.7855747 +0.8630570 +-0.9118033 +-5.6772714 +-5.5069203 +3.4113474 +-0.7122853 +-8.8446808 +-36.6227798 +1.3333658 +-1.5305361 +1.0943153 +2.5523853 +-4.2390189 +-0.1066528 +2.6287949 +1.2984080 +0.7474839 +-1.9317038 +0.6556778 +-0.7909855 +-1.9508013 +-1.9291282 +0.9734828 +-9.5506382 +-10.8717194 +0.9037883 +-21.7053165 +-0.6866347 +-2.8236961 +-11.3162279 +23.2876205 +8.4429913 +1.7868834 +2.2461247 +-1.0944971 +-1.6340878 +-2.9082036 +-9.0158663 +-4.4004383 +-19.0591583 +-11.2367239 +6.4616332 +-8.3915577 +-29.6977406 +-6.5540080 +-2.9109056 +-6.6160955 +-9.1947889 +-6.7942557 +-0.3919728 +-13.0071487 +-2.1490817 +13.2419682 +-1.3898493 +-10.1035061 +-10.9041424 +-37.2726860 +-1.0632569 +-13.4489164 +-3.3099482 +8.4078064 +-3.0688174 +-9.7186670 +11.4204102 +-11.4885712 +-8.6245174 +-8.1456041 +-1.9304971 +4.8208504 +-0.8630475 +-13.0495081 +-4.9682460 +10.2109756 +-4.2313771 +-7.7078528 +-14.5158634 +-4.2886481 +-5.8977776 +-9.4570532 +-1.5067805 +-7.1465411 +-2.6251185 +-0.4451796 +-1.3430721 +-8.1010551 +-9.4015007 +-13.5339870 +12.8089886 +8.0928011 +-9.2438374 +0.6206342 +-13.9595490 +4.7175050 +11.7386293 +-3.6970277 +-21.0741787 +-3.1969404 +-9.0260849 +-8.7219362 +-7.0840335 +2.3285377 +-9.3614178 +-8.3785658 +-25.8390675 +-7.6206493 +0.5967430 +-2.4370015 +7.4443693 +3.6629660 +-33.5399818 +3.8337107 +-4.8931570 +-3.3486047 +-1.7752352 +-0.5377296 +-26.9182835 +-4.3474717 +-19.5780106 +-5.2961831 +0.0641803 +-4.5651069 +-3.9715040 +0.2363328 +8.7534857 +-5.4098778 +6.2809343 +0.8834740 +-3.9037271 +1.6525555 +2.9051151 +4.8964725 +-3.6184824 +-0.2903066 +-8.3437862 +-12.9912205 +3.3346634 +3.0859964 +-18.8454838 +-8.3348894 +-3.0306494 +-12.9010363 +-0.9712912 +3.8723438 +-8.5914259 +-2.0060377 +8.6325045 +3.8493962 +-1.3436264 +-2.1738105 +-9.8680277 +4.5469384 +21.8242893 +-1.6973336 +6.7258353 +-7.8209987 +11.0207634 +4.2513256 +-4.0438042 +9.8932772 +5.7332087 +8.4727354 +1.4132577 +-2.1599703 +-40.1000938 +1.1127825 +17.1455021 +-18.7663689 +14.2015629 +-11.9523325 +32.7121544 +8.1761179 +-0.4290584 +10.6727161 +27.9995327 +-10.0792236 +-21.9983387 +15.8396406 +2.0486209 +-20.3472862 +-3.2519906 +31.5190678 +6.3953133 +31.0231915 +2.2123494 +-0.9674101 +-2.9960585 +16.6895428 +8.3947153 +-8.0656776 +1.8449091 +1.9508257 +29.2735996 +8.4809895 +-0.3772103 +-11.3860245 +5.2323804 +-10.1968203 +3.8415549 +6.3431883 +0.7182630 +-5.2400174 +-1.9012805 +3.3125622 +-6.8712530 +2.3425345 +3.6867168 +5.7102761 +8.4972925 +-5.6976719 +-4.9243188 +-1.1257557 +11.3305779 +-0.1926181 +3.2328660 +3.0419581 +22.5452614 +19.7844563 +-5.1795936 +-1.0307508 +4.2827015 +7.0180759 +-15.1021061 +9.9599981 +8.9104214 +11.9913807 +-6.5569158 +-89.9971542 +7.4173465 +9.2259016 +19.9670544 +-2.7215924 +-12.0751467 +4.3659120 +7.6660151 +-16.2944107 +-16.1771832 +2.8623209 +-3.2033446 +0.9434811 +26.0392838 +4.9731469 +4.6647787 +3.9661388 +-1.2790056 +-7.7839212 +2.6395183 +5.7856894 +4.6580424 +17.6044464 +-10.5367851 +17.3808746 +-30.6715145 +-1.8215511 +-3.4192543 +8.7187767 +6.0201740 +1.0187708 +4.5713134 +-5.1850095 +-2.1558890 +-0.1594608 +1.3189278 +7.9176397 +-7.9847584 +10.1700449 +15.3510742 +-6.0465088 +3.1689467 +2.0597959 +-5.8264179 +5.6946149 +17.0868702 +-17.2507267 +12.5732336 +6.6156416 +3.3691087 +-0.3720856 +-5.8751655 +0.8667784 +-6.7075996 +-1.0964898 +-3.6267064 +1.5295782 +2.1237051 +-13.7885418 +-1.9152653 +3.3985851 +4.3579602 +2.4041257 +2.4402943 +-2.3562694 +4.1301212 +2.9207509 +-4.7982535 +-1.5439001 +24.3991947 +-9.2872391 +-0.2168013 +4.9874272 +-9.4709768 +-4.4674320 +-7.4196482 +-4.6815400 +-8.2692204 +0.7039665 +-2.6986351 +5.6124496 +-2.0486803 +5.5834570 +-11.9040251 +-3.9406109 +-12.2838707 +-3.5867379 +-6.3761139 +-15.8880682 +-0.3920826 +-3.8942728 +-0.6227347 +-0.1122169 +0.7145320 +-1.3271080 +-10.3037758 +3.5500393 +0.3026944 +4.2135911 +-1.9714718 +-11.6307230 +-7.4163880 +1.4085915 +-18.1379681 +-5.3962588 +-0.1619601 +-1.5465227 +1.0317721 +-3.5036526 +4.2006607 +-1.1661245 +-0.7569761 +-4.9544220 +-3.5607162 +-4.1235323 +-15.8810406 +-9.0532255 +-41.8446426 +1.3192610 +-3.3928108 +-3.4646957 +-13.9565039 +-1.0979147 +9.3948755 +-1.4493427 +-16.7722874 +2.2361405 +-5.3650618 +-7.4033194 +-5.9004230 +-4.6621752 +19.1356163 +-6.1994720 +-6.2233829 +4.5367918 +-5.2826657 +-8.3007345 +1.2966012 +4.2598009 +-25.0591545 +2.9357564 +15.9892054 +-4.9129381 +-4.1916213 +-4.7317357 +6.8975039 +-29.8577805 +1.0367481 +-10.7802992 +4.2461600 +-0.2727223 +-8.7214012 +4.0075827 +-3.8984840 +-21.4184532 +-0.4071519 +-6.2119832 +-5.6106520 +-1.0829296 +3.4725170 +15.9811411 +2.4786015 +-3.7738338 +1.9817849 +-4.9202499 +-11.4116163 +-4.1479068 +9.2767572 +-1.6338758 +-10.9622421 +2.3271861 +-7.6823621 +2.1668980 +0.4245954 +-6.9887671 +1.1941688 +-2.9068766 +6.3861828 +-11.0569344 +-0.4336556 +-1.7078469 +1.4830225 +-4.6035399 +0.1641917 +-5.2450976 +-1.9001569 +1.8772823 +-1.9393755 +1.5582632 +-3.0107601 +-1.8314459 +0.9922818 +1.0756742 +-4.0136561 +-0.3838022 +0.3672636 +-1.4585129 +2.6911657 +-1.5577868 +-3.4499927 +0.2792471 +4.1228852 +2.2643857 +-0.2255465 +4.9020481 +-0.7909020 +4.3346109 +3.1017036 +2.4153347 +-2.0978734 +3.5982716 +1.4230299 +-3.2407453 +-0.7724558 +5.8059707 +-0.8783581 +1.9879918 +-1.8996052 +1.2685819 +0.0902928 +-8.0673494 +0.0862439 +-3.8206813 +-2.6355481 +5.5514536 +-1.9102499 +1.5075959 +2.2158234 +3.3479297 +-6.6602883 +0.5085223 +2.7279692 +-0.7586232 +-1.8771100 +-3.1389880 +-0.2871705 +1.1440873 +3.1348753 +-2.3494549 +-0.9594101 +0.4620477 +3.4049153 +0.0859656 +0.4000655 +-2.0344400 +-7.0420713 +-0.7666168 +-2.6755812 +0.6386982 +-3.1214628 +2.4123929 +5.3221860 +-1.1658837 +-5.2589564 +0.5217621 +-1.3656071 +9.9858837 +1.3459427 +1.3400723 +-0.2306302 +3.3513987 +-5.3682971 +0.5460353 +2.1724811 +-0.0492057 +7.4627752 +4.2955995 +31.0877037 +-1.0954211 +1.1675658 +-1.6095611 +0.3494828 +-0.3023379 +0.2941220 +2.0194685 +3.1035185 +8.0799723 +-19.6246243 +1.0987031 +-2.3010089 +0.0115845 +-3.9964733 +4.2550249 +1.1856066 +0.5505036 +3.5449941 +-0.7173777 +3.2642663 +-1.9152005 +0.3932763 +-2.1592567 +0.8258620 +-0.6877223 +2.8388112 +-1.1394665 +-0.7944668 +-1.7996478 +2.7295611 +-0.6749010 +2.1212881 +-0.7585348 +-2.2240005 +1.6972265 +0.6777430 +-2.1923299 +1.4443033 +-0.4971252 +-8.3140173 +-6.1855950 +-15.2664213 +-19.5322304 +-5.0537052 +-22.3122196 +-1.2661765 +-6.1772513 +-11.3023062 +1.5796719 +0.4536999 +-4.4444637 +3.3051589 +-2.0938766 +-9.4094305 +-4.8608789 +-9.9922342 +-8.7859793 +1.4222049 +-43.3227921 +2.0704303 +-5.7682157 +8.0403509 +-5.8458676 +-13.4342937 +-8.8173819 +-15.5852861 +15.0488501 +-11.0732698 +-15.8208075 +-7.7316389 +1.8961561 +-6.4604788 +-9.6156569 +-23.0064201 +-8.4604149 +13.3759518 +-0.1828760 +-12.9881220 +3.7087717 +-2.4540565 +-20.5254250 +-12.7281809 +-11.0863628 +-21.2247639 +-6.3939409 +-0.8949831 +6.2965512 +-3.0654790 +-14.0392513 +2.1387107 +4.3752532 +1.7540436 +-2.9444392 +-12.0394468 +-11.8702497 +-0.9185637 +-4.5465636 +-7.7561998 +-10.0264444 +-2.3177745 +-4.0546069 +-6.3690062 +-7.3784828 +15.8301859 +-30.5333538 +-26.0157318 +-2.4748733 +-27.4042721 +-2.3611329 +-23.0189037 +-3.9008522 +-2.0503516 +-6.9792929 +-49.1389084 +-4.7885637 +-10.4947691 +-36.6208153 +-1.2403086 +-3.6654012 +7.8548408 +0.7507569 +-3.0684423 +2.3922465 +-6.6867499 +0.8307582 +-2.4593086 +23.5845642 +4.1560907 +5.5849934 +-42.3959808 +-12.3067551 +-6.4606686 +-5.6697955 +0.8646650 +-16.2011509 +-15.2081022 +-6.9625583 +-24.5679169 +-16.5478954 +-12.8060169 +-5.8999944 +0.8473508 +-0.0449520 +-9.4102716 +4.9441462 +-5.7196913 +-5.6576791 +4.1240354 +-10.6421566 +10.9765024 +-3.1185527 +-6.2896056 +-14.8190889 +-8.5726099 +-1.9322765 +-22.4246674 +-25.9724293 +-4.0137949 +10.1148548 +-1.5684577 +-10.4153728 +-5.8117995 +-33.4975357 +2.7780452 +-2.6364834 +3.3828826 +11.1462288 +-2.6883605 +-5.6404324 +-5.8554397 +-1.0944964 +-3.7853737 +-8.2955494 +2.5798693 +-1.3400614 +-7.0664062 +4.5079260 +9.2714338 +-2.8664527 +0.5535419 +-31.9825974 +-10.1672668 +-4.1380134 +-1.7049607 +-9.2380056 +-23.1170425 +-13.2511377 +0.8613969 +-6.2632132 +-8.3541250 +-5.7107205 +-4.0953622 +-4.8601274 +-15.4334841 +15.6511059 +-6.7526388 +-12.3091402 +-6.7334948 +38.2233124 +-1.3001236 +-29.4377480 +-10.5891991 +1.0990726 +5.2309279 +0.9668552 +-11.0031242 +2.5857668 +-1.2392635 +-2.8958211 +-20.0832996 +-8.7796574 +-8.3984709 +-4.1418710 +-0.0453206 +3.5818427 +-2.4170144 +-4.1731696 +-15.9965563 +2.7526534 +4.8926339 +-1.7389802 +-5.9918313 +-1.4970834 +2.0713139 +3.7006769 +-8.9016953 +-7.5332513 +-2.0358415 +-0.9943317 +-4.9883652 +1.0035796 +16.7186069 +-2.2872050 +-48.1927071 +-1.3753629 +-21.7780056 +-0.0964433 +-24.3391151 +4.5613313 +-6.4338675 +-5.1536913 +-28.5641289 +-2.2763293 +-6.9622402 +37.2218170 +1.7359318 +0.7298496 +11.1942596 +-5.4320641 +-7.3453240 +4.0460715 +-0.9916390 +8.3296013 +-1.8385125 +35.7222939 +20.4147530 +12.2922239 +-4.4832139 +-4.3003945 +-4.7656713 +-5.7680154 +-16.2449074 +-11.3431196 +-11.2813978 +-4.4936833 +1.0103872 +-7.3647122 +-5.7932558 +-5.7468934 +-5.6331792 +-12.7859297 +-4.9318423 +4.7366090 +0.0438418 +-7.5124397 +4.5545979 +-12.6864443 +16.4662933 +3.1896012 +-8.9992142 +-8.7621956 +-10.1674776 +1.3718159 +4.5818062 +-3.4234042 +1.6578829 +6.2116323 +4.5699315 +-9.7829943 +1.7542301 +-19.6095428 +1.7063538 +-0.5832571 +4.6789141 +3.7749870 +-1.0895365 +2.5187912 +-2.1203513 +-18.9600372 +-5.8066888 +-3.7877612 +-1.2321392 +-41.2929726 +-0.4356217 +-4.1889124 +-10.2192574 +8.2863016 +-1.8970226 +-0.5046668 +3.6026516 +-4.6962280 +-5.0597744 +0.7213668 +-13.5091047 +-9.8880434 +1.4990122 +-3.1038945 +-9.0019312 +-6.9090991 +1.3499320 +-6.9116669 +2.4740336 +-0.1695733 +-1.5596274 +-19.8081665 +4.7354817 +2.3121784 +-4.7643180 +4.2529502 +-9.2624846 +-7.1398945 +-0.1264870 +-20.7596359 +1.8985739 +0.6670551 +-1.0813749 +-26.1447182 +-0.4101114 +-5.2829328 +1.6026838 +-8.7180223 +-12.0562916 +0.7340922 +-5.7442946 +-12.0739126 +-47.3260040 +-1.6121823 +5.8839478 +4.8833265 +-1.6188594 +1.6706077 +-5.5275960 +0.9347848 +-8.6661959 +-1.0861756 +-0.6789219 +2.5790770 +-11.9949541 +-8.1999245 +-12.3070602 +-13.7752733 +-9.3263340 +2.3810663 +8.2908039 +-1.1102591 +1.4908698 +-5.1343770 +-3.2229705 +-2.6540086 +-12.8623199 +-7.6977701 +7.2804756 +7.6270180 +-5.3051400 +-0.7988706 +12.1250210 +-17.2723083 +-3.5430260 +-9.8084650 +-0.9666419 +-2.2511227 +-9.0765238 +-14.0256138 +-13.6246471 +-2.2614627 +28.2715912 +5.5384007 +-3.7608705 +-0.1688453 +-9.4783535 +-7.7373400 +-4.1822567 +-14.7116871 +-4.0457234 +2.6082118 +0.9515228 +-0.7046030 +1.1237342 +-10.8348055 +3.8409212 +2.7564659 +-19.3877201 +-0.6321424 +1.1784258 +-24.8323078 +3.4967129 +-10.4299545 +-1.6139392 +-9.6919317 +-23.1454334 +-2.9131219 +-33.5453148 +0.2653063 +-12.9123640 +7.4135766 +-3.6576796 +8.6632671 +4.7935624 +-4.9821358 +4.4472008 +-0.6141565 +9.4011755 +-8.5669355 +-0.3817349 +-1.2836920 +1.0100971 +-0.6063634 +0.0522409 +-0.6938640 +0.3414966 +-2.4799223 +0.7537951 +-0.6297876 +-1.1574931 +1.6071397 +0.5614898 +-0.0067622 +0.3003354 +-1.3030993 +1.0924017 +0.3811022 +25.9348183 +-5.4740815 +0.4595377 +-0.6996100 +1.2649179 +3.7525005 +-0.0592180 +2.4319091 +0.6634021 +-0.8502095 +2.1562002 +0.7498105 +1.9306707 +0.5101199 +-0.8335531 +0.7464094 +0.0942024 +1.1972847 +-0.2682559 +-0.3183641 +1.1237743 +-0.2857865 +2.0512707 +-0.4238260 +0.2310893 +-0.6092187 +0.4451369 +2.0316401 +-1.3680964 +0.3790793 +-0.8835248 +-0.7892849 +4.2391348 +0.0317883 +1.1623144 +1.1084217 +0.4560611 +0.0088301 +1.1012048 +2.5761571 +-1.1420480 +0.2829009 +1.3117838 +0.7879018 +-0.2460906 +-1.4914654 +0.9097986 +-3.1713905 +-136.3987579 +0.7137976 +2.1030033 +0.0926269 +1.0721427 +-0.6352222 +-0.4532799 +-0.7862707 +-5.3395982 +0.6242383 +3.3204150 +3.3745456 +-0.6977745 +0.6042320 +12.6767817 +-0.9100822 +-1.7742268 +-1.4601902 +1.5068252 +-0.6700667 +0.3930269 +-1.0121113 +-2.2746508 +0.0934703 +4.0002327 +1.0041667 +0.6880110 +-0.0954012 +0.9629596 +2.6325314 +0.9477664 +-3.0936501 +0.3099267 +3.0787830 +1.6357181 +-0.6602535 +-0.2821073 +-2.2615201 +0.8605533 +-0.3564389 +-1.5713506 +-0.6491431 +0.5170686 +2.0579846 +2.6891489 +-1.9295869 +0.2649662 +-0.2833757 +-1.6230673 +-1.0121019 +-12.4696970 +-2.8107708 +-2.6691267 +-0.8196145 +-1.7537760 +0.4249371 +1.8584054 +-0.8548862 +0.6332401 +-0.4882923 +0.3990995 +1.2169762 +2.6342404 +-0.6671824 +-30.0693684 +-34.9582176 +-8.8031197 +1.8868891 +-13.2990160 +-2.4171386 +-5.6968164 +0.3896888 +-10.6551437 +-5.1349311 +5.9742637 +-34.5079842 +0.4376052 +-14.8116312 +-15.1429300 +4.7624421 +5.5131574 +8.9938993 +-6.8400769 +-5.7410383 +-0.0171570 +-9.2006226 +-21.8170872 +-3.3047845 +0.6456409 +9.4075174 +-6.8159356 +-9.2843237 +-1.3152590 +221.9224091 +-8.7787027 +-3.4163213 +-1.7380452 +3.8280001 +3.6051185 +-18.6274548 +-5.5070806 +7.0228128 +-6.2157617 +-39.5300407 +16.1379910 +-12.2147684 +2.8790321 +-9.5581789 +-22.8116074 +2.2383029 +-5.0718565 +-17.2474422 +3.1070504 +4.0897317 +-7.9852409 +-9.5696087 +-10.5526648 +10.1856060 +-3.6883039 +-23.5294590 +-9.7004499 +2.2847121 +-1.4137623 +0.3040385 +-19.7831383 +-8.9871674 +-5.3415546 +-9.4286690 +-22.7144661 +-3.5702593 +-25.3097973 +0.0237082 +-10.1905060 +-3.4814556 +1.9673719 +0.6226951 +-7.6134915 +0.4663268 +-1.2052090 +-9.1005163 +-3.1807520 +-53.3658524 +34.7846184 +-7.5372534 +2.8119447 +3.3081453 +1.9989674 +1.9220290 +-7.0427680 +12.0973539 +8.9719019 +-1.0566937 +-1.3950806 +5.0084023 +-8.8563538 +4.7997537 +6.3320460 +-17.1222363 +8.1574316 +7.0103579 +6.0279331 +-6.0826421 +-33.5091591 +-9.8620701 +-5.1444731 +-10.5468092 +-6.2727237 +-14.0962820 +-10.7368126 +3.8415420 +3.7778392 +-7.5483785 +2.7810755 +-15.1935940 +9.0570297 +-2.6776714 +-2.0157931 +-1.8521826 +28.2425308 +15.9538355 +-11.3346682 +-0.1356477 +1.7380941 +3.7917624 +10.6674566 +-1.6774166 +-9.0709152 +-5.5654783 +4.6155176 +2.3247716 +2.0168827 +-5.2349167 +-30.9827976 +-29.0317516 +-4.4859266 +2.6174514 +12.6614380 +7.0415492 +-2.3460422 +1.7762928 +-13.7905226 +-0.4709220 +-0.2159797 +-13.5298176 +-4.6446943 +-1.0142615 +-10.2915277 +-1.0486134 +4.1331429 +12.4857035 +-3.0695419 +-6.3457303 +-9.7050400 +-25.3681545 +-21.8199806 +-2.6007519 +1.7768555 +6.9535174 +-26.4962635 +-3.8201859 +-2.4322455 +-4.8153744 +-7.0524859 +-1.7069331 +-2.8077145 +3.5534139 +2.1220286 +-0.9325550 +-9.0327501 +-0.5459534 +-7.5669398 +5.9940505 +3.4738016 +-14.0125608 +-1.7783879 +-10.9476175 +-26.0482750 +-5.0425153 +-5.4115396 +-3.3886833 +3.1613081 +0.8074400 +-11.8496008 +-10.9564934 +-9.6619377 +11.3191719 +2.4148116 +-29.8884678 +-5.7830000 +2.6604762 +-1.0586855 +0.5302982 +-3.7141085 +-17.7352734 +-0.8350916 +-2.5636141 +-1.6386756 +-0.6504349 +4.5583110 +-4.7519326 +-4.4173374 +-2.6753159 +4.8723068 +-0.0699934 +1.4024127 +-1.2255032 +-3.2439456 +-7.2361627 +-4.7305050 +15.7822332 +43.9579277 +-23.7407074 +5.6925740 +3.7674091 +-6.1674442 +-2.0516989 +2.5389721 +9.4219141 +7.5862465 +-6.8235826 +3.3415451 +-0.4558262 +-8.0060320 +4.0689540 +6.3276410 +14.8942156 +8.3699160 +3.6947057 +6.5632529 +-3.4898839 +-16.2326889 +-23.4960041 +-7.0169492 +-12.3100901 +6.9476366 +-16.1921291 +-11.0293140 +3.0954852 +3.2260423 +-4.7584066 +0.0417498 +-34.9087181 +3.4838850 +-5.0323138 +-3.8174202 +0.9334747 +12.9784441 +17.8262081 +-6.4302068 +-2.3242533 +-1.2608703 +0.7072583 +-1.9194214 +-3.4509940 +-23.0609245 +-3.2521362 +3.1655090 +0.5975253 +2.7820528 +-36.9856682 +-1.1078801 +-1.7847792 +-4.9849234 +-8.0549335 +-1.9642546 +15.9289150 +-6.4885850 +2.2344515 +-19.2571926 +9.8820896 +2.5912116 +-7.1395850 +4.3721790 +-9.1113634 +-8.5402660 +-15.9730406 +-6.6704655 +4.4640832 +4.9599171 +-21.5511627 +-7.5286775 +-9.7180395 +-4.4378080 +3.9449649 +-5.9718447 +6.1589165 +-5.2743711 +1.0795395 +-5.0253577 +12.2296066 +-1.2331681 +0.9340957 +-6.1275988 +7.6375313 +-5.5911956 +-13.5275898 +-1.4745109 +-0.1847875 +7.0264401 +4.4193916 +-1.0364789 +0.2567253 +-7.5836864 +-7.9141073 +-0.4692719 +-2.3126571 +3.5849087 +2.0066061 +-1.8510306 +-0.8896786 +-4.4450917 +-5.5541573 +-10.1134157 +5.4250011 +-5.6855841 +0.3829472 +-3.2946665 +-1.6419826 +-7.9022007 +0.3369449 +-1.5056244 +-6.9199271 +-7.1358280 +1.8560979 +0.6206552 +3.7478657 +0.3770008 +-0.0245755 +-6.2631850 +-10.9889946 +0.6537169 +20.9138432 +4.0462270 +-9.3547544 +-13.7948503 +1.6163464 +-1.9578456 +11.8829708 +37.0822449 +-3.2126272 +-2.1156304 +4.4650130 +-9.9852543 +-3.4055729 +0.3177558 +6.2944493 +2.6901605 +-9.7810984 +10.7969313 +-1.1202966 +-11.3577261 +4.7366281 +2.2217572 +6.3542271 +8.2646770 +4.6486273 +5.7985730 +9.8672867 +-4.8503194 +-3.4190135 +-4.3820095 +2.2192574 +3.4506783 +-14.7547426 +-3.3901618 +-2.3341248 +0.3923118 +-3.5970566 +3.4997048 +-6.1296744 +5.1317339 +-0.2913153 +-3.2589388 +3.9494295 +1.4019064 +8.7133045 +-4.8983965 +-13.7932129 +11.1338549 +4.5612364 +-20.3815403 +-1.8366212 +-12.5695753 +-11.3675900 +-5.1213889 +1.8721485 +-0.6299537 +2.5742354 +1.0580391 +17.4677124 +3.0760386 +5.1464443 +32.8972473 +-12.7132072 +-19.7838783 +-10.3362007 +0.5950543 +-8.2461567 +14.4598675 +4.7085357 +-0.2474989 +-0.5830042 +3.5015249 +-9.8322573 +7.5393491 +12.0455465 +-6.7064743 +2.7241628 +3.0927663 +-3.4206421 +-24.9956150 +-7.5217896 +-21.7618656 +3.6367781 +25.2251225 +-38.4126740 +-0.6789621 +37.7863922 +0.7064474 +15.4331989 +1.8775196 +0.0587084 +-1.9885395 +-3.8244619 +-8.4212322 +-13.7952766 +2.0036306 +46.0078468 +11.7237387 +26.5657005 +31.9917755 +1.5754833 +20.9424744 +4.9959502 +7.6371145 +-0.1242833 +16.7142086 +1.8114481 +6.1576643 +-10.3142185 +-31.5358353 +3.9527388 +-1.4492177 +2.3950338 +-1.7128323 +11.7581100 +15.5868111 +-5.9670815 +0.8909737 +-3.5497892 +16.4064007 +-2.0293026 +16.3271809 +1.6557126 +-1.7517592 +-2.7075140 +-11.1839943 +1.2563896 +-11.5883064 +26.3366547 +8.4907274 +-0.0076655 +-3.3940287 +16.3511238 +-8.0337238 +-5.6126328 +-39.4502678 +-10.9707031 +-10.2139950 +-4.5154634 +-10.9977760 +2.1113958 +7.0316873 +-66.7103653 +19.5660229 +-2.1011450 +-16.9914684 +16.9539032 +0.7644559 +1.6756089 +35.7795792 +-5.7600002 +-42.3758926 +4.4297948 +-4.3641834 +2.0365827 +-13.4678097 +14.3963680 +-19.8275204 +0.1483487 +15.1558161 +-10.6846142 +5.8288479 +-1.8372730 +1.7607569 +-182.5538025 +-2.0501220 +20.9080544 +4.3986573 +-10.0902319 +14.9884462 +3.6764138 +-4.5364127 +9.4354773 +-6.4120650 +3.0864172 +-7.7037897 +-8.1235275 +12.2575254 +-27.7448769 +-11.4384813 +-0.9490454 +-5.0548983 +16.5804176 +0.4212354 +-6.5326548 +-25.1255302 +-14.2854357 +9.4056034 +-31.6361637 +-8.6783390 +25.0893631 +4.7305522 +18.6222420 +57.1810036 +-3.0144174 +6.2356439 +6.9457169 +1.4573253 +-4.7537317 +-10.5240812 +-1.5869936 +-8.3467598 +13.0662355 +13.9360437 +-1.1161959 +-6.2932277 +12.8737898 +-6.0317030 +-21.1350613 +7.3858647 +13.0327272 +2.2415667 +21.7142105 +-19.5091972 +22.6097984 +16.0928078 +-5.5207858 +4.7472687 +13.7770338 +1.3125036 +10.9699373 +2.6443377 +2.3016191 +25.6348915 +-16.9064846 +22.0230427 +-11.7153664 +5.0051370 +11.2411509 +31.5668983 +2.0162878 +11.2897186 +38.1081848 +-30.2385464 +0.3703834 +1.1727078 +4.2472706 +-24.4240017 +-8.0050764 +15.9970036 +-4.9991860 +16.0836391 +-3.1389327 +-4.1764908 +-13.6094494 +24.0210342 +-14.0148821 +-4.9344635 +-15.4711161 +-28.6206837 +-1.1182119 +-20.3907452 +0.9178460 +-2.3173003 +-4.7346807 +15.1009302 +3.2590487 +-19.5682678 +8.0386982 +-8.2280149 +1.1512067 +-0.5529405 +-9.5601320 +58.4027214 +-2.4522350 +-19.8872261 +-3.6690626 +-8.2187786 +2.6785953 +18.0148258 +20.0278339 +-6.1969171 +12.8477373 +31.9922295 +-4.3835325 +6.6851273 +-0.2331519 +4.3167062 +9.6939049 +-15.4305277 +-15.4873142 +4.2381644 +10.0792646 +-14.4006329 +4.5050960 +-5.5237417 +11.5841341 +-12.6727180 +1.5997841 +21.2138386 +8.1168652 +5.4457741 +15.2306871 +6.6136780 +-4.5913630 +22.7642040 +-4.7359486 +6.1305490 +12.8728199 +-36.5652275 +1.0100420 +40.4831085 +53.5728111 +0.2402241 +2.3976202 +-19.3626270 +9.5767584 +5.2692881 +-0.6664923 +11.6932421 +-1.6939429 +3.8260372 +-9.1106129 +21.1049900 +16.3310604 +2.1635001 +13.1705608 +-4.9483733 +-2.3948321 +2.3822067 +5.5211477 +-22.1448593 +15.1555347 +1.6521914 +-0.0443263 +-20.6237984 +-4.6705604 +6.5468369 +2.0649385 +28.0210285 +-9.4521284 +2.0715530 +18.6718330 +-16.2803421 +-3.8017833 +7.4079466 +-23.7962055 +5.6731873 +4.0262403 +-2.0799022 +-15.9737396 +-15.1747274 +30.5049515 +3.0324996 +-3.3368037 +3.8666112 +-7.5691171 +5.5447659 +-2.3597937 +5.8329401 +6.1728711 +12.8987064 +24.3335876 +-5.6980596 +-8.1679020 +7.7096028 +-9.9263668 +-2.1345215 +8.7244558 +-2.0108409 +-20.5168686 +-0.0943572 +8.6951952 +15.1115417 +6.1329117 +-31.9853001 +-4.2652216 +5.4470000 +6.4171543 +2.9034305 +2.8733230 +-20.6199837 +1.1062132 +2.1295927 +6.3365612 +20.6997681 +2.2061572 +-17.6151199 +1.9986534 +-7.8996582 +1.2802633 +12.7471638 +-0.7793919 +4.4106898 +-5.2660556 +1.0160661 +3.3430407 +3.4303539 +-18.3692017 +-5.4514670 +5.8119283 +26.9998531 +5.5788674 +7.1491499 +-4.3039827 +2.8375752 +4.8253484 +-7.2387729 +-1.3419093 +2.6607442 +-1.5937033 +20.5012474 +3.4483671 +1.0155289 +5.3339839 +-18.3719292 +-1.1636496 +-14.8313389 +-16.7143021 +2.9189892 +29.3011875 +-3.4621744 +-2.8325920 +-6.1652555 +-15.6606445 +2.8107185 +-1.3782004 +-6.1838074 +2.4931991 +7.6926985 +-74.3461990 +-2.1771376 +-1.5659075 +-1.1674232 +1.7946589 +-1.3048110 +-5.9540248 +31.9954319 +-2.9765172 +5.7343774 +6.1447926 +-1.8357683 +-0.8048576 +-0.4449444 +-12.1476574 +21.5669422 +3.0474541 +10.8556929 +7.5417967 +-0.5305952 +-0.2968694 +-0.3572799 +1.3981249 +1.2762610 +-2.8865268 +-16.4464664 +-10.3026400 +3.6177461 +0.9514610 +-2.9809675 +8.8442430 +0.4006340 +0.4258044 +-0.7590917 +-0.8000101 +0.8475884 +0.4858479 +-0.5317851 +-1.3298535 +-1.8710792 +-2.1892376 +-3.7358229 +3.0094912 +-0.2558176 +0.4755634 +-2.5187869 +2.6668112 +0.9548246 +-1.8389920 +-3.2692258 +21.0880642 +2.0157855 +-0.6147740 +-2.2507877 +-6.8693805 +0.6181495 +4.4105253 +-2.8727586 +-1.9620856 +-3.0477057 +7.6723380 +2.2029779 +5.6363497 +1.2998251 +2.2024226 +-8.9492006 +-2.0625319 +0.8340572 +2.6787050 +-9.8746910 +4.7622652 +-0.7028463 +-1.0392214 +0.0280209 +2.6421816 +-1.7365524 +4.3903255 +0.2924815 +3.4945402 +-0.9866899 +1.3650546 +5.2556257 +-3.3070252 +1.8333937 +-5.1765161 +11.3934631 +-1.5268579 +13.6175766 +-2.1030812 +5.3944926 +-2.3505583 +-4.8301735 +0.6425450 +-8.1768961 +2.1247482 +1.6609221 +-4.7158446 +-0.3157534 +7.9455314 +116.3363800 +2.7636917 +-1.4898499 +-2.3901978 +8.6144152 +-2.1497936 +-0.5033379 +-3.0933948 +-1.5998948 +-0.6680328 +19.2323265 +-2.2270160 +2.1474514 +-2.4216723 +-6.2704477 +8.4922810 +-1.7472974 +-9.1198578 +-3.8429484 +0.5039253 +3.4451735 +-0.7805874 +-0.3341033 +5.7993951 +-2.0985610 +0.4089534 +3.2074594 +-1.0238720 +3.9537456 +-15.9288130 +-5.6741586 +-5.4274330 +4.6681957 +2.0243144 +3.0179551 +-1.2554795 +22.7081490 +-1.2289515 +-6.2546010 +-4.4591908 +-1.5353625 +-2.0752804 +-0.5659764 +-3.8856652 +-2.5586979 +2.3364849 +-0.0886541 +4.1456785 +-0.2970732 +0.0700551 +1.0374709 +-0.8580666 +-0.6159418 +-3.1479485 +-0.6123051 +-0.0720477 +-1.1108882 +5.5909519 +-3.8418689 +2.7835693 +-0.3722738 +-3.3733468 +4.3781147 +0.3552767 +0.5263500 +1.3904008 +-0.1233325 +-0.6605991 +1.9671285 +1.4196408 +1.8632832 +0.5888726 +1.9919229 +-0.3574065 +0.3932979 +-97.6135101 +1.4209310 +-1.0937370 +5.6701941 +2.2595284 +1.1796250 +-0.6870194 +-1.1607351 +1.4922616 +-1.2122329 +3.2006869 +2.6320405 +-1.6392986 +0.2305039 +-0.0812085 +2.5216308 +-2.0563216 +-5.4195218 +-0.2028631 +-0.8970762 +-0.9459296 +1.5743141 +5.7346358 +-1.0213840 +-2.4834795 +0.1434385 +-1.1594958 +-3.4612985 +-1.4764405 +-0.2333340 +-0.6836638 +2.1361113 +-1.7589338 +0.3626903 +0.4709062 +0.3041511 +-0.7398092 +0.2509437 +-1.8810052 +-1.1650565 +2.3653271 +-1.1599619 +-0.7555894 +2.1169915 +1.3531095 +1.9116906 +-2.1953413 +-0.9956967 +-0.3006158 +3.4229279 +3.1600959 +-3.4216917 +1.2135351 +-5.3514023 +0.8449407 +-1.3293017 +0.3513394 +2.6457129 +-0.3565436 +1.9713809 +-0.4631470 +-2.9904540 +-0.7461929 +2.5998397 +-3.6638191 +-0.0506619 +0.1411595 +3.6123257 +0.1744857 +-1.6377518 +3.8750165 +0.6525958 +1.9449906 +1.3596082 +0.3098711 +1.6333128 +2.3615613 +3.8551786 +0.0539871 +2.4296241 +0.5155337 +0.4023095 +11.0619974 +-0.9339786 +-1.0413408 +2.2404878 +-0.6129533 +1.3885016 +0.7033726 +0.5384143 +-0.8651243 +0.4445402 +0.4335695 +0.1978540 +2.5528286 +2.6074457 +-5.2070909 +-1.6312768 +0.1945142 +0.0651607 +0.3956089 +0.2944885 +1.0442592 +-0.0886508 +0.1425416 +0.4324946 +3.2840862 +-0.5181097 +-0.3862623 +-0.5730556 +0.1381231 +4.9776015 +-3.2627749 +0.2854451 +0.3757900 +-0.9869927 +0.3061158 +-0.1632613 +0.2509023 +0.4930803 +-0.5818851 +1.7117265 +-2.0998778 +-4.7932310 +-0.5093626 +0.1113076 +1.0482363 +-0.6462683 +4.8993626 +-3.2630064 +1.8401190 +-2.1631432 +11.4207773 +-0.7185005 +4.5688996 +-1.2357225 +-1.5464379 +1.0394585 +-1.8132496 +-0.4227238 +-0.9306062 +-0.4728392 +-0.1404467 +2.6974347 +0.6785454 +1.0054594 +-0.3291834 +0.3977723 +1.1182189 +-0.5913003 +-2.1207471 +-0.1734750 +-2.0479925 +-0.6146365 +1.6501224 +0.6638745 +1.4842067 +-0.1203510 +-0.1055294 +-1.8719023 +0.6444775 +-0.5695457 +-0.7629724 +1.0564613 +-1.2165735 +-1.1609921 +-1.8070383 +3.5867736 +0.1827677 +-0.5354115 +0.7324222 +0.3723293 +0.9090444 +-0.3016718 +-1.1108390 +-4.3816257 +0.0027481 +-1.6502688 +-2.7235208 +0.2946747 +0.3983294 +1.0372112 +-0.7872549 +0.8569052 +0.0667952 +-0.0182783 +-0.2127429 +-0.4437838 +1.1652192 +-1.6835455 +1.9053661 +-0.3426404 +1.5713844 +0.1794690 +-0.3641889 +-6.6526809 +0.1984049 +3.8711207 +-0.1908202 +1.3861374 +-1.6598252 +0.0602965 +-0.3447704 +2.0105357 +-0.7414463 +-1.5943404 +1.4898607 +-1.1162794 +0.0799410 +-0.4799483 +-6.8959999 +-0.4364577 +-0.3592748 +-0.5814337 +0.3523720 +-1.4083035 +0.9793730 +1.6277322 +0.0252927 +-0.5463249 +0.2313581 +-1.0607216 +-0.1433895 +-1.8908949 +0.2124672 +0.3546098 +0.3975394 +0.2158624 +-2.1710489 +0.6207348 +-0.5743707 +-0.2595584 +-10.8852501 +0.1123322 +-4.4827361 +0.0526715 +-0.8853449 +-0.0916273 +0.8872612 +-1.5296038 +2.9924703 +-0.4256963 +0.5874092 +0.1465972 +-0.2873334 +-0.8527110 +0.1291589 +-1.1262447 +-0.2226988 +0.8618647 +-2.1689768 +-5.1550431 +-1.6152856 +-0.0503905 +1.1535527 +0.4514662 +-4.4325714 +0.4016741 +2.0120101 +-2.5825882 +-4.3800564 +-0.8335919 +-6.2877808 +-2.0877104 +-1.1100324 +-1.5518422 +-4.2412357 +0.2407187 +5.1708498 +-0.1536968 +-10.4572010 +-9.5159187 +-0.9704418 +1.5418981 +1.3582500 +-1.3597004 +-0.6345353 +-0.3967678 +-0.8603559 +-3.9006429 +0.5188168 +-0.0491653 +2.3359449 +-2.2464256 +-0.2904167 +-0.0566751 +-0.3838193 +-0.4480600 +-0.4354130 +1.2811555 +-0.6595148 +-0.3404975 +1.6125528 +-1.3050110 +1.1904050 +3.5650921 +1.1098677 +1.6448175 +-1.1870154 +0.2718401 +-1.3143659 +-0.0879943 +-2.1045434 +4.6782146 +-0.4840613 +0.1187052 +-3.6621020 +-7.5427513 +-0.6648388 +-0.4569859 +0.4105802 +-2.9335105 +1.3873705 +-0.0226403 +0.6673809 +0.1915074 +2.6790502 +-3.8741765 +-0.6884632 +0.6700712 +-0.8998272 +0.4651305 +0.8590178 +-3.4093518 +1.1296271 +-1.9202639 +-4.5180240 +-1.3181401 +0.1739811 +0.4716071 +0.6394815 +1.1104015 +0.8533915 +1.2746154 +1.1809617 +-0.4843034 +-0.0661503 +0.6906546 +-18.6591530 +-5.4894948 +-0.4600767 +0.3219272 +-9.0879927 +0.6339777 +1.3243868 +-0.1055830 +0.3820729 +-0.6473489 +0.3301218 +-0.0179889 +1.6881992 +-1.6273316 +1.9703361 +-0.8779520 +1.1334516 +-0.0361447 +-0.4572099 +-7.7111411 +2.9788427 +2.6688178 +13.2955914 +-1.1397029 +0.7173511 +-16.5046158 +2.7164226 +-9.6951284 +-2.6694145 +-4.5398068 +1.5601175 +-8.1575642 +-8.1931505 +-12.1901445 +-3.0478432 +3.9938233 +-1.3134478 +10.6643429 +-3.0267537 +-2.2156560 +-3.0348492 +-14.6294317 +-0.8349150 +-0.5832769 +0.5116823 +-15.9229279 +-32.4260139 +-7.0140657 +-17.7991810 +3.4231153 +30.7060986 +2.8970525 +-9.8583126 +-0.4568780 +9.2205944 +-0.9183519 +-3.4347408 +-5.0747633 +-7.7324033 +-1.4231831 +22.2215462 +15.4257097 +-4.0252285 +0.9897941 +1.4197725 +-7.6405306 +-12.0879612 +0.6806448 +2.0780413 +-4.6182995 +-2.3221111 +0.0850485 +-6.3240714 +4.7817612 +-0.2043607 +-0.1379917 +0.4288167 +-2.9630165 +0.1258735 +3.9051514 +0.5889686 +-4.7224565 +2.7993484 +4.0554795 +9.3317003 +-17.8937244 +0.5373847 +-4.9817929 +-1.0583630 +-17.9205189 +3.7782972 +4.4429088 +2.1423090 +6.0176554 +-4.1353202 +-0.9415355 +-75.1909103 +0.4873028 +-2.5394285 +33.0190964 +-2.1353686 +5.9968643 +3.2134037 +-2.9469862 +-15.3591480 +9.2179680 +-12.6682749 +-11.3877916 +-5.6980143 +-0.1828877 +-0.4976006 +-3.2193053 +-7.0954518 +-7.3100920 +-1.2109520 +0.6453407 +4.7540941 +8.7067776 +2.0877635 +-6.1506433 +0.6243643 +-18.4940968 +-4.6931829 +-9.5918770 +-2.4715579 +0.7421371 +-6.6461701 +2.6531014 +31.5256271 +-12.3411474 +5.1833200 +-2.3816323 +0.9300764 +10.3768005 +-0.1251263 +16.7348576 +-0.6491488 +9.7080679 +-6.3324351 +-14.6755819 +-0.5647047 +-3.4068913 +-18.8543148 +4.8647480 +3.1202059 +-0.6990972 +-9.5523787 +-5.8853359 +-2.2261569 +-1.8607317 +10.7583418 +-0.5468813 +2.2141263 +-0.4491802 +9.5863104 +-8.9169483 +-3.1331298 +-14.2074814 +-11.3141394 +-12.2528248 +2.9844081 +15.5279980 +6.7493968 +0.6295490 +-12.4961023 +8.8679571 +-13.0275640 +-0.3518019 +3.7217438 +2.0381937 +-0.9491138 +0.7978963 +5.0077696 +-37.4346924 +3.8624246 +-1.0933421 +31.9276447 +23.9666977 +31.9833069 +4.5594850 +-2.4245768 +-2.5509682 +2.3034146 +-4.4489489 +-1.7961445 +15.6211061 +-0.5533625 +4.9933243 +11.6761570 +15.4492598 +3.3261094 +-10.5242720 +19.5981236 +2.1056263 +-4.3894191 +6.4029827 +5.1144152 +-1.0639409 +12.7559710 +-4.0845551 +-7.9221067 +10.6200418 +-3.0302014 +4.4780507 +-5.1933556 +2.9649246 +10.6364708 +13.8264627 +5.4325180 +-1.6822228 +-7.3052254 +-12.0381784 +-7.9975619 +-14.6169119 +3.4856095 +-9.6435156 +4.4892917 +10.8177643 +7.5730677 +36.7049980 +24.4013596 +-9.3646879 +-2.2324073 +-0.9983749 +35.4862595 +15.0164890 +-16.5524406 +22.2079258 +19.4070568 +9.1779613 +0.7290283 +-17.5967960 +-0.3186613 +11.6187277 +-2.3041668 +-8.8367243 +-2.2406468 +16.5715809 +-12.3094101 +-0.8888514 +-4.9494667 +9.1616402 +7.3831496 +2.4347789 +22.3158092 +4.7847738 +4.5661235 +-10.0306320 +3.8084514 +3.8386006 +3.8613505 +-7.6002669 +4.6630106 +-4.7889085 +-7.8024306 +3.6948638 +7.6015840 +-10.3806725 +0.3420832 +-0.1047109 +8.6009321 +4.5604863 +4.7775002 +15.9991150 +-3.0353487 +5.1851945 +1.8881130 +-10.1155643 +-3.1036289 +-15.9967308 +-4.8086243 +-11.0532246 +-0.7959484 +4.7563782 +-6.1911178 +7.1340790 +-0.6318784 +-2.1452274 +-18.5799332 +-1.2324157 +-18.8156605 +-26.6070518 +-8.6612015 +13.0510759 +1.9428021 +5.8023696 +10.0383930 +7.8032455 +-2.3488986 +10.3399429 +-9.8116722 +-3.3665359 +15.3683386 +-10.1260481 +15.9460459 +5.3962946 +-14.4954538 +-27.1932182 +1.3573903 +-0.7318543 +3.6487007 +34.3252563 +-22.6137352 +-15.7423058 +-38.0422783 +-15.0112162 +12.6434469 +-3.0646477 +-9.1540689 +-7.4576163 +1.2997328 +-1.0289478 +-2.3994551 +-15.2106314 +-3.0113115 +-8.4822569 +-15.9900179 +-29.0379925 +-4.1045375 +6.5896454 +-4.9264727 +-18.9784698 +0.6471167 +-7.0609989 +-2.7055736 +-12.5017605 +-10.9934464 +3.3772340 +-3.7732801 +2.5142705 +1.9197917 +-6.6505213 +-3.7874968 +-0.1282669 +-6.3807993 +-13.7725849 +-2.3586357 +-2.2778795 +-0.1992274 +9.8156776 +-1.0844465 +-4.8468471 +-2.5668714 +12.5498037 +2.8214011 +-4.3960714 +-25.7404976 +-22.2634964 +-18.2884598 +-2.8940787 +-2.5073359 +7.4447637 +115.8537216 +-15.9895554 +7.6978493 +7.3687682 +-16.5072670 +-6.9590998 +-2.4914420 +7.7432742 +0.3383231 +0.3949900 +1.8188876 +-25.3203983 +1.9931810 +-9.0913944 +6.4417863 +-0.8076758 +3.9874494 +-29.3202324 +-7.8083639 +-17.0373268 +-10.6545553 +-5.9152126 +-2.7906282 +2.6371605 +-1.3913251 +8.6972036 +-23.0518150 +10.2752619 +0.5209115 +0.5772603 +10.7271318 +-8.3139706 +-7.0139642 +3.8870044 +-3.7386644 +-0.1762473 +-11.0207510 +9.8473234 +-2.2189336 +6.8751311 +4.5107365 +0.1799772 +-16.0178699 +11.2473927 +-1.0844430 +9.3501015 +7.5162492 +-0.5244561 +-1.4960699 +-1.6828291 +-7.8651633 +-12.4114695 +15.6988554 +11.1530762 +-5.3938193 +4.6996031 +-6.6308503 +-6.2740569 +5.4926529 +-19.3379364 +-1.1613544 +1.5239251 +-6.9957919 +-4.4149961 +-15.9831963 +-24.4576817 +6.2590098 +12.8592491 +-3.4619634 +7.3712983 +-9.7745657 +8.8597832 +2.7368882 +-10.3067093 +3.1638784 +3.3739846 +-7.8910513 +-47.6498680 +10.8013668 +4.0184422 +14.2557087 +16.6660004 +27.3092098 +2.7573607 +20.8649158 +-2.3041384 +-11.5080214 +-8.6500034 +17.1046009 +8.7338972 +4.7929058 +-3.4509695 +1.5981804 +-3.4984255 +6.0854855 +-0.4315290 +-22.3293037 +-3.9488955 +-3.2090683 +5.3010111 +0.7839313 +3.0958030 +-10.6648808 +0.8601089 +-4.5529628 +-6.3615236 +-5.8671336 +10.6023474 +9.1488008 +-6.4581470 +-4.2056589 +3.1885159 +2.0633466 +11.1368294 +4.0221138 +5.8836999 +-2.1370208 +15.3835831 +12.3411112 +-7.9915080 +-14.7456913 +2.2157097 +12.4565744 +-1.2515635 +3.8616185 +-8.0826225 +11.1838179 +-0.4370158 +29.5054150 +6.5572710 +0.1256545 +19.9024162 +10.9005203 +-13.7944498 +2.2205555 +4.1423512 +8.0777407 +-0.9960622 +1.4090151 +4.1416135 +-4.7679467 +17.6869946 +3.5865598 +3.3442578 +-17.8257961 +1.8811259 +6.9948010 +2.6437654 +3.5154035 +4.4543352 +4.0470896 +-10.4598103 +11.8440943 +-16.8842239 +19.3904800 +8.3623104 +-2.0162928 +4.1936674 +5.5597930 +4.6862736 +3.5964105 +-2.4534440 +-3.2519257 +2.3154597 +2.1325295 +-2.2312064 +-11.6134434 +10.9483519 +-8.3152304 +1.9122454 +-2.5798705 +-16.9388046 +20.8618870 +17.6082306 +-27.2198067 +-2.3325059 +0.3998581 +-11.9772282 +11.4471693 +8.3572550 +-9.4183550 +-11.5591497 +2.0919194 +-2.9500804 +6.2825117 +-1.1658964 +-4.1111751 +13.2404385 +1.1822232 +-0.5042620 +3.1653214 +7.2260880 +10.8382292 +23.6061192 +-6.5376172 +-13.2620926 +5.9268031 +-7.8410335 +6.8914447 +-8.3756475 +-5.8166733 +5.3320932 +-6.2722759 +-8.8930511 +-7.2036633 +39.8851891 +-14.1769276 +-5.4659109 +-6.7415428 +-19.3241081 +-21.3878880 +-4.6572976 +-8.8956728 +2.0543895 +4.5930004 +8.5181961 +-16.4868202 +-9.9676962 +-11.7476482 +-0.2002574 +-5.5846491 +-2.9449594 +-7.9982996 +-0.0982480 +5.4744644 +-0.5965150 +9.7441349 +-4.0282412 +-3.8651865 +-0.7585560 +7.6669927 +-1.6150929 +2.0779712 +0.2122254 +2.4565079 +-9.5341635 +-9.1876040 +3.1491408 +-0.1655474 +1.0211945 +-4.1174808 +-8.4542055 +-6.2832456 +-6.3281474 +-2.4541597 +-10.1527338 +-10.2999487 +4.2678118 +6.4820490 +31.9910221 +-4.6769552 +3.5174470 +-2.3526366 +1.3724966 +-10.2089510 +0.1389349 +103.7525406 +-4.5444121 +-2.7338815 +-5.8057995 +-8.9399252 +8.9359684 +-3.1620028 +-4.9305835 +-4.3335862 +-2.3305790 +0.8445066 +-1.4495966 +6.6615210 +-28.0641632 +-1.7534124 +-3.4184217 +8.1015368 +-3.1486180 +-8.6047201 +-3.1795285 +-5.7679267 +-3.3061438 +-4.2082663 +8.1615038 +-7.9034729 +9.9574156 +-18.2121792 +-9.9635744 +-0.6093315 +-5.0941482 +1.9571555 +-5.6757665 +-5.2301989 +2.9752522 +-1.1994104 +-1.0755368 +-1.5267459 +-3.2131877 +7.8855429 +-9.0596075 +6.2705841 +0.2982851 +3.4369738 +9.4412260 +-16.7165394 +-10.7875862 +18.5319977 +2.5072918 +0.5874811 +7.3019919 +-5.9350739 +-2.4526284 +4.2640429 +-14.6409359 +-35.4546509 +7.2946773 +-1.3926942 +-54.8873940 +2.0166156 +18.6355877 +0.9940374 +-36.7048645 +-44.6582375 +2.1503086 +-10.2954311 +-63.9590950 +0.0650233 +-7.3269858 +-1.3502234 +5.0643373 +-16.0580482 +2.3076129 +3.1457462 +-26.3018780 +-2.1697004 +-1.4527754 +-4.4787583 +31.1468983 +-10.9469461 +-13.8434772 +0.6231481 +6.1030178 +47.5788803 +4.8973107 +-15.9691916 +-0.8071270 +-10.4069319 +3.8511648 +7.8218193 +0.0939509 +0.6813096 +-1.5472075 +-89.6897430 +-102.5045395 +-7.9955754 +-35.1555595 +-5.1569324 +-22.3381691 +-2.0510695 +12.7509317 +0.9891365 +11.3324728 +2.5745296 +-4.4930305 +-13.0475893 +0.3365004 +4.5478220 +-10.1345043 +-13.2360086 +-11.1569881 +-18.3825588 +-60.1146240 +6.4239936 +1.2180022 +-29.1744518 +-1.7160573 +-42.6501656 +-14.5228767 +15.1072512 +-7.9754062 +-6.0731602 +-1.8246373 +11.2941685 +-63.7689095 +-23.1364555 +-56.3153572 +11.3704662 +8.9329739 +3.9558525 +-20.6657867 +-14.2722549 +7.9993496 +10.4901934 +2.3902259 +2.1122789 +-33.2897301 +3.2014577 +-9.5303984 +-9.1976633 +-2.8403656 +-15.6613197 +14.0316544 +-20.7010136 +6.5099702 +-3.8586733 +-8.1857214 +16.7430553 +-27.2587299 +1.8811052 +-1.4470608 +-2.7787063 +-19.7564240 +0.1135144 +14.9626179 +18.8975258 +3.8283365 +4.6962476 +-12.3493662 +-7.2832460 +3.4973631 +-130.0963135 +-14.2578526 +-48.6066742 +14.4223680 +1.7862971 +3.6165714 +0.2761025 +16.3095169 +-11.6627359 +-11.8031893 +-16.8544636 +2.2720242 +15.9902401 +-56.1522522 +-8.8261309 +-39.6067696 +1.4416950 +-4.1756487 +-3.6089537 +2.4400606 +0.3969409 +-2.6766453 +1.4270633 +0.1188596 +-1.2065321 +-1.1132933 +0.0935815 +3.9054935 +6.7446046 +-4.5084548 +-4.4757929 +-1.2156916 +2.3921006 +-0.6473611 +0.5160968 +-2.7480171 +-1.2236438 +-2.1070671 +1.6857778 +-2.1814156 +-2.5767660 +0.3731430 +-1.6883919 +-3.0287380 +-5.7119622 +4.8696761 +5.9297743 +1.8242205 +0.3533737 +-2.1142242 +6.7115207 +-0.2701930 +1.7763218 +0.0367052 +-0.0209702 +0.3559864 +0.9923739 +-2.3815260 +6.0535746 +-1.1219456 +0.1377660 +2.6297128 +-9.7013969 +3.2914228 +-3.9252124 +-1.7113314 +0.6943449 +2.6177382 +-0.0152288 +-1.9675987 +0.0488775 +3.2378514 +-0.9105520 +1.0891069 +0.5586813 +-0.6468415 +-1.6886115 +-0.5906662 +-9.2593174 +1.9397489 +-1.9999499 +0.5165005 +-2.9598734 +-0.2972866 +0.1055437 +-2.6944587 +-3.7024462 +2.5140269 +0.4316297 +-1.3253579 +-3.5097837 +2.2438371 +1.2561719 +3.6978109 +0.0386907 +1.5677880 +-1.2282768 +3.2216189 +-1.9086058 +-2.1390202 +0.8803018 +-3.0045981 +1.5867320 +-0.6292314 +0.0711886 +-4.2554388 +0.5443451 +1.8407955 +-1.1668302 +-4.9555655 +-0.8512017 +0.0102585 +2.2856076 +-2.0460727 +0.8940729 +-0.7199826 +1.1818388 +-0.9021366 +-0.7238072 +2.9826412 +0.6619859 +-2.3847742 +-1.9116437 +-4.9478250 +-2.3296208 +-1.1645992 +0.0274499 +1.6105715 +-3.9074528 +0.2504461 +0.0164879 +-1.8205256 +3.4394238 +0.8152424 +1.8512195 +1.1692843 +2.5538642 +-1.8289135 +0.2191818 +0.5073094 +0.1732883 +0.4803383 +5.2493043 +1.1744603 +1.2350416 +2.4958360 +1.1120090 +0.5204669 +-0.7454005 +-34.4155502 +-9.0603046 +-0.0161013 +-3.7564738 +-13.7487822 +-2.6081612 +-1.3120391 +-6.7873969 +2.0518718 +-20.6673470 +-3.6977944 +-2.9287126 +-18.1950035 +-3.9891818 +-3.3598650 +1.5930107 +4.2409430 +-2.2683480 +-1.3667599 +-7.9702163 +-5.4391046 +1.4446288 +-1.4593509 +2.4103642 +-2.2646985 +10.3179874 +-16.7030239 +-9.4417191 +-9.4847555 +-29.7310829 +2.1788814 +-2.1792908 +2.8346148 +-1.4380029 +3.8229146 +8.6483059 +-0.5056326 +1.3826596 +-6.2983298 +-3.4650848 +-12.3712921 +-1.6997699 +-1.5573844 +-3.5003078 +-8.5510101 +-4.2836800 +0.8938763 +1.2243134 +-3.4229386 +-4.8164573 +-1.5169657 +-2.4854801 +7.6516943 +5.8205523 +-2.1212583 +-8.4270077 +-4.2391467 +1.9058679 +0.0400367 +2.7431197 +0.0973756 +-13.7997990 +-3.2342153 +8.7618513 +-8.2458267 +-5.7899189 +-10.3908539 +-1.8023667 +3.8014486 +-17.0345993 +-17.1177330 +-3.0013993 +4.8850989 +1.9301023 +-2.6835275 +5.3288841 +-4.4962282 +1.3165529 +1.5112470 +-6.4289794 +-11.1559954 +-0.5133830 +0.4581875 +-3.3584330 +-19.9375553 +5.4669776 +0.6626028 +-2.4517572 +5.6894231 +-1.8040495 +4.3650084 +-2.4372807 +0.3811100 +0.2560569 +-0.2881674 +-4.6170468 +2.3993042 +4.1464276 +-0.6251534 +-6.5491061 +6.6851854 +0.5626537 +-14.2304010 +3.4775696 +2.0195005 +-1.7642624 +0.7197259 +18.3071938 +-8.0028124 +-28.0632000 +3.3494320 +-10.6835794 +-11.9147854 +2.3484738 +-7.2203946 +-2.2001245 +-6.6983480 +3.1808970 +-3.5373743 +-15.1755037 +-14.6144142 +-0.5479683 +-0.1361796 +-1.8263544 +-1.6390449 +6.1774402 +4.2169604 +21.0057220 +10.4062796 +14.8418922 +10.0168648 +7.5052066 +-10.7133169 +-11.9135542 +-7.9334273 +10.3367195 +-6.7493882 +-3.2434571 +2.8473964 +4.2499051 +-2.9863701 +16.7187481 +6.7850466 +5.5814786 +-15.8253164 +6.6256256 +5.1049247 +-9.6661863 +-0.9934963 +23.7870827 +10.8053875 +-34.5215073 +0.7697126 +-2.5268843 +2.3795369 +-3.7622671 +8.8122702 +20.9071102 +-6.2577553 +5.1921568 +-8.1289186 +-20.8563309 +5.5651231 +10.6718788 +6.9870052 +-1.4411634 +-0.4027928 +16.0419254 +15.1601877 +-7.8048916 +0.1615484 +-16.5618916 +-8.4745884 +2.6929018 +-0.1303685 +-15.2038460 +-0.2913760 +7.1378875 +3.5010498 +-7.2323585 +-1.7189795 +13.4593391 +-1.2016265 +1.8223330 +-16.2659645 +-6.1030035 +4.6390772 +13.6568785 +24.9969540 +-2.9534092 +0.3090192 +-3.7550149 +-99.9758148 +0.0697059 +-7.9914789 +3.1538270 +10.1287117 +-9.8493805 +-21.3613377 +9.3484297 +-5.0142918 +-1.1440607 +14.3127108 +12.2694206 +10.5565100 +-2.6940458 +36.7499809 +16.0142078 +9.8031101 +-1.3296582 +-8.0907097 +3.0485101 +5.0118394 +7.5483356 +-5.4124713 +-1.2972908 +31.9743748 +1.2008364 +3.4413934 +5.3676739 +-8.1721945 +19.3387280 +2.0899007 +4.7977099 +-1.7967783 +1.2495511 +-2.2624168 +12.2401295 +10.9610977 +8.3161669 +4.4512048 +1.2683588 +3.4874089 +1.9146007 +-2.4537330 +7.6706920 +5.2237148 +4.8084488 +-13.1164474 +9.1209841 +-21.3494740 +1.7643764 +31.0577202 +5.8500137 +-3.2227731 +8.0191031 +-0.1564685 +-2.9506459 +-1.6759992 +8.2545519 +-0.1204316 +7.2719522 +9.2454939 +-17.3510036 +-19.4027748 +-12.1243896 +-4.6656551 +-10.9429207 +-2.2309709 +-6.2307010 +-15.7392311 +-3.1955950 +-16.1320667 +-6.9599218 +-1.4285890 +-12.1164341 +1.6919615 +-14.5988398 +-6.1955147 +-4.0588517 +-1.6942787 +-7.6298013 +1.8486730 +-7.1261144 +0.4044453 +-4.1267948 +-1.5469867 +-7.4645209 +13.2961731 +1.8896712 +-5.4976382 +-9.1335106 +-2.0425637 +-2.1741061 +2.7715523 +28.8563423 +-2.9203877 +-15.9669113 +-6.2399149 +6.4853439 +-1.2587379 +-7.3133736 +1.8295949 +-5.1076670 +-2.6751580 +-10.0590534 +-52.5797958 +-15.9857464 +-28.6401215 +6.9942503 +-12.3663378 +5.9885120 +-0.0849322 +-4.6751857 +-4.5529575 +8.8631287 +-2.9521654 +-4.2893882 +-2.9514680 +1.5680166 +1.5841135 +-5.5152106 +-8.3208313 +0.7828994 +-1.9429262 +-1.2189103 +-9.7795362 +-0.0285023 +-5.4013009 +0.0494950 +-11.9222717 +-9.9458036 +-5.5894036 +6.9960732 +-2.1099839 +-7.4771743 +-8.2026358 +-20.1708775 +-2.7418268 +-3.0266337 +3.0681987 +-51.2299957 +-14.7524071 +-8.4380312 +16.0014896 +-1.6141508 +-13.8255529 +3.3547199 +-22.5864792 +-3.6483312 +-14.0808525 +2.8072083 +1.1252733 +-6.5774875 +15.9940004 +-10.7609539 +-4.4578071 +-13.9333029 +-1.4139839 +-6.4275622 +0.8761520 +2.2710989 +-0.6991776 +2.4850450 +-18.1036148 +-1.7646912 +8.2546358 +4.0355787 +-7.4841657 +3.5216663 +-6.9014411 +-11.8266525 +-0.0858903 +15.9801970 +0.8071312 +-2.5062642 +1.1912615 +-12.8639908 +-2.5283585 +1.2402972 +8.0515366 +-6.2688818 +-2.6708589 +-10.9466267 +1.4288242 +-3.4533286 +-16.2880707 +-12.4456863 +-19.2770519 +3.9819119 +1.6834403 +-9.8369341 +-1.8442010 +2.1734989 +0.7930387 +-2.5215826 +-0.2934915 +-3.6862314 +1.8879267 +-2.8277619 +-0.5220409 +-0.4745795 +8.3379688 +-11.2587118 +2.5488513 +1.2856451 +13.5134058 +2.2894959 +1.7370439 +-0.3010025 +-3.7415123 +5.0317507 +0.2507474 +-0.8726915 +8.6446667 +0.7158709 +-0.1632569 +6.3206282 +-4.1165085 +-0.0353633 +5.1191230 +6.6273761 +3.9859829 +0.6177987 +0.0645162 +1.5871923 +-0.4542075 +1.9479575 +-0.6919857 +3.0753968 +-2.8095551 +-2.9653454 +-3.3250291 +-1.3399967 +7.0219412 +-1.2968196 +-1.0182946 +3.7861402 +0.8762295 +-1.5454332 +2.3795907 +5.8607011 +-2.7834580 +-3.0619414 +2.1458724 +-1.5886075 +8.1836414 +2.7159498 +-1.3522648 +-0.2045283 +-0.4039401 +-3.2125926 +1.5906266 +1.1920972 +2.2095909 +0.3986323 +-1.8138584 +0.5156485 +8.9936237 +-0.0549071 +6.4778748 +-0.0477950 +0.1190921 +-0.3510689 +-2.7231925 +2.0625579 +-0.5147778 +0.0626060 +-1.4599547 +1.2432466 +3.3912115 +1.8244590 +2.5904424 +-0.1767938 +-1.1725162 +0.4909482 +2.8699920 +-2.8249936 +3.0969210 +-0.9651631 +-1.7389268 +2.1580908 +1.4681530 +-0.6540124 +0.0335459 +-1.9820695 +6.2342830 +1.8546807 +5.6241808 +5.9653091 +-1.9852035 +-3.8771138 +1.2856842 +0.3287542 +1.0708076 +4.4652343 +-0.5823977 +1.0074342 +3.8236856 +-0.5084445 +-0.2543033 +22.1908150 +-1.1418653 +3.0439999 +1.7935514 +3.5489941 +3.3586612 +2.1218104 +-0.9117368 +1.2002026 +-3.4054344 +0.3629718 +-0.1845992 +-3.5983675 +0.8881900 +4.6274805 +-4.9892201 +-0.1753710 +-2.7209642 +-0.2982707 +-3.9159262 +1.9134942 +21.2312469 +-18.6318893 +-2.5990884 +-18.5447731 +-46.7341957 +-11.4771013 +4.9122982 +-5.5533657 +2.4130125 +-2.1677804 +-7.1607447 +-12.8774700 +-10.0935936 +-3.9632223 +12.2635632 +-6.4034286 +-16.0569000 +-4.1643462 +-2.7707524 +-12.7830915 +-9.1506996 +-12.3330889 +-29.8611183 +-1.2539107 +-15.1379881 +-7.9203401 +-10.7650909 +-10.0511017 +0.3491964 +-6.0246711 +-2.6095245 +-10.2540369 +-3.5918977 +-12.3022833 +1.8354131 +9.2723198 +5.0092654 +-4.4171705 +-4.9260654 +-58.3669662 +-20.8256397 +-8.7568712 +-8.9710550 +-3.0927403 +-50.0190659 +-0.3078006 +-3.3874476 +5.3905292 +-6.3166685 +5.5787988 +-3.9963994 +1.6653229 +-1.4493830 +6.5835919 +-3.7153239 +-25.7801285 +-6.6426468 +-9.7644491 +4.1399074 +-1.9315935 +9.2904139 +-29.0753670 +-1.8585305 +-33.9457779 +-29.7985477 +-10.4643564 +-14.2792130 +-3.0214436 +-9.3476486 +-0.0051318 +-21.8578796 +0.1093794 +-6.6679759 +0.1105467 +-1.9415016 +-27.8485165 +-4.4102244 +7.8130617 +-28.5395756 +19.3754597 +-12.5403194 +-5.3634300 +13.3513145 +-2.3487494 +1.7040581 +-19.6636925 +-9.1277761 +-3.6158893 +-11.4202566 +-25.8972836 +-1.8324950 +-6.5197439 +-6.3453517 +1.5457714 +-4.3129301 +-2.8625476 +-5.0107985 +-43.9988098 +18.7405567 +1.4288843 +-0.4564205 +8.5089149 +-41.7324562 +6.4324369 +-2.3200610 +-6.5811448 +-0.1284701 +-11.9505901 +-10.6909590 +0.7509420 +0.4754446 +-21.4891224 +-0.7603617 +2.8785040 +7.2667375 +-5.2949605 +-4.4367137 +-37.7869987 +-1.2888038 +6.8272691 +-7.1231031 +-21.8926659 +-14.1843338 +5.3232088 +-1.1390525 +-2.1111929 +-2.0110319 +1.0888081 +35.0724869 +-3.9855192 +-0.0706275 +-13.0041084 +-36.1962013 +-16.9101429 +11.9696522 +-3.3817058 +-0.2939318 +-12.3539534 +-4.8102436 +-2.5678284 +-5.3431644 +-5.0703096 +20.9866619 +-3.4186988 +-14.8097849 +-1.0640103 +-3.5058856 +-5.3281102 +-7.6254053 +-2.0853186 +-2.2694960 +-1.7033738 +-6.1305447 +1.1378990 +-7.8283806 +-4.1563368 +-9.8545809 +27.3347683 +-0.1166887 +-5.4989681 +-2.3573024 +-21.0885410 +1.0221524 +15.1985674 +2.3086944 +-6.4934196 +4.9784274 +-37.4059410 +-4.8762522 +-4.6967263 +-1.8365217 +-0.2491882 +-18.0796986 +-5.1121769 +-3.0608287 +1.4963015 +-6.2721214 +7.6928267 +-3.7228806 +-3.7970104 +-9.1950235 +10.3385649 +-5.2914553 +-10.9433107 +-0.9446973 +4.2747355 +-16.1817970 +-1.1094950 +12.1900625 +-6.1428728 +2.1712234 +-15.8612347 +23.8152733 +-4.5247355 +-0.7089791 +-4.0522518 +-0.4184873 +1.4691304 +-14.9198265 +5.7455869 +-11.7041397 +2.3288028 +2.2155790 +-50.6709595 +2.9552047 +9.9200869 +30.7053509 +26.5398827 +-7.5549273 +-6.7677689 +10.9441166 +-1.6039437 +-0.1053604 +-6.4831181 +3.6519117 +-4.2772121 +6.7471862 +-16.8022480 +2.8180327 +-7.3817620 +-3.9263959 +9.4460306 +-0.7995683 +-15.6759243 +-10.1858673 +-31.7658787 +13.4772825 +0.5347781 +1.8086730 +16.4023991 +-10.2921486 +3.9141638 +5.1482744 +-5.3671255 +4.9476867 +18.5863647 +-5.8134980 +-6.5513525 +4.8803244 +-2.6112909 +2.6966290 +1.6395292 +30.5392723 +-0.9772182 +-10.7650871 +-23.2753048 +-1.9466618 +7.9929361 +-5.9631677 +-4.3451176 +-22.3929195 +5.6773014 +-2.3622305 +0.9551033 +-8.9418879 +5.6943808 +2.7472465 +-5.8997746 +3.0532231 +-0.2296053 +9.0917473 +-0.5299616 +-4.1133060 +-5.5342388 +11.8181162 +-111.3043823 +-8.4891291 +-12.0908041 +3.0329964 +4.7960491 +1.6645235 +-11.8175077 +6.9078746 +0.1656737 +0.2220025 +-0.4248667 +5.4581504 +-1.6724193 +5.7327032 +-10.7815351 +-1.5460230 +-31.8898888 +5.2805271 +-12.3518705 +-1.9519528 +-41.1840591 +-0.0728003 +11.4558163 +1.0423223 +-2.7777388 +3.1414003 +0.5982378 +-0.6811811 +-7.9932971 +0.2872306 +-6.0973744 +-6.8479395 +-0.6210636 +-12.1416206 +-6.5956788 +7.8657241 +8.6447716 +2.5518672 +-0.7766853 +8.4310017 +11.8001642 +-0.1633687 +2.1348372 +-4.6589470 +1.1465170 +1.6654861 +-0.8136335 +-0.2566251 +-1.9111472 +14.0065641 +-0.2506573 +4.0518675 +-15.0204954 +2.2091005 +-22.7531719 +4.5901375 +-5.6807151 +-1.9970398 +-3.7920606 +12.5598869 +2.7620611 +7.6818619 +0.0047643 +-29.2038231 +0.7566918 +-2.0529327 +-14.4969616 +6.1998539 +2.2903621 +-23.1625729 +-4.4651108 +-2.2743883 +-0.9310545 +-1.0223895 +-2.5602882 +13.5431128 +6.2013535 +-12.9207687 +2.2289727 +2.5564046 +0.8061283 +1.7864966 +-10.5007362 +4.0494061 +-1.1267195 +1.8745019 +4.2426953 +2.3120844 +3.0122182 +11.5522738 +1.8520840 +-7.8950405 +-2.0359433 +-19.7288666 +-2.7342861 +-1.7027335 +-3.2540996 +-0.8945556 +-27.5706844 +4.1471167 +-4.9311910 +-1.3043282 +-2.3768256 +-3.6715095 +-1.4861082 +5.2482610 +-0.1442472 +-5.1015739 +4.7004752 +-4.6074009 +-7.4311323 +-27.1897144 +-29.4406471 +-13.4531555 +-1.4207613 +2.4844306 +-2.8298860 +-0.6855109 +-0.4189578 +-0.7173867 +-1.1504408 +0.3581043 +-0.1829870 +1.7130265 +0.2836143 +1.4058818 +4.4977746 +3.2837338 +-0.9424620 +-1.8900214 +1.2271155 +1.6576792 +0.9828873 +-0.4782645 +-2.7079067 +2.6474078 +2.3287845 +0.0844753 +0.0979172 +3.3060777 +-1.1148692 +-1.0373956 +-0.2923472 +1.5006735 +29.5841904 +2.3466949 +-8.3706036 +3.2773168 +6.8826303 +-0.0878009 +0.8752571 +1.0991957 +2.0990539 +0.9110917 +-1.0290557 +1.4165012 +0.3738327 +1.1891810 +-1.9275533 +-6.3917370 +1.0018134 +-2.1337008 +1.1181097 +1.4010346 +-1.0593460 +0.9404630 +0.4360873 +2.3653977 +-0.3302800 +0.2033389 +1.1988158 +4.5068336 +-0.0091220 +1.2707013 +-0.5128763 +0.0760872 +1.2606231 +0.9585857 +-0.3796952 +-0.3712936 +-0.8213671 +0.5372614 +-0.8082125 +0.5368838 +-1.0035174 +0.4538653 +-0.3417839 +1.4290222 +0.1569876 +2.2414303 +1.7775422 +1.2151073 +-0.1514886 +1.3068472 +-142.5008698 +3.3753588 +-2.2537496 +-0.2118460 +-0.2185169 +0.4581293 +0.0685933 +-2.6090763 +1.8907858 +3.6377575 +0.9114758 +-4.2135153 +0.2551287 +3.2365358 +0.0660683 +-0.1113831 +-1.4765880 +4.9840860 +-1.2796502 +2.6060984 +-0.6571504 +0.6581580 +1.2504117 +0.8145140 +-0.1106376 +0.0030595 +-0.7842841 +12.9046736 +-0.3032740 +-0.8251538 +0.3734954 +-0.7166020 +2.1389790 +4.2404957 +-1.1391195 +-0.4119863 +0.8127238 +2.8709652 +-1.0678545 +1.5136818 +1.5063050 +-0.0788206 +0.3801511 +0.2835357 +-1.0621431 +-3.6824365 +1.4054166 +-0.8847886 +-0.2554374 +-0.1611863 +-0.8882872 +7.0952883 +-6.0532551 +45.4395905 +-7.6952004 +3.9438925 +2.9434841 +2.8789806 +-2.4699800 +-3.4613779 +-1.6551099 +3.2298446 +-4.5365715 +3.2025225 +54.3017883 +4.5071945 +1.6308022 +-2.5006821 +-2.5942216 +-2.0902746 +1.6789905 +9.0407381 +63.6671257 +-13.0562172 +2.8218827 +0.0071238 +1.9138430 +3.2257798 +2.3839321 +110.4102859 +-3.2219765 +43.8082581 +0.0150778 +-11.6371765 +-8.2135735 +9.4570808 +-214.1256561 +2.4361150 +-4.1808300 +-5.8439298 +-1.8430927 +10.2455235 +4.2645574 +0.5337445 +-97.1633453 +63.9918823 +-2.3752716 +-2.5367866 +-24.9779797 +-12.2436361 +6.1355872 +6.8143153 +3.8787713 +9.0196514 +-7.4332924 +-122.3755035 +1.4674758 +-4.4323072 +-0.3877145 +-4.5795236 +5.7217584 +-6.4611464 +-6.5830655 +6.8071752 +-5.9631586 +-123.9432220 +11.7312860 +6.7254467 +-2.3650050 +-15.6708908 +-20.7270126 +-2.3526604 +-18.7590904 +2.2176275 +4.1203499 +-5.1638327 +-8.9005365 +1.5762001 +-3.4916508 +-58.5158920 +3.1413870 +0.2375757 +3.4258678 +0.4449283 +10.3708725 +-3.0249231 +11.7887058 +-2.0774701 +0.1727516 +5.3988285 +-7.6415253 +-0.0092904 +-0.7319403 +7.6131625 +6.1233616 +-8.8109684 +-2.4796152 +113.1226959 +5.4494052 +5.6995811 +-63.4556465 +1.6515468 +66.8383331 +-4.6930270 +-1.5006788 +3.4427512 +18.2823734 +-17.9341068 +6.5082011 +4.6360779 +-0.0257008 +-94.7228622 +-89.6569595 +3.7297637 +3.1280761 +24.4344521 +-4.9872465 +0.0466258 +-2.9053059 +2.6320558 +-137.8753204 +-3.8819561 +1.4319327 +8.3282280 +-6.7335453 +-77.8998795 +-5.1099892 +-0.2124712 +-69.3893738 +3.4459414 +-8.7386026 +255.9523010 +2.8871868 +3.7392187 +-5.9168596 +-1.5105004 +-1.5042727 +-2.3106899 +-0.8084457 +2.2128274 +-7.4848742 +1.0771195 +-0.5299710 +5.4224296 +2.8820903 +-15.9051132 +-1.6266776 +-1.7678221 +-0.6215138 +1.9823550 +186.5039825 +-4.1143670 +4.5927916 +2.2641053 +2.3740454 +-1.8032595 +1.3779783 +167.2498016 +-2.0822320 +93.0290985 +0.0092267 +-10.9453459 +155.1922150 +-7.6182394 +-14.1288385 +12.0722370 +-5.3468971 +-9.8498640 +-0.6078414 +-10.6041651 +-0.9310953 +-0.0349062 +-0.4416386 +144.1926422 +-2.5834496 +4.6944323 +-7.9881611 +-10.7004824 +-0.1099701 +4.6961403 +3.7678502 +7.6090956 +-14.9357672 +2.9273098 +1.8704382 +-21.5184155 +6.0703902 +-9.4591446 +-2.2662301 +-13.9963951 +-15.9498653 +10.0154943 +-15.9859991 +-69.3327332 +8.0862999 +0.5347031 +-0.5513783 +-0.6533639 +-9.6730204 +-2.7969260 +-12.8633680 +0.7296498 +-2.4672275 +-1.6690454 +-8.8756313 +1.6584909 +-5.7049088 +48.7971611 +-1.2936211 +-17.3150501 +3.2276533 +5.3260698 +3.4353540 +-0.7081763 +5.4592137 +-1.8406838 +-9.6155405 +2.6884258 +-5.6029177 +-17.3554783 +-7.2385182 +8.2194014 +3.3303480 +-8.4273996 +-2.6044104 +105.0791626 +2.0435450 +5.2410879 +374.7757263 +2.8933311 +53.4326630 +-6.3279719 +-1.5118073 +-2.8083594 +298.1634521 +-7.6950188 +3.2519248 +2.3077102 +-1.7615119 +86.7123032 +283.5959473 +1.2907791 +-2.4856138 +35.3498344 +-4.9505835 +-31.9852734 +0.0099480 +1.9332414 +83.2994766 +-2.1546988 +0.8733153 +10.9897480 +2.4283907 +224.9632721 +-9.9075766 +-7.3821940 +-35.9996490 +0.3353456 +-10.4764948 +0.3498007 +4.9448462 +2.7312155 +-4.9134154 +1.0192842 +-1.8526851 +-2.8127635 +-0.4512663 +-2.2733638 +3.8848197 +0.2911067 +-1.1742976 +-0.4250104 +6.2159534 +3.9373398 +-0.2193946 +-0.6795965 +-0.9784299 +-15.9536428 +20.8232727 +46.7065010 +4.9287181 +5.5256257 +1.8411599 +-0.7804833 +1.1504774 +-61.5614700 +0.0108554 +14.0439339 +-0.0522583 +-13.7101259 +15.3235674 +-25.8945980 +10.1862154 +11.6136999 +-2.5370569 +-27.3800430 +0.0509577 +-22.4604568 +-4.1195130 +-1.2769667 +-1.0711248 +0.3170352 +-3.3660409 +5.0320892 +-2.8418226 +-6.2831135 +1.3465962 +4.4840636 +4.4962673 +-22.5206985 +-14.8107004 +-1.3808924 +0.1242272 +-25.1724415 +0.1531164 +-7.1062751 +1.6286664 +-23.2735958 +-31.8456535 +5.7586541 +-41.8766441 +-19.0013103 +12.1973009 +-0.3454933 +1.1789225 +-2.8348815 +-6.4576745 +-3.0597472 +-7.8718090 +0.1606028 +-1.7724264 +0.7081879 +-6.0540266 +1.3591634 +-2.9510174 +-6.7224579 +-4.3953943 +-17.0740948 +2.1964605 +2.1561408 +5.7473993 +0.7332245 +2.5041442 +-1.7564982 +-0.9168524 +1.3017840 +0.3040889 +-2.4013934 +2.7069004 +6.1707501 +-0.4159551 +-1.5237840 +-2.1245754 +-61.8505478 +-0.4089079 +3.0904248 +-3.8289225 +3.5224102 +-1.9556229 +-5.2984881 +-1.4829050 +-10.8379955 +10.1650896 +-9.9474716 +0.1351314 +3.0559049 +-1.4879587 +5.8653936 +4.2398286 +0.1018612 +-0.8721484 +27.3768139 +6.4266181 +-8.2034559 +1.3538775 +1.5032434 +0.3855485 +-0.6136544 +0.6405023 +4.4030080 +5.6583962 +30.8981171 +-16.6087456 +-38.2863007 +-12.9288244 +-7.9727025 +-5.9756846 +145.1502991 +8.6313181 +-2.1880555 +-6.6614404 +-1.2376351 +-0.7006232 +-0.3212475 +3.3814061 +-2.6737792 +2.2863510 +-4.9280648 +523.8550415 +-1.9330988 +-2.3494611 +-8.2016754 +2.2698874 +-2.0427706 +-0.6555439 +-7.4720020 +-1.7784040 +-1.6566312 +0.0329619 +0.2497839 +-1.8447641 +-1.6841538 +-16.3185596 +75.5298615 +1.9610568 +-31.6725826 +-31.9677982 +4.8716793 +415.7330933 +-1.3731045 +162.7068176 +-12.0096626 +2.2245181 +3.3717356 +3.1538138 +2.7206826 +-3.4071581 +-2.0161955 +200.7347870 +329.3399963 +4.8978558 +1.1482227 +13.4720640 +12.3309879 +-3.2882283 +-6.5246177 +-4.5151381 +-7.9585290 +-5.3586650 +114.7798538 +0.2562384 +-0.8021319 +3.9173284 +6.0478172 +-19.5435867 +4.9202981 +1.0402975 +-2.1230791 +-9.9574909 +144.5819550 +7.7651672 +-9.6704826 +3.0973964 +233.1159058 +13.8558159 +0.9002005 +15.2347126 +-2.8294554 +-11.3546591 +-1.8948631 +4.4257936 +-1.3514491 +0.4892359 +255.9348907 +-0.5602262 +-0.3935875 +-2.7834404 +2.7912095 +-14.0507450 +-0.6220734 +-8.9473038 +2.2987006 +0.0367556 +-15.9891472 +5.9627104 +0.0898814 +-13.5095282 +-3.3556564 +-7.9696164 +2.6117060 +1.4071026 +63.1768265 +-7.9951301 +-8.2144623 +83.6555939 +0.7031543 +36.4602966 +1.9465135 +0.6837413 +-3.4026120 +255.9661713 +7.4783564 +-9.8744612 +-17.3343658 +-2.7844989 +163.1655884 +206.3092499 +-2.4770932 +-9.8073130 +-24.0545292 +-4.7109156 +-0.0609727 +1.4445535 +-1.6043971 +260.4745483 +2.1977565 +-1.5228819 +-5.7758837 +-7.9905405 +169.8960571 +2.8661292 +0.5165113 +114.5676270 +-7.9599423 +-38.7759247 +53.9370079 +6.7850275 +-0.7420580 +-1.4229209 +0.4156906 +-2.5319724 +-1.6274458 +7.0033889 +-0.1179798 +1.8844224 +-1.6157143 +-1.4641545 +-1.0018166 +-0.8385910 +-0.8634796 +1.0974230 +-22.3722668 +-1.4738686 +-3.8688240 +-5.3920188 +2.0849178 +3.2404354 +0.2560253 +-1.1461183 +-0.5888858 +-12.4607229 +3.8094618 +0.9077069 +-14.2725277 +-5.2195625 +-2.2604346 +34.4589958 +-33.9100609 +16.3996773 +-28.8921070 +2.0070710 +1.9927123 +3.7086794 +1.9849833 +-0.6939992 +-1.4251200 +48.0802422 +15.5578690 +1.4473050 +-1.6392938 +-15.9834528 +16.1966400 +-1.1644924 +2.8183699 +-55.5786476 +-20.3473110 +-15.8321772 +-21.1277618 +2.9541380 +-12.9685583 +3.5925496 +4.7749267 +-27.2126217 +4.1356292 +1.1738912 +0.7391778 +-17.7109814 +-1.5950528 +10.1507387 +-8.7560883 +1.9174289 +106.7916870 +10.0093899 +-0.0215312 +6.9557967 +-3.9916615 +4.0197067 +-0.3377497 +0.2494456 +-1.7017691 +-0.2619935 +0.4996356 +1.0682209 +-1.8405484 +-1.0988691 +0.5110134 +-30.0439949 +-1.0772449 +-10.4044800 +1.4632548 +5.4040685 +3.9986742 +3.3116095 +0.4513017 +-5.6962357 +-0.0520435 +-6.8784842 +0.7959760 +1.0225949 +4.0260358 +-12.2805452 +-14.0268230 +-0.8812830 +0.5201601 +247.6201477 +1.3524513 +2.5976303 +-1.9049615 +-1.0762960 +-2.2806189 +-24.1357937 +-30.5731773 +-2.1441450 +23.3124962 +-1.5682081 +-1.4344414 +-6.4739981 +-32.0577126 +-16.6173935 +-0.0692216 +2.8691843 +-0.1524999 +67.2096405 +2.1537032 +-1.1269269 +-6.7163715 +1.1961223 +12.4381485 +1.7756443 +0.8782820 +27.9511070 +-23.1557274 +-21.6262321 +-37.1816711 +-20.9069214 +-31.9833717 +-27.0720882 +2.4412143 +-25.4783726 +-20.8993206 +-25.0928097 +-19.4390812 +-23.7829685 +-56.6722870 +-25.2471085 +-4.9128661 +-20.6371288 +-61.2343330 +-6.3487816 +-31.7329922 +-11.9391556 +-54.7124481 +-28.1305714 +-5.4151549 +-17.1822510 +-15.9029846 +14.5484276 +-9.6851463 +-88.8125229 +-38.8250313 +-5.4043322 +-42.7664719 +-897.7548218 +-35.3249931 +-29.6669769 +-30.2079201 +-48.8729439 +-36.8055916 +-52.6869278 +-28.5538826 +-15.9916821 +-31.9480095 +-55.3332596 +-122.9988327 +-17.0708275 +-40.8404465 +-12.6305838 +-18.0367146 +-58.6691360 +-39.8598480 +-51.1724625 +-20.3527164 +-65.0394058 +-20.3946857 +-10.9384336 +-15.9927740 +-23.2291508 +-60.0850792 +-19.5781441 +-30.8001404 +-20.2179031 +-39.2347794 +-22.7016907 +-32.4506912 +-14.9990606 +-57.3580971 +-17.4002304 +-87.8491745 +-28.5385704 +-8.8502054 +-44.5612640 +-27.9834328 +-29.5153084 +-33.3615532 +-103.3826294 +-22.1095963 +-50.7921295 +-34.3871002 +-157.2249603 +-31.9762077 +-17.9457531 +-851.7008667 +-70.1704025 +-5.0470228 +-20.2832565 +-2.8124857 +-45.7513542 +-13.3353891 +-182.9599457 +13.6927929 +-31.6878281 +-553.7094116 +-44.1352615 +-33.9466476 +-14.6404982 +-28.5714588 +-59.9392471 +-27.8643055 +-26.1017685 +-31.6796055 +-62.5260124 +-7.8907518 +-24.8390732 +-27.2812023 +-78.0937271 +-52.6144066 +-31.9859009 +-32.8992271 +-26.0915241 +-39.0254478 +31.9591789 +-23.7045803 +-40.6783752 +-50.7788391 +-1.9292167 +-6.7678304 +-18.8207664 +-499.4050293 +-22.4154224 +-9.6653461 +-63.9608688 +-14.1144161 +-55.7514801 +-23.5234470 +-31.9872723 +-35.5654793 +-33.2557411 +-93.2021255 +-39.6347466 +0.0613534 +-1.0973905 +-2.6494110 +-1.0177248 +-1.7689830 +214 128 5 0 0.1000000 1.0000000 +3.7800879 +-1.7480620 +25.2290192 +-2.6979253 +-0.3597988 +-0.8519943 +-1.7343618 +-0.5358528 +-0.2957850 +0.0433387 +-2.2139492 +-0.9219721 +-2.2977550 +1.5303719 +-1.6843621 +-0.9521623 +9.2753134 +1.2901801 +-0.3073305 +3.2000704 +-0.1752745 +0.5182328 +5.2352200 +-2.0462174 +-3.0171599 +-1.3925563 +25.9683361 +0.4087674 +3.4678810 +21.2285442 +-2.0769031 +4.6307735 +-0.3457589 +1.4369253 +5.1976500 +0.1459611 +2.5554197 +-0.4448529 +-4.3025622 +-2.7120616 +-5.5175533 +-0.6838096 +-0.7087670 +10.5928202 +0.6303972 +-1.2911751 +-1.5099674 +3.9876368 +-2.1538227 +-0.5207398 +2.0225091 +0.4438867 +1.0312260 +-0.5918448 +-1.3418256 +-3.8343689 +-3.1307118 +0.7298326 +-1.4630646 +-0.1714287 +3.1092288 +3.7063594 +2.4585929 +0.0031891 +7.7630901 +1.5083357 +-1.0157279 +-0.8242238 +0.3850199 +2.4604111 +0.9022225 +-2.6809893 +-0.5124778 +-0.8317611 +-0.1734135 +11.7020235 +0.3526541 +3.2849181 +7.7707186 +-8.3969946 +0.8967438 +-1.3385024 +-4.7456837 +-0.7544815 +0.4968596 +-2.2606683 +0.8435078 +0.2079615 +-6.7353549 +-3.5800915 +-0.8422092 +1.6228448 +4.8153043 +2.0337112 +10.8758907 +-1.2326909 +0.1099554 +7.5811443 +-0.2814382 +-4.5380621 +10.0913877 +-1.0734162 +-0.5199329 +-1.1319032 +-1.6098071 +0.0086309 +-0.6922587 +0.7488204 +-0.5594696 +0.6152590 +-1.7793281 +-0.2576566 +1.7821753 +-0.3178351 +0.0675330 +6.4760551 +-2.5945606 +0.0611481 +-0.5457979 +-4.6119404 +-0.3664577 +-1.1287674 +-0.6153550 +-1.1711287 +2.5620577 +26.2098122 +5.4909525 +-6.3708129 +5.8472114 +-2.9672174 +30.5694809 +-4.7371187 +-1.3373432 +0.6886774 +-2.4044907 +-4.8382511 +-0.7422822 +-1.2668084 +-5.3572578 +-2.0265033 +-3.2484686 +-0.2827791 +-4.5051727 +-0.5582487 +9.2893219 +1.7652286 +-1.1341763 +3.8180621 +-3.0718851 +0.2649647 +7.6601095 +-4.9932899 +-5.1321778 +-2.2217040 +33.6535645 +1.0392048 +5.1673937 +27.4608173 +-4.4117751 +6.5949049 +-0.9677512 +1.9900137 +5.9284720 +-1.5256827 +2.1214771 +-1.1838790 +-4.6817374 +-4.8215489 +-11.5520563 +-3.5843041 +-1.7357198 +14.6010771 +0.9516225 +-2.0120096 +-3.0862873 +7.2161813 +-6.4284272 +-0.9454395 +3.9857790 +1.3332705 +0.9450051 +-2.6807630 +-2.4610186 +-6.0952582 +-4.9146690 +-0.5490812 +-3.7046275 +-0.4678329 +1.6734898 +5.7145500 +0.2057820 +-0.8163605 +12.9292841 +2.2667696 +-1.5484312 +-1.4469843 +0.1739526 +-0.1631455 +0.0948795 +-1.4128084 +-2.5351546 +-2.3725941 +-0.3525525 +15.3046980 +-1.2252736 +5.6290221 +10.7038679 +-11.0819874 +-0.0018877 +-2.6885796 +-9.7939043 +-1.4820713 +-1.6067045 +-4.5931206 +0.1925117 +-0.2471875 +-18.3912048 +-8.2209206 +-1.3919041 +3.9470677 +9.0545740 +3.3464489 +13.7283468 +-3.5087049 +0.8431054 +9.5900087 +-1.2419136 +-4.6573977 +11.8379736 +-1.8914416 +-1.3191620 +-2.1502266 +-4.1817513 +-5.3005056 +-5.9756923 +-1.1075265 +-0.7415535 +0.0892275 +-3.0301239 +-0.1963903 +2.2502735 +1.0210953 +0.8843392 +9.6746635 +-4.0356293 +0.3384159 +-0.9860180 +-12.9612837 +-1.9759777 +-2.7835639 +-0.8383719 +-5.1798453 +1.2030913 +30.6464157 +4.7688942 +-13.4804087 +7.5374322 +-4.5274658 +30.7548542 +-6.1970434 +-1.1812459 +1.6787250 +-3.1864631 +-9.3132744 +-0.9938218 +-2.8920000 +-4.3623242 +-2.9348168 +-5.2591696 +-3.3588541 +-8.4960642 +-1.3203241 +7.9303422 +1.6632882 +-12.6838455 +3.9176192 +-5.7377934 +0.2443090 +10.3086224 +-8.5414629 +-7.7241325 +-2.9624443 +36.9369659 +1.7767929 +5.9829192 +29.7705917 +-7.4466653 +8.7702360 +-1.4529096 +2.5459402 +6.4933448 +-2.1725328 +1.6470867 +-1.7106184 +-4.7053189 +-6.9827781 +-17.5064354 +-7.6733632 +-2.5769484 +15.9963388 +0.7984490 +-2.5710566 +-4.6514487 +10.1500483 +-9.4020166 +-1.4846075 +5.3372741 +1.8923465 +-0.1602496 +-4.8964605 +-3.8712342 +-9.0110073 +-6.8614430 +-3.1517315 +-0.9366056 +-0.5349781 +0.0417845 +7.4481258 +-1.9950608 +-1.8169849 +16.0036068 +3.0766082 +-2.0936909 +-2.2028229 +1.0276747 +-1.1947892 +-1.2657620 +-2.4986947 +-3.2288544 +-3.9140208 +-1.0269631 +17.5718021 +-3.0853517 +8.0715694 +12.3883896 +-14.5554504 +-0.9419048 +-4.0301142 +-17.1403942 +-2.4660811 +-4.6035733 +-6.5370994 +-0.9705349 +-0.6051816 +-18.8675880 +-10.5718784 +-2.4314237 +5.7430825 +12.6929941 +3.9594200 +15.0311270 +-5.2029586 +1.4571164 +11.4106255 +-2.2396495 +-5.1565285 +12.7926569 +-2.7439561 +-2.0044718 +-3.1518383 +-7.4898353 +-7.6447616 +-10.8832340 +-3.3538620 +-1.0014864 +-0.0655797 +-5.3578362 +0.1191786 +2.7510486 +2.0254383 +0.3764527 +13.0627260 +-5.8709679 +0.7647683 +-1.5303963 +-20.9860840 +-4.1898522 +-4.9939775 +-0.7818933 +-9.3057909 +0.1666791 +35.1544304 +3.9197693 +-15.5407391 +2.9923172 +-2.4383123 +-2.3300390 +-6.2256527 +-8.9581423 +2.1442900 +-1.0484003 +-8.2689342 +-1.7515680 +-4.4835725 +-13.2252512 +-1.6075130 +-3.5334063 +-7.7387075 +-8.7863626 +-2.2227564 +-2.3678963 +0.2463739 +-7.0585608 +0.0719857 +-6.5107789 +-1.0218542 +5.0871477 +-7.3940988 +-9.5546770 +-1.2286559 +3.3308845 +0.3766589 +0.6216434 +2.4047885 +-5.9714026 +4.0970511 +-1.0630834 +0.4212454 +0.7766664 +-2.6141977 +-1.8406422 +-1.1471469 +-1.3898897 +-4.1352153 +-8.9360390 +-9.3484077 +-2.5054171 +1.0926580 +-1.6167110 +-2.0076008 +-3.6216919 +5.7792597 +-5.7741008 +-1.1526929 +2.6956022 +-0.1131102 +-2.7639952 +-5.3820062 +-3.1423254 +-6.7964377 +-4.4242101 +-5.9673934 +-7.1361012 +-0.1644612 +-4.0157676 +2.8316543 +-3.3829896 +-3.7223756 +3.2418356 +1.7442141 +-2.0277119 +-1.9087309 +0.7529396 +-3.9447076 +-2.8760135 +-3.6534042 +-3.2169428 +-4.4424782 +-1.4470943 +4.6189237 +-4.7872005 +4.3847003 +2.6138844 +-6.7427635 +-3.1263504 +-3.3441606 +-14.1886082 +-2.0619519 +-7.3308063 +-3.7698925 +-3.1465170 +-0.8710832 +0.3864971 +-8.5565529 +-2.9200630 +2.9559314 +5.1268187 +1.3290290 +1.8714594 +-3.9238200 +0.5562245 +2.5335007 +-2.2135618 +0.0084634 +2.1969075 +-2.2006783 +-1.5088550 +-2.8021009 +-13.2341375 +-2.8878078 +-7.6463766 +-5.1041760 +-1.4552107 +-1.0741037 +-4.4232373 +0.5045918 +0.9945930 +0.5358590 +-2.0961928 +6.2791257 +-4.6912327 +0.8870770 +-1.0366160 +-14.8204155 +-5.3353124 +-4.6611714 +-0.3473402 +-6.5848689 +0.5374185 +10.1580162 +-0.8790798 +-11.3346100 +2.5347149 +-1.5587255 +14.7893915 +-1.2072184 +-5.9727640 +0.4049209 +-1.4513806 +-3.3936946 +-0.7678047 +-1.1690228 +2.6187742 +-0.2843833 +-2.2208562 +-2.3962090 +-2.7648463 +-1.0243061 +-3.5976062 +1.0609084 +-0.8149194 +0.9642218 +-0.8552154 +-2.3331923 +4.1703730 +-1.1563725 +-3.4252996 +-0.9990261 +24.5749645 +0.2879878 +1.5367775 +10.0692387 +-2.5728505 +3.7255635 +-0.9542096 +0.7939988 +1.8800160 +-0.5849461 +1.4445924 +-0.4030118 +-5.6743088 +-2.1238708 +-5.4159961 +-3.3376381 +-0.6110007 +-5.0735273 +0.2299716 +-1.1345160 +-1.6354414 +3.5718946 +-2.8009250 +-0.6592929 +1.7213240 +-0.2667330 +0.0257417 +-1.8563390 +-1.0958123 +-2.7925010 +-0.2977251 +-2.0205052 +-0.9565223 +-0.1571438 +1.9350305 +2.1770792 +-1.1656069 +-0.5334544 +0.1483458 +1.2129740 +-0.7055104 +-0.8300701 +0.3357006 +-2.1424773 +0.3725408 +0.0165024 +-2.3896110 +-1.3299744 +-0.4046718 +-0.5136158 +-1.3375359 +3.4207191 +1.1446500 +-4.2755814 +-0.3710840 +-1.4005632 +-7.0146556 +-0.9901294 +-2.9120739 +-1.8687857 +-0.7333940 +-0.1258901 +-5.8395939 +-2.8871891 +-1.3866179 +1.5164367 +1.4447452 +4.7298517 +5.8635526 +-1.5949110 +0.0737147 +-0.4472785 +-0.2314431 +-2.6706002 +-2.0298162 +-1.1675261 +-0.6618246 +-1.2785488 +-0.8098813 +2.5693252 +-3.1486137 +-0.0356670 +-0.6351330 +0.2182603 +-0.5802190 +-0.2225597 +0.9451532 +0.2773363 +-2.2551866 +5.2319560 +-2.4452155 +0.1162584 +-0.4759040 +-5.5510254 +-1.8100318 +-1.7661432 +-0.3752968 +-2.8447351 +1.0148779 +10.9214153 +3.1717122 +-5.2217803 +4.3973241 +-2.6942837 +16.2853870 +-2.9890676 +-7.9070201 +1.3247597 +-2.0600889 +-7.5861378 +-1.2009988 +-3.0692577 +5.2449031 +-1.1630824 +-2.2491341 +-5.2999110 +-6.1150913 +-1.1900476 +-5.6198449 +1.1607344 +-1.6848360 +1.1913750 +-4.5396128 +-2.8600538 +6.4346271 +-4.7059598 +-5.7966108 +-2.0890760 +29.9144135 +0.9775951 +2.1438622 +13.1616678 +-5.3519526 +5.6289153 +-1.1899314 +1.1879648 +2.5068381 +-2.1919208 +0.7162286 +-0.9585336 +-6.3777947 +-4.6231079 +-13.2246075 +-7.8851151 +-1.5801361 +-7.8331256 +1.4871889 +-1.9727603 +-3.3722177 +6.9627800 +-6.0362091 +-1.1586429 +3.2457550 +0.1930711 +-0.3992960 +-4.6257153 +-2.2037685 +-6.5807867 +-2.2643642 +-4.9664865 +-2.1151996 +0.0387997 +0.0013888 +3.7233405 +-2.8991337 +-1.5216643 +0.5174541 +2.0906754 +-1.3316104 +-1.6783746 +0.8359636 +-2.4042616 +-0.9677219 +-1.6407955 +-1.4980086 +-3.9220450 +-1.5375538 +0.7500805 +-3.6074893 +5.6714926 +1.2957895 +-5.8972640 +-1.9325680 +-2.8384018 +-9.2215462 +-1.6198453 +-6.1071706 +-4.1443000 +-2.2003412 +-0.2048606 +-14.6469841 +-6.5926828 +-2.6056707 +3.2925041 +4.6794043 +8.8369904 +7.9547324 +-3.7382061 +0.6477538 +1.3228142 +-1.0505892 +-2.4112837 +-3.4770269 +-2.2164168 +-1.3709054 +-2.2535658 +-2.6065478 +2.4390328 +-9.4161339 +-2.5377557 +-1.1173055 +-0.3439189 +-2.8833020 +-0.2382443 +1.4947665 +1.1107078 +-3.2689788 +8.3823872 +-4.5287075 +0.7043594 +-1.2438835 +-14.9308443 +-4.3890419 +-4.2509446 +-0.3628905 +-6.7281399 +0.6974422 +15.3556099 +2.2237556 +-9.2194958 +5.9182224 +-3.9602733 +14.9374619 +-5.0133162 +-11.5349636 +2.4864767 +-2.5663450 +-11.3738890 +-1.6851580 +-5.3559232 +6.7461987 +-2.1843677 +-3.9642754 +-8.9522495 +-10.3346872 +-1.8402361 +-6.4321837 +0.9053594 +-10.7873363 +1.0696479 +-6.9492121 +-2.4343343 +9.1477385 +-8.2053270 +-12.6012316 +-2.7182660 +31.7448750 +1.5043119 +2.2658768 +14.3977709 +-8.2386608 +7.7986927 +-1.5873113 +1.6181512 +2.7106328 +-3.2138915 +0.2356954 +-1.5044342 +-6.5830193 +-6.8193674 +-17.5853462 +-12.1840363 +-2.6443498 +-9.8349247 +0.6804122 +-2.7949328 +-5.1516209 +10.1961584 +-9.1012421 +-1.7571756 +4.7104549 +0.8282495 +-1.5409535 +-7.2839875 +-3.7110679 +-9.1393852 +-4.1178508 +-6.9179392 +-7.2163038 +0.1130893 +-1.8973842 +5.0802822 +-4.2490888 +-2.7204595 +1.1676618 +2.8827765 +-2.1744454 +-2.4864249 +1.5835414 +-6.1364107 +-2.1499674 +-3.8027675 +-2.6194363 +-6.0607944 +-1.9516560 +4.0238075 +-6.1499863 +7.9347019 +2.9248345 +-8.5697765 +-3.5379088 +-4.3172793 +-13.0640535 +-2.6061363 +-9.5364475 +-6.1410012 +-3.8515475 +-0.5101303 +-23.9311218 +-10.6741142 +-3.5164120 +4.8512764 +8.0174427 +11.2703819 +9.5490599 +-5.4281898 +1.1700269 +2.4534411 +-2.3709409 +-2.6438153 +-2.4899800 +-3.1291656 +-2.1559396 +-3.4042292 +-5.4570508 +2.8498678 +-13.3089218 +-4.6047955 +-1.4770378 +-0.8035367 +-5.2413197 +0.0118045 +2.1735361 +2.6555591 +-3.8883183 +11.6880455 +-6.4018321 +1.3264637 +-1.5775547 +-21.9846039 +-7.1277919 +-6.3042407 +-0.1969663 +-10.8497190 +0.1802064 +20.4066715 +1.3364372 +-12.7948036 +3.2014756 +-2.9709725 +-3.8561416 +-5.0153503 +-2.6819944 +2.3540537 +-1.0086199 +-9.1085873 +-1.5934235 +-5.1857762 +6.7007942 +-1.5199808 +-3.0540781 +-7.4730315 +-9.4064331 +-2.5821133 +-2.8123393 +-0.0506191 +-1.9850101 +-0.3088237 +-7.1077290 +-1.4680551 +4.9560046 +-8.1722660 +1.5146551 +-1.5523956 +0.4275394 +0.6248803 +0.4013484 +1.4646790 +-5.9896317 +4.1127877 +-1.0603390 +0.2505044 +0.6543602 +-2.8799675 +-1.9063774 +-1.1220827 +-1.0132281 +-4.5239401 +-12.2796021 +-9.6770153 +-2.4729984 +-4.5838108 +-1.3916426 +-1.9342699 +-3.6454394 +5.9133630 +-5.0933414 +-1.1192856 +2.7701149 +-0.1202886 +-3.3657110 +-5.6248202 +-2.9744277 +-7.6617370 +-4.7717056 +-6.8403940 +-2.5707517 +0.0022047 +-3.9740996 +2.4038200 +-4.0765805 +-2.9043095 +2.0363545 +1.7716210 +-1.6235689 +-1.9109576 +0.4507709 +-1.2417150 +-3.2100375 +-2.7219274 +-2.4684544 +-5.0380139 +-0.6157554 +8.3952513 +-4.9355545 +4.3715134 +2.9703059 +-5.5827274 +-3.1953990 +-3.2429748 +-5.0955472 +-2.6991429 +-7.6729474 +-4.2978730 +-3.5085804 +-0.6480073 +-8.2832127 +-5.7916179 +-3.0408597 +3.0620401 +7.8189039 +2.1573770 +1.7404301 +-3.9183686 +0.5846748 +2.5557678 +-1.9626296 +-0.2466621 +3.1877961 +-2.2657475 +-1.2262042 +-2.6136992 +-20.4355774 +1.2416794 +-8.3843641 +-5.6110048 +-1.4228168 +-1.1750209 +-4.4132891 +0.6279736 +1.0401442 +1.6544715 +-2.3741832 +6.4175839 +-4.5422344 +0.7608477 +-1.0469291 +-17.3173409 +-5.6422915 +-5.0272450 +0.0870263 +-7.8904676 +0.6341878 +9.8447514 +-5.4623423 +-12.4339409 +2.0686655 +-1.2646167 +6.5261183 +-2.5124850 +-5.3221927 +1.1480622 +-1.0329844 +-3.6240025 +-0.7817852 +-1.9526417 +2.6717429 +-0.7269601 +-1.2555758 +-2.9335730 +-3.5252318 +-0.7383771 +-6.3369727 +0.3084113 +-1.2822310 +0.1889298 +-2.1462824 +1.3477684 +2.8362882 +-2.6063194 +-3.0301974 +-1.3060910 +7.4039736 +0.3410955 +0.5838094 +5.1571612 +-3.0232885 +2.6814647 +-0.7228655 +0.6462950 +2.0051148 +0.1439147 +0.4032757 +-0.4285527 +-4.3410211 +-2.5216007 +-6.8930292 +-4.2990818 +-0.4998170 +-0.9244863 +1.8258202 +-0.8964356 +-1.7538317 +3.3392482 +-2.6905632 +-0.7738016 +1.5387555 +-0.2666964 +-0.6173583 +-2.5503945 +-0.9651231 +-3.2967911 +-0.4547931 +-3.3858666 +-3.1544874 +-0.0707042 +-2.0303917 +1.7477156 +-1.0794828 +-1.6540389 +0.8968200 +1.0411141 +-0.7451937 +-0.8666031 +0.1103150 +-2.2709758 +-0.6349491 +-3.8917506 +1.8886852 +-2.0278814 +-1.1362612 +13.7589674 +-2.1939819 +5.6421657 +-0.8334354 +-4.7838788 +-1.2283574 +-1.5994843 +-4.5941114 +-0.9796267 +-3.0935681 +-2.6145375 +-1.4723444 +-0.0127443 +-2.1827137 +-3.2936692 +-1.6616532 +1.7694806 +1.5059386 +0.8394797 +-5.1084471 +-2.2933991 +0.3210906 +0.3041117 +-0.5933793 +-1.3669196 +-3.6165557 +-1.1718276 +-0.5542618 +-1.1632944 +0.2458086 +1.6386368 +-3.0255566 +-1.4289171 +-0.7492860 +-0.0193999 +-2.2028823 +0.0426098 +1.1784198 +0.1308970 +-2.5775990 +4.1342421 +-2.2998054 +0.3494542 +-0.7103946 +-7.5644016 +-2.5815518 +-2.6904728 +-0.3124344 +-2.6081905 +0.6757454 +9.9191170 +1.1200619 +-3.2384653 +3.7095180 +-2.6534064 +5.7525020 +-4.6477318 +-9.5115089 +2.1126723 +-1.4514471 +-8.0753384 +-1.4137985 +-4.4200993 +5.1840096 +-1.7308218 +-2.8470552 +-7.1198440 +-7.3999653 +-1.1551185 +-9.8657980 +0.2368582 +-14.4031343 +0.1954239 +-5.7476263 +-1.3439999 +5.2285833 +-5.8360181 +-5.5087786 +-1.9787101 +8.8360920 +0.8312302 +0.8066335 +6.7836981 +-5.5196047 +4.6576309 +-1.1793342 +0.9148012 +2.4115348 +-0.4585559 +-0.6141577 +-1.2193912 +-5.7904477 +-4.7369084 +-13.6329126 +-9.1871319 +-1.3239230 +7.2965212 +0.6136783 +-1.6658328 +-3.5783403 +6.3148589 +-5.8442526 +-1.4099439 +3.1880093 +-0.0257998 +-2.0503321 +-5.4500847 +-2.3294499 +-7.0391660 +-1.9390559 +-6.3256707 +-2.5353539 +-0.0641951 +-3.9676614 +2.9085729 +-3.2227142 +-3.0785112 +1.4883057 +1.8425733 +-1.5880588 +-1.8942573 +0.3673042 +-6.8416171 +-1.9814701 +-8.1369371 +0.5725793 +-4.5127883 +-2.0165865 +20.5868893 +-4.7538738 +7.9863977 +-0.2891366 +-7.6240373 +-2.9765091 +-3.2044208 +-5.6408062 +-1.7397761 +-7.1777654 +-5.5033331 +-3.2253759 +-0.3495320 +-8.5579834 +-6.2469316 +-3.0101976 +3.5822089 +1.7067945 +1.9906250 +-9.6561460 +-4.1726594 +0.8624737 +1.8491384 +-1.4705532 +-1.2150275 +-6.2385411 +-2.3115375 +-1.3911899 +-2.3211410 +-0.1078125 +1.3898758 +-5.9045529 +-4.0730286 +-1.4011167 +-0.7670819 +-4.3440919 +0.2708737 +2.0793283 +0.5280415 +-4.5616999 +7.2124791 +-4.8046088 +0.8444644 +-1.1571132 +-16.4346142 +-5.3980036 +-5.4784193 +-0.3290699 +-5.9207072 +0.9452223 +14.5914574 +-0.7660777 +-10.2323513 +5.2257147 +-3.9175944 +3.5453556 +-7.1803360 +-10.5201559 +2.8016472 +-2.2760406 +-11.5229206 +-2.3320544 +-7.0024834 +7.5258098 +-2.1188087 +-4.7695885 +-10.1861210 +-12.3362007 +-2.1493762 +-10.8933563 +-0.2006714 +-16.2781773 +0.1371112 +-9.0996723 +-2.6280007 +7.8057208 +-9.2976837 +-4.9981651 +-2.6740940 +9.2270308 +1.0635680 +1.1316502 +7.2965913 +-8.6806831 +6.7746482 +-1.8308276 +1.2545469 +2.7530994 +-1.2919594 +-1.4187373 +-1.9833890 +-5.9168730 +-6.7617044 +-19.2530842 +-14.9172802 +-2.2317178 +10.1783848 +-0.4558992 +-2.7290998 +-5.4458861 +8.9451876 +-8.0878487 +-2.1927624 +4.6630411 +-0.1095945 +-3.5985177 +-8.2280569 +-3.8477263 +-10.8404036 +-3.6371303 +-9.3128700 +-8.8990602 +-0.0096155 +-6.0104985 +4.2662215 +-3.6740167 +-4.8565440 +2.5954113 +2.7240522 +-2.4323704 +-3.0446432 +1.0530019 +-11.4010134 +-3.4487181 +-11.4881439 +-1.6488168 +-6.7064118 +-1.5544695 +24.8010483 +-7.1026573 +10.2090960 +1.4279547 +-11.4683666 +-4.5010858 +-4.8254237 +-9.8004446 +-2.8358924 +-10.3752041 +-8.1612301 +-4.9521122 +-0.7537045 +-14.0209761 +-8.0512047 +-4.4856863 +5.2494745 +2.8251073 +3.4745295 +-10.3018360 +-5.8802781 +0.8571211 +3.2591300 +-2.6926930 +-1.2299711 +-4.4713302 +-3.6208780 +-2.2672825 +-3.6927497 +-1.1755364 +0.9503025 +-9.4909277 +-6.9587574 +-2.4319313 +-1.2944810 +-6.4922118 +0.6586875 +2.5890982 +1.1701869 +-5.6554494 +10.4394627 +-7.4966035 +1.3276033 +-2.0035906 +-24.9840908 +-8.1932964 +-7.4538059 +-0.3470182 +-9.5198832 +0.8981198 +19.3628864 +-2.8165281 +-8.8069935 +3.4040284 +-2.4929476 +-5.2319155 +-4.7094064 +-5.7108855 +1.4504682 +-0.8506739 +-8.5082846 +-1.6669521 +-6.2192206 +5.9758935 +-2.3145263 +-3.8835928 +-9.0536604 +-10.6124830 +-2.5798311 +-3.2389860 +0.7430446 +3.9061596 +-0.0334074 +-6.0869203 +-5.6037202 +5.0221853 +-7.9039569 +-5.0058985 +-1.2054576 +-1.1673671 +0.5925310 +-0.0596717 +0.1945289 +-5.9791975 +4.0909190 +-0.7794085 +0.3956027 +0.7211973 +-2.8338366 +-1.1772799 +-1.2458410 +-1.2991894 +-4.5254059 +-12.3713121 +-14.1559114 +-2.8852594 +3.6550102 +-1.7675118 +-1.9760680 +-4.0160689 +6.1316619 +-1.8946130 +-0.8372598 +2.6363518 +0.3247871 +-4.2105746 +-5.8640108 +-3.1722310 +-7.0050473 +-4.6578979 +-7.6665363 +-3.1615171 +0.6994978 +-3.7269580 +2.3638859 +-4.4572301 +-3.0491712 +3.8981280 +1.8167856 +-2.3549113 +-1.7825904 +0.5033365 +-1.8421309 +-2.9292564 +-7.0634775 +-6.1960735 +-4.6825142 +-0.0924721 +2.7986286 +-5.3723755 +4.5824499 +2.3638685 +-5.2289696 +-3.5008168 +-3.4122694 +2.3132355 +-2.1676409 +-9.1049509 +-3.9666843 +-3.7521081 +-0.6886365 +-9.0216551 +-8.4401445 +-2.9115579 +3.2702701 +-6.4480572 +1.9910555 +-8.1768847 +-3.0156422 +0.7516788 +2.9069884 +-2.1859443 +-0.0208916 +4.1265955 +-2.1427627 +-1.3416892 +-2.7513428 +-5.4003839 +-0.2102616 +-11.3423929 +-4.6227474 +-0.9933940 +-1.5556949 +-4.4795241 +1.0712502 +1.3352638 +1.8173553 +-3.1841424 +6.4210029 +-4.1076694 +0.8568047 +-0.6330929 +-15.9999495 +-5.9810824 +-4.3605042 +0.7210627 +-7.7068753 +0.7933359 +9.2046328 +-4.2215028 +-7.5198193 +1.4542211 +-2.0995553 +0.6040736 +-2.5284324 +-7.9647727 +2.2729738 +-0.7014198 +-4.6529536 +-0.5659459 +-2.7164299 +2.1043649 +-0.5822963 +-0.7198759 +-5.1511765 +-3.9772425 +-0.9901749 +-10.1191969 +0.1226116 +-3.5503011 +0.0482493 +-2.4789083 +-3.4153612 +3.0347903 +-2.2423837 +-2.2030337 +-1.1935797 +2.5773187 +0.4557127 +-0.1912254 +1.7594397 +-2.4285958 +2.5683064 +-0.5115293 +0.1769739 +0.8806241 +-2.0207472 +-0.1957533 +-0.8068938 +-5.9880080 +-2.2164037 +-6.9555702 +-5.1497808 +-0.6010464 +-3.0626307 +-6.8014593 +-0.8026057 +-1.8779025 +3.2856102 +-2.4851263 +-0.5977901 +1.8299434 +-0.1884500 +1.3754919 +-3.3206210 +-1.3165152 +-3.4996405 +-0.7404989 +-3.5812848 +0.5450671 +0.0430784 +-2.3380876 +1.3301889 +-2.7984810 +-0.4944904 +5.2812390 +1.1053822 +-0.9789923 +-0.9041520 +0.0620662 +-6.6019659 +-1.2079513 +-4.6143460 +-0.6383966 +-3.1259434 +-1.3506016 +3.9429071 +-3.1214077 +3.0403237 +-2.8755960 +-4.0008259 +-2.2351792 +-1.7166440 +0.3861715 +-1.6091219 +-4.8522062 +-3.4632118 +-2.1301529 +-0.2509806 +-4.1746416 +-2.9870379 +-2.0941293 +1.8119842 +1.3965858 +-2.8784666 +-1.0547318 +-1.7584802 +0.3825279 +3.0502732 +-1.4249535 +-0.8314489 +-9.0699110 +-1.1531755 +-0.9124000 +-1.2025869 +2.5806568 +-2.4585674 +-3.6236920 +-1.8332745 +-0.3766056 +-0.3200118 +-2.1603942 +0.3659511 +0.2506931 +0.2370819 +-1.3960955 +3.8025784 +-2.0882540 +0.2775454 +-0.7793860 +-7.7079782 +-3.3204365 +-2.8140824 +-0.1404959 +-3.5445025 +0.2764651 +6.2202597 +-1.1551335 +-4.5294209 +3.1668506 +-3.2383795 +-1.2484409 +-4.8999329 +-15.4207115 +2.8720727 +-1.2353507 +-9.2430925 +-1.2921046 +-5.7789063 +4.7896590 +-1.8133030 +-1.8168702 +-8.4953413 +-8.6503716 +-1.3385429 +-22.0372086 +0.2775688 +-13.7995710 +-0.0273852 +-6.0781951 +-3.2550602 +5.2761564 +-6.5031781 +-5.4679570 +-1.8787497 +2.5542777 +0.7134632 +-0.0046919 +2.1588397 +-5.5291772 +4.4601822 +-1.0800849 +0.5183818 +1.0862094 +-2.5779612 +-0.7961977 +-1.5592912 +-6.6005487 +-4.4799094 +-13.9021111 +-11.4949083 +-1.7569656 +-7.0822778 +-6.7262177 +-1.8493288 +-3.7883046 +6.1529856 +-5.3654971 +-1.1860796 +3.5878425 +0.0552441 +0.3520100 +-6.3120871 +-2.5647235 +-7.2940702 +-2.7945101 +-6.5873785 +-2.3725016 +0.0759350 +-4.2691445 +2.2744777 +-5.1202707 +-1.6070035 +10.0100641 +1.8828121 +-1.9497763 +-1.8294100 +0.2487289 +-8.2570839 +-2.7169950 +-7.1886368 +-2.5206332 +-5.3197103 +-1.3247910 +3.3504028 +-5.7291541 +5.0306487 +-4.1308675 +-8.5607224 +-4.0671372 +-3.4630706 +-0.6508642 +-2.6458268 +-8.4690161 +-7.3905463 +-3.9747717 +-0.6048093 +-8.5065079 +-6.0873775 +-3.3780141 +3.7741582 +2.2425575 +-6.6752043 +3.9411185 +-3.6152797 +0.7148923 +4.5220251 +-2.4906340 +-0.7116976 +-19.0134430 +-2.3248012 +-1.7812567 +-2.5927360 +3.6796260 +-2.1656799 +-7.6951342 +-4.4587340 +-1.2228293 +-1.0488646 +-4.0422769 +0.7507183 +1.0669140 +0.7879311 +-2.8380673 +6.9216523 +-4.1994362 +0.7838770 +-1.2652836 +-16.6556644 +-6.1800175 +-5.0820403 +-0.2337355 +-6.8690648 +0.6904279 +10.5410662 +-3.8222492 +-8.4467564 +4.7740951 +-4.8657565 +-4.5268664 +-7.4742632 +-15.5175734 +3.8511124 +-1.7817876 +-14.3343410 +-2.1835160 +-9.4019213 +7.3876433 +-2.6557527 +-3.4037311 +-13.4038239 +-13.8069773 +-2.5821240 +-22.9519806 +0.1881893 +-8.4237194 +0.1217966 +-9.5357590 +-4.2757215 +7.7885671 +-10.6223536 +-11.3403616 +-2.6427159 +1.8446987 +1.0056036 +-0.0023967 +1.4362017 +-8.3592043 +6.5762787 +-1.6631385 +0.7295286 +1.5168710 +-3.4755726 +-1.6230243 +-2.4078648 +-6.8985481 +-6.8336396 +-20.7124176 +-20.4279518 +-2.9680140 +-11.6907349 +-6.5583482 +-2.8988137 +-5.7699728 +9.1751804 +-6.8714528 +-1.8346943 +5.0771823 +-0.2222021 +-1.2611684 +-9.9565935 +-4.0953941 +-11.4665747 +-4.9783692 +-10.2264404 +-3.8009062 +-0.0098468 +-6.0856314 +3.6020868 +-7.6133099 +-3.2488918 +12.2646236 +2.8195372 +-3.0297198 +-2.8110535 +0.4166602 +-10.5523939 +-4.2515969 +-8.1269503 +-2.2082043 +-9.5294151 +-0.6962322 +3.6213002 +-9.0809231 +7.3529854 +-4.1681705 +-12.7644815 +-6.6165204 +-5.2233081 +-6.6285000 +-3.7306850 +-13.6986933 +-10.8903074 +-6.4094944 +-0.9394255 +-14.9440308 +-10.8174582 +-5.7816596 +5.5695400 +3.9202864 +-7.6979084 +7.2038689 +-5.3608007 +1.0111564 +5.8602643 +-3.7197011 +-0.6697428 +-13.2249689 +-3.5545115 +-2.6092446 +-3.9280262 +3.7820647 +-4.5574360 +-10.6500254 +-7.0754051 +-1.7903336 +-1.9043380 +-6.3767743 +1.2400968 +1.6403100 +1.5090985 +-4.0693312 +10.1639271 +-6.3721137 +1.1878240 +-1.8447568 +-25.2920589 +-9.7593107 +-6.9198694 +-0.1575901 +-10.7188721 +0.8878792 +15.3728924 +-6.4261842 +-16.4027843 +3.4081845 +-2.4784935 +-6.1043067 +-3.6216443 +-3.1377709 +1.9710324 +-0.5030141 +-8.2233496 +-2.1559067 +-6.6609864 +7.6123624 +-2.0062463 +-3.3410714 +-8.3816042 +-11.7628307 +-1.9017645 +-6.2506585 +-1.2027102 +-8.4303131 +-0.4938592 +-5.8805494 +-2.9344499 +4.6600227 +-7.6020994 +-7.4455647 +-1.2196200 +-1.5654924 +0.2988480 +-0.2513755 +-1.7982727 +-5.9299307 +4.0492725 +-0.9525197 +0.8050912 +0.5467396 +-2.3001378 +-1.2250701 +-1.3306807 +-0.7857680 +-3.6422353 +-10.3675270 +-20.1558514 +-2.6942730 +-13.2672968 +-1.5200378 +-2.0136082 +-4.3375354 +5.1559353 +-3.4406822 +-1.1740913 +2.5379663 +-0.3070000 +-4.6512828 +-5.3246646 +-3.1499264 +-6.5254288 +-3.2545097 +-6.4843483 +-4.6461034 +0.2738855 +-3.9836392 +2.4634790 +-4.1497335 +-2.1066730 +4.4871922 +1.7009723 +-1.9475244 +-2.0700145 +0.0656600 +-8.2606773 +-2.7813513 +-3.5909331 +-6.7955155 +-4.6473842 +-3.3967609 +-8.8646402 +-5.0131178 +4.2780561 +-0.7569331 +-6.1932778 +-3.0523167 +-3.7399757 +-6.4035091 +-2.2379065 +-8.1882591 +-4.9688892 +-3.5474520 +-0.7599884 +-12.7544250 +-4.1036696 +-3.9977911 +3.3393750 +3.5566280 +-14.6396618 +2.4885554 +-3.5667057 +0.2630456 +2.8342345 +-2.1152813 +-0.3751998 +5.1439562 +-2.1029716 +-1.6740086 +-3.0252888 +-4.2599349 +-5.7890701 +-7.3359861 +-4.8007264 +-1.8222411 +-1.1854607 +-4.8244195 +1.0047327 +1.2679676 +-1.6698823 +-1.9756124 +6.3416004 +-4.7917681 +1.1514909 +-1.2344412 +-14.8232021 +-5.6689758 +-4.9372287 +0.4863677 +-8.0123463 +0.3494625 +9.5945625 +-1.5264080 +-6.3419971 +1.7253720 +-0.8387747 +-5.2721515 +-0.3538731 +-3.5912471 +1.4343120 +-0.5565592 +-4.5028605 +-0.5756434 +-2.9964328 +2.2059529 +-0.5295264 +-2.7611735 +-4.1062636 +-5.0466585 +0.1870022 +-12.1999474 +-0.5182810 +-8.8270063 +0.1486932 +-2.5135722 +-0.6746709 +2.6047032 +-2.6654782 +-2.2689042 +-0.7640668 +-2.3345871 +0.2258459 +-0.3037328 +-2.3908815 +-2.3804533 +2.2664254 +-0.4718129 +0.1364801 +0.1239384 +-2.0284777 +-0.1021800 +-0.8165092 +-4.0504007 +-2.0369539 +-7.2958112 +-5.7317114 +-0.5043195 +-0.0088247 +-0.2413372 +-0.8528985 +-2.0667615 +3.2658591 +-1.7576470 +-0.5340179 +1.6941051 +0.2246030 +0.3023808 +-3.6884892 +-1.3031539 +-3.6631131 +-1.5446768 +-1.9989337 +-4.5026574 +-0.0834554 +-2.0493114 +1.0978966 +-1.6852341 +-3.0537512 +-3.2782788 +0.9697465 +-1.0121871 +-0.8439010 +0.2460043 +-4.3743415 +-1.4526782 +-1.3112917 +-0.2467657 +-2.6605477 +-1.1580664 +-0.8721756 +-3.5081775 +2.4725459 +-3.5619557 +-3.8013778 +-2.3323381 +-2.0376253 +-3.2238431 +-0.7381397 +-4.0985994 +-3.5406542 +-2.5082605 +-0.4940962 +-6.9447408 +-2.3713980 +-1.8926423 +2.1595695 +1.5729121 +0.2239310 +3.6648903 +-2.1286333 +0.5627469 +1.1199636 +-1.8098594 +-0.5696495 +-13.1081762 +-1.0451896 +-0.8905542 +-1.4629695 +2.0889542 +-5.2804117 +-3.3728774 +-2.1348779 +-0.4183835 +-0.6300108 +-1.0984359 +0.6658184 +0.1454270 +0.8997487 +-0.2410450 +3.6529899 +-1.8803321 +0.5311592 +0.0372587 +-7.8505411 +-3.6844223 +-2.8228209 +0.0392029 +-4.0462847 +-0.4708895 +5.6038799 +-2.5053637 +-5.4118433 +3.1540346 +-2.2390666 +-9.4648857 +-1.9995393 +-5.4658546 +2.3745697 +-1.1399645 +-6.8064260 +-1.3779643 +-6.8371401 +4.6444983 +-1.4200621 +-3.8514094 +-8.8269253 +-10.9523010 +-0.6983203 +-25.9409065 +-1.6938672 +-4.1887059 +0.4660236 +-5.6316428 +-0.7357910 +5.2096958 +-7.1747651 +-3.7625530 +-1.4305515 +-3.1731362 +0.6227956 +-0.6779749 +-4.1818681 +-5.6339397 +4.3958650 +-1.1582093 +0.3331194 +0.6342043 +-2.3278863 +-0.9605791 +-1.6779773 +-4.8714447 +-4.2383370 +-12.3250875 +-14.1431112 +-1.7349900 +3.0002089 +-0.8673214 +-1.8479010 +-4.1763005 +6.2373152 +-5.0453353 +-1.3352479 +3.5302885 +0.2679669 +-1.1307975 +-5.9503284 +-2.8871133 +-7.2492990 +-3.7934232 +-4.4429069 +-8.0470676 +-0.2402529 +-3.8981752 +2.5077634 +-1.1869315 +-3.4696598 +-7.7015052 +1.8378857 +-2.1678381 +-1.8937968 +0.2346854 +-3.0252452 +-2.8310783 +-3.1624296 +-3.2860231 +-6.2966785 +-0.9549705 +-5.9203467 +-5.9327121 +4.4593768 +-6.2256818 +-9.0173998 +-4.4951549 +-4.0484200 +-6.0950575 +-1.8761101 +-8.1094065 +-7.9636698 +-4.0879483 +-0.8084803 +-12.3544254 +-3.0726111 +-3.5207317 +4.1122785 +6.4284010 +-0.4902683 +3.9949679 +-3.6540058 +0.7341204 +2.8462636 +-2.8062620 +-0.4637384 +-13.3379354 +-2.2866514 +-1.6797147 +-2.8561902 +3.0693159 +-6.0981770 +-6.8518553 +-4.5967870 +-1.1548725 +-1.2541660 +-3.2503994 +1.3131218 +1.1314690 +0.8915852 +-1.0172799 +6.8009553 +-4.2376099 +0.9054949 +-0.7775504 +-15.4660873 +-6.4556422 +-4.5870843 +-0.0619990 +-7.4081459 +0.0627103 +10.5235252 +-4.9540744 +-7.5050335 +4.9337535 +-3.8356681 +-13.2736921 +-3.8626242 +-9.0971632 +3.3808403 +-1.7261547 +-10.4173222 +-2.3800223 +-10.2806377 +7.5010285 +-2.4625118 +-5.5536270 +-12.3153210 +-17.2665443 +-1.6398134 +-34.2736740 +-3.0529084 +-10.6734648 +0.6057125 +-8.7283669 +-2.6129224 +7.7597370 +-10.8057661 +-5.9812613 +-2.1922617 +-2.4335246 +0.8012688 +-0.3156510 +-6.4988737 +-8.6978111 +6.4322867 +-1.9416037 +0.6949916 +1.1823937 +-3.3986933 +-1.6820471 +-2.5061457 +-5.3850417 +-6.6258059 +-17.8979454 +-28.8925743 +-2.9555335 +4.7804976 +-1.4180099 +-2.8560545 +-6.3872051 +8.8177652 +-7.7670541 +-1.9186777 +4.9999957 +0.0049356 +-3.1142938 +-8.6664791 +-4.3236523 +-10.5383005 +-5.5408301 +-8.8838053 +-9.9095182 +-0.1167932 +-5.7360935 +4.0005307 +-1.8857273 +-4.8918805 +-10.3284187 +2.7471657 +-3.1288626 +-2.9144194 +0.6005158 +-4.5930896 +-4.4323306 +-4.7046504 +-5.0149317 +-9.8213034 +-1.6235323 +-11.2165117 +-8.3611269 +6.7076707 +-9.2360382 +-16.2685833 +-6.0173655 +-6.0345969 +-6.5845628 +-3.0662498 +-12.5673447 +-12.2403097 +-5.8541751 +-1.2726438 +-13.2844381 +-6.3877921 +-5.1964431 +6.0868516 +10.5435505 +-1.2739422 +3.6857607 +-5.3531857 +0.9192855 +4.2417488 +-4.3203835 +-0.2647176 +-8.2107153 +-3.5218432 +-2.6086345 +-4.3081141 +3.1692078 +-7.4957676 +-10.6964970 +-7.2695608 +-1.9789847 +-1.9595257 +-5.7001910 +2.0262959 +1.3791294 +0.9731758 +-2.3704658 +9.9481030 +-6.7533560 +1.2855250 +-1.4374480 +-23.4138374 +-9.2805176 +-6.6979823 +0.0385104 +-11.4780493 +-1.0137713 +15.3683577 +-7.4752030 +-12.3140078 +3.1142898 +-3.3959293 +-4.0539827 +-3.1441097 +-7.8244615 +1.1856391 +-0.9629335 +-3.9340808 +-1.7733326 +-6.5399251 +6.4653711 +-1.8954740 +-2.1160173 +-1.6075776 +-13.7763567 +-2.7924519 +-3.9617116 +-1.8940655 +-4.5412512 +-0.4974888 +-5.7753329 +-1.6488204 +4.7689638 +-8.2286644 +-1.6408534 +-1.3675534 +4.1083879 +0.2349920 +-0.7309752 +-2.2746892 +-5.7477660 +3.9237411 +-1.0936962 +0.3336678 +0.4089433 +-3.3067775 +-1.4588974 +-1.7522185 +-1.2092288 +-4.9923005 +-12.1626329 +-16.4468365 +-1.7879853 +0.8375210 +-0.4920205 +-1.9797713 +-4.5406909 +6.1161661 +-8.4960089 +-1.2590539 +3.0214486 +0.3810987 +-5.3181577 +-5.9846497 +-3.3107498 +-6.9284148 +-3.7404809 +-5.1169896 +-5.4276195 +-0.0769420 +-4.4372067 +2.3053067 +-3.7998209 +-1.0156089 +-14.9346619 +1.8534036 +-2.2986708 +-2.1112201 +-0.3362754 +-7.7953744 +-3.4370520 +-6.5938859 +-0.8427004 +-2.6631181 +-4.1065345 +-14.0051937 +-5.9117231 +3.9863019 +-6.1929207 +-14.6496696 +-2.5144765 +-3.9458609 +-8.9821072 +-3.0748951 +-3.3211730 +-7.2434120 +-4.7603731 +-0.8934074 +-14.4007320 +-7.6843328 +-3.0506394 +3.7688274 +9.1576738 +-4.9629078 +-5.9058833 +-3.0653048 +0.7033934 +2.5951035 +-2.3685203 +0.1695900 +3.6747003 +-2.7292645 +-1.6336966 +-3.0107188 +-1.1452179 +-15.8209887 +-6.1164064 +-5.1963429 +-1.2714883 +-1.7939104 +-4.3210750 +1.6109102 +0.5638976 +1.9778022 +-3.2138393 +6.1979146 +-4.4308767 +0.6800684 +-1.0066241 +-15.2779951 +-7.0275536 +-5.6653576 +0.8513085 +-7.4161987 +-0.9826052 +9.8929815 +3.6408298 +-9.2247076 +1.4137664 +-1.3112469 +-11.0804281 +-1.1513178 +5.5893669 +0.7566758 +-0.7134586 +-6.0708652 +-0.7910845 +-4.4154634 +2.6766858 +-1.6606113 +-2.7120345 +-2.5573690 +-6.7836165 +-0.0184932 +-22.3862915 +-2.5476241 +0.0041561 +-0.0839787 +-2.5869040 +0.4863444 +2.4469287 +-4.5548191 +-1.3287277 +-0.8662707 +-4.8346868 +-0.2577651 +0.0984074 +-8.8483200 +-3.2618847 +2.0868001 +-0.5347716 +0.8085992 +0.2734594 +0.4347477 +-0.8919557 +-0.6974536 +1.5861052 +-2.3476942 +-2.4775445 +-7.3881822 +-1.3342516 +-2.0296152 +0.0688660 +-1.2226630 +-2.3804917 +2.8486700 +-2.4283051 +-0.5223776 +1.6543226 +-0.0504655 +-0.8966864 +-1.3851677 +-1.1631539 +-2.8551607 +-1.3831453 +0.3516333 +0.5518987 +-0.4751473 +-1.2705731 +1.2557384 +-5.8117433 +-0.4994543 +4.0048637 +1.0310266 +-1.5383503 +-1.0533490 +0.9787748 +2.5807922 +-1.3844399 +0.0747946 +-0.1630004 +-4.0978565 +-1.6586990 +-5.7272649 +-2.3183188 +2.3811312 +-5.6415443 +-3.0625312 +-2.0236769 +-2.0902832 +-1.7945303 +-1.1339861 +-2.5166883 +-3.3642950 +-1.6162522 +-0.4507241 +-9.0403023 +-2.8310862 +-1.6394941 +2.1525238 +4.0046196 +8.2270250 +-4.3554058 +-1.8494198 +0.2205280 +1.7310869 +-0.6014906 +-0.3152918 +-18.4370937 +-1.1939681 +-0.5621920 +-1.9041038 +1.6901630 +-5.5552306 +-1.0357978 +-2.4635344 +-0.7322099 +-0.2131232 +-2.6599047 +1.0379910 +1.1617062 +1.3276271 +-0.1658536 +3.2882047 +-2.2791417 +0.7613021 +-0.6291773 +-6.0833435 +-2.5381935 +-2.5854189 +0.4032714 +-4.4211102 +-1.3025297 +4.6956053 +-1.3761249 +-8.4149628 +2.9625766 +-2.2404909 +-14.3966751 +-2.3102818 +-9.3702307 +1.8733449 +-1.3638698 +-6.1502228 +-1.8026792 +-6.6781344 +5.5103426 +-2.5152857 +-3.7345934 +-9.4410315 +-13.8287773 +-0.1091123 +-16.0474491 +-6.6111536 +-8.6630182 +0.3396504 +-6.4959936 +-1.1967236 +4.9362564 +-7.2705197 +-2.9209015 +-1.5204127 +-3.3692861 +-0.0639444 +0.0257503 +-10.2403059 +-6.0336423 +4.1590886 +-0.9654235 +1.1102711 +0.9430274 +-1.1853513 +-1.4052765 +-1.5401379 +1.0201403 +-4.2571683 +-11.0239773 +-13.6418571 +-2.4399192 +-5.9812078 +-0.1648195 +-2.2668452 +-4.8940868 +5.4951892 +-7.3752313 +-1.1755263 +3.7603705 +-0.3283268 +-3.1724818 +-3.9101334 +-2.5476279 +-7.2375593 +-3.5487881 +-2.5132530 +-0.0332393 +-0.7560975 +-3.2071359 +3.0960896 +-2.7663019 +-1.0465055 +8.8297424 +1.8936834 +-2.5300107 +-1.9494704 +0.9736274 +-4.7941332 +-2.8024123 +-1.5680646 +-1.2727295 +-3.9217834 +-0.9727795 +-5.9431658 +-4.4068103 +4.9457984 +-9.6040230 +-6.1182146 +-2.5099199 +-4.2403154 +2.3042772 +-1.6972002 +-8.2807837 +-8.3073750 +-2.7231815 +-1.0017509 +-15.3795500 +-5.1089807 +-3.7680779 +4.7478485 +6.0705147 +10.7539482 +-11.1606865 +-3.6553047 +0.4645765 +3.8377535 +-1.9144174 +-0.2442933 +-3.7710037 +-2.2291858 +-1.5286075 +-3.4399874 +2.0259879 +-5.9801669 +-4.7330256 +-5.0268235 +-1.5271872 +-0.7862268 +-4.2047057 +2.0955343 +1.2505245 +1.5177474 +-0.8515087 +6.5782146 +-4.6277719 +1.2893032 +-0.8458128 +-16.4836197 +-4.7576804 +-4.4711995 +0.8824189 +-7.5914445 +-1.0685370 +9.7866459 +-2.4519303 +-15.0905895 +4.8123589 +-3.8476384 +-20.4553375 +-3.8787096 +-12.3170624 +3.7155244 +-1.9720541 +-11.1010752 +-2.8301959 +-10.4325075 +8.0391989 +-3.5630324 +-4.5872526 +-7.5683856 +-20.9061203 +-0.1165908 +-27.4655857 +-10.6169033 +-7.3877382 +0.6264672 +-9.2864208 +-1.9211913 +7.6399016 +-11.8522015 +-4.5809159 +-2.2856836 +-5.1290011 +0.0712965 +-0.3184316 +-14.2206507 +-9.0935125 +6.3361092 +-1.4267823 +1.5360947 +1.5544739 +-2.2841120 +-2.2150702 +-2.4367626 +1.2547476 +-6.6452694 +-16.8132248 +-17.9282722 +-3.9624565 +-11.0242205 +-0.0000816 +-3.3224869 +-7.3772144 +8.4835491 +-13.4465027 +-1.7592165 +5.8281598 +-0.0962126 +-6.0179873 +-7.8037095 +-3.8665361 +-10.7642317 +-5.1890874 +-4.9441705 +-4.4149122 +-1.1612635 +-4.7577720 +4.6725140 +-1.2966124 +-1.8340325 +12.1379881 +3.0035746 +-4.1023173 +-2.9344697 +0.4313015 +-7.6852055 +-4.0600262 +-0.5393113 +-3.4478605 +-4.9236817 +-2.3091817 +-2.9966428 +-6.6325665 +7.3068895 +-12.4300299 +-9.9131794 +-3.5882952 +-6.4097152 +3.8602960 +-3.1315103 +-11.4353485 +-14.3706722 +-4.2442203 +-1.4540001 +-15.4585361 +-4.7120447 +-5.9125409 +7.2897449 +7.7781134 +13.9990950 +-22.4101677 +-5.2174106 +0.7123384 +5.3472424 +-3.0257940 +-0.5230536 +-2.4049940 +-3.3340397 +-2.5403914 +-5.0580611 +1.8751297 +-11.5330811 +-7.9994273 +-7.4484043 +-2.1524792 +-1.4334627 +-6.2013202 +3.2205751 +2.1758544 +0.8839241 +-1.6191136 +9.8897409 +-6.7508011 +1.7699877 +-1.3337927 +-24.0983887 +-8.0100489 +-6.2392349 +1.3973924 +-11.5892925 +-1.2252481 +14.5990562 +-2.9994524 +-10.6437340 +3.0737581 +-2.9818118 +-14.5730753 +-3.7610929 +-9.1601067 +1.6080822 +-1.0157502 +-6.3055844 +-2.2891612 +-9.0374107 +5.7818489 +-2.0575852 +-3.0616970 +-7.5345817 +-14.9659319 +-1.8839269 +-17.1089134 +-11.3205328 +-8.2659159 +-0.5390161 +-6.6970892 +-2.1744466 +4.8905549 +-8.6862478 +-6.1145778 +-1.4922645 +-5.0397077 +0.4141569 +-1.4168662 +-6.0841660 +-5.5697355 +3.9931486 +-0.9478587 +0.3329532 +0.2960843 +-3.2290370 +-1.9819129 +-2.0262325 +-1.5730276 +-4.6463614 +-12.4032097 +-13.9254503 +-1.5924892 +-19.7607079 +-1.1215824 +-1.7561187 +-4.9901633 +5.8082719 +-6.6922765 +-1.1638339 +3.6020310 +-0.2968075 +-6.0076485 +-6.0036602 +-3.1432514 +-7.4143844 +-4.3654981 +-5.8547893 +-1.1283711 +-1.0718035 +-4.1153579 +2.4294980 +-3.6701612 +-2.1582847 +4.2738957 +1.9094369 +-3.2388294 +-1.8590517 +-1.6930956 +-2.2844019 +-3.2227592 +-4.0779934 +-2.0705607 +-5.4578094 +-2.4358730 +4.1877069 +-5.8692083 +4.1061516 +-7.3366075 +-11.2684364 +-3.4891720 +-4.4267139 +-3.1860137 +-2.3963885 +-5.7833858 +-12.9364653 +-5.2686033 +-1.0095015 +-10.9326506 +-5.5455637 +-3.4025035 +3.9208059 +2.8449490 +4.6287384 +-16.3900433 +-3.4582901 +0.9864538 +2.6583703 +-2.3170006 +0.1473354 +3.3591402 +-2.1881084 +-1.9232357 +-2.9230328 +-0.7604684 +-8.9859171 +-6.0095320 +-5.2794766 +-1.2605982 +-1.3016442 +-4.1070323 +2.2544930 +0.3404688 +0.1379759 +-2.7069242 +6.1876760 +-4.4034953 +1.4570353 +-1.0522126 +-16.6191940 +-6.3284869 +-4.7929945 +0.9757985 +-7.3152533 +-0.7979336 +9.1238756 +-2.9976702 +-10.2193165 +-1.2054110 +-0.7651691 +-12.5585413 +-2.7859120 +5.3527699 +-5.7658386 +-1.2166524 +-0.9773972 +-0.9586761 +-2.2755227 +2.1611724 +-3.0583794 +-0.7392406 +8.5042830 +-2.5527353 +1.0001119 +-41.4868851 +2.7202232 +-2.5988743 +20.2604389 +24.0173893 +-3.3588998 +-43.3952255 +-0.1255267 +-0.4147664 +-1.7137560 +-1.9188042 +2.5989838 +-0.0841359 +-43.1244583 +2.3397093 +-25.7060051 +-0.1610032 +-0.0719907 +-7.5377336 +1.3393997 +0.1877333 +-0.3886430 +-0.3238384 +-1.8439620 +16.5304413 +-1.6034924 +-3.4019372 +1.7098036 +-1.5127401 +-0.2597378 +-1.2305163 +5.1320086 +-16.7511024 +-0.1061350 +1.6286687 +1.9203132 +-3.3324316 +0.6858128 +-9.6998920 +9.5213203 +-2.6687660 +1.1723659 +1.7529678 +0.0370198 +-18.7332020 +14.3172760 +-1.2397878 +0.8303286 +0.9043230 +2.2962873 +-0.3206272 +-0.2091262 +-0.1326583 +-4.1664362 +4.1266041 +-5.2196941 +-5.3944654 +-5.6131291 +4.5069242 +2.6823297 +-4.2997718 +-7.5159721 +-3.2740083 +0.2698973 +-4.8745804 +-1.1980634 +-4.2206035 +0.0433589 +0.5711111 +1.2543386 +2.5215597 +2.2484434 +-6.0787354 +-5.6562915 +-2.3814075 +2.1459262 +1.0404928 +3.8077736 +3.2668440 +-0.6724758 +0.7795640 +-5.1750679 +-3.8000767 +5.1486592 +-20.3231678 +0.0738347 +-0.4844659 +-1.1557308 +0.9364845 +8.4129839 +5.8763151 +14.9436779 +0.4631178 +0.4088891 +-1.4184345 +0.1208293 +4.1765666 +-0.8536115 +0.4817796 +-10.3671207 +-1.3601304 +-0.2401373 +-0.5367809 +31.7645187 +0.1211081 +9.3803244 +-0.9332608 +-3.8821168 +-0.5457968 +-41.4664688 +15.2195406 +7.7215457 +0.5230163 +-1.7313836 +-2.9265721 +-2.5183203 +5.6827602 +-2.3492765 +-2.0518556 +8.7072487 +-2.6584220 +-1.6850225 +4.1449819 +-4.1199684 +-1.5952992 +3.6955106 +-6.1170149 +-0.7117147 +0.7704641 +4.3762474 +-0.5399284 +-33.8799934 +9.4606514 +0.6291459 +27.7917843 +-4.0101194 +7.1135950 +-3.8085005 +2.3372238 +5.1959615 +-5.1000190 +3.7090580 +3.4017973 +24.5252590 +0.2757807 +2.8714783 +-16.4049015 +1.7521949 +19.6150341 +-0.2633304 +-2.9101474 +-3.2436182 +-12.5220919 +0.3715519 +2.4491758 +2.3702235 +5.3568530 +-0.0895880 +-2.7950706 +10.4182568 +-15.5232077 +-0.3963615 +2.6647887 +2.7795613 +-5.5096540 +4.1212516 +-18.8461895 +-8.7346869 +-14.0491724 +-6.3656774 +3.5074811 +0.0787299 +-16.2560463 +27.1707344 +11.6450138 +5.2635546 +2.7356267 +3.7426209 +0.2837019 +-0.1617701 +1.6321781 +8.2604904 +7.8633862 +3.5814319 +-7.5162754 +5.8869438 +7.8142319 +4.3845220 +-8.3639135 +-14.4416018 +1.8894210 +-1.4228851 +5.7874889 +-2.4510505 +2.2085621 +-1.8604462 +0.5288956 +-1.6173707 +2.3573558 +4.7623372 +-4.6633162 +-1.6149857 +0.4683812 +4.3354769 +3.1625955 +4.8842645 +2.1693878 +-0.0305669 +1.9532849 +-11.5792236 +-5.7159963 +-26.3177814 +4.1289668 +0.0964323 +-1.2619290 +-2.2613754 +0.7824109 +-7.1515393 +-0.6542808 +21.5825405 +1.0645813 +0.7734914 +-1.4044949 +0.2943949 +7.7239647 +0.4238208 +-4.6358957 +25.1026669 +-1.6939003 +-0.0617132 +-1.2137727 +2.5656650 +-0.1650662 +15.1265745 +-1.0645239 +-5.2930951 +7.1464643 +-10.7823792 +18.2690315 +-2.9478710 +8.6604500 +-1.7043310 +-6.2033663 +-11.0472975 +15.2911654 +1.1613966 +-2.9819441 +5.9178348 +-2.7475238 +3.9219921 +6.4899807 +-4.1205516 +-3.8799915 +15.4483671 +-11.3358564 +4.5138612 +0.4962367 +6.4623713 +-1.4471284 +27.1467018 +25.5458908 +-5.9499998 +-25.6337318 +2.6590288 +22.2567387 +-4.0076003 +7.1018033 +6.9874163 +-6.5545120 +-14.8900557 +3.1595552 +-8.1562691 +0.2971195 +0.8866734 +-17.8767700 +1.1427149 +15.5668249 +-0.4648922 +-8.7307663 +-4.9544988 +-2.8404567 +0.9932276 +7.5607572 +4.6417332 +2.9380248 +0.1392996 +-4.2896137 +16.9978580 +-9.2608147 +0.0941481 +4.0033841 +7.1671023 +-7.4751878 +-0.8043830 +-14.2226486 +-4.5772057 +-8.5423384 +-5.9040356 +1.6420527 +-1.4929260 +-15.2801189 +5.5461545 +13.7087326 +-0.7665660 +5.5894871 +4.3295393 +2.2534027 +0.1633692 +-1.4747531 +7.1290779 +6.0916982 +-2.2673879 +-17.7880573 +9.8584089 +13.5644569 +8.1574850 +-3.2563138 +1.7556471 +1.9678371 +-3.4571919 +-6.4071398 +-3.8090119 +6.6623826 +-1.3412545 +7.2265606 +-5.2839689 +3.3193703 +6.2571197 +-0.7702702 +12.8074322 +-3.1185782 +9.7381039 +4.9957771 +7.7464271 +4.9931731 +-2.2743952 +3.6834965 +-5.6509838 +-14.5968170 +-10.9689302 +5.1668100 +0.5823076 +-1.7918470 +-3.7251706 +0.9580075 +0.8508374 +-2.5456209 +25.1952133 +2.5072207 +1.7887341 +-2.3128030 +0.5229741 +12.4305983 +-0.2032974 +-22.1728668 +8.7108135 +-2.6039379 +-0.2675186 +-1.3676956 +26.0287495 +1.6688123 +8.9152765 +-1.5157689 +-6.4150825 +7.3034635 +-3.6282570 +5.5510464 +-3.1085100 +5.6739082 +9.3443422 +-7.5226107 +4.0798860 +30.9837894 +7.2332821 +-1.9843252 +14.7582359 +3.1387305 +-0.1366976 +1.3877401 +-1.5090613 +-10.1364365 +-6.1213884 +-5.5321155 +-4.0916467 +-0.2775871 +6.4174590 +-1.0989932 +-22.1268578 +26.0395985 +-0.6218462 +-53.5287209 +-5.5608253 +23.0930271 +2.9249291 +3.7703414 +1.7611810 +-2.6402042 +2.5350447 +-7.2887793 +-66.9689178 +-0.9954088 +-5.2674928 +-4.4173851 +-0.3506331 +-37.1532860 +-1.6897418 +-5.1680880 +-0.2364212 +21.0438595 +-0.1384481 +6.6014013 +4.5258036 +5.2419572 +-3.8223996 +-2.8504791 +11.7652168 +-2.3488276 +1.7083563 +3.0337248 +2.8402076 +-4.6361351 +11.2291775 +3.1827121 +3.7479413 +-0.2592720 +-2.7006934 +1.7377257 +-10.3376198 +3.0003552 +-11.8027401 +7.8348927 +-0.3454202 +2.8203351 +0.0580091 +-3.0838177 +-1.0399703 +14.4956474 +34.4736595 +-2.1603286 +1.0191586 +27.2527599 +3.7555053 +12.6315756 +0.5996396 +7.2655711 +-1.4960064 +-6.2872744 +-3.2709117 +-4.5079746 +-2.6758015 +5.5043993 +9.3831453 +-5.7861838 +-0.3068511 +3.4663334 +2.7149613 +0.9445269 +17.2544689 +1.3187418 +-0.2505435 +-0.1923140 +4.8164439 +-0.1087908 +4.4515376 +1.5141667 +22.5956402 +-3.8132808 +27.8967838 +6.4499011 +-3.9817898 +-2.0448332 +-9.7238445 +-1.7145128 +-0.8937567 +-3.8624070 +-2.5041332 +-0.5438405 +-3.1540866 +-0.9059902 +0.9222789 +12.3430996 +-2.4797053 +16.5594597 +-38.4029770 +-2.2077529 +-1.3400084 +-5.9666739 +42.1758308 +7.0544634 +-0.2870647 +-0.7156761 +1.7513528 +15.2728252 +-5.3920703 +-1.8715090 +23.2357445 +-3.0363619 +-1.8866068 +-10.0081940 +-6.1647897 +7.0888567 +-14.6698799 +-0.3867908 +1.9482853 +-1.4683332 +0.6332594 +2.0800846 +-1.9144245 +-16.4473000 +8.9524593 +-3.8304956 +-1.1567566 +-32.1638756 +2.6293857 +8.9510670 +-41.9470825 +17.1967087 +-5.1450968 +-50.4419861 +3.8644762 +5.0146365 +-1.1661644 +-1.4713579 +1.9240108 +-2.6489675 +-43.0141182 +0.9809224 +-31.1321411 +-0.3826966 +-0.2768855 +-10.3145628 +1.0784944 +-5.8798079 +-0.6723684 +-1.4882171 +-1.7358257 +18.7020931 +-0.8517736 +0.3659887 +-7.4471331 +-27.6186638 +-0.0226203 +-1.5767497 +4.6017537 +-10.7499838 +-0.0152436 +1.1409253 +0.5537969 +-3.3460417 +0.4665214 +-21.1051311 +9.8986998 +4.4560256 +-6.3232222 +-0.9389985 +0.0907444 +-31.7086926 +12.7765160 +0.2122664 +-1.9355826 +-0.9705619 +1.7224379 +-0.5240757 +0.0429877 +1.1468006 +6.7519751 +-0.5756404 +-12.0329752 +-1.9191961 +6.2574081 +3.6739669 +1.2408937 +-0.0408727 +-26.3574333 +-6.0584273 +3.7817507 +8.6855707 +-1.4125654 +3.7778642 +-1.9173161 +6.2127538 +1.4313176 +-1.1251258 +1.4790106 +-11.8937082 +-5.4838319 +-2.1827354 +1.3834859 +-0.3568622 +0.3637639 +-1.8245411 +-0.6472703 +1.0834494 +6.6270571 +-3.2628551 +11.5831261 +-20.7873230 +0.0873497 +-0.9609025 +-1.6412119 +0.5558430 +8.4315777 +3.5300164 +4.1633940 +0.4352375 +0.6472612 +-2.0627961 +0.5231205 +3.4212317 +0.7086614 +-3.2178535 +-15.4761429 +-0.7770165 +-0.1580798 +-0.7191367 +24.7367229 +-2.6442859 +2.0573394 +-0.5350158 +-2.1354551 +0.6683037 +-7.8102179 +4.0158067 +15.4817972 +-7.1666160 +-3.5128946 +-1.9751544 +-5.0709066 +-5.4306865 +-11.5162573 +-1.0579439 +-4.4421511 +-3.7822978 +0.3360686 +4.3975821 +-3.4167645 +-10.6701670 +-1.1542187 +-7.3313680 +-0.8502899 +-16.6015453 +4.9034734 +-0.5044050 +1.3944135 +1.0133994 +-0.5362895 +15.3049107 +1.4465388 +3.0281887 +-2.4608817 +2.1044996 +3.3460648 +-5.3220263 +2.7965539 +1.9366399 +14.9902906 +-0.3201746 +2.5024004 +-20.5784912 +1.7148411 +9.7870121 +-0.8240437 +-3.9492121 +-3.5115609 +-3.0490863 +-1.7697608 +0.0411745 +-9.7285223 +-19.5220337 +0.1811066 +-3.2708635 +8.8965054 +-2.5837214 +-0.4254137 +1.9582896 +-0.2602967 +-6.5303278 +9.8765965 +-14.3951626 +-4.5474062 +2.9031594 +-4.6567168 +-1.6764439 +-0.8849137 +-29.4940281 +14.4106770 +2.7153363 +-1.2382925 +-1.1262609 +2.9164336 +-0.9687464 +-0.1004834 +0.7726317 +-1.4318618 +2.0262725 +-18.2430325 +0.7285997 +7.8976045 +6.8655939 +0.7311502 +-8.7785511 +-20.4406185 +-1.2343735 +-7.0983324 +-19.2297649 +-2.9678414 +5.0497575 +-4.5247054 +-1.0443223 +0.4302143 +0.0974539 +3.0030162 +-9.3371468 +-2.5485876 +-7.2555866 +3.9336731 +-0.3807778 +0.9413562 +-5.6045117 +-2.1888800 +2.2836053 +-6.2555737 +-5.8789296 +-15.3402023 +-1.5253260 +-0.1964379 +-1.7010822 +-4.0040002 +0.2560799 +-0.2907146 +1.5747001 +8.3779373 +0.8086422 +0.7132974 +-3.3573365 +1.0529063 +5.4829683 +-0.4988357 +-12.9593992 +15.3694201 +-1.6461537 +-0.0556625 +-0.9015210 +-4.6953626 +-3.0721130 +3.4277961 +-0.7334426 +-2.6892817 +4.9045396 +-27.3665848 +-12.9576759 +-1.7373445 +7.9856677 +-5.2263174 +-9.0839891 +-2.7736495 +-3.3731899 +-4.8207898 +-1.2354101 +-6.9822574 +-4.6812024 +2.0536201 +6.8639870 +-6.4789739 +-8.5631075 +-2.8802991 +-12.8684711 +-0.8502456 +0.3654366 +6.5608120 +-2.7635739 +-25.8125610 +14.1929874 +-7.4354892 +-39.4493942 +7.0839825 +0.5114711 +-3.0489793 +2.0235958 +3.1378727 +-4.8081374 +-12.9540834 +0.7624828 +-19.4230328 +-1.1615796 +2.6353152 +-22.6425571 +-0.6136321 +0.5248494 +-1.9549302 +-8.3708534 +-4.5694585 +6.5819559 +-1.6911756 +0.1882279 +-11.5629921 +-10.4609156 +-0.2637761 +-4.8410535 +12.4066124 +-4.4758053 +0.4804605 +3.8910820 +0.8999341 +-8.9344387 +17.1158600 +-9.9899483 +3.2700970 +7.3476381 +-0.4958412 +-1.3691969 +-0.9018642 +-2.0075443 +11.6945400 +5.2395973 +-1.7382436 +-0.4032021 +4.0633469 +-1.9887648 +-0.2779913 +3.0082941 +0.9982946 +-1.1324905 +-5.9233088 +0.5672401 +-0.7157720 +10.1311283 +6.5010347 +-8.6523409 +-7.8437300 +-3.3206944 +-6.2490625 +-8.3338690 +-4.4436598 +9.8222189 +-8.0098171 +-7.3047390 +-4.9240360 +-7.3122597 +3.1635509 +-4.0593896 +-5.0449853 +-3.5270984 +5.8692842 +-0.1142352 +3.2492971 +-1.9034461 +-5.4084129 +3.2569246 +3.3644881 +-14.9014654 +-0.2812644 +-8.4895935 +-0.6727277 +-2.8363752 +-7.6713600 +0.3685037 +1.0912800 +2.0206954 +8.3150005 +1.1658564 +-0.1648554 +-5.7426076 +1.5034912 +6.9112163 +0.6824948 +-12.4661465 +-3.3000035 +-2.5000424 +0.2716011 +-2.7796326 +13.5505991 +-3.9086819 +-5.0593543 +-1.1644077 +-7.3774419 +7.7416220 +12.4386272 +-0.7047005 +7.7042818 +-3.4604785 +1.8166912 +-6.6965480 +6.0846982 +-6.6750588 +6.3305793 +-1.7121522 +13.9791536 +-2.5424545 +0.6883425 +4.5932360 +2.1326599 +-4.3821154 +16.7019005 +-6.6405506 +-2.4823816 +-1.2151723 +4.8241363 +-1.0169818 +-2.1100457 +23.5252705 +-4.0279045 +-46.1029701 +2.1561220 +21.0389595 +-1.5939035 +1.7712597 +1.1711831 +-4.7630863 +1.2204462 +-2.0116646 +-58.7368011 +-5.2476993 +-5.5471301 +-8.2182894 +-4.0496264 +-42.0413589 +-3.3769317 +-11.3874626 +-2.5974634 +26.5403461 +-1.4011887 +3.0978377 +-1.1128317 +-3.9859746 +-1.5607226 +-3.3704014 +7.1562266 +-0.2734278 +0.0094397 +0.2111873 +-3.8340442 +-6.7779002 +7.3834400 +-10.1308002 +13.1123543 +-2.0143425 +-5.6172614 +-6.2788763 +-8.6288567 +5.0002432 +-0.4344354 +-3.7916431 +1.4830316 +-0.6353425 +2.2838984 +-1.8163261 +-1.4773895 +6.5248122 +2.8018546 +-3.4371829 +0.6665537 +-4.4975424 +-0.9014915 +3.6234925 +6.1501265 +-6.3164673 +0.3444807 +1.5672584 +-2.3749335 +2.9746587 +-3.0642354 +4.1850777 +-2.1094081 +-2.4979677 +-2.8697941 +-5.5202804 +0.9399951 +-2.9268677 +-2.9518704 +-2.1103413 +5.3352470 +-0.9921756 +3.6697760 +-3.3133028 +-7.3040724 +-0.6069696 +5.1505847 +-12.4602499 +30.1237411 +4.7194290 +-2.2105885 +-2.2139878 +5.1697536 +-1.0846850 +0.9797871 +-14.0071545 +-0.0632757 +-0.2997214 +1.8496670 +-3.1835155 +1.1384183 +3.8893697 +-1.5611055 +-4.7048683 +-38.7165451 +-2.8904276 +-0.2292912 +-4.7138038 +38.1191139 +-9.1049442 +-10.8532696 +-0.2339512 +-4.5705795 +16.1371422 +-4.6140647 +-6.6290627 +14.8006029 +-4.4299965 +-1.2125945 +-11.0932140 +-5.5943165 +6.6527014 +-6.6325021 +0.0331005 +2.0738132 +-1.6811889 +0.6300332 +1.7933459 +-1.7009214 +-2.4717331 +24.5263786 +-4.5937142 +-0.8548935 +-14.8840055 +1.0644168 +-5.3714781 +-46.0994453 +14.5925531 +-1.1893575 +-54.0754471 +3.8044724 +8.5256939 +-0.9748067 +-3.3218570 +1.9099444 +-0.9431590 +-37.1158752 +-0.2003941 +-33.8491707 +-0.2571509 +-1.4190285 +-12.2256918 +1.6201034 +-8.8013411 +-0.5864284 +-1.1728164 +-1.4104917 +14.8030252 +-2.6712930 +-0.6859537 +-0.8288150 +-2.2547979 +0.1064464 +-1.8444130 +3.6671684 +-8.9382105 +-0.2533911 +1.0383128 +0.5064873 +-4.0416870 +-18.9781094 +-14.8483868 +8.4146585 +4.3834243 +-2.9343648 +1.4719497 +-0.0225925 +34.3650818 +12.8748102 +4.8509154 +-1.8403995 +-0.8092517 +1.3211517 +-0.6653120 +-0.0716048 +0.0307149 +6.8066173 +-2.7008560 +-22.5563564 +0.8287743 +4.4734449 +2.5837445 +-3.5327969 +-0.9117205 +-30.2563400 +-8.8841038 +1.5476376 +11.4300013 +-1.6336209 +-7.3949494 +-1.9932748 +-12.7595444 +0.1616801 +3.2218471 +1.0290878 +-7.4888144 +5.6264901 +-4.0575361 +1.8804142 +0.6358927 +-4.1183491 +-7.3632193 +-1.8737941 +1.2449728 +-27.3293133 +-2.7573292 +15.1350412 +-12.2094202 +-0.0815382 +-1.4418449 +-1.7156764 +0.5864190 +0.8455272 +1.1236404 +0.7388340 +0.2459296 +-0.2438439 +-2.1714742 +0.9206485 +3.2609589 +0.0287331 +-0.5146461 +-18.3147430 +-0.5317591 +0.0042446 +-0.6260064 +21.7156467 +-1.0838826 +-3.3344009 +-0.1351772 +-3.3327219 +-0.8832536 +-22.5096722 +-2.0349352 +11.5363483 +-18.3429356 +-3.8086486 +-5.8593683 +-3.5361238 +-10.6101179 +-11.8627853 +-0.4837055 +2.2459004 +-4.9052396 +0.8278593 +3.6975987 +-1.8154545 +-4.5064569 +2.4905434 +-9.6500826 +-3.6915183 +-10.2390985 +1.4218565 +-1.6722002 +-1.2286376 +-3.8691459 +-1.5620931 +9.7359581 +1.9497660 +6.1902275 +-2.1394832 +-4.0011020 +2.2126894 +-2.3818581 +-1.1509043 +-0.3090367 +10.4305267 +-1.0016623 +0.9358540 +-27.6709347 +0.6156663 +5.0471025 +-0.6618978 +-2.8777752 +-3.2004392 +-3.7949684 +-4.3550920 +-0.8818673 +-1.2722241 +0.0193994 +0.4486867 +-3.7409711 +6.4111185 +-2.1606534 +-1.0387515 +1.4146234 +-2.6261923 +-7.9611030 +-19.2332058 +-8.1206226 +-4.9919653 +3.7058873 +-3.2001667 +4.2773972 +-1.5894086 +-1.5368190 +7.4936132 +-10.2944994 +0.4504928 +-1.1695253 +2.1624274 +-1.9583448 +-0.5330724 +1.5931456 +-5.0626678 +-3.6678193 +-1.8086089 +3.1841896 +6.6767435 +2.6157360 +-0.7784282 +-3.9521623 +-17.0001183 +-3.6909196 +-1.1822340 +-4.0681825 +-3.3159382 +-3.1825960 +-5.7159333 +-1.8607277 +-4.7130294 +2.0665376 +1.3107750 +-3.1345227 +-0.0987355 +-9.0809517 +3.7605171 +0.8116587 +-5.7613406 +-11.0502291 +-2.5574846 +2.2127483 +-7.9548283 +-4.4126196 +-9.2206802 +-6.7171450 +-0.7895893 +-2.3577940 +-4.9370103 +0.6666332 +-6.9453182 +-5.1457467 +1.0009778 +0.0609586 +-1.0211362 +-2.8972502 +1.8745296 +2.6640582 +0.2819023 +-1.3910259 +10.6087313 +-1.8093913 +-0.2156381 +-1.5744836 +-9.7643328 +-0.6704524 +-5.3503752 +-0.0719802 +-3.5675118 +3.8785601 +-33.0249062 +-10.9106007 +2.9991350 +3.5686646 +-1.4967867 +-7.9207053 +-1.8027388 +-4.9112649 +-5.2642655 +-1.4281989 +1.7953521 +-4.6922121 +-5.2283106 +6.0495696 +-2.1906352 +-4.1443496 +-1.2154146 +-13.0840502 +-4.5504637 +-2.5855956 +3.9802499 +-0.5225953 +-4.2590823 +8.1502209 +-6.5830693 +-46.1163330 +4.6718574 +-7.2772098 +-1.5874280 +-3.1884143 +4.1326847 +-0.9027741 +-2.2677405 +-0.6458391 +-24.6679840 +-0.6697522 +-0.0168737 +-19.9418030 +-6.0110345 +-5.5343299 +-2.9938207 +-5.8811440 +-3.6127362 +3.7780650 +-4.5620933 +-0.7825063 +3.7059639 +1.1747476 +0.1303364 +-5.4625010 +11.1221514 +-0.1461278 +0.2956032 +3.3985157 +0.6687078 +-12.2866240 +-2.8207958 +-6.1934657 +1.3259424 +4.7864041 +-4.1365738 +-4.8271699 +-1.1319035 +-1.6432815 +6.5958290 +1.6955297 +-2.7117376 +-0.2352274 +2.6090024 +-3.9169571 +-0.0286435 +-2.4885402 +4.4864984 +-6.6664200 +-5.5520949 +4.7154446 +-5.6403470 +5.8259263 +5.8599944 +-7.2469735 +7.7869158 +-4.6554208 +-2.4244504 +2.7709703 +-5.0662470 +-2.1607192 +-4.4661403 +-3.4343789 +-5.6199837 +-1.1554717 +1.1829538 +-4.0454116 +-1.9923142 +-2.1145451 +7.3874674 +1.3293047 +-6.3709731 +-7.6837015 +-1.4595250 +3.8237817 +-4.3125777 +-14.7889442 +7.5722928 +3.7181091 +-0.1094588 +-3.1743965 +-5.4400396 +0.7290044 +0.3095854 +1.3677427 +-0.2718657 +1.8380882 +-1.1675453 +-3.8324206 +2.6525364 +-1.0862859 +-1.2826775 +0.2612461 +-9.0714607 +-1.9935716 +0.7533208 +-1.8198254 +7.3765755 +-4.6701145 +-6.1057005 +-0.4456629 +-7.4743085 +4.4316740 +-3.2296708 +-4.8413053 +0.7280149 +-0.7302611 +0.7715515 +-1.7496798 +-0.1037782 +0.0446875 +-2.1011870 +-0.4318684 +1.9785570 +-1.9109223 +4.3357310 +3.4457564 +2.7043924 +1.2200789 +0.2170458 +-5.7837148 +-2.8534305 +-0.1865613 +3.6202986 +-0.4115836 +0.4703591 +4.8781047 +0.6816424 +8.4875917 +-0.7296465 +-0.7650129 +-0.1870997 +0.6681735 +1.2697550 +1.7904202 +0.4486068 +-9.1961660 +-1.6989267 +3.9420803 +0.7178164 +-5.5379162 +-1.9252337 +2.0588448 +1.1741652 +-4.5480595 +0.6164696 +-5.6561584 +-1.1422646 +1.0631641 +1.4853326 +-1.9889703 +2.4017735 +-3.8520708 +-1.4290022 +0.0987773 +4.8116117 +1.4355737 +-0.5582271 +-7.5882053 +-0.8969593 +-4.7243929 +2.9969516 +-1.3791088 +1.2944613 +1.1446199 +-3.4781477 +0.3859693 +-6.0028000 +-0.1455707 +-3.0861275 +1.5283407 +1.5858181 +-1.4027554 +-2.5558581 +-1.9505932 +-1.7171797 +6.3972592 +0.6142597 +0.2170038 +1.4754517 +8.7016287 +3.2577953 +0.1241923 +1.2253381 +-1.4369770 +0.7760882 +-0.5818722 +-3.7322972 +1.5692024 +-2.1727102 +2.5085475 +-0.8654504 +-2.7841370 +-2.7950711 +-0.5132403 +-0.0754292 +-1.1182528 +2.5005829 +0.1116206 +-0.3573620 +-2.9521942 +-0.6257508 +-0.0479851 +2.7174807 +-4.2574825 +12.2393885 +-0.5480219 +-6.4602747 +-2.0662858 +-2.9625771 +-0.8941336 +1.2907000 +-2.3458991 +-9.8341160 +-2.5439599 +3.6242144 +-0.0058954 +1.9385929 +-1.6627346 +-1.0323650 +-3.9222927 +-14.2703133 +-0.5259050 +1.3787068 +-2.9727333 +5.9226613 +-5.5394917 +-8.6599340 +0.4777078 +-3.1452503 +0.3743185 +-0.6098187 +-0.6587847 +4.0656362 +-6.3771377 +-0.8662136 +-12.5976839 +-11.8831615 +3.5653272 +1.0896589 +0.1438841 +-4.3445892 +-1.7396390 +-1.2838491 +1.7662110 +-0.8563811 +-5.7563057 +1.8311154 +-5.5577493 +-2.4243600 +-13.1560812 +-1.4696444 +7.8008180 +-47.9527512 +12.6479731 +-1.0041966 +-54.2384834 +-0.3020983 +8.3992052 +-0.4275139 +-4.9186301 +1.8203659 +0.0147361 +-28.3545284 +-1.3513465 +-34.7766914 +-0.4060802 +-2.8436844 +-16.1581421 +0.5709914 +-11.0636940 +-0.7180118 +-2.6098881 +-0.8604647 +14.6782694 +-5.5611567 +-0.9911911 +-5.2672901 +-1.4397597 +0.1136626 +-2.0871267 +2.4726858 +-2.8358300 +-0.1854893 +1.0586786 +-0.0995049 +-4.8717346 +-0.7143786 +-21.1830921 +7.5137558 +0.9190178 +-1.8206831 +0.3178113 +-0.1620305 +-28.6488247 +10.9169359 +6.3005543 +-5.4636331 +-1.1774539 +0.7258117 +-0.7014428 +-0.2186437 +1.0925243 +7.9312963 +-5.8183846 +1.4069428 +1.9274124 +1.1793530 +2.6765885 +-10.4931908 +0.3539634 +-4.3397136 +-13.2566223 +-0.5649271 +4.7961211 +-1.8725563 +-3.0215259 +-2.4986315 +7.3002143 +-1.8497094 +-1.6095512 +0.1761838 +-3.8009620 +5.8055606 +-4.8609400 +0.6284972 +1.4351007 +-5.0647235 +-1.0603362 +-2.4285202 +1.0725373 +-35.5636711 +-2.5016408 +17.6503487 +-13.0667925 +-0.3040813 +-1.3361065 +-1.8735170 +0.4532290 +-7.8899994 +0.3086296 +-2.1177485 +0.1392504 +-0.7801651 +-2.5510304 +1.2563767 +1.4527829 +-0.6540182 +5.1917343 +-19.8734112 +-0.2667648 +0.1269588 +-0.7584680 +20.0619526 +-1.6418517 +-4.8634405 +-0.0151628 +-2.7205555 +-2.6707520 +-27.3056087 +-11.9004345 +12.5670481 +-15.1866608 +-2.3788538 +-12.3148336 +-5.3754520 +-0.2541822 +-11.4615908 +-0.2118169 +0.4063844 +-5.4695406 +-6.6078396 +4.1094689 +-0.7407641 +-2.9609349 +-3.1840682 +-11.1579504 +0.5174938 +-13.9636707 +-4.1854258 +-2.4517970 +-9.6052628 +-7.4979877 +-5.7631264 +9.1338749 +-7.2877779 +6.9005284 +-1.2832133 +-6.7406521 +1.3990027 +-1.7247480 +-7.9865355 +-1.8894351 +8.9224644 +-0.8983776 +-1.2594620 +-29.3775215 +-1.7942505 +3.2463806 +-1.4215080 +-4.9292455 +-1.7849268 +-4.6935477 +-10.9520426 +-2.2062297 +-5.7108088 +-2.8402071 +0.0616181 +-4.1570721 +3.1012418 +-1.9540732 +-0.9638132 +2.8431358 +-2.1996114 +-10.0809803 +0.5106871 +-4.6072931 +-9.5508318 +-3.5071282 +-3.1637542 +2.3025990 +-1.4007145 +-17.2401333 +1.7379122 +-7.3577847 +-6.0211821 +-0.2757933 +1.2589831 +-2.5535662 +-0.8961089 +-3.0799308 +-2.0301549 +-8.9368773 +-6.4669156 +-2.6742945 +6.2626877 +3.6650906 +-12.6432514 +-0.1565446 +-10.9712734 +-9.5019579 +-2.2673070 +-5.5503888 +-3.7610469 +-5.1652412 +-6.5799041 +-0.2262821 +-8.6126041 +-7.4135704 +-0.5475628 +-4.9352269 +3.7071900 +-7.7284288 +4.7796049 +3.2842898 +-9.7561245 +-0.8316061 +-5.4980235 +1.5623014 +-5.0108719 +-3.5743732 +-5.4744310 +-10.7192020 +-0.8380271 +-2.5394728 +-5.4165020 +0.4188726 +-8.3958979 +-4.7519336 +-1.8253757 +-0.5354182 +-1.6129081 +-2.6058831 +2.4492011 +-2.3832743 +-1.3591503 +3.2482302 +8.3277540 +-1.8343202 +0.0850908 +-1.8588372 +-10.6512384 +-6.8078723 +-7.0095081 +0.0825506 +-4.0209131 +-1.6602489 +-15.6343536 +-8.6135893 +-7.4009614 +11.0764236 +-4.4524169 +-9.1875029 +0.3883840 +-3.7966745 +-0.9450971 +-0.8680277 +1.2496061 +-6.3386264 +-5.4446912 +5.9769764 +-2.7080870 +-3.8466246 +-1.0484904 +-15.4153347 +-6.1785388 +-1.1873466 +0.8432109 +-1.3551971 +-1.0188563 +5.9793572 +0.4110191 +-44.8663750 +-0.0341048 +-0.7520399 +-0.9964716 +-5.2529554 +3.2328987 +1.8832115 +-3.1129384 +-3.9547973 +-26.2508030 +-2.6050103 +-3.6536469 +-23.4948483 +1.1285754 +-13.6974230 +-2.8825741 +-9.0400753 +-3.8418055 +4.3132129 +-4.7367959 +-8.2642241 +-3.9330091 +-1.9780856 +-2.9076469 +-6.2348146 +5.9739599 +-2.0912325 +-1.9501982 +4.5479832 +1.7469941 +-13.8331413 +-2.1345737 +-11.2393999 +0.5723420 +-3.0794880 +0.3826764 +-1.0987018 +-2.1804743 +-7.2287750 +3.4649839 +1.3988822 +-5.7311273 +2.1025343 +1.2341546 +-3.5716653 +-0.8979104 +-2.9656844 +-4.1238809 +-11.1222200 +-0.6351681 +8.9964485 +-3.7172804 +1.0992823 +-5.9443464 +-3.4257128 +-1.2974383 +-6.2827325 +-3.6309719 +3.4739885 +-5.7205243 +-4.1469455 +-11.5872374 +2.1903307 +-3.6366630 +-1.1064321 +-0.7558125 +-3.0244191 +2.2862875 +-4.6437140 +2.0634480 +4.6588855 +-8.5805807 +2.7265778 +-7.9537535 +1.0356392 +-1.5163230 +-8.8617096 +13.6866426 +3.5333998 +-1.7910880 +-3.8151295 +-6.0764251 +0.5951777 +-2.8625109 +-2.9956057 +-3.0083261 +-0.7247199 +-2.0978863 +-4.9993305 +3.6498990 +-2.5343168 +1.7907370 +6.9892955 +-12.9020004 +-2.4154797 +0.0005358 +-3.0350306 +6.0213413 +-6.7939830 +-7.2587729 +0.0014527 +-1.6820068 +2.1096685 +-6.0476542 +-5.1467819 +4.0495987 +-0.2516521 +-1.3149561 +-3.5296149 +0.0992260 +-0.2467518 +3.3039474 +1.8595146 +-1.3811649 +-0.5907007 +1.1793681 +4.0785108 +3.0238178 +-0.0566004 +0.3278925 +-8.0922003 +-2.8352334 +-0.6778054 +1.3576453 +-0.6705986 +-0.9944131 +-3.0900626 +-0.7275287 +9.6337633 +1.1964221 +1.8913115 +-0.2457859 +0.6191122 +0.1140682 +0.2034327 +3.0096848 +-2.5639312 +-2.6611590 +-4.5957284 +-5.6469173 +-5.2246690 +-0.8876629 +-1.4361341 +-0.4329377 +0.4507768 +2.3428617 +-2.0649500 +-2.1014366 +-2.1064341 +0.7291766 +1.3530089 +1.4409243 +-4.2968369 +-1.3840396 +0.0582287 +-4.2072697 +4.0357909 +0.0524083 +-6.7731771 +-1.7430022 +2.5599601 +-1.6449841 +-2.3850853 +1.5271844 +-0.6924688 +-4.2259583 +-0.3995549 +-4.8758307 +-0.6315823 +0.0170222 +1.1960756 +0.2446892 +-3.4887586 +-1.2376570 +-1.2605579 +0.6357301 +4.9895983 +-2.0947595 +3.7610078 +-1.2282232 +2.9000893 +-0.1860062 +-0.7508592 +-1.4508866 +-1.2206527 +-0.2727012 +1.5948474 +-4.0030670 +0.2932359 +-0.9914787 +0.8432717 +-0.6413282 +-3.2243590 +3.0646498 +-0.7735497 +-0.1539664 +-0.7578244 +2.0988140 +2.3801973 +-1.0938427 +0.6211168 +-0.2369830 +2.7409320 +4.0450044 +-2.6326673 +9.4497175 +1.4513419 +-0.1861882 +-2.4158401 +-0.5310329 +-1.0719479 +-1.2025700 +-0.5156744 +2.1695263 +-1.9307666 +2.0382924 +-1.9935083 +2.5125210 +-0.0207559 +-0.1706792 +0.2673128 +-15.8558617 +-0.7575534 +0.9950118 +-2.0915670 +0.9429385 +-2.7958000 +-5.4379907 +0.6313425 +-0.0969612 +-0.0057029 +-0.8450597 +1.0203608 +0.7811711 +-6.9276948 +-1.4881707 +-7.7504888 +-10.7917252 +-2.0239389 +-2.2040086 +0.6492125 +-0.3288126 +-2.2420566 +-1.4124502 +1.8421576 +-0.9900495 +-2.6481736 +-6.0290856 +-7.3066249 +-3.3953667 +-8.0304337 +-3.1129119 +-4.9480758 +-30.5381451 +9.7621937 +-4.1457505 +-56.0127029 +-2.3094673 +8.5069914 +-0.1328950 +-2.0438383 +1.2115655 +1.2461244 +-9.8731260 +-1.2957145 +-36.7262001 +-0.2477064 +-5.0879498 +-20.0526810 +-1.1115682 +-15.2633200 +-1.1350983 +-2.2425852 +-0.6814324 +14.0350285 +-7.1401486 +-0.3250130 +-0.7756125 +3.1578810 +0.0739441 +-2.3412728 +1.0167756 +-1.1701081 +0.0106307 +1.4814843 +-0.1238135 +-4.9557877 +-0.7531123 +-46.5187988 +6.1032948 +-2.7808902 +2.6363535 +-2.0756416 +-0.4366575 +-21.3228092 +8.9376249 +4.6181836 +-2.5011704 +-3.7711573 +0.3557933 +-1.5549088 +-0.3968020 +0.9547739 +0.5659333 +-8.8884315 +1.6671429 +-1.9026914 +-3.1474931 +2.4611063 +-8.4179955 +-11.4320364 +-9.9904165 +-9.6127453 +-4.0590515 +-1.2936019 +-2.0837665 +-0.5425406 +-3.1530070 +1.5690274 +-3.0644634 +-1.2009996 +-0.7673617 +-1.4045693 +0.3147759 +-4.2971067 +0.1755491 +2.6128554 +-0.3610709 +-1.8126571 +-2.0001233 +0.9994749 +-25.7466965 +-1.0649726 +22.0406914 +-6.1495223 +-0.2574200 +-1.2702818 +-2.4089620 +0.0423881 +-7.3584952 +-1.2783098 +-4.6970091 +-0.0990069 +-0.9627888 +-3.0521538 +1.5605112 +-0.1793540 +0.2268947 +1.6849340 +-22.6771431 +-0.6275855 +0.4868065 +-0.7247624 +17.4743061 +-0.8601246 +-6.7816243 +0.1751231 +-1.9499748 +-0.2402394 +-37.0909500 +-2.3648360 +11.2641373 +-20.2400990 +-3.5091791 +-11.7732821 +-2.2516694 +-7.2759719 +-9.9043417 +1.1731727 +-4.6260133 +-4.9534144 +-3.6181183 +4.0798402 +-2.0226870 +-6.7733259 +-3.9624884 +-13.3210306 +-2.3827665 +-9.9059038 +-4.2069764 +-2.1127677 +-24.8211060 +-10.4389095 +2.5595150 +5.6767249 +-11.1342926 +6.7267628 +-0.5440137 +-5.2422242 +0.9445106 +-1.0672576 +-7.8688259 +-3.8587959 +5.4046621 +-0.3793954 +-3.0231616 +-33.6204758 +-4.3300104 +-1.7731742 +-2.1008079 +-2.7482691 +-0.9687556 +-6.9218612 +-6.4421091 +-1.0070356 +0.3414541 +-3.9398451 +-0.2847884 +-4.6922226 +0.2069820 +-0.4652169 +-0.3650517 +3.7972550 +-2.2939730 +-9.5656385 +-0.5874380 +-4.1347342 +-8.1846094 +-6.9051890 +-2.1247404 +-2.0823247 +-0.9595286 +-11.1369495 +1.5943117 +-3.7663534 +-0.5744037 +-2.2755728 +0.4496800 +-4.4233890 +-1.2026124 +0.7043763 +-5.8072987 +-14.0557480 +3.8809180 +-3.9173107 +6.8253117 +1.8210130 +-9.0267992 +-2.9850719 +-9.8387794 +-9.1324673 +-4.9415283 +-3.9618392 +-4.1502275 +0.4747777 +-7.7379088 +-8.3856640 +-8.3434763 +-9.6061144 +-2.2209265 +-7.1756010 +-5.1498351 +-4.5499363 +2.4579020 +5.3817425 +-1.3945329 +-6.2450275 +-4.7088571 +1.3709385 +-11.9619780 +-1.6869569 +2.3760998 +-7.1032233 +-0.8793832 +-2.2676070 +-6.0375128 +-0.1719664 +-8.0761452 +-7.1346450 +-7.2319922 +-1.1115897 +-2.0572641 +-4.1777577 +3.1302722 +-5.4876552 +0.8478952 +-0.8370881 +3.1340907 +-2.2437396 +0.7829475 +-0.9302596 +-14.4080105 +-4.4446559 +-9.0617161 +0.7152081 +-4.6690397 +2.0827019 +-16.2316513 +4.4855843 +-0.6829149 +-0.5831781 +-4.6543069 +-5.6526289 +-0.9857863 +-6.8899803 +-4.9586248 +0.6591011 +1.7950537 +-7.7924280 +-4.1746807 +5.5266514 +-3.0935392 +-7.9439225 +-0.6851237 +-16.5330048 +-1.7351019 +-2.1035526 +-2.3372905 +-1.3318909 +-0.9070973 +-1.8602170 +1.2772207 +-8.9741344 +-2.1533759 +4.7661099 +-0.8033921 +1.1295028 +-0.5289987 +5.0979190 +0.2202209 +-5.5628362 +-6.3452163 +-2.2385094 +-4.2212763 +-15.9127035 +0.1572282 +-17.9191055 +-4.2369089 +-4.0960145 +-1.4911169 +-5.7963820 +-5.3575759 +-3.0555279 +3.5813494 +0.7252239 +-0.4382452 +-6.9451799 +-0.5582153 +-0.9769725 +-0.9282333 +6.0361066 +0.3310126 +-14.5476809 +0.2695314 +-8.6507530 +-5.4835353 +-7.9524856 +4.4084425 +-2.8134298 +-0.5053995 +-2.7415249 +-2.3776844 +-3.4615514 +1.6674714 +-3.9511292 +0.5017293 +-8.3619413 +-2.5103319 +-2.4326828 +-7.1061649 +-15.3632030 +-2.2050185 +-1.2191137 +3.0048211 +-10.5850458 +-2.7498264 +-5.3058743 +9.1575089 +-5.0168166 +-3.2342858 +0.8707596 +-6.3033500 +-0.6287065 +-7.8960547 +-4.5064650 +-4.3603082 +-4.1155519 +-4.7706017 +-4.0788689 +-3.3796499 +-2.2635534 +-2.6430714 +7.5321684 +-1.4700218 +-2.2723858 +-6.6803236 +1.1532967 +2.0484014 +-5.1458874 +11.5251818 +2.4630077 +-1.9989083 +-4.1822968 +-4.5618248 +-0.2500387 +1.3749470 +-5.4579740 +-4.9499192 +-2.0634727 +-0.8663262 +-6.9367185 +4.6484928 +-5.7284579 +0.0447090 +-3.6730988 +-6.7910228 +-3.8160238 +1.2122936 +-2.5487685 +-2.5698328 +-5.8805361 +-7.3956242 +0.7062009 +-1.9801255 +4.3609667 +-7.3338819 +1.2179829 +1.0913370 +0.3634361 +1.4552644 +-0.9829863 +-1.8107152 +-0.7338359 +-0.0107566 +-0.4271284 +-0.7808632 +-0.5947464 +1.4196553 +1.6633391 +1.1538640 +-0.5867206 +-0.1513640 +-8.3953190 +-2.2961199 +-0.3730302 +0.7478997 +-0.5678181 +0.4033635 +-2.5387321 +-0.0542564 +-1.9378107 +-1.4961243 +1.6890330 +0.8825439 +-0.4776104 +-0.3706255 +0.3096261 +0.4459722 +-2.1501641 +2.5254469 +-3.1295624 +-0.1809146 +-5.5055242 +0.0683043 +-0.3808987 +-0.9070046 +-0.2470254 +-3.2104609 +-3.0090148 +-2.0124614 +0.4791473 +1.0889784 +0.7954005 +-0.9812546 +-5.2631745 +-1.2888608 +1.2735250 +0.8090528 +3.6470520 +-0.5299125 +-5.6787949 +0.4928069 +0.2903442 +-2.0878298 +0.2203359 +0.7843702 +-0.2115622 +-2.1947918 +-0.0774848 +-5.0302024 +0.3420317 +-1.2805645 +-0.5003766 +-0.8292794 +-5.1119118 +-2.0245199 +0.2262696 +0.2283402 +0.5792730 +-0.3096730 +2.0644169 +1.9755007 +0.3246483 +-0.2060793 +-2.3576949 +-0.1449635 +-0.7053168 +0.0312776 +0.2348376 +-4.2939711 +-0.8093063 +-0.9608767 +0.2487349 +-0.6448444 +-0.6735920 +-1.2291670 +-0.7016434 +-0.1105504 +-0.8447322 +0.9942154 +1.7549845 +0.9997965 +0.2203070 +-1.8030882 +-0.9885741 +2.5559492 +-3.0558960 +1.7750647 +0.8403401 +-2.2264166 +-1.8745886 +-0.9640622 +-2.2430854 +1.1638612 +-3.8560088 +0.8011556 +-2.4924173 +0.5638091 +-0.6301486 +3.3999691 +-0.3562384 +-0.0138852 +-1.9847790 +3.7769098 +-0.4336348 +3.0702207 +-2.5602140 +-5.6971073 +-4.1196742 +-4.0697865 +0.9359572 +0.6720480 +-1.6702586 +-0.9369240 +0.8695045 +0.3818386 +-8.6845341 +-2.6743507 +-5.3412695 +0.5137768 +-8.3356247 +-8.0785065 +0.6532292 +9.1528559 +-3.0046012 +-4.0317669 +2.3309231 +-0.8929453 +-5.8793859 +-0.0203012 +-8.6772709 +-3.0071654 +-7.9373593 +-3.5171685 +-3.1417954 +-20.7003212 +3.2877333 +-6.1760192 +-60.6036415 +-7.0833535 +7.0878530 +0.4028051 +-0.8423032 +0.5914502 +1.4593812 +-4.6514473 +0.6650307 +-42.0254707 +-0.2481871 +-7.2548485 +-23.7465324 +0.5425910 +-41.3785515 +-1.2089064 +-2.5035665 +-0.6605407 +13.2839041 +-11.9826746 +-3.4945207 +-4.2357135 +-3.7068639 +0.0991599 +-2.6087646 +0.1812267 +1.7738067 +0.0090480 +1.6608230 +-1.3979981 +-5.1405907 +-3.2505043 +-24.2660732 +4.7749624 +-8.2459459 +4.9690804 +0.3283720 +-0.4638037 +-21.8432541 +5.5932980 +1.4098322 +2.6288853 +1.6959260 +-0.0596857 +-2.8805323 +-0.0228706 +1.0376513 +-2.6634791 +-8.7616644 +-3.7360928 +0.2392159 +-7.6861458 +1.9836233 +-2.8795860 +-9.2839479 +-18.1177406 +-7.9109421 +-6.8349094 +-5.5478320 +-2.3224843 +3.4787161 +-4.9062934 +2.8845766 +-4.2021337 +-0.1373652 +-1.6256816 +0.3862621 +1.0296651 +-7.1588888 +0.3246827 +0.9541529 +-0.0685624 +-5.8584957 +-1.0207170 +1.2688386 +-20.0493622 +-1.4790519 +31.6330471 +-5.1230664 +0.0046128 +-1.4450499 +-2.9463973 +-1.0872554 +-6.3508534 +0.6274366 +-8.9790421 +0.0552713 +-0.3319845 +-3.0134699 +1.9163235 +-0.5602870 +1.0739620 +-2.9849682 +-29.7535572 +-0.1327763 +0.7232720 +-0.7472124 +10.6951485 +-2.5350702 +-4.0605640 +0.4114721 +-1.8856491 +0.0689778 +-62.5499992 +11.1306887 +1.2260586 +-16.5805588 +-4.5564446 +-9.7235336 +4.9405575 +-1.2454109 +-14.8674603 +1.5428699 +0.4860660 +-6.4294152 +-5.3649597 +4.1658888 +-2.4831922 +-4.4338050 +-3.4940763 +-16.9632492 +-13.5625648 +-13.4471493 +-3.6757884 +-2.1100752 +-14.1870775 +-11.3016491 +-1.4318634 +0.4709728 +-7.2651558 +6.1891599 +0.8948979 +-2.7906199 +-1.3191605 +-0.9244586 +-6.3775206 +-1.2611258 +-0.0420848 +-0.1494487 +-6.9606838 +-32.2726364 +1.0593275 +-12.7251034 +-2.1118028 +-5.1787028 +-0.4521389 +-5.9358931 +-11.7915936 +-3.0022249 +-5.7089405 +-6.6612563 +-0.7093479 +-5.3446803 +-1.5628638 +-3.6662190 +0.5216613 +4.6662941 +-4.1944709 +-9.1931143 +2.3225973 +-3.7281196 +-9.2872143 +-15.8385792 +1.7089677 +6.0509772 +-1.4140002 +-11.6408501 +-3.5253689 +6.9633989 +4.5299292 +1.7068447 +-0.6152279 +-6.3872843 +-0.6280544 +2.9973805 +-6.2274265 +-13.4559202 +-1.4078131 +-0.6530595 +-4.9747434 +-0.7688862 +-5.3749003 +-5.8202353 +-13.1973667 +-9.6592569 +-0.3149168 +-7.6606264 +-4.6360154 +2.7696159 +-9.7210302 +-3.3679895 +-7.5139060 +-5.3781524 +-3.9828060 +-1.3141285 +-6.2618575 +-5.6005712 +-4.9961247 +2.2073298 +1.1827176 +-7.3405232 +-3.7328200 +1.6969869 +-12.1376495 +-1.1646117 +14.1656342 +-5.6752648 +-0.3778716 +-2.2661254 +-7.7944989 +-1.7209400 +-1.8601114 +-7.3494315 +-13.5509596 +-0.4802985 +-0.6105715 +-4.6746860 +3.8012111 +-2.3180556 +1.6239544 +-7.3203688 +-5.1895819 +-0.6787312 +1.4548596 +-1.1342419 +-11.8953714 +-5.1463561 +-8.8338299 +1.0995660 +-4.1283150 +2.2582786 +-20.6503048 +11.8881264 +0.4218026 +0.2295511 +2.3887548 +-3.4700258 +-0.9569197 +-2.4375575 +-2.8559623 +-1.4891053 +-0.6852707 +-2.6483073 +-0.6709113 +4.8348074 +1.2577529 +0.4600581 +-0.2653533 +-14.2792130 +-4.1158609 +-0.4729373 +2.5700202 +-1.1230690 +-1.1427622 +2.1611183 +0.3934297 +-0.0613522 +-1.8393974 +4.9486165 +5.8562632 +3.0316756 +-2.2737510 +3.0994422 +1.8153312 +-3.9407413 +0.3591914 +-4.9521041 +-1.9612855 +-15.3400154 +-0.6226093 +-9.0745687 +-4.1490469 +-1.2855948 +-0.3987159 +0.1771199 +-3.4781270 +2.0375915 +-0.2325675 +-1.3381917 +0.5891377 +-8.5960379 +-3.7125666 +-0.2369569 +-2.5092738 +7.3430014 +-0.2754810 +-11.9809484 +-2.6687009 +-3.5134227 +-2.4780474 +-2.1577826 +-3.3595920 +-0.8214635 +-0.1306561 +1.6501210 +-9.4664526 +-0.8680029 +-4.4465103 +0.5941024 +-2.1261039 +-4.9058800 +-0.3280379 +-0.9490948 +1.0133946 +-4.3151150 +0.2415796 +0.1529709 +-0.9515422 +-2.4953349 +2.0977173 +-0.3385995 +5.6772728 +-2.2477379 +-0.0304155 +0.3350323 +-7.5473723 +-1.8367910 +-1.5811094 +-0.7822652 +-1.7950228 +1.7112867 +-5.1740465 +-1.2031080 +-1.1487378 +-1.1439365 +-1.9665947 +-1.8671291 +3.4359703 +0.5926658 +-0.0391839 +1.8828056 +3.5540311 +-8.3836384 +10.0264654 +-0.7373896 +-1.6206173 +-3.4915154 +-0.0736998 +-3.3519998 +0.7522185 +-5.8948445 +3.9977570 +-4.9617028 +-3.9501960 +-2.5974572 +6.1154194 +-2.0379350 +-0.1987497 +2.2671504 +-2.0438020 +-4.3159623 +3.0557857 +-2.4033048 +0.1489392 +-9.3378925 +-2.2652972 +3.1370690 +1.3790427 +1.9984709 +-3.0237787 +2.3837631 +0.5427482 +0.0726998 +0.2343939 +-2.6613328 +-0.2104178 +-0.5890955 +0.3759238 +0.6002613 +-0.1148028 +-0.9082296 +0.9734590 +1.7387242 +0.4764141 +-0.4584759 +0.1908822 +-3.8269060 +-0.4695088 +-0.2903613 +0.9206018 +-0.3238207 +-0.6030741 +-0.1450120 +-0.4582611 +0.4350118 +-0.0127012 +0.9554429 +1.3458208 +1.0855870 +0.5051412 +3.4585662 +1.9413370 +-1.8108395 +0.9301820 +-0.3747806 +0.5907027 +0.4232589 +-0.3690087 +0.0190501 +-0.6746423 +0.2400285 +-0.1620407 +-0.5098915 +-1.0501657 +-0.8600648 +0.0454507 +0.6791954 +0.6791859 +-6.4873710 +-1.2337375 +-0.3969997 +-0.4261763 +1.1210586 +0.5798646 +-2.8431585 +-0.5260026 +0.2906169 +-1.3745233 +0.4079162 +-0.6250612 +-0.0318622 +-0.0382793 +-0.4362829 +-1.8452252 +-0.1755242 +0.8691199 +-0.2516883 +-4.0321035 +-2.0343492 +-0.1402612 +-0.1083516 +0.9610767 +-0.8036448 +-0.3057204 +0.9577877 +-0.3202949 +0.8382226 +1.2617344 +-0.9024476 +-0.7206079 +-0.7943605 +-0.1048790 +0.7551919 +-4.2124224 +-0.2668722 +0.1701050 +-0.2890140 +-0.2487222 +-0.8335181 +-2.2729733 +-0.4652458 +-0.3479773 +-0.9801038 +1.4938885 +-0.1118825 +0.1235327 +0.1416568 +-0.0451781 +0.2012175 +-0.5280121 +-0.2371730 +2.0886073 +0.5140134 +-1.3284864 +-0.3810738 +-0.7145180 +0.0953214 +0.3104552 +-1.0889401 +-0.5101218 +1.0223520 +1.9524002 +-1.3395393 +4.1704068 +-0.0847260 +-0.1094441 +0.7380258 +1.2676454 +-1.2167168 +3.5882599 +-1.1773118 +1.5356152 +-4.3982882 +-2.4917657 +0.1960865 +-1.2277187 +1.4610294 +-0.5228631 +0.9201234 +0.1445444 +-16.2829647 +-1.7420902 +0.0330056 +-4.1740532 +-1.3013430 +-10.5704250 +-0.0763292 +-4.6021657 +-2.5170591 +0.9895589 +0.8098668 +-1.0949918 +-3.2266231 +-8.6348028 +-2.8021522 +-5.4774585 +-6.1817765 +2.3667622 +-0.2537134 +-3.3734565 +0.7523825 +-4.6855488 +14.0759230 +-0.4962124 +1.9820489 +-1.4773979 +1.7141616 +3.6549325 +-2.4159937 +1.9523722 +2.7212031 +12.8934631 +0.4888993 +-0.1781371 +-22.8648682 +1.0800263 +8.1596165 +-0.0200990 +-0.0586062 +-0.8097219 +-5.0575843 +-7.4564905 +1.2666589 +-1.8789926 +-0.0920309 +0.9249671 +-1.5603054 +3.3304782 +-1.1987009 +-0.2306636 +1.3217794 +0.1305756 +-4.1097507 +0.0514555 +-7.1370792 +-4.4039278 +-4.1230378 +4.6122260 +0.2205281 +-0.8832639 +-11.4336300 +15.7921515 +-2.8448861 +-0.5987992 +-1.3125037 +1.1327723 +-1.1199825 +0.3060721 +3.5209112 +-5.4404926 +-1.9846419 +-3.9267871 +-1.2513834 +4.8819118 +4.2795868 +-0.2886651 +-3.1162090 +-9.2608385 +-2.5553558 +-9.3768454 +-9.0806532 +-1.3768966 +-1.8797171 +-3.4653296 +0.1750460 +-1.7025145 +4.9787126 +1.7684373 +1.4208332 +-3.5307422 +-6.8115921 +-1.8165998 +-0.5171275 +0.3939100 +0.1513362 +0.0748933 +1.2619328 +-9.7502527 +-0.2537729 +-11.5792494 +-8.9096279 +0.8915511 +-0.6390558 +-2.1081524 +0.3388630 +-10.2973213 +-1.8023553 +6.1430621 +0.9831465 +-0.1044353 +0.0478518 +0.9801276 +3.2537935 +-0.6077790 +-1.7585117 +10.4317923 +0.5719870 +-0.5418407 +0.1092136 +-2.0104680 +-1.7123066 +4.7528934 +-0.5642132 +-0.9130064 +1.7022492 +-37.2905083 +-4.4163647 +0.2072489 +-3.4538112 +-1.6250869 +-4.0860996 +-0.8427927 +-1.4937880 +3.2870717 +-0.6859944 +-7.9959903 +-5.1438422 +1.9397472 +1.2497740 +-3.2736759 +-6.7264104 +-6.2937584 +-5.4958787 +-10.3381815 +-9.0571795 +7.2043681 +-0.2508310 +11.1642599 +0.2756745 +0.1862903 +24.7066364 +0.2028265 +-1.2409135 +-2.3774834 +-3.1129014 +5.5467401 +-3.6576278 +1.5692718 +4.8353062 +23.0182266 +0.6817079 +1.2607535 +-28.4586945 +1.4765805 +13.8879948 +-0.1404734 +-0.5773265 +-1.0047991 +-11.0474405 +-7.2251730 +1.2785560 +-1.0210724 +6.1609559 +1.3281945 +-3.1129320 +6.8919859 +-5.9885201 +0.5535313 +2.3561301 +-1.1161951 +-6.9337754 +-1.4535360 +-5.5577774 +-7.6316428 +-5.2443171 +7.3908763 +5.5895243 +-1.9810344 +-1.7296993 +18.5038719 +-4.3468461 +-0.8994423 +-1.8175634 +2.0284750 +-2.2630780 +0.8784765 +8.0089865 +-10.7133760 +-3.0521748 +4.6809683 +-2.4121251 +2.9676480 +7.1527538 +1.6754183 +0.0190553 +1.3927503 +-3.9224448 +-1.9561018 +-7.5452638 +-2.6969080 +-3.8011858 +-5.0603685 +-0.6754695 +-2.0138535 +2.0297301 +3.3976648 +-1.7850109 +-3.6213248 +-6.0482259 +-3.3377922 +0.3928447 +1.9940894 +1.4222111 +-1.5072476 +2.6186368 +-4.1747246 +-1.6957277 +-20.9478245 +-7.3263063 +1.7032231 +-1.3690634 +-4.6083207 +1.0807581 +-3.1546056 +-1.2331644 +11.1511230 +2.0626645 +0.6756325 +-0.2788273 +2.0386174 +2.1635976 +2.0383172 +-1.0017853 +18.5369320 +0.9795012 +-1.2840166 +-0.6418912 +-5.4337072 +-1.1999497 +8.3717155 +-0.9518506 +-1.6324364 +5.2860174 +14.0736961 +-6.7271357 +-5.6604223 +-3.2017465 +-0.2704483 +-2.5651832 +-4.4770756 +-5.3068342 +0.5318174 +-0.8700202 +0.6991638 +-8.1296082 +-0.5909389 +2.4075558 +-5.3225956 +-3.6616473 +1.2595682 +-5.0194535 +-6.4292855 +-0.0909920 +11.3655376 +-0.7474027 +0.3862298 +0.1328807 +0.4912356 +33.3235512 +2.3580275 +-6.9095922 +-3.5634081 +3.7800462 +4.2876158 +-5.4825950 +-0.9213265 +6.4578023 +32.1565857 +-0.2836204 +1.2695526 +-9.7226410 +2.4333134 +19.6297684 +-1.0653901 +-2.5534000 +-1.9974798 +-12.8912859 +-1.7464507 +3.4731071 +0.4496516 +7.9223623 +0.9031798 +-4.4338126 +12.3084126 +5.0738206 +0.0439277 +3.2054949 +-2.8747425 +-12.2946291 +1.4555303 +-11.1600809 +-10.5265865 +-4.5126686 +6.6903882 +-0.1234719 +-1.0591127 +-0.6584480 +20.9953098 +-4.6849661 +-5.1319280 +-0.5456693 +3.1532822 +-5.9758611 +0.9222770 +3.7654860 +-0.6466213 +-4.6775203 +-0.7234232 +-0.1523989 +1.7496346 +9.8578463 +4.9019799 +-1.7884709 +-1.9066266 +-3.8759902 +1.0743561 +-3.8648975 +-4.0043931 +-10.8416986 +-0.7977795 +-3.9652567 +-2.7943370 +-2.6745951 +5.3967276 +-6.4296331 +-7.1819692 +-1.2248359 +-0.2673486 +1.4542314 +2.3988910 +1.7071140 +-0.5860731 +2.9185150 +4.0668674 +-4.8150878 +-30.6373634 +-4.0110612 +1.4857020 +-2.9727240 +-8.2529421 +1.5619519 +-1.0250442 +-0.4764992 +15.8248835 +2.0774715 +0.6687385 +-0.7082546 +2.9015262 +-2.4493458 +0.3671005 +-2.8204739 +26.3177719 +1.2194365 +-1.0646433 +-1.2048227 +-7.4262781 +-4.8586464 +13.6603060 +-1.7492582 +-3.5292935 +12.5080166 +0.6539762 +-2.3194978 +1.9469075 +-0.1096447 +2.5122731 +-1.6567922 +-4.7758341 +0.7867064 +0.3137241 +0.0249214 +3.2157772 +-2.2294066 +2.6402645 +1.3528049 +-2.5810184 +-0.6382453 +0.6312048 +-0.8524691 +-0.4547705 +0.0049400 +2.0419419 +-0.1031668 +0.3996307 +-5.1516247 +-1.6585697 +12.9198332 +-4.5009050 +-5.5677519 +-2.1586218 +1.7650865 +-0.2641138 +-2.4698391 +0.7767656 +4.9005961 +14.1916790 +0.8101765 +3.0925717 +-0.2695072 +4.3883710 +6.8461533 +-4.3042288 +3.0668883 +-1.5566424 +1.6628963 +0.2425638 +-1.9105469 +0.8358744 +-0.9241743 +-0.0497067 +-3.6127577 +1.7667390 +1.8681581 +0.5627487 +2.4949470 +-0.2868118 +-4.9406662 +-0.3572246 +-1.6340976 +-2.8634486 +2.6125827 +-15.8623934 +0.1028534 +-1.0474578 +0.0578120 +6.8640361 +-0.1854410 +0.4875432 +0.3462804 +1.9273330 +-1.2633489 +-0.4970249 +0.4523146 +4.8004785 +-0.3549376 +-1.9254028 +3.7479556 +-0.2968468 +4.6501303 +0.9555360 +0.8855838 +0.0648090 +-0.8015788 +0.4831185 +-1.7592514 +-2.7297578 +4.2365694 +-1.4506944 +-2.3382859 +-0.8616362 +-0.6431194 +5.3504243 +-1.4892428 +0.4937115 +0.4972176 +1.6369997 +0.9943135 +-0.1792751 +1.9082770 +1.1062182 +0.6687139 +0.2842776 +-6.3073845 +-9.1708708 +0.2426351 +0.2724127 +-1.9735594 +-2.0870061 +0.4982822 +-1.0516020 +1.0336257 +7.3373389 +-0.5728852 +1.1709912 +-3.8312056 +2.0664191 +-2.1480134 +0.2126239 +-3.3452938 +9.6725531 +-0.2461433 +0.2800257 +-0.2146228 +-8.9756508 +2.8657365 +5.1174588 +-0.2266923 +4.0405998 +10.7438993 +0.1331620 +-2.2927687 +-0.5793465 +-21.7128048 +-2.2705986 +-4.9496713 +-2.3671215 +-7.1202588 +-10.8597078 +0.3978525 +-5.0404711 +-3.4963634 +0.6119196 +1.0993700 +-0.6051467 +-1.0429035 +-13.1472263 +-4.0419488 +-5.2078390 +-9.7705879 +-0.0914241 +-0.2872258 +-5.0547018 +-2.1096497 +-5.2905812 +9.2439709 +-0.5894731 +-0.8077105 +-0.9041629 +-1.5903174 +2.8366597 +-1.8421719 +-3.7233586 +1.5568349 +8.9379740 +0.1399183 +-0.9382609 +-27.2071190 +0.1978980 +4.5934653 +-0.3966821 +-0.5789685 +-0.8449113 +-1.9029987 +-8.8575554 +1.2365544 +-3.4211764 +-0.1861562 +1.1874197 +-1.8255441 +1.9697784 +-1.6517485 +-0.3705987 +0.9385544 +-0.7352264 +-5.1650147 +-1.8156756 +-5.1591787 +-3.9777546 +0.5611734 +-0.1699910 +-0.7200451 +-1.5773956 +-18.2987652 +9.4192419 +-8.0766563 +-0.4167610 +-1.9233598 +0.4426075 +-1.1733959 +0.2820774 +3.2567105 +-6.1060390 +-5.0739241 +-11.3791285 +2.6349831 +-0.1971585 +4.6735358 +-1.3491285 +1.3746867 +-8.7004013 +-5.6828065 +-11.0820732 +-12.9320278 +-1.6483188 +0.9715304 +-4.5938816 +-7.2209110 +-2.5714262 +-1.1890330 +0.8452678 +2.3191526 +0.2622301 +-7.3163619 +-1.1463051 +0.1820441 +-1.5818394 +-0.9159387 +-0.6973172 +1.5280890 +-17.5731888 +-0.4113140 +-7.3965740 +-14.5052261 +0.6526254 +-0.8390276 +-2.6204314 +-0.2358400 +-13.3713617 +0.4397238 +2.4595048 +0.8436207 +-0.6276432 +-0.5045014 +1.2577676 +0.9179019 +-0.5814583 +-5.8803968 +6.6083083 +0.6732449 +-0.2718542 +-0.2870084 +-3.9932117 +-2.5952840 +2.6465516 +-0.5217510 +-0.8991922 +1.5281366 +-34.9422035 +-11.3169117 +0.0631476 +-1.8426720 +-3.1824214 +-5.5391335 +-2.1715364 +-2.0601037 +0.1175834 +0.8183125 +-1.5625826 +-6.0730467 +0.9309543 +1.3132677 +-1.6350539 +-2.7857935 +-2.5593901 +-7.3290172 +-3.4487917 +-3.8831236 +3.1356018 +-0.7992205 +9.7814207 +-4.5980558 +0.6628630 +16.3122559 +0.6533807 +-0.5156439 +-1.4555495 +-0.3468870 +4.0332880 +2.3805840 +-2.3190320 +4.1054549 +16.2409897 +0.8369457 +0.5314848 +-21.2434978 +-0.4834159 +8.5624819 +-0.5539014 +-0.6674148 +-0.8806390 +-10.1704531 +-2.6082680 +0.5331160 +-5.4161153 +1.5525705 +1.3559275 +-3.7737424 +4.8300905 +1.6288235 +-0.2926313 +0.9474339 +3.8226597 +-9.1339235 +-4.4293509 +-5.6233754 +-6.2836809 +2.9545500 +-5.3285723 +-1.1017699 +-2.5448923 +0.0484090 +10.8976765 +1.9607351 +0.3837806 +-0.9341264 +0.4518701 +-2.3758736 +0.1286760 +-2.1857755 +-0.1103254 +-6.8722496 +-3.9103210 +2.8867211 +-2.4512022 +1.8377587 +-0.4956308 +-0.2853843 +4.8377819 +-6.4299626 +0.8837512 +-2.0541365 +-3.1692524 +2.6122303 +-3.8209531 +-1.0383115 +-4.1134853 +2.3936341 +1.0227187 +1.5346786 +2.2544777 +-3.1025767 +-1.4888234 +-0.4276212 +-0.8633702 +0.3832183 +-0.1156862 +2.3176584 +1.1030900 +-3.2589419 +-14.7198563 +3.0561190 +1.2167021 +-1.5453329 +-7.3583708 +0.2428567 +-0.0865367 +1.6395713 +5.1432266 +1.4805317 +-0.8161434 +-0.7263225 +2.9266131 +1.9195167 +0.8888128 +-7.3586287 +12.2844534 +0.4581961 +-0.9381682 +-0.0034812 +-10.1958628 +-0.4298058 +7.1875410 +-0.0075800 +-1.0590382 +1.1837463 +0.3819601 +-4.3185697 +-9.8823824 +1.1700003 +0.4182885 +-1.9459924 +0.1002452 +0.4459377 +-1.4063675 +1.0838510 +0.6582192 +-5.1020546 +7.6498713 +-3.0623116 +-1.6121817 +4.2459173 +0.9624187 +-4.1215625 +-2.4103103 +-0.2828175 +0.6946387 +-0.0869264 +1.0210307 +0.8060324 +2.0013781 +9.0836391 +-2.5796981 +1.1512015 +1.4509283 +4.2720752 +2.2973638 +-1.0021863 +0.4076501 +3.4352674 +11.7593508 +-1.8471490 +2.4097450 +-8.9766493 +-1.1742462 +-1.0661918 +-0.8002769 +-4.8741374 +-1.2270384 +2.2632654 +-0.8910152 +1.6290375 +0.9409518 +0.8327951 +-0.6030296 +-6.9690580 +-2.7594502 +-0.2698476 +-0.3795306 +-7.6529164 +1.0186524 +-6.3533130 +-1.6073383 +-0.1772221 +-0.0614211 +2.4406235 +0.6314926 +1.1669210 +-2.0052533 +0.1110014 +2.4128630 +0.3926355 +-4.4760437 +2.3635838 +2.3920448 +-3.2521806 +-0.7143843 +-0.5048318 +0.9947464 +-2.5634069 +1.3510005 +-2.2389438 +-1.4463305 +4.0392408 +0.0917348 +-0.3030224 +0.1710996 +-3.7659779 +-0.3441837 +-1.0259820 +-5.2679300 +-2.0018680 +-2.4258943 +0.8414689 +-1.4328685 +-1.9425917 +3.3219666 +-1.1949301 +1.2730691 +-0.2455841 +0.8016310 +0.4666615 +-0.0067428 +0.7253920 +3.2137196 +2.0977626 +0.8569505 +-0.2549510 +4.0620165 +0.3432552 +-0.2150451 +-4.1564322 +-0.9679809 +-1.8896025 +0.4870199 +-0.4306757 +-3.4926775 +-1.4492828 +-1.9302666 +-1.2671012 +4.9841695 +-1.5334345 +0.5454786 +-3.7002354 +1.4344747 +-4.4220829 +-1.6331822 +2.6058514 +1.1469369 +-2.1591926 +1.6520398 +1.7757751 +1.1202796 +4.2405086 +-0.2048392 +-0.4556395 +2.7546203 +0.0712276 +0.2941422 +-0.6433728 +0.0576313 +0.0894464 +-0.0660637 +0.0461069 +0.1344660 +-0.0083527 +-0.3137356 +-0.3595057 +-1.3799525 +0.1294906 +0.0809529 +-0.3725871 +-0.1419545 +0.0581007 +0.1152162 +0.0453776 +0.0589250 +-0.2233947 +0.1285414 +-0.3848444 +0.1149105 +-0.1886659 +-2.1789975 +0.4495342 +-0.1261565 +-1.6479012 +0.2648808 +-0.1907417 +2.1314387 +0.1122176 +-0.0875147 +-0.0962528 +-0.0572978 +-0.3616914 +-0.0500932 +-0.2273986 +0.8437790 +-0.2122324 +-0.0166193 +0.4963401 +-0.0175697 +-0.2106505 +0.0886577 +-3.3244355 +0.0633852 +0.2377991 +-0.0078522 +-0.4492695 +0.0311143 +-0.7013151 +0.0640522 +-0.0787743 +-0.0462033 +-0.1089955 +0.0719966 +0.1318953 +-0.8587652 +-0.0113346 +0.0309287 +0.0284034 +-0.2072698 +0.3729019 +0.0768577 +-0.0270119 +0.3152426 +0.0956960 +-0.1955080 +0.0789947 +0.0181473 +-0.6455362 +0.1241988 +-0.5454192 +0.0964016 +0.1591972 +0.0192582 +-0.1640784 +0.0739617 +-0.1165657 +-2.6190331 +0.0986657 +-0.1517880 +0.1038597 +-0.0816679 +0.1523715 +0.3216367 +0.0182717 +0.1018976 +0.0484338 +-0.2618298 +0.1738843 +-0.0695859 +-0.0076590 +0.0204243 +-1.0790977 +0.1301920 +-0.1926124 +-0.8776996 +-0.0906102 +-0.3867821 +-0.0673589 +0.0793254 +0.0687927 +-0.1461104 +0.1741262 +0.3479254 +0.2433560 +-1.1862081 +0.4674681 +3.9611635 +0.1440243 +0.0066151 +-0.1598713 +-2.0369680 +-0.0747593 +-0.3969164 +0.2496687 +0.1729445 +0.2910430 +0.5147177 +-0.2446033 +0.1684944 +-0.8803003 +-0.0090639 +-0.1024216 +0.0549924 +-23.2519760 +-2.4637229 +-7.3240833 +-8.0761480 +1.2732965 +-12.7056055 +0.9124032 +-8.8379021 +-3.9275491 +-0.7862248 +0.9288164 +-0.6518846 +-3.2202532 +-2.1036906 +-6.2562561 +-4.1591768 +-12.7420740 +-0.7107075 +0.0157230 +-9.1225491 +-4.9088087 +-16.8532085 +6.7340059 +-1.5036391 +-1.8772641 +-0.4709587 +-2.4960623 +2.4705644 +0.2211530 +-7.0765662 +2.1606779 +6.5263891 +0.0407489 +-1.6894400 +-27.4844227 +-0.9291946 +1.5102316 +-0.8100259 +-1.3302803 +-0.3492334 +-6.6506100 +-15.4637814 +-0.2940110 +-2.8790402 +-9.2620287 +1.2121228 +-2.1133802 +0.1631480 +-3.3091002 +-0.2001118 +1.1584821 +-0.8895563 +-5.3569489 +-1.3900390 +-4.4751387 +-5.0006223 +-2.0954676 +-3.8971350 +-2.0126481 +-1.3163891 +-29.3178711 +6.6956406 +-15.1842279 +-3.5554435 +-2.0652454 +0.0561818 +-1.9363543 +0.1399891 +2.6133220 +-9.3245602 +-8.6415625 +-5.7671399 +1.4711300 +-0.5077901 +3.6270809 +-2.8438478 +-7.0229168 +-7.5584450 +-6.6755471 +-7.2412844 +-8.8585386 +-1.8811648 +7.6872892 +-5.6051860 +2.1834757 +-2.0931242 +-9.5083704 +-0.3528254 +0.5646165 +-1.5740254 +-6.4355812 +-0.7963875 +-0.2933955 +-4.3069239 +-2.2290466 +-1.3150848 +1.5197408 +-5.0477500 +-0.8338370 +-4.0976734 +-15.3000879 +0.5278347 +-1.0302117 +-2.9458427 +-0.9772487 +-10.8811312 +-0.0469332 +-0.7853240 +0.6911886 +-1.7043933 +-0.8991109 +1.6616012 +-1.7896771 +0.0697111 +-1.1082859 +3.7957458 +0.9436508 +-0.0295362 +-0.2166907 +-7.9936118 +-2.2876058 +-1.2024477 +-0.2933947 +-1.6731386 +1.6634394 +-28.7088642 +-10.4669027 +-6.8042350 +-5.5099478 +-2.6514792 +-6.3992500 +-1.2839453 +0.3849418 +0.9576423 +0.8910277 +-0.2791084 +-7.3533149 +0.6054100 +2.4817481 +-1.8391403 +-5.3568563 +-0.8942996 +-5.7713165 +-6.0935488 +-7.6223650 +0.8205542 +-0.5343507 +-1.4265838 +-10.2980671 +-1.1415311 +11.5747499 +2.3910861 +-5.3848572 +-0.3205316 +-1.5703171 +1.4735677 +2.5722730 +-4.8204932 +3.7218318 +12.0312233 +0.3811599 +-1.7827537 +-21.2722454 +0.9405234 +3.5295432 +-1.1854300 +-1.9351219 +-0.5436285 +-9.4007196 +-2.3630307 +-1.8845533 +5.8343577 +4.9023418 +-0.7377303 +-4.7020459 +-1.0594488 +-3.0084884 +0.3287157 +3.0700366 +0.3812898 +-9.7702322 +4.1812501 +-3.7960150 +-8.0974112 +-1.2311974 +-4.9844255 +1.3802122 +-2.4678338 +-5.5691833 +2.7923117 +-0.2197116 +-2.6959021 +-0.2236757 +-0.3121179 +-2.9069123 +-0.2043329 +-4.4414577 +0.3912016 +-15.3925762 +0.5798921 +4.5684099 +-3.9718444 +0.7827452 +0.0792729 +-1.8119289 +9.3093596 +-7.5073643 +0.7372828 +1.2509425 +-3.6634488 +-0.2116540 +-5.5698071 +-4.1954722 +-6.2925935 +-4.3410621 +-1.5751277 +-4.1291790 +0.3473021 +-0.4485103 +-2.5042894 +0.7512605 +-2.9625411 +-0.1114403 +-1.4966242 +0.6642557 +9.3453016 +-2.2551255 +-7.4696555 +-1.8009715 +0.0494676 +-1.0013902 +-8.7613354 +-2.1305702 +-1.8778449 +0.2199561 +-1.8042773 +0.7096236 +-2.0769470 +-0.4294909 +3.5074441 +-4.0575199 +-2.8190274 +0.2048883 +7.2828856 +1.4107822 +-0.2928042 +-0.3742890 +-17.2652893 +-2.4944160 +-1.0576369 +0.7980425 +-2.0778074 +1.9974084 +-3.4681187 +-3.5450323 +-6.9927793 +-0.0193866 +-0.3956660 +-2.8168495 +0.5426177 +0.3307792 +-0.1330214 +1.6048843 +0.2276046 +-4.8066349 +1.9757617 +0.6455786 +1.3307966 +-0.0999225 +0.1068172 +-9.3802013 +-1.3016078 +-0.7778687 +2.3967800 +-0.1834376 +0.2830682 +-4.3363485 +0.5945074 +3.2257907 +0.0260517 +1.2742920 +0.3714370 +1.9433390 +2.3152120 +-0.1116938 +1.9337775 +0.6469027 +5.1859908 +-2.8752337 +2.4599826 +-3.5368779 +-0.0446351 +-3.9028933 +-2.0052493 +-1.6753360 +-0.1153311 +0.7641197 +-0.5283808 +-4.3958111 +0.5405470 +0.5995463 +-3.6170862 +-6.7491746 +-2.0990345 +0.9328979 +0.2313073 +-3.5279329 +1.9090726 +-6.5146403 +-1.0737554 +-1.6269993 +-1.5022249 +4.3539801 +-0.6714973 +-0.4662890 +-3.2721255 +-0.3998964 +-2.7519405 +-0.1898937 +-0.9822209 +0.7844795 +0.7662550 +-5.1847582 +-0.2188538 +0.1366753 +-0.9213644 +-3.8773108 +0.7197308 +4.6669412 +-3.5502193 +-1.1479714 +0.6524717 +-1.1009731 +0.5596303 +-1.0854441 +0.7241439 +1.3780954 +-7.2537651 +-2.0589468 +-2.2773511 +-0.1724834 +-5.1914568 +0.7437968 +-0.8635212 +-0.0908935 +-1.5582662 +-0.7254212 +0.7700275 +-0.4153197 +0.1012638 +0.6359559 +0.2391785 +-0.6678451 +1.2268978 +-4.2409630 +5.5664148 +-0.2190347 +1.3120482 +-1.5996689 +-4.1045671 +-1.6640306 +0.1506150 +-0.6201023 +6.5806565 +-0.0332973 +-1.7599558 +-2.4551556 +5.9520698 +-2.1848900 +-0.2522172 +1.2077347 +-3.4043036 +0.4570754 +4.3485646 +0.9792367 +2.1065035 +-4.4087634 +-0.3222511 +4.1305809 +-2.5913153 +-0.3884709 +-0.6850309 +-0.4442263 +0.2382815 +0.0447177 +-0.0507656 +-0.1591530 +0.0282140 +-0.0670017 +0.0263427 +0.0443628 +0.0077726 +-0.1961137 +-0.0671137 +0.4015667 +0.5349934 +-0.1973704 +-0.0380347 +-0.0745400 +-0.0240474 +-0.0244373 +0.1065201 +-0.0398251 +-0.0479324 +0.1144605 +-0.1459980 +0.5080636 +0.0273889 +0.0204318 +-0.7437084 +0.1294738 +0.0941717 +0.3780768 +0.1217205 +0.0474218 +-1.3007227 +-0.1238602 +-0.0927788 +0.1434717 +-0.0042267 +0.0434083 +-0.1383857 +-0.0190863 +0.0169990 +0.0823493 +-0.0132787 +-0.0313964 +0.0808708 +0.0937459 +-0.1289908 +-3.8133435 +-0.0971399 +0.0525617 +0.0124073 +0.2779675 +0.1646447 +-0.5528227 +-0.0106633 +0.0616187 +-0.1172598 +0.0993553 +-0.1083012 +0.0212010 +0.0661744 +-0.0456900 +-0.2317251 +0.0483057 +0.0242381 +0.0059642 +-1.2471006 +-0.4268721 +-0.0123712 +-0.0227859 +0.0524935 +0.2186047 +-0.1060296 +-0.0063005 +-0.0314719 +0.0675350 +0.0169700 +-0.1479836 +-0.0722322 +-0.1636217 +0.0184864 +0.1542134 +-2.9490380 +0.0305692 +0.0347908 +-0.0667673 +-0.0008179 +-0.0370702 +-0.2520986 +0.0283341 +0.0080477 +-0.0495000 +0.1643105 +0.2653542 +0.1030659 +0.1758882 +-0.0274909 +0.1081499 +-0.0690829 +-0.0680317 +0.2652594 +0.1590230 +-0.2061492 +-0.0513463 +-0.0436470 +0.6324339 +0.0349318 +0.0391330 +-0.1010023 +0.0486535 +0.1996702 +0.0438985 +4.2055302 +-0.0274894 +-0.0440044 +-0.0149551 +1.2735590 +-0.1684698 +-0.3010418 +-0.2015126 +-0.1601107 +0.0263898 +-0.0116369 +-0.5803149 +-0.0846143 +0.0502338 +0.0232744 +0.0796402 +0.0454365 +-26.4278374 +-2.9037645 +-10.7746792 +-0.4131922 +-9.7008066 +-20.8269520 +1.0138721 +-2.0029278 +-5.1598911 +-1.7508740 +1.2037258 +-0.7646222 +-4.1280437 +-3.7932041 +-7.7697802 +-3.7491229 +-15.8060131 +-2.2573657 +-1.0136400 +-22.4511700 +-7.0404587 +-8.8022575 +5.1541710 +-2.8782983 +-1.7146623 +-0.1726302 +-3.4353960 +1.2508904 +1.7842873 +-11.9101648 +-0.5098331 +4.6861544 +-0.0609659 +-3.7508736 +-32.5155144 +-0.7861336 +-1.2740109 +-1.2687494 +-2.2219644 +0.4005253 +-6.5406847 +-14.9001188 +0.5215776 +-2.3496406 +-16.2177315 +1.0050368 +-2.4941423 +-1.5021579 +-3.1574903 +0.0311821 +0.9909564 +-2.7984746 +-5.4424906 +-9.4644537 +-5.7663264 +-5.5573988 +-6.3845968 +1.0560719 +-0.8946927 +-1.0815336 +-13.6385517 +4.5287137 +-14.7486372 +1.5549803 +0.5995919 +-0.3728532 +-3.1322460 +0.2985122 +2.9638686 +-11.2557669 +-13.9814920 +-1.5861428 +0.0642586 +0.3097081 +3.4207919 +-4.9598341 +-10.8476992 +-15.7508860 +-7.9098468 +-1.9262420 +-6.6313124 +-1.9783605 +0.1019180 +-6.6376858 +-12.3932533 +-1.4487720 +-5.8361249 +-1.6268241 +0.1185684 +-8.0453634 +-9.3296232 +-0.3238586 +0.4395561 +-3.1247385 +-1.9696641 +-1.2943381 +1.5379386 +-4.6568289 +-0.0709275 +-0.1622991 +-18.7693710 +0.4686665 +-1.5013872 +-3.9184904 +-2.1898484 +-3.7221894 +0.1562024 +-4.6433482 +0.3364147 +-1.3200362 +-1.8566767 +1.9652323 +-4.4779487 +1.2183167 +0.3811849 +1.1596550 +1.1651282 +0.3841234 +-0.5445464 +-9.5501356 +0.7255034 +-5.9743738 +-0.0623478 +-3.1119525 +-1.1995146 +-24.2522469 +-0.1019311 +-11.2265568 +-6.5517874 +-0.4445710 +-6.6610041 +-1.6453283 +0.6433384 +-0.9880848 +1.7676070 +-0.5963693 +-6.0088239 +0.8758460 +2.1332524 +-0.3223296 +-0.2016688 +-2.4536879 +-11.1704273 +-3.0579350 +-4.0507364 +-0.9668854 +-0.2321387 +-3.1237247 +-5.8235521 +3.0258586 +8.2440662 +1.0204970 +1.4846704 +0.6150779 +1.1276459 +1.1133426 +2.3853741 +-3.7432277 +-0.7598137 +8.6792297 +-1.1194304 +-4.2825680 +-22.3605747 +-0.2744391 +-4.3552227 +-1.4717855 +-5.6648264 +0.9181923 +-1.0319527 +-4.7204576 +-0.4370098 +2.2963979 +-1.5151896 +0.9569702 +-5.3323627 +-3.2809484 +-2.3315556 +-0.0702111 +1.5065064 +1.1123705 +-8.4265738 +2.6076632 +-4.2998848 +-1.5869651 +-3.9930687 +-0.8774651 +-2.8311834 +-0.9230167 +8.3146200 +-1.3020508 +-0.4564107 +1.9784091 +1.1256403 +-1.5985179 +-3.2351851 +-0.4294113 +-0.7217622 +-3.8741481 +-17.1563339 +-4.0143781 +2.2526805 +-0.5463837 +-8.8663187 +-2.7643242 +-4.0959749 +-4.8124080 +-7.5955620 +1.3732529 +-5.0086703 +-4.1732078 +7.0369301 +-5.1781373 +-4.6718135 +-4.3184962 +-6.8366203 +-2.9172108 +-0.9184508 +0.0700233 +-0.5552403 +-7.0235081 +-0.2512171 +-1.6801869 +3.3891902 +-3.1485617 +1.6724813 +15.0805702 +-2.0350726 +-1.0200245 +-0.3359814 +-0.3370675 +-1.5807507 +-5.6054025 +-1.5187899 +-3.5746574 +-3.2090073 +-11.4373074 +-0.0795807 +-3.1383109 +-1.5337546 +4.3416204 +-2.8139627 +-0.4371551 +2.5202758 +2.6207860 +0.8554113 +1.0749989 +-1.1441114 +0.7515211 +-1.9041899 +-3.3628514 +1.5744016 +-2.8514669 +-0.4920706 +-5.7982035 +0.2974455 +2.2145824 +0.4767424 +-0.7919900 +-1.4356877 +-1.5755486 +-0.2117340 +0.5532308 +2.0965662 +-0.2367838 +-1.9140730 +0.3286259 +-2.0733221 +1.6592032 +-0.7000213 +0.2667468 +-5.1313510 +-0.0999392 +-0.4814005 +0.0489706 +-0.4665415 +-0.5367557 +4.6526408 +-0.3912967 +0.5196298 +1.1642753 +-0.9938693 +0.5073079 +0.6330208 +-3.5720811 +1.1538614 +1.5172379 +1.6714586 +4.1766210 +0.3394179 +0.0904048 +-0.7912670 +-0.1675468 +-1.6173612 +-0.5396191 +-1.4319377 +3.2894683 +-5.7592807 +-0.8003820 +-1.0401138 +-0.3311883 +1.5212040 +0.4253749 +-7.5848331 +-1.7251363 +-0.1769591 +0.4917773 +3.5579431 +0.3138765 +-4.9933610 +-0.6121820 +-1.2793022 +1.2491473 +-2.3626418 +1.3550161 +-0.8861733 +-0.3737236 +-0.6403485 +-7.1694698 +-0.6615422 +2.0644076 +0.5780377 +-1.3268778 +-5.0550280 +-1.8177536 +0.9543725 +-0.0448397 +-4.4286013 +0.0826549 +3.2463887 +-0.7628899 +-0.8945488 +1.0862623 +-4.5313587 +-0.9981476 +-1.5275680 +-0.4323394 +1.0440663 +-7.9862342 +-0.9121106 +0.5518482 +-0.6222988 +-0.3427185 +0.3693994 +-3.0366890 +-0.1206326 +-0.7685989 +-0.3269975 +-1.1555240 +-0.5886487 +0.4476877 +-0.3341651 +0.3626014 +0.6251792 +-0.3070689 +1.5973635 +2.2746625 +0.4818699 +-0.1139579 +-0.0034148 +2.8177030 +-2.0269556 +-0.2465181 +-0.1705599 +3.0069535 +-0.9890718 +1.3486241 +1.9278586 +6.6565905 +1.1775949 +-0.0939758 +1.5116289 +-2.5287826 +0.3858106 +-1.0575198 +-1.8166492 +-3.8302042 +-8.6733780 +-3.0194254 +1.8963022 +-3.6114180 +-0.3304440 +-1.0710293 +0.0193262 +0.9904341 +-0.0774595 +0.1274298 +-0.3119788 +-0.1888913 +0.0358228 +0.1557562 +0.6296452 +0.0466025 +-0.5453555 +-0.2885845 +1.0876781 +1.6189709 +-0.1435475 +-0.0371306 +-0.5614960 +-0.4696342 +-0.0940309 +0.0744645 +-0.0389119 +-0.2848773 +-0.7341481 +-0.4922366 +-0.5359731 +0.1576288 +0.4502521 +0.1993625 +-0.0289172 +0.3372310 +0.7449063 +0.4101074 +0.3302849 +1.9021502 +0.3558974 +0.5686526 +0.3356382 +-0.0498063 +0.1539584 +0.0871814 +-0.7712013 +-0.2588051 +0.0311987 +-0.2172712 +0.1170022 +-0.0108937 +0.3518840 +-0.9805381 +-3.7720914 +-0.4005523 +-0.2053185 +0.2566850 +0.8254316 +0.2061335 +-0.4590714 +-0.3821432 +-0.2236970 +-1.2824800 +0.2104431 +-0.6486716 +-0.0397023 +-0.8403319 +-0.0979256 +-0.7403986 +0.0255950 +0.4294473 +-0.0920027 +-2.7398586 +-0.3193082 +0.5077831 +-0.1998424 +0.1862848 +-1.4001808 +-0.0089327 +1.6587613 +-0.1854418 +-0.3819838 +0.2533579 +-0.8376006 +-0.2120771 +-0.0785344 +0.0048419 +0.1282514 +-3.1735070 +-0.0671208 +0.1935896 +-0.2170676 +-0.0304783 +-0.3647375 +0.5734946 +0.0628036 +-0.0725946 +-0.2461178 +-0.0499624 +-0.0784526 +0.0828356 +-0.0663592 +0.0868819 +-0.0860687 +-0.2770499 +-0.3068531 +0.8633417 +0.2512876 +-1.1240585 +-1.1712067 +-0.0809573 +0.7196240 +0.1113713 +0.1775291 +0.3498180 +-0.0726260 +-1.7029744 +0.3530433 +5.0495963 +-0.0563064 +-0.0409713 +-0.3152143 +-0.9069853 +-0.4954232 +-0.5497300 +0.1881143 +-0.0449735 +-2.6997511 +-0.1222775 +-0.7593315 +-0.8859962 +-0.3765358 +-0.1271931 +0.1824116 +0.0913600 +-16.3161564 +-2.6149893 +-7.2772660 +1.6880269 +-11.6676245 +-17.3360233 +1.6155186 +-5.2332730 +-5.5638971 +-1.3864297 +0.6507314 +-0.8377435 +-2.5677814 +-7.6962147 +-8.2630224 +-7.0516686 +-13.3763151 +-1.8611395 +0.6642629 +-25.1050262 +-11.6764174 +-10.8718023 +-0.1443490 +-3.2483044 +-1.6770817 +0.3399817 +-1.5970324 +0.4440040 +1.4400716 +-9.6090851 +1.9755162 +-0.0551838 +0.1009853 +-6.0374465 +-29.9167080 +-1.5287247 +-9.9097919 +-1.3424604 +-2.8398094 +0.8351825 +-9.2103596 +-11.6919270 +-0.9606103 +-3.6714139 +-1.4837894 +0.9827017 +-2.7789073 +-1.9090052 +-3.0349078 +0.4034692 +1.5816007 +-1.9010303 +-6.2680907 +-2.9204726 +-4.7361927 +-7.3472023 +-9.0736818 +-4.1868730 +-6.3221717 +-1.0593683 +-10.2903957 +-4.4950485 +-1.9824896 +1.6846910 +-3.8816130 +-1.1981261 +-2.7982543 +0.4117842 +1.8723463 +-15.4005222 +-19.0029888 +-0.7597471 +1.0474296 +-2.7883470 +3.4414799 +-5.1647949 +-2.7929289 +-11.1983080 +-8.7622557 +-1.4083145 +-6.8188653 +-2.4925337 +4.5498438 +-6.6464787 +-2.8323872 +-2.0378249 +-8.6744890 +-2.3258929 +0.4924079 +-6.4856005 +-7.2631812 +-2.9259925 +0.3312101 +-0.4810287 +-4.7632322 +-1.7253771 +1.6492063 +-5.3897614 +-0.1381141 +5.9999433 +-11.5931444 +0.6781388 +-1.6996384 +-4.6692300 +-3.1735759 +-3.3235619 +0.5393769 +-11.7793264 +0.4824536 +-1.2857603 +-1.6462080 +2.1283443 +-4.1304588 +-0.0563287 +-5.2955265 +-4.1236534 +1.5021230 +0.7778311 +-0.5067180 +-14.7960033 +-1.1036112 +-7.9571195 +-0.2569050 +-2.3850942 +2.8376164 +-23.0666695 +0.3570313 +-13.4008417 +-4.2220359 +-0.7724772 +-4.1951661 +0.8588166 +-4.2589121 +-0.1104200 +1.9616176 +-2.8557153 +-5.0680399 +0.6778616 +0.9017909 +-1.1982845 +0.1105833 +-0.2838190 +-9.7222662 +-8.2098427 +-1.3974793 +1.2727464 +-0.2370676 +0.8554488 +-3.8692060 +0.8418747 +0.4643401 +2.5567098 +-5.6008530 +1.5193696 +2.4801764 +0.9695543 +3.3608396 +2.2918193 +4.1488180 +1.4920627 +-1.1197441 +-6.7322321 +-22.8631859 +2.5596054 +-10.1552820 +-2.3423934 +-4.1025691 +0.1121294 +-3.4623210 +-6.0558529 +-2.8096752 +1.3038676 +-1.0345960 +2.0960038 +-4.7750702 +-2.2228179 +1.7400843 +-0.3179611 +4.4537630 +0.5465252 +-7.4230642 +-3.4284306 +-6.2474155 +-3.2695692 +-9.1598568 +0.4861445 +-1.2173055 +-2.3315825 +1.2321618 +-6.4666166 +2.7531302 +2.8390119 +-1.5468166 +-2.6073854 +-6.1117582 +0.5232805 +-2.2862554 +-3.0325227 +-15.2053537 +-4.2149057 +2.2287700 +0.2875564 +-1.5019207 +0.8929961 +1.0719972 +-1.9121495 +-3.4472115 +1.5727555 +-3.7908604 +-4.9952273 +3.6804965 +-3.7375314 +0.9434361 +-6.2348537 +-3.8115568 +-4.8822527 +-2.9791939 +-1.9984024 +-3.0854199 +-3.1048038 +2.2820148 +1.1372434 +1.8886775 +-3.6826112 +3.0113091 +7.3949642 +-1.9566363 +6.4961495 +-0.9501339 +0.5291058 +-3.2124586 +-8.9574862 +-0.9071885 +1.6892928 +2.8684952 +-3.5477240 +1.4374584 +-1.9886127 +-2.9001887 +4.8735981 +-4.8835139 +1.1504854 +-4.2769098 +-5.0449100 +2.5792890 +0.4608634 +-0.9976445 +-4.8888469 +-1.7900341 +-1.1460426 +0.6766942 +-2.9969389 +0.4270522 +-3.1073055 +4.2318606 +-5.3293247 +-1.2900434 +-3.8291297 +-0.4509541 +-1.1381729 +-1.2567121 +0.1206370 +3.5856533 +-1.8068204 +-2.4125800 +1.4096245 +0.1816377 +-0.4145071 +0.0531853 +0.7780014 +-3.4963670 +-4.4109020 +-0.5525740 +-0.4653790 +-0.6247677 +-1.5332162 +-0.8455289 +-0.0104916 +1.6173445 +-1.2441843 +-2.1681595 +1.6823425 +0.7040500 +2.3958473 +2.0390315 +1.0481137 +4.2511325 +5.4751472 +-2.5368218 +2.6844270 +-0.7182373 +1.9789174 +-2.3413260 +1.6027931 +-0.6581783 +-1.2123667 +1.1263981 +-1.5350382 +-1.9575788 +0.0338839 +-0.4426100 +0.2262909 +2.5542674 +-2.7189524 +-0.6416185 +2.5267277 +0.3989478 +-0.0199736 +0.0559469 +-1.6853433 +-3.0168839 +3.4929228 +0.9175478 +-1.4200628 +-0.7143547 +5.6609359 +-0.9363824 +-10.0679665 +-0.1347813 +1.3955324 +-0.7195917 +-4.2111850 +-3.3586984 +-0.1852682 +-0.4624959 +1.2295425 +-3.5394239 +0.2778448 +1.5220553 +-0.7594118 +-4.2655950 +0.9224133 +-1.2838254 +-0.3718105 +-0.1314208 +-0.2747757 +-0.6470181 +-5.3902087 +-1.3266858 +-1.4346080 +-0.4452572 +-0.2517900 +0.1339198 +-5.8525090 +-0.2562866 +-0.8814906 +-0.8459080 +4.0573759 +0.6165826 +-0.4469816 +0.0750585 +0.1924700 +1.0340562 +-0.6842030 +1.3374444 +2.5216513 +0.6216815 +-1.9394816 +-0.0209630 +-0.7582986 +0.1897013 +0.9656022 +-0.1895275 +1.1857960 +-2.1119671 +-0.8274179 +-1.9308686 +12.0775766 +-2.3952219 +0.0075160 +0.0478371 +-1.6591647 +2.2270942 +1.3947539 +2.2686377 +-2.3746445 +-0.1379884 +-2.5811434 +0.7309048 +-0.8264115 +-0.9940202 +-1.4366468 +-0.0839532 +-0.0165604 +-0.1474174 +-2.7548687 +0.0604816 +-0.4613120 +-0.6674199 +0.4308849 +1.3627901 +-0.4720857 +0.3881939 +-0.9562645 +-0.0419198 +2.9512641 +-0.1128093 +-0.5351156 +-0.8150474 +0.0321537 +-0.0707162 +-0.0880427 +-0.1453888 +-0.5468107 +0.2403983 +-0.3659678 +2.2930121 +-0.2090267 +0.2349409 +2.4529777 +0.0985237 +-0.9703116 +0.0047707 +0.2771870 +1.5462184 +1.4795111 +-0.5629820 +0.3175362 +0.4204167 +1.7329026 +0.8630044 +0.0675858 +-0.3685586 +-4.0264525 +0.9433088 +-0.3262806 +-0.1916712 +0.1008263 +0.4448204 +-0.1739188 +-2.2611420 +-0.3119976 +-0.1464002 +-0.5312606 +1.4196779 +-0.4631914 +0.0141783 +-0.4420943 +-0.0812703 +1.1517781 +1.2227396 +-1.9382008 +-0.4255190 +2.2190924 +-0.3616069 +-0.7183067 +-0.0019043 +0.3080566 +-0.3007379 +-2.8185542 +-0.2545095 +-2.5706253 +0.0896070 +0.6228686 +-1.5509259 +0.1051109 +1.6037152 +-0.3022236 +0.3583939 +0.2028558 +-0.0094260 +-0.4335075 +0.0759289 +-0.0622278 +0.0901360 +-0.4067418 +-0.7714858 +0.0602288 +-0.5828075 +-0.0102396 +0.3762725 +-0.2433937 +-0.0407168 +-0.1987379 +-0.1440448 +0.8649287 +0.0546115 +0.0392419 +0.2659230 +-0.2626073 +0.9414888 +-0.6972366 +0.0795345 +1.1379455 +0.4543779 +0.7447765 +-2.1116333 +0.4591991 +-0.2702913 +0.1164790 +-2.1537826 +-0.4656843 +-1.2921158 +0.5763707 +-1.3752990 +2.1969960 +-0.8055911 +0.1520156 +-0.1812411 +-2.1777408 +1.0292583 +1.3337127 +1.4447091 +-0.6284925 +2.0444119 +0.0280792 +0.1394796 +-0.7040797 +1.1057411 +-0.2388960 +0.2044862 +-0.1834590 +-13.4123669 +-3.3926280 +-8.6353827 +-0.9581879 +-15.0652952 +-17.2142849 +1.8971633 +-9.6435661 +-5.2939053 +-2.9347110 +1.2180058 +-0.5597101 +-1.0589415 +-6.3199143 +-10.5160179 +-8.9133415 +-10.9883795 +-2.8312521 +-0.6397265 +-23.1216545 +-8.6292048 +-7.4160881 +-8.9273710 +-4.7516217 +-4.5694652 +0.8954417 +-2.5803719 +0.0766925 +1.7736391 +-10.3250351 +1.2237426 +-7.2501006 +0.0331772 +-7.5998669 +-31.2322350 +-1.3673022 +-20.2638454 +-1.4237573 +-3.5511911 +1.0291649 +-5.3015118 +-11.5605125 +-1.4318658 +-2.6052094 +-2.9809949 +1.1951640 +-2.9701343 +-4.1632047 +-4.3509822 +0.2119637 +2.2028964 +-2.9676344 +-6.9693022 +-4.5930591 +-6.2250166 +-4.4866672 +-9.2557297 +2.3509932 +-3.9051287 +-1.8089215 +-20.3112259 +-9.1967249 +-8.4669065 +0.0550397 +-1.4797754 +-1.5928657 +-4.4935870 +0.6318420 +1.8583051 +-15.7038212 +-19.3297005 +-8.5056648 +1.7190346 +-4.0449438 +6.6491899 +-3.7530842 +-6.4178095 +-12.4546499 +-9.6472149 +-2.1703866 +-5.0892057 +-2.7690566 +3.6528206 +-8.2379665 +-9.2939510 +-3.0340962 +-12.3763599 +-3.8284380 +1.1373851 +-1.9226500 +-8.5469122 +-4.3277397 +-0.5417920 +0.4836087 +-4.4805837 +-2.6061738 +1.9115956 +-8.4062986 +-0.4789029 +11.4926796 +-8.2377644 +1.0678165 +-1.6076534 +-5.0604811 +-3.6651077 +-2.8676462 +0.4745583 +-33.4397163 +0.5312236 +-0.6262735 +-1.9086515 +2.4141738 +-7.2335510 +1.4379115 +-7.7413802 +-10.2554169 +1.6903912 +0.6785629 +-0.4854724 +-11.5330477 +-2.4994888 +-5.7711658 +-0.3348249 +-2.0835729 +-0.0808226 +-23.0350380 +-2.0523221 +-6.2445374 +-8.0738401 +-4.1114573 +-4.3613176 +-4.1130776 +-3.0657842 +-3.7576573 +3.7530329 +-4.4152446 +-4.9397268 +-1.4769052 +-0.5525042 +-0.0271317 +3.8699119 +-3.3895378 +-14.7654982 +-13.3708401 +-2.0147371 +-0.9123124 +-0.9345382 +5.9023676 +-7.3539438 +0.3627593 +-3.7007885 +1.0279257 +-6.2531939 +1.4899863 +0.4370973 +-0.4127215 +3.2859178 +2.7136333 +0.9463091 +-2.5087359 +0.7770138 +-10.4158182 +-21.9935017 +-0.1407130 +-11.8752975 +-3.5751302 +-5.4203668 +0.7730181 +-8.1707134 +-6.4080243 +-1.9994392 +3.2435560 +-4.9317889 +2.0288811 +-5.7243295 +-8.5696230 +-0.4268451 +0.5843101 +3.4293485 +-1.1792762 +-9.3785830 +-0.5952177 +-6.0956688 +-3.7420244 +-10.9037561 +2.1030405 +0.8230255 +-5.2383761 +2.1884267 +-9.0870771 +1.8689162 +4.9797502 +-0.2779654 +-3.3638747 +-9.2345543 +1.0061276 +-3.8018806 +-2.5721827 +-18.4256992 +-5.7465048 +4.5503216 +-1.3256915 +5.1170444 +-0.9479768 +0.9893491 +-2.6380908 +-5.8891582 +3.9786606 +-2.0466633 +-4.2881908 +0.5196072 +-8.7015648 +-3.5636053 +-6.6834936 +-5.0107551 +-7.8913150 +-2.9854054 +-2.2639048 +-2.6148846 +-2.2253332 +-1.4424001 +0.3877691 +-0.5135584 +-7.3238354 +4.0333786 +11.4886665 +-0.6484696 +14.8522997 +0.0139009 +1.8937906 +-2.4070253 +-3.1075454 +-0.1264705 +-1.0003316 +0.5723063 +-10.0369520 +0.5168244 +0.6020550 +-2.5981262 +5.9249730 +-7.3655519 +2.3439853 +-6.5026073 +-10.7288551 +2.4941764 +0.3266391 +-0.9142597 +-13.2874241 +-2.0065415 +-5.9023881 +0.3327927 +-2.3805270 +1.5405108 +-7.0884218 +0.3329043 +-1.0657229 +-1.2496259 +0.3843385 +-0.3357792 +-2.2770526 +-2.1634021 +-1.2253760 +6.1199622 +-0.7666922 +0.0079842 +-0.3934599 +-0.1220162 +4.9469585 +0.9640561 +-0.0764550 +-5.0073347 +-0.6241813 +-0.5093546 +-0.9397191 +-1.0287173 +-1.6166354 +-2.2038147 +1.8505251 +-2.0949690 +-1.9284874 +1.1799763 +-0.0880076 +0.9387379 +0.6220447 +3.5115540 +0.8450942 +4.0050554 +0.3324810 +-2.2495675 +-0.9292919 +-1.8020655 +0.9202850 +-2.9523821 +-2.0614016 +-1.7781214 +-4.4687567 +-0.7509371 +-1.9339851 +-4.7061486 +-0.0207072 +-0.9400768 +0.0531060 +-6.7547507 +-3.6215603 +-1.2035242 +-3.1009452 +-0.8136635 +-1.1770898 +-1.8358238 +-0.6650490 +-3.3205280 +-0.9652154 +1.4748795 +0.4253862 +0.7230515 +-1.1985512 +-0.8852732 +-17.8689289 +2.0359271 +3.9787555 +-0.2302362 +-5.6883264 +-7.6727886 +-1.6420459 +-0.7207387 +0.1182902 +-6.5213819 +-0.2330854 +1.8980960 +-0.3964788 +-1.8247062 +1.1548994 +-2.1309648 +-0.0680900 +0.9773146 +-0.4054077 +0.3417330 +-5.2570996 +-0.9755373 +-2.6406572 +-1.0815803 +-0.4501218 +-3.0084424 +-9.5954199 +-0.9234188 +0.6438778 +-0.9752811 +-3.1472399 +-0.0803840 +0.7508441 +-1.2786673 +-0.3916602 +0.7221611 +-2.3915701 +1.0063165 +5.8130708 +0.9934322 +0.9092715 +-0.7152042 +0.5980987 +0.8464695 +1.3937057 +-1.1623778 +3.5808659 +-2.4099874 +2.8900082 +0.1012138 +10.4042578 +-1.6094435 +0.0028159 +-2.7736936 +-7.5054960 +1.1070265 +1.2778583 +-1.6732479 +-1.8677361 +-1.6870333 +-6.9008493 +0.6801491 +-2.6361659 +0.9969319 +-1.9463207 +1.3625131 +-0.4940445 +-0.2469200 +0.6622530 +-0.1679276 +-0.4137868 +-0.6528209 +0.4252709 +-0.2638735 +-0.3695618 +0.2975929 +1.2823912 +0.0129794 +2.5663702 +-0.5496129 +0.0360048 +-1.5075772 +-0.1840293 +-0.1518424 +-0.1367632 +-0.1749358 +-0.6951161 +0.6645831 +-1.2828133 +0.5951242 +-0.6046839 +0.4912582 +3.5232136 +0.2358706 +1.1905805 +4.3683944 +0.7928337 +0.6353037 +3.1898158 +0.6944073 +0.3103400 +1.0154884 +-0.0148478 +0.6876298 +0.2907105 +0.9673915 +-0.4690689 +1.6452581 +-0.4803338 +-0.9612967 +0.1411020 +0.5576359 +0.3147514 +-3.2121539 +-1.1079202 +-0.7031299 +0.2476609 +1.2356834 +-0.3404340 +0.4325020 +-0.3669792 +0.5847928 +-0.4036481 +0.2293846 +-0.3136564 +-0.3079475 +0.7496827 +-0.3621961 +-2.1668444 +-0.1604367 +1.1166286 +-0.2502283 +-1.6621599 +-2.3496802 +0.3600181 +-0.1978902 +1.5156026 +-0.7093660 +-0.2470079 +1.4012973 +0.0539800 +0.5235680 +0.3516327 +-0.4505881 +-0.4758094 +0.0748584 +-0.1951099 +0.6066676 +-3.3001945 +-0.3475665 +0.2534546 +-0.4925163 +-0.1030534 +-0.9123650 +-2.6446550 +-0.1574550 +-0.2594474 +-0.2632973 +1.3656571 +-0.0203355 +0.4786124 +0.0738130 +-0.1158543 +1.1891323 +-1.0700582 +2.1564515 +2.9105964 +1.2041047 +0.4476061 +-1.9308610 +-0.0118781 +-0.1631999 +0.2129379 +-0.2933293 +-0.8360503 +-0.1045704 +2.7835784 +1.0274130 +2.6293006 +0.2488292 +0.2768285 +1.2505800 +-2.0698218 +-1.1200966 +3.8131797 +-0.8728936 +-0.9157879 +-4.2170882 +-1.4207784 +-0.2214124 +-0.6959686 +1.5195067 +-0.3605855 +1.2982248 +-0.2265653 +-7.5276313 +-2.5293710 +-4.2349763 +1.4035287 +-10.0048494 +-2.7422216 +1.2537251 +-2.9394073 +-4.8288736 +1.2343276 +-0.2279700 +-1.5431105 +-3.9225514 +-1.3422413 +-4.1086845 +6.1426239 +-5.6685686 +-2.2799230 +-2.1254914 +-4.6633511 +11.7962580 +-1.5373913 +-45.2759285 +-1.6739658 +6.4441733 +-0.7235039 +-1.3081368 +3.0398626 +0.6858150 +-5.3844061 +3.3975549 +-27.2465553 +0.3836382 +-5.4880095 +-36.6496620 +-0.3872705 +-8.7372522 +-1.1676761 +-1.3888409 +0.9471540 +14.6131582 +-14.0639267 +0.5039804 +-2.0315819 +-0.9039839 +1.6320151 +-2.7167015 +0.2874044 +-3.4423492 +0.2124482 +1.1961437 +1.5843511 +-5.7994094 +-0.6465158 +-20.7327271 +5.9010434 +-4.1640244 +-2.4010918 +-3.2571268 +-1.4449012 +-16.9674721 +9.3601799 +-3.6972287 +0.6007407 +-0.5878441 +-0.1080282 +-1.5931927 +0.6500384 +4.8562021 +-2.4135511 +-12.4329443 +0.0672784 +3.0362401 +1.7684145 +-31.7573032 +-4.5871449 +-9.7892942 +-15.8358202 +-7.5222883 +-5.9523206 +-11.2650061 +-2.9691346 +-0.7438209 +-7.2073250 +2.0942047 +0.1728538 +1.2336167 +0.1145169 +2.1679387 +5.3791385 +-3.8011093 +2.0413151 +0.0756425 +1.0334728 +-3.7618582 +-0.6360963 +1.6871682 +-11.2724962 +0.0054573 +11.9944696 +-10.1051540 +1.3621004 +-1.9696259 +-4.1068883 +0.1669498 +-7.6726861 +3.5301089 +1.3931657 +1.3929162 +-1.1218134 +-1.1530913 +-0.2680861 +-1.4219785 +-1.2747427 +-3.4664023 +-17.1311188 +2.1498833 +1.2269793 +-0.3627309 +21.6184864 +-0.3606200 +2.4648240 +-1.9315904 +-1.0005416 +-0.6764756 +-22.3261795 +-10.3976669 +2.6813304 +-0.3231961 +-1.2877963 +2.0254107 +-0.4352059 +1.7895970 +-3.9830425 +1.2370732 +-2.4613099 +-5.4164224 +2.3446403 +-3.9251881 +-0.3315412 +-0.3228419 +-0.6711373 +-7.1090989 +-20.1396084 +-1.3185656 +2.4607472 +0.6984317 +1.1021259 +-5.3285389 +-0.4636645 +23.0763569 +-3.7317171 +-2.5902929 +-2.2591004 +5.7444091 +3.9934134 +4.2895789 +-0.4575122 +9.9680452 +22.2845497 +1.1829956 +-0.9133602 +-12.3693476 +-5.0063052 +11.3878479 +-1.0423238 +0.1541407 +0.6350456 +-3.2831182 +-0.2779170 +0.7057795 +-0.0939005 +1.6776160 +3.3739207 +-5.5390272 +1.5490497 +1.3312789 +-0.1729679 +-1.9202750 +4.0296683 +5.7061567 +-0.8972468 +-6.2149014 +-3.6479349 +-3.5823793 +-1.4260782 +0.4650989 +-2.2510483 +1.6631923 +3.4941349 +-1.3732334 +-5.6018019 +1.8571725 +-0.8000943 +-2.4664338 +1.1078253 +1.8293115 +-4.2890501 +-11.7520809 +-1.6805655 +5.4907608 +2.2349553 +1.6285384 +-0.0480669 +-1.7177435 +3.2411442 +-2.1147633 +-2.4156747 +1.6698329 +-10.6933088 +-2.0363040 +-3.6807282 +1.6678867 +-0.5919970 +5.2275910 +0.6359211 +-0.5851492 +-3.1736269 +0.0214869 +-13.8597660 +1.1000004 +1.0244863 +1.6192021 +-1.7350250 +3.2105541 +3.8401527 +0.1653908 +-18.9386444 +-0.1761476 +2.5243313 +-0.7844645 +-7.6534991 +-1.7556670 +-2.2606156 +0.0925209 +9.1951151 +2.4905341 +-1.4468695 +-0.5105504 +-2.7577109 +-7.6739731 +-0.1989030 +-2.1044531 +13.7049417 +3.5186527 +6.6206007 +-0.5122635 +-8.2542219 +2.2018886 +5.8712125 +-4.9211397 +0.0896905 +-1.8454716 +-0.9540201 +-0.7633605 +-6.3363724 +0.4076885 +1.9346244 +0.1905366 +0.9173329 +-0.1330840 +-1.1209435 +1.3195986 +-0.3825177 +0.1491427 +-1.7488446 +-0.2324073 +-0.4231541 +0.3062756 +0.1881263 +0.2357727 +3.1821711 +0.0236549 +0.1086331 +-0.0514188 +0.2052120 +1.6741086 +1.0781639 +-11.6064405 +-0.7442052 +-0.8291364 +-1.9303514 +-0.4860847 +-2.2304163 +9.5904732 +-0.3850241 +3.3594699 +2.2420597 +1.4632831 +2.1428008 +-0.9460707 +-0.8873838 +1.1361847 +-0.1189201 +-0.6908811 +2.8397284 +0.9071310 +-0.0118553 +0.5557802 +-0.2409081 +-1.3388510 +0.1359278 +-1.3001735 +0.2900624 +2.1218524 +-3.3814459 +2.5752451 +0.0591871 +-1.4716859 +0.2796996 +-0.1413000 +-1.5211715 +0.1228874 +0.1152817 +0.3305258 +-2.9795096 +0.3126301 +-0.9760024 +1.4042459 +-0.9320220 +0.7656023 +0.4782146 +-4.7956014 +2.1645653 +0.8894360 +-2.7539985 +-4.2096348 +0.4001056 +7.7850437 +1.2554104 +-4.3458157 +0.0347801 +0.1298611 +0.0466892 +-0.0616427 +0.3405434 +-0.3073259 +-2.7795680 +0.5409149 +-0.8872243 +-0.2471622 +0.2137169 +1.9277769 +0.5147882 +-0.3700848 +1.4759059 +-0.0422805 +1.3317204 +0.7746987 +-0.1664838 +0.0985348 +0.0144394 +1.3942021 +1.3034790 +2.1507294 +-7.2601757 +-0.8871171 +2.9149029 +-1.2387141 +2.3306241 +0.2587926 +-1.0009457 +1.6700424 +2.8025656 +1.6172014 +-2.4746752 +-3.5996544 +-2.1117537 +0.2451828 +0.0525940 +1.6607282 +-0.5775242 +3.7894065 +6.6895103 +2.3956122 +-1.1575890 +3.0544245 +3.2879815 +-0.2589035 +2.1524127 +-12.3533344 +-0.0260085 +-1.5329542 +-0.6121554 +-0.0007512 +-0.0902793 +-0.0275680 +0.1365289 +0.0672683 +-0.1529804 +1.0623622 +0.0136239 +0.1054219 +-0.3808365 +-0.0604822 +-0.6922979 +-0.0812242 +0.0399198 +-0.0600172 +0.0467748 +-0.0442808 +0.0123731 +0.0360786 +0.0399103 +-0.7726055 +0.1396140 +0.4002925 +0.3075750 +-0.1561397 +0.4405016 +-0.0114453 +-0.3461356 +0.8555699 +0.0626076 +-0.0192064 +0.2729844 +-1.0507809 +0.2779522 +0.0687338 +-0.3477984 +0.1662207 +0.8445267 +-0.0463217 +0.4189113 +-0.9390706 +-0.0203188 +-0.1200564 +0.0226041 +0.1696569 +0.1107403 +0.3973965 +-0.0507052 +-0.0034352 +0.2814111 +-2.0373840 +0.0331449 +-0.2563670 +-0.0774897 +-0.0276223 +0.5286238 +-0.3287178 +0.0094798 +0.1167211 +-0.3344882 +0.0748210 +0.0073864 +0.2270324 +-0.1329063 +0.0657733 +-0.2620256 +0.1272652 +2.6806898 +0.1451955 +-0.3688619 +-0.0573825 +-0.0026473 +-1.4063979 +0.0915106 +0.0988936 +0.0024541 +0.1005162 +0.0805478 +0.0545004 +-0.0728321 +-0.0241168 +-0.2567847 +-0.2294762 +-0.1204137 +-0.1006888 +0.0086139 +0.0208463 +0.2052723 +-0.0106409 +0.0862121 +-0.0558647 +-1.0205413 +0.1075240 +0.0013056 +-0.1033889 +0.0264373 +-0.9869907 +0.0906636 +1.0945570 +-0.8835344 +0.0562170 +0.5911226 +-1.2198995 +1.0414659 +0.0284790 +0.1317847 +0.0196796 +-0.1169835 +1.0705899 +-2.4347315 +-0.4600926 +1.1623714 +0.1153464 +0.0636273 +0.0334461 +-2.3497996 +0.8897749 +-1.4781584 +1.2471260 +0.8867357 +0.2396651 +0.0594848 +-0.2209702 +-0.0342018 +0.3802297 +-0.0611123 +-0.1112461 +0.1577522 +-3.2322116 +-3.3970857 +-2.5904546 +1.3487362 +-5.9504533 +-3.1391659 +1.8067216 +-0.7993308 +-7.2456965 +-0.1568482 +1.2572027 +-1.4401498 +-4.0011482 +-0.1910071 +-5.6584945 +-0.1203423 +-5.8549085 +-1.4896387 +0.4756433 +-6.7924542 +7.7412653 +-8.1289482 +-48.9256477 +-6.3458443 +5.4045677 +-0.2998142 +-1.3212640 +2.2055082 +2.1687455 +-2.4037228 +3.0430715 +-30.4192333 +0.7205519 +-7.4651303 +-30.2548523 +-3.1645453 +-14.4408894 +-2.1001110 +-2.6349952 +1.0409087 +13.5214796 +-6.2673659 +0.5296541 +-3.5309846 +0.4971373 +1.3223007 +-3.2411871 +-1.2751986 +-4.0202475 +0.6185231 +1.9374349 +-0.0164132 +-0.8919114 +3.0520551 +-26.0942879 +5.2621427 +-3.3140781 +0.7132355 +-3.0803657 +-1.9250480 +-10.8665295 +6.4131942 +-1.3950034 +0.9393018 +2.8172545 +-0.5398058 +-2.6951327 +0.7859102 +1.4477035 +-10.5705709 +-18.5408764 +-4.9044237 +5.5773854 +-4.4552469 +-30.5297241 +-2.0850534 +-9.9983397 +-6.8487859 +-7.3156481 +-0.4426461 +-6.0889754 +-5.3855448 +-0.8959418 +-8.6352024 +0.9256810 +0.9409679 +-1.3378013 +-1.0801611 +1.7652578 +1.4025630 +-6.2079029 +-5.2619028 +-1.5668679 +0.4583636 +1.2826126 +-1.0220591 +1.6147118 +-7.2312889 +-0.1504498 +15.2977791 +-6.9285183 +1.5020087 +-2.7795529 +-4.1656466 +3.2019677 +-4.0279698 +2.0419314 +-2.3618057 +1.2594402 +-1.3930367 +-1.4888012 +-1.9573524 +-5.2215033 +-4.9446783 +-6.7220607 +-20.3374920 +2.5322552 +3.1068349 +-0.2105089 +17.1908169 +-1.4786845 +-3.1754026 +-6.6440439 +-1.4124051 +-2.0243771 +-18.3043995 +-2.8324366 +2.7155826 +-1.6222187 +-2.9387450 +0.6856448 +-1.6945328 +2.4372234 +-4.7383180 +2.4229913 +0.3950617 +-2.4376616 +-3.5219579 +1.5188578 +-1.8561926 +-0.2492484 +-0.9473314 +-5.9489059 +5.2853098 +-0.7109069 +-0.0157063 +-0.4613958 +1.1450322 +-7.3089786 +0.1853954 +14.6840630 +-5.5545049 +-3.0968945 +-0.7716819 +0.8763232 +3.0894682 +5.3094249 +-0.3870368 +8.6047468 +15.7315598 +1.3255874 +-2.1042223 +-14.5519381 +5.9867616 +4.3786263 +-2.0013292 +-1.4595822 +0.5171161 +-1.0090964 +-1.7960491 +-0.8895781 +0.9326519 +-1.0980855 +2.1702888 +-10.2663660 +-4.5459118 +1.8008790 +-0.4540470 +1.4611557 +5.9754009 +1.5395572 +0.9517490 +-5.0888324 +-4.5710201 +-4.0871778 +3.1449528 +0.0142460 +-3.1030557 +0.4038712 +-0.1465476 +1.0190895 +-2.3042669 +0.6631762 +-2.2369564 +-3.8459725 +0.7990128 +-3.9721575 +-0.8389199 +-18.1372585 +-0.8478070 +11.5389404 +-2.7383270 +-18.5927620 +-0.2438231 +-1.9326971 +-0.2424866 +-3.0955379 +2.8918726 +0.3585581 +-10.8956995 +-1.7734140 +-7.4830599 +2.0871544 +-3.3265150 +-1.1180468 +-2.9659054 +-0.1370085 +0.4657961 +0.3262459 +-7.2496514 +0.2696460 +0.0264098 +-2.0519950 +-1.0636863 +2.4031641 +0.3241766 +0.2739710 +-12.3238392 +-0.2383248 +1.9826796 +-2.2914941 +-9.9471731 +-1.4447718 +4.0974603 +-0.6826478 +3.4126022 +1.8454459 +-1.8290281 +-2.1784034 +-7.2271910 +-2.4015536 +3.8292482 +-7.9308100 +7.4359298 +3.4935303 +7.2328625 +-0.2867791 +-5.7698231 +-0.4683338 +3.6335580 +-4.9119077 +-3.3912687 +-3.1146934 +-2.3998766 +-2.3738582 +-4.5313406 +-0.1249077 +-2.5766571 +-0.2633151 +0.5827929 +-0.0102638 +-0.4675201 +1.1197441 +-0.2634287 +-0.9810774 +2.1178784 +0.0240199 +1.7966956 +0.4486583 +0.6958126 +-0.5592176 +0.7143757 +-0.2308202 +-0.2057951 +-0.1695755 +-0.1884696 +0.1524629 +0.4318085 +-0.7340412 +-0.3757761 +-0.2018428 +1.3456241 +0.3472595 +2.2938006 +3.4002869 +0.3547116 +1.3902000 +4.9148612 +1.2608790 +-0.4909512 +0.2261951 +-1.5480191 +-3.2674530 +-1.2904224 +0.9380157 +3.7049270 +-2.8954718 +-0.2636299 +-0.2491706 +0.0429993 +-1.9147912 +-1.1243407 +-4.4608679 +-0.5711940 +0.2909312 +-0.2874681 +-2.2197828 +-0.1868961 +-0.1213937 +-0.3738415 +-0.1248211 +0.0977516 +0.8562511 +0.5393513 +1.3627771 +-1.8543321 +-0.2820470 +-2.0323913 +0.2916196 +-0.2940783 +-0.2373090 +-2.5389802 +-3.2904749 +0.1572880 +-0.3732952 +0.6292738 +-2.1845279 +0.1350910 +1.9240508 +0.3715656 +-3.1876569 +0.1646337 +-0.6088069 +0.2006577 +-0.0150909 +-0.4441674 +0.4740311 +-1.7266496 +0.0180674 +-0.6572212 +0.4401225 +-0.1878517 +-0.2524693 +-0.4355834 +-0.1396877 +0.0550074 +-0.1925609 +-0.2516395 +0.0898888 +0.0846063 +-0.3928412 +0.0337045 +0.0820120 +-0.5271019 +3.5371125 +-2.5813932 +0.9434291 +-0.2566399 +2.3882284 +-0.3222601 +0.1242741 +0.8639933 +0.8624133 +0.8548640 +0.6617858 +-1.0582361 +-0.8082041 +0.2144688 +1.0025942 +0.1443437 +1.5017653 +-5.5424042 +2.3278840 +-1.6295186 +2.1870461 +2.4686630 +-1.3312199 +0.0451411 +-0.7905246 +-0.1877859 +0.0209118 +-0.2523426 +0.6146771 +0.2999980 +-0.0107269 +0.0981331 +-0.0321946 +0.0270462 +-0.0259292 +-0.0118601 +0.4682398 +-0.0383226 +-0.0836610 +-0.2209502 +0.0371973 +0.6564331 +0.0847704 +0.0817372 +0.0045585 +-0.2173324 +-0.0548910 +0.0202611 +-0.0136947 +-0.0044441 +-0.3063887 +0.0004424 +-2.0280807 +0.0349874 +0.0953196 +0.1606619 +0.0135715 +0.1847503 +0.2833286 +-0.0201945 +0.2586319 +3.8393552 +-0.1301654 +0.0726724 +0.1022688 +-0.2124913 +-0.0439796 +0.2836218 +0.0740972 +0.4565484 +-0.1461185 +-0.0713599 +-0.1248173 +-0.0218281 +0.0443511 +-0.3200964 +0.5830702 +-0.1174910 +0.0165006 +0.0951628 +0.2610878 +0.0203642 +0.0181004 +-0.0179711 +-0.0714640 +0.0004931 +0.1609273 +0.0868199 +-0.0044473 +-0.1663203 +-0.0093576 +0.0002889 +-0.0003348 +0.1787268 +0.0107497 +-0.5786875 +-0.2642264 +-0.2903223 +-0.0636490 +0.1124149 +0.0149458 +0.0535091 +0.3443199 +0.0642157 +0.0327608 +0.0799331 +0.0189601 +0.0229411 +-0.0084383 +-0.0084653 +0.0181651 +-0.0979015 +-0.0109543 +-0.0210922 +-0.0274706 +0.0481488 +0.1441308 +-0.1403372 +-0.0644397 +-0.0084871 +-0.0520606 +0.0716123 +-0.0008158 +-0.0359933 +0.0032231 +0.0351632 +0.9699090 +-0.0734550 +0.4568501 +-0.3387708 +0.0567462 +-0.6990073 +-0.0033069 +0.0052053 +0.0536267 +0.0292696 +0.0864594 +0.1064844 +-0.2481527 +0.9073180 +-0.1180353 +0.4786535 +0.1217053 +0.0202913 +0.0953674 +-2.1578226 +0.6153037 +0.7806525 +0.4316314 +0.1701435 +-0.1372688 +-0.0305231 +0.0884112 +-0.2008203 +-0.1564242 +-0.0254393 +0.0483122 +0.0933959 +-5.2375908 +-2.8861392 +-4.9702172 +3.0911498 +-4.8089070 +0.8603559 +1.4895865 +-3.0678844 +-10.7631989 +-2.0127139 +4.2576475 +-1.4485056 +-5.7504830 +-2.8125823 +-8.6889753 +-4.1925473 +-2.0287800 +-2.2261019 +0.4933807 +-4.7819204 +6.0728383 +-3.7807477 +-52.2121735 +-3.4426169 +-7.3699083 +0.6957636 +-1.7006308 +2.0694838 +2.1687489 +-2.3738508 +2.3179448 +-33.6088066 +0.8893262 +-8.7561111 +-24.3579445 +-1.8300079 +-18.8091335 +-5.6021290 +-3.1019783 +0.4304942 +16.2661629 +-4.6572194 +-0.1084687 +-2.7561791 +-0.5319909 +0.4164639 +-4.4203663 +-2.5664916 +-0.7007174 +0.7009003 +3.0212946 +-0.3302842 +1.5551152 +-7.1257229 +-20.1555004 +7.0335240 +-4.3428879 +5.7828727 +-1.2213671 +-1.3351549 +-14.3628998 +3.9249828 +-5.6322951 +1.6120391 +0.8727090 +-0.9617823 +-3.4990449 +0.7130517 +-1.2264053 +-6.4612122 +-17.6097355 +0.2039550 +1.0608712 +-3.3463531 +-25.8502560 +0.9387711 +-2.0807710 +-0.1268839 +-8.6496601 +-3.3355134 +-0.3625455 +-5.0883017 +-0.6798175 +-7.8792114 +-0.1746651 +0.9263111 +-6.1660709 +-1.3615183 +4.4886580 +-6.3465915 +-5.0744944 +-7.7954612 +4.2269893 +1.2718039 +-4.4697046 +0.1234098 +0.7792508 +-10.0499277 +-0.4600905 +20.7610798 +2.6482852 +1.2036600 +-4.0227170 +-3.7673388 +0.4897391 +-2.9045994 +3.1201835 +-6.3035259 +-0.2233889 +-1.3261135 +-3.0561452 +-1.6230297 +-2.8727036 +-0.4967648 +-6.7620716 +-24.4891319 +1.6710927 +3.1537282 +0.1687525 +15.2972145 +-3.7971756 +-2.8764365 +-3.0013595 +-1.4212106 +-11.1017361 +-11.8575954 +-3.9120784 +6.3304982 +-0.2576952 +-0.1004794 +0.7596916 +-0.2244040 +-0.1093295 +-1.0044523 +2.5794556 +-0.0480789 +-3.9350836 +1.6208833 +-1.4639589 +-1.4766074 +-0.4823118 +0.9388589 +-3.4583187 +19.6713448 +-0.1398788 +-0.4345915 +-0.3477088 +-0.7815750 +-4.2033458 +1.3564619 +6.9951673 +-0.8844977 +-1.0055721 +1.2832747 +-0.8420368 +1.0024925 +6.1021075 +-0.9046868 +4.9563131 +8.3111324 +4.4264917 +-1.5287484 +-7.4091620 +-4.5008202 +-1.4930451 +2.4946940 +0.0657190 +2.4631624 +-2.9398944 +-0.6289389 +-0.3264770 +-0.1663569 +-0.8580079 +-2.7419810 +-4.4353380 +-2.7757850 +-1.2538058 +3.4348979 +4.7621636 +5.4856300 +-4.0404673 +1.4252834 +-5.0022182 +0.0431406 +-1.1380365 +-1.4838300 +1.6553702 +1.9769377 +-0.4511542 +-5.6317863 +0.1712033 +-5.0610218 +0.0519625 +-3.4699233 +-4.2822518 +1.9366316 +-1.9791768 +-0.3691685 +-10.4390717 +-0.7766237 +1.7874916 +1.3511523 +-9.3704138 +0.1502425 +-0.0733551 +0.2103251 +-0.2108355 +0.0173496 +1.6378195 +-6.9869924 +-0.9890974 +-2.7488704 +5.5454760 +-0.3580631 +1.7174535 +-3.3734705 +-0.9892028 +0.9566746 +-0.2759559 +10.3206205 +1.3044815 +-0.4081397 +-0.7769527 +1.5857191 +1.6240749 +0.5544574 +1.1013175 +1.1237600 +-0.5635561 +2.0999367 +-2.1990690 +-3.4324589 +0.1665262 +-1.6415998 +2.6947622 +1.4472625 +-1.7152395 +-1.6368082 +-1.9334615 +-4.8677855 +-1.7288681 +1.1588154 +-5.2181830 +-2.0040576 +3.0353270 +0.8119161 +0.2781351 +-3.7273526 +-0.8049981 +-2.3875618 +-4.2524037 +-0.6808268 +-7.4182215 +-2.0896461 +-2.9412708 +1.5747083 +-0.1502217 +0.5276759 +0.0082601 +0.3080880 +-0.0665850 +0.0350966 +1.0862949 +-0.3567851 +-1.5598443 +0.7014297 +1.0979054 +0.1780576 +-0.7473863 +-0.1367017 +-0.5749516 +2.3684218 +-0.1864838 +-0.1726867 +-0.1607224 +-0.2188067 +0.6594474 +-0.2417127 +0.4631378 +-0.4521298 +-2.4311924 +1.6233894 +0.1777303 +0.7581421 +-0.4648223 +0.5833182 +-2.2030432 +3.1719539 +0.2667055 +2.6940503 +0.3712637 +0.9660332 +0.0750631 +0.7926187 +1.2155075 +-0.2323462 +0.4239601 +-0.4868425 +-1.6429570 +0.1224148 +2.1972160 +-0.6723076 +-2.5241499 +0.1434933 +-0.8972561 +1.3789172 +6.6877494 +-0.4687901 +-0.1089353 +-0.3211627 +0.1841050 +0.3243982 +-1.2793636 +-0.5888627 +-0.2815343 +2.1836197 +-0.0752629 +-1.4004849 +-0.2389414 +0.1256529 +-0.3752684 +-5.5496874 +-5.9528294 +-1.6063184 +-0.4406793 +0.6151813 +-2.9939811 +-0.2636888 +-1.9964770 +-0.2928286 +-3.9683876 +0.3439159 +-0.0786297 +-0.0215480 +0.0062624 +-0.0726835 +1.0348228 +-3.6308336 +-0.3796632 +0.3726776 +-0.2125787 +-0.0386692 +0.2277291 +-3.7829764 +-0.1550695 +-0.2310608 +-0.1236004 +2.6234856 +0.1986173 +0.1918195 +0.1841764 +-0.1581630 +-1.8326945 +0.3378488 +0.0961512 +-2.5388832 +0.8020549 +-0.4446724 +-4.5030146 +0.8623773 +-0.5121753 +0.1654362 +-0.0862902 +-0.1832581 +-0.2505657 +2.5836780 +-1.2727581 +1.0478178 +-0.7600110 +0.0164463 +1.5554070 +-9.6063070 +-1.6384413 +3.1083541 +2.1726601 +-0.7476462 +-1.6742749 +-0.2249296 +-0.2008566 +0.5749042 +-2.6787570 +-0.3384526 +0.3623639 +0.4513468 +-0.0122557 +-0.0573512 +-0.0683135 +-0.0334900 +-0.0601799 +0.0534098 +0.7491255 +-0.0262290 +-0.0623313 +0.2120880 +-0.0696942 +0.7820339 +-0.0673136 +-0.0861434 +-0.0661329 +0.0579689 +0.0257090 +0.0101797 +-0.0071019 +-0.0872075 +0.1339272 +-0.0519342 +-0.2864373 +-0.0610206 +0.1324099 +0.2261655 +0.0768708 +0.4359205 +1.6366464 +0.0285848 +0.1627170 +0.7066023 +-0.0266788 +-0.1152651 +0.0992618 +0.1129509 +0.1171538 +-0.1227058 +0.2432617 +-0.0626220 +0.2729228 +-0.0653202 +-0.1501485 +-0.0289082 +0.2187806 +-0.0945949 +-0.2524701 +-0.0796201 +-0.0502542 +0.2093131 +0.1028645 +0.0000423 +0.0769065 +-0.1176412 +0.0827132 +-0.0651428 +0.1422089 +-0.0278778 +-0.0348578 +0.2973427 +-0.0294428 +-0.1032725 +-0.0359135 +0.2446783 +-0.0796275 +-0.1893528 +-0.1559840 +0.8140917 +-0.1341283 +0.1299631 +0.1785766 +-0.0445511 +0.5183620 +-0.0934166 +0.2537285 +0.0513431 +-0.0469167 +-0.0465138 +-0.0403468 +0.0178513 +0.1292710 +-0.2765153 +-0.0284857 +0.1058964 +-0.0758154 +-0.0238170 +-0.1263215 +-0.1813064 +0.0337478 +-0.0115155 +0.0129960 +-0.2342513 +-0.0725962 +0.0393330 +0.0528087 +-0.0823852 +0.3095395 +-0.0751051 +0.2944116 +0.2779206 +0.1772929 +-0.3532604 +-0.1792663 +-0.2623303 +-0.0956494 +0.0462648 +-0.0668880 +-0.0983899 +0.2623432 +1.2518077 +-0.0956270 +1.6918572 +-0.1267214 +-0.0150874 +0.2922495 +0.0375747 +-0.2201172 +0.6162744 +-0.2202619 +-0.1382442 +-0.1990818 +-0.2463420 +-0.0400512 +-0.0830351 +0.5095297 +0.0044555 +0.1626091 +-0.0426764 +-5.7329264 +1.3535995 +0.1960057 +0.4899553 +2.0128992 +-6.5118866 +1.7077829 +1.3146244 +-6.2618151 +-2.8339674 +-1.2005950 +-1.0949633 +1.0552971 +1.6661378 +-1.1805359 +10.9729795 +-1.1657708 +-1.1449385 +-0.4677442 +-1.2508072 +-0.1321033 +-1.8100245 +-14.9621458 +4.5868335 +6.6565690 +2.5990324 +1.2157607 +-0.2224818 +1.6775117 +0.8219866 +1.6660736 +-13.7316771 +0.4021138 +-10.2091637 +-18.8992634 +2.6156769 +-13.2226267 +-4.7358680 +-4.4244547 +0.8791288 +5.1384530 +-1.4779580 +-2.4485211 +0.1991626 +-0.1194479 +0.1259557 +-6.7490907 +-5.0191593 +-0.2520251 +-0.4743612 +0.0791776 +1.2979100 +-0.4475564 +-2.9920766 +-8.0729876 +1.0392332 +-10.1325703 +5.4487405 +1.8187975 +-2.6033146 +-1.8717504 +-3.0400288 +-2.0798771 +3.6901770 +0.9064040 +-1.3790972 +-5.4938660 +0.8302031 +-1.7593707 +-6.5600815 +-16.3083439 +5.3070936 +19.0100155 +-0.0412090 +-20.3634033 +0.5008726 +2.8102937 +-0.7792552 +-7.3281064 +-0.2821772 +-0.0385069 +-6.7319789 +-3.2460124 +-8.5225935 +-3.5442595 +0.9083712 +-3.2080817 +-3.2184629 +-1.2642151 +-1.7634363 +-1.1981586 +2.7848268 +-0.8830817 +3.0232468 +1.1746985 +-0.6352356 +0.0683830 +1.8379709 +-0.2551870 +23.6681347 +-1.3227406 +1.4658194 +-6.3335352 +-10.6421480 +0.5526839 +4.1167159 +2.7414284 +-10.2336807 +-2.6835997 +-0.3714256 +-4.8314829 +-2.4037004 +-2.5860145 +1.3206044 +-4.8944120 +-21.6338749 +0.8860834 +4.7607880 +-0.7686963 +9.1745920 +-1.0152423 +-2.2136157 +-1.3390321 +-2.8285475 +-15.7539320 +-1.3619487 +-2.5235875 +-3.5140800 +-2.2402289 +-1.0843099 +-0.6020510 +0.0990157 +0.4397512 +-0.7102028 +1.8375094 +-0.3441994 +-3.0294826 +0.8233774 +-0.5492586 +0.2384323 +0.7927989 +0.3301882 +-2.2628272 +7.2486572 +-0.3626696 +-0.3632125 +-0.3970028 +0.7028610 +-3.7728906 +-0.0044664 +2.4446230 +0.5887486 +0.0920285 +3.7837541 +0.7200469 +-0.8479402 +4.0336246 +1.6565328 +3.2104070 +5.1139822 +4.6660547 +-1.5146648 +-4.1387324 +-2.4671991 +-2.3622904 +0.2799580 +-3.5181580 +2.6804655 +0.3249692 +-0.6626521 +-0.4955037 +0.0043194 +-1.6435297 +0.4646824 +-2.5994678 +-0.6044612 +-0.0795785 +3.5680115 +-2.2423663 +2.7953010 +-6.1297483 +-1.2283367 +-3.2126348 +3.3164525 +-1.0372813 +0.3936899 +0.0796308 +0.3695662 +-0.0129723 +-8.0949278 +-0.0425152 +-2.3999166 +0.0820303 +-4.5711164 +-2.9411418 +-0.6706640 +-1.9066042 +-1.1449314 +-5.7779198 +0.4134691 +7.9780049 +-0.2187235 +-1.5347018 +0.2099342 +-0.5249209 +-0.2208030 +-0.7909708 +-0.2090906 +-1.0524899 +-7.3160205 +-0.3281332 +-1.0414371 +-0.2202145 +0.0533220 +0.2997119 +-4.4198422 +-0.1910419 +-0.4180379 +-0.4441088 +4.1234450 +0.3880723 +0.2291138 +-0.3816346 +0.3673771 +0.7933039 +0.9422148 +2.3457763 +5.2395973 +0.1571903 +2.8003049 +-2.8245680 +1.8905324 +-0.9663528 +0.7836693 +-0.1492587 +4.0360713 +0.0130353 +2.7558517 +1.2759498 +1.8253499 +1.0269928 +0.0441347 +3.4405663 +-5.2562718 +-7.0566573 +12.2559614 +1.3413063 +0.1282875 +-3.4985983 +-0.9198121 +-2.2775319 +-0.3100076 +-1.9824977 +-1.2321826 +1.3098874 +0.2656158 +-0.0748615 +-0.6317893 +0.0605915 +-0.1806889 +-0.4284171 +-0.0103636 +3.4373968 +-0.1493514 +-0.2324900 +0.3017739 +-0.2828013 +0.0491752 +-0.2278127 +-0.0759252 +-0.7486235 +-1.0593313 +-0.1288147 +-0.0739560 +-0.0502977 +-0.2628570 +1.0099250 +-0.1802609 +-3.5141499 +-0.2606152 +-0.2403178 +-1.1402538 +0.2103848 +1.3841771 +-4.6200728 +0.6037201 +2.5207739 +4.6088233 +-0.0561066 +-0.0051010 +0.6800472 +-0.2913496 +0.3847526 +-0.1334768 +0.3808167 +-0.1712333 +0.4376192 +-0.4817136 +-0.5858625 +-0.1607902 +0.4497007 +-0.3606421 +-0.6390776 +-0.6513732 +-0.1120965 +-1.3510265 +5.5455728 +-0.0961502 +0.6276868 +-0.4833226 +-0.0899848 +-0.2584890 +0.3029596 +-0.1186725 +-0.1872065 +1.7201921 +-0.1419802 +-0.7873895 +-0.0409729 +5.2837806 +-0.0929442 +-0.4677009 +-0.3772097 +0.5287036 +-0.2403368 +0.4432954 +-0.0095679 +0.0267369 +0.2939082 +-0.1841248 +0.8431963 +0.0941588 +-0.2217198 +-0.1876026 +-0.1616098 +-0.1175509 +0.4802921 +-0.3855579 +-0.1774579 +0.1619803 +-0.2098476 +-0.1253478 +-1.6235878 +-0.2930399 +0.1654364 +-0.0955898 +-0.1894717 +-6.7442822 +-0.7088709 +0.0146981 +0.1148340 +-0.2422530 +-0.2449305 +-0.3414072 +-0.3139189 +1.7188839 +0.1555677 +-0.3026395 +-0.5815805 +0.7659687 +-0.1834642 +0.5640656 +0.0410555 +-1.4606092 +0.1523317 +8.9061661 +-0.2070766 +2.5101891 +-0.3809749 +0.0035136 +0.5661937 +-1.5991871 +0.3441024 +16.3940849 +-0.1822207 +-0.3368097 +-0.3887983 +-0.7161968 +-0.1268917 +-0.4526135 +-1.9534187 +-0.3586910 +1.4578992 +-0.0939247 +0.0185214 +0.1141876 +0.0228670 +0.0150831 +-0.0665795 +0.0506825 +0.8974792 +0.0196877 +-0.0496231 +0.0402681 +0.4842262 +-0.2584017 +-0.0597423 +-0.0568374 +-0.0075614 +1.5613158 +-0.0468430 +0.0387116 +0.0441440 +-0.0536164 +0.0967783 +0.0196258 +0.3061781 +-0.0346863 +-0.2642477 +1.6814703 +0.1269223 +0.1446847 +-1.6068147 +0.0410920 +-1.1299783 +-0.6786871 +0.2837283 +-0.0540909 +0.0567171 +-0.2627859 +0.0584378 +0.4984631 +-0.0037856 +-0.4862310 +-0.0184969 +-0.0225209 +-0.0137365 +0.1719105 +-0.4944912 +-1.7644603 +-0.0343032 +0.0085586 +-0.0452347 +1.5627615 +-1.4420898 +-0.0136471 +-0.1447103 +0.0302041 +-0.0078682 +-0.0181186 +0.0886795 +0.0271207 +-0.0423617 +-0.0277911 +-0.0101333 +0.0419511 +-0.0309053 +0.4107232 +0.0221982 +-0.0295099 +-0.0631366 +2.6919332 +-0.0325640 +0.2784608 +-0.0129503 +-0.0497508 +2.5174620 +-0.0485266 +0.2332572 +-0.0678309 +0.0045472 +-0.0346028 +-0.0349279 +0.0037376 +0.3889861 +-0.0865446 +0.0108298 +-0.0349181 +0.0111736 +0.0128780 +0.4089845 +-0.0380282 +-0.0461140 +-0.0663787 +-0.0091375 +0.2737458 +0.4909604 +-0.0980516 +-0.0197257 +0.0010216 +-1.5457208 +-0.0270279 +0.1548127 +0.0767604 +0.0480996 +0.7573826 +-0.0247329 +0.0280031 +-0.0354008 +-0.1413803 +0.0244872 +-0.0139036 +0.1487667 +8.4015808 +-0.0097641 +0.8832787 +-0.0885881 +-0.0502487 +0.2015598 +0.4691496 +-0.2658325 +-0.2370696 +-0.7151536 +-0.0828274 +-0.0373928 +-0.0219146 +-0.3469535 +-0.0633927 +-3.6046190 +0.0009027 +-0.2890187 +-0.0991686 +-2.9437621 +-0.8258052 +-1.5676882 +0.4180974 +0.2966196 +-2.2979460 +0.9644591 +-0.2142506 +1.4781343 +-0.4243855 +-3.8741450 +-1.8305459 +1.5039244 +-0.2007972 +-1.8397371 +8.3384485 +-0.2623054 +-0.2515377 +-0.2635742 +7.4093747 +-3.0851228 +0.6311681 +8.6755133 +1.1290051 +-0.1226220 +-0.0392827 +-0.5244292 +1.2454519 +10.9369993 +3.0387053 +5.1933446 +6.5600567 +0.8458862 +-3.6366742 +-17.0279064 +-2.4613311 +-1.3558633 +1.6608582 +-2.2554233 +3.4660776 +0.5931596 +-0.3655145 +1.2014469 +0.6608077 +-1.3031784 +1.2900714 +-4.9033365 +-0.9001068 +-0.9209139 +1.2787861 +3.5205250 +1.4904045 +11.9978161 +-1.3147351 +-4.4449821 +2.3661242 +-3.6181855 +-0.2036301 +-0.6868568 +0.3258563 +4.2389169 +-6.9967065 +0.4781048 +4.1123157 +-0.4619678 +-2.4482448 +-2.2063284 +1.1951839 +-2.0764344 +-0.9103580 +-4.4272833 +1.0408663 +-2.6267445 +0.1154196 +-7.2420478 +0.5312340 +1.1016489 +4.5792732 +2.7862182 +0.2041633 +-1.6632789 +-3.0586865 +-0.0723179 +-0.8760569 +0.4344079 +0.7147062 +-2.2809865 +-4.6411414 +-0.4803234 +-0.0684522 +-0.3105997 +3.9843969 +-0.6113014 +-0.4684303 +-0.4432026 +-2.0241287 +1.0898355 +6.5424151 +0.9965019 +8.4926643 +-0.7866200 +2.6549549 +4.2077012 +-2.3882639 +-0.5874478 +-0.3825210 +-0.5651182 +-0.4807315 +-0.4543911 +1.4288938 +0.0007269 +2.2346575 +-3.0223196 +-0.3042166 +-4.1707783 +-2.6627555 +-1.8113387 +5.0089931 +-0.2291697 +2.7023199 +-1.2841107 +-1.5405546 +1.9925201 +-1.9837301 +-12.1031284 +0.9191225 +-2.4437919 +0.2736303 +-0.1316282 +-2.0411935 +0.3711395 +0.2608912 +-0.6700687 +-0.0728770 +4.5118098 +-0.4164869 +0.3192448 +0.1563302 +5.6412678 +-0.7404453 +1.5671353 +-0.0126142 +-0.9156610 +9.8445902 +-0.1048976 +-0.0635343 +-0.0971195 +-0.4236564 +-2.3803687 +0.0899614 +-5.5635524 +-0.4910661 +2.0003018 +-2.9573479 +0.3054476 +1.7511545 +-3.9623966 +0.4986256 +3.1410770 +4.8229795 +-0.5271758 +2.9154360 +-0.9499019 +0.6190221 +3.7260811 +0.4715143 +0.1326838 +0.9274328 +1.3190634 +-0.4845545 +-1.4709233 +-0.1342633 +-2.0720878 +-1.5846753 +-0.7617089 +-0.5736744 +-0.2623895 +1.3072644 +6.5944920 +-0.2660395 +-6.7463470 +-0.6843635 +-0.8780469 +-0.1081212 +-0.0264704 +-0.0644531 +-0.1826907 +-0.5674591 +-0.3750592 +-1.4536041 +0.0925991 +-0.6527364 +-0.0094537 +-2.9160111 +-0.9577935 +1.9736567 +0.1559133 +0.1406820 +-0.8925554 +-0.0641396 +2.5672522 +-0.3192873 +-12.1069756 +0.2592662 +-0.2731000 +0.0836613 +-0.7392156 +0.0044728 +-0.4712690 +-0.3302216 +-0.4472059 +-0.0547802 +0.1779952 +0.0203625 +4.6534729 +-0.2523909 +0.2750027 +-0.1264364 +-0.2359166 +1.8058962 +0.2347652 +-0.0381631 +0.3791784 +0.0803383 +0.4257610 +0.0811259 +-1.2850361 +3.9582775 +0.4213125 +-0.3913043 +0.5599412 +1.2506834 +-0.2393339 +-1.9304688 +0.1373983 +0.0521999 +0.8914339 +7.9276237 +-0.2014821 +8.6479340 +-0.2328795 +0.0486920 +-0.5455945 +2.8066394 +0.0589685 +14.3217993 +-0.5777289 +2.4780023 +-0.4937586 +-1.1461198 +-0.5228316 +-0.7749129 +-9.1591663 +-0.4620694 +-0.4246069 +0.2971985 +-0.3561531 +-1.3686264 +-0.0450859 +0.0965734 +-0.4341270 +0.1549716 +0.7923570 +-0.2280920 +-0.2735922 +0.1807462 +4.4434919 +0.5692052 +-0.1513635 +-0.0712561 +-0.2453779 +5.4743237 +-0.0709186 +-0.0820962 +-0.0161752 +-0.2588194 +0.9783770 +-0.1173083 +0.2649139 +-0.3065661 +4.5140734 +-2.0161767 +0.0273738 +1.7700520 +-5.2348213 +1.5688574 +2.4869695 +-0.0872884 +1.3989154 +-0.5452262 +0.5035691 +0.9401807 +0.2923341 +-0.9935617 +0.5355800 +-0.2714604 +0.3371569 +-0.0952592 +-1.1470122 +0.0068729 +0.4738999 +-0.2146496 +-1.0511984 +-0.3781667 +-0.1981395 +-0.3497308 +6.0903869 +0.1585640 +-1.5398049 +-0.2694964 +0.0094444 +-0.1960396 +0.5483417 +-0.1260695 +-0.1390775 +-0.1753748 +-0.2435279 +-0.4127706 +-0.1228177 +-2.0017788 +-0.1746895 +-1.3417779 +-0.9836789 +0.7965214 +-0.2383221 +1.9193991 +0.4870440 +-0.0712252 +-1.4634405 +-0.1960739 +2.5395505 +0.0317615 +-0.1971333 +-0.2404716 +0.0617052 +-0.0442961 +1.5890179 +-0.7763902 +-0.2106365 +0.0347269 +-0.1672146 +-0.1278308 +0.5996057 +-0.4975534 +-0.0523659 +-0.0975537 +-0.1790493 +-3.5625501 +-0.6835815 +-0.0892841 +-0.0185950 +-0.1769083 +-2.5416441 +-0.3368521 +0.8860483 +1.6225933 +0.3234122 +-0.7535644 +-0.4183370 +0.1401421 +-0.1255782 +0.0596241 +-0.2416939 +-1.1845893 +0.4277512 +9.9521303 +-0.3554896 +2.5991335 +-1.1399573 +-0.0300027 +0.7271241 +3.8080461 +0.4080400 +16.4975796 +-0.8770337 +-0.2570585 +-0.3768653 +-1.1138510 +-2.0378363 +-0.6681331 +-0.9379542 +-0.0895563 +1.5484184 +-0.0615296 +-0.0225544 +-0.0286470 +0.0211852 +0.0127758 +-0.0335603 +-0.0386669 +-1.0190660 +-0.0262637 +0.0027641 +-0.0567584 +-0.2155286 +-0.4920657 +-0.0755084 +0.0188329 +0.0112603 +-0.2636721 +-0.0077508 +0.0028424 +-0.0210340 +0.0205013 +0.2010670 +-0.0299337 +0.2739488 +-0.0526390 +2.0392592 +-1.1186676 +0.1296530 +-0.0007939 +-0.5979991 +0.1595827 +-0.8700871 +0.4294785 +1.5056974 +-0.0092424 +0.0542575 +0.0028361 +-0.0026908 +0.1529933 +0.0098332 +0.2756010 +-0.1532247 +0.0040423 +-0.0351908 +-0.0885927 +-0.6119391 +0.2135462 +-0.0593743 +-0.0128680 +-0.0627047 +0.5459074 +1.2785765 +-0.0149321 +0.0695518 +-0.0215248 +-0.0120250 +-0.0105479 +0.0303696 +-0.0082679 +0.0141292 +0.8310845 +-0.0506027 +0.0099798 +-0.0210767 +-1.2902638 +0.0319132 +0.0067534 +-0.0312876 +-0.3189922 +0.0317610 +0.3560936 +-0.0181680 +-0.0039734 +-2.1302531 +0.0011139 +0.1939042 +0.0343520 +0.0011239 +-0.0381428 +0.0027111 +-0.0293923 +0.5112433 +-0.0356475 +-0.0533330 +-0.0758003 +-0.0341119 +-0.0087197 +0.1021186 +0.0271860 +-0.0475452 +-0.0448162 +0.0264464 +-0.1123514 +0.0313216 +-0.0542534 +0.0210533 +0.0322888 +-0.1961697 +-0.0130860 +0.0931583 +0.1354744 +0.0570037 +-0.0788242 +0.0557732 +-0.0411116 +-0.0019649 +0.0891902 +-0.0250626 +0.0365929 +-0.0136311 +5.1266747 +0.0471283 +-3.7005289 +-0.0216123 +-0.0333429 +0.0365926 +-0.5304936 +0.4637747 +1.5087703 +-0.1257123 +-0.0133588 +0.0463485 +0.0135183 +-0.5552767 +-0.0218324 +0.0841444 +0.0081841 +0.0387794 +0.0244219 +-1.7662222 +-4.0642099 +-5.0071869 +1.0570664 +-2.4474123 +3.2620227 +-1.4284297 +1.6389083 +-1.8892517 +-2.3382273 +3.0713296 +-2.8599193 +-2.4036407 +0.8509195 +-0.9183984 +3.9632301 +22.6708584 +2.0260828 +0.1678346 +-5.6036096 +11.5450716 +-0.0269610 +-10.0163536 +1.2395284 +-2.5963879 +-2.8134177 +6.3749819 +-0.4486980 +-11.2945318 +-25.6046295 +-1.2879261 +-0.7000679 +-0.5991331 +0.8031512 +-5.3191018 +-1.6146562 +-5.6463943 +-0.2643670 +1.0937226 +6.6340270 +3.2451303 +-1.3335922 +6.0047836 +0.2292063 +-6.6123896 +1.8759540 +-0.7859423 +-2.3229878 +1.9571521 +7.8606019 +-1.8348391 +-1.8335261 +-1.5249568 +2.7508729 +-3.2799838 +1.0823357 +-1.1092811 +6.2417998 +-0.9035324 +-1.1830444 +-17.2924995 +-9.3259678 +2.2425065 +-2.5308437 +2.3820596 +2.9204485 +-0.0415543 +2.2388554 +1.8055577 +5.4430146 +-9.5986280 +2.8590286 +-0.7471439 +-3.0248709 +-1.6057730 +1.4520628 +-2.0081899 +-4.9228439 +-17.1018887 +2.6465394 +-4.1555567 +-0.6473525 +2.5304940 +-5.9965496 +1.3087283 +5.1149931 +-1.8436958 +0.4474337 +-11.6647663 +1.2565196 +-2.0817950 +-1.8693877 +3.0951602 +1.8141270 +2.3602107 +8.0201674 +2.2103794 +1.3854973 +-1.4437466 +-3.5456841 +-5.9447069 +5.4629583 +-0.2266517 +-2.1484208 +1.3430508 +0.3197209 +-4.9037933 +0.4331827 +2.6700461 +-3.7586684 +0.5693695 +-0.7024121 +4.9541531 +2.3558621 +-2.5477264 +-17.9454479 +11.5686626 +-1.1000177 +-0.8136791 +4.4878044 +-2.1263800 +-2.4373493 +-0.6759446 +4.2771955 +-1.4137613 +-6.6116548 +-5.5411315 +-1.2559549 +-2.1165552 +-6.9338326 +-4.7467656 +0.7060584 +8.1717033 +-1.6712912 +-3.9023919 +1.8405881 +-2.2706199 +-2.1762512 +4.0124578 +-3.5884759 +-5.4785166 +-5.2242913 +-1.6744602 +1.5792344 +-20.9416561 +1.8635398 +-0.6050773 +-4.6954036 +7.1426435 +-8.3836546 +-9.3145819 +1.4040573 +-3.6832771 +-2.6061847 +0.4497293 +0.1238363 +-9.9989910 +1.2425938 +-2.5431409 +-7.4337158 +-2.1284008 +-2.4234073 +-2.5758724 +-1.8992406 +-7.2180910 +-1.0364410 +-1.1257386 +1.1965958 +0.3772071 +-4.5542698 +2.9986370 +0.7656724 +-2.5707188 +0.9216698 +-1.6045402 +-0.6429143 +-1.9968358 +9.0794077 +-0.9076270 +-1.6227449 +-2.6073253 +-1.0111330 +-5.2364907 +-0.8580986 +-2.9866292 +5.4048748 +2.7941456 +-2.6714988 +-9.1832495 +-8.3910227 +-4.3406119 +0.1070518 +3.6634912 +0.7401295 +-0.9759423 +0.8472233 +1.8806213 +-0.9862729 +-4.0373878 +6.4414668 +-1.3716892 +-9.2813931 +-2.6787682 +4.3672419 +-5.3492641 +-3.1218619 +3.0100613 +-3.5240591 +-6.9042745 +-1.5785912 +-4.8029814 +-0.7660633 +-4.1764450 +-1.2890102 +-3.7998524 +1.3042153 +-12.7508173 +1.6311809 +-3.1390028 +-2.3874028 +5.6651807 +3.1250699 +1.5486995 +6.8251114 +2.3279972 +-1.8396482 +-2.9927917 +-5.7526393 +-1.2717619 +4.2524753 +-0.7969689 +-3.0856695 +3.3221617 +-2.2044842 +10.1311731 +-1.4776403 +1.7714177 +0.5655284 +2.8710909 +-1.5478435 +4.1734610 +-0.4949091 +-0.8842567 +-12.5122023 +17.0203838 +-2.9508958 +-1.7925483 +3.4418495 +-5.2412672 +-2.6847332 +-2.3728895 +20.4245262 +14.7678337 +-8.2058611 +4.3873005 +4.5294232 +-0.1708955 +6.4682584 +-8.8541727 +5.4309473 +-0.6688756 +1.0344735 +-2.3065095 +1.8207417 +-2.3268366 +-0.0834174 +8.0900021 +-4.4695687 +-5.0215654 +-0.8355051 +-3.0187247 +2.3982010 +22.0648613 +3.5460172 +3.8776670 +-4.6721954 +0.9272070 +9.6684628 +-2.3552299 +1.3249196 +1.1779009 +-6.0780005 +8.7792940 +1.2718642 +-5.9886255 +-31.9676285 +-0.1037399 +0.6258452 +-3.0252638 +-1.8482161 +-3.2946587 +-5.9745975 +-1.5898961 +-1.2549767 +0.0588976 +0.9285979 +-0.8950540 +-5.7318826 +3.8942721 +0.6981517 +-0.3912514 +-0.5813212 +-2.3824503 +3.8485129 +3.3456194 +6.2259908 +-2.6462576 +-0.8669998 +-4.4344659 +0.8715473 +-0.5935267 +-1.2711726 +-4.6374044 +4.7909274 +-4.8569169 +-2.9022717 +-4.8286743 +-6.0487170 +1.1347252 +-2.1145904 +4.6320782 +-5.2098660 +0.0755480 +0.7889217 +3.1844659 +5.7586536 +-7.5292439 +6.0247793 +-2.4299724 +-3.6639369 +-3.4103720 +7.9486370 +-2.9392939 +1.5296267 +-16.4781094 +1.1031778 +-2.2675099 +-2.2191327 +3.6056771 +3.1569495 +-1.8351555 +4.5746698 +-1.5178941 +0.8220492 +-11.4590883 +3.3360457 +-3.9274347 +-3.0875964 +7.0846047 +2.7478492 +4.7595625 +8.8511009 +1.9282596 +-3.9060953 +-4.7695885 +-2.2012403 +-1.4196130 +3.2920525 +-1.2130738 +-3.8409479 +3.6307247 +-4.4599862 +5.8340688 +3.3853288 +2.9220645 +-4.6623840 +0.0110102 +-2.1841772 +2.2527370 +1.9600637 +2.6474867 +-13.8039312 +16.7034321 +-3.5672975 +-2.4310939 +19.0094624 +-3.5341761 +-8.1744871 +-2.7962229 +14.8352194 +-9.3462076 +-11.5774775 +0.4345464 +-3.5629649 +1.2161329 +-2.5134411 +-9.5322561 +2.0765789 +10.9858456 +-5.2551560 +-3.2758036 +-2.4536078 +-2.7287192 +-1.7443013 +5.5420766 +-5.2719250 +-3.8363984 +-3.4107111 +-3.5396097 +-0.0024560 +-27.6494904 +3.8609059 +0.6540873 +-4.4555087 +-1.5663501 +5.4885888 +-1.8818723 +-0.1959415 +-16.4518661 +-9.0729084 +-2.0649779 +2.5411816 +-5.0027194 +3.0002534 +-6.4833722 +-6.1829653 +-4.4627428 +-1.4104047 +-1.3399168 +1.4848596 +-4.1986718 +-2.3550360 +-6.1712303 +4.9361339 +-1.3924634 +-9.1454411 +2.5301347 +1.3656402 +-10.6281281 +-1.9901689 +-3.2355096 +5.2703915 +-2.0220683 +5.6664104 +-1.0431089 +-0.8672089 +-4.4934692 +-0.7600541 +-1.8096949 +-0.3602600 +-4.9323473 +5.1338410 +2.0016253 +-4.0977592 +-5.8471737 +-3.6675386 +-5.2455244 +-7.9351540 +5.7875938 +-6.1645608 +-1.2224606 +-0.5543066 +3.3030512 +8.0725832 +-1.8569767 +5.2253437 +-16.3573914 +-5.7834134 +-4.7358556 +10.2523117 +-4.7369075 +0.6548753 +6.0115027 +-3.8997610 +-3.2005596 +-3.3831789 +-10.1067905 +-0.8720360 +-4.0519691 +-0.9509301 +-2.2563057 +1.6616700 +-14.8604183 +-3.6868458 +-5.5199461 +-4.3250279 +8.8150492 +4.6961341 +4.4147491 +6.1583395 +1.4760033 +-7.7089705 +-5.9188457 +-15.5282269 +0.0379501 +3.2102880 +-1.8483863 +-4.2911534 +5.2101169 +3.9295008 +7.2824464 +2.1361914 +2.6786323 +-1.5290838 +3.2728002 +-2.9849336 +1.8156019 +-0.9756717 +3.3088837 +-3.7842543 +14.0047617 +-5.6472964 +-3.1939590 +0.4599388 +-5.3108468 +-4.7275014 +-4.4196100 +18.6996880 +14.4857683 +-9.7777987 +3.0348368 +-6.3043542 +6.1444983 +-1.9951568 +-11.4032774 +-1.9175946 +-5.7007737 +-3.7405541 +-5.3407831 +-8.5523758 +-3.5776222 +-1.0950286 +12.0741463 +-7.8321447 +-3.7454081 +0.8344638 +-5.0099859 +-0.8730492 +21.4216499 +3.8081474 +12.7479439 +-3.3783329 +-1.2566894 +0.9750347 +0.8755464 +5.7284193 +-10.5474110 +-0.7136948 +11.5601273 +2.7779696 +-0.4851323 +-34.9520493 +-3.3420017 +2.5417383 +-5.5233526 +1.7495549 +-8.4629745 +-1.7659003 +-3.8758702 +-2.6420515 +-1.0459063 +3.6220400 +3.4602041 +-3.3853197 +2.5326493 +1.7793821 +-7.8376117 +-2.9254284 +-4.0763903 +5.5758147 +6.7820673 +4.8938918 +-2.4909494 +-1.5587552 +-7.5819511 +1.6138828 +-2.2212005 +-1.5423261 +-13.5935335 +2.6220291 +-2.0286143 +-4.8825469 +-3.1906576 +-0.2119775 +-17.3363781 +-6.3430395 +5.8316584 +-4.9314542 +0.6983223 +-1.1297724 +3.6664307 +-3.3476768 +0.2848696 +-3.7097616 +0.2211912 +0.9111466 +-4.8709869 +14.6804657 +-1.5801526 +-1.8772991 +-18.0701885 +-1.5218401 +1.7166591 +-4.0972953 +-10.3324146 +-9.8678198 +-0.7918494 +2.4878848 +0.6603547 +1.0213557 +-7.5338812 +-4.3708792 +-7.1512203 +-4.1291528 +8.0325556 +1.1088998 +7.1747551 +4.5079918 +1.6661106 +-12.0445566 +-7.5842834 +-1.0672750 +1.6295674 +1.7672400 +-2.7954330 +-5.6903872 +5.0118313 +-7.5382266 +-5.3586659 +3.9076648 +1.5498501 +-5.3647490 +5.1984763 +-3.5923505 +-0.8382165 +1.2946687 +10.9668150 +0.0973753 +11.7527351 +-6.5065579 +-4.2019324 +3.8483450 +-3.2114277 +-2.2628231 +-4.7404976 +14.9423885 +-15.4275255 +-8.4198570 +7.2134261 +3.4876983 +2.7576509 +-2.0187612 +-13.4146652 +-1.2372689 +3.6485102 +-5.1875215 +-8.6747913 +-7.8715334 +-3.9717021 +-2.8813798 +4.6732330 +-11.2126999 +-2.5746818 +-1.5689600 +-4.9105382 +-2.3654604 +-29.2187977 +5.1573110 +-5.0595059 +-2.7933521 +-7.6221957 +3.3331087 +2.3335242 +-2.6355276 +-3.8299930 +-1.5348382 +-2.7606299 +5.0284042 +0.1499500 +5.3965821 +-3.3373299 +-1.3264720 +-7.1374702 +0.5634471 +2.3525980 +2.7741873 +-3.0135064 +-3.1287272 +-7.4278727 +-0.1973765 +-0.9878579 +-7.7969708 +2.1041296 +2.6257944 +-13.6298599 +-4.3492646 +-5.2147961 +-6.0581765 +3.3418918 +3.3539243 +-0.0771626 +-2.1919422 +-5.9565444 +-0.2056055 +-2.1549165 +-3.7057347 +-12.4166870 +1.3258193 +-3.9252524 +-6.5212245 +-4.2422228 +1.2852898 +-4.0082579 +-8.1644135 +5.2269154 +-7.6408596 +-1.3294997 +-3.1711287 +4.5599427 +-12.4369402 +0.0659797 +-3.4004188 +-2.9124653 +-1.9742883 +-1.7097207 +13.3461447 +-3.3259277 +-0.5158346 +8.6769171 +-5.2618575 +0.6051787 +-5.3344545 +-6.3375092 +0.5572616 +-3.1915507 +-2.2395916 +-0.2670569 +0.8106752 +-14.1751184 +-7.7289748 +-8.1443768 +-6.6905699 +11.4193554 +4.4290090 +5.9690118 +4.0305896 +0.2892665 +-11.7657471 +-7.6777978 +-3.5832202 +0.2940756 +0.8173257 +-3.1262856 +-5.3607140 +7.3211980 +7.9423776 +1.6894804 +5.2293139 +0.2649180 +-3.8642843 +2.8597224 +-4.6383028 +-0.2097632 +-2.0918121 +-1.0074449 +0.7647159 +7.6497469 +-8.5784616 +-5.0971823 +-1.7404804 +-5.1853194 +-4.1348586 +-7.4954329 +16.9340897 +14.2267141 +-7.7901912 +1.3950328 +-8.6086550 +-4.5016069 +-5.4270196 +-11.4790354 +-2.5811718 +-7.0836353 +0.9606227 +-5.9439216 +7.0754042 +-6.8400588 +-1.6571586 +14.8586445 +-7.9763889 +-4.1669054 +-0.7324411 +-6.8061590 +-2.9199042 +21.2288151 +2.9794912 +1.8817992 +-0.1850094 +-4.1894617 +2.8412144 +3.6299887 +-1.6279184 +4.1070170 +-2.4744473 +15.5572052 +3.7007773 +4.8096862 +-25.4080162 +-4.3522043 +-0.0095736 +-7.6089659 +1.8564080 +-7.9380679 +-1.5013629 +-3.1800907 +-3.6760747 +1.5404389 +4.5864496 +0.8102773 +-1.7904775 +2.8215997 +0.7195874 +-8.3545837 +-6.1543674 +-6.2235651 +6.8698368 +6.2531476 +2.5405509 +-1.6601713 +-2.0803239 +-9.0468121 +2.2982435 +-3.5849743 +-1.1667904 +-7.1595774 +4.0071039 +-19.9459419 +-6.7820826 +-0.8377301 +6.5697150 +9.9509506 +-2.8503768 +1.2713871 +-3.3292654 +1.1614845 +-3.7486746 +4.0704160 +-6.4619918 +1.2111291 +-5.2241430 +3.4431911 +2.2761376 +6.9655342 +24.7261810 +-0.8619550 +-1.6591368 +-20.0270958 +-2.6069860 +4.4627995 +-5.9779201 +-7.1788483 +-6.9718885 +-1.0197479 +0.6163404 +3.0343812 +0.3404124 +-2.3790817 +1.9501462 +-8.9577188 +-4.8169284 +6.8692541 +-6.0469456 +10.4613714 +1.6445628 +0.2026711 +-6.8757305 +-8.2307482 +-3.2298973 +5.0642276 +-0.2249359 +-4.1456265 +-8.0314293 +5.6791496 +-12.0653467 +-4.2004023 +4.3888164 +-0.3404537 +-7.5684404 +4.0966496 +-5.4317832 +-2.9340634 +1.9428791 +1.1356994 +2.7722328 +4.5175138 +-8.8319464 +-5.7369795 +-2.8548310 +-2.8746195 +-5.9623451 +-7.4481559 +11.9195032 +-17.9200020 +-4.4707327 +8.5136757 +-0.7873330 +-1.7912624 +-3.6690993 +-17.0452843 +-4.9836907 +-5.0980062 +0.2877248 +-9.0471411 +0.0503480 +-7.3697309 +-3.3794580 +-0.8046383 +-11.5567007 +3.0493834 +-2.7470877 +-6.1182861 +-3.4622138 +-28.4191017 +6.0559134 +-6.5607529 +-0.0523371 +-7.7509737 +2.7528133 +5.6308470 +-7.7022905 +3.0608737 +0.7734367 +-5.2440071 +5.0576162 +6.1859708 +8.0291109 +-5.3371992 +0.9067662 +-9.3064766 +2.0641983 +5.3421240 +-5.2713728 +-1.4800857 +-4.5647845 +-8.0660820 +-1.6859584 +-1.4040507 +-6.7840247 +2.7743962 +2.5110414 +-10.5172081 +-7.6236649 +-7.1720462 +-3.3337171 +3.5710075 +0.9699402 +0.0661309 +-0.0576257 +-7.2973099 +0.3347032 +-3.9394948 +-2.6762211 +-8.4974003 +2.0364289 +0.8042263 +-8.1220427 +-0.7431934 +8.4827185 +5.5220113 +-4.2704606 +-2.2898610 +-9.7729979 +-0.7628044 +-5.4842167 +3.9966772 +-12.6290894 +-3.4740136 +-10.6219587 +-2.1125648 +1.3230892 +5.6788564 +3.6268647 +-2.3297391 +7.9466014 +8.4906168 +-4.4481902 +4.0809565 +-7.1436810 +-3.5186193 +-1.8655562 +-3.4019628 +-1.5690863 +2.2887127 +-0.7892473 +-9.6364031 +-2.3877389 +-8.0958080 +-8.0838156 +-0.6457844 +6.8601785 +4.9000487 +1.1652398 +-0.8877103 +-3.9775379 +-8.2284250 +-0.9565594 +0.6374779 +-0.2464200 +-4.3580770 +-8.6363592 +12.9893036 +14.1804285 +-0.9648667 +8.7604685 +-0.7921626 +-5.6745853 +2.1256771 +-5.9200397 +-3.0021830 +-4.0736456 +0.6659829 +-1.6805645 +-0.2438311 +-11.4996595 +-6.8224030 +2.1617849 +-4.5849047 +-7.0575719 +-10.4107399 +13.2562237 +10.7382717 +-6.1372743 +-15.2761669 +-13.3145943 +2.5311289 +-2.6247497 +-10.5253572 +-6.7595310 +-1.2202797 +6.0910177 +-3.0414441 +8.3791857 +-9.8682489 +-0.9811649 +15.6739607 +-4.3270860 +-0.6429479 +-0.8791050 +-6.6299043 +-8.1997709 +20.8011265 +7.4343586 +-8.8712664 +5.2980142 +-0.6689299 +-0.0799094 +0.0872908 +-2.7411909 +-1.1264178 +-3.1622632 +20.2638474 +3.1754222 +12.8335896 +-16.2250252 +-8.1424141 +-5.3775935 +-9.3468742 +0.9851265 +-2.5437698 +-8.2359371 +0.7809063 +-3.7339685 +2.2564225 +1.9836301 +-4.6706176 +-0.5757421 +-3.4767144 +2.0241103 +-5.5589128 +-8.8667927 +-8.0548220 +8.2628365 +1.2080450 +0.7826297 +-1.3117599 +0.9254554 +-9.5992651 +5.1478844 +-4.9735222 +-2.4263997 +-6.2455692 +2.5417001 +6.4300580 +-8.8446312 +2.0523489 +13.5040112 +14.7882471 +0.0874944 +-0.3829092 +-4.3558168 +-4.2934875 +-6.4155793 +5.0531521 +-12.8709126 +18.1463451 +-9.2522669 +3.3379624 +6.5590787 +22.9650669 +33.9936256 +2.7204113 +-4.6583295 +-18.4043484 +0.8078451 +9.4031353 +-8.1537552 +4.9035363 +-6.3271079 +-0.1808422 +-0.3633386 +7.3864660 +1.8034055 +4.4340925 +-1.6001188 +-7.4005547 +-7.3787460 +-14.7621737 +-3.0214257 +12.9896221 +0.4974648 +-0.2723637 +-2.0112793 +-8.2074757 +4.8317299 +7.9141088 +-0.9701375 +-4.0996823 +-11.9582157 +-8.8310318 +-26.3380585 +-2.3486984 +-4.0070443 +-1.4632515 +-7.6098752 +8.3208952 +-7.2799439 +-4.8843508 +4.6072025 +11.8637991 +-25.3567047 +-2.3817134 +-11.3223066 +-6.4121175 +9.5324755 +-0.5699246 +18.0553112 +-8.8364553 +7.1651158 +-9.0130587 +8.0663576 +22.5451107 +9.6374731 +-1.2852384 +-2.9071026 +-16.8054676 +-7.8965931 +-1.5932595 +9.2896538 +-3.6368678 +3.4845581 +-12.7586002 +-1.4020395 +0.2003284 +-5.2578349 +7.0771217 +-4.1718564 +-6.3899622 +-9.5548534 +-23.3204002 +11.3025703 +-11.0673456 +6.2629986 +-11.8162966 +4.1306071 +-0.1593582 +-8.7400913 +-3.7081997 +-1.4939053 +-22.9499779 +3.1847005 +14.5103426 +13.6843472 +-4.8400102 +-6.9512939 +-11.2083836 +2.1901331 +3.1269672 +-7.0162592 +-2.9836862 +-5.8104396 +-4.5776124 +-2.4436231 +-9.5914316 +-3.9091549 +-2.6016111 +-0.2111100 +-4.4449272 +-11.0687332 +-9.0417976 +-0.8813118 +-0.7617542 +-0.8291354 +0.0651253 +0.2757224 +-7.3658633 +3.6170502 +-4.2133479 +-5.3010812 +-6.3751163 +-0.0414672 +2.2087970 +-8.4496183 +1.1425529 +15.5075417 +12.1724634 +-1.6848391 +5.6776323 +-8.6034393 +-7.2647786 +-8.0198545 +5.1657553 +-12.0520439 +16.7101803 +-12.8490276 +-0.0035612 +5.9870043 +23.0040436 +-21.2390919 +1.7445966 +4.6455169 +11.0410585 +-0.6941456 +9.2211781 +-8.0897608 +-15.8312263 +-4.0159478 +-2.7330468 +-1.8888493 +6.9055591 +-0.6110986 +-5.8210473 +-7.4419394 +-8.5661831 +-11.3342094 +-7.1733789 +-2.7389979 +-9.1674452 +-1.7324966 +-1.7277306 +0.8489020 +-7.8170352 +1.0706180 +3.2766278 +-2.6747010 +-7.4386926 +-13.1720018 +17.5383663 +20.3235912 +1.8927604 +-8.8606043 +-2.4055083 +-8.1413174 +0.4824921 +-7.5490289 +-4.8867416 +0.3555307 +12.1730967 +-25.4582672 +-5.6422811 +-13.0921192 +-8.6447897 +-1.0886847 +-2.0938764 +16.5563316 +-12.9795189 +9.5871906 +8.6222610 +12.4654665 +-31.1405983 +2.6230798 +-11.3091269 +-3.2605777 +-8.7835503 +-1.7011944 +2.9924991 +5.7503729 +0.9792013 +-4.6619654 +-7.1224804 +2.8699508 +32.6494217 +-4.2329860 +0.7385224 +-7.3526592 +-6.6454120 +-2.3466601 +21.1140957 +-9.7254934 +-17.2149906 +7.7002296 +-5.4287877 +5.9489126 +-1.6025431 +-10.7741222 +-0.8528514 +-8.5822353 +26.7733459 +5.5789981 +20.1927185 +-23.6332932 +-6.5193434 +0.4303003 +-12.1380978 +-0.9274604 +9.2677927 +0.2194593 +6.6535549 +-5.0748138 +4.4470792 +2.3931346 +3.0903094 +3.4398496 +3.7483566 +12.8225813 +8.6809845 +-11.5978727 +-9.4492092 +-2.8415627 +-7.4774804 +-1.9151442 +-0.9072504 +7.4865127 +-7.6633644 +8.6108065 +-0.9458771 +-7.3706670 +0.1531160 +5.1975121 +-2.1842449 +-9.5689344 +8.9729414 +21.4908981 +4.4018145 +2.0367360 +24.6905441 +-10.1041288 +-6.3276501 +-8.8079920 +-2.6206973 +-19.8089943 +-7.8742118 +-2.8691669 +-13.5469456 +10.4677153 +-5.9811654 +46.6750069 +6.9384413 +5.7693391 +-17.1572895 +3.4842117 +15.3119717 +-10.3181849 +12.6921930 +-0.9665936 +-1.9159173 +-0.6070514 +12.4122667 +-0.2753015 +12.0111160 +-12.3525162 +-3.0428767 +-13.1282043 +6.4611669 +-3.0195646 +22.1919422 +7.0817819 +-0.1487696 +-6.4953380 +-1.8782372 +-37.9221382 +11.3282757 +-2.6302524 +-6.7477522 +-13.8510609 +-9.6555939 +-23.4243965 +-1.7193213 +-2.5475800 +-2.2025499 +-7.2680049 +2.1671426 +-9.4598007 +-6.6100278 +-0.0626922 +8.5562172 +-2.8614895 +-8.7802572 +-15.5949373 +-7.4829650 +10.6056385 +2.4076774 +0.3373754 +-8.3720427 +0.6250901 +-17.7618122 +-1.3665166 +36.9646759 +-8.6770544 +-9.6552925 +2.9577551 +-10.0385551 +-0.8153612 +-5.7839155 +-7.7405643 +1.4455794 +-15.7418137 +-6.9308472 +1.9134638 +-9.0661249 +3.1489317 +14.8162346 +-7.9468884 +-8.9192476 +-1.9304430 +-19.5144806 +3.6452081 +-13.2469587 +9.1888123 +1.1442083 +12.3431625 +1.4590406 +-13.6578884 +-0.7679132 +-6.0106115 +-22.7947979 +4.3496418 +21.5139313 +22.3821278 +-0.6058629 +-2.1346011 +-13.6189709 +2.9003277 +-4.4487858 +-3.9186738 +7.9210896 +-4.3019533 +-12.2434435 +-3.9921794 +-4.2890611 +-1.1406424 +2.9058654 +-10.8205757 +6.2626557 +-15.8176670 +-10.1966648 +-2.0280948 +-8.2615070 +-5.2767801 +0.3359416 +7.7938685 +-8.1629391 +7.3352184 +1.4046829 +-3.7336726 +-1.1973739 +3.6769564 +4.5275416 +-12.6319933 +6.4553723 +23.2699699 +-15.9319792 +1.0620064 +4.1915245 +-4.4686422 +-10.2769156 +-12.7312984 +9.3993549 +-16.4713650 +4.0951748 +-4.4742818 +-14.9224205 +9.7783356 +-7.4765849 +-9.2303534 +5.9122753 +1.0988339 +16.5315361 +0.7252992 +14.9795265 +-9.7407770 +2.2463129 +-3.4864893 +-3.6036892 +-1.3486843 +12.2444201 +-0.2609667 +0.3249192 +-15.1429224 +-4.5837317 +-18.7823296 +3.4161050 +12.7714138 +-1.9457550 +-9.2538795 +-4.4664216 +6.3611627 +-1.5625468 +-34.9922218 +6.1069469 +-5.9796333 +-7.0395231 +-16.8785973 +26.0636864 +28.0608559 +-4.0291486 +-14.5263710 +-5.2504516 +-7.7943053 +-0.2423908 +-8.9659042 +-5.4902744 +0.3718460 +6.1919384 +-0.3601552 +-14.8840504 +-16.0146904 +-9.4721775 +6.6974831 +0.9677572 +-5.1171098 +-11.8679533 +4.5309558 +-2.2440464 +1.6040440 +-28.0603561 +-18.4079838 +13.1036377 +-3.7204068 +0.5139511 +-13.9831228 +2.4135146 +0.2233606 +-2.2591393 +-5.2610297 +-11.0331211 +-8.1758108 +16.3737717 +-9.4363289 +-9.9414511 +5.0865421 +-5.2140265 +-11.0065479 +18.1722145 +14.7101727 +21.2403278 +-13.9111795 +-7.7009578 +-0.7865391 +-5.0455890 +7.2979183 +12.0322571 +2.8601048 +41.2445030 +5.4485559 +-12.7693653 +1.1356366 +6.6223960 +-8.8211031 +-14.2175207 +-7.9210711 +-6.9978194 +6.2266393 +-4.5858893 +-6.0752072 +-3.3068807 +9.4577436 +11.2822151 +8.2073288 +6.8895798 +31.7798290 +14.1283197 +-18.2888489 +-11.3555260 +4.8436093 +-4.3404226 +-6.8981352 +-1.0983883 +5.4728575 +-10.2006474 +16.2021542 +-5.3024344 +9.3185377 +15.5805445 +-4.5816531 +1.5947963 +-11.9354544 +-2.8396721 +31.5835743 +0.1471615 +3.2514315 +3.0773597 +-4.2824092 +-8.1346655 +-14.1639528 +4.8778086 +24.4756355 +-9.7068567 +-0.4335846 +23.5238743 +-1.6746755 +-4.0348186 +0.8472965 +3.8088753 +-0.7243130 +-13.5722151 +4.5587802 +16.6712074 +-9.8036156 +19.9328728 +5.6602602 +-2.5211165 +-3.9073505 +13.0805006 +-13.1231241 +-8.5651407 +7.4202561 +-8.5688543 +-8.7534475 +-2.7195647 +-2.9396300 +24.2540550 +0.8752427 +-5.4800992 +-5.1221395 +-13.1550217 +-4.2609620 +-4.3519530 +-8.5505476 +-5.5574975 +-17.6010876 +1.7955893 +-7.0493059 +11.0590553 +3.2780483 +-5.9928946 +-13.5590925 +-0.5818788 +-10.8235464 +-6.7762303 +6.3001409 +-4.9665260 +9.3150225 +-18.2756996 +-17.8388023 +-11.4498625 +-0.5121593 +-0.6837397 +-10.9031715 +-9.6222897 +-17.9530582 +-1.4849865 +44.1774559 +22.2894382 +32.0137367 +3.8078005 +2.1934094 +-10.7956495 +4.8904634 +3.8396833 +3.4576659 +-2.9663913 +-6.0647292 +-7.8196216 +-4.6747947 +9.8570929 +-3.7611442 +5.3617148 +14.8557730 +-10.3002176 +-6.7027411 +-8.6575003 +-6.3615384 +20.1106510 +6.7746935 +1.0661088 +-6.7067270 +5.9761024 +2.3372686 +13.1746321 +-8.1920404 +-1.3878105 +7.8024163 +-10.8416815 +6.5852032 +2.5310097 +-3.4218152 +-11.5785351 +-2.7101371 +-4.5803289 +12.0096073 +-3.5415533 +-2.5783494 +-2.0309186 +0.3413336 +8.2971497 +-10.0644493 +1.7226332 +-5.9297194 +19.3082504 +-19.6163864 +-10.3416147 +7.0346723 +-2.3144736 +-7.4277015 +2.7810135 +11.8333702 +-9.3760176 +5.2848840 +-1.2715163 +4.1463146 +13.1341848 +7.4372921 +1.4880352 +-6.2614331 +-4.3022404 +24.7440491 +14.9543839 +4.6130180 +13.4244337 +-2.2615573 +-14.5472403 +-15.5704861 +-1.7733489 +22.0229397 +-10.6524458 +-0.1251269 +4.8606949 +-0.3888856 +-4.9404049 +-4.4511790 +-4.1853962 +-4.3241081 +1.0097306 +0.2472879 +-4.5214047 +-14.6745434 +7.8001285 +5.1100750 +-5.7925677 +2.5115383 +7.4037390 +-5.1609197 +15.1721439 +4.4809995 +-1.3565425 +-4.2668271 +14.4820614 +14.3894367 +-4.3105521 +6.8361320 +-5.1596756 +-0.0029916 +-5.6515894 +0.9663838 +5.5679078 +-8.3480043 +-2.0371525 +-15.5891829 +-1.0488513 +15.0979185 +-3.0352442 +2.5238914 +-8.0267715 +-14.0991154 +-6.5605326 +-5.6848235 +-4.6577802 +6.0442839 +-19.7848263 +13.0467348 +-26.3901272 +-11.9223986 +-5.0719128 +-10.9756413 +-7.0592728 +-22.7367458 +-6.1827898 +-11.1940918 +0.4498825 +0.5567388 +-8.6270695 +9.8448257 +-98.5486908 +-13.8258972 +-37.9648895 +-7.9996986 +-25.7499771 +-48.6935501 +18.1942177 +-10.9647388 +-12.4792185 +-31.9926643 +9.7906084 +9.4039364 +-20.8972607 +-10.0850105 +-58.4252281 +1.7267705 +-53.7836227 +-38.8501816 +-13.5233507 +-157.1907043 +10.6611824 +-20.2825947 +3.0323679 +-9.1542540 +7.5235190 +20.7563343 +-18.9512177 +-40.2296638 +13.8515139 +-44.5626297 +22.2704830 +-8.0037947 +2.7226145 +-33.1041183 +-30.1857224 +2.8108089 +-5.8995051 +-6.0809989 +-31.9927406 +5.2621593 +-9.5510111 +-47.1122055 +-5.7652693 +-21.1921864 +-10.0016155 +1.4115523 +-14.2606335 +-45.4441910 +-12.5648422 +4.2595806 +15.1081886 +-30.0658760 +-16.1879654 +-27.7309494 +-28.5144539 +-12.0654087 +-21.4448318 +-6.9379830 +-5.9060130 +-2.8836656 +-79.2191391 +-166.6674652 +-9.5786963 +-5.6236253 +-11.1449127 +-24.4994011 +-18.4943905 +3.8317399 +-31.5552177 +-18.4642887 +-28.4220486 +-20.5188026 +19.3095798 +-1.3591300 +-33.0531998 +-24.6060028 +-31.0088787 +-65.0910492 +-32.0025444 +-17.1826820 +-26.1372604 +-12.1455183 +-1.8659779 +-23.4808025 +-8.2820921 +-29.6014080 +-53.7980499 +-46.0197983 +-11.0273924 +-6.7106137 +-27.0373688 +-3.2485700 +0.5654177 +-10.2449636 +-25.4693165 +-15.9979839 +10.5060740 +-60.7413254 +-10.3731356 +37.4907761 +-35.3063545 +2.0186288 +-3.9551368 +-17.8615818 +-17.6302261 +-24.7737713 +-5.5259585 +-16.3570404 +-4.0792804 +13.1410065 +-15.9999161 +13.3163605 +-58.2504883 +-3.2572181 +-27.9393139 +-0.6312712 +5.8126125 +16.5908031 +1.8418213 +1.7925206 +-31.8089619 +-70.1489487 +13.7723417 +-7.9993567 +-10.6098785 +-219.0742798 +-17.5753403 +-1.8259368 +24.8287926 +-2.6576529 +-0.9023304 +-1.1645594 +-0.8603347 +-3.1996479 +1.3729153 +-1.1164171 +6.2263737 +2.4588969 +2.8357713 +-3.5776176 +-0.1413022 +-4.2153158 +1.0716715 +2.9704201 +-1.1323327 +1.9876378 +-12.7911844 +3.4914665 +-0.7945138 +-7.7778416 +-2.3670988 +1.6351289 +-0.0988807 +-3.3602188 +1.6235969 +11.3353910 +4.8820243 +0.1852072 +-1.6123512 +-0.7219141 +2.1544766 +1.1977760 +-4.4645309 +-3.6263809 +-0.8467234 +5.1440048 +1.1775123 +-4.9933877 +-3.1861660 +0.2271943 +1.4463129 +0.8030506 +0.2613739 +16.4796944 +-0.5974382 +30.0318108 +2.0778594 +20.9431801 +-1.2066630 +6.5727077 +-1.3024729 +5.8641605 +0.6553774 +1.2515306 +0.3881082 +0.9277686 +-7.7061496 +-0.9967832 +-3.1884677 +6.9660029 +-0.3873934 +-0.3557217 +2.0534606 +0.0222954 +-0.9479523 +21.0255547 +1.9842660 +-5.4465599 +2.1785951 +-1.6099185 +9.9416561 +2.1433244 +6.4571471 +3.6073198 +2.2957478 +-2.0355203 +-0.6500152 +-3.0432196 +0.9689332 +-0.3582297 +-4.4390821 +-3.3045895 +-2.7161286 +0.3438101 +5.4262729 +4.4452438 +-1.9400345 +-1.7429893 +8.1169624 +1.0696133 +2.1591928 +1.9908665 +2.1729808 +-3.2657275 +7.8328629 +-4.9650679 +-1.5486276 +-2.7276206 +-1.2201898 +6.0925269 +-2.5779302 +12.9517775 +2.1453209 +1.8743341 +-1.4177276 +0.8288434 +13.4714165 +0.5166160 +-1.5858500 +-1.2802248 +-2.2113533 +1.3486378 +4.3409657 +-0.0082631 +24.0159454 +-0.2412198 +1.9930856 +-1.0710233 +4.5917311 +8.7141943 +-2.9615974 +-0.6116609 +-0.0201331 +3.1903040 +4.7881732 +-7.5429082 +27.0259113 +-10.1009207 +-2.2956653 +-3.8182559 +-2.2470217 +-6.3929605 +2.5890496 +-2.8816583 +8.8575335 +3.5943496 +5.4693928 +-5.4082894 +-1.6555054 +-11.4171448 +2.6959908 +3.0348537 +-2.3148506 +4.4283490 +-11.1550503 +5.3204956 +-3.3383319 +-9.9412746 +-6.0047488 +0.9659646 +-2.0966439 +-6.3547745 +2.8599937 +17.6461983 +6.5504465 +0.1860081 +-4.7965097 +-2.6422112 +3.2781818 +1.0369016 +-8.3721247 +-0.2724409 +-4.0336599 +8.6388206 +1.3793068 +-10.0277519 +-5.2458286 +-0.7498321 +1.8532883 +1.7935078 +-1.4645249 +17.9105721 +-1.0366197 +39.5087776 +1.1565580 +24.1392498 +-2.9389143 +7.4119740 +-2.5172279 +9.8855247 +-0.0634159 +0.1192668 +-0.9544196 +-0.6814160 +-7.6973200 +-2.8558841 +-7.2937965 +11.5467701 +-1.4627974 +-2.9661205 +4.2837162 +0.8764745 +-0.8371322 +22.4052219 +5.2519040 +-6.9925361 +2.3615906 +-5.5278416 +5.6726532 +1.3050486 +6.9198985 +5.6960726 +2.1061742 +-4.4848576 +-1.1554294 +-5.3405418 +-0.1957396 +-0.6172678 +-3.8891554 +-13.2051125 +-8.4213104 +0.3269504 +8.2013817 +6.5606370 +-3.7583244 +-3.1717007 +8.2838202 +1.0323337 +4.6987157 +4.3363113 +3.9072461 +-5.2816882 +10.0910625 +-10.3995790 +-1.8942528 +-2.2530220 +-2.3138161 +7.3877697 +-6.0014052 +18.3143139 +4.3940430 +2.0370958 +-3.1454754 +-2.1455612 +15.6976614 +-1.6643986 +-2.2055905 +-2.4644089 +0.8115676 +-0.4858986 +4.0481396 +-1.8453827 +26.5399876 +-1.1455336 +4.4975572 +-3.9248393 +6.4353604 +12.8875618 +-6.2933064 +-1.3577535 +-1.0270811 +5.3373895 +6.3416138 +-6.6535358 +24.5559483 +-14.2528896 +-3.5338681 +-6.2724347 +-7.8510790 +-9.8653316 +2.5453341 +-4.8244691 +9.1720324 +4.8176270 +7.9698963 +-6.8425369 +-4.4451642 +-19.4807396 +4.3426623 +2.7821610 +-3.5088258 +6.4421339 +-16.6894493 +6.9612241 +-6.3116121 +-11.0669193 +-8.7399254 +-0.1296531 +-2.3713832 +-8.8653078 +4.0951462 +19.4018707 +7.7910032 +0.2573279 +-9.3481054 +-4.3772144 +3.0273592 +0.3788996 +-13.3974409 +-1.4354197 +-8.0152569 +9.9255581 +0.8223407 +-12.5126753 +-6.8749499 +-2.3197455 +2.3078918 +2.8979838 +-3.8264842 +16.9941444 +-1.3200244 +43.3599434 +0.1342771 +23.2823677 +-4.3487282 +6.5326314 +-3.5708334 +12.6637173 +-1.0023948 +-1.1913300 +-2.8140237 +-2.2862639 +-10.1363163 +-5.1339202 +-11.0081654 +15.9859047 +-2.6671691 +-5.6102524 +6.2020173 +1.8829591 +-0.4433641 +19.5217781 +7.0988574 +-13.6936846 +2.3038490 +-8.4525995 +3.3113937 +-1.6377271 +7.2969527 +8.5937729 +0.8402032 +-6.9974866 +-1.6345240 +-7.4404917 +-2.6270921 +-0.8331098 +-4.3173141 +-17.7599640 +-15.4277191 +-0.1662903 +10.3873367 +7.6110058 +-5.4302659 +-4.7369184 +6.4912219 +0.8466475 +7.0159960 +6.5748272 +6.0250659 +-8.1465082 +10.4582748 +-15.2725773 +-1.8910707 +-0.9277476 +-3.7423832 +6.9473391 +-10.3291864 +18.8565788 +6.6048121 +1.6093556 +-3.9248097 +-5.3345013 +13.2204189 +-3.8688288 +-1.6470348 +-3.8091466 +2.2165020 +-5.1500459 +3.9112887 +-4.2280707 +23.0540237 +-3.0131063 +5.0297375 +-6.5046682 +7.6682010 +16.9616070 +-10.0906734 +-1.5782108 +-2.2273607 +6.9292951 +7.3758206 +-10.5358629 +-1.9234999 +-4.0488381 +-3.3100681 +-6.0052228 +-4.5658908 +-11.5514030 +-2.7215545 +-2.9995539 +-1.0862997 +1.9161949 +5.6398697 +-2.6018803 +-7.4740562 +-13.6008749 +2.6221166 +-1.4689192 +-2.5564399 +4.2553043 +1.3017284 +3.6123495 +-6.1568789 +-16.8820496 +-5.4399571 +-2.6383374 +-0.5751078 +-5.0677853 +1.7973557 +-0.1791219 +2.4425740 +-0.4605429 +-9.0623121 +-3.6509693 +-3.2995958 +-1.9062080 +-9.5315580 +-1.2450428 +-9.8095398 +-1.9223586 +-1.0274248 +-6.4136887 +-2.6933992 +-2.9234841 +0.1552174 +1.8774347 +-5.7827048 +-2.9277730 +-0.3307755 +2.8976016 +-0.6914846 +-2.7660334 +-2.6066883 +-1.2896649 +-2.2451990 +6.6493835 +-3.3792393 +-2.5460424 +-4.1062403 +-3.4709282 +-9.6100397 +-3.0648770 +-8.4580441 +8.1258650 +-0.4330494 +-6.4763880 +4.1027637 +1.7070943 +0.4893543 +-7.7402930 +4.3527737 +-3.8129709 +-0.0243310 +-7.9133325 +-8.9911251 +-4.0345035 +0.5951272 +4.9913435 +-1.7330199 +-6.7581911 +-1.6301929 +-3.3185060 +-3.9611142 +-0.3913156 +1.2872699 +-11.7306414 +-12.5610924 +-1.2046230 +4.5387998 +3.0126867 +-3.3928661 +-3.6158037 +-1.6877333 +-0.0355633 +4.5402966 +3.6017103 +3.5087202 +-5.6220078 +-0.3344889 +-11.4094391 +-1.0677884 +2.6410296 +-2.7403195 +-3.3999736 +-16.0393047 +-2.8706450 +4.6440654 +-0.8595686 +-2.9388943 +-6.6131206 +-7.0616860 +-6.4645600 +0.1862208 +-3.6262095 +3.9161661 +-18.5146618 +-0.3540872 +-5.0314322 +-6.8912807 +-5.0278296 +-2.3767242 +-5.4175858 +2.7266829 +8.0839081 +-11.2357159 +-0.6575687 +-2.1667616 +6.4760809 +2.2191024 +-5.5351214 +-1.1903138 +-2.6912906 +-1.1319685 +-2.0724332 +3.4014053 +-3.0660863 +-0.3871762 +-1.4324980 +3.5513988 +0.4065484 +2.9142699 +-4.0315409 +-2.5211742 +-5.8113770 +1.7842469 +1.7677890 +-1.1457523 +2.5262299 +7.0402279 +2.9235942 +-1.9543855 +-3.8090830 +-2.8120763 +-0.2554498 +-2.9345644 +-1.8625985 +1.5485351 +6.0243979 +3.4960046 +0.0472834 +-3.0155780 +-1.5736779 +0.8844497 +0.0123091 +-4.4172230 +-6.9680705 +-2.6999266 +-2.6188407 +-0.5705625 +-1.9901317 +-1.9644976 +-0.5902340 +0.5050808 +1.1206285 +-1.7266698 +0.8480519 +-0.3633853 +27.9870129 +0.9005486 +-5.9293385 +-1.8490849 +1.1612694 +-1.5451986 +5.0166903 +-0.0676746 +-0.2599799 +-1.1685727 +-0.9011059 +-9.6391754 +-1.4849763 +-3.3361478 +5.9257364 +-1.0529872 +-2.6670234 +2.1638896 +0.3946398 +-0.4100258 +10.4880905 +-0.2753513 +4.5049810 +1.1037891 +-2.5653889 +-9.2880297 +0.9938403 +3.6681118 +2.8622837 +1.2175499 +-1.8107851 +-0.6298012 +-2.3991928 +0.1232865 +-0.5004264 +3.3626103 +-4.0073137 +-4.5509653 +-0.2611721 +4.2722373 +2.9771369 +-1.7046074 +-3.9433463 +-0.1188184 +0.6909806 +2.4720094 +2.5982471 +1.9882904 +-2.5330529 +3.5353453 +-5.2554526 +0.9916478 +-0.0463855 +-0.9971835 +11.9522161 +0.7491936 +5.3511028 +2.3285580 +1.1171060 +-1.2876551 +-1.6227734 +17.7832642 +0.2681102 +1.9140280 +-1.3600110 +-3.0693614 +-1.3691604 +1.9263377 +-1.5922855 +6.7296009 +-1.2999860 +-5.5967445 +-2.4513857 +3.3556333 +6.5538349 +-1.9449990 +-0.8644571 +-0.1385720 +3.5032716 +3.1708710 +-5.4787788 +-3.4195137 +-7.2258992 +-2.6618252 +-4.1904750 +-1.8890864 +-7.4851685 +-0.3545476 +-2.7372541 +5.1990657 +1.4748520 +5.7460279 +-5.6954026 +-4.5608683 +-13.1045847 +3.3595285 +2.1822002 +-2.3894603 +4.6168451 +5.2893591 +4.5458875 +-5.0618711 +-3.6704648 +-5.7461677 +-1.1373339 +-2.8221018 +-4.5503626 +2.5500669 +8.7444944 +4.6217489 +-0.0874415 +-7.4216847 +-3.4127302 +0.5524765 +-0.6136037 +-9.3678589 +-8.7972155 +-7.1184797 +-4.9452515 +-0.7663203 +-6.1426177 +-3.9096465 +-1.8852793 +0.8236386 +2.1332769 +-3.9810486 +-0.4364706 +-0.8646721 +33.0161972 +-0.0565499 +-8.8785830 +-3.7741902 +1.1421481 +-2.8140860 +8.0937223 +-1.3504460 +-1.4403737 +-2.6425054 +-1.7695844 +-10.4316845 +-3.4109237 +-7.7363944 +10.1748486 +-0.8754107 +-4.6271234 +4.4686117 +1.2844069 +-0.2250085 +8.2088156 +-0.0090268 +2.0239062 +1.1985006 +-7.3437901 +-14.1961126 +-1.6187967 +4.1989784 +5.2083888 +0.1372872 +-5.2967696 +-1.3161191 +-4.3256974 +-2.0215390 +-0.7234077 +1.8417464 +-10.1868944 +-10.4843912 +-0.5068713 +6.4872446 +4.9031343 +-3.4512734 +-4.8834786 +-1.1585766 +0.6707907 +4.9338117 +4.7934232 +3.4955227 +-5.0061059 +3.5856562 +-10.8383160 +0.4776540 +0.7653181 +-2.3728917 +13.0613289 +1.0366608 +6.6245341 +4.5635338 +1.1494722 +-2.7836981 +-4.7964778 +15.9133406 +-1.5174448 +2.1858337 +-2.7798541 +-2.4555984 +-1.5735532 +1.6635120 +-3.8966520 +2.4207447 +-2.9863305 +-9.7595682 +-5.4798388 +4.6374049 +10.7379808 +-4.3969183 +-1.1975182 +-1.3344769 +5.5753045 +4.7008295 +-7.6262641 +-7.5310225 +-9.7514133 +-4.0683069 +-7.1629343 +-0.2141813 +-12.7887526 +-1.2540333 +-4.0095124 +5.8192148 +2.2974551 +8.3959064 +-7.0258760 +-7.5429688 +-20.1714497 +4.9536753 +1.8311399 +-3.5640111 +6.7335234 +4.5725002 +6.3746476 +-8.2527704 +-9.3588724 +-8.8145180 +-2.5116498 +-4.9646983 +-7.2640171 +3.6392691 +9.9134893 +5.8728766 +-0.0939444 +-12.6154041 +-5.4875007 +-0.3564672 +-1.4859982 +-14.6014090 +-7.8160009 +-12.2821131 +-6.8370471 +-1.0402199 +-10.3933916 +-4.5661950 +-3.6816721 +1.0189707 +3.2092750 +-8.1471500 +-2.5190005 +-1.1804817 +35.3957977 +-0.8345174 +-9.3366451 +-5.4395676 +0.4798009 +-3.9259214 +11.0423861 +-2.9170649 +-2.4814413 +-4.9763250 +-2.7068062 +-11.6413937 +-5.7235913 +-11.9406900 +14.4404135 +-0.8913551 +-7.6686239 +6.5078487 +2.2193899 +-0.0305496 +4.1476588 +2.0007136 +0.8620797 +1.2532940 +-10.6760979 +-12.4925261 +-3.5025496 +4.5793195 +8.0136690 +-0.9665932 +-8.9728651 +-1.8418766 +-6.4334016 +-4.3468504 +-0.8903160 +1.8778744 +-12.7352867 +-16.7541237 +-0.6761885 +8.7226391 +6.3215446 +-5.0764284 +-6.7787075 +-2.5855567 +0.6079648 +7.4233046 +6.8570762 +5.2326818 +-6.8914051 +2.8905690 +-16.1572762 +0.0272505 +2.5889378 +-3.5464787 +12.0213766 +0.4755241 +6.3490906 +6.9987106 +0.8860199 +-3.4524422 +-8.3586884 +12.2176409 +-3.8740685 +2.1445503 +-4.4357429 +0.0117085 +-4.2048788 +1.3505208 +-6.7062159 +-1.9410875 +-5.2310038 +-14.2284136 +-8.1046915 +5.9139538 +14.7975769 +-8.3191004 +-1.4034042 +-2.3926318 +7.8138080 +6.0019565 +-11.3866224 +16.1252689 +-0.4825712 +-3.1701055 +-7.1891394 +-5.5494676 +-5.6112909 +-2.9392471 +-3.9925780 +-0.7809393 +1.3759573 +5.3236938 +-2.2840519 +-4.3197498 +-18.9499035 +2.2283230 +-2.1715064 +-2.5361469 +4.4296827 +-0.4845247 +3.3975401 +-6.6909699 +-11.4857988 +-5.8265500 +-3.3033342 +-0.1792142 +-5.3910565 +1.9004778 +-0.6299451 +2.5891702 +-0.4355760 +-9.8097563 +-4.2045712 +-4.2221236 +-1.9972717 +-9.8895378 +-2.1901336 +-10.3233747 +-6.6660581 +-1.1236888 +-10.0919294 +-3.5816314 +-3.1364882 +-0.0300357 +1.6025896 +-8.9185047 +-3.3739200 +0.0097349 +3.1398425 +-1.1796463 +-2.9665289 +-3.0674100 +-1.1650314 +-2.1881502 +5.9520612 +-3.3308957 +-2.8838663 +-4.6415911 +-6.4137859 +-8.4064646 +-3.7261527 +-11.3379784 +8.6491575 +-2.8178720 +-5.3201222 +3.8626473 +1.6887593 +0.2525983 +-7.8471560 +4.8307981 +-6.4947968 +-0.3312512 +-8.1795588 +-3.6938977 +-2.4370956 +0.4404216 +4.9107633 +-2.1072726 +-7.6641865 +-1.5686175 +-3.6495383 +-4.3997011 +-0.5855423 +1.3407605 +0.8252357 +-14.9737606 +-0.7405843 +4.5327373 +3.1283028 +-3.2672310 +-2.8643312 +-2.5627904 +0.0525880 +4.3953762 +3.2780778 +3.1739142 +-3.0753846 +-0.3168685 +-13.7532015 +-1.5343053 +3.8996820 +-2.7207160 +-3.4328308 +0.4277851 +-3.3433311 +4.5497136 +-1.0280776 +-3.0833476 +-7.1548986 +-6.4963999 +-6.7421951 +0.7438855 +-3.7628162 +4.2524195 +-15.5148602 +-0.6785088 +-5.8165522 +-4.6914086 +-5.8682547 +-12.0948296 +-6.1149659 +2.6691954 +7.8185701 +-14.9993830 +-0.6084327 +-2.0002515 +4.8207574 +1.7701380 +-6.2537055 +-3.4237843 +-0.2198774 +-1.5547591 +-4.7596054 +-1.2729083 +-4.7368183 +-0.5143255 +-1.3678151 +0.1347567 +0.2898919 +2.9339607 +-3.0795481 +-2.7750573 +-6.9728007 +1.3794087 +0.3333046 +-1.1447214 +2.0609424 +2.4577751 +2.2014182 +-2.6436548 +-7.5727358 +-2.6138275 +-3.2327538 +4.6871495 +-2.0167019 +1.0294870 +2.1068068 +2.0860274 +-0.1768618 +-5.1196384 +-1.7748796 +-5.7145281 +-0.6224309 +-5.4218292 +-8.5028429 +-5.2821021 +-1.5320756 +0.0137650 +-0.8044074 +2.0066824 +-1.3130029 +-0.2696811 +1.1491714 +-3.2622404 +-3.3296986 +-0.2030123 +8.0985479 +0.2771873 +-5.2126989 +-1.8450564 +-1.2268895 +-1.3854247 +3.8324437 +-1.6110376 +-0.3649617 +-2.4302487 +-1.3987447 +2.3541582 +-1.2238629 +-4.6085892 +5.2529469 +-0.1624413 +-4.6075311 +2.3359838 +0.7309630 +-0.3625708 +-1.5480726 +-0.4292320 +-3.0865140 +0.5118740 +-4.3366566 +2.7668688 +-0.8893930 +2.5519576 +2.5219131 +-0.1693109 +-3.6769354 +-0.6366047 +-1.6598570 +-1.3825284 +-0.3856175 +4.0648170 +-1.4173812 +-5.4326019 +-0.5424563 +3.1942859 +2.5737133 +-1.8347481 +1.3479739 +-1.7340889 +0.2717310 +2.3639517 +2.2147183 +1.6757451 +-2.9688983 +-1.1548977 +-5.8091941 +-0.0987684 +0.8960255 +-1.0718621 +3.1886520 +0.4162178 +1.1129764 +2.2122958 +0.6116749 +-1.5873357 +-3.1998765 +3.2759111 +-1.4578373 +-1.2518698 +-1.5511373 +-3.7378225 +-0.4860775 +0.7625816 +-2.5113378 +-3.2815771 +-2.2984118 +2.7363176 +-1.3064308 +2.2272530 +5.5151591 +-1.1297561 +-0.3122354 +-0.5681674 +3.2686596 +2.4977701 +0.5555581 +-11.4327831 +-0.9866384 +-3.0380027 +-8.5429497 +-5.2458382 +-10.2522306 +-1.9577683 +-2.9863486 +-0.1224296 +1.4404485 +5.7174501 +-4.9484324 +-5.8197718 +-14.5128212 +3.0021942 +0.1882912 +-2.4468732 +4.1809983 +1.2453818 +4.0531254 +-5.8138928 +-13.1805696 +-6.0816126 +-4.2567019 +4.9991870 +-3.9766736 +2.1762810 +2.6645000 +3.4764888 +-0.3984638 +-11.1066914 +-4.1944900 +-10.8652964 +-1.4818060 +-10.8681479 +-12.0170851 +-10.5915880 +-2.6635017 +0.0151025 +-1.0127236 +1.5505811 +-2.8333046 +-0.0038469 +2.0539181 +-7.8231559 +-7.8803658 +-0.3994597 +11.5057449 +-0.1912106 +-17.1281319 +-3.9324348 +-1.7192789 +-2.6821918 +7.1388602 +-3.4167156 +-1.4370569 +-4.2653704 +-3.6495719 +-7.1683292 +-2.1264942 +-9.1630363 +9.5472488 +-0.9652456 +-7.7208562 +4.1585488 +1.7420937 +-0.2969529 +-3.2003007 +-0.6354724 +-6.9746995 +0.5555596 +-9.5687227 +-0.0915667 +-1.8912373 +2.9945736 +4.9788127 +-0.9897393 +-8.0269499 +-1.6375296 +-3.7089622 +-3.2075253 +-0.7037128 +2.0246959 +-3.7939453 +-11.9028406 +-0.7132453 +5.5693421 +4.7062430 +-4.0342064 +-0.0731656 +-4.0595288 +0.2813591 +4.5171437 +4.1257811 +3.2394414 +-4.2859564 +-3.0735972 +-11.3124943 +-0.7154632 +3.1605766 +-2.4999325 +3.0940118 +0.4534565 +0.3647012 +4.5470777 +0.3359700 +-2.8741095 +-6.9665384 +-0.3513147 +-3.4966435 +-2.3453467 +-3.1673560 +-2.9396026 +-0.0757719 +0.6242890 +-5.6852984 +-6.0967817 +-4.6184759 +4.4865894 +-3.6771564 +3.6825056 +9.6348457 +-2.6106100 +-0.5602078 +-1.6430948 +4.8906193 +3.7027893 +-1.9980091 +-23.2746830 +-0.5212864 +-4.4805613 +-11.0348473 +-10.1768227 +-16.4323502 +-3.4860911 +-4.8231773 +-0.7708758 +2.3225751 +8.5217934 +-6.8393025 +-9.6831961 +-21.6200485 +4.4120264 +-0.6713499 +-3.8605192 +6.3142710 +1.3645129 +5.3224730 +-9.4842358 +-16.6222954 +-9.2067184 +-5.7713070 +5.4228091 +-5.7353086 +3.2532408 +2.5638051 +4.5645313 +-0.5308201 +-17.4423752 +-6.5835385 +-14.7321844 +-2.7016425 +-16.0070248 +-15.4894409 +-16.1947823 +-3.8183970 +-0.7706802 +-0.9145354 +0.5615758 +-4.4381752 +-0.1698176 +2.5431399 +-12.9432659 +-10.9463100 +-0.5538343 +13.2809982 +-0.8715170 +-23.9818649 +-5.9304595 +-2.6096950 +-3.8114114 +10.0267429 +-5.6325421 +-2.7423964 +-7.0136619 +-5.8160744 +-10.1877270 +-3.7024486 +-14.7074499 +13.5472403 +-1.7197207 +-11.0556183 +6.1272731 +2.7452488 +-0.0699599 +-6.7261367 +0.6665951 +-8.7424698 +0.3745865 +-14.5490723 +-2.8354647 +-3.8684056 +3.3791349 +7.5593901 +-2.1211438 +-12.3024988 +-2.5522957 +-5.1890116 +-5.5767560 +-0.8833828 +4.0685487 +-4.3615427 +-17.9646530 +-1.2004045 +7.6895337 +6.0965505 +-5.9054565 +-1.3329278 +-6.2798758 +0.2369495 +6.6877685 +6.0056386 +4.9362297 +-6.1905513 +-4.1536207 +-18.3135109 +-1.1347033 +5.9192867 +-4.2021785 +1.0386299 +0.6633514 +-1.1568428 +6.9416833 +-0.0503222 +-4.3512135 +-10.8904428 +-4.1193972 +-6.5957360 +-2.0019798 +-4.9046979 +-1.5687188 +-0.1653200 +0.5782758 +-9.0746479 +-6.6238527 +-7.3463516 +4.8143868 +-6.8993864 +4.9045224 +13.7095518 +-4.8863811 +-0.7872142 +-2.7582810 +6.7884917 +4.7823839 +-3.8078039 +1.2375343 +-0.9318109 +-3.5132496 +-4.9712191 +-9.6960421 +-7.2201667 +-3.7392895 +-3.2012036 +-4.5036879 +1.7771310 +5.7559385 +-3.3410773 +-3.9826000 +-18.8942833 +2.5044081 +-1.4548819 +-2.5620244 +4.4877672 +-4.3165607 +3.5957034 +-7.4258852 +-10.0814199 +-6.6601014 +-3.0523441 +-0.1567127 +-4.5428681 +1.5468285 +-2.6791160 +2.4879549 +-0.5813590 +-16.3421936 +-4.7377415 +-7.4503856 +-2.6515796 +-7.9963293 +1.5013916 +-11.1700296 +-0.7782506 +-0.9849013 +0.5193306 +-3.3221633 +-3.3950636 +0.1357918 +1.9411068 +-6.7516241 +-5.0801888 +-0.5114907 +1.5098197 +-0.5979358 +-12.5933084 +-3.9022012 +-3.5615504 +-2.4058561 +6.3705025 +-2.9796674 +-3.0431702 +-4.5169644 +-3.9200840 +-6.9798603 +-2.3173227 +-8.1901426 +8.2374992 +-1.0454012 +-8.4069901 +3.8531938 +2.0362799 +0.3692936 +-9.2932234 +5.5525546 +-12.0665970 +-0.0147121 +-5.0360699 +-9.6426506 +-3.7152195 +0.7449477 +4.6760583 +-1.8597082 +-5.6677837 +-1.6919641 +-3.5256786 +-4.1698833 +0.0710828 +-0.8964011 +-3.8856089 +-14.8961411 +-1.6649562 +4.5989904 +2.8829386 +-2.7374728 +-4.3791499 +-5.4337564 +-0.0333458 +4.3948321 +3.5660908 +3.0644770 +-4.6783276 +-2.1732495 +-8.8368492 +-0.8771194 +4.7753086 +-2.6498163 +-6.7080207 +1.8807093 +-5.1698799 +4.7313552 +-0.5970924 +-2.4534414 +-8.2041941 +-8.2092018 +-7.4550838 +-0.9545054 +-3.7369914 +4.5382752 +-4.4345946 +-0.3583424 +-6.4853754 +-4.9204578 +-6.2716131 +-0.6169898 +-6.6571636 +2.7461562 +8.1744547 +-6.1902013 +-0.6176558 +-2.0480750 +7.1428108 +2.3772459 +-9.0343390 +-7.9431033 +-0.4399938 +-1.5393509 +-2.2316380 +5.2415338 +-4.8192940 +-0.8637809 +-1.6694912 +-3.1915674 +1.0879656 +3.2376490 +-3.3809607 +-3.2335632 +-7.6418705 +1.7079026 +0.7575755 +-1.2816854 +2.4460094 +0.7095562 +2.1137438 +-3.5182064 +-5.2062173 +-3.2509811 +-0.8954192 +0.6758490 +-2.1877313 +1.0364186 +-0.7436093 +1.9133004 +-0.1242013 +-6.5276122 +-2.3935726 +-1.5472786 +-0.4062907 +-5.4929433 +-1.4255608 +-5.4526043 +2.8856199 +0.0178329 +0.7294756 +-1.4713961 +-0.9465635 +0.0391668 +1.6911222 +-4.0763707 +-6.3124909 +0.8754753 +5.1575103 +-0.4163328 +-5.8707500 +-3.2844236 +-4.9101048 +-1.5107452 +3.6391821 +-1.7405689 +-0.6548495 +-1.4231086 +-1.3790294 +8.3582878 +-1.4093163 +-4.6442566 +4.9249129 +-0.9079016 +-1.9996215 +2.2139654 +1.1272829 +-0.1031405 +-7.5301814 +-1.5189451 +3.2882056 +0.3282028 +-4.1573172 +-1.5140048 +-0.9282486 +1.6175621 +2.2233009 +-0.4451928 +-4.0948086 +-0.8214577 +-2.5063639 +-1.4394244 +-1.1154331 +0.7027749 +-2.4083917 +-6.2132053 +-0.3644201 +2.8634782 +1.4817600 +-1.7478683 +-0.4480746 +-5.9618988 +0.2317905 +2.0003257 +1.8456520 +1.9956272 +-1.2171034 +-3.1331291 +-6.2075853 +-0.0050460 +2.2505183 +-1.3071799 +-1.8846453 +-0.5697193 +-1.5862269 +2.2649634 +0.1284767 +-2.0662639 +-3.7430980 +7.9117613 +-2.1233847 +-2.5028863 +-1.6731404 +-4.0185623 +-3.9313452 +0.8606189 +-3.2390754 +-0.8421597 +-1.1947207 +-4.0136566 +-3.3244236 +1.9126353 +5.0151830 +0.2111981 +-0.4319105 +-0.8400063 +2.6122189 +1.8517129 +-4.1639824 +-18.7088776 +-1.3318145 +-3.1539195 +-5.4089384 +-2.6239750 +-9.1214828 +-2.5287945 +-4.1583896 +-5.1262221 +1.6948719 +5.8861156 +-6.0131197 +-4.7104068 +-16.0294533 +3.2497060 +-0.1358230 +-2.5250349 +4.6677809 +-0.6852703 +3.6376367 +-7.3238540 +-6.6645598 +-6.4336057 +-3.0513778 +2.0281861 +-4.3922672 +1.9476545 +-1.1199397 +3.1858711 +-0.4023554 +-13.7078810 +-4.7322235 +-2.2979357 +-1.2484772 +-10.4379959 +-7.0125008 +-10.9644852 +3.6387439 +-0.0622668 +0.8291118 +-2.7728450 +-2.9120917 +-0.1026742 +2.4344385 +-6.4561849 +-13.3605928 +1.4222447 +6.5593419 +-0.9958024 +-15.8308697 +-6.7153769 +-7.6191773 +-2.8459969 +6.5334115 +-3.6388628 +-2.6209815 +-3.8667009 +-4.2782254 +-1.0124804 +-2.2565110 +-10.2200394 +9.0316782 +-2.8834119 +-4.8029194 +3.8894215 +2.4609582 +-0.1506844 +-12.2909479 +-4.2731266 +-0.4523615 +0.1982016 +-6.7151976 +3.0534902 +-3.0298479 +1.9998097 +4.8777051 +-1.4836866 +-8.6613865 +-1.8171388 +-4.5234904 +-3.8083856 +-1.9601693 +-1.6165378 +-5.0551033 +-13.2550440 +-0.7032451 +5.0682130 +3.4185574 +-3.8856955 +-0.3191320 +-15.1062469 +0.2975867 +4.3798513 +3.7862582 +3.8385339 +-2.0132406 +-5.7271218 +-11.8734560 +-0.4264184 +4.5573773 +-2.8376606 +-4.4551482 +-1.6070384 +-3.3407500 +4.6274581 +0.0792076 +-3.2521203 +-7.7751603 +5.3275218 +-5.3408275 +-4.7071018 +-3.4404714 +-2.4051735 +-6.5413899 +0.4745409 +-6.4078121 +-2.1853621 +-3.0753646 +-8.5873194 +-6.6032066 +3.2104459 +9.0174294 +-0.2546323 +-0.8721948 +-1.9340147 +4.5749068 +3.0227268 +-4.2576818 +-22.7002811 +-1.6420499 +-4.8545375 +-8.2510233 +-5.6079307 +-15.1764774 +-4.5181131 +-5.3107510 +-6.5327301 +2.4114490 +8.5744524 +-8.9975576 +-7.9290204 +-23.9935493 +4.6420422 +-0.9928801 +-3.8006372 +6.9049253 +-0.8863268 +5.0445089 +-11.5617914 +-13.6076469 +-10.0870075 +-4.6762352 +0.4758134 +-6.4722633 +2.8241270 +-2.1429653 +4.3612380 +-0.7016755 +-22.4020939 +-7.4785461 +-3.3906677 +-2.5912521 +-14.8336134 +-5.6828246 +-17.7074337 +3.1966949 +-0.9592460 +0.8333001 +-5.0721517 +-4.4739141 +-0.2347040 +3.3646319 +-9.4410801 +-18.2753544 +1.7190106 +6.8406878 +-1.8623714 +-25.7757454 +-9.6522551 +-8.6306839 +-4.0166087 +9.5321493 +-5.8167410 +-4.4067311 +-6.8982029 +-6.6427584 +-8.1896229 +-4.1379175 +-14.9483967 +13.2244625 +-2.6611862 +-8.7975283 +5.7863336 +3.6526496 +-0.0026037 +-16.7289715 +-5.2108893 +-2.8448625 +0.1786020 +-12.2956915 +2.0557666 +-5.1931396 +2.6201315 +7.5215917 +-2.5404081 +-13.0292711 +-2.6848042 +-6.3843136 +-6.0020690 +-2.4907348 +0.4693005 +-6.6310387 +-19.8907700 +-1.0578959 +7.2380571 +4.7454796 +-5.4828391 +-2.0616770 +-19.6717682 +0.3239579 +6.5965419 +5.5697479 +5.4953995 +-3.2524464 +-7.8687601 +-20.2329006 +-1.0575211 +8.1774349 +-4.2424588 +-8.6498747 +-2.1530795 +-5.8511152 +7.1391673 +-0.4202281 +-4.7256784 +-12.7128935 +-1.1272252 +-9.0597134 +-6.0324988 +-5.3265247 +-0.2820081 +-7.9998484 +0.3513039 +-10.3719034 +-5.7652445 +-5.9544940 +-13.4116726 +-10.3842564 +4.4652457 +13.2085495 +-1.3763156 +-1.1025136 +-2.8610294 +8.3939199 +4.2754221 +-6.5898523 +-7.3981419 +0.6769087 +-3.4425166 +-6.4997101 +-4.8093567 +-10.1502323 +-5.4833984 +-3.8007078 +-2.9296372 +1.5100367 +5.0573177 +-2.7925487 +-5.5649986 +-11.3544550 +2.1449699 +-3.1689136 +-2.5743558 +4.4010391 +-3.5855055 +3.4526477 +-7.8240995 +-13.6832991 +-7.4001570 +-3.3993409 +-0.3567183 +-4.8174310 +1.7591373 +-2.1825733 +2.5426781 +-0.6196806 +-19.0878410 +-5.2045193 +-3.0037246 +-1.8661091 +-8.1579056 +1.8550851 +-10.6801643 +-1.1083446 +-1.2525846 +-0.8458688 +-1.9098361 +-2.8226495 +-0.0851675 +1.6221683 +-7.2168036 +-5.4518614 +1.3626641 +-7.2975345 +-0.6377364 +-12.0345869 +-4.8982558 +-1.9771050 +-2.0395160 +5.7928691 +-3.2208958 +-1.9622802 +-4.7335167 +-4.8689318 +-7.0996509 +-4.8356328 +-10.2144928 +7.8681736 +-1.9820611 +-4.9290953 +3.4660208 +2.1607325 +0.3223422 +-12.4467897 +6.1600537 +-9.0439806 +-0.2062332 +-7.7372031 +-9.6791449 +-2.6404409 +0.1238976 +4.6033039 +-2.1786664 +-3.3775234 +-2.1172833 +-3.7739034 +-4.4157066 +-1.8711485 +-0.7069861 +-0.1772123 +-11.3507299 +-0.9123214 +4.2979116 +2.4045837 +-3.3360169 +-4.3830681 +1.8442291 +0.0870578 +3.9569387 +3.6733274 +3.8274350 +-4.1720753 +-3.6588151 +-12.0333195 +-0.6880349 +3.4607513 +-2.5901814 +-11.5173540 +0.2671129 +-5.2726703 +5.8019042 +-0.6954017 +-2.8084409 +-8.4984188 +-14.1506977 +-8.4839878 +3.0225813 +-4.1258030 +4.0079947 +-1.4512951 +-0.6363424 +-6.2740827 +-11.0303621 +-7.2721972 +-11.5055304 +-7.5089431 +2.5096333 +7.8058882 +-3.8860962 +-0.7447608 +-2.0948188 +4.9609461 +2.1079106 +-8.8380728 +-7.8251152 +-1.1530341 +-1.7023005 +-2.6932957 +-3.3223679 +-3.3270397 +-2.0458403 +-1.0032986 +-4.2834082 +0.9640188 +2.6196091 +-2.1896794 +-1.2581968 +-7.1939731 +1.5618393 +-0.8626359 +-1.2723302 +2.0449138 +-4.2609253 +1.8138947 +-4.3244786 +-1.7429450 +-4.2001014 +-2.0002058 +1.6123377 +-2.2488890 +0.8689636 +-3.3139203 +1.4961947 +-0.2649394 +-8.4155722 +-3.0966268 +-0.7331974 +-0.5069959 +-4.9654799 +-3.3938539 +-6.9414806 +-6.1085410 +-0.9783921 +-0.1469153 +-1.2684793 +-1.3928860 +-0.1294058 +0.7896456 +-3.3015373 +-10.6376715 +0.0787954 +-1.1538626 +-1.1405222 +-11.4546890 +-3.0539901 +-6.0733142 +-1.2180594 +3.1684840 +-1.6346496 +-1.1169504 +-2.8722725 +-1.7292149 +-7.6015372 +-2.4457266 +-4.7276478 +4.6408625 +0.6075218 +-2.2025928 +1.8975675 +1.5538486 +0.0998748 +-9.3828230 +-1.0586096 +-7.0932393 +0.0260203 +-4.2318377 +-2.8502619 +-1.7086955 +1.0909134 +1.8375261 +-0.7795017 +-3.5702817 +-0.9228307 +-2.3130157 +-2.0806847 +0.0278673 +4.0327168 +-2.9590116 +-5.8483372 +-0.3990635 +2.4936054 +0.7053087 +-1.6650647 +-0.1033667 +-9.7192144 +0.1132636 +1.8070579 +1.9517245 +1.6978961 +-1.4525050 +-4.6604772 +-5.7313733 +-0.8721684 +2.9303491 +-1.3734047 +-5.7348752 +-1.0802698 +-4.1153083 +2.5624962 +-0.2091627 +-1.9104924 +-5.1596894 +-3.9758270 +-4.0231738 +-2.9928575 +-2.1440065 +-2.5195818 +-4.3075089 +0.3694797 +-4.0365767 +-5.2515755 +-2.3293142 +-0.0394637 +-4.1802640 +1.5268918 +4.5551691 +-0.2903966 +0.0225993 +-0.9817595 +2.1179466 +1.4825987 +-1.6524676 +-13.4454269 +-3.6224885 +-3.1460736 +-5.3685145 +-1.4497523 +-6.4791794 +-4.3154564 +-2.7859640 +-7.1492753 +1.3069584 +5.2408729 +-4.9292645 +-2.4158387 +-16.1420536 +2.7698689 +-2.2763133 +-2.6038697 +4.1437211 +-3.9576805 +3.2592497 +-8.5696411 +-3.4705160 +-7.2979779 +-3.4924588 +0.8088624 +-4.7475166 +1.8595282 +-6.1474071 +2.7703094 +-0.4752414 +-18.7918415 +-5.6940713 +-3.2139518 +-1.8080451 +-9.3112650 +-2.6129861 +-12.4631681 +-13.5767555 +-1.7092415 +-1.5979471 +-3.0371726 +-3.5125177 +-0.3080311 +1.8133028 +-6.7411985 +-17.1476955 +0.2660850 +-4.4606462 +-1.8787754 +-25.1638622 +-5.8902931 +-10.1619358 +-2.2578290 +6.1633205 +-2.9797466 +-3.1998005 +-5.1541810 +-4.3144941 +-16.0707359 +-5.7020135 +-9.9640265 +8.6829224 +-0.2548063 +-4.8565440 +3.6297982 +3.0278215 +0.1808724 +-22.4983673 +-5.6549072 +-8.1291952 +-0.0298713 +-7.9431477 +-6.9977984 +-4.0849185 +1.4989355 +4.4989457 +-1.7346010 +-6.4896684 +-1.8738241 +-4.0031109 +-4.3404169 +0.0333982 +3.4119880 +-7.0482788 +-13.2526398 +-0.5984003 +4.6847396 +1.7737145 +-3.4050043 +-1.9953831 +-18.7249680 +0.1771016 +4.0533504 +3.3713431 +3.2835581 +-3.5416689 +-8.6719847 +-10.8035393 +-1.3587023 +6.7286863 +-3.0479667 +-13.6151838 +-2.9583683 +-8.0636063 +4.9680600 +-0.3829775 +-3.3078761 +-9.2834187 +-10.0953007 +-9.1550865 +0.0866602 +-4.3161869 +-0.6981358 +-3.7218595 +0.0364783 +-7.9917560 +-14.4629860 +-5.9557033 +-0.5107365 +-7.8335767 +2.8288243 +8.6223278 +-0.8314787 +-0.2354447 +-2.0385735 +3.8301709 +2.7433183 +-6.1569200 +-5.3944278 +-3.4171762 +-4.7391334 +-8.5874891 +-10.4700184 +-10.9861059 +-7.2783756 +-4.2203579 +-9.5065212 +2.3285134 +7.8000121 +-7.2066245 +-5.0454683 +-24.5408440 +3.8793688 +-2.6094098 +-3.8707280 +6.2717915 +-5.5359201 +4.8107195 +-12.0399714 +-7.2730432 +-10.3061295 +-5.0271425 +0.6947196 +-7.4689603 +2.8168902 +-9.0910969 +3.9184213 +-0.7056993 +-26.3498688 +-7.9834561 +-6.1343284 +-2.5740936 +-12.7113161 +-5.8988533 +-17.9763336 +-18.1839886 +-2.7665200 +-1.9183838 +-4.2839136 +-4.9996443 +-0.0110130 +2.5938888 +-7.6079354 +-18.0812187 +0.4179343 +-7.2651858 +-2.1143539 +-31.6524811 +-9.2394257 +-11.2891979 +-3.3792586 +8.9868793 +-4.7686434 +-4.6674819 +-8.2406445 +-6.5821595 +-17.2942295 +-9.2123451 +-14.1043549 +12.9058599 +-0.5813619 +-9.0147552 +5.3613839 +4.3234797 +0.3947630 +-36.6855431 +-17.5475788 +-13.8077030 +0.0053348 +-11.4904461 +-6.9966631 +-6.0066090 +1.9376042 +6.9724741 +-2.9183278 +-9.4998055 +-2.7570541 +-5.9847331 +-6.4785967 +0.1096216 +4.3312068 +-7.2029934 +-20.2743874 +-0.8536853 +6.7733946 +2.7323029 +-5.1684680 +-3.8494885 +-12.0666704 +0.2560767 +5.8951373 +5.2755413 +5.0102654 +-5.9652867 +-11.0773821 +-16.0398140 +-1.5265268 +9.3810396 +-4.4265537 +-22.2585869 +-4.2996368 +-12.4341869 +7.4588952 +-0.7227840 +-4.9128575 +-12.9180861 +-18.7296429 +-14.2509022 +1.0846852 +-6.4964190 +1.1898634 +-1.4543351 +0.0311252 +-11.2028761 +-25.7784538 +-10.1929226 +-1.9266994 +-10.7635574 +3.9840600 +12.7574301 +-1.7250950 +-0.3684487 +-3.0760841 +7.9540114 +3.8276775 +-9.1453648 +-0.9211451 +-0.6936105 +-3.5650730 +-5.9032784 +-3.6795747 +-8.7129822 +-6.7607307 +-3.3467367 +1.7355937 +1.1734276 +5.2347927 +-4.5837698 +-4.1906548 +-15.7282391 +1.7214445 +-2.0168424 +-2.3650112 +4.1102796 +-2.2256720 +2.9015830 +-6.4016347 +-6.0581079 +-7.0079494 +-3.3183916 +-2.6052723 +-5.2219634 +1.4704001 +0.8128074 +2.6135297 +-0.6911356 +-12.4740229 +-4.9164515 +-5.8951578 +-4.1180296 +-5.4703274 +-1.7645491 +-10.2711582 +-23.4065361 +-2.0608156 +-1.3460118 +-1.2290167 +-2.6616936 +-0.0889902 +1.9103687 +-8.2155485 +-0.7917264 +0.7792390 +3.6765623 +-2.3958333 +-2.2479148 +-6.1067028 +2.1599338 +-2.1506782 +5.9171610 +-4.9765792 +-3.3938162 +-5.3424597 +-5.7269793 +-7.1388783 +-7.1027198 +-11.9125338 +8.4634762 +-1.4020430 +-5.7776976 +3.8068728 +2.6607203 +0.3362328 +-4.8975592 +-3.0525393 +-3.2795815 +-0.4776759 +-10.6036882 +-14.6392155 +-3.8850284 +0.8224096 +4.8240957 +-2.0642350 +-2.7127123 +-1.8543876 +-3.8436587 +-4.4592419 +-0.0113400 +1.9390162 +-5.6685357 +-13.6174307 +-0.8072351 +4.4403882 +2.1150100 +-3.4484816 +-1.9613999 +3.6806872 +0.1526562 +3.7059417 +3.4890385 +4.2405734 +-5.7157974 +-2.2119606 +-7.2177277 +-0.9007365 +1.3692528 +-2.8758936 +-8.7840624 +-5.6653762 +-3.2459092 +5.6729631 +-1.5202837 +-1.9779245 +-6.5127578 +-12.8907137 +-9.8980312 +4.8465304 +-4.7387366 +3.2955165 +0.9654830 +-0.2515388 +-5.3842120 +-9.1124401 +-9.2102880 +-1.5778559 +-4.8290281 +2.6704133 +8.0493364 +-2.9579942 +-0.7513492 +-2.3720200 +0.3464262 +1.6218574 +-3.7757494 +-8.8970261 +-0.5985667 +-1.6815714 +-3.4023426 +-2.3048477 +-2.6122272 +-2.1785052 +-2.1598721 +-4.6091709 +0.3566803 +2.8917108 +-2.7903471 +-1.9422015 +-8.2287140 +1.9912703 +-1.8355147 +-1.2343444 +2.1574435 +3.2967036 +1.4190173 +-4.5886550 +3.1267536 +-3.7690620 +-2.8857222 +-3.5062630 +-2.2074480 +0.8150090 +-6.3285098 +1.5830165 +-0.3021128 +-8.8890972 +-2.9770212 +-5.6318855 +-0.8246307 +-4.9957833 +2.2593288 +-6.1259432 +-0.2798786 +-0.5414751 +0.9459335 +-3.0385501 +-1.8555398 +0.0247658 +1.2416027 +-1.8530858 +-27.6721439 +-0.0619446 +-4.1603770 +-0.5891420 +-24.8170490 +-3.8891444 +-6.9225197 +-0.9306503 +3.0207815 +-1.7520922 +-1.9807980 +-2.0353572 +-1.8713996 +-12.1846828 +-4.5686221 +-4.5700765 +4.2891808 +-1.2574813 +-4.9858594 +2.1920712 +1.7234453 +0.6236193 +-22.2989483 +-1.6321391 +-1.6613044 +-0.3814895 +-2.7990582 +-7.9941301 +-2.5660846 +-0.5271138 +2.1464083 +-0.7685075 +-3.3970792 +-0.7727641 +-1.6296542 +-2.1869600 +0.6170602 +0.0834682 +-2.3927348 +-6.3119445 +-0.1312508 +2.3973973 +-0.7970694 +-1.2782912 +-3.9621382 +-12.5011787 +-0.1116058 +2.4543974 +1.9485418 +1.7634397 +-3.3088834 +-9.4235868 +-6.4819679 +-0.1681636 +2.5312572 +-1.4172565 +-10.2402763 +-1.7575588 +-7.6938767 +3.0197532 +-1.1073228 +0.2608969 +-3.7895110 +-11.2776155 +-4.6204567 +1.7393756 +-2.7123177 +2.7366259 +-1.9105946 +-0.5875852 +-3.8539431 +-15.0569725 +-3.6122272 +-5.4217339 +-4.1791792 +1.4653599 +3.4430413 +-1.1453055 +-0.7276118 +-1.0304509 +1.1833953 +0.4531289 +-6.1558051 +-16.5784550 +-2.0172720 +-3.1189890 +-6.2940893 +-3.3232641 +-7.1233406 +-5.9102988 +-3.6954122 +-5.5765190 +0.7818862 +5.3335948 +-4.8925242 +-5.2679958 +-16.1889019 +3.5199435 +-2.8654101 +-2.6489556 +4.1173496 +-1.7756827 +2.9046583 +-8.2381525 +-2.9212120 +-7.1030264 +-4.6559343 +-1.4148263 +-5.1121044 +1.7711983 +-8.3970556 +2.7607315 +-0.5248531 +-15.6781645 +-5.4438019 +-13.0407839 +-1.2317275 +-9.0953550 +0.2690516 +-12.3865471 +1.3787856 +-0.7347345 +-0.3741269 +-4.3633165 +-3.4859037 +0.1528325 +1.5494617 +-6.3010445 +-13.4236660 +0.2635483 +-3.2211645 +-1.0329639 +-20.2387333 +-8.1079979 +-7.5798798 +-2.1332269 +5.8064537 +-3.8258352 +-3.5736549 +-3.2774253 +-3.9700544 +-13.2399931 +-10.4016819 +-9.3003998 +8.5406876 +-1.6167420 +-7.4184575 +3.9501033 +3.4438057 +0.3372936 +-28.4262638 +-1.6672206 +-6.5057878 +-0.2764509 +-6.1440673 +-16.7675438 +-4.7467370 +0.0277475 +5.2706752 +-1.9596888 +-6.7470961 +-1.8783035 +-3.3942404 +-4.5326900 +1.0406941 +1.0757390 +-4.4693408 +-13.3674974 +-0.2835188 +4.5140610 +0.9664210 +-3.0855269 +-4.6787577 +-8.7685108 +0.0215804 +4.6272659 +3.7164152 +3.3895006 +-5.0027528 +-12.7609539 +-11.8562326 +-1.0415235 +3.3496380 +-2.8386078 +-15.1921453 +-2.0476699 +-11.0881538 +5.9169798 +-1.7628968 +-1.0982416 +-7.0290470 +-20.7722912 +-8.8702488 +2.7123864 +-5.1784463 +6.0198178 +0.1525171 +-0.8954638 +-6.7153597 +-25.2839813 +-8.4616127 +-11.1754684 +-6.4858179 +2.6684222 +7.6096330 +-2.1602170 +-0.8831406 +-2.0554194 +5.2585649 +1.7157427 +-9.2919254 +4.8160367 +-3.3233650 +-4.5927501 +-9.1773787 +-5.7384601 +-13.0696602 +-8.8244781 +-5.4267197 +-7.8318715 +1.6306735 +7.7796073 +-7.2163820 +-7.4332414 +-24.4678993 +5.2711768 +-2.9048152 +-3.7761660 +5.9539952 +-0.7459844 +4.4435530 +-12.8068552 +-6.3398256 +-10.8791752 +-6.0539479 +-1.7960044 +-8.8909760 +2.8290627 +-11.7125063 +3.9634242 +-0.6935868 +-28.2476215 +-7.7968450 +-21.8475189 +-2.8154159 +-14.5760317 +0.9059537 +-16.6820202 +0.9270546 +-1.3562768 +-3.0309162 +-4.9759231 +-5.1674175 +0.3058580 +2.2395430 +-11.1285334 +-16.8903255 +0.5657930 +-4.8631873 +-1.8490477 +-21.1662235 +-12.1184120 +-11.3229151 +-3.2186019 +8.7935944 +-5.2674708 +-4.7152300 +-6.0083570 +-5.4659824 +-23.9778366 +-16.2385406 +-14.2899866 +12.5921612 +-2.5524743 +-10.1834717 +5.7485747 +5.5536847 +0.2106522 +-37.1602974 +-8.0911207 +-11.1834612 +-0.3649530 +-10.6811972 +-24.4315109 +-6.5624881 +0.4927920 +8.3875151 +-3.0236785 +-10.9634647 +-2.7736347 +-5.8330059 +-6.7312880 +1.4456847 +2.0364404 +-6.9839439 +-19.9637165 +-0.1805020 +6.7320757 +2.3192029 +-5.1636376 +-6.4367108 +-9.9107761 +0.1883337 +6.4439359 +5.2560911 +5.5598059 +-7.9088659 +-16.4643364 +-18.7011909 +-1.6306232 +3.5335746 +-4.3090725 +-20.1742496 +-2.8787270 +-15.7831793 +8.7356319 +-1.9346775 +-2.1931713 +-10.3203878 +-26.3225765 +-14.6254721 +2.1818304 +-7.7623620 +8.9604063 +2.0879233 +-0.6828700 +-9.3207579 +-27.6629753 +-13.7094078 +-18.7809887 +-10.5812922 +3.9653165 +11.8210506 +-3.4298666 +-1.2591072 +-3.1088414 +8.2062407 +2.8168330 +-9.5976448 +-1.1468563 +-2.2487707 +-3.0322959 +-6.5745058 +-7.1827989 +-7.3270278 +-6.7194901 +-3.4732699 +-0.7497321 +0.8751922 +5.1806936 +-6.8891926 +-5.3112116 +-15.8943157 +3.0258732 +-1.8398606 +-2.6245239 +3.6783764 +-2.5025294 +3.0865912 +-5.5603971 +-5.7793527 +-5.8038068 +-2.6385691 +-3.0323799 +-6.0987597 +1.9891883 +0.0497119 +2.2441232 +-0.3937703 +-8.3174200 +-5.2844143 +-23.8178120 +-2.9865525 +-6.0412569 +-4.3352003 +-11.3183737 +-1.5971813 +-1.8014377 +1.3513552 +-1.8665792 +-3.1446931 +-0.0390945 +2.1075003 +-7.2450805 +-11.2432079 +0.7209379 +-6.2399039 +-1.4907620 +-9.7739639 +-7.7109027 +-2.8508730 +-2.0156753 +5.7348824 +-4.2317696 +-2.9192071 +-4.7635646 +-4.8115988 +-12.7889719 +-12.3279896 +-10.8593111 +8.0239420 +-1.2465835 +-6.0313740 +3.2993941 +3.7494206 +0.0225649 +-13.0568838 +-16.0603046 +-4.8597679 +-0.5931127 +-7.3743382 +4.4294496 +-3.6791377 +0.3032465 +5.2511201 +-2.3704629 +-8.5898418 +-1.8920574 +-3.5487194 +-4.6406369 +0.7408652 +-1.0654771 +-6.2243023 +-13.1984758 +-0.8849539 +4.1942735 +2.0698009 +-3.6837974 +-4.2374201 +-7.8148913 +0.0717948 +4.1873827 +3.2821267 +3.8017359 +-5.3316612 +-8.7159166 +-11.1082764 +-1.4358728 +1.3940917 +-3.0977948 +-0.2841595 +-0.4603183 +-2.9698055 +5.9357562 +-1.3221284 +-2.6173184 +-7.9184909 +-4.9063039 +-7.1987686 +0.3114745 +-5.3347745 +3.4251833 +0.8721745 +-0.6856839 +-7.1134081 +-5.3519077 +-10.9283504 +-23.9875164 +-3.9408231 +2.3737271 +7.6723228 +-3.1269848 +-0.4494141 +-2.2023103 +6.2388153 +1.6085775 +-7.5674086 +5.1283946 +1.4156672 +-0.0263798 +2.4689765 +2.0684738 +0.5586315 +-7.2208652 +4.7982326 +1.7628728 +1.2071182 +2.2422941 +2.2259364 +2.5003443 +33.8255768 +-2.0930424 +6.9946985 +-0.4288756 +0.9954088 +9.3518019 +-18.1639061 +-3.8423710 +1.6055906 +1.5846910 +-2.9015954 +8.6840286 +3.3533514 +2.4338868 +-11.2615223 +-19.4223614 +0.6998547 +-4.6938715 +-2.7108784 +-0.8429135 +-0.0493173 +-0.7596276 +-5.1248398 +0.1916806 +-1.3644538 +-3.0701723 +-3.6442435 +-14.4827557 +2.1406994 +2.1446793 +0.7360308 +6.6267819 +-39.5580597 +-1.3121744 +-1.7655292 +5.5516911 +-34.4447098 +0.7504468 +7.8598337 +-1.3307673 +-40.1273384 +1.5043325 +4.3349934 +4.9645534 +9.4470940 +7.8328567 +0.8117120 +24.6828785 +0.2711740 +11.1371346 +-16.7058029 +1.1437640 +2.2844176 +-1.4531013 +-27.9358101 +1.5827239 +4.6552787 +3.4894509 +-0.3184833 +3.9058714 +-0.4503199 +10.8175497 +2.2964234 +6.9308586 +9.3855667 +0.1169588 +-2.8536198 +28.6534863 +-1.2880267 +8.2316542 +-1.6151205 +25.2374477 +-0.0235529 +-13.5278664 +-0.4349131 +-2.1915388 +-1.5207663 +9.0253868 +3.9599509 +0.7862741 +0.9249783 +1.2739449 +0.8077328 +-3.4658163 +3.3902771 +-0.0494533 +18.5352383 +0.6307436 +-4.3626995 +0.6436913 +-39.8669815 +0.9717772 +8.6203527 +-4.0080633 +-3.5504363 +-18.5234051 +0.8066840 +-5.8465571 +1.1347332 +1.4006168 +-2.3832910 +9.7159758 +5.1328521 +-11.9096966 +-1.8534369 +0.3198284 +-6.4994760 +-35.7433510 +6.1829557 +-0.6951606 +1.1656051 +4.4528809 +-19.9193993 +9.9295702 +1.7751205 +6.0551682 +-2.9893382 +-0.2679474 +0.6628116 +-1.5400953 +-1.8163527 +1.2406597 +-8.4956627 +2.2047200 +1.3420634 +4.3475757 +-1.6042757 +2.6629355 +6.2052765 +-4.1665483 +12.8875046 +-0.7851211 +2.6230617 +-5.6579847 +19.1120377 +3.2728264 +5.9829140 +-6.9445586 +-12.2410040 +23.0785809 +5.7576423 +4.3459177 +8.1841564 +21.2815723 +1.3061895 +-5.1971178 +-14.0587044 +-1.8091080 +-14.1828241 +6.1414623 +-7.6421990 +4.0453138 +-1.4394735 +0.2680860 +-5.7992339 +-10.5886412 +3.7726312 +3.3387270 +2.5061038 +5.7984657 +-2.6127262 +-2.4009097 +-3.2175975 +7.4788289 +-3.1810253 +0.8936450 +2.8324015 +-2.0866048 +25.8391647 +3.3099482 +14.7107153 +-6.7325535 +11.8274097 +9.4904585 +0.6444762 +-16.3490734 +0.0651397 +-8.2454481 +-0.6139124 +3.3027680 +2.0548639 +-2.6621189 +-1.7000738 +3.0377533 +-7.9323235 +5.1218343 +0.0139657 +12.2932177 +22.6499462 +18.2367649 +4.7681208 +20.6931114 +9.3103943 +0.3497445 +-4.4229555 +0.4154378 +-2.6070065 +8.3986225 +1.6789951 +11.2954559 +-2.6668792 +25.8898926 +-1.2736611 +-3.3955948 +6.5799246 +-2.7121594 +7.4774146 +3.3328004 +3.0833437 +2.8531909 +2.0832875 +-0.4600173 +8.6022806 +-4.3014245 +18.0252171 +0.7223534 +0.9924376 +0.6974679 +9.1108532 +3.1672518 +13.5477514 +-5.8166556 +0.7243080 +0.9834962 +0.6529734 +0.3876524 +2.0559521 +1.0403239 +-6.8508501 +15.6694689 +10.6096935 +-1.9832814 +-3.8943391 +0.1045673 +-1.3339437 +24.7295742 +9.6050177 +-2.2630122 +1.1330370 +8.5904303 +-11.9842672 +15.7669163 +7.9925809 +5.5612240 +-6.8346386 +-0.9518747 +1.1287469 +13.6299772 +24.0171986 +3.4416370 +-7.3767943 +5.6762300 +-1.4057947 +6.6107244 +3.0776241 +1.9744160 +34.1669884 +-5.5998874 +16.7238026 +-1.4420371 +5.5296397 +5.1871076 +-6.7256231 +11.5590944 +6.0701523 +13.2332602 +0.2730152 +23.6100636 +5.8705516 +5.2905326 +3.4464197 +-3.6935923 +1.0942811 +3.2058632 +-21.4420204 +-2.3885458 +-6.1488590 +-9.0875978 +-7.2603607 +-13.7561846 +-1.0679812 +-0.5361999 +-1.5635409 +0.9323800 +3.0047591 +0.0594253 +1.6080469 +-5.6747742 +-2.6522410 +-3.6240559 +5.2070460 +8.2132607 +-1.6009743 +0.6935992 +11.9990349 +-3.2209816 +-15.9713306 +5.8202262 +17.7199974 +25.8486691 +20.5046921 +9.0803509 +1.4399703 +31.1035995 +22.1648560 +-6.6716719 +0.9521623 +5.3013444 +4.9908123 +-3.1537437 +-1.8214928 +5.1137366 +15.2620344 +4.2819567 +0.9524429 +11.2886038 +-4.2043538 +21.0573921 +3.5944161 +20.7365856 +-1.8024588 +-1.2859952 +-3.0148685 +42.1423492 +-3.8635061 +6.6040606 +10.1169901 +28.8233128 +-2.1763020 +8.8820229 +-6.0814881 +-4.2927332 +-1.3518366 +-4.7122140 +10.4394102 +5.4187469 +6.1249895 +0.0229280 +2.4731240 +-2.3672376 +29.5333710 +-12.0690813 +-0.7979580 +-0.1521055 +0.9726566 +1.2255145 +-7.3265009 +4.9287286 +16.0726089 +0.5857423 +-3.0561237 +1.1495303 +-0.6030444 +-1.7996422 +2.9681838 +-8.1604986 +-10.1658669 +20.6915359 +1.9266844 +-6.6050916 +-4.9468145 +0.7492645 +3.2667415 +-15.3149805 +9.3977118 +-3.5491979 +0.6911902 +11.1830845 +0.3606917 +17.5894661 +-5.1944060 +7.8234644 +-0.7254246 +-6.7500443 +14.5108500 +10.7386951 +19.7577438 +0.9484286 +1.6727884 +-1.5561228 +-3.1407149 +4.8598390 +7.0125227 +-6.2266221 +46.5934868 +-3.9866793 +6.3746123 +-1.1138093 +0.1619487 +33.5634117 +-16.5255070 +17.5990696 +-16.8967915 +-3.0898116 +7.8376112 +19.4103794 +0.2205370 +-3.0747657 +-1.1933889 +13.7639494 +-4.8052030 +5.1550126 +-1.8917929 +1.3176842 +2.8385582 +-2.6660259 +3.5031083 +-9.6994667 +1.5436857 +2.3809192 +4.7633200 +-2.2961462 +1.3294390 +9.6701822 +-10.2859840 +-7.0899301 +3.1086509 +-3.3042457 +7.0079489 +7.6941094 +-0.2225776 +0.6674870 +1.1731771 +-1.7677245 +17.2501488 +-2.8104084 +-1.6044343 +15.3768568 +14.0760508 +-5.2560563 +3.3435445 +6.3134775 +-21.4531670 +6.3966379 +-1.3467321 +-1.6075342 +3.1130998 +3.4608116 +-1.3269540 +2.5002842 +26.0234451 +3.2054422 +19.2207870 +6.2057209 +4.5805726 +-2.4257259 +7.1049662 +-37.8257828 +-6.7043166 +-7.3276439 +-1.6434443 +-7.4011831 +-2.1156480 +1.6665354 +19.6723633 +34.1645813 +7.1804786 +-66.2248306 +-11.6120110 +-3.6069000 +17.4128189 +-5.6127396 +3.0196548 +4.2997952 +4.3748374 +16.1993599 +-1.2692130 +-4.2695975 +24.4647408 +-1.7731115 +-13.7558746 +2.2198851 +2.8186316 +0.5859233 +5.2630324 +3.7715206 +-3.0955894 +9.9700537 +1.1644852 +-0.0523883 +-1.3834172 +-3.9141083 +1.4254001 +-4.8072686 +-2.6056149 +4.0198369 +7.2208200 +-1.2425481 +-2.0402627 +-0.7281010 +1.0878853 +-6.9635873 +-3.6196766 +-3.0997097 +-6.0335078 +1.3879863 +-2.6921482 +-1.9516271 +-4.1714206 +2.3751936 +1.5751019 +-0.5313390 +-0.2558135 +7.5040293 +1.8262229 +-3.9727423 +5.8168664 +-0.2362845 +-1.3411334 +2.0065629 +2.2217269 +-0.5115330 +28.3798161 +-1.7550189 +8.1207685 +-0.5277892 +1.9282805 +12.3669062 +-5.8557315 +0.2693326 +7.7764783 +-4.9664326 +-8.7471313 +8.3596849 +2.4442639 +1.7191610 +-10.7965384 +-20.2934494 +0.4009621 +-5.1838670 +-4.6883755 +-2.8476775 +4.2648654 +-4.0755472 +-12.8494806 +2.6043000 +-2.5040448 +-1.2256091 +2.3445289 +-3.1408992 +1.5564650 +2.1744020 +0.3986779 +14.0414772 +-27.6274185 +-0.9719446 +-2.4779966 +2.7847376 +-29.1788025 +0.4423443 +6.3052449 +-1.2091446 +-17.5057201 +1.0221020 +1.5865116 +-1.6241518 +10.8466721 +0.5065616 +1.2286065 +10.3407021 +-12.5611629 +12.4214039 +-10.9272432 +1.4161167 +2.2478373 +-0.5541070 +-41.1041374 +-0.9515378 +8.0293283 +2.4050546 +1.3844861 +3.1440618 +11.2275963 +6.8088388 +2.1188340 +-6.4126468 +5.2098489 +-0.0944723 +-2.3464031 +3.7948163 +-1.1913265 +7.4846482 +1.9419165 +21.3527126 +-1.1392016 +-24.3384018 +-1.8872118 +-1.5403767 +2.5604122 +6.3972683 +3.0431533 +1.3777264 +1.7781824 +0.9889411 +-3.5926938 +-6.2615886 +5.7154999 +4.6633339 +14.1623898 +0.3822878 +-7.3923769 +0.4090338 +-31.6131420 +1.8127201 +5.7973046 +-2.3257384 +2.3223383 +-18.6489353 +-2.3700981 +-7.7058039 +0.7338836 +-0.2971079 +-1.1607206 +6.8562002 +7.8450751 +-17.9734077 +-2.3350539 +-3.3992121 +6.2220807 +-43.4089546 +3.1966410 +-0.7030546 +0.4780077 +3.4832103 +-21.8326588 +7.1172123 +10.8619995 +5.5287147 +-4.7466049 +-1.4096398 +-3.7308469 +-0.1049085 +-0.0402747 +-6.7401581 +-11.8783016 +-3.6335781 +-5.7942033 +3.8859134 +1.8378661 +-4.1552052 +-5.5059733 +-3.3334124 +10.0556841 +-1.2151726 +3.8944914 +-7.4219632 +8.9095163 +6.8757124 +-1.5965869 +-4.1371474 +-7.1698661 +0.4927607 +4.1387134 +2.8993318 +1.5344402 +19.3871078 +0.3019382 +-3.6817334 +-20.7632236 +-4.2127681 +4.5785809 +6.8905277 +-2.5072947 +-0.7016344 +-3.9152701 +-0.6504323 +3.1199965 +-8.5568924 +1.0632015 +2.3356888 +1.4144288 +12.0971937 +-2.0208018 +-1.9743552 +-7.2129230 +1.1666296 +-20.0661583 +0.6044415 +0.5303367 +-2.0370851 +14.7577753 +-1.8578089 +7.0938525 +-0.1526169 +7.7780757 +8.7530727 +2.2758873 +1.5128294 +16.1016731 +-15.3289709 +-15.6616411 +3.0481508 +2.7980247 +-1.3585725 +-3.9303648 +-0.8859757 +-3.2013416 +0.4244873 +-3.4377894 +-3.1900983 +7.4062295 +7.9465556 +2.9726379 +10.0506392 +-2.8617160 +-1.0023214 +-2.4082248 +8.0066605 +-2.2904129 +7.6140103 +4.2140446 +-1.8862642 +-2.9297566 +17.5282745 +-3.4441779 +-3.8342874 +-5.7776351 +-1.2907131 +5.8345990 +3.2276950 +3.9729950 +1.6423589 +3.1541398 +-0.7978278 +4.1599298 +6.7336197 +5.1032257 +-0.5370300 +-1.7965266 +1.0480593 +2.5941200 +3.8145840 +8.3325233 +-3.3786674 +3.0742855 +-8.9332304 +-4.0885129 +-1.6507980 +1.3147111 +-2.8916283 +-3.1361303 +8.9063177 +-3.7024953 +-5.4129643 +-5.0397897 +-6.4817433 +4.2766662 +15.5887861 +1.5791960 +-2.1119835 +1.0676607 +6.4387608 +-2.3690577 +7.5000339 +-0.4526916 +-6.7152352 +-9.7564192 +-2.4864359 +-4.7918162 +7.9723692 +-3.9694605 +-2.9257643 +0.6964802 +-2.0984008 +-10.4568758 +5.9126606 +5.9638109 +-6.3411350 +20.4823360 +-3.6310406 +13.3474579 +-1.6967671 +6.4090872 +-1.2938825 +1.9291526 +1.0943710 +17.3623028 +-10.9873857 +-12.5972099 +12.5529280 +8.2835455 +3.9853585 +-0.6696982 +-9.8994589 +0.5339339 +-1.7880839 +-26.1615276 +-4.5159230 +6.5514135 +-6.8737278 +3.2562044 +2.3494618 +-4.4073863 +-0.8021546 +-1.0593566 +-2.9473176 +-0.2757954 +1.8523543 +5.2799425 +19.6138000 +-9.8377857 +-2.9458914 +-2.2675555 +0.7965095 +-2.5224466 +-0.0070417 +2.4523714 +-3.0780396 +-11.3148184 +-0.6117995 +3.0621717 +2.5950763 +12.4798336 +13.3905773 +2.4801888 +11.5516243 +3.0841730 +9.1048031 +4.8787217 +5.6481128 +4.9258232 +-2.2637324 +0.9831557 +1.0936111 +8.6210403 +2.0835724 +1.7287958 +1.0684944 +15.3220453 +6.7749510 +4.6194444 +1.0264215 +10.8546638 +-1.3162469 +-4.0124960 +9.3213577 +-3.4374909 +14.4035044 +4.3125567 +15.4400749 +-8.3657627 +-9.2949018 +-4.8568130 +-6.1613107 +2.8503947 +-6.8027029 +8.2852478 +4.9432955 +6.0613990 +4.4188294 +2.0160544 +-6.6636362 +-5.5852671 +7.5144076 +-12.6152306 +-1.3349155 +-5.9659262 +2.1906998 +-4.2062054 +5.8718066 +8.1033163 +-7.6472621 +4.2266402 +-4.8417182 +-5.8275695 +0.2132680 +2.0425100 +-5.4228735 +-11.4777498 +11.4643726 +-11.3639088 +-11.7122602 +-7.6750784 +-7.0130877 +5.8049107 +-35.8726959 +-0.3199109 +-3.3524530 +1.8508587 +9.1146526 +-1.6679026 +10.4333925 +-3.6948469 +-0.0203987 +2.3939660 +-4.6253686 +0.3639374 +7.3374057 +2.7044332 +-0.1614995 +7.6462312 +0.6698105 +-0.7947898 +4.3233938 +8.6341305 +-7.6138916 +39.1949730 +-3.7501485 +2.3677044 +0.8211951 +3.9116399 +-5.1495328 +-7.9138393 +7.2914257 +14.5416861 +-9.0770931 +5.0487785 +17.3403320 +1.9386342 +0.6324672 +-1.7128414 +-17.2978992 +-1.1732948 +-8.2501554 +-4.1377993 +-4.4410758 +17.0038509 +-6.3806400 +2.5692861 +10.2201786 +-1.2983389 +-2.7177401 +1.7999945 +-5.0037899 +-1.2457165 +-2.2286501 +-2.5015869 +12.3836784 +-2.8804753 +-1.9820186 +-0.1338871 +-0.7245036 +-0.8633795 +-0.3751829 +2.9641371 +-2.6391759 +-31.7810307 +-1.1730816 +-17.5578346 +-5.1192880 +10.8359423 +19.2984905 +5.9754229 +0.0893184 +-42.2806816 +20.4604969 +-2.0767446 +2.3731840 +4.7576218 +-0.6104618 +-0.2360311 +2.9697182 +-2.6556888 +-5.1925821 +14.8760710 +-7.1173677 +-1.5280318 +-2.7496908 +3.6538272 +-35.9265366 +17.3929443 +0.4286090 +-10.3692198 +-13.5339022 +-2.2335601 +-5.2968426 +11.7553806 +27.5338192 +2.6490624 +-66.6109848 +-4.5781913 +-1.2949865 +-2.0079243 +3.4691133 +4.4337010 +3.6867349 +1.7265395 +-9.1490479 +9.7338181 +-1.1204364 +1.7367598 +-6.8209853 +-1.6055075 +7.4055915 +-0.7235523 +2.1123106 +4.4166632 +3.8843181 +-4.3750572 +-3.3195229 +7.0832944 +-0.6409875 +-2.0636892 +4.8814502 +0.9600161 +-7.4952736 +-5.9097352 +-9.1748905 +0.7018318 +-4.7004042 +-3.5791497 +-1.5650493 +14.1566668 +-7.5352631 +-16.7739010 +-3.3107042 +-0.0843526 +4.4064484 +-2.9723606 +0.9358721 +-9.9127951 +16.9262848 +6.9382992 +-0.8902888 +-8.0397854 +6.8748684 +5.4124565 +-2.8877566 +5.3816161 +-2.9164579 +-0.1529281 +1.8996359 +3.4454372 +-0.0878252 +23.0820541 +-1.7788171 +3.4581034 +-0.6127883 +1.4104296 +-12.2007217 +-8.3164854 +8.9313898 +5.6547890 +-9.9187164 +-10.1182814 +6.9094830 +0.3480394 +1.2871121 +-12.5272331 +-32.9044685 +0.1744326 +-8.7551537 +-6.5912170 +-4.0643220 +5.5829520 +-6.7516322 +-14.1534014 +-4.9288197 +-1.9775146 +-1.0862895 +0.4406215 +-17.6070461 +-0.6525180 +0.6453679 +0.9989738 +4.1135406 +-13.3836184 +-0.7135140 +-2.1179612 +-0.8483055 +-13.2680635 +-0.5381604 +4.1365633 +-0.9132850 +-25.2907391 +-0.6830073 +-0.3567548 +-2.8201864 +5.9123282 +10.4376850 +-0.1330851 +4.9793711 +-14.6838722 +12.2261677 +18.2520599 +1.1769360 +2.0641832 +-0.4348533 +-37.0401840 +-1.1870104 +-5.1865878 +0.7022351 +5.2527146 +10.6537142 +6.3626862 +2.2246747 +2.0163579 +-10.5918961 +-1.0657824 +-0.4672826 +-1.2619908 +-0.4930945 +-1.0195481 +0.6803161 +3.4126406 +16.8717861 +-0.6200653 +-27.7414322 +-1.0467362 +-1.7449260 +7.2801943 +4.9322495 +2.1451342 +1.0843655 +1.0846494 +1.4461991 +-2.9424791 +-7.9565511 +8.6833944 +-0.7378912 +3.5174425 +0.1031871 +-12.9631777 +-1.1574696 +-31.9735165 +1.9791560 +2.9034801 +-1.8774107 +-1.2712533 +-19.7472534 +-2.8103142 +-10.0841188 +0.2782328 +-0.4849197 +-0.3908572 +4.2635121 +8.9132185 +-21.9810905 +-3.0367901 +-1.0326079 +5.7973614 +-52.7563820 +-0.3312619 +-0.7531838 +0.6646154 +2.3646941 +-17.8562737 +3.7836802 +22.3852329 +-1.8586905 +8.2590647 +-2.3446019 +-13.5876350 +1.1612760 +1.6418281 +-9.0932541 +-16.2851200 +-9.4319077 +-2.0159972 +3.4063556 +-1.4218291 +-2.8807943 +-8.0880709 +-3.5228355 +0.3476179 +-1.6282802 +2.3066401 +-14.1368484 +5.6330495 +6.5622549 +2.1544733 +1.0054750 +-11.2622499 +-9.3409119 +3.5452094 +1.8009789 +-5.8777246 +14.7804203 +-0.2989930 +-4.1999683 +-15.3915176 +-7.4358926 +8.0584021 +-4.1550345 +4.0172091 +-4.8260279 +-3.6287854 +0.2737384 +1.9376671 +-4.2218609 +-2.7126925 +-0.6365828 +1.1681271 +1.2734936 +-7.2544785 +-1.4586123 +-5.3210645 +-3.2305801 +-10.5916042 +-2.6946056 +-3.6567416 +-1.7608683 +9.3556023 +-3.0503750 +2.7691600 +-3.2718029 +0.7950153 +0.0045690 +-0.0574573 +-6.1498995 +12.6739769 +-15.6800194 +2.8637486 +2.3336685 +2.9941514 +-0.9856229 +-4.6434674 +1.2347231 +-10.9686375 +-3.7926211 +-4.9091420 +5.3835611 +0.3452848 +-2.2875304 +2.4051721 +4.8761578 +-1.0960674 +-1.6700337 +-1.3885226 +2.5104532 +-1.9756384 +3.6423225 +4.3128738 +-5.3856869 +-2.6708493 +12.6179409 +-1.2421986 +-3.5488992 +-4.3065004 +-2.3379889 +3.9089098 +2.9217012 +1.9564540 +0.4816772 +0.4654822 +-4.5794077 +6.2324290 +-1.6924629 +-16.4798679 +-1.2584805 +-4.6941018 +-1.4162202 +-5.2559247 +3.9416902 +2.6196542 +-0.5318796 +-1.5859361 +-7.1771193 +-2.4054282 +-5.2590919 +0.5485918 +-3.2217796 +-1.7529492 +3.4025404 +2.8283877 +-6.4693933 +-6.5541596 +-2.4900708 +3.3670440 +10.5289049 +-6.3270540 +-2.2316775 +0.9766282 +4.5038309 +1.6540622 +-0.3530079 +1.4495481 +0.5179163 +1.9683022 +-3.2615335 +-8.0983438 +-0.6279932 +1.4953700 +-2.2228868 +-6.8725948 +-9.6659813 +-2.9764609 +5.8594532 +-3.7289293 +-3.6174338 +12.2104731 +-4.2736588 +-0.5496873 +-1.6623044 +4.2818918 +-5.1230235 +-4.1056952 +-12.7885551 +1.9287744 +2.1166975 +-11.3813581 +-0.6815327 +4.4359913 +3.0598848 +-5.3783274 +-9.5375881 +0.1545086 +-3.3935156 +-14.5914249 +-11.3627958 +8.0093555 +4.2155704 +1.8213868 +-4.2192197 +-2.6866028 +-2.8553026 +3.9486711 +-3.5678163 +-4.2830563 +-2.4796462 +5.2539096 +7.8275251 +-7.1207209 +-2.3966503 +-3.9910102 +-5.3618259 +-0.9102010 +-3.6934659 +-3.9147644 +-3.5006714 +-5.9505215 +-5.0836201 +1.8538268 +6.3310084 +3.9506826 +2.7349305 +3.1693110 +4.0120854 +-0.6671401 +-0.7237675 +4.7668996 +3.7904770 +4.7879839 +-0.8188723 +-0.1124203 +0.9144442 +1.9207811 +-3.6756039 +-4.6166291 +-2.2510281 +3.0952778 +-3.7164550 +5.3598304 +-7.1901684 +2.6062276 +-0.6261731 +-3.8232193 +1.4688997 +-2.7622514 +1.4496236 +-5.9964194 +8.0248919 +-1.6743629 +-16.1862812 +-1.6437851 +-3.5247815 +3.1996009 +-0.5555996 +5.2244124 +3.9531639 +2.8838255 +3.5138123 +-7.1706519 +-2.0491560 +-2.4431705 +-4.1122980 +-6.8353014 +0.8357009 +-3.1607006 +-1.4138912 +-3.3762248 +6.0926700 +2.2110605 +0.1106064 +-4.7946763 +0.0107576 +-5.3270869 +-2.2890799 +0.8095887 +-7.5968490 +-2.9949546 +4.7550740 +-0.7254586 +-1.5910501 +-8.5958662 +-0.6196445 +-3.6612160 +-31.3910007 +-9.1257639 +-3.1120379 +0.2690374 +6.1909180 +-2.3302889 +-1.0048016 +3.3970551 +0.0696624 +-1.3105997 +-2.4240501 +0.2595035 +-0.0787416 +-1.1097895 +-0.6755338 +-0.0012605 +1.8450645 +-1.8295034 +4.0467272 +0.3856658 +-1.3499099 +5.6345849 +-2.3116901 +5.2053075 +0.6286426 +-1.5371573 +-0.0712112 +1.2305897 +-1.0464575 +1.5938057 +-0.6765728 +-0.8825433 +0.0386758 +-0.3229724 +1.3194302 +0.2693738 +-0.3778139 +0.0510946 +-0.1746364 +-1.7828593 +-1.0551414 +-2.6748652 +0.7406007 +0.6785895 +-4.6799254 +0.7278211 +-0.1283249 +0.7266810 +-0.1824171 +2.7048995 +2.3471854 +-0.9906165 +-1.1215410 +0.6156561 +-1.5896717 +0.3015383 +5.3722873 +-0.3104323 +-0.9714224 +-2.4433362 +-0.7946708 +-3.4029276 +-0.0338692 +0.7253326 +-1.4302781 +-0.9482661 +-0.3469606 +-0.7296578 +6.1563511 +-10.0133982 +1.8837644 +-0.0978005 +0.4352189 +1.0560594 +-1.2298688 +-0.1566500 +0.2669453 +-0.5543978 +1.1027652 +-3.0160201 +-0.1882198 +-0.4508967 +-0.2832312 +-3.3064501 +-2.1078246 +1.3105724 +3.8514993 +-1.0489954 +-10.0120926 +-2.0191231 +0.1645162 +0.9351901 +-1.4498416 +-3.3618474 +3.0417538 +1.6047924 +-0.3359959 +-0.1283861 +0.7373772 +2.6126132 +2.0007393 +0.1936965 +9.6319218 +-1.2531862 +-0.9510913 +2.0325043 +-4.1785426 +-1.0955452 +-0.3817516 +0.4349849 +0.8409608 +-0.6461185 +3.7788703 +-1.0558590 +-0.7309286 +2.0135293 +-0.0284732 +-4.1869426 +-1.4633507 +0.1387579 +-2.3205130 +0.1757074 +1.0033761 +-0.0872730 +0.3766339 +-4.0382347 +1.5642712 +-0.2611831 +5.0205278 +-5.4024677 +-2.5272026 +-8.0851736 +2.1599505 +-0.7007972 +0.8363811 +0.5779384 +-6.1844177 +-0.9808510 +-1.0448720 +3.2256424 +6.0267711 +6.4354100 +2.0568035 +3.9576361 +-6.5384221 +-0.0751250 +1.5138035 +2.5649691 +-0.9699683 +20.1317177 +-1.7650516 +-0.4720780 +-0.7120091 +1.4760395 +-21.8940868 +-10.3448267 +6.7438979 +-1.1796962 +-11.4972973 +-5.6451712 +4.7771177 +1.0767108 +0.9731802 +-15.0029221 +-28.2113419 +0.0278695 +4.7704186 +-5.1671209 +-2.7494745 +3.6182723 +-4.8841772 +0.9534918 +-1.1394032 +-2.6358097 +-1.2955122 +-5.3887696 +6.9870586 +-1.9872353 +-0.8466809 +0.5557936 +-12.0962477 +-11.8882771 +-0.4341502 +-2.8679764 +-2.2738328 +-13.6702213 +-1.3024031 +-0.6224128 +-0.7395837 +-22.8859463 +-2.9283929 +-1.9385935 +3.4869428 +3.8743417 +4.8736658 +-3.5037491 +2.4259861 +-17.3658504 +10.7031937 +-17.7597752 +1.0537601 +2.2161019 +-0.4017940 +-23.3468685 +-2.1483080 +-12.7511072 +-1.0544091 +-4.5187230 +6.5356464 +3.0078528 +-2.5214770 +1.7943916 +-13.0045404 +0.0885642 +-0.4391412 +-0.9179190 +-3.0915499 +-0.8037439 +0.8800864 +-0.5981265 +14.1546898 +-0.7814002 +-30.0171185 +-0.2862594 +-1.3094594 +1.3702053 +-0.7846514 +1.1680027 +0.8511488 +1.0024270 +1.2364268 +-4.5485625 +-9.7952127 +8.8802271 +-3.9188778 +-9.8180532 +-0.3941015 +-11.8466597 +-1.7757797 +-27.0992546 +2.3313661 +0.5283502 +-0.8115103 +-0.3378791 +-16.9056187 +-1.7242831 +-4.7680902 +-0.1371987 +-1.2537283 +-0.8157203 +1.7261460 +9.3904667 +-21.7517719 +-4.4871330 +-3.6081066 +18.3678570 +-48.6726494 +-3.8220356 +-1.2696060 +0.3915709 +1.3922019 +-33.2247086 +0.5021604 +11.6144905 +-0.7094356 +-1.4266349 +-1.9212527 +5.9523053 +-0.4644405 +5.0944777 +-0.8304015 +-12.6443567 +-12.0283060 +-2.2908044 +3.2816849 +-0.6272511 +-5.0100546 +-12.6391287 +-3.7538607 +-7.1540213 +-1.2864052 +3.2079840 +-8.7570705 +2.6353967 +5.5863042 +-0.7604370 +0.5342890 +-12.1482382 +-10.9504290 +1.5722860 +2.0056381 +-10.8787804 +9.9725027 +0.2510206 +-8.3236246 +-16.1202545 +-4.7398391 +2.3115826 +-8.5652561 +1.0304208 +-3.1211853 +-3.8721375 +-1.0529245 +-0.9412329 +-4.2852468 +-4.2560277 +-3.6605799 +1.0887184 +-9.3152618 +-13.5181570 +-0.9012513 +-3.1753457 +-7.4830241 +-8.1254311 +-2.6977665 +-2.6772363 +-1.2388916 +6.4429936 +-8.3597584 +1.4448951 +-0.0568573 +-0.3362932 +-3.8114650 +-4.6148806 +-5.6889467 +8.0344582 +-10.3435879 +-6.9522228 +2.0692310 +3.4042382 +-0.7125479 +-5.7403679 +-3.2836971 +-2.2310729 +-6.0668826 +-5.2134252 +-0.2175944 +-8.7341118 +-11.0044203 +3.6964705 +1.0739025 +-7.4766130 +-0.3876601 +-1.2858273 +-1.6805223 +-1.6274545 +1.9474106 +0.8651593 +-9.5849400 +-0.9135899 +8.8069563 +-0.3316862 +-2.2035847 +-7.0763907 +2.7152510 +2.3979836 +2.5696692 +1.5469739 +1.9046965 +-3.4928501 +-8.9102211 +8.5570879 +-6.8328185 +-16.3732548 +-0.5642882 +-13.9891186 +-2.4126132 +-10.5825491 +4.5523300 +-0.6819664 +-1.7042972 +-4.2514834 +-7.1502423 +-2.8674281 +-1.7680048 +-0.3564220 +-3.9335070 +0.2961648 +-0.2298331 +2.2877789 +-2.6621478 +-8.5734978 +-7.9944930 +1.7665269 +6.8331232 +-11.7124481 +-2.6614478 +0.2824961 +2.8951070 +3.1268063 +-5.3385406 +-0.5559046 +1.2777152 +-3.7016668 +-2.5995119 +6.5144243 +-1.8846962 +-1.5255411 +-3.2468946 +-5.6966438 +-12.1013021 +-2.9244974 +5.4734311 +-5.5239263 +-4.4094615 +6.0609350 +-6.9158592 +-5.0661912 +-2.0927780 +3.4946873 +-7.2624631 +-2.4221041 +4.1102772 +-0.9407370 +-2.9180210 +-5.7045951 +4.2923861 +0.8520194 +3.5704606 +-2.4185433 +-6.8705831 +0.2158802 +-1.8633859 +-15.2669477 +-3.2156522 +-0.0320320 +9.3261557 +-0.7411395 +-3.7040946 +-3.4502330 +-1.3292344 +-3.7276437 +0.4586361 +-6.3624310 +-3.1257615 +6.0681024 +-0.6713728 +-5.3195906 +-1.5706751 +-3.9999952 +-10.3987360 +-1.3976225 +-3.0706961 +-5.0705328 +-1.5948818 +3.6175008 +-9.9177380 +-1.9653496 +3.0823190 +2.5000203 +0.2532973 +-7.2412014 +0.6916978 +-7.7343121 +-4.9291883 +-6.1468778 +1.1929753 +6.1894817 +-0.7791557 +-0.8815213 +0.2398882 +-1.7094334 +-6.6435905 +-3.2378886 +1.0218548 +-3.6386662 +-7.6265602 +5.4901199 +-10.7384939 +-1.8788075 +-0.8610553 +-1.1544886 +-3.5176213 +-2.3424540 +0.8642781 +-2.6929920 +2.6370749 +1.7175133 +-15.5002880 +-0.1450193 +-4.0766587 +-5.5892978 +3.8182359 +3.2152863 +4.2823758 +2.6807604 +5.1539979 +-5.5334716 +-3.1695108 +0.0599914 +-7.6239614 +-0.8817030 +-1.0686287 +-6.3977332 +-1.9022087 +-0.9791996 +6.7741981 +1.7615042 +-8.7539253 +-1.6940931 +-0.0568248 +-5.5518613 +0.3273161 +-0.5831202 +-8.3663435 +2.0703816 +0.4250537 +-3.0663898 +0.4250346 +-11.4305315 +-7.7027984 +-2.6944644 +-18.9245567 +-15.5830727 +-3.8083947 +1.9095162 +3.5202165 +-9.1491337 +-6.7789989 +1.1365314 +0.0309684 +0.3222765 +-2.8255825 +-1.2172052 +-0.6537793 +-0.3383951 +-0.3861119 +2.0534778 +-0.8712467 +-2.4790843 +2.9657302 +-2.1986825 +-1.5541396 +-0.6379833 +-0.9222924 +0.6891505 +-2.6661594 +-0.5962877 +0.2502265 +-5.9121971 +-0.1075455 +0.5105692 +-2.5833733 +3.5546172 +0.1596971 +-0.9596587 +-1.3890766 +1.1883801 +0.8333946 +0.6049650 +0.1219174 +-2.2932050 +-1.9929541 +-1.5892268 +-1.4234899 +0.8049061 +-1.3928368 +0.4008769 +-0.7752981 +0.3175082 +-0.3449124 +-3.8042157 +3.4855697 +0.2612852 +-0.5945981 +-0.7405496 +-1.1098601 +0.1986585 +0.9474016 +-0.4735588 +-1.5762579 +0.1997969 +-2.6046591 +-3.8626397 +0.6629178 +-4.5357900 +-0.4960335 +-0.3633398 +0.2835985 +0.2000743 +1.0774493 +-2.4732251 +-0.1934103 +-0.3848662 +3.2642636 +2.4367840 +-0.6584745 +-0.4048572 +0.8142846 +-1.4182605 +-0.5239255 +2.4890006 +-0.6591688 +0.2225580 +-4.9652653 +0.6121947 +-4.2375903 +0.8622354 +1.9079286 +1.9505374 +0.6090805 +-1.4168200 +-1.0827466 +-0.0186836 +5.0095587 +-3.5240152 +3.3402576 +-1.2791086 +-6.7368512 +2.7870500 +0.4524963 +0.5247370 +1.9444431 +-0.5370981 +-0.4343227 +-0.7028121 +0.0458746 +0.9965529 +-3.2801464 +-1.5405929 +-1.8319609 +0.0209039 +0.1087262 +-0.6396425 +5.0869441 +1.1528753 +-0.1695038 +3.9634535 +-0.2348188 +-3.8581502 +1.0461596 +-0.4702040 +-1.4774451 +-0.2994042 +1.1152339 +-1.3925503 +-0.4320480 +-5.2477345 +0.2259142 +-0.3104829 +2.3757238 +-1.2805338 +-2.9246438 +1.6366377 +-2.7087650 +0.1558136 +-0.4268618 +0.3888534 +-6.8831234 +1.1420568 +-1.2481314 +0.2417381 +-4.5789752 +6.5989079 +-4.9349146 +3.5614183 +-5.9700460 +-1.7961131 +1.4780097 +0.6029658 +-3.9101548 +17.7498417 +-1.3935752 +-5.0748558 +-0.7822378 +1.2642415 +-16.0258427 +-12.4540129 +-2.4778497 +-0.9122599 +-11.4681053 +-7.4685402 +-5.9481750 +-0.5217112 +0.6215793 +-8.1362391 +-35.6393967 +-0.1006754 +5.5936661 +-7.3925009 +-3.9999743 +-1.7770764 +-10.7264538 +6.0308819 +-0.8709002 +-4.6144443 +-0.2639290 +2.1091614 +-2.6879227 +-2.5476973 +-2.2856162 +0.5753048 +-15.8499298 +-8.3754215 +-0.4792547 +-1.9814126 +-3.7442899 +-10.6756973 +-2.1187932 +-3.9268377 +-0.4810202 +-21.0822639 +2.9887772 +-4.1167870 +0.4138560 +1.9133821 +-9.4569397 +-5.6237402 +1.7482970 +-21.9018478 +10.8563347 +-9.5126429 +1.1016861 +2.0406294 +-0.0801345 +-12.2359066 +-1.1914327 +-1.6614276 +-3.2651365 +-4.8608346 +-2.6505022 +1.1355342 +-7.9254866 +2.2360215 +-14.9506502 +2.5381086 +-0.4644425 +-0.3030307 +-4.7945333 +-0.3068669 +1.0943938 +-2.2165940 +11.6604481 +-0.6260000 +-32.7135887 +0.1357918 +-1.0038488 +-5.9083071 +-4.1546769 +0.4043499 +1.1164421 +0.8977953 +1.3404469 +-3.1709340 +-7.6976452 +9.0825853 +-3.8893058 +-1.8001869 +-0.8121107 +-7.8064523 +-1.3664172 +-9.7261572 +2.5376191 +-1.1089680 +-0.3678837 +-1.9218041 +-10.5598774 +-2.9122562 +-1.3751405 +-0.5557380 +-0.8136243 +1.2036918 +-0.9497757 +-0.4223731 +-13.0303240 +-5.2900829 +-1.7878829 +0.2671797 +-50.9420128 +-7.5641875 +-1.4790027 +-0.0554539 +0.4659275 +-35.4090805 +-2.9429564 +3.3772633 +-1.3998523 +0.9416754 +-3.4692390 +-5.5417347 +-4.2675819 +-1.6454782 +0.8553107 +-10.2096481 +-9.6055737 +-2.9607031 +2.8897111 +-3.1407690 +-1.9334673 +-15.2141829 +-3.6456335 +-11.9957800 +-1.5637493 +2.5698228 +0.9201006 +-1.1044886 +-9.6120205 +-4.2654481 +0.7717633 +-11.4689350 +-9.1399889 +-0.8843893 +0.2973388 +-10.4306803 +3.4682822 +-0.8013203 +-4.4575329 +-16.2596703 +-7.3153377 +-8.6930428 +-6.3544569 +4.5195479 +-5.2868581 +-6.5566201 +-2.0435855 +4.5565801 +5.7828808 +-4.2286844 +-4.6535754 +0.6745756 +-10.5668659 +-10.6582966 +-0.8065888 +-4.3558192 +-9.1592932 +-5.7313552 +-4.0736070 +-4.1139064 +-0.7562938 +0.4837428 +1.9395292 +-5.5529761 +-8.3192053 +-4.0117579 +-8.0923786 +-6.3422527 +-14.0711603 +2.6829774 +-7.0216069 +-1.9041326 +1.5436927 +3.1105886 +-0.0678110 +-4.8549061 +-3.1921196 +-8.5638647 +-8.2412090 +-10.6902704 +-9.2196369 +-8.5689659 +-18.5533028 +3.0746965 +-5.3800387 +7.8135619 +-1.6902970 +-0.7349225 +-7.6772985 +-0.7820166 +-3.5050662 +-1.8209572 +-14.0303907 +-0.5752953 +2.7451093 +0.5451111 +-2.0346558 +-12.8943443 +-4.5791769 +0.7889438 +2.3937278 +1.5701162 +2.1440852 +-3.8860829 +-7.5479326 +4.7210007 +-7.9929752 +-18.5964279 +-1.8534685 +-5.5198379 +-2.3787048 +-12.0386238 +5.2857180 +-4.6696467 +-2.8692467 +-5.1070194 +-6.4086781 +-3.7679014 +-0.7703987 +-1.1836523 +-2.8720965 +1.6503862 +-4.3630314 +-6.8553400 +-1.0318002 +-9.8891745 +-3.3973083 +-4.6076541 +0.8282809 +-16.8971367 +-3.1217456 +0.6700398 +0.9550498 +-4.3388038 +-9.7380743 +-8.4923315 +-2.1590922 +-1.3730342 +-3.4926264 +-3.5481868 +-1.5667549 +-2.0149822 +-2.2717199 +-9.6301003 +-9.4321880 +-3.4325521 +4.9960680 +-2.3269544 +-1.0015342 +-3.4745331 +-5.4183798 +-9.3240070 +-2.3403995 +2.6051884 +-9.9706678 +-1.5966489 +-7.8541026 +1.5677452 +-1.8495307 +-2.7422831 +-1.7976077 +-0.6611819 +1.0537367 +-0.5482222 +-8.0000887 +-0.0542530 +-0.8789016 +-11.7440491 +-4.3734035 +-6.9941230 +-2.2656794 +3.1356976 +-2.4478700 +-6.8606710 +-3.9545138 +3.8233767 +-3.3315153 +-10.3639269 +-3.0024631 +2.0199845 +-5.4338875 +0.4024906 +-1.4016676 +-3.0040925 +-8.8381252 +-1.2155839 +-4.4404111 +0.1306465 +-0.7568384 +8.7546215 +6.2159295 +-3.9809647 +-0.5090494 +-0.7348434 +1.6761950 +-6.6481447 +-7.1663747 +-6.2662706 +0.1368674 +-6.0711527 +0.5381163 +8.6489935 +0.1085288 +-0.9969563 +-2.1992302 +-2.5496128 +-7.9888191 +-5.5991697 +-4.5248919 +-1.8354772 +-3.2864780 +5.2491202 +-5.8254147 +-3.8579648 +-1.1411713 +-0.9798224 +-6.2877417 +-1.2616394 +-2.1275849 +0.9008745 +-5.0980239 +0.7532713 +0.9978221 +-0.2553536 +-3.5347328 +-1.8317397 +-2.5154552 +1.1560979 +5.3085356 +0.2798776 +5.7944446 +-5.7640471 +-1.2083957 +-2.9803066 +-7.1364388 +-6.2038040 +-3.6752152 +-3.2894471 +-3.0460110 +-0.1625825 +7.1389198 +-7.7658563 +-3.4704323 +-4.8975282 +-0.5321597 +-9.7860126 +-0.0748483 +-1.7984986 +-5.9496098 +-0.1945027 +0.1062112 +-7.8807044 +-0.7733849 +-12.8534813 +-3.5191596 +-2.5529742 +-1.3166473 +-14.5279598 +-4.2347856 +1.2307879 +0.2476707 +-5.7320466 +-8.0653849 +0.3981947 +-1.8838837 +-1.2333851 +-2.0113683 +-3.2179103 +-0.7290467 +-1.9142588 +-0.4514285 +-0.3815484 +-0.8902308 +-4.0162115 +2.9209146 +1.4042125 +0.8292055 +-6.4725685 +1.4843184 +0.6508525 +0.2890088 +4.0646853 +-1.2007531 +-1.7903925 +-4.3757505 +0.4786513 +-1.6912625 +-2.0321126 +-3.7806995 +-2.9761763 +2.3689830 +0.7244224 +-1.1594751 +-0.1574948 +-0.9148932 +-6.4234381 +-1.2682303 +-2.9363821 +-0.5680063 +0.2888571 +-1.0286448 +-1.9064802 +0.3710861 +1.0919253 +-1.4820986 +-5.4746361 +2.1758311 +1.8733023 +-0.8466163 +0.9229337 +-0.6213355 +0.4284799 +0.5238243 +-0.4470125 +-3.2955873 +-1.9215577 +-3.6504025 +1.6675023 +-5.5628748 +1.0484231 +-1.6380316 +-0.3119147 +-0.5346583 +-0.3336306 +-2.6390920 +-1.3847525 +-0.5262170 +0.0253775 +-0.2657369 +-0.4176269 +1.0480690 +-0.5283939 +-0.6751776 +-1.2607301 +-1.9128516 +-5.2441382 +-2.4057295 +0.8550522 +-4.2471533 +0.4434583 +-2.2355797 +-3.1879470 +0.0723533 +-3.4528384 +-0.9009936 +-1.1157299 +-0.1922424 +-0.5767124 +-4.7082310 +-3.1408622 +2.4055948 +0.0085807 +-1.9087160 +-1.0050122 +-1.2011079 +-0.7577121 +3.2331097 +1.3288709 +1.3270279 +2.3080575 +-2.9265087 +-8.1145802 +-1.2471118 +-1.8270913 +2.3094277 +-0.6377772 +1.2314690 +-0.5259290 +5.4618554 +-0.3801828 +0.0227456 +4.8286662 +-0.9702522 +-4.9964433 +1.1376493 +-1.1611556 +-3.2890861 +-0.5057454 +-0.0975696 +-2.7676871 +0.3649525 +-8.7537670 +-0.0386702 +0.6385589 +-0.2573052 +1.4698561 +-3.0539196 +-1.0880656 +-3.7756541 +1.2512836 +0.6882407 +-0.6321312 +3.7691882 +-8.2653923 +-1.6750600 +-6.0301237 +-1.4616826 +5.0460062 +-13.5527134 +-1.5223188 +-7.0992446 +-1.6931231 +1.6511322 +0.2982912 +2.3867853 +-18.1904678 +-0.9682900 +-7.5839911 +-0.7979426 +1.3289847 +-21.7862263 +-18.4921875 +-9.3921280 +-1.2758334 +-13.2069273 +-11.3378553 +-21.6833782 +-1.2983811 +0.1018633 +-5.6347718 +-26.2305851 +-0.3405039 +-5.6498218 +-10.3533888 +-5.6943955 +-7.7631817 +-7.0849442 +0.9272587 +-6.3884139 +-0.6328577 +1.8860539 +-3.7559583 +-11.5163860 +-2.1723638 +-3.4429083 +1.0759394 +-25.8426895 +-7.3164148 +-0.1941715 +-0.9501628 +-3.6081905 +-11.6518755 +-4.0050941 +-6.9688945 +-0.6683155 +-18.5830479 +-4.0400443 +-13.3701277 +-4.8864808 +-10.0167418 +-9.3149614 +-5.2751422 +-18.2331696 +-31.9397049 +5.0740762 +-9.9170847 +1.4734744 +-0.5553045 +0.2384321 +-9.5303240 +-1.2292154 +-20.2615604 +-6.0469322 +-2.7952800 +-8.0152893 +-11.8121042 +-13.0354643 +1.5516516 +-34.0565567 +-3.1810277 +-0.6928037 +-0.2494917 +-18.4616833 +-0.1015622 +-0.0623984 +-6.8605499 +-17.1443787 +-0.5423498 +-61.5228004 +0.7731913 +-0.4289594 +-13.1833906 +-11.4471388 +-0.6692867 +1.4564962 +1.1431026 +1.1898655 +0.9494449 +-5.5953407 +7.6729169 +-2.6764860 +-29.8763466 +-0.8228355 +-4.2729340 +-0.6414050 +-5.0621548 +2.9970694 +-3.5843801 +-0.3648276 +-3.8390360 +-6.6217957 +-2.6681616 +-0.2285115 +-0.9816554 +-2.2680931 +2.6302385 +-3.2470772 +-12.2659931 +-11.5795937 +-5.7740779 +-5.5006256 +-12.2026815 +-59.8703842 +-11.0479155 +-1.8603606 +-0.0099370 +-0.6040378 +-30.2889175 +-7.2815948 +-4.9478717 +-7.5243425 +-0.6168739 +-4.0599604 +-5.4919705 +-0.5668869 +-5.5868211 +-5.4862208 +-10.7683611 +-6.9914966 +-2.5445731 +3.7315238 +-0.5765532 +-1.6567216 +-3.7750740 +-2.0940094 +-9.7091208 +-1.6816351 +2.2067451 +-8.0949068 +-9.8285341 +-13.2275543 +0.3567944 +-5.8474646 +-11.1442366 +-8.5954266 +-0.5382506 +-0.6084684 +-6.1586738 +-9.4340706 +-1.0751269 +-2.9250178 +-10.8315001 +-9.1121330 +-12.4161158 +-7.2462621 +5.4069057 +-6.8713641 +-2.2532277 +2.6806004 +0.6789020 +0.4800270 +-2.6237323 +-3.7246540 +2.0671382 +-1.2748119 +-13.2257376 +-0.2821642 +0.5477384 +-5.1801796 +-10.1913748 +-6.7499614 +-1.4805002 +-1.3616331 +-3.9223945 +-2.2482777 +-13.5327253 +-3.0050778 +-6.4811597 +0.6030028 +-7.7860150 +-4.5553603 +-11.3896399 +-1.1681681 +-4.8920736 +2.1794474 +-0.2807823 +0.9524065 +-10.0721016 +-2.6311133 +-5.3473134 +-10.3387032 +-7.3781037 +-4.4916096 +-6.6158109 +-22.2116318 +3.2629745 +-12.9217834 +-4.5049853 +-1.6425207 +0.1197156 +-11.3474007 +-0.3883104 +3.0004361 +-3.3404446 +-7.1800838 +-1.4605119 +-8.1875010 +1.0217470 +-0.6729520 +-6.7094631 +0.7697903 +-1.1365087 +2.7011001 +2.2006562 +2.9545090 +-0.2471784 +-7.3805480 +4.7128515 +-2.2216783 +-18.4921703 +-1.6339265 +-4.6938872 +-0.3977884 +-6.7228594 +6.1131139 +-7.6690087 +-1.4091290 +-1.8506021 +-7.1696892 +-5.8881783 +0.0026256 +-2.0668066 +-3.1849301 +5.0454521 +-7.2352271 +-13.5787153 +-3.7963116 +-10.8066607 +-9.0493031 +0.7539256 +-9.3399553 +-20.5761204 +-3.7691691 +-0.1231761 +-1.3262788 +-8.6802950 +-12.6688881 +3.0171614 +0.6926028 +0.3095501 +-7.1452188 +-0.3187429 +0.2707670 +-0.8942086 +-1.0423722 +-6.9711437 +-3.9357874 +2.3039596 +1.1465396 +6.2068105 +3.6629713 +0.2760419 +-2.3946075 +0.2327170 +-1.7662853 +2.1656973 +-2.0276999 +-1.3522801 +-0.8141248 +-0.7010417 +-6.0219808 +-4.5400791 +0.7733858 +-3.2957435 +0.3120034 +-0.0943389 +-3.3019044 +-0.0242639 +-1.2502439 +0.7579928 +-3.3552654 +-2.2954772 +-1.6953007 +-0.6625529 +0.2675350 +-0.6484136 +0.8177163 +0.0846776 +0.5388178 +-3.0241342 +1.2434032 +-2.1392775 +1.4881129 +-0.4759708 +-0.5166773 +1.6883813 +-6.3125911 +-0.6839771 +-5.1743045 +0.8424282 +-1.3095952 +8.3895626 +2.3414001 +0.0296992 +0.0547080 +2.4529779 +2.1343145 +-3.2571976 +-0.9432340 +-1.5572599 +1.8457018 +-0.2979456 +0.7678446 +2.6832016 +1.5437114 +-0.8575166 +0.2683766 +0.9821187 +-5.3394804 +-0.4762065 +-0.5281397 +-1.0496348 +1.3015237 +2.8808203 +-7.8014617 +0.8377165 +0.4503660 +-0.3849968 +-1.0549819 +-1.0086019 +0.8139269 +-0.2526965 +-1.2393881 +-3.2763605 +-2.3703828 +-0.7280446 +-9.4978113 +-7.8727965 +0.6716006 +-1.4014921 +5.3769512 +2.2734690 +1.3342818 +-1.4790788 +-0.7515249 +2.8877232 +-4.1547985 +-2.3933885 +-0.4902008 +0.7854191 +-0.5842625 +0.2778279 +10.0754023 +-3.0578194 +-3.0191846 +-2.7631714 +-0.8066338 +-7.4749007 +-1.2867792 +-2.9802959 +2.5966096 +1.0946082 +-1.3197546 +-9.3861847 +1.7522987 +-11.9005136 +-2.1003182 +0.0946900 +-4.5222354 +-10.7736864 +-4.1931157 +1.8299628 +0.0820958 +-0.1080734 +0.2415892 +1.4264209 +-0.0441752 +0.3042968 +-0.8468916 +0.8823227 +0.5654306 +-0.2699567 +-0.2397563 +-0.5860104 +-0.6436807 +0.0664687 +-0.8218183 +0.4741086 +1.4490788 +-0.1411166 +3.3407989 +-0.1205981 +-2.4381027 +-0.7902745 +0.4248746 +0.2587032 +-0.8276457 +0.1501642 +-0.5823967 +-0.2207165 +-0.2543337 +-0.7463461 +0.2286343 +-0.7343229 +-0.7623647 +0.6623993 +-0.0692617 +0.2938861 +0.3885348 +0.4105554 +-0.7399298 +-0.2678122 +0.2502199 +0.3365139 +0.0229774 +0.2030231 +-0.5106968 +-0.2322954 +-0.4678563 +0.6353591 +-0.0317869 +0.0582669 +-1.0104889 +0.8647544 +-0.3269610 +-0.1464128 +-1.6036477 +-0.4842551 +0.0567838 +0.2537957 +0.1404295 +0.7484546 +-0.6246535 +0.7109155 +-0.0753736 +-0.0914743 +-0.2328951 +0.3668817 +0.1974746 +-0.5272564 +0.2202473 +0.0458776 +0.2515337 +-0.2187657 +0.1108079 +-0.6961893 +0.9230129 +0.2320971 +-0.3347964 +0.3336281 +-0.4718786 +0.0023907 +0.3618163 +0.1724752 +-0.0290309 +0.1985980 +-0.3443244 +-0.5404199 +-0.1022024 +-0.0538658 +0.0951806 +1.6504470 +-0.2416951 +0.6332513 +-0.0031161 +-0.0159386 +0.6777977 +-0.6375434 +1.7751544 +-0.7886743 +-0.4237608 +0.1261999 +-0.3100995 +0.2818434 +-0.2223520 +-1.3488750 +-0.2796445 +0.8228877 +0.0091699 +1.1411608 +2.7625701 +-0.2267286 +-0.2518663 +0.8710310 +-0.4477386 +-2.3765800 +-0.0082406 +-1.1168654 +-0.0124378 +-0.0133203 +0.2729099 +-1.1062387 +0.8490106 +-5.0034370 +-0.2052409 +0.8436018 +0.6010577 +-0.5128171 +-1.1291438 +-0.3234062 +-0.3577773 +0.8222573 +-0.5991229 +-0.2650775 +-6.7085299 +3.1305795 +-0.1645861 +-0.4123296 +2.9644530 +-3.5710678 +-8.9010601 +-8.5131245 +-4.8122659 +-2.7951772 +0.8501857 +3.1773002 +-2.9828136 +1.2980785 +-5.5535493 +0.8616032 +-0.0424842 +1.0013194 +-9.5554390 +2.7035165 +6.5271835 +-3.8198280 +-1.5588064 +-8.8329430 +-2.0167890 +3.5307176 +1.5727547 +1.1148037 +14.0070581 +0.4713316 +0.1415655 +-11.9955616 +-0.5066622 +-11.5003414 +-11.4944668 +-8.2727909 +1.4196808 +-1.2172040 +0.9080543 +2.7757354 +-5.9618649 +0.6372752 +-1.5788838 +0.7691546 +-4.9778619 +-2.5489106 +-1.8371419 +-2.5488594 +-3.0323510 +-7.6481199 +0.3079077 +-4.0464878 +-0.5402391 +10.6940594 +-1.1137671 +8.5446844 +4.8069305 +4.3648081 +4.4777484 +1.0083586 +5.7237520 +6.3411479 +-8.7549152 +2.0039613 +0.9695185 +1.6649482 +-1.6028756 +-5.4541121 +0.3369691 +-15.9228878 +-1.8676300 +-2.1018677 +5.6198816 +7.3007259 +2.1729383 +1.6467555 +9.3237486 +-0.3052394 +0.2331183 +-0.9626496 +8.2402544 +-1.7383428 +3.0232396 +1.7908814 +2.6068256 +-0.1469035 +12.7949314 +-0.0969887 +-1.3583639 +-7.3423963 +-7.5697064 +3.7610841 +0.3822698 +1.0045699 +1.2525467 +2.9388461 +-0.5957004 +-0.3113556 +-2.9382200 +-7.8081121 +1.3063320 +-2.1233184 +0.0181007 +3.9012809 +1.3612869 +5.1165385 +-1.1659863 +-0.0146241 +-6.2396789 +-0.8512753 +-1.8719203 +2.7363572 +-1.7312188 +2.4859633 +6.3654871 +3.6075618 +-10.2303486 +-1.3277630 +-1.4870020 +-0.3273017 +12.3209524 +-6.8808370 +-1.2460101 +0.4360846 +5.5896773 +-2.2805402 +2.3473649 +-1.9312407 +3.1697609 +0.9667712 +-0.4722438 +-1.7782228 +4.9532671 +-10.5502939 +-0.0257895 +-10.2861176 +-8.2707777 +-3.8410304 +1.8984772 +0.6571773 +-0.9081998 +1.1004292 +-10.7384720 +0.6759527 +-0.0777878 +1.6363333 +-1.1431099 +5.7970767 +9.0874214 +1.7999897 +4.9575939 +-9.1373806 +5.8645663 +6.0059166 +3.0244622 +-0.2973250 +26.7607517 +0.7696370 +0.5289760 +-14.6762066 +-1.0079205 +-14.4317751 +-1.9111764 +-8.2186508 +-0.9319517 +-0.5536412 +1.9600196 +7.2540021 +-1.1404891 +0.9735363 +-0.6227839 +0.9327380 +0.9018598 +-8.2003841 +-3.8119557 +-2.6545537 +-4.1755233 +-5.6717954 +0.7701346 +-2.6904669 +-0.7423093 +19.0561180 +-0.5613478 +14.4611702 +10.9261923 +6.5256529 +0.3633872 +5.2774973 +10.5426683 +13.3240795 +-6.0423827 +5.0938792 +1.5891415 +1.2992481 +-2.3787255 +-2.3160377 +0.7934182 +-4.9771857 +-1.7850823 +-2.4526544 +14.1214561 +12.1008110 +5.0611997 +2.6820309 +16.4883652 +-2.4683301 +0.2167182 +-1.0717560 +14.7973166 +-3.4812694 +7.2772918 +-6.4241076 +3.3289933 +-2.1820762 +23.7869511 +-1.8753490 +-2.2164638 +-5.3874335 +0.1130775 +7.0605130 +0.8604945 +1.3396562 +2.0264342 +4.1771526 +-2.9732320 +-7.3124657 +-2.5926914 +-1.1853119 +2.5104828 +-4.3216281 +-0.0849658 +3.9389522 +2.7606664 +8.0328121 +-1.8636956 +-1.6562711 +-4.2961669 +-3.2523773 +-5.2285686 +5.4646363 +-3.5147145 +4.7026176 +12.2154560 +18.3548985 +-7.1062212 +-1.4359567 +-0.7281008 +0.0559861 +22.4357700 +-12.9900618 +-1.9254239 +0.8019730 +10.7708740 +-0.5438948 +-0.0572528 +-2.6994855 +-0.1262085 +0.8193159 +0.2331647 +-2.2096641 +-0.9986111 +-7.6218357 +0.1011238 +-6.1095505 +-8.7190323 +-10.8044815 +2.4186101 +-2.3423171 +3.0758243 +-2.7251856 +-15.8478098 +1.9767593 +-0.1579044 +2.7594776 +2.7910173 +8.5758266 +9.7577839 +2.3805153 +5.2343340 +-8.4835854 +-5.5568690 +8.2488213 +5.6881733 +7.9649119 +38.8243141 +1.9659517 +2.8378851 +-14.4231901 +-1.7267318 +-8.9165173 +-1.6350979 +3.0143838 +2.2938643 +0.5671600 +3.0810828 +5.2407336 +13.0562019 +1.4955922 +-0.0138933 +1.2007085 +8.1344957 +3.8543358 +-5.7871275 +-2.3749123 +-10.0776119 +-1.5684067 +2.0475020 +-1.1505898 +-0.2228249 +25.0620537 +-0.2455450 +16.6066952 +-0.7054429 +6.3132362 +0.1451542 +3.0157552 +11.9312353 +19.6602345 +3.5151038 +-1.0436420 +1.2791419 +3.1544659 +-4.0244069 +-1.3821522 +-3.0873578 +-1.0198840 +1.2817310 +-2.7701511 +6.4705334 +14.9884043 +-0.9521283 +3.8830423 +21.8074837 +-3.5501783 +1.2080659 +-2.3716574 +19.3547382 +-5.3209538 +1.3653517 +3.9124613 +0.7437000 +-2.6765573 +33.2723579 +-2.3969111 +-5.7699032 +-9.0864897 +-3.7648125 +10.7534132 +2.4509208 +0.8877515 +3.0052381 +8.0366430 +0.0895779 +-10.0603352 +-2.0336547 +3.5457602 +2.2037830 +1.2718732 +0.7010946 +-0.1697027 +3.7718923 +-2.6644435 +-4.1786060 +-1.8251538 +-1.6810402 +-8.0404615 +0.0554137 +8.3250322 +-5.0061588 +4.6250024 +13.1681242 +3.2075548 +-1.4887500 +-4.5781884 +2.5310411 +-7.2515268 +31.0031433 +-9.4689512 +-2.6752198 +1.5439488 +16.2764034 +3.1607232 +4.3460751 +5.3992715 +0.8997090 +2.3831398 +-2.6047645 +-1.2981042 +0.7426260 +-2.1274004 +-0.2698987 +-2.4993410 +-0.2580530 +-3.2950895 +4.5075574 +-3.8917816 +0.9504167 +-3.9715073 +-7.3676925 +2.4354427 +0.4686266 +2.6538854 +0.1886802 +3.6689415 +-1.6314973 +-1.6157066 +6.5208693 +-0.6260891 +0.2168504 +4.7099190 +1.2785116 +-1.0565338 +22.3961697 +-1.6747242 +-0.1241514 +-7.1420503 +-0.1873380 +3.1498370 +0.3038981 +0.9269444 +-5.3377943 +0.4451470 +-2.4357421 +0.4786616 +-0.3585992 +-1.0649717 +3.0108049 +-0.2628648 +-0.1570340 +-0.3588615 +-3.6902664 +-0.4565279 +-0.2470682 +-0.1523096 +-0.4744410 +0.4086893 +0.4613751 +10.0593624 +3.1825266 +2.3127851 +-1.8086106 +4.0799108 +-1.9171231 +0.8501225 +-9.3602076 +11.0030136 +-1.3931866 +-0.4547961 +1.2956609 +-2.6433260 +-1.5385166 +-0.1619865 +-0.4280300 +2.9132743 +6.2336979 +3.2948461 +-0.4483862 +1.9180629 +0.4986414 +-1.7033360 +8.8396749 +1.9319046 +-4.2166305 +-0.3460357 +5.9257398 +-4.0194368 +2.9924181 +-3.9834280 +-2.4645796 +-2.9686847 +17.5495605 +-3.6002624 +1.4335694 +8.1536312 +1.8485047 +6.9593801 +3.1658463 +1.2263691 +1.5338821 +1.8622284 +0.1049691 +-0.9785731 +-0.6278822 +0.0072569 +0.1887069 +0.5064103 +1.6767039 +0.5378907 +2.1060343 +1.1256722 +2.4510415 +-4.9932146 +0.0686810 +-1.2270730 +0.5020607 +5.2116385 +-6.4364562 +1.0015358 +-0.4790657 +3.5748377 +-1.0736519 +-4.0598373 +2.1491578 +3.5039604 +15.5271149 +-3.2143540 +-0.9230444 +1.6580065 +8.1863279 +-4.1024933 +-0.1708131 +0.8463516 +-5.9888315 +-1.2604208 +-0.6646817 +-4.9962492 +-0.8420294 +-1.3162123 +5.2640834 +-10.7058802 +-7.0879021 +-4.6262012 +0.5837240 +-0.7507549 +-3.1186028 +-5.5014377 +-5.1580853 +-3.8589518 +-0.2466902 +0.9485870 +-6.0763149 +2.0002425 +1.6307586 +-0.2712921 +1.2923931 +-9.1046448 +-8.8385468 +2.3152370 +0.8897304 +-4.6268167 +10.4748182 +-0.0068123 +-0.6939494 +-10.5089235 +-2.1531408 +-0.4766254 +-1.8297056 +-14.2646255 +0.0171648 +-2.6258667 +1.8418984 +1.6874177 +-1.1887553 +-1.6926255 +-2.2223012 +0.4175020 +-4.1270418 +-8.6050472 +-1.5489661 +0.3522744 +-6.0586319 +-11.9666948 +-0.3701966 +-3.3680832 +-0.4732356 +5.5413938 +-0.8781083 +2.4300654 +-0.8953705 +-1.3376381 +-2.5000186 +-0.6367731 +1.3825203 +4.3598528 +-13.5784588 +-5.4330034 +0.7105686 +-0.0846777 +-0.6475936 +-13.7949476 +-1.3767507 +-6.3647652 +-4.4281230 +-5.3432117 +-3.8013442 +0.8208081 +-5.4586282 +1.5218040 +4.4842806 +-1.6255881 +-0.3434563 +0.1817067 +3.2912111 +-1.6462421 +3.6685107 +-3.3915288 +-4.1580691 +-0.5359589 +8.5397558 +-0.5737432 +-0.8618599 +-12.7858458 +-4.3695002 +2.8692636 +0.3956212 +1.3005813 +0.9771355 +-1.1135881 +-3.9650505 +-2.0962315 +-0.2016219 +-11.4185600 +0.8649904 +-6.7081003 +-0.6942704 +-2.2128279 +1.8915229 +2.1548400 +0.2523803 +0.3581572 +-9.0328693 +-2.2268121 +-2.4858375 +2.2045422 +-2.8872392 +1.6854330 +1.8511307 +3.7015631 +-14.9934826 +-2.2564034 +-2.3686309 +-2.6555645 +7.6898065 +-12.3659763 +-1.6428014 +-0.3144788 +4.4653425 +-0.9691687 +-2.2678244 +-8.5894365 +-4.6004739 +-1.1740346 +-1.8474247 +-2.3029253 +-4.0480595 +-6.1743689 +0.7534111 +-11.1120367 +-10.5377131 +-6.7320580 +1.8748720 +-6.3362131 +0.3465805 +-9.8684797 +-9.3802423 +-5.6183410 +-0.5292782 +0.8511156 +-1.4533916 +4.7682590 +-1.2354996 +-4.1610289 +3.0017269 +-7.6420350 +0.9141074 +3.5114207 +1.3832700 +-7.7300625 +20.6481686 +-0.0894112 +1.7640793 +-6.9908423 +-4.5609713 +0.2035344 +2.6746910 +0.0678243 +-0.1456370 +-2.3175912 +2.0800824 +-3.5330262 +-0.6631685 +-2.9450812 +-1.5858196 +2.3114152 +5.5119019 +-4.4507823 +-3.0584373 +0.7699065 +-15.1830721 +0.1743613 +-0.4979912 +-0.8400909 +-0.4514414 +10.0148849 +-2.0611975 +4.2973180 +3.7793298 +-0.7279717 +-3.2894542 +-0.4384138 +-1.4912297 +9.7601166 +-6.2759819 +-1.5374017 +2.1354904 +0.7900494 +-1.1217327 +-3.6941135 +0.2200066 +5.6085620 +-4.8881731 +-7.0230570 +-6.2602472 +0.5818516 +6.8378577 +2.1400816 +7.8671989 +-2.2671666 +-1.1603569 +-0.2234479 +5.0781560 +-3.3805771 +-0.7687485 +-1.2634656 +-6.4760442 +-4.9161677 +16.5346088 +-1.4994044 +-2.6077135 +-5.0961814 +3.5465245 +5.5668159 +1.8314757 +1.3936470 +2.6650813 +-4.4279728 +-3.2226479 +-7.7321405 +2.2141452 +-7.4344749 +0.0367038 +-0.6454762 +-1.8159117 +-4.4282227 +3.7306669 +4.3073659 +-0.0464684 +2.1572583 +-1.1291441 +-3.2688966 +-0.5379922 +4.3447847 +-4.6434922 +2.1759205 +6.8049994 +7.0717940 +-3.4447238 +-4.1455688 +-3.9141500 +-0.5267633 +14.4878988 +-16.3328304 +-2.9508507 +-0.3712178 +7.6370773 +-5.0603909 +3.5234632 +2.0356374 +-0.7371296 +-1.3135768 +-5.1792016 +7.4616661 +-0.6626368 +1.4397163 +0.1719857 +-5.1245775 +0.1324668 +-0.3809749 +0.3089342 +6.6828313 +-1.3937786 +-0.9972705 +-9.9688492 +-4.3005404 +1.1921878 +-0.4727584 +-0.8264725 +-5.6581049 +-3.1644621 +-0.8952693 +-0.7060812 +-2.3019500 +-0.5729309 +0.6950733 +-1.4598124 +-0.2584237 +2.8726051 +-1.3080430 +-0.0810690 +1.7264621 +0.9046702 +-0.2426847 +0.4221123 +-0.2471476 +-4.4885206 +0.1427048 +-0.2424434 +0.4109145 +1.2567891 +-4.3198185 +5.8439612 +8.9227657 +2.2639680 +-0.1739129 +-6.0540209 +0.2268115 +-2.3762786 +-0.0803977 +-0.3661377 +0.3749775 +-2.2161119 +2.1640503 +-2.7688429 +-4.8549838 +-0.6485878 +-0.3361431 +0.0598944 +0.4870458 +-7.2527061 +-2.9739275 +11.1626043 +0.3668527 +-0.3563214 +-3.1942356 +-1.1748673 +-0.1266206 +-1.1567997 +-0.0976429 +4.6385746 +-5.0537186 +0.5517827 +1.7005121 +-0.7062988 +-1.4202502 +-1.8956325 +0.1054988 +-0.3611600 +-1.9654895 +-3.4895158 +-4.7280264 +-1.8108515 +-0.1172523 +3.8348024 +1.5495198 +10.5310841 +-0.7605687 +-5.8342648 +-4.8060713 +-1.0108186 +8.7129326 +5.6359744 +0.3380573 +3.2995780 +-3.4983938 +-0.6699442 +-0.4684947 +-0.3292980 +-0.0079700 +4.2940807 +0.6510734 +0.3325542 +0.2720549 +3.1363888 +-0.5907518 +-1.9295045 +2.7567217 +0.1484716 +-1.1026001 +2.3847458 +6.7161603 +-0.3603209 +0.0275365 +0.2689024 +-2.1050315 +0.2479270 +-3.3866315 +-0.4506233 +0.7836698 +7.5312004 +-6.3589807 +-1.6387970 +-3.0673685 +2.9966681 +-0.3954277 +-0.7102922 +-1.3997805 +-0.0774813 +-0.1190544 +-0.2963217 +-1.2662002 +0.0159197 +0.9364837 +0.1855538 +-0.0393184 +-0.1938563 +-0.3278456 +1.0600235 +-0.9138098 +-0.2961014 +0.2207121 +-1.5732055 +0.0228857 +0.1473539 +-1.1389312 +-0.2457909 +-0.7533515 +-0.0166220 +0.2026495 +0.1796625 +-0.1049275 +0.2561277 +0.1074644 +-0.3461620 +-0.1631872 +-0.0132730 +1.9902738 +0.0391096 +-0.4419959 +-0.1471145 +-0.0629466 +-0.0672470 +0.0016550 +0.3239320 +0.0665026 +-0.0345626 +0.1157515 +0.0786239 +0.3712134 +-2.0777128 +0.5249251 +0.0372182 +0.0329983 +-3.8584313 +0.3077220 +0.0597028 +0.0253838 +0.0210745 +-0.0150074 +-1.8703600 +0.1983787 +-0.6566086 +-0.4554826 +0.7532117 +0.3308115 +0.0472669 +0.2743878 +-0.1838100 +-0.1431599 +0.0275889 +0.0333613 +0.0662614 +-0.2928192 +-6.8101716 +-0.0275920 +-0.1649671 +0.1168467 +-0.0656895 +-0.0719117 +0.0480071 +0.0142608 +-0.1816266 +-0.3631267 +0.0445052 +-0.1617915 +-1.0956438 +-0.3312138 +0.0080369 +-3.8669467 +0.0636132 +0.1527278 +-0.2539311 +0.0698384 +0.4039813 +-2.6210277 +-0.2295416 +-0.0733406 +-0.0002347 +0.7598245 +0.5651563 +0.1221125 +-0.2055225 +-0.1234690 +0.1385327 +-1.3063831 +0.6438490 +0.0109727 +0.2439749 +0.1946957 +0.1077126 +0.2345181 +0.7645020 +0.0218429 +-0.9286584 +-0.8666123 +0.0179569 +-0.3431668 +-0.1929447 +2.6020045 +0.6695578 +-0.0659387 +0.1273666 +0.0334014 +0.0293871 +-0.6993923 +0.0518911 +-0.2498021 +-0.1373340 +-0.0963936 +0.0157920 +0.3159151 +0.5387430 +-0.2466770 +-0.0036028 +0.0353525 +-12.7617416 +-0.0397892 +-0.8994221 +-7.2119656 +-2.1810110 +-3.7383351 +4.9918323 +-11.5914507 +-8.1291361 +-2.8170929 +0.6513609 +-1.2768720 +-1.1583766 +-8.8587666 +-5.1057997 +-8.3183079 +-0.2314270 +0.3882795 +-9.8171482 +0.1016804 +3.9882410 +-4.0546794 +3.0533092 +-10.1639681 +-14.9427986 +-0.2972032 +0.5778571 +-9.8866243 +7.3774986 +-0.1111523 +1.9270766 +-12.3488150 +-2.7766407 +-1.4996870 +-2.7149451 +-8.0041752 +-1.9181052 +-2.3486881 +0.4820307 +-2.9652076 +1.0351442 +-2.5326102 +-3.0646801 +1.1890398 +-6.3004341 +-14.9367628 +-1.3780109 +0.9498593 +-8.6421328 +-15.7504702 +-0.5782946 +-1.6904180 +-0.1806090 +2.4955723 +-1.0778197 +0.2560434 +-0.4639449 +-5.0900354 +-9.6971817 +-0.8143903 +-3.6682603 +2.0878057 +-15.7139244 +-18.9108353 +0.5759861 +-1.3569973 +-0.3383856 +-22.5298119 +-1.7364295 +-14.7671385 +-6.0277462 +-9.2039557 +-3.6983962 +-2.1453023 +-10.4522314 +1.2794158 +1.1965249 +-4.3495278 +-0.3695590 +0.7213666 +-0.0076158 +-1.3938768 +-1.8316734 +0.7506711 +-7.3931427 +-0.6332992 +5.4891300 +0.1697260 +-0.7553653 +-11.9818001 +-2.6507638 +1.8347470 +0.2480515 +0.3386172 +1.0883553 +-2.2882655 +-6.9217300 +-3.0098250 +-4.3383341 +-10.4627476 +0.5140385 +-8.5439186 +-1.1237881 +-9.6992788 +1.8905449 +-0.3124097 +0.0989171 +-1.7357829 +-9.2644024 +-3.3823121 +-3.0226698 +1.7388030 +-3.4236019 +1.0890797 +-0.2749732 +-0.7747909 +-14.8062630 +-2.9736104 +-2.7283983 +0.5302430 +4.5547266 +-15.6891289 +-1.9334583 +-0.0215565 +3.3539383 +-2.6699295 +-5.5877151 +-5.7809572 +2.0975592 +3.7359166 +-1.9639397 +-4.7801471 +-0.3321931 +-4.9208689 +1.6601582 +-6.1848693 +-9.6449337 +-5.6688166 +1.9570328 +-2.9274585 +1.9999533 +-16.0819168 +-10.1617785 +-13.2581596 +-0.4685102 +0.4312375 +-2.6156447 +-0.6373380 +7.3226566 +1.9151973 +1.0220256 +-6.2517629 +-2.0771377 +2.5073714 +0.8028424 +-3.0874774 +13.9787741 +-0.3798489 +-0.2380002 +-9.1870546 +-3.4608550 +1.9870839 +-2.7711282 +0.0782764 +-0.6156983 +-1.2432567 +-1.0374746 +0.8165423 +-3.2743890 +-4.0650406 +-2.7417223 +2.4779768 +-2.5658984 +-4.2640300 +-2.8263359 +-1.4891448 +-14.2201490 +-6.8842883 +-2.0756748 +1.7456409 +-0.0944997 +4.1942387 +-0.8892362 +2.1837835 +-1.5841998 +-4.7627711 +-2.1848838 +1.0462829 +-12.0800238 +3.9466431 +1.2865390 +-7.0508795 +0.9096003 +-1.0820616 +-0.8296093 +-0.0046908 +-2.2889848 +-2.1305697 +-5.6859212 +-8.2490711 +-3.3263712 +-5.4158764 +4.0477500 +2.2774255 +1.6469326 +-2.1681800 +-1.2020580 +2.1019702 +0.2256455 +-2.8852735 +-1.5030190 +2.6845493 +-12.0087786 +-2.8341942 +10.3722734 +-0.1943417 +-1.3166634 +-5.4032269 +-1.0357752 +3.6609461 +0.0493683 +-1.7351259 +1.9571887 +-3.8084741 +-2.9664462 +-6.7718863 +-4.5239172 +-6.4882498 +0.8289528 +-6.9158645 +-2.1187446 +0.0990737 +3.7324784 +-0.1256346 +0.5754420 +-3.9119937 +0.7941585 +-3.8520491 +-1.3539650 +3.3866930 +-5.4398370 +-1.1618958 +5.1197925 +-3.0696006 +-4.5284772 +-4.2364826 +-0.7859406 +-0.0312241 +8.5074682 +-18.5669937 +-3.2638018 +0.9526115 +6.2323217 +-6.0847597 +-0.1493112 +1.4207077 +-0.9103679 +0.7250137 +-2.7737248 +-0.7883837 +0.2727013 +-1.7389568 +-0.0869796 +-2.7609270 +-2.7099810 +-2.9384327 +3.0183210 +-1.0421872 +-1.2486023 +1.4081174 +-9.3218069 +-3.1343479 +-2.7170775 +-1.5065134 +-0.6700015 +-2.1489363 +0.7868095 +0.2008635 +-2.0535414 +-1.7685478 +0.4706172 +0.4812921 +0.5431746 +0.2317776 +-0.5107222 +0.6018119 +-0.1655390 +-0.1261735 +0.4758590 +2.6749537 +-0.8673992 +-0.7505642 +5.4010811 +1.2584025 +0.7590848 +-0.2889591 +-0.6490616 +-5.8162503 +2.1670909 +-0.8907871 +0.3321178 +0.4037102 +-4.8531427 +0.6993475 +-4.1854072 +-0.2443283 +-4.1643767 +1.0301626 +-1.4497769 +0.1743421 +-1.0942794 +-1.3362492 +0.6684753 +0.5488015 +-0.1757464 +1.0228195 +-3.3951392 +-6.2399888 +1.3385162 +-0.4219716 +-0.9577914 +0.7161350 +-0.8912677 +-0.4226589 +-0.8014470 +-0.3861857 +6.8282394 +-0.0590244 +0.1108217 +-0.0805945 +-0.1694450 +3.6977496 +-1.6209399 +-0.0252211 +-2.0256500 +-2.3721397 +4.5290904 +-4.4652314 +0.3382852 +-0.1560365 +-2.7809503 +-1.2060714 +3.8935418 +0.7310256 +-1.9560053 +-1.8344983 +-0.3785036 +6.6412649 +-1.1532197 +0.0109686 +0.3695324 +-1.3157334 +-0.3094957 +5.6115351 +0.2840005 +-1.0603756 +0.1773029 +0.8923544 +-0.5531586 +-0.1412917 +4.6065531 +0.6970843 +-0.3450742 +-4.8956614 +-0.1400409 +-2.1112156 +-0.1176873 +5.6737566 +0.4970157 +-0.6293284 +2.8530142 +-4.6058407 +0.6601757 +-7.4105549 +-0.3760833 +-0.6414076 +-0.0872823 +-4.0608273 +-1.5052422 +-0.7388044 +2.3228180 +-0.5119023 +-0.9921154 +0.0040418 +-0.0405908 +-0.0369319 +0.0801729 +-0.0494439 +0.1105992 +-0.0099414 +-0.0249763 +0.0045520 +0.1318606 +-0.0636138 +1.2476532 +-0.0403143 +0.0690804 +-0.0103593 +-1.1733449 +0.0298649 +0.1474909 +-0.1028254 +0.1361066 +0.0745395 +-0.2315036 +0.0089685 +-0.0884280 +-0.1135683 +-0.0190266 +0.0793631 +-0.1133487 +-0.1191381 +-0.1753526 +-0.1353831 +-0.0353027 +-0.1114665 +0.0614642 +0.0121703 +-0.1548402 +-0.0765349 +-0.0193513 +0.0471177 +0.1703407 +0.0535851 +-0.0422372 +0.2560364 +0.2170786 +-0.0200415 +-0.0351453 +0.1457855 +-4.3311958 +0.3302514 +0.0244596 +0.0323331 +-0.0663618 +-0.2709179 +-0.1620540 +0.1015324 +-0.0622561 +0.2398460 +-0.0454165 +0.0792474 +-0.0119664 +0.0597694 +0.0110594 +0.0072583 +0.0118347 +-0.1582989 +0.0320022 +-0.1824674 +-1.4619094 +-0.0307839 +0.0383632 +-0.1647294 +-0.0478323 +0.1228288 +-0.0822003 +-0.0323501 +-0.2472807 +-0.1063006 +0.0065991 +0.0498871 +0.1187863 +-0.0437098 +-0.1761772 +-2.7555583 +-0.0381338 +-0.0606768 +0.0664585 +0.0331543 +-0.0753189 +-0.5395204 +0.0648455 +0.0825871 +0.1259988 +1.4703559 +-0.0748257 +0.0310926 +-0.1117474 +-0.0897574 +-0.0583178 +0.1337651 +0.0206260 +-0.1056188 +-0.0596934 +0.2727491 +-0.0556229 +0.0398996 +-0.0233697 +0.0043134 +-0.0286818 +0.2819797 +-0.0484141 +-0.1021788 +0.0301819 +2.9652886 +0.0432733 +0.0294930 +-0.1125069 +-0.1668303 +0.2807431 +-0.6584670 +0.0342250 +0.2320668 +0.1089601 +0.0335579 +-0.7299364 +0.0267357 +0.0111250 +0.1423935 +-0.0545846 +-0.0015916 +-5.9131098 +-1.9918964 +-1.0056825 +0.0840796 +-4.6750784 +-2.5757487 +1.5240093 +-10.9149733 +-6.6886997 +-2.6216836 +0.2846315 +-2.2719574 +-1.5443522 +-12.5932999 +-4.6390643 +-11.5027666 +-0.1701420 +0.7670348 +-6.8673110 +-2.2885728 +-4.3303008 +-8.2373943 +3.2619245 +-8.6141024 +-13.7862253 +-1.9021537 +0.3622294 +-11.1523304 +4.0504274 +-0.0899032 +-2.0409923 +-9.2771349 +-3.5417759 +-7.1888046 +-6.8628345 +1.8970364 +-1.7792917 +-1.4260504 +0.6190870 +3.8224568 +-2.6253841 +-3.4058783 +-4.1705689 +0.7534979 +-3.0621910 +-15.4911251 +-0.9859864 +0.0168885 +-9.0803318 +-14.8370552 +-1.4692810 +-0.9582373 +-0.2241040 +-0.7196258 +-3.7992063 +-3.4563353 +1.8900473 +-6.8774595 +-12.2308912 +-1.4299922 +-7.9517612 +-1.0322294 +-13.1150599 +-2.7265334 +0.3099180 +-0.3991894 +-0.2835502 +-24.5813122 +-1.4620286 +-3.7183757 +-7.4076118 +-2.5333581 +-16.8638630 +-5.5003605 +-15.5913410 +1.2915804 +-2.1360128 +-7.4519038 +-0.1237438 +0.5300749 +-3.5662012 +-1.3174471 +4.2513475 +0.6252328 +-10.6525955 +-0.4347437 +2.0876174 +0.7012135 +-0.3652309 +-14.6288633 +-2.2458522 +0.9598470 +0.1599876 +0.3850079 +1.0270224 +-2.6915684 +-7.3041544 +-2.3337860 +-4.0382180 +-20.8442974 +0.5810136 +-9.1117172 +-1.2105607 +-13.8737803 +2.4542866 +-2.1845117 +0.1294037 +-0.8762282 +-10.0875063 +-4.0000830 +-3.8068917 +1.3124008 +-3.7474232 +1.2037576 +-2.2718351 +-0.8449331 +-14.7847185 +-3.8439558 +-3.0777829 +4.2835784 +1.2274485 +-18.8673763 +-2.2940526 +-0.1636484 +2.4736288 +-2.5458884 +-8.4537783 +-9.0982075 +-5.5034494 +-2.9094238 +-3.0186296 +1.3718034 +-1.2199649 +2.3269901 +-0.7590082 +-10.7560320 +-7.7656689 +-5.0067620 +1.9343326 +-0.7835557 +2.7603424 +4.0841765 +-8.9040880 +-15.0822887 +-0.9455705 +1.4201614 +-1.3225743 +-6.4285226 +-3.1038201 +-3.1008477 +1.1814375 +-6.0488081 +1.3160741 +0.2160891 +-0.6080348 +-4.8570828 +0.8170797 +-0.9618488 +-2.3349454 +-8.3351574 +-2.5731277 +-3.7820580 +-2.3611927 +-1.3275119 +-1.2603414 +-1.2909274 +2.8282695 +0.5090144 +0.2114817 +-7.2822542 +-4.3302298 +-1.2028935 +3.0724020 +-2.7949815 +-2.2630289 +-0.9775779 +-10.2027359 +-1.3698022 +-4.2092152 +0.9490061 +-0.0791118 +-3.0778785 +-1.5265394 +-3.9691443 +-0.1243333 +-3.0068073 +2.0223777 +-2.1894937 +-8.7472582 +-6.2814488 +1.2916042 +0.6515844 +0.6290404 +0.3651236 +0.3559401 +-0.7426028 +-1.7203088 +-1.0070760 +-9.7983599 +-7.0129333 +-1.1341523 +-0.0225983 +6.1642928 +1.0158436 +-7.5541344 +2.7660451 +-1.8294607 +1.4545168 +-6.8741145 +-2.5749655 +0.7991946 +-2.1194403 +1.6448466 +-2.0455077 +0.1491772 +-1.1941073 +-0.4367339 +-4.7816358 +-0.2726879 +2.1188433 +1.3932805 +0.4328644 +0.9052043 +-2.8771000 +1.0392630 +-2.7287457 +-6.1603060 +-9.4926157 +-0.2747075 +-0.1559814 +-2.3850455 +-2.6972866 +5.1782775 +-2.0541394 +-0.2725551 +-3.4773996 +-1.1699499 +-4.4126282 +-1.1730556 +2.4745080 +-6.7706180 +1.8477662 +0.2545241 +-2.1531553 +0.8304089 +-6.0915685 +-6.2798147 +-2.2789392 +-1.9419323 +-22.2059631 +-3.4099870 +-0.2559121 +4.0279145 +-6.5218949 +-3.7471757 +1.3744135 +-0.5007403 +0.8692905 +-3.5398686 +5.0483747 +1.1084353 +-0.9959589 +-0.1718194 +-1.2252878 +-5.0507069 +-0.9156916 +4.7718167 +-2.8236504 +-3.6729655 +-5.6498017 +-10.6906071 +-4.0823593 +-0.0750802 +-1.7617221 +-0.1508634 +-6.9114304 +0.1408548 +0.4514036 +0.4856367 +0.2766831 +2.4550261 +0.5082139 +0.7599775 +2.1530869 +-0.4083958 +0.7445483 +-0.1996263 +-3.4767206 +-0.5156912 +-1.1727535 +-0.8715622 +-1.0456374 +3.3839507 +0.6802394 +0.5549228 +-0.0584762 +-0.1990929 +-1.9837327 +2.1961155 +4.4641852 +0.3200050 +0.1916890 +-3.8714216 +-1.0522201 +-2.8659961 +-0.1778671 +0.2639641 +0.5638722 +-0.2435000 +2.3593926 +-1.4983666 +1.5281590 +0.1096002 +1.4690322 +1.8680377 +0.3581167 +-0.7692093 +-4.2516904 +-0.3967761 +-0.2469508 +2.9543498 +-1.1318377 +-0.3487847 +-0.1370610 +1.1664146 +1.6541675 +6.5488458 +-2.6988266 +-0.6493670 +0.2786931 +-0.4916069 +0.0319429 +-5.8364291 +3.8893945 +1.0050266 +-0.5071194 +3.2484691 +-3.7637575 +-0.0814531 +-2.4256203 +-2.2500262 +0.0562894 +2.4382803 +1.8251539 +-0.1994082 +-2.8030033 +-0.1989202 +3.7128916 +-0.0097174 +-0.4205112 +1.3841140 +-0.2201692 +-0.2002955 +-3.1279101 +-3.6884146 +-0.8078243 +5.1999245 +0.7240460 +-1.5648719 +-0.8445872 +6.1125813 +0.1141376 +0.3718465 +-6.0719118 +-0.6738956 +-2.4566815 +-0.4398086 +2.7976921 +-2.3918984 +-0.5834085 +0.3796794 +-6.5099545 +0.8056663 +-5.2429819 +-0.4633788 +0.0998953 +-0.9543697 +-8.2235823 +-4.6036634 +0.0340116 +-0.0447957 +-0.7390851 +-2.6996579 +0.4754198 +0.0310966 +-0.1498745 +-0.4424165 +-0.6021584 +0.0344311 +0.0644119 +-0.0217151 +-0.2057306 +-0.5384218 +0.1265769 +0.1313833 +-0.1939754 +-1.2408732 +0.0617997 +-4.9863472 +-0.4009489 +-0.5784620 +-0.0607645 +-0.0132906 +0.1039893 +-0.0488041 +0.1651225 +-0.8100523 +-0.0203909 +0.0694407 +0.4738526 +0.1920444 +0.3793018 +-0.3484497 +-0.2952857 +0.0268409 +0.5811215 +-0.2776157 +-0.0101337 +0.0139997 +-0.0860881 +0.2141950 +-0.1700130 +0.6726857 +-0.0462243 +-0.0518041 +-0.2332475 +1.9546951 +0.3806438 +0.0297309 +0.0930938 +-2.8212903 +0.0781949 +-0.1771252 +-0.0415710 +0.2840031 +0.4334497 +-2.1908767 +-0.6322587 +-0.1954930 +0.1441046 +0.0697658 +0.4224817 +0.0058179 +0.0247151 +-0.4599530 +0.6852497 +0.0304327 +-0.0233240 +-0.3305509 +0.1152821 +-0.9694171 +-0.0381375 +0.2012212 +-0.0189164 +0.3638974 +0.1346243 +-0.0713944 +0.0942135 +0.0652893 +0.5222266 +-0.2236990 +-0.6209213 +0.6821856 +-0.0452249 +0.6892737 +-3.4392512 +0.1273381 +-0.0220032 +-0.4498717 +0.3218375 +-1.8881491 +-1.3465997 +0.2862853 +-0.0882278 +-0.1116767 +1.8163669 +0.1857111 +-0.5478153 +-0.5819945 +-0.0501741 +-0.0016312 +-0.2545067 +-0.0846383 +-0.0914148 +-0.1856803 +-0.1706664 +0.6305135 +-0.1247166 +0.3347348 +-0.0221468 +-0.1883117 +0.0692464 +-0.0014123 +-0.0127140 +-0.3159328 +0.2421574 +-1.3035839 +-0.1470798 +0.1548459 +-0.3610549 +0.0705853 +0.1597414 +-0.0693074 +0.0363184 +1.2541591 +-0.0306126 +0.7184866 +-1.7318138 +0.0754937 +0.1810942 +-0.0733916 +-0.0232422 +-8.5497627 +-1.4203836 +-1.4657556 +-3.9891019 +-4.5483122 +-6.1207542 +-1.1084173 +-10.9111900 +-8.3285007 +-3.4653325 +1.0760919 +-1.5068393 +0.8693022 +-16.7880440 +-4.1041059 +-13.2732439 +-0.3057494 +0.3065248 +-11.4135323 +-6.4336123 +-6.6487145 +-2.6995547 +1.6058041 +-11.2639303 +-6.9415474 +-2.5332727 +-0.2578280 +-10.9277105 +-2.0451977 +-0.3561031 +-3.1983323 +-7.1971273 +-4.0198450 +-13.2660513 +-10.8757000 +2.6238468 +-1.2057073 +-2.8671234 +2.4598856 +-1.6303048 +-6.2949452 +-3.5562010 +-4.4907413 +1.3413340 +-3.5144305 +-12.3859425 +-0.9711429 +-3.8897798 +-10.2960863 +-13.1552172 +-1.9504009 +-3.0360610 +0.0298618 +-6.1876760 +1.6734279 +-10.9293766 +-5.6361256 +-12.4934101 +-16.7942219 +-1.8642563 +-21.4548206 +-5.7540870 +-11.9157534 +-9.9702339 +0.8418230 +-1.0833515 +0.0388124 +-20.5323353 +-1.1467628 +-5.1316371 +-8.9299068 +-9.0970707 +-7.9534354 +-8.8883753 +-18.3812065 +1.0907720 +-8.1757107 +-10.3307180 +-0.4767119 +1.1188854 +-8.1513491 +-0.7819982 +-7.3327117 +1.9261322 +-15.5264206 +-1.5073992 +-3.9951639 +1.0328259 +-0.2028561 +-10.5568037 +-2.7521443 +-0.0073595 +0.8224170 +0.5954401 +1.2675375 +1.2469816 +-8.3508453 +-6.6599922 +-3.4010427 +-22.0682583 +-0.1480480 +-10.0257740 +-1.3455950 +-12.6733589 +3.0491061 +-4.0980263 +0.0252404 +-2.3247237 +-13.6090908 +-5.0253849 +-1.1682490 +0.7671024 +-4.1113801 +0.5221134 +-4.0631824 +-9.2673330 +-18.6099548 +-4.8321729 +-3.3984487 +-9.4822426 +-4.9040823 +-21.1728516 +-2.7111058 +-0.0449753 +1.3518991 +-12.6351204 +-10.9585190 +-5.7166100 +-3.3521972 +0.1675900 +-0.8027089 +-2.5971746 +-2.8617327 +0.9271871 +1.8585279 +-8.9119940 +-8.7950592 +-5.0560818 +0.3953990 +-1.8730301 +-0.7574388 +-0.1330428 +-8.8498831 +-10.8478527 +-0.3149035 +-0.8526406 +-3.6914675 +-9.5092134 +2.1314807 +0.4987903 +1.5250992 +-4.7009382 +0.7821408 +-0.0424960 +0.9771299 +-1.1905860 +-1.2410461 +0.4103307 +-0.0450935 +-5.6042027 +-0.9831754 +-10.5213528 +-1.0802419 +-0.7070588 +-0.4780014 +-1.1889768 +-2.4931388 +0.3025717 +-3.4242692 +-1.9866887 +-2.7435889 +1.1792989 +0.6661316 +-0.4520693 +-2.2271447 +0.8806648 +-5.4181099 +-0.6951921 +-5.1015534 +-1.1827049 +0.5116950 +-1.2213870 +1.3215531 +-1.2660846 +-2.2174182 +-1.5109221 +-0.1724119 +-0.6378551 +-8.4731674 +-8.6367607 +-2.9583955 +1.6969163 +-2.5878422 +-0.2013870 +0.0020781 +-2.9792495 +-3.5540514 +-1.9691935 +-5.0817494 +-2.7080822 +0.5674011 +-2.6280239 +6.2473750 +4.5988588 +-11.6923857 +-3.8531461 +0.4835219 +3.6332142 +-5.3177867 +-1.9822075 +-3.5512328 +-3.5541341 +-4.4673815 +-1.9942528 +-1.5406015 +1.5254554 +-0.3057014 +-7.0968413 +-1.7169240 +-0.0703734 +-0.0445613 +-2.0526726 +2.9140666 +1.4619418 +0.3887780 +-4.3312316 +-4.1478992 +-7.9763365 +0.1243059 +2.4153016 +0.2588134 +3.0635753 +3.2276871 +-2.3564541 +1.9457675 +-1.1195269 +-0.3812272 +-3.7145853 +-0.5135447 +2.0507672 +-7.7917538 +-0.4023234 +-2.0489180 +-9.2524462 +-0.4084894 +-6.1247511 +-3.0965760 +-0.7027543 +-2.8132925 +-17.4903049 +-3.9171298 +1.0803412 +2.1057551 +-5.8868051 +-4.8941875 +-2.4627664 +0.4895958 +-0.0832259 +-3.4355726 +-1.5199969 +-0.7782395 +-0.6769869 +-0.4856235 +-0.0561997 +-6.3223581 +-1.0855632 +-2.4111860 +-2.0216899 +-1.7613931 +-3.2663074 +-7.6693492 +-3.2948225 +-1.6181122 +-0.4734482 +0.9912789 +-3.5014093 +-2.2653766 +0.4794624 +-1.0169028 +-0.0558547 +-0.8969952 +0.1687815 +-0.7702320 +0.1534179 +-0.9498094 +0.6167588 +-0.4154691 +0.2310293 +0.3208774 +-0.0118055 +-0.3403718 +-1.0457304 +4.3012733 +-0.1406944 +3.6696486 +-0.2975791 +-1.3167549 +-2.5584750 +3.0131936 +-0.2256993 +-0.3593141 +-0.3676160 +-2.8720622 +1.4220219 +-2.8596814 +-0.1137873 +-0.7716274 +2.3322296 +0.5542581 +1.5536486 +0.9098266 +-2.0338159 +-0.6973535 +2.2704091 +0.0385290 +-0.8134587 +-3.1051126 +-6.1307874 +-1.4962587 +-1.1209723 +0.4639439 +0.0468961 +-0.6874732 +-0.1869915 +0.5727037 +2.1300964 +6.9866104 +-1.1264160 +-1.0680689 +0.2590009 +1.0487307 +3.4459324 +-5.4225059 +-1.7786103 +0.8100128 +3.1265199 +4.5256333 +-4.3688936 +0.9461582 +-0.5115166 +0.4761524 +0.9599088 +7.0584040 +3.7050526 +0.3441021 +0.4611471 +0.6537458 +1.5810478 +1.4588128 +1.3678143 +-0.3555554 +1.7649208 +-0.3528963 +-2.7366288 +-0.3259759 +-1.6951931 +-0.0102366 +0.8717523 +-0.5671610 +-0.4140842 +2.1447370 +-1.0532762 +-0.4290183 +-2.0706069 +-0.4943095 +-1.3394694 +-0.0440649 +2.0819552 +-1.3804083 +-0.5521973 +-0.6151190 +-4.1208463 +0.5847352 +-1.5687114 +0.3875132 +-1.0170308 +3.6189432 +-1.8600568 +-0.5689768 +-0.6423730 +-1.5520341 +-0.7721094 +-1.4699295 +-1.2844287 +0.0097453 +0.2272648 +0.2277717 +0.2750258 +0.1977452 +-0.5585955 +-0.1226596 +0.5977839 +-2.2856836 +-0.7602230 +-1.1356825 +-0.1561910 +0.4392198 +-0.4058256 +0.3493012 +-0.1793301 +-1.6697598 +-1.1278234 +0.1387907 +-0.4701442 +-2.1756740 +0.0077686 +-0.3565141 +0.0088110 +-0.4675065 +-0.6223338 +0.3803739 +0.3843874 +-0.0429243 +-2.2171853 +-0.2148872 +-0.4275879 +-0.0388679 +0.2673376 +-0.1393778 +-0.2981815 +0.7310939 +-0.2391901 +0.5022740 +0.0025179 +-0.3625533 +-0.5177218 +-0.0924440 +0.2196207 +-0.2143562 +-0.1295373 +-2.4758065 +0.2519112 +0.1394109 +-0.0104224 +-0.0627768 +0.7919555 +-0.6988958 +0.8704378 +0.1868432 +-0.2643110 +-0.5244777 +0.3901398 +-0.0957489 +0.0904110 +-0.2264548 +-0.6130150 +-0.4295387 +-0.3105541 +0.6385445 +0.5227423 +-1.5902591 +-0.0897704 +0.2487590 +-0.0147020 +1.0150644 +-0.6152458 +-0.4355407 +-0.0749435 +0.1756177 +0.4325242 +-1.4606106 +-0.1556699 +-1.5215071 +0.1187904 +0.3736645 +-2.0495892 +-0.4417501 +-0.2370992 +-0.1071051 +-0.4120396 +1.5565189 +-1.5124335 +0.8166625 +0.4298480 +-0.0479831 +-1.0561141 +0.3700640 +0.7361907 +-0.5191622 +0.7468169 +0.0003621 +-0.9757928 +0.0555673 +-0.2163683 +0.5991407 +0.2708843 +-0.1494319 +-0.1787244 +0.7244745 +-0.2032503 +-0.2614295 +0.0966472 +-0.1305731 +-0.3936519 +0.0387373 +-0.2612669 +-0.2131667 +-0.0915828 +-0.2370340 +-0.5764176 +0.2647226 +-0.3180754 +0.0072407 +1.4860013 +0.3414209 +-0.1552604 +-0.1898715 +-1.5223559 +-0.4221925 +-0.1677302 +-0.2825412 +-0.5143532 +-10.0801973 +-3.1224756 +-1.6005423 +-5.2542748 +2.0472791 +-10.8751707 +-1.4034517 +-10.9321480 +-9.4338417 +-4.3288980 +1.0281038 +-0.4773999 +-0.8212526 +-15.0242414 +-3.8717775 +-10.0112667 +-0.4775499 +-0.2584504 +-13.9787054 +-9.7454128 +-8.2956572 +-8.1126108 +2.9236088 +-12.6441135 +-7.3171692 +0.2383243 +-0.6179866 +-13.6297722 +-8.0255785 +-0.5144215 +0.9168494 +0.6286717 +-4.5686746 +-15.6412468 +-5.1647391 +-3.1414449 +-5.4593520 +-1.4520445 +4.6072326 +-5.7736559 +-1.0908264 +-2.7441473 +-5.8499541 +1.2559563 +-8.6957998 +-12.4199038 +-0.8224459 +-3.0993257 +-8.8889828 +-12.6494265 +-2.9505124 +-4.1369433 +-0.0300044 +-12.4627047 +-4.5939369 +-15.6957397 +-3.6991391 +-9.6199408 +-6.7222228 +-3.6247246 +-5.7478762 +-11.7691183 +-11.1975985 +-18.9872379 +1.0738283 +-2.8710828 +0.5355582 +-15.5810709 +-1.4222593 +-11.7204018 +-11.3045168 +-9.5722389 +-9.5992041 +-13.2381134 +-23.6496124 +1.8531159 +-14.5030336 +-7.3436275 +-0.6032373 +1.5085121 +-10.4437399 +-0.4974482 +-9.5475798 +1.2395637 +-14.9028234 +-2.6002083 +-13.4745846 +1.3366922 +-0.3875120 +-14.1472950 +-4.8988876 +-0.9597809 +0.9612041 +0.8190889 +1.7015454 +0.9468209 +-8.2321186 +-9.6864576 +-3.7565372 +-17.0538750 +-0.7468876 +-6.9481468 +-1.1594579 +-16.2096043 +3.7033658 +-7.0735998 +0.4527402 +-3.1872268 +-11.0569782 +-3.9185956 +-1.5849376 +0.3331649 +-5.4748750 +0.9311652 +-7.1010108 +-9.9887505 +-15.8500137 +-5.9716287 +-4.0628061 +-4.0180073 +-14.7124243 +-25.3943367 +-2.7655110 +0.2853346 +0.1779525 +-17.9188385 +-14.0342951 +-10.0567818 +-1.1189301 +-5.3900118 +-3.1174443 +-4.9858189 +-0.5368240 +-2.1320734 +0.0020008 +-9.5205803 +-8.0503883 +-6.8394017 +1.9841549 +-3.1354580 +-5.4077029 +-3.6276922 +-7.3916249 +-9.9361506 +-0.5270712 +-0.5263594 +-1.7968634 +-10.5181932 +-3.0177989 +-4.7291403 +3.0163660 +-5.3146038 +-4.7639909 +0.5939593 +-1.1677831 +-0.5316000 +-12.7450914 +-0.6254688 +0.0402039 +-5.2430143 +-1.1198794 +-12.6064825 +-4.0175123 +0.1744132 +-0.5876964 +-0.2063040 +2.5425508 +4.4623275 +-2.9899909 +-2.8312573 +-5.3576360 +2.3687234 +-3.6035898 +-2.3430357 +-1.9773796 +1.0970719 +-9.1692467 +-0.3128287 +-8.0601339 +0.9437864 +0.3110669 +0.0068939 +-4.7308807 +-3.2483306 +-5.1111131 +-3.6701922 +-2.3424575 +-1.2274895 +-6.4841876 +-12.6274757 +1.6588328 +-1.6934870 +0.2718375 +-5.6291018 +1.7054251 +-1.3556005 +-3.1381478 +-0.6539401 +-8.6767864 +-2.4514301 +-1.1709915 +-3.1284637 +6.3862395 +2.8963590 +-8.8050032 +-5.3775978 +-0.2829528 +3.7586904 +-6.5503922 +-1.2522284 +-5.1073084 +0.1922235 +-5.8462329 +-3.5659583 +-1.8344079 +1.4886409 +0.7224828 +-10.6077089 +0.0939715 +-1.9621404 +2.3282466 +1.7415246 +3.0910249 +0.9438605 +0.9205359 +-8.2224045 +-4.7620168 +-9.9922667 +0.0284391 +-1.0688877 +1.5805535 +3.4705346 +5.6648059 +-10.0871878 +0.5250638 +-0.8099090 +-1.2159963 +-4.8473477 +-1.9696504 +1.1593263 +-9.5477972 +1.3470758 +-3.4180608 +-12.6130056 +-0.0802071 +-7.6209416 +-2.7460284 +-2.5258741 +-3.3028498 +-19.3633709 +-2.7196252 +0.5430132 +-0.1384954 +-2.9698279 +-5.9285221 +2.3504763 +-0.2511316 +1.0604837 +-3.3961031 +0.9090515 +0.0615224 +1.4849455 +-0.7664358 +-1.4767241 +-6.3595963 +-2.4879756 +1.8529085 +-3.2036920 +-0.7362745 +0.8237336 +-6.7556129 +-4.1224885 +-1.0937138 +-0.8378534 +0.6194538 +-4.8628178 +-1.1239996 +1.0805714 +3.8603332 +-0.2703316 +-1.0547836 +1.2227663 +1.1320952 +5.2781482 +0.6825341 +-0.4662029 +-0.9394560 +-1.1450317 +0.5863685 +-7.6072974 +-0.7546816 +-0.0459180 +4.8986034 +0.1822339 +2.4596095 +0.0022263 +-2.0278311 +-4.7167301 +0.6891578 +-3.0030360 +-0.8909284 +-0.5549530 +-2.4386761 +1.4317623 +-4.5058255 +-0.2563273 +-6.6252742 +2.6022694 +-0.5359745 +2.5085928 +1.4947002 +-2.8692348 +1.5908253 +3.1423712 +0.9537729 +2.7171998 +-2.8878036 +-6.3672905 +0.5867322 +-0.1353118 +-3.5724895 +-2.1296194 +1.5195147 +-0.4876227 +-0.0399202 +-0.6411030 +7.2590966 +-1.7598678 +-1.3398392 +1.0438068 +0.8312491 +1.4666699 +-5.7459855 +-3.7631705 +-1.5075420 +0.3331920 +1.6628127 +-3.5701296 +3.4370656 +-0.4753205 +-0.9644934 +0.9755663 +2.2851906 +3.2782483 +2.3157065 +-1.1914262 +1.3895091 +-1.5169295 +1.1053007 +1.2889177 +0.8663557 +-1.3065231 +0.4687446 +-3.8062220 +-4.1857204 +-2.3808970 +-1.1130078 +-0.3076307 +-2.3702312 +-2.8139486 +1.2200669 +-1.3017902 +1.7698344 +-0.7457583 +-0.5191540 +-2.3137338 +0.1642949 +-0.2322050 +-6.0055089 +0.5753831 +-0.5218608 +-8.2131414 +0.6907878 +-4.3169670 +0.5819865 +-0.1009988 +-1.3449643 +-2.8241861 +-2.3028243 +0.1046275 +-2.2725546 +-1.3705764 +-2.3246408 +-0.3461114 +0.3707440 +0.4226102 +-0.6900661 +0.5305365 +0.4133091 +-0.3318202 +-0.1225073 +0.6915329 +-0.7068787 +0.0719372 +-3.4113064 +-0.4036791 +0.4441193 +-0.3185442 +2.5737858 +0.1914769 +0.5704088 +0.2354095 +0.3031018 +0.4523705 +-0.4232635 +-0.1610916 +-0.5512345 +0.4810207 +-0.4350213 +-0.3388538 +0.9697220 +-0.4496993 +-0.5540157 +1.5602587 +-0.1502820 +0.6056065 +-0.0265321 +0.4341279 +-0.4253919 +-0.2432505 +-0.8165278 +-0.1945630 +0.1215566 +-0.0855101 +-0.3954821 +1.2102822 +1.1148672 +0.0766508 +-0.4059836 +-0.1043001 +0.5629676 +0.8754398 +0.1710954 +-0.0809910 +-0.3388340 +0.4613125 +-2.6935863 +0.0756028 +0.5167647 +0.4369558 +-0.9073315 +-0.1071658 +-0.2061827 +0.0069288 +0.6050130 +0.7551086 +-0.2765722 +-0.3087592 +1.9089383 +0.3718866 +-0.6642226 +-0.1158919 +0.4232560 +-0.3172515 +0.0591187 +-0.2656965 +-0.2725341 +0.0179678 +-0.1942679 +0.1394739 +0.4554024 +0.2822700 +-1.6596390 +0.2213238 +-0.2787611 +0.2595790 +-0.3085131 +-0.2495996 +0.2455583 +0.3158481 +0.1564876 +-0.0455630 +-0.1503115 +0.5048039 +0.4404252 +0.3884307 +-0.2715151 +-0.6056479 +-0.2226449 +0.3300509 +-0.1038963 +0.2949059 +-0.0304039 +-0.2215813 +-0.0647303 +0.2197636 +-0.0410589 +-0.0680683 +-0.5397602 +-0.3841026 +0.0865106 +1.6722056 +-0.1892621 +-0.5082575 +0.0287262 +-0.8112959 +-0.5571501 +-0.1122232 +-0.4514512 +-1.0650001 +0.2124787 +-0.4427501 +0.1789127 +0.4261480 +0.2178562 +0.7076420 +-0.1657795 +0.7212250 +-0.3187014 +0.8336796 +-0.3627684 +-0.4501329 +-16.6310902 +-6.0031357 +-0.1943688 +-1.4349110 +-4.2442713 +7.5948977 +3.8519368 +-3.0574117 +-8.2228241 +-4.9585814 +-0.2099373 +2.6640458 +-0.4662865 +21.3341427 +-8.7568045 +-6.9531045 +0.3155036 +-0.1634213 +2.6423614 +-11.6659203 +1.1529261 +-3.6070647 +4.7315493 +-13.2256241 +2.2819800 +3.9950855 +0.9516693 +-6.2661266 +-20.2775345 +0.2769282 +2.6236203 +4.9644022 +-2.9488282 +-7.4852934 +-3.1470304 +-3.1219275 +4.9626508 +-1.5031856 +-1.6278816 +-5.8101525 +1.2572734 +-1.4818296 +-3.8283989 +0.8200043 +-5.6304960 +-6.4767156 +-2.3301973 +-1.2969662 +-7.9181585 +-5.5249848 +1.1133178 +-4.7515869 +0.1760579 +-19.0408459 +-1.0005912 +-0.7199787 +1.3532630 +2.5003519 +-0.3825751 +1.1923913 +7.0389981 +-18.9233799 +3.0698195 +-9.9632645 +2.2858870 +-1.0247868 +-1.0841163 +-10.6698627 +-0.7436699 +-2.2582884 +-6.2619047 +-3.8284390 +4.9703345 +4.4908485 +-12.4481010 +0.3231458 +-8.2589684 +4.3877263 +0.5983620 +1.0681961 +1.3064004 +-2.2101889 +-0.7107019 +-6.9715071 +15.4321651 +-1.1828744 +-24.9194832 +-0.3227689 +-0.7970613 +-8.0158548 +-7.6310515 +3.2725475 +-0.2359439 +3.1742959 +0.2074505 +-1.0448763 +-4.3541594 +8.6689510 +-4.3650289 +-4.2629519 +1.7010704 +-5.4052424 +-3.5440280 +-4.1604867 +0.3635493 +2.3560057 +-0.6788211 +1.6359729 +-4.0464039 +-1.5541867 +-2.8013484 +3.6764555 +-4.8125768 +1.8075323 +2.9484620 +0.5136936 +-9.9585943 +-2.2678940 +-2.6603351 +7.7281065 +-41.9795189 +-22.1049347 +-3.2638330 +0.0766385 +6.2381396 +-11.4971771 +-3.4309113 +3.5691652 +-2.0936019 +-3.1897168 +-0.6848348 +-5.3634133 +-3.4234924 +-3.0006728 +0.4728877 +-4.3303046 +-9.2895994 +-8.1812048 +-1.3136802 +1.1660728 +1.8373102 +-12.1716614 +-16.7240467 +-12.4928522 +0.7178096 +0.2474770 +-3.0598030 +1.3551748 +-0.5311199 +-4.4458270 +9.3977308 +-4.2728314 +-0.4539333 +3.7012830 +1.2076483 +2.4347012 +24.4353180 +0.2003733 +-1.1923009 +-2.0839245 +-2.5368032 +-9.2419119 +3.7590473 +-2.1189544 +3.0477438 +-0.1130519 +-1.7698480 +-1.9992909 +0.1251070 +-3.2214358 +-2.8144484 +-0.3798586 +-2.8765774 +-1.5103058 +-5.0337901 +-0.8733174 +-11.4291887 +0.4462828 +3.0300913 +5.0918617 +0.9544186 +9.2208958 +-2.0404236 +3.7658873 +-1.4111567 +-3.0830033 +-6.1130710 +6.4277749 +-8.0885220 +6.5739436 +3.0581470 +-0.0286487 +-0.2165195 +-1.7621112 +-2.8376119 +0.9523951 +-1.9199500 +-7.5662799 +3.3832531 +-9.2316837 +1.2879182 +-1.2198292 +8.3977079 +0.4368662 +9.4622726 +-3.1123385 +-0.1450468 +2.5489712 +6.0932808 +-4.0951028 +-0.8030659 +-2.8314683 +-7.8296084 +-8.5770731 +18.9091301 +-0.1818910 +-2.4040039 +-8.4857082 +-8.8492508 +6.8419929 +-1.7243280 +-1.3199285 +0.3188032 +-0.8111617 +-1.0087739 +-3.9921341 +-5.9605126 +-4.7844076 +2.7769835 +0.0875538 +-4.1442356 +-0.9914377 +4.2023230 +0.1312286 +1.0649723 +-0.7264592 +1.2617428 +-3.0657721 +-5.8526068 +7.5005703 +-7.6365123 +-1.3482428 +6.1504698 +-1.6916497 +-0.8305127 +-1.3438982 +-0.2862490 +4.5839448 +17.0189209 +-11.9968719 +-2.4462574 +1.3278105 +12.0319157 +-4.5760598 +-0.5249854 +3.8069553 +-0.4249372 +-0.5935655 +1.3611635 +-0.2402345 +0.3626246 +3.9638758 +0.0965060 +-0.2706954 +-1.6507200 +-4.4556198 +2.7181604 +-5.4293675 +2.5410354 +0.1499692 +-20.4232292 +-3.3810537 +0.2768375 +-4.5585284 +-0.8098422 +-6.6517043 +0.7740587 +-0.9095357 +0.6227099 +-1.3722658 +0.3427762 +1.1165488 +3.4743583 +0.2721613 +1.0057435 +1.8207961 +0.2755280 +1.1672341 +0.1930216 +-4.1479797 +0.0365247 +1.1605086 +4.9229269 +0.1701064 +0.5142719 +0.1077519 +0.5459816 +0.8665490 +4.8083329 +1.2614042 +-0.7669032 +0.0390516 +-6.9461198 +-0.4185502 +-2.5754230 +-0.0645320 +0.4397853 +1.8298349 +1.0409144 +-3.2503462 +0.6979865 +1.0808018 +4.6261940 +1.6474231 +2.5137730 +1.3765826 +-0.8556657 +-6.3743515 +-0.3515947 +0.6727597 +0.6357196 +-0.0251036 +-4.4724126 +-0.0551619 +-0.5232971 +-0.1510348 +7.7511320 +-1.5465640 +1.2859883 +1.8942509 +0.1513785 +2.9207788 +0.7564036 +-3.7034473 +0.0911335 +-1.3424498 +5.0953846 +-5.2076974 +0.7522895 +2.0845182 +-0.5231905 +-4.2942228 +3.7252774 +0.0826738 +-1.2298180 +-1.0810421 +0.4548885 +10.8601017 +-1.2632736 +0.8977286 +2.3219295 +-3.3258390 +0.3112971 +-5.2253814 +-1.2323074 +0.1545123 +2.6228180 +-0.0420219 +-0.8587549 +-0.1162814 +1.2109836 +0.9249868 +1.9963824 +-3.3371129 +0.0589305 +0.1466072 +-1.5244163 +4.9020796 +-5.1666012 +0.4301581 +3.6734626 +1.5414319 +-0.3701023 +0.1063633 +-0.1896227 +-1.1489216 +-3.5779970 +-3.3441267 +-0.0812074 +0.7893462 +3.2899485 +1.5500041 +0.6499448 +-0.4301859 +0.2165100 +-0.1643175 +-0.9872167 +-0.0609671 +0.1556763 +0.4552878 +0.0420179 +0.1445302 +-0.4965579 +-0.1068765 +-0.4153679 +-0.5187994 +0.3469188 +0.2821470 +-6.4895992 +-0.5475262 +-0.7648692 +-1.5277883 +0.2464232 +-0.8424444 +0.0815231 +-0.0025427 +-0.0539322 +0.3191202 +0.0422391 +0.0072717 +0.9522736 +0.0086466 +-0.4542427 +1.7285061 +0.0579058 +-0.5780551 +0.0395235 +-0.9439186 +-0.0724095 +-0.0768653 +2.3830562 +0.0257043 +0.1328641 +-0.1084304 +-0.2514987 +-0.8620729 +1.6131657 +0.8996330 +-0.1877618 +-0.0785810 +-3.3004992 +0.0750013 +-0.1556151 +0.0124414 +-0.0412510 +0.6106753 +-1.9882299 +-1.7141106 +-0.5910853 +-0.7698745 +-0.1214480 +1.4761517 +0.5220502 +0.2972841 +0.5899143 +0.4615110 +-0.0304617 +-0.0934869 +0.4684950 +-0.2758052 +-5.0662613 +0.0109509 +0.0180153 +-0.3679387 +0.7259143 +-0.2736565 +0.0620334 +1.7977457 +-0.0214337 +2.4288764 +-0.8976269 +-0.4135722 +-1.7651147 +-0.1692702 +-1.2607479 +-1.6501675 +0.5071335 +0.1191645 +-0.9822410 +-0.2025577 +-0.9956262 +-0.9891500 +0.6810001 +0.2289951 +0.1831891 +1.7154590 +-0.9450992 +0.7780876 +-0.1105255 +-0.4455275 +-0.0779236 +-1.1877148 +-0.2571215 +0.0022937 +0.2774557 +0.1177443 +-0.1954255 +-0.0775757 +0.2739690 +0.0142030 +0.5525717 +-3.3500886 +-0.1021288 +-0.0315747 +-0.0659220 +0.8102577 +-0.1626580 +0.0294802 +0.0604326 +-0.0189303 +-0.0747451 +-0.0361708 +0.0850414 +-0.4877670 +1.7201272 +0.2094595 +-0.0896052 +0.3974455 +0.1431774 +0.5851300 +-0.1385584 +-0.1487802 +-10.9020023 +-6.4604053 +-0.6119736 +-0.9607225 +-1.5005718 +4.2362757 +7.6092496 +-0.7658414 +-6.7507119 +-4.9098206 +0.1326058 +3.3768137 +1.5131369 +18.6791916 +-8.3135633 +-10.8607588 +0.2127417 +-0.4984641 +-5.1033115 +-12.5478916 +0.5252028 +1.6530433 +5.4477940 +-11.6766396 +-2.3584235 +3.7621379 +0.3280195 +-4.0680180 +-27.8843441 +0.0008050 +1.6739914 +4.7054753 +-3.4632223 +-3.4385900 +0.5876267 +2.1968441 +6.7992282 +-3.7872941 +1.6027490 +-3.8304501 +-7.0258398 +-3.1765740 +-3.8263240 +0.3538179 +-12.6590424 +-6.7054157 +-1.8343530 +1.1983846 +-9.5064611 +-6.3283176 +0.3278785 +-4.9637694 +0.3581591 +-20.2568588 +-0.7943841 +-4.5918989 +0.9763858 +-0.5632349 +-2.5066862 +1.0590392 +4.8314943 +-21.6714268 +6.7913909 +-9.3600330 +3.2503819 +-4.7947125 +-0.5508365 +-6.6716175 +-0.9852833 +0.0942381 +-7.2383032 +-12.6120882 +-4.0949631 +1.1076270 +-23.0044861 +0.6172416 +-10.7331524 +1.9027019 +0.2192503 +1.1278752 +-1.0522112 +-2.0876884 +-3.8618345 +-4.4372187 +12.6782265 +-2.2130358 +-28.4029408 +0.0593984 +-0.7271300 +-13.1014214 +-7.1873064 +2.1849771 +-0.8992528 +6.3367796 +0.6296404 +-1.3813413 +-4.3764906 +4.4256768 +-2.1574407 +0.6892807 +1.1846412 +-4.6285086 +-3.2198985 +-0.8339602 +1.1976030 +-0.6862194 +0.2904394 +3.8897357 +-2.6980424 +-2.2393785 +-0.3252529 +3.5821743 +-5.0362263 +3.2637382 +0.4136814 +1.5778947 +-7.9310403 +-3.2447248 +-2.0120239 +1.4687805 +-48.8847084 +-26.2270145 +-2.8703301 +-0.3588958 +4.9499941 +-4.1472869 +-6.8561845 +-5.5698552 +-4.0807953 +-4.3191075 +-1.9122322 +-1.8393705 +-3.8604481 +0.0158231 +-1.3833557 +-5.3814650 +-7.3993950 +-4.9359584 +-0.5879554 +-0.5382923 +-1.3670213 +-6.7480493 +-12.9710197 +-11.2841825 +0.4445008 +-1.2806168 +-2.7104943 +-5.5413246 +-1.3032517 +-3.2486877 +6.1214871 +-3.2997785 +0.2444350 +1.2155699 +-0.0264632 +2.3298330 +5.8472776 +-0.4279686 +-0.3399495 +-1.4716235 +-2.5386400 +-2.8797622 +-0.8826222 +-1.4953271 +5.6500559 +0.1228915 +-2.7174265 +1.2536781 +0.1135622 +-5.1315446 +-2.0093741 +-0.1633961 +-4.3283696 +0.6919309 +-4.5314617 +-0.4988731 +-9.4473934 +-0.8160356 +2.9662807 +2.1160018 +0.7300512 +3.5764091 +-2.6195273 +-0.5990936 +-4.6031604 +-4.7900934 +-0.5504545 +1.8885990 +-10.4134731 +-4.2807941 +1.7744969 +1.0062784 +0.5844038 +-4.7252154 +-1.9323561 +0.0028943 +2.8333127 +1.3689041 +3.1989062 +-7.8609715 +-0.2987794 +-6.1071448 +3.6919491 +0.2742804 +0.9825029 +0.3526421 +-0.4900527 +3.2406266 +-0.6468818 +-3.3739622 +-1.4638610 +-1.3643066 +-6.1938128 +-5.0360260 +10.1326370 +0.8279085 +0.3502911 +-4.6596851 +-2.6649029 +5.0734859 +-1.5724734 +4.5257177 +0.9393933 +-0.5889393 +0.9811124 +-2.5528705 +-1.7344528 +-3.9386666 +2.7539499 +0.2222534 +-3.2918661 +-1.2732563 +1.1832098 +-3.6542075 +1.8421397 +-0.9118867 +0.1738182 +0.5406161 +5.2562814 +5.5252972 +-7.6431327 +1.5066384 +-2.7504215 +-6.2082758 +1.8983955 +-1.0329494 +0.5638666 +-0.0799249 +8.1328115 +-13.4466848 +-0.9217070 +-1.2126626 +8.9026804 +-7.2430744 +-2.3132706 +-2.1499426 +0.2875623 +-1.5463482 +-2.2990482 +-3.6447697 +0.0530700 +0.9869400 +-0.0172298 +-0.1966260 +-2.6791632 +-1.3625715 +0.5861464 +-2.3814039 +-4.9234343 +-1.0035702 +-13.0277138 +-4.0207543 +1.4375994 +-5.2564230 +-0.0633251 +-4.5946250 +0.0411798 +1.2286532 +0.4462720 +-0.3099569 +1.5257995 +1.0292847 +1.7382742 +-0.1252225 +0.3715046 +1.1328629 +0.0300274 +0.9329253 +0.0237069 +-2.7134192 +0.2664864 +-0.5660462 +5.4307847 +-0.1087739 +0.3207189 +0.0052277 +0.1502821 +-3.8456652 +5.0939217 +2.4589794 +0.6661084 +-0.1429626 +-6.0853152 +0.2594236 +-1.4536147 +-0.0080008 +-0.0305471 +1.7188976 +1.9070795 +-0.5413505 +-1.7082595 +-3.9325104 +1.2418110 +2.4190071 +0.0409817 +-0.1262770 +-0.8648005 +-5.9976597 +-0.0866812 +-0.0840197 +1.8009553 +-2.8355017 +-4.1431665 +-0.0872622 +0.0542082 +0.5283386 +7.0825357 +-2.9754248 +0.0421554 +2.8402779 +0.2030469 +1.9526969 +-6.0174823 +-3.4200749 +1.3108894 +-0.0230628 +2.1305978 +-4.1494813 +0.9820502 +0.6884356 +-1.1657804 +-2.6851208 +4.8088236 +-0.4774160 +0.6595087 +-0.7500691 +-0.2565803 +6.6489401 +1.1511425 +2.3399017 +3.4357920 +0.0265437 +0.2063327 +-0.7103918 +2.8965251 +-0.1091035 +5.1748719 +0.1154665 +-0.7870808 +-0.0764730 +-0.5062637 +0.8409014 +0.6221722 +-1.4745905 +-0.1767758 +-0.0582819 +-1.5150970 +1.5653224 +-2.4334321 +-0.0737408 +1.4677756 +0.2237847 +0.0448311 +-0.1097801 +-0.0147166 +-0.4328535 +0.7012848 +-2.2156410 +-0.3137698 +-2.8121874 +0.4831968 +-0.2932357 +0.2889338 +0.2137762 +0.1400776 +-0.1084876 +-1.2727387 +-0.3350597 +0.1947748 +0.0292764 +-0.0502233 +0.2202889 +-0.2508930 +-0.2285435 +0.6489351 +-0.3537174 +-0.6070087 +0.0266706 +-3.0480571 +-0.1683811 +0.2286564 +-1.0059052 +0.2083539 +-0.1172891 +-0.1409699 +-0.0430551 +0.0195866 +0.1456507 +-0.1137000 +0.0294452 +0.3647248 +0.0077800 +-0.0506381 +-0.0857302 +-0.0533169 +0.0053274 +0.0877002 +-0.5753875 +-0.0777950 +-0.0698413 +0.1213901 +-0.0560283 +0.0673734 +-0.0135426 +-0.1324507 +-0.3638951 +1.0974060 +0.4651145 +-0.0848181 +-0.0642637 +-3.5362451 +0.1658211 +-0.0058369 +0.0266945 +-0.1310569 +-0.0164157 +-0.9447198 +0.6939871 +-0.3496045 +-0.0809180 +-0.1331697 +0.1507194 +0.0149280 +0.0998803 +0.0198882 +-0.6828791 +-0.1587142 +-0.1111037 +0.6261358 +-0.6604312 +-5.0138631 +0.0174256 +0.0140539 +-0.0654406 +0.4963406 +-0.0612997 +-0.1181750 +-0.0680954 +0.0082627 +0.3387975 +-0.5783111 +-0.2590839 +0.1310524 +-0.0917250 +0.5119659 +-3.1259961 +-0.0408708 +-0.0592804 +-0.1665707 +-0.5704363 +1.9788990 +-2.7644908 +-0.2375405 +0.2796683 +0.1891274 +0.8101864 +0.2224751 +0.0998619 +0.1236557 +-0.1160560 +0.0241595 +0.3223490 +0.3067291 +-0.1038162 +0.2158668 +0.1226353 +-0.1553317 +-0.0149162 +0.1904674 +-0.0446353 +-0.1513693 +0.4231793 +-0.0953827 +-0.1070846 +-0.1863008 +0.4415622 +-0.7381020 +0.0288075 +0.0055171 +0.0134444 +0.0834548 +-0.0234615 +0.0418892 +0.4514482 +-1.0921624 +0.0023101 +-0.1204018 +-0.8399166 +0.1781532 +0.1516516 +-0.1015494 +-0.1390421 +-5.5418291 +-3.4606125 +-0.5281800 +-4.4116993 +-2.3645048 +0.7204017 +-1.0874120 +-4.5746775 +-4.6929736 +-5.0926037 +-0.1370087 +-0.7977787 +0.7451371 +-3.1580927 +-8.2145290 +-18.2553673 +0.0331046 +-0.8164864 +-2.1469896 +-15.6577435 +-7.2981610 +-1.5796005 +4.1466455 +-10.0440216 +-7.2918859 +3.8504248 +0.1857722 +-1.1502440 +-22.5691204 +0.0885851 +2.8182323 +1.9529904 +-1.5928879 +-5.2922955 +4.5148849 +-2.8560090 +3.3990905 +0.3644844 +-4.3277950 +-1.0410366 +-1.0349226 +-3.0246689 +-5.2357025 +-0.8962823 +-5.0976605 +-6.6260424 +-1.6667649 +-3.0549605 +-10.4837027 +-6.3080430 +-0.5218152 +-1.3146428 +0.1647527 +-17.3604889 +-2.1067154 +-10.3461390 +3.4361093 +-11.4071331 +-6.7861347 +-0.3302544 +-3.2053297 +-26.6471958 +0.7400098 +-6.1824255 +3.4007952 +-4.5382767 +-0.3238986 +-6.2634640 +-1.6706967 +-7.1982026 +-9.9638815 +-12.9055233 +0.3905379 +-11.9627628 +-20.9465313 +1.5631781 +-20.1948853 +6.8201475 +-0.0443395 +2.0313406 +-10.4310112 +-1.7281190 +-2.7791300 +-7.7414789 +-7.3966794 +-3.3056939 +-36.2718391 +0.9588027 +-0.4907002 +-9.4449587 +-4.4490528 +1.2557851 +-0.5068755 +2.9064333 +0.4567771 +-0.5359460 +-1.5076780 +2.7933488 +-4.5352802 +5.0799232 +0.7861757 +-0.9145927 +-2.3565958 +2.5936930 +0.5816894 +-3.1455321 +0.4436203 +0.9169747 +0.3941655 +-3.0738246 +0.9447868 +3.0653486 +-6.2150803 +3.1531038 +-4.2124891 +-3.5744128 +-4.4280748 +-3.7600272 +-3.6052725 +-8.5044641 +-43.8767929 +-30.3907108 +-2.6056564 +0.1282366 +3.7417562 +-1.9434100 +-11.3992519 +-1.5521847 +-0.8681796 +-2.5605547 +-1.2905459 +-4.5943203 +-0.1361712 +3.0285892 +0.1942665 +-6.0515046 +-6.2056670 +-0.6195604 +-0.5122824 +1.1371419 +0.4366178 +-4.5309129 +-13.3272581 +-7.2101984 +0.7309782 +-1.4871157 +-3.2893546 +-9.4865942 +0.0912232 +-0.6132792 +3.9803319 +-0.6228775 +2.7009275 +1.7149975 +0.0543885 +4.0743122 +4.5571890 +0.0436628 +-0.3306530 +-3.5990021 +-1.3852243 +-3.5275776 +0.7434293 +-1.1556381 +6.2456503 +0.3535879 +-6.4892116 +1.3073467 +-0.7264717 +-4.3228407 +0.1068264 +-0.2359978 +1.9135132 +-0.2678403 +-3.5564952 +-0.1164516 +-9.3575230 +-0.1820710 +-0.8706475 +3.5866234 +1.1193688 +0.0891814 +-0.0043062 +-3.8890467 +-0.5461449 +0.3159576 +0.0403957 +0.3683738 +-3.5608695 +-10.7294016 +2.6878176 +-1.8756515 +-0.7481948 +-5.2146392 +-1.8531984 +-0.2333980 +-0.4662661 +-3.2519019 +3.7017784 +-4.2063713 +-1.4870242 +-5.5493608 +0.5690600 +2.6266689 +-4.3807015 +-3.3400269 +-0.1781675 +3.4819436 +-1.8909684 +-1.4966279 +0.5865164 +0.3515718 +-3.4682381 +-4.2159433 +3.8040781 +1.2788334 +-0.7554398 +-2.7757812 +-3.2268293 +3.3009150 +-2.2918105 +-0.6973877 +2.9837694 +0.2012882 +2.0687068 +1.7750251 +-5.4213114 +-5.3187437 +2.0740891 +-0.3709232 +-0.6989795 +-1.5996492 +0.4475174 +-3.2125475 +3.1274946 +4.0486598 +-0.7466505 +-0.5251788 +3.0764382 +3.5617957 +-7.4356766 +-1.3435565 +-3.4032412 +-9.0399599 +0.1222953 +-1.8085365 +-0.0721854 +2.0983875 +2.3331470 +-9.5046091 +0.1428536 +-0.8420753 +4.4810748 +-5.0153680 +-2.4940393 +-0.9031405 +0.7025740 +0.5053602 +-2.0589466 +-1.0151672 +0.1602719 +-0.2141217 +-0.3260771 +0.2584079 +-2.9362319 +-0.5133914 +1.5300697 +-0.5174081 +4.5869436 +-2.3160548 +-9.0424767 +-3.6458342 +-0.8448599 +-0.8610765 +0.7971698 +-2.1764133 +-0.0939022 +-0.2492293 +-0.8121480 +-0.4650476 +-0.1486198 +0.0234148 +3.5160460 +0.5486078 +0.6549061 +0.8728507 +-0.1880767 +-0.2163589 +-0.2000592 +-1.6435846 +0.0202058 +-0.1995780 +1.8811566 +-0.1099386 +-2.9857666 +-0.2759724 +-0.1642667 +-3.0967338 +7.0175228 +1.1733277 +0.1221453 +-0.1497682 +-8.2267017 +0.5763010 +-0.5164653 +-0.0724866 +-0.1566426 +0.3339812 +2.1105645 +-1.8447547 +-0.8987961 +-3.2731822 +0.2267210 +1.0650095 +-0.4891726 +-0.0395916 +0.0160900 +-6.9844804 +-0.1837099 +-0.2650258 +1.0227178 +-2.5924077 +-2.8902609 +-0.0931725 +0.2902173 +-0.1232848 +4.4052896 +-0.9461008 +-0.3224052 +0.2933945 +0.3393409 +1.0856991 +-6.2677541 +-0.5182180 +-1.8235955 +0.2393213 +3.5839248 +-2.5063634 +0.2596196 +0.0675338 +0.9801259 +-1.1482294 +6.9380689 +0.7360182 +-1.2771711 +0.7260947 +0.1185391 +3.6017938 +-0.6234903 +0.1685597 +0.3803677 +-0.1679727 +0.3997108 +-2.4500678 +-1.4581828 +-0.1641731 +2.2969708 +0.4547249 +-0.5173308 +-0.4066561 +-0.1360491 +0.5587360 +0.3105861 +-0.0382781 +-0.1569213 +-0.1902342 +0.0475182 +1.7997230 +-4.3587265 +-0.4008147 +1.5365094 +1.5315387 +0.2426698 +-0.2045715 +0.0502901 +1.0572423 +2.3926671 +-1.9915103 +-0.2284398 +-3.4666753 +0.8871130 +0.2731059 +0.0075645 +-1.0283709 +0.1283007 +0.0132336 +-1.5427383 +-0.0419704 +-0.0198941 +-0.0580759 +0.0270734 +0.0297467 +0.1213831 +0.0708780 +0.1541587 +-0.1183354 +-0.2515351 +-1.1497833 +-2.0515540 +-0.0149536 +0.0005107 +-0.5128970 +0.0907585 +-0.3968808 +-0.0525849 +-0.0072014 +-0.0165295 +0.0040595 +-0.0012058 +0.0359978 +0.5983104 +-0.0283695 +0.0225232 +2.0847437 +-0.0362465 +0.1834458 +0.0126807 +-0.0138617 +0.0201063 +-0.0338608 +0.0318851 +-0.0601992 +0.0690209 +0.0250932 +-0.0473793 +-0.2858982 +0.7957757 +-0.0231281 +-0.0927546 +0.0209550 +-2.6661353 +-0.0006712 +0.0132997 +0.0226690 +-0.0217779 +-0.1737120 +-1.2595567 +0.6384131 +-0.0495518 +0.0184424 +-0.0693158 +-0.0292435 +-0.0442218 +0.0269358 +0.2371056 +-0.0151012 +-0.0575253 +0.0180541 +0.1316849 +-0.4192081 +-3.4792402 +0.0382948 +0.0332645 +-0.0288562 +0.0878259 +-0.0525545 +-0.0161341 +-0.0644827 +-0.0294787 +0.3249755 +-0.2092764 +0.0592548 +-0.7336701 +0.0167504 +-0.0050487 +-1.7292084 +-0.0360870 +-0.0409688 +0.9851782 +-0.0248936 +0.9393254 +-2.2359180 +-0.0097939 +0.0950119 +0.0457206 +0.4943694 +0.3484202 +0.1444300 +0.1946514 +-0.0774575 +-0.0101077 +0.3676784 +-0.1278146 +-0.0017013 +0.1196480 +0.0364274 +-0.0920493 +-0.0435261 +0.0299732 +-0.0632833 +0.0146934 +0.1465056 +0.0342807 +0.0268409 +-0.0156664 +0.3598750 +-0.2147734 +-0.0216139 +-0.0354808 +-0.0324241 +-0.0628822 +0.0071095 +0.0370587 +0.2183925 +-0.9171645 +0.0154432 +-0.1671848 +-0.1406101 +-0.0297383 +-0.0157549 +0.0010204 +-0.0975884 +-1.4433848 +0.6875985 +-3.0728712 +-0.0557698 +-1.8509395 +2.4672968 +0.0195252 +-4.2532849 +-5.4533710 +-3.3258760 +-1.5599749 +1.8869035 +-9.7415752 +16.0420723 +-2.2032535 +-12.1405010 +0.4013016 +-1.5716467 +1.9748453 +-9.1983805 +-0.0305779 +-3.1584125 +1.8495662 +-1.3243629 +1.2052729 +-3.5390775 +-1.6142542 +2.0715373 +-14.9534874 +-0.9070188 +0.0039115 +2.9941800 +-2.0128512 +-3.3686163 +1.6128978 +0.4449026 +2.6044729 +1.7029196 +-1.2974104 +2.3947368 +0.6939912 +-1.4005016 +-2.4552362 +-1.7008927 +0.9489899 +1.3356671 +-1.8375108 +-1.2935628 +-7.9108176 +1.3168383 +-0.7348980 +-0.3310099 +-0.4494211 +-1.8472534 +-1.9610893 +-2.8179114 +-1.0585016 +2.0208104 +0.3887051 +1.2609682 +-7.0888805 +-19.8617325 +4.6428533 +-4.3750777 +2.7996578 +-2.8418958 +0.0338904 +1.7181677 +2.6158602 +1.7325931 +-7.6634459 +-4.7303290 +4.3887305 +0.4927361 +-10.5752373 +4.1333365 +-8.1871529 +-2.3379009 +-0.5840587 +-1.6408221 +-6.4292107 +-1.5755930 +-0.9374681 +-5.0003958 +10.0869608 +-3.4630682 +-8.0010433 +1.3284444 +-1.6306207 +-4.0175748 +0.7773973 +0.5322858 +-1.3179113 +-2.1940486 +2.2238009 +1.9452801 +-2.8418946 +7.4436026 +-3.1945324 +-5.3006592 +-0.1477912 +1.7133995 +-5.0737739 +4.8642259 +-3.5140495 +-12.8105717 +1.8038913 +0.2038920 +0.9961546 +-2.5990090 +7.5244350 +2.2727232 +-4.7360802 +-1.4142119 +-3.4535830 +-3.1503122 +-1.3538383 +-1.5043489 +-1.8518412 +-5.8231950 +-8.3708897 +-26.1085224 +-1.5985014 +-1.5696762 +2.2449751 +-3.3385000 +-10.6817751 +-1.7753531 +1.2265056 +0.1095232 +-0.4209745 +0.6209499 +0.5348682 +0.3743223 +-0.2163628 +-0.6892003 +-4.8979230 +-1.8060262 +-1.1772768 +1.1184261 +1.9036791 +-0.0411465 +-6.7885423 +-4.9958429 +0.3038368 +-0.3591782 +0.1552129 +-5.9775252 +0.0479739 +1.8177240 +1.0636421 +0.2223199 +0.2126664 +-0.0565106 +1.0281485 +4.1913996 +1.4673166 +0.2246404 +-0.5727237 +-0.8707018 +-1.0844371 +-1.2376814 +-0.2575286 +-0.8556662 +6.8390737 +-0.0698547 +-0.4543592 +0.8102639 +-0.8972443 +-3.7981114 +4.9702888 +-2.2008090 +-0.4098420 +-0.0353265 +-4.5958300 +0.8584411 +-0.8375168 +-0.0479500 +-0.1765778 +-2.5464303 +-1.0813056 +2.0728135 +-2.8396633 +-0.7110825 +-0.4809602 +1.1540312 +0.0227953 +0.2712098 +-0.6960360 +-8.7352190 +-0.9371679 +-0.4204656 +-0.4318064 +-2.0768986 +-1.9374141 +-0.1203853 +1.1637573 +-0.7998530 +8.4040985 +-3.9876349 +0.7836494 +2.8757362 +1.0577943 +1.8588816 +-3.9635606 +-0.3218448 +-1.1276726 +0.8427593 +0.1750917 +1.0775185 +1.2518865 +-0.4813160 +-1.4724739 +0.7544928 +3.5050085 +2.2136796 +0.5273576 +-0.0522016 +3.1035891 +0.7874528 +-3.1069562 +0.9370908 +-0.1362479 +-0.8974123 +0.9692231 +-0.1023518 +-3.1656356 +-0.2912555 +3.3862298 +0.8075331 +-0.5385070 +-1.9473540 +0.2836035 +-0.3149213 +0.2291082 +-2.1200578 +-0.6227269 +-0.3733579 +-0.9010224 +0.2513644 +-6.6941857 +-0.6983629 +3.9627709 +-1.7126573 +0.3672599 +-0.3083369 +0.2033003 +2.6810839 +1.6959659 +-9.1167326 +0.1493391 +0.9061410 +-1.7254164 +-0.4951603 +0.1280620 +-0.3178100 +0.0367801 +-0.1145620 +-2.1933155 +0.2753256 +0.0003725 +-0.0044187 +0.0400113 +-0.1455919 +-0.1398926 +-0.1785195 +-0.4296287 +-0.4246275 +5.5909324 +-0.0534341 +-3.7105575 +-0.3627723 +-2.1414537 +-0.8698267 +0.0093591 +-0.5095364 +0.0218992 +-0.3146593 +0.0819228 +0.0405478 +0.0876989 +0.0328640 +0.8960001 +0.0448315 +0.0793591 +2.8280039 +-0.0339226 +0.1247374 +0.0015225 +-0.3773082 +0.0029193 +-0.0091249 +-0.0635698 +-0.0478947 +4.2867551 +-0.0355601 +-0.0587593 +-0.0951890 +1.5589032 +0.0846648 +-0.0336399 +0.0390514 +-3.8727756 +-0.0011437 +-0.1316846 +-0.0150223 +-0.0203558 +-0.2514429 +-0.7578244 +0.2397227 +-0.1916785 +1.1010784 +-0.0659174 +0.1230245 +-0.0788509 +0.0005486 +0.1755823 +-0.5654595 +-0.0449847 +0.0380678 +0.2177615 +-0.4909416 +-4.6553168 +0.0158936 +0.0810403 +0.0247386 +0.4386791 +-1.0910361 +-0.0643846 +0.1925383 +-0.0188371 +-0.0179154 +-0.0947130 +0.1026405 +-2.9363265 +-0.0603115 +0.0183362 +-2.8161480 +-0.0008919 +-0.0526333 +0.1860383 +0.1330208 +0.1674712 +-0.0435285 +8.9725523 +-0.0337352 +0.0566068 +3.5633988 +-0.1716969 +-0.0179625 +0.3680809 +-0.2286198 +0.0093299 +-0.6046819 +-0.9292719 +-0.0433515 +0.3787585 +-0.0205387 +-0.0787900 +0.0244223 +-0.1155684 +-0.0833903 +0.2778535 +0.1051666 +-0.0105080 +-0.0398884 +0.1434060 +1.3860756 +-0.2698354 +-0.0291782 +0.1258391 +0.0121920 +0.0085980 +-0.0516906 +-0.0177620 +0.1173685 +-0.2217613 +-0.1043058 +-0.0556181 +-0.7111691 +0.3072340 +-0.0145937 +-0.0521539 +-0.0568613 +0.0539106 +-0.0062676 +-0.1773428 +0.0544036 +0.0110651 +-0.0440382 +-0.0127368 +0.0352701 +0.0639061 +0.0083314 +0.0392974 +-0.0516745 +0.1876289 +-0.0126893 +2.0873678 +0.0996114 +0.5834434 +-0.0531093 +-0.0099883 +0.0284880 +-0.0004456 +-0.1139195 +-0.0296925 +0.0185655 +0.0258281 +-0.0353352 +-0.0252267 +0.0086922 +-0.0270485 +0.2758321 +-0.0088032 +0.1203373 +-0.0078766 +0.1193540 +0.0041076 +-0.0484341 +-0.1095550 +0.0236634 +-2.7065687 +0.0317055 +-0.0493002 +2.6921139 +0.0905898 +0.0394333 +0.0017271 +-0.0266436 +-5.3703418 +-0.0536205 +0.0370623 +0.0125958 +-0.0202810 +-0.1695486 +-0.2709894 +-0.0441274 +-0.2263503 +-0.4835311 +-0.0628597 +-0.0856538 +-0.0613534 +-0.0604218 +0.0629373 +0.0690005 +-0.0384885 +-0.0359308 +0.0457426 +-2.6398556 +-4.0669665 +-0.0436445 +0.0067185 +0.0159971 +-0.0170108 +-0.0529586 +-0.0300654 +-0.0764646 +-0.0072469 +-0.0728764 +0.0174997 +0.0509826 +-1.1311940 +0.0111041 +0.0188988 +-2.5775769 +-0.0229573 +-0.0184489 +0.0689836 +-0.0161880 +-0.0313674 +-0.0188755 +5.4343209 +0.0063498 +0.0688694 +-0.0594762 +0.0641200 +-0.0485102 +0.2040847 +0.1340129 +-0.0225671 +-0.8457978 +0.0335058 +-0.0033924 +-0.0818868 +-0.0289855 +-0.0167924 +0.0506900 +-0.0023968 +0.0090641 +0.0250879 +0.4391049 +-0.0100197 +-0.0087236 +0.7282147 +0.0061061 +0.0827576 +-0.0208301 +-0.0471976 +0.0041035 +-0.0180382 +-0.0407535 +0.0455154 +0.0191299 +-0.0179027 +0.0125413 +-0.0282515 +-0.5688646 +-0.0282911 +-0.0186640 +-0.0378040 +-0.0239075 +-0.2424570 +1.0036532 +3.9232490 +1.5734549 +-0.7122909 +0.7893748 +-0.1674391 +-2.6084967 +-5.3336997 +-0.0637778 +0.3762937 +1.7394066 +1.5060860 +1.6934379 +3.2962658 +-4.3017068 +1.0386682 +-0.3699563 +-2.8577781 +-0.0369016 +0.3956913 +0.6467437 +-2.3620093 +-9.0310268 +1.0474225 +-1.5474989 +-0.4130533 +-0.5276528 +-6.2417521 +-1.5759797 +-0.5396934 +2.1250670 +1.1797142 +-2.4025996 +0.1000636 +0.2142925 +1.1765586 +0.3515475 +-0.8548492 +0.0365343 +0.7871120 +-0.8511037 +1.5432132 +-3.4154947 +1.2492453 +-0.4183022 +-5.5486560 +0.9103314 +-3.2059603 +-0.2886668 +-2.3414063 +2.8593400 +-0.2668721 +6.7749109 +-0.4828598 +-2.6741471 +-0.6699504 +0.1560728 +0.5217894 +-0.9400484 +-2.9644246 +-7.8215175 +5.0019107 +1.0679549 +3.2512853 +-1.5327131 +0.3842086 +-0.1138056 +-0.8101729 +0.6450551 +-0.1611247 +-1.2382933 +-0.7284921 +2.2120049 +2.6795080 +0.2074827 +-3.1522481 +-0.8870696 +0.0187049 +-2.2191455 +0.5811018 +2.7877719 +1.1131395 +-0.4807152 +-2.6801586 +-2.6982224 +0.4204817 +-1.2988366 +-2.4489665 +-1.8594937 +-0.9773225 +-1.1689529 +0.5788145 +1.7620956 +-0.1358964 +2.4776673 +-0.0810788 +2.8558507 +-3.5050666 +8.5098448 +0.0953161 +0.6197431 +0.4457884 +-1.0782857 +0.6946552 +-6.4278574 +4.7880311 +-2.8734794 +-0.8074367 +-1.7182822 +-2.5091496 +3.7789915 +-4.3205709 +-0.9087884 +-2.1725540 +-4.1257324 +2.0130537 +-1.3381574 +-0.2356223 +-0.6218344 +-0.6472453 +-15.7443810 +0.9187632 +-4.3452911 +0.0490811 +-0.8845053 +4.7205067 +-0.8727092 +0.1164517 +2.8537390 +2.1028459 +0.5419967 +2.6502910 +-0.3437707 +-0.2952388 +0.5496497 +-1.2522005 +1.1185356 +0.0168308 +1.7005960 +-2.7565608 +-0.2726822 +-2.2279966 +3.0674641 +3.3154514 +0.0659332 +0.9098533 +-1.7445252 +-0.3773758 +-0.1545551 +-0.7922256 +-0.2860289 +-0.4458353 +0.0756717 +-0.4793044 +-0.0843876 +0.7936180 +-1.1315169 +-0.1153409 +-0.1686443 +0.0977593 +-2.9401255 +-0.2499887 +-0.4006125 +-0.5721515 +-0.2096701 +-0.7363368 +0.1455100 +0.2127713 +2.7061839 +-2.2159703 +-1.7444454 +-0.0967104 +-0.3175516 +-3.3268731 +2.1090848 +-0.3619274 +-0.0615424 +-0.2859384 +0.0548263 +1.8050016 +-0.1215908 +0.9018819 +1.9193730 +-0.3205821 +0.0573027 +-0.1164698 +0.1292370 +0.5845004 +4.3770323 +-0.4565270 +-0.2846002 +-0.6887649 +-0.4668246 +-6.7587881 +-0.0629784 +-0.0681826 +-0.2184616 +0.2727445 +0.1414905 +-0.3354729 +-0.5638806 +0.1131320 +-0.4761596 +1.4792935 +-0.5664578 +2.4647181 +1.8568629 +-0.2483333 +0.6825960 +-0.2908189 +-0.2948587 +-0.1370153 +0.1294339 +9.7582769 +-0.3811706 +-0.7943853 +1.2547408 +0.6873456 +-3.4459724 +-0.4313893 +-0.1819643 +-1.0003283 +0.5110328 +-0.2539551 +1.2114847 +-1.3186262 +-0.4961819 +-0.3349704 +1.4710028 +-0.1969769 +-0.1200401 +0.6366214 +-0.3996154 +0.1359682 +-0.0137563 +-0.4208638 +-0.3272007 +0.3762379 +-0.0203676 +0.7538474 +-0.0045394 +0.1042944 +0.4536549 +1.6339403 +-0.2674251 +0.2722862 +-1.2229246 +-2.3453975 +0.5414165 +0.1881945 +-0.2213018 +-0.2145777 +0.7209671 +-0.1153504 +-0.4580945 +0.0629986 +-0.2518901 +-0.2653649 +0.0579960 +1.0431871 +-0.2192954 +-0.0082268 +0.1621775 +-0.0679956 +0.3752500 +-0.0000322 +-0.1010395 +5.3493767 +-0.1859695 +-0.3637522 +1.0924226 +-1.4432771 +-0.9380920 +0.1644800 +-0.4110677 +-0.0210857 +-0.3072717 +-0.1189663 +0.0580066 +-0.0345406 +0.0808204 +-0.0490825 +-0.0005803 +-0.2764076 +-0.5353166 +-0.0209863 +0.1291728 +0.0608436 +-0.0818179 +-0.1001761 +-0.1537243 +-0.0224741 +-0.2076356 +1.2613845 +-0.0065025 +-0.1718138 +6.5593729 +0.4110919 +0.4608984 +-0.1809148 +-0.0727892 +-4.7238102 +0.0371754 +0.0278628 +-0.0405967 +-0.1237951 +-0.0850120 +-0.6808938 +-0.0083110 +-0.1872343 +0.0092711 +-0.1654675 +0.2287522 +-0.1750372 +-0.0161191 +0.2297817 +3.6601126 +-0.2663489 +-0.1095498 +0.4421887 +-1.3645732 +-3.6113713 +0.0013965 +-0.1760933 +-0.1228951 +-0.0048555 +-0.0195841 +-0.0995863 +-0.9751626 +-0.0436599 +0.1118764 +0.2575997 +-0.3111152 +-2.1579435 +0.6099933 +0.0195054 +-4.6824093 +0.1408249 +-0.0872904 +0.0808404 +-0.3333406 +-0.2046156 +-4.4563851 +8.3385448 +0.2033065 +0.0465499 +0.6833718 +0.2172866 +0.0090951 +0.2235009 +0.6744455 +-0.0708919 +-0.4842924 +0.0032078 +-0.0596361 +0.4849580 +0.8706736 +-0.3161147 +-0.0554368 +-0.7819877 +-0.0675643 +-0.1961519 +-1.9511148 +-0.1329619 +-0.0618078 +0.6071386 +0.5688093 +-0.1773004 +0.0460442 +-0.0021253 +-0.0796903 +0.7863627 +-0.0238324 +0.0239254 +-0.7648967 +0.3432025 +0.3637222 +-0.1872779 +-1.0194677 +0.0076115 +-0.0050740 +-0.2256559 +-0.2603232 +-0.0402974 +0.0310457 +-0.1094410 +-0.0086786 +0.1017190 +0.0001414 +-0.0068896 +-0.0331363 +0.0045883 +0.1593316 +0.0187505 +0.5943195 +2.5019095 +-0.0452709 +-0.9370806 +0.1241187 +0.8273509 +-0.0097340 +0.0205362 +-0.0255385 +0.0440055 +0.0071673 +0.0047127 +0.0180879 +0.0460792 +0.0180399 +-0.0434666 +0.0389038 +-0.0365652 +-0.1950320 +0.0298726 +0.0091431 +0.0390802 +-0.0874707 +0.0493997 +-0.0071183 +-0.0386945 +-0.0599780 +-1.3312414 +-0.0014725 +-0.0553384 +3.9671233 +0.0193110 +0.0368583 +-0.0522641 +0.0137093 +-2.1301959 +0.0019500 +0.0373280 +-0.0063482 +-0.0171601 +-0.0957099 +0.0464794 +0.0461283 +-0.1614922 +-0.5787996 +-0.0506669 +-0.0871356 +-0.0395307 +0.0369646 +0.0423068 +0.0526700 +0.0203656 +0.0336377 +0.0679050 +1.9269727 +-2.6070156 +-0.0349848 +0.0362799 +-0.0262289 +-0.0017176 +-0.0385358 +0.0336418 +-0.3904526 +0.0230769 +0.0559053 +-0.0361832 +-0.0028123 +-1.3842465 +0.2454575 +-0.0325796 +-2.6826935 +0.0474123 +-0.0489882 +0.0579560 +-0.2265719 +-0.0438547 +-1.3811570 +4.1081705 +0.0247544 +-0.0097069 +0.0166982 +-0.0099342 +-0.0063367 +-0.0529748 +0.3686799 +0.0228639 +-4.5863991 +0.1959897 +0.0358494 +0.0198870 +0.0106040 +-0.1380825 +-0.0227425 +-0.4466419 +-0.0564946 +-0.0338312 +0.4375215 +0.0058973 +0.0019295 +0.0361868 +0.0071186 +-0.0573247 +-0.0015387 +-0.0034229 +-0.0457102 +0.0253587 +0.0425377 +0.0527121 +-0.3071774 +0.0431676 +-0.0038467 +0.0001806 +-0.3466358 +0.0458288 +0.0399160 +0.0177164 +0.0174550 +-1.3854989 +4.9756784 +-2.3628242 +5.0963387 +6.6755481 +0.7078815 +6.7437854 +-2.9954057 +-0.0165057 +-2.5013723 +2.8481944 +1.7014904 +1.7583562 +6.9553332 +-1.0469364 +0.0205487 +-1.4606851 +0.8802623 +-0.7321360 +-3.1664097 +-1.5212491 +-4.2234883 +4.5775733 +-7.5716014 +-3.3907387 +-3.8899460 +0.2315198 +-9.4790773 +-4.4280052 +-0.4413646 +-4.8622360 +3.4330990 +-1.1165526 +10.1567678 +1.5343095 +-2.5944898 +9.4187479 +-0.3405229 +0.8740671 +-4.7589879 +-2.7399280 +-2.3677552 +3.6496329 +-0.9793912 +-10.0723448 +-13.4752960 +-1.3818914 +20.4640312 +-3.0789616 +15.2366676 +-0.1648985 +10.4143572 +-1.2947266 +-1.3735948 +1.7160908 +-1.6917881 +8.7660389 +-10.0324764 +-1.0938787 +-0.5636910 +2.9084740 +-10.5860586 +-3.4710634 +-5.7893891 +1.6215475 +-0.3305892 +-2.7176843 +27.5745106 +2.7847350 +-5.2537093 +-1.3223046 +-0.2181600 +-6.5762391 +10.1840715 +-6.3754086 +-0.2861957 +-0.5159908 +-0.6100652 +-1.2451906 +-0.3529218 +-1.6702552 +-0.9416747 +1.2760133 +-1.2602000 +2.6973155 +-1.6782551 +-4.3707914 +-11.8760052 +6.1598582 +-2.3091211 +13.9571457 +-4.7397885 +1.3162161 +1.1950929 +0.5812789 +-0.0762225 +-13.2057753 +0.2140696 +0.3510077 +-1.0950873 +1.9657023 +4.6728587 +-0.8126664 +-13.5417862 +0.0279156 +-0.9733123 +-5.1703763 +10.3429241 +20.6784420 +1.0372707 +-2.5741274 +-0.1081479 +-6.8203130 +1.1168017 +-5.4433494 +1.7972784 +8.6864319 +-0.6877374 +-1.1238389 +0.0334799 +-4.5170255 +-1.1031113 +0.5432878 +-1.0672339 +-8.3784351 +5.3567743 +-4.0960526 +-6.8549910 +-2.7370751 +-0.4164262 +-3.3711417 +3.7586298 +-6.5757618 +0.5268654 +1.1159209 +-12.9008875 +-1.3143584 +-3.5170949 +5.6193361 +0.1383391 +-5.2268505 +-1.2356029 +-2.9340787 +-0.7892798 +-2.8404841 +1.8657653 +-0.7462386 +-3.6254201 +-2.9019144 +2.3488977 +2.9559884 +-9.5352058 +-4.7580576 +-1.9837919 +2.1194518 +-1.9058787 +-0.3435864 +-0.3572029 +-5.5483599 +2.6701086 +-2.3496382 +9.2998390 +-4.6810303 +-4.0291266 +6.0996461 +-3.0812209 +0.0815140 +-0.3267455 +-2.4903789 +1.2086648 +2.5282362 +-0.6075074 +-3.1245959 +-2.7609243 +-2.1733875 +-6.0185819 +-2.6870201 +-14.3688135 +1.7891731 +1.1611061 +-2.2698684 +2.9767115 +0.5187629 +-1.1392254 +8.3308945 +-5.0922246 +2.5703926 +-1.4344075 +-0.8059108 +-7.3339481 +-1.4084139 +-1.2525294 +2.6916366 +-1.6948910 +-6.0307627 +-16.8846130 +2.6902947 +-0.7075046 +0.1870917 +-2.7370603 +0.6600496 +9.0676928 +-4.5367312 +2.4216692 +-1.4758179 +-1.9698230 +-2.0237257 +0.0790647 +-1.8764278 +-2.0097063 +-0.8503422 +1.2181497 +-0.5533432 +-2.8417525 +-8.8494473 +1.1482103 +7.2988124 +3.8866529 +-1.6450716 +-9.9487419 +2.3618739 +2.4524767 +1.9480363 +-3.8648722 +1.0589130 +-3.0591087 +-0.6375555 +0.3125870 +3.0019414 +-2.2570443 +-2.1168549 +-4.6787195 +-0.2674538 +-3.3741143 +-3.9729874 +7.7175050 +-9.1118336 +-1.5377183 +-0.1991570 +-0.6778679 +-7.8250394 +2.7399065 +-7.1411524 +0.1289585 +-7.0107994 +-1.3459557 +-2.5942588 +-0.9932171 +-2.8286123 +1.7460161 +-0.8977806 +-1.1977289 +-5.9905295 +-3.9906499 +-6.0516005 +-4.6809473 +-4.2246342 +1.8453040 +-5.2169633 +-1.2444395 +-10.4497480 +-0.9812853 +7.3903337 +-6.5925684 +-3.4615784 +-4.3452697 +8.1604080 +1.3878664 +-0.3028948 +-1.8081834 +-4.1598101 +-6.1480718 +-4.8071203 +2.2635534 +-1.1834089 +3.4723127 +-3.8217475 +-9.4835682 +3.8500383 +-7.9019074 +-6.6466513 +-5.3859925 +2.9233773 +-11.9425039 +1.7178820 +-0.3115974 +-3.1300671 +3.6584303 +-3.2729228 +7.7307730 +-1.6280538 +0.9443936 +2.8618267 +-3.2253540 +-2.4601550 +-6.2863917 +-3.6135385 +-2.7211232 +2.6922426 +-0.9320347 +-6.6563530 +-19.3544865 +-3.7293108 +23.7080784 +-9.6557655 +13.8562193 +2.4185867 +8.7094421 +-3.2834444 +0.1311254 +-2.0947592 +-2.0203056 +6.3545899 +-9.6392889 +-5.3548393 +-2.8595142 +0.1087546 +-9.1792526 +-7.7984958 +-5.4717288 +3.4555540 +-1.8863989 +-4.6859031 +21.6407299 +5.2888103 +2.2472675 +-2.2061639 +1.3744893 +-0.9263765 +1.0269697 +-2.9663727 +3.5124519 +-0.7328631 +-1.7149625 +-2.6775820 +-1.6826618 +-4.6895714 +-3.2284265 +-1.5257186 +-1.7915103 +3.1071043 +-3.8256066 +-1.6600095 +-17.2054901 +2.8097818 +4.4148169 +11.5693550 +-7.1760740 +4.1446061 +3.2213714 +2.8696280 +4.2421732 +-15.4916706 +-2.0801139 +-3.1874003 +0.2445916 +1.9070894 +2.7197347 +-2.7088046 +-17.8745136 +-1.8872991 +-6.5363636 +-5.4774790 +6.2279716 +15.6565714 +-1.8763182 +-3.8041430 +-0.9827129 +-5.5571094 +1.9130268 +-9.1873884 +-0.0880204 +6.5204473 +-1.9328476 +-3.6284106 +-1.0845963 +-7.8351183 +1.2375114 +-0.8561656 +-0.6043323 +-8.0009460 +0.3630504 +-7.1495585 +-3.0459676 +-4.6175127 +1.8283168 +-6.4254580 +-6.5390544 +4.9635320 +-0.6977662 +2.5213468 +-8.0354748 +-3.9982071 +-5.1981816 +10.0798540 +0.0150849 +-8.8693304 +-7.4315038 +-5.6748114 +4.6373858 +-5.4022822 +2.7219779 +-3.1138332 +5.8432708 +-5.4453168 +-3.6494935 +2.0323942 +-10.4328585 +-10.7211008 +-3.8179510 +4.4354501 +-3.0622740 +5.4026575 +-0.1840478 +-5.8346190 +2.7550902 +-3.7658551 +6.9486241 +-9.3415880 +-8.4570761 +0.5721436 +-5.4051600 +-3.5423431 +-0.2549225 +-4.7532334 +5.8034716 +2.5358582 +0.1349613 +-6.9680681 +-4.1741257 +-4.6526546 +-16.7418270 +-3.3995104 +-28.2808247 +3.7652223 +-2.3601766 +-4.7290640 +7.2923617 +-2.6068151 +-1.8975314 +5.1528254 +-11.6940088 +1.3955662 +-3.4173770 +-1.4980772 +-5.8369427 +0.2101105 +-7.8331928 +5.3094254 +-3.9221869 +-11.5438671 +-28.4982300 +4.7266788 +5.0640602 +-2.1627440 +-4.9912472 +-1.6119190 +0.2854096 +-1.0320544 +4.4850168 +-5.7962623 +-1.3600709 +-3.0120752 +-3.6543012 +0.3278981 +-4.3041229 +-1.7080958 +7.1726489 +-2.2203636 +-5.6056733 +-6.2565923 +1.8012996 +1.3117959 +-3.1214406 +-8.5416021 +-1.8062899 +5.6983228 +4.1109004 +3.2731359 +-2.4215426 +3.3396769 +-6.5916438 +-4.0332041 +0.2668488 +2.3489122 +-2.9737463 +-3.2946024 +-8.5440569 +0.6040828 +-5.4508581 +-6.2798271 +4.8566966 +-19.6066837 +-2.5495505 +0.3719212 +-1.9069105 +-10.3086720 +3.2537065 +-9.0303488 +-1.2171708 +-12.1022310 +-2.1226437 +-3.7540627 +-2.9340367 +-3.6759079 +3.7402699 +-2.6290653 +-0.6996827 +-2.7352810 +-6.3389750 +-9.7869091 +-6.0911689 +3.0093689 +-1.4226809 +-7.6853166 +-8.5771618 +6.8884711 +-1.0643346 +8.0421133 +2.0172319 +-10.1310873 +-4.7982917 +11.1270618 +1.1382679 +-0.1012460 +0.7682889 +-6.3629003 +-9.1604261 +-6.5265856 +2.3583400 +-1.4944936 +7.7107334 +-4.4188380 +-11.5755386 +4.4106064 +-7.8485813 +-7.5921578 +-5.8786011 +5.5937948 +-18.4108868 +8.7141075 +-0.2084393 +2.1362419 +5.2465181 +-5.5469627 +5.8391132 +-2.6881471 +2.0840752 +0.5075991 +-6.8369880 +-6.7728686 +-3.8547540 +-3.7599020 +-3.8569291 +1.4578568 +-0.6690261 +-9.4374275 +-23.3642159 +-5.9668198 +24.2830982 +-11.0593624 +13.7517080 +4.2968502 +5.9314914 +-6.2124572 +6.2180228 +-5.5442715 +-2.2260480 +3.8862977 +-7.1204309 +-2.1843259 +-6.1280856 +5.2412047 +-5.6277308 +-1.7454101 +-5.1509662 +4.9929366 +-3.8173716 +-5.8753529 +16.6985340 +5.5865684 +9.5795383 +-4.0258865 +-1.0917370 +0.0331169 +-2.2473648 +-5.1034284 +7.1144266 +-6.8633909 +-7.7391419 +-3.8132243 +-7.1329846 +0.6496770 +-6.4529696 +-3.5531681 +0.0710529 +0.6740636 +-5.7910476 +-2.6874089 +-29.9516926 +-0.6307500 +3.3442593 +8.4267988 +-10.8024158 +5.7855654 +3.4789355 +4.1532011 +4.8424277 +-17.7972965 +-3.3863249 +-7.5460558 +-2.1155910 +2.4373622 +1.4703437 +-5.1702714 +-24.3511906 +-0.3238656 +-7.5044589 +-8.0219021 +5.8504267 +10.7404299 +-5.1023989 +-3.6884358 +-2.5150933 +-0.6547722 +-1.6930319 +-11.0628052 +0.3390479 +4.6437297 +-2.3721406 +-5.5087857 +-0.8603822 +-9.0859451 +3.7609789 +-2.8780954 +-0.0063937 +-4.2140288 +4.6489625 +-4.2641082 +4.0769329 +-8.6781359 +-3.4794919 +-8.6756363 +-7.9293675 +3.0037446 +-0.6231619 +4.2344503 +-1.1112093 +-4.6398096 +-6.1767683 +13.1053438 +-0.9852179 +-6.8826318 +1.3897856 +-7.8213778 +-6.6731601 +-7.5671921 +3.0212417 +-2.9345996 +8.7981100 +-6.0373912 +2.6567798 +1.9587516 +-10.7815409 +-10.6063299 +-4.5699663 +7.4049034 +-2.3846874 +10.9654465 +0.0193330 +-1.0513706 +3.8028908 +-4.6529565 +4.1616101 +-7.4104819 +-13.2740288 +-2.4818134 +-6.4262180 +-6.9142895 +2.7991521 +-2.7570083 +0.8768691 +2.6764493 +0.6239049 +-6.1358757 +-5.0442100 +-7.0473661 +-27.9212475 +-6.9072876 +-29.3260784 +4.8319259 +-5.2155685 +-8.5964003 +10.2245827 +-6.8156781 +-2.2498820 +1.6017853 +-9.0425701 +-3.4094179 +-5.0251470 +-0.0766038 +0.2838355 +-7.9633312 +-7.3678732 +7.6905499 +-6.5640221 +-14.1869154 +-35.5767212 +8.7901773 +5.5903358 +-3.9451616 +-9.0894737 +-0.7674114 +-4.4010973 +-9.2018309 +9.9572811 +-10.6796713 +-10.0256386 +-4.1209507 +-3.6450684 +1.7591641 +-6.7405138 +-3.3653145 +1.8226286 +-2.4472394 +-7.4862876 +-2.5936003 +2.5751190 +-2.8091571 +0.0547672 +-10.4221697 +-13.1475544 +3.4138393 +9.1410723 +6.6870108 +-0.4911779 +6.3318315 +-3.5844793 +-7.8318601 +-1.0903765 +2.9290709 +-3.1194205 +-5.0130134 +-10.8893166 +0.5457152 +-7.5953779 +-5.6769371 +3.8838887 +-21.8756104 +-4.0184999 +-0.0508689 +-2.9229465 +-14.6118164 +2.2920120 +-11.9888592 +-1.5414546 +-18.4489155 +-2.3461196 +-4.7053757 +-1.3527448 +-6.2325711 +7.1194396 +-4.4873986 +-0.7934842 +-1.8624104 +-4.5708671 +-0.5412535 +-1.4662249 +2.8423293 +2.0019324 +-9.8471394 +-5.0744910 +-6.0931387 +1.2708923 +7.1120095 +-1.1878843 +-16.6664982 +-4.5166302 +12.3051500 +-0.7334642 +1.2798001 +11.1237268 +-8.6576614 +-11.5475702 +-8.7079391 +1.6481484 +-1.2890128 +6.8608179 +-3.3703330 +4.4030666 +3.9301715 +-6.6151381 +-6.8662658 +-4.4190221 +8.6730595 +-20.7489777 +15.9261837 +-0.2185644 +7.7694392 +6.5451856 +-6.7885575 +4.9941058 +-8.7077694 +7.1913695 +0.7242374 +-8.9590654 +-9.9699841 +-0.7947163 +-3.5564470 +-8.5345955 +0.0865371 +-0.6225007 +-2.7496374 +-25.4787102 +-9.1140575 +26.4168034 +-5.9751983 +13.3741302 +7.7962036 +3.8960469 +-9.1719418 +-7.1328831 +-6.3601151 +-2.2722185 +1.9452208 +-3.8162644 +-7.2959900 +-8.0433140 +13.0088224 +0.1345132 +3.5240045 +-0.1858994 +6.8639355 +-6.6568880 +-8.0007162 +12.1686783 +6.0046687 +-2.4233563 +-4.6878529 +-2.7631612 +-2.3937423 +-9.5353317 +-13.9219847 +9.7391481 +-5.4700704 +-2.4245892 +-5.3838110 +-7.2449384 +10.2269535 +-9.0426645 +-0.2425323 +5.8847384 +-0.1841245 +-7.8033786 +-3.1076827 +-35.8854752 +-4.6469555 +-3.3636508 +7.0234795 +-14.0625105 +9.6244297 +1.2729449 +4.6758909 +6.1422763 +-14.3689833 +-2.4097118 +-10.7339926 +-6.2503653 +1.9832752 +0.8669870 +-7.7291870 +-24.9208431 +1.1515986 +-10.0132647 +-5.6620083 +8.0875769 +6.9376874 +-7.9206638 +-0.9841867 +-4.8162003 +1.9488299 +2.1776288 +-10.6340723 +1.6173056 +3.9897742 +-1.9074197 +-6.0637617 +0.4607489 +-8.8854294 +-0.6882218 +-3.9575479 +0.4679172 +-3.1934404 +3.2844057 +-5.3438416 +9.6573477 +-15.7173777 +-12.2420645 +-11.1731930 +-6.4892154 +-11.8340034 +3.1247227 +5.8346539 +-1.0591660 +-3.6802247 +-4.1290345 +16.5781307 +-3.7601447 +-5.7328773 +2.7653918 +-11.1734514 +-13.3158493 +-10.6459141 +2.3945186 +-1.4905962 +7.4275055 +-5.0147223 +-5.4196572 +0.9811889 +-4.1310244 +-9.7485924 +-4.3847094 +10.4955788 +-1.0809224 +16.0010777 +-0.4169433 +3.6147997 +4.9472866 +-4.6283364 +3.6519344 +-12.5120811 +-3.4359562 +-2.5585442 +-6.3902550 +-10.0177679 +8.0915432 +-4.8463993 +-0.1580173 +0.6617476 +-1.6961374 +-3.5631406 +-5.0264797 +-10.3860149 +-29.6134548 +-5.8131018 +-24.7350559 +7.0660686 +-6.5086279 +-11.1602879 +-0.1323810 +-7.0858469 +-2.4043086 +0.3345889 +-7.0899472 +-4.1779375 +-4.8512249 +9.0651464 +4.0824184 +6.9952874 +-3.6635292 +7.6556649 +-10.6434145 +-16.7029190 +-38.1943512 +12.2789564 +-8.1894932 +-4.6540251 +-9.3310966 +-12.2007895 +-5.6654534 +-20.8508205 +12.1587296 +-6.4653883 +0.2895955 +-6.6929030 +-3.5344725 +10.2956400 +-8.8405380 +-0.5968744 +-5.9342098 +-5.6199288 +-7.7240748 +0.3378480 +4.2117038 +-6.8019400 +-8.1192827 +-21.8493671 +-15.8772411 +-0.0823475 +7.6609421 +6.7715521 +1.1682703 +9.7392397 +-6.5624270 +-11.1983843 +-5.5788255 +1.3296381 +-2.4866416 +-6.6052980 +-12.8710909 +1.4302872 +-11.7226839 +-5.6821017 +5.3795786 +-32.3391342 +-4.2444382 +0.6500004 +-4.1281962 +-13.1052523 +4.8074327 +-10.4903526 +-0.1640091 +-23.4601116 +-1.4589678 +-4.5801501 +-2.0736561 +-6.8252749 +3.3298681 +-5.4090929 +0.0957159 +0.7709665 +3.6943488 +-1.1095763 +7.8578749 +9.6984615 +13.9357424 +-10.7487774 +-5.0393796 +2.1040015 +-3.4854610 +-24.1040249 +0.6714171 +-22.8085194 +-1.0062524 +7.6755910 +-3.1507351 +-0.7954681 +18.4586411 +-13.0767794 +-11.1109886 +-11.3905783 +-1.7466853 +-1.5800302 +5.0115800 +-3.5415623 +7.0124130 +5.4531121 +3.2126820 +4.2670150 +-0.2467076 +13.9143305 +-17.1616497 +-13.8451576 +0.2397735 +14.2709408 +9.8758459 +-6.7928309 +1.9414907 +7.0883512 +13.3852777 +0.1130375 +-10.7606878 +-12.3879738 +-18.1236115 +-25.5183868 +-2.0993483 +-6.6269455 +-0.3010636 +1.2883039 +-16.0248413 +-13.1140795 +32.3852654 +-0.3135659 +15.9149933 +10.6741209 +1.9567466 +-10.9640188 +-7.2374535 +-14.9241123 +-7.8497338 +-1.5182800 +2.2841597 +16.3855934 +-5.8430166 +10.5196037 +15.7713327 +-1.3176281 +2.6313999 +4.9455843 +-10.1363935 +-9.4906521 +9.3300886 +-3.6588016 +-3.3507347 +-6.4391418 +2.0585067 +10.1278801 +8.5743055 +-8.8041792 +15.0639954 +-3.4148021 +10.7033262 +-6.9486613 +-7.6311884 +10.9541950 +-10.6619539 +1.3435864 +11.6512012 +12.5257626 +-8.6101084 +-5.4317393 +-30.9399052 +-1.7030014 +-10.4321918 +4.6261568 +-17.0033894 +0.6873193 +-4.9091535 +7.7917752 +7.4856691 +-3.5567522 +18.1896515 +-7.3903728 +-11.1589851 +0.8637553 +0.6477671 +-11.3273020 +-21.0363350 +1.1147292 +-2.1879382 +-0.1703887 +8.4170933 +5.7849050 +-10.5213842 +-1.0129478 +-4.5880151 +9.4418869 +0.2470722 +-1.5753005 +4.0284052 +6.1531839 +-2.4074137 +-6.5924840 +-4.6778388 +-14.1456280 +-4.7519994 +-3.1246469 +2.4113631 +1.1940391 +22.8922348 +13.4516401 +7.7521973 +0.1123730 +-6.8107347 +-12.6191063 +-7.6840529 +-3.4138246 +-13.5444698 +-7.3663306 +-2.2045736 +-0.9356499 +0.3714359 +17.2833824 +-7.1566300 +-8.1495171 +13.8206568 +-18.9901390 +-10.6109505 +-13.0046368 +-14.7539015 +-3.2344766 +6.3894815 +-5.7709899 +2.3281393 +1.8733321 +4.0204201 +7.9036403 +-2.2333429 +15.4030695 +3.1879160 +0.0131609 +-0.4594347 +11.5468140 +8.3342361 +-5.2999301 +0.6583383 +1.2293599 +4.6321774 +-1.6760086 +-7.4121461 +-12.5689192 +12.7169113 +-20.2763348 +3.2238264 +-8.6296129 +2.7536731 +-0.5821253 +-3.6971536 +-12.7574272 +-33.2221260 +-0.7474478 +-18.6912289 +11.7907219 +-9.1367121 +-12.2311525 +0.4127926 +-15.9452839 +-9.6711769 +-2.7473738 +2.5074184 +-7.3481956 +-2.8531787 +5.8820095 +20.4605255 +0.5746709 +-0.3112769 +13.7435389 +-19.2559910 +-17.0718899 +-33.3379288 +6.3840222 +-8.8731585 +-5.9891825 +-5.0601988 +-13.6980877 +13.1286430 +-19.4387798 +14.9201717 +-2.3475449 +6.2286787 +-7.8944817 +-2.3087254 +8.5400438 +-11.6312847 +1.8131185 +-4.6806207 +14.4010477 +-7.7925940 +4.3023334 +8.1565523 +-5.2835350 +-12.1427450 +-17.2038631 +-18.2143307 +-0.9026998 +-4.0367594 +10.0247631 +3.6888826 +14.5281477 +12.4529085 +-8.4994373 +-11.1017532 +1.0517514 +-2.3898339 +-5.3986940 +-11.9411488 +-2.2025604 +0.7372026 +-1.3403471 +6.6823344 +-28.2242451 +-4.2344279 +2.0489116 +-4.8250151 +-0.7433797 +-1.1051793 +-1.2601459 +3.0725071 +-15.1364794 +-2.6937902 +-4.8326497 +-8.9427700 +-9.1907721 +-13.7366791 +-11.2004871 +1.9387256 +8.7950764 +24.8892632 +15.8359823 +8.6623240 +33.5572701 +-0.7316607 +-14.8912821 +9.3805027 +-10.3401079 +13.6729307 +-15.9059973 +-0.9528294 +-3.9626057 +-2.1100831 +14.2867126 +-0.0387124 +10.8466845 +-6.3996339 +-15.8052435 +17.2710915 +-15.1234140 +-1.2407370 +-2.8911262 +-6.1825442 +-3.2477481 +18.4649277 +5.2967377 +-0.4098949 +-2.7754877 +0.5610981 +16.3288212 +7.8921542 +-7.0772376 +-1.8598490 +5.6177816 +10.3581772 +-7.6436276 +-5.6331162 +-5.0365891 +2.4356802 +-0.7910889 +-1.4135602 +-14.0640640 +-9.1725645 +-10.4647169 +-14.6756639 +5.6761756 +3.7484906 +14.1988764 +1.8306425 +-14.7647038 +35.6085091 +-2.7242291 +24.0477486 +9.2854481 +11.2843237 +-16.4611111 +-1.0741938 +-0.9787520 +-12.6273613 +-16.6590900 +9.6763439 +12.8664913 +-8.5980358 +7.8508325 +14.2197599 +18.8448162 +15.6949520 +8.5173531 +-12.3445597 +-13.6800756 +11.7570705 +-12.7410402 +-5.3963313 +-15.1353951 +7.2944388 +18.7411404 +-1.1219314 +9.2640505 +9.2942019 +8.7780514 +17.7967682 +-10.9179935 +-4.6217074 +0.6171941 +-12.3360033 +0.0529629 +-13.5404949 +-4.7385817 +-5.4977236 +-3.9268250 +-5.2934737 +-7.5719380 +1.0383830 +8.1869364 +-0.5297986 +7.6746888 +0.3345798 +0.8563691 +9.6411667 +4.9344635 +13.0137730 +-20.7607632 +-15.4270926 +0.9676611 +5.4619827 +-0.0208830 +-7.9428296 +-5.9750085 +7.8445640 +-4.7749872 +5.4164572 +8.7748976 +-0.6784427 +-3.9734724 +-6.1110067 +-3.1833811 +14.2960577 +-6.6297722 +6.6972737 +15.5792551 +-0.3370742 +-1.4126170 +6.8006968 +0.1851539 +-9.7107630 +-2.8583441 +-5.9084153 +-15.3785028 +9.8907061 +-3.8614233 +-3.3215463 +-19.2680340 +-4.8401928 +-15.3284168 +9.8034725 +-5.2233896 +15.1644020 +-2.7341213 +9.1780281 +5.1032424 +1.8794630 +12.6070585 +-2.0857162 +9.9698648 +1.9882337 +-20.4843788 +17.1064091 +-16.8736477 +2.7078974 +0.6794941 +-2.6396902 +-10.6870136 +4.4606628 +-1.8723904 +5.0301986 +1.3310654 +-0.7053546 +19.0601254 +14.0824957 +5.0555210 +-1.5421228 +19.6997318 +12.0481939 +-9.8266048 +-1.5332608 +-9.9917297 +8.2230434 +7.3684897 +-8.7574806 +-13.4753580 +19.8032131 +5.8446603 +-23.1981468 +10.5303726 +6.5806408 +13.4742165 +0.3073721 +-12.9605570 +-21.1133003 +-0.4472152 +5.1219912 +9.6521225 +-0.3101550 +-17.6592751 +-1.6811976 +1.3100150 +-9.4004107 +-10.0696783 +7.8498006 +8.0679312 +-6.1912742 +5.4694858 +23.8466072 +7.6195765 +14.1605625 +5.5267935 +-13.5967083 +-11.2007761 +-28.4584618 +6.1505275 +-1.5425780 +-24.7484341 +8.7530003 +5.5392828 +0.9060824 +9.7932034 +2.6190794 +8.4172125 +18.4022808 +-10.0582829 +-0.3940110 +4.2552834 +-18.0046043 +-0.1254269 +2.3754456 +-3.6891870 +-3.0702357 +13.8298235 +10.5990171 +-17.5227146 +5.4484835 +-14.1259394 +-0.7709128 +8.6053715 +1.0766876 +4.9828849 +-6.6549792 +-9.2220736 +7.9638782 +-9.4096613 +-15.8017559 +-0.2546396 +-2.4138253 +-5.7196555 +-12.2538528 +-10.9404345 +5.7706161 +2.1301270 +1.9268533 +-15.9920368 +4.4040737 +0.0015108 +-4.9699612 +4.7889738 +5.4295802 +-4.7608109 +11.3670053 +-14.0884790 +-0.5588655 +-6.6097708 +3.2066767 +-4.3318868 +-8.0446930 +-1.3978769 +-2.9443047 +-16.7630482 +14.0703249 +-1.1107334 +0.5280678 +-12.9477558 +-1.2631443 +-21.0589085 +-3.5925086 +-2.7793183 +2.6817427 +-3.1693740 +-3.2508798 +-2.2152500 +1.1987085 +6.2950811 +-12.2703400 +1.8473849 +-3.9292469 +-25.5249100 +-17.8287964 +-18.9569912 +1.3836645 +2.7170777 +-17.4774723 +19.9421310 +-3.8312867 +-5.0575852 +-4.4324956 +2.9770367 +4.5882206 +16.8055248 +19.4466591 +-1.5035180 +-4.9284344 +-6.1735878 +5.8956399 +-6.2120967 +-2.8883770 +-23.0600090 +-4.7646508 +-1.6845266 +0.7476238 +-14.5087461 +-3.0556982 +12.6959686 +-11.7604427 +0.7306754 +-2.5394328 +5.3198075 +14.8176479 +-14.3776789 +-7.5211220 +-8.2416143 +34.7475548 +4.6572604 +7.8709569 +-18.5585957 +-2.8768213 +-7.2164550 +6.1109705 +-4.8257456 +-3.3942628 +-1.8935179 +-13.6581860 +-9.5291061 +22.3110142 +0.6645249 +5.3798366 +6.1798038 +-5.6073256 +-12.6811638 +27.0757523 +0.6004780 +-2.5149171 +-14.4908638 +-1.5902311 +3.2452247 +4.3926010 +15.1890821 +4.7501349 +7.3797164 +3.9868038 +-15.0289888 +-2.0714297 +-3.3219035 +-17.2206783 +-0.2630684 +-20.3125629 +-4.9831643 +-3.6602018 +3.0555215 +-10.1061583 +-11.1672258 +-0.7133095 +1.4399251 +0.0519349 +-6.4611797 +0.6045287 +0.0694040 +-3.8570194 +22.1505222 +-8.0415668 +-3.3849037 +12.8885717 +-1.0141587 +18.3606071 +-3.2069788 +-2.6795802 +-5.1677799 +4.6948671 +-2.9124064 +3.8405619 +16.5124893 +5.3365164 +-3.6777773 +-2.0753775 +7.6251001 +4.2883840 +4.9407291 +-14.3165283 +35.8471718 +-0.0115770 +-1.5243556 +-3.2114241 +12.7345829 +-2.5470371 +2.5019479 +-3.1253209 +6.6067963 +-1.5459248 +-0.9563800 +-3.4671688 +1.0791233 +-5.1614089 +-16.7971458 +-0.2258130 +-0.2355565 +-1.1144078 +7.1750169 +1.4882993 +-2.1843448 +-18.5090008 +-2.4845283 +-8.3891125 +12.0723362 +-4.4865313 +-22.0445766 +-11.0896320 +-21.6437702 +-1.0342240 +-5.1702914 +-13.6796455 +-9.7150097 +11.4045248 +-11.0501604 +6.3213701 +1.6787748 +5.6775951 +24.3399353 +20.2583351 +0.0804847 +-0.2775001 +7.0417047 +13.4657173 +-2.7402577 +8.8351469 +-27.8841629 +-3.2602680 +1.7870699 +13.0169172 +-5.0932856 +2.8929718 +8.3404827 +-20.4862881 +-0.3376356 +13.2565508 +2.2193263 +-6.6344771 +-14.8729982 +-3.9799292 +2.7735996 +14.7087717 +8.1429529 +7.4436421 +-18.8909798 +-3.1761024 +-3.6176858 +1.5062432 +-5.0355306 +-1.7700831 +1.2370933 +-1.6287704 +-20.2991180 +-7.3126459 +1.1747286 +-9.5833483 +0.4340995 +-7.3169951 +1.0533174 +19.2690716 +0.4984961 +5.1780801 +-3.0625763 +1.4501522 +-1.7398983 +-2.2960112 +19.3236561 +-0.2144094 +0.1713638 +-3.4368587 +-12.4842491 +-1.8537848 +-1.4155501 +-16.2197800 +-0.8083209 +7.2473350 +-5.8694634 +-8.3839998 +0.8803982 +-8.3459101 +-12.3792715 +1.0395833 +-15.1040363 +-6.2128038 +4.1441159 +-1.9759784 +-3.4397998 +3.4669142 +4.5552707 +-10.8266459 +4.6035094 +2.9548850 +-4.4981804 +-8.0373411 +-7.2041740 +2.7817893 +0.8421415 +5.9871092 +-1.1515006 +-3.1731100 +16.0308285 +7.3446379 +-4.9300756 +0.9135045 +-0.4882255 +-5.8358288 +1.7064382 +4.3193746 +-4.6264410 +1.4438963 +1.8166412 +-5.5300932 +-3.1473999 +-2.8688476 +5.7127738 +-13.1613283 +3.3907704 +-7.6943007 +1.8553981 +-2.0157826 +-24.3028698 +-2.7402451 +-12.6100492 +-8.2745647 +4.2142386 +-11.6631756 +-9.8058424 +-23.1853390 +-22.3107262 +-15.9927397 +3.5162671 +2.9986961 +14.3357477 +8.8636627 +60.0452461 +-14.7971411 +-4.0386825 +0.0153922 +-35.4461975 +-18.3256092 +1.8929836 +-19.5949554 +-91.7416229 +-21.8711777 +-30.2672119 +-45.9656677 +-15.7040577 +-59.2202911 +-49.3874550 +-4.1875925 +-9.6901836 +-35.2887993 +-34.9774933 +-17.1615047 +-31.6028862 +-21.1125031 +-18.6308727 +-22.3622665 +3.1928072 +0.4459340 +-22.8071823 +25.6834087 +-17.4682369 +1.8165461 +-26.5671120 +-57.0642281 +20.1234665 +-7.9383783 +-19.3381195 +-59.3164330 +-44.3690605 +-29.7837219 +-1.6620610 +9.2675257 +-7.5178461 +9.2097139 +-31.3574390 +5.2094293 +-2.3665845 +-56.5322113 +-11.7584105 +-19.2886772 +-23.9774094 +-47.6200638 +1.8942746 +10.3736219 +19.4076862 +-57.5510979 +-6.3434119 +-26.8533516 +-63.0699234 +-13.6331091 +-11.0887823 +7.3129578 +-198.2124786 +16.1482925 +-10.6591845 +-7.1892524 +-1.9840332 +14.5438232 +-9.4728527 +16.9031963 +7.8888798 +-17.0248585 +7.4421148 +-11.8582869 +-19.9977436 +11.4380941 +20.5819168 +-22.3055801 +-16.3520393 +-51.0310326 +7.2734137 +-2.1010900 +11.1783934 +-3.3209527 +-43.1257591 +-5.8879728 +-15.9989519 +-126.2232361 +-19.5821877 +-32.9398117 +-3.9951582 +-77.7054062 +18.6302738 +-117.4628830 +8.6506777 +17.0822144 +-39.3906136 +-34.3438683 +-4.2326965 +-41.8158264 +-15.9979696 +-15.1827440 +-135.1701660 +-156.9070740 +-45.8615074 +-50.6864929 +-24.7832394 +3.1386335 +-16.7778225 +-80.6810455 +-13.0995693 +-1.5411879 +-72.0475388 +-52.1984100 +-143.4269257 +-7.3806701 +-0.0439913 +0.0589718 +-5.4919152 +-0.1305423 +0.0283336 +0.1999352 +0.3792907 +-0.8726681 +-4.4447565 +5.8080568 +9.1692343 +-0.0117690 +-0.3880539 +0.0032628 +-113.5055847 +-0.0699247 +-7.0018477 +9.8142414 +0.1459659 +0.0015589 +-0.0087856 +-0.9291548 +0.0007386 +1.1363025 +-0.0066615 +-2.1063588 +11.9495821 +16.0234089 +-0.0080769 +8.9404135 +-0.5751672 +0.0568575 +-28.6827774 +-0.0026747 +0.5203498 +-0.4472161 +0.0112165 +-2.9951789 +-1.0196327 +0.2773929 +-0.0553860 +-26.0505714 +0.1892173 +25.5928555 +0.3479716 +-49.4027061 +-95.4159546 +-0.6913276 +4.4921598 +27.4890671 +18.3275127 +7.9995508 +-34.0029526 +-0.0112442 +0.4215123 +-0.0074089 +-0.0680664 +0.0231601 +-0.3729877 +-15.2378960 +-0.0283805 +0.0132414 +0.1217221 +0.0558923 +20.6232071 +-0.0604737 +-1.4948170 +31.5855484 +12.0662689 +0.1562763 +0.0950506 +-0.9071486 +0.2636439 +-0.0037638 +-0.0352438 +33.6078987 +0.0821451 +0.0615031 +-2.3139777 +8.2882385 +-0.0817132 +-98.9954987 +0.0057820 +-0.7934180 +0.0106713 +-42.8634529 +-0.0424353 +0.0977810 +-7.6407633 +0.0587102 +-12.4435806 +0.0176749 +7.8551273 +15.6236515 +27.1633739 +1.2151314 +15.5765924 +-0.0994745 +0.0866613 +0.0005984 +3.6497684 +-6.4420395 +-1.6349688 +-40.7849655 +18.5256157 +0.4286845 +0.4210274 +0.0177003 +13.4260006 +16.8101826 +-0.7251734 +13.4407330 +-0.0130347 +14.6038828 +0.1028431 +-0.0244406 +-3.3272064 +19.5180168 +-5.4077988 +0.0051767 +-0.0002412 +-0.0679511 +-3.1266959 +-2.3705668 +0.1239550 +0.0040956 +0.0915899 +-0.0537425 +-17.1880741 +-13.8639450 +-1.6857017 +-21.6340828 +-10.7462425 +22.8780956 +15.6042795 +-16.9199276 +-0.7533462 +62.3817902 +-0.3779688 +15.1684742 +-15.9904280 +-20.9482803 +-0.9490699 +-0.0621195 +-24.2702522 +-1.9905419 +0.6928811 +-18.1112728 +7.6105208 +-21.9022350 +2.3164821 +-30.0312424 +2.7259202 +9.4764910 +-1.0360698 +7.5881977 +0.7257345 +3.9511778 +13.4446411 +-4.3727508 +-7.7022014 +-13.3140535 +150.4920502 +8.8880157 +2.5434721 +-3.5162423 +45.0057983 +-37.8162575 +25.8512554 +-0.9453128 +-1.9200174 +7.4352174 +10.5486517 +-21.2947254 +-14.9784946 +-9.7554827 +-7.9991016 +24.0370312 +1.5282509 +9.0930033 +-1.8606271 +-14.4239702 +69.6456070 +-15.0222712 +46.1788902 +-28.3157825 +-17.2483196 +7.7667956 +-41.3069725 +-10.2246447 +-12.0794239 +9.3630304 +0.3719683 +-52.7532349 +-31.9932117 +23.2306118 +-0.4801465 +7.0944338 +39.0171814 +-18.4785252 +13.0271425 +-17.6699772 +0.0246476 +2.2335436 +-15.9927683 +-11.3540392 +-2.0455925 +-13.5100927 +18.4869480 +-22.6769600 +-15.1543617 +58.8800430 +-18.2184868 +-3.5276222 +-4.2083755 +-15.7683887 +5.6537595 +-2.9941187 +-6.6420474 +0.0170231 +1.1336594 +-0.9994335 +16.7649879 +-31.3581505 +5.0920925 +-21.8841095 +15.9433994 +0.9284550 +2.0088081 +-9.4613047 +-1.7725741 +-0.9732450 +11.3058538 +-0.1134038 +-18.7490368 +-4.8396468 +18.4281769 +12.0147276 +-24.1831799 +0.9423349 +-8.1701431 +-9.2185469 +1.6150495 +3.1139991 +-6.2785373 +0.8794018 +-3.1265054 +-7.1392937 +-15.9948730 +-16.0745678 +0.1775997 +-32.4493065 +0.5156269 +-28.9004459 +0.3441376 +-19.0522404 +1.1359915 +23.4237823 +-0.5432442 +6.4465160 +-0.0810268 +7.6814952 +-0.2675604 +-0.2717512 +3.2890201 +2.3878393 +9.3127317 +-2.7028980 +-7.0322618 +-1.5967776 +-0.9451890 +-14.2108707 +-1.2516671 +-0.0945633 +-0.3936539 +-1.6961858 +-1.6659074 +1.6287972 +0.0042031 +0.1015399 +-10.4189358 +4.7148285 +-3.0311949 +-3.8236105 +-2.3426797 +1.0133255 +-1.3242455 +0.0762144 +5.8956695 +-1.9834526 +-1.2773855 +-3.9650755 +0.3049657 +10.7031565 +-0.0140632 +-1.8127429 +3.1120605 +-0.7245733 +-5.8210139 +-0.2856237 +-1.4091100 +1.2289759 +-1.1730990 +-2.4005485 +-1.0405401 +4.5066857 +11.4124155 +6.4999409 +31.8535461 +-0.7216216 +-4.3863535 +0.3139214 +-1.5378073 +1.2310749 +-3.5692341 +11.6736946 +-3.3240225 +-7.9052410 +1.0429684 +-7.1953015 +0.0169897 +-5.8161106 +-0.7994511 +7.2147374 +0.7174428 +2.7544234 +0.1553286 +1.9839199 +-7.0697713 +0.0677444 +-25.7757015 +-0.0427273 +-7.0813208 +-0.9393135 +-0.5084154 +-0.6728104 +5.0050478 +-1.2937653 +-0.5687091 +-0.1046173 +-1.2561677 +-0.0912909 +16.2681561 +-1.5649781 +0.3406577 +0.7136773 +-0.5664125 +21.8989334 +15.6979818 +1.3115889 +-1.4582877 +1.7863860 +-2.5663347 +-3.4115987 +15.5756559 +-0.1610791 +5.6442661 +-3.2004714 +16.0591774 +-7.8579412 +-0.9082162 +-0.3077630 +1.2366567 +0.6398494 +-0.9995918 +5.5467324 +7.0455122 +-14.4592247 +4.9541974 +6.5598373 +-1.8364036 +-0.0628147 +-2.7633607 +23.1337967 +-0.5561585 +2.0412743 +-2.7615941 +-0.7898560 +-3.1721656 +-0.3879440 +-8.5007896 +-3.5211608 +1.3834293 +3.6639047 +0.1102986 +0.5078399 +6.7976499 +37.7737465 +2.2595561 +-7.7444172 +-7.9993982 +94.6939697 +3.9216082 +9.4502497 +-22.7944851 +2.6454325 +1.2398059 +-6.8846416 +1.8103346 +3.2952766 +5.9457822 +9.8503208 +28.6849213 +2.2817068 +-14.9313383 +-7.6126924 +-11.0404320 +56.7424164 +-15.2320137 +-11.7733583 +-28.8529530 +-14.9875717 +-5.0309253 +-9.6687517 +-30.2283936 +0.6410480 +16.6085949 +1.1060987 +-8.4973936 +-12.2027254 +-17.6818428 +0.2411330 +0.1727047 +-0.6562350 +-33.3464241 +73.4500809 +-11.9043856 +-10.7159090 +-15.3236008 +5.3314977 +6.9631906 +2.4822760 +41.3786278 +-0.3286406 +-4.8320889 +-5.5515056 +23.8476543 +-8.7771845 +6.0192761 +2.7250829 +-10.9467020 +-5.7539072 +-10.9894466 +-3.9950676 +12.6935034 +2.2814455 +-15.4874544 +-15.4611673 +-13.9207897 +0.4172888 +5.7575808 +-0.0039899 +-3.9954455 +-16.5930347 +-17.1473408 +58.5580521 +-13.4883862 +-9.5822821 +-40.4285851 +-9.5429268 +10.8352137 +1.4786780 +2.1818509 +61.1414795 +-14.1070728 +5.1423798 +-10.2925529 +-4.2396197 +8.2754507 +10.7776546 +-10.3042030 +2.3654935 +24.1010208 +48.6408539 +2.3158116 +-37.2913132 +-4.9880953 +-10.9770851 +-11.2692022 +1.8451065 +-18.2257366 +4.1078858 +7.9195065 +-2.1290560 +-15.7885151 +-1.0333787 +-0.0089462 +44.4139137 +-1.9550233 +-3.7367251 +9.2634068 +1.4661839 +4.3568926 +-1.3661922 +0.1130871 +-31.9978008 +8.6396599 +-1.3564813 +-10.4797230 +-14.4082098 +1.0381079 +-0.2888825 +0.6764162 +11.7022696 +9.7184782 +28.5759449 +1.5918074 +3.4210210 +-14.7003584 +2.5352037 +-7.4758782 +-13.4599104 +-1.0007892 +5.6846991 +-6.0589671 +0.4089742 +0.7984712 +-1.4264777 +-1.3565670 +-2.3089099 +2.1701865 +1.4462824 +-1.5888202 +4.5531597 +7.8130827 +-1.0297465 +15.1166649 +-2.4721301 +5.3259826 +3.6439550 +1.5443074 +0.6310195 +-1.9747928 +-0.8658877 +-1.4620035 +4.0974007 +-1.3171816 +1.5341747 +3.0551772 +-0.1669069 +-3.2246585 +-3.7408102 +-1.5752752 +-0.1535742 +5.8271608 +3.3705447 +-0.8655491 +-0.5129859 +-3.4050751 +-0.6582262 +-15.0947876 +0.8148610 +0.1126524 +2.2814682 +7.7438216 +4.6710701 +-1.9401113 +0.5478439 +-3.4226780 +-1.9292079 +8.1030273 +-0.3979315 +-0.8530995 +-1.7477036 +2.6285369 +-2.8876197 +-0.0660351 +-6.5324984 +1.7786808 +-2.9420998 +0.2598135 +3.9947345 +0.3724428 +-2.7132781 +-0.6475941 +-4.4939284 +9.5165739 +-7.0250940 +-8.0323954 +-0.3721043 +2.0328183 +0.4815303 +3.0864134 +-0.7250994 +0.8697387 +-4.7181897 +-1.3225539 +-4.4927521 +0.3554193 +-1.5969172 +-2.5666013 +-0.0015289 +-1.3544155 +-4.0448256 +4.7905545 +-0.2850517 +-2.0034997 +-0.6605324 +2.3571906 +3.2264888 +9.2585335 +5.5781345 +-0.3393492 +-1.5849043 +-0.2397414 +1.3598348 +5.7910571 +0.0328661 +0.6289424 +-13.3639078 +6.1373286 +-2.6029007 +3.0983143 +2.1710749 +-0.4508030 +-0.2986637 +-4.7073951 +-4.4547319 +-2.4908090 +-1.3864685 +-0.8540605 +-0.9249232 +2.7350485 +-0.2537627 +0.3972311 +0.3002902 +1.4534878 +-4.3741369 +2.0529170 +-1.1374997 +1.3558341 +-4.8789029 +1.4674246 +-1.5807294 +-2.5356524 +-1.9998597 +-0.4223800 +-0.7130267 +-4.3792491 +-2.9661438 +-89.9244385 +-5.8111129 +-31.7208538 +-9.4572783 +-30.3729153 +-36.5904922 +-42.5411339 +-16.5790977 +-11.0883017 +-22.4125137 +-120.2247467 +-7.9940815 +-7.3033299 +-40.4323235 +-25.7784843 +-15.9978943 +-18.7917767 +-65.3666306 +-49.1731377 +-35.5503922 +-35.3237610 +-32.8601036 +0.4719149 +-10.6109228 +-51.7873268 +-1.9995273 +-135.2035675 +-49.8073997 +-50.2625237 +-72.7423325 +-5.4692035 +-6.3591261 +-17.8538246 +-16.8358803 +-15.6235704 +-33.3365059 +5.2488794 +-15.6328421 +-10.2762918 +-22.2663116 +-29.8766727 +-30.7461472 +-15.4051571 +-89.5437622 +-31.8884735 +-30.8264370 +-15.6190329 +-176.4714050 +-19.2663670 +-60.4489594 +-34.1442032 +-36.2402954 +-13.3093472 +-77.6786728 +-7.9963179 +-11.7852859 +-16.1759567 +-28.7173462 +-39.0565033 +-7.9980946 +-29.1792679 +-81.8762817 +-60.0438004 +-12.9910240 +-120.6738510 +-40.5894508 +-10.8213472 +-52.4086494 +-67.6035385 +-26.6019402 +-14.0782928 +-12.9855595 +-63.9953766 +-53.8852081 +-12.6037312 +-155.1019440 +-11.9546223 +-48.0393906 +-17.6371498 +-15.9986506 +-46.1896095 +-15.6896515 +-68.5373154 +-14.5534725 +-17.9843292 +-15.9994860 +-37.7075844 +-27.0181141 +-16.0010738 +-16.0031757 +-26.9161205 +-23.5032101 +-117.9821167 +-109.4607315 +-111.6275177 +-4.6042943 +-46.3836174 +-43.5587730 +-10.9482107 +-34.2336464 +-29.5197887 +-31.7372246 +-3.9975040 +-21.3887825 +-93.1194153 +-16.9561691 +-9.2824345 +-3.1753085 +-68.4235153 +-14.0965252 +-7.3958564 +0.6962828 +-40.8313560 +-59.9860039 +0.8437281 +-11.8779202 +-30.3314266 +-4.7211699 +-15.2782974 +-25.4063587 +-12.5068369 +-52.4660988 +-5.0291572 +-2.0628526 +-8.3748360 +-124.5372086 +-48.4109612 +-38.7452431 +1.3011918 +-1.6800075 +-20.2278652 +-4.4828696 +-11.6452694 +250 128 5 0 0.1000000 1.0000000 +-5.3929334 +0.8507708 +3.5702932 +-1.5722823 +1.0525461 +-1.4634662 +4.4385366 +-4.1770473 +0.4675303 +-2.8035653 +0.0201882 +-0.8271512 +-0.9145787 +7.5026269 +-13.8015566 +-6.3122516 +-0.0865902 +-0.2220154 +0.4261985 +1.5267122 +2.3684185 +11.1476908 +-2.1941130 +5.2839689 +-0.3015780 +7.7554717 +0.6121064 +-0.9084527 +-6.7187538 +9.5011530 +-65.2808609 +-1.5686543 +1.3211797 +-2.7186711 +-0.5640568 +-0.4738871 +6.4274502 +2.4397109 +-2.7034576 +-3.5203066 +1.1547307 +6.2392983 +-0.1842939 +1.4010417 +-0.0270315 +1.8802696 +-2.4895251 +9.3485765 +27.0420971 +-0.7107606 +-6.4635038 +-2.0282683 +-0.4396492 +5.4890785 +1.4965701 +4.3056874 +-0.6146606 +-1.3335036 +-2.5108204 +1.2239128 +-1.9294974 +1.4039164 +-1.9277266 +-3.3556340 +-0.0694559 +-1.3070172 +3.9148726 +3.1324456 +7.6535468 +-0.3027442 +-0.1203211 +2.0195920 +1.6559671 +-1.1520922 +-8.4414377 +4.2637486 +-0.9124542 +0.6014159 +1.7188888 +-1.9760867 +-2.3610594 +1.5792198 +2.8731620 +7.4433346 +3.5512509 +3.4209907 +-0.5039070 +-6.6373267 +-2.2104893 +-3.0045741 +-3.4622068 +-7.0007477 +-3.7934260 +0.8124710 +24.0175514 +-1.5763980 +-1.2728646 +0.0256737 +-5.1352839 +11.5298796 +-1.8709174 +2.6344221 +-3.4650316 +0.3077245 +5.3117170 +1.6595668 +2.3880148 +-9.6942234 +-4.4796119 +-1.6697104 +1.7585806 +-1.6463798 +-0.1053730 +-0.1089919 +-4.3653550 +-2.9509892 +2.9734218 +-1.8696028 +0.1939072 +-2.1738658 +-3.2555618 +-0.5608110 +-6.8312988 +0.0416553 +6.8576412 +-3.6908998 +4.6695123 +0.3123345 +-4.4934831 +-5.2230153 +-0.0063795 +-7.2840605 +5.4428544 +-1.1256207 +8.6149015 +-7.8382306 +1.8743788 +-5.4073358 +6.2895331 +5.0101929 +-0.5487089 +14.4323654 +12.6992693 +-3.8008525 +1.5182769 +-3.0352864 +-1.7981997 +2.8105378 +1.0375179 +23.7144165 +-4.3696456 +10.9481878 +-7.8417902 +9.8274679 +2.2181292 +-0.2365675 +-9.4270515 +24.3712349 +15.2033978 +-2.7691667 +1.2938080 +1.0028174 +-2.8669040 +0.2930016 +12.6074553 +2.9164891 +-5.4308734 +-6.8285031 +2.6923454 +10.6446724 +-2.0023775 +4.1879449 +0.4133082 +4.1821117 +-0.8838562 +11.7044611 +42.8320961 +-11.4838047 +10.3226213 +-1.3152546 +-2.3337667 +10.0843496 +7.4705200 +12.1107473 +0.6740051 +-2.1126387 +-1.0399405 +2.8980019 +-4.8890214 +2.6164646 +-1.5616531 +-6.2499380 +7.4688721 +-2.3142838 +6.3715892 +3.9746723 +13.1559324 +-5.0127645 +0.6028842 +5.8844142 +11.6976290 +-2.1007364 +-30.4762478 +6.8973460 +0.2027316 +-3.3230572 +-1.6591482 +-3.1975114 +-2.9443772 +3.4328651 +5.1245298 +13.7567816 +3.6325483 +6.2763062 +-0.6516877 +-1.1493342 +-4.6635947 +-5.7650199 +-15.3170156 +-3.3929050 +-3.1587822 +3.1588569 +51.0309906 +-2.5957158 +-2.5677876 +-2.1079454 +-6.3947320 +18.1832333 +-2.7533317 +-0.6155345 +-5.8510337 +0.4518888 +10.2981024 +1.4687036 +14.1846924 +-5.9090881 +-4.1230736 +-5.9306216 +6.9689207 +-2.9653471 +5.5280628 +2.2528822 +0.3225003 +-5.0176716 +8.9688253 +-12.1838036 +0.2563230 +-7.4530239 +-6.3755827 +-0.2441551 +4.7769327 +-8.3757362 +16.1270695 +-6.5861359 +6.6819358 +-2.7232847 +-7.7020640 +-1.1285352 +-0.3731913 +-10.4355793 +6.1203847 +-2.5010617 +11.7800493 +-12.7481966 +1.9189363 +-8.7672539 +8.4964275 +5.8647633 +-7.3107862 +19.9248791 +3.6453292 +-5.9638367 +2.6334105 +-2.3284326 +-0.4520768 +5.4020081 +4.6114049 +38.4845695 +-6.9739881 +15.9307909 +-10.3795481 +16.3695431 +2.9549360 +0.5393133 +-15.8094540 +25.4211121 +20.0959492 +-4.8132849 +3.5556831 +1.3759110 +-4.3441038 +1.1943367 +17.6024513 +3.6799588 +-7.0921240 +-12.0126133 +2.6551971 +14.8591909 +-3.3406124 +5.6329112 +-0.8366563 +6.2632127 +-2.3129258 +20.4812298 +62.7493057 +-12.0369587 +17.6132507 +-6.0231385 +-3.9978349 +17.0000515 +9.4175978 +13.3026247 +-1.0166987 +-1.5769432 +-1.0561203 +3.3102593 +-6.0335560 +4.4528551 +-1.5600170 +-8.8044071 +9.6568346 +-4.4505825 +11.7620707 +7.2033887 +19.4966869 +-7.1432776 +0.9274899 +7.5829377 +13.5247068 +-4.4933176 +7.6279764 +10.7748213 +0.2174995 +-3.9509904 +0.2306953 +-4.6094584 +-5.3132586 +4.1642265 +6.5553908 +21.5500412 +5.7642303 +10.0403461 +-1.5142924 +-2.7950728 +-5.8473845 +-8.6622553 +-19.8388062 +-9.6868372 +-3.5358188 +3.3756094 +77.4178696 +-4.1942687 +-5.2465587 +-2.4924266 +-10.4064398 +28.5986233 +-4.0420656 +-1.0720447 +-8.9465561 +0.0884846 +13.9430065 +3.2917292 +18.6033630 +-29.9884167 +-5.4561987 +-5.8319049 +0.0252781 +-6.9617362 +8.0471277 +3.2197917 +1.6927160 +-8.2080660 +5.2223811 +-16.7145920 +-0.1988565 +-7.4479632 +-9.5720339 +-1.3805641 +3.9041500 +-1.2195400 +20.8841171 +-13.9728413 +9.5250320 +-1.4623140 +-4.6886482 +-3.0838978 +-1.4185238 +-5.8770990 +0.2766777 +-2.0999892 +6.6556249 +-9.0729151 +-0.0485620 +-6.3824062 +3.1364284 +3.1246276 +-22.8894653 +9.9616117 +-9.9502602 +-3.0134916 +3.4347610 +-5.7718949 +2.4405382 +5.5288167 +5.6699929 +28.3469715 +-4.9600258 +10.5273647 +-5.3465114 +14.1706095 +1.4391682 +1.9440749 +-12.5893373 +8.7498274 +6.6658359 +-5.7601247 +4.8908601 +0.9482250 +-3.6482263 +2.1954963 +10.8322620 +0.8956522 +-4.3955283 +-6.9626827 +1.6948663 +9.4953728 +-2.5964315 +1.9993786 +-2.8270504 +3.7912412 +-2.0623651 +14.3442326 +36.6312180 +-2.6834660 +14.7897511 +-16.4491463 +-4.0012894 +12.9022093 +9.1633387 +2.4591439 +-6.4847775 +2.4550993 +1.0140636 +1.2020972 +-1.8203999 +2.8480318 +0.2589513 +-5.1434579 +1.3569673 +-7.0957456 +9.8818207 +3.9442225 +12.1185074 +-1.2830762 +-0.1497974 +1.8301615 +4.2707372 +-7.1602840 +12.2560987 +7.0387092 +-0.3998351 +-0.8555510 +0.5756602 +-3.9671738 +-6.1034694 +1.0730268 +3.2912776 +16.1573334 +4.0494328 +7.4393902 +-1.4633219 +-4.7869415 +-3.5574946 +-5.4253793 +-11.6252012 +-14.7053308 +-1.4845729 +0.2249212 +53.0369301 +-4.2698612 +-3.8871429 +-1.5171165 +-10.3758373 +21.0548038 +-3.3039060 +-0.8737190 +-6.1078897 +-0.4975599 +8.4517527 +3.8899155 +13.1278172 +-9.3111296 +-2.4904799 +-0.0087752 +-8.5218945 +-11.4484730 +-0.1684063 +2.0368955 +1.9150038 +-5.4004335 +-4.9951982 +-7.4299645 +0.3398183 +6.5535202 +-7.4998860 +-1.6091837 +5.0124364 +-13.4120884 +11.7120199 +-16.7166729 +5.1061535 +0.9637691 +-8.8034945 +-0.9001502 +2.8608782 +-1.6711501 +0.9323255 +-2.2280188 +4.7731504 +-4.3718843 +0.4821924 +-2.2863667 +1.1292619 +-0.4055356 +0.9726056 +6.4165483 +-16.9972095 +-6.1538320 +-0.9883935 +0.2383381 +0.0195687 +-0.6745758 +0.8172948 +14.2199831 +-2.1781054 +5.9721403 +1.9732521 +7.8312044 +1.1227102 +-0.6269273 +-4.8851271 +2.7403138 +-21.8500099 +-1.0026538 +1.0176237 +-1.2543093 +-0.6234754 +-0.4939395 +5.5198951 +1.2869415 +-1.8454813 +-2.6816781 +-0.1851612 +5.2676120 +-0.4999000 +2.0024102 +0.2678452 +1.4815695 +0.4404668 +6.9098334 +23.9225502 +-2.0093424 +-9.2659740 +-0.2083407 +-0.3988977 +5.5921769 +2.7201033 +-1.8746514 +-0.0898853 +-2.3501351 +-3.2578139 +-0.4190765 +-1.7034243 +1.2291355 +-2.3059011 +-2.2472277 +-2.8663597 +-0.9015536 +4.0165229 +3.3394194 +7.2962179 +-0.3156695 +0.0159978 +2.2691431 +-0.2215452 +-0.5401855 +-1.2806808 +3.9634185 +-1.1482781 +0.6924837 +4.3094645 +-1.8438840 +-1.0293058 +1.5987924 +1.8802108 +7.3315573 +2.6595185 +3.0203168 +-0.3785461 +-6.4321318 +-1.5308059 +-3.0910630 +-3.2538905 +-2.1652884 +-2.9576826 +-0.8325364 +25.7636395 +-1.3705922 +-0.7441328 +-0.3873026 +-4.3929482 +9.4049559 +-1.7482668 +2.1757805 +-3.0501382 +0.3057210 +5.8161983 +1.5120701 +3.0393782 +-16.6058922 +-4.1295781 +-1.4564308 +-0.7554367 +-1.4179624 +-0.3641400 +-0.0929941 +-3.7227623 +-2.8517995 +-4.3498993 +0.2370433 +-0.8908750 +-2.1709461 +-2.5909472 +-0.4354589 +-9.5058794 +1.2263438 +-0.8490450 +-2.5064130 +4.7860579 +-0.2157575 +-3.3459747 +-6.3381114 +1.7561089 +-6.4921713 +3.8476021 +-1.7122620 +8.2873516 +-7.4839110 +2.2492316 +-4.9460263 +5.6738243 +2.4836340 +3.3362293 +13.1302414 +13.8677902 +-4.7907262 +-3.3968873 +-3.5870805 +-2.2899940 +1.5463480 +2.0400889 +22.8863354 +-4.3583832 +11.1526890 +-5.5144234 +10.2417583 +2.1201272 +-0.7679791 +-7.9745221 +-3.3673556 +-4.1526418 +-1.2224495 +-0.0698938 +-1.0684880 +-2.5016868 +0.2884829 +12.0097504 +2.1788213 +-3.8456609 +-5.5338759 +0.5048572 +9.1172018 +-2.1849997 +4.6737986 +0.2761035 +3.6819763 +-2.7953289 +10.1600800 +41.8867607 +-14.9755020 +10.8340101 +3.0638800 +-1.3870850 +10.5031748 +7.4175887 +3.2916250 +0.2027125 +-3.9812181 +-3.7978508 +2.0925393 +-4.9406562 +2.1135619 +-1.4183517 +-6.5491371 +4.9438515 +-1.1894315 +6.3671637 +4.2716584 +13.6137152 +-4.0285120 +1.0363806 +6.6383758 +10.8314199 +-0.6971815 +-0.8490533 +5.6707520 +0.5912542 +-2.4177210 +-3.4436023 +-2.7124348 +-0.1175708 +3.8602574 +3.0531962 +13.2604418 +3.3657455 +7.4392061 +-0.2591628 +2.8071077 +-3.3061585 +-6.6938052 +-12.8865271 +-0.5959612 +-2.7364573 +0.8761483 +50.6529388 +-3.0086269 +-1.8710874 +-3.4194796 +-2.3591778 +14.9200592 +-2.4367046 +2.0630450 +-5.3837714 +0.5368130 +9.5874519 +2.1379259 +9.2766457 +-10.9760752 +-7.7120366 +-6.5865355 +11.6359606 +-3.9074330 +0.8610960 +1.4535513 +0.1011705 +-5.3039336 +1.8151770 +-6.4196053 +-0.7265763 +-2.8846407 +-5.5346889 +-0.4689498 +5.0638609 +6.4973235 +7.0720844 +-4.1961713 +6.4075842 +-4.2181392 +-5.5998478 +-7.4232593 +4.2493863 +-9.0843611 +4.3114858 +-2.3531411 +11.9902620 +-11.4356194 +2.7010767 +-7.6565051 +7.8831878 +3.0099943 +-1.1313771 +18.6503105 +9.2266512 +-6.4622579 +-0.4768752 +-5.5001087 +-0.8718547 +3.1650572 +4.1526847 +37.8477440 +-7.1081781 +16.3957539 +-10.6014233 +17.2631245 +2.7602446 +-0.3351554 +-12.9353256 +24.2547779 +8.0577250 +-2.9841232 +2.6219320 +0.0406084 +-3.9551332 +0.6002123 +17.3608932 +2.4001844 +-5.9752021 +-10.7011290 +0.6224771 +14.1683521 +-2.9565184 +6.6237893 +-0.3385400 +5.3102765 +-7.0439138 +18.7127132 +64.0362625 +-15.3458996 +18.6595764 +1.6852176 +-2.8404417 +16.8389778 +10.1633530 +3.5703454 +-1.3069203 +-2.8026128 +-2.6795595 +2.7462845 +-5.9164414 +4.0419960 +-1.7643467 +-9.2742863 +6.6830101 +-2.6612208 +11.7768307 +6.7418742 +20.2254467 +-5.3350191 +0.9202383 +8.6711483 +13.7155361 +-1.3891566 +13.9290829 +9.2007389 +0.3324907 +-3.7435086 +-3.2587442 +-4.5756311 +-3.0053458 +5.3261538 +4.1851554 +21.1529045 +5.5835519 +10.7646236 +-1.3940043 +2.3493147 +-5.0177941 +-9.5635872 +-16.2842941 +-7.9633121 +-3.1764920 +1.4816476 +76.6763458 +-5.2341213 +-3.7497644 +-4.1874337 +-5.9219761 +24.2272472 +-4.1857095 +4.8050385 +-8.6976528 +0.3480454 +13.9495544 +3.0316253 +15.3037224 +-32.2681389 +-8.8642235 +-7.0788646 +6.1174788 +-8.7859182 +1.0450931 +2.1835766 +1.0760581 +-7.9934182 +-30.4195290 +-14.5496655 +-1.0315934 +-2.4081192 +-8.2210321 +-1.6634363 +6.9494004 +8.7890415 +8.7672186 +-8.6520061 +8.7594767 +-3.4106188 +-4.6961951 +-0.9698025 +4.9458666 +-5.3599038 +0.6955560 +-2.2155666 +6.0201993 +-7.9232740 +0.3097970 +-6.3375902 +3.4659147 +2.2286954 +-36.9956284 +10.5566473 +-16.1667767 +-3.0224094 +3.0172198 +-6.3863387 +3.0511198 +4.7722979 +5.7768469 +29.0534687 +-5.8816576 +11.1232309 +-3.5851622 +17.3107777 +1.2767190 +1.7146581 +-12.9890833 +-87.3423157 +7.9717584 +-4.8492360 +5.0604649 +1.3420947 +-3.6105864 +1.9056534 +10.7620525 +1.0712065 +-3.5231106 +-6.5687904 +1.2990521 +9.2837982 +-2.0614557 +2.8706682 +-3.4993041 +3.5611989 +0.1141464 +16.0560856 +38.7345581 +-3.1530688 +15.2961979 +-13.6728954 +-4.0466280 +12.2983313 +6.9046183 +6.3517976 +-9.3367195 +1.3751372 +0.2511291 +0.8874688 +-1.2117107 +3.0496240 +-0.2624384 +-5.1640792 +1.4384190 +-6.8612061 +8.4713697 +4.8549938 +12.3889809 +-0.4594173 +-0.3590436 +2.4867122 +3.6095989 +-6.0745511 +13.7232590 +7.4033604 +-0.3866396 +-0.8085165 +0.5372421 +-3.9472570 +-6.4105086 +2.2818661 +3.3417184 +16.5057545 +4.3778067 +7.7118626 +-1.5123258 +-3.3766704 +-2.6558745 +-5.5173864 +-7.7491851 +-20.3173447 +-1.9657031 +0.5298780 +53.7792778 +-4.5676050 +-3.9570284 +-0.9324527 +-8.9452515 +20.7276268 +-3.5451400 +5.1880941 +-6.0181866 +-0.6758341 +7.3478084 +3.9870687 +14.3838425 +-4.5702271 +-2.4179366 +1.0831062 +-7.0672269 +-10.0740900 +-0.1299147 +1.0816295 +1.6808176 +-5.5358315 +2.2552629 +-7.9138393 +-0.1978966 +5.6295142 +-7.4856329 +-2.3655441 +-4.8411789 +7.7225466 +12.1760235 +-14.4940901 +5.6084571 +0.5908015 +-7.8985877 +0.5029087 +1.7080981 +-1.9515049 +0.7189558 +-2.4451556 +3.8924813 +-4.0488820 +0.9723563 +-2.7264864 +1.5001678 +0.4733633 +2.3658113 +4.2333941 +-13.5150185 +-3.8012683 +0.4157159 +0.4011807 +-0.3934639 +-0.5816113 +1.4359411 +12.5988436 +-2.8300605 +6.5877805 +0.3948104 +5.4248462 +1.0377269 +-0.6869968 +-4.7961478 +-42.7797127 +-22.8570080 +-0.8410352 +0.5615556 +1.3427650 +-1.7037539 +0.4447518 +5.9484673 +1.0217216 +-1.8874755 +-2.6363056 +0.4715791 +4.0094857 +-1.0449411 +1.6864728 +-0.3122077 +1.4209623 +-0.9584880 +5.9802599 +16.3391399 +-3.2526550 +-10.9949827 +-0.1891957 +-0.8574650 +6.2800488 +3.6027894 +-2.0550761 +-1.2395988 +-0.0262119 +-0.8560552 +-0.3999693 +-1.7522932 +1.3687208 +-1.4630220 +-1.6602609 +-1.1059055 +-0.7298306 +3.5676930 +2.8031895 +5.9628963 +-0.1349176 +-0.1061115 +1.3990629 +0.3164342 +-0.1649208 +-14.9073515 +3.4214656 +-0.8779837 +0.2400389 +4.6293755 +-1.9259064 +-0.8617805 +1.5074855 +1.9292276 +7.9140348 +2.3360322 +3.0620620 +0.1127502 +-6.7838178 +-1.3738579 +-3.6062262 +-2.4398534 +-0.7000112 +-2.6771591 +-0.6763660 +22.7153969 +-2.2424710 +-0.8125319 +-0.3316278 +-4.4381199 +9.6156654 +-1.8167207 +2.0493090 +-3.3176527 +0.2409423 +4.1127625 +2.1424506 +2.6109521 +-10.3476324 +-3.0131931 +-1.2139320 +0.3189837 +-1.2281195 +-1.0809495 +0.6362654 +-1.4324677 +-3.3275235 +-1.3273053 +1.5028384 +-0.9400329 +-0.7405559 +-2.6199291 +-0.6949096 +-4.4117866 +1.9715592 +0.7812229 +-1.1438638 +4.2039824 +-0.1980412 +-3.6976068 +-2.8651097 +1.7509654 +-6.5640569 +2.2378993 +-0.8913280 +7.7550321 +-6.9068499 +2.5540280 +-4.7340765 +4.3537183 +-0.3191187 +4.5985665 +10.7346077 +8.8033533 +-5.7575450 +-3.6245334 +-4.1173134 +-2.4888785 +1.0370610 +3.1693816 +19.4672585 +-4.9434805 +12.1398067 +-5.5781555 +8.1413088 +2.1087627 +-1.1884527 +-5.9982314 +-7.2558951 +-2.7573965 +-1.0194000 +-0.8425922 +0.5378863 +-2.6407483 +1.4890251 +10.2487020 +1.0420929 +-4.0143695 +-5.6201425 +1.0506757 +6.1357431 +-2.3195429 +4.6181479 +0.0837599 +3.3001807 +1.3804389 +9.7430801 +38.1750832 +-15.4501715 +11.1227016 +0.0228346 +-2.5338399 +10.7227707 +8.0190172 +2.4761038 +0.4367548 +-3.9965274 +-3.7691419 +2.2967927 +-4.9769049 +1.6048921 +-1.5083767 +-6.8570409 +2.8797960 +-1.1382400 +6.1152101 +3.9346490 +13.0765953 +-3.2346497 +1.1202548 +6.3246155 +10.2166023 +-0.4326939 +-6.4520988 +4.0910664 +0.8437780 +-2.4372914 +-3.1705437 +-2.8072908 +0.9392806 +4.4447894 +2.5859540 +13.7401304 +2.9738390 +6.9637766 +0.0023151 +8.5525084 +-3.2308569 +-6.8101187 +-12.3370218 +1.8340346 +-1.9987218 +0.0341652 +49.3586693 +-3.4765093 +-1.8929937 +-4.5433679 +1.9049988 +15.1239920 +-2.4469204 +3.6390164 +-5.5098515 +0.4306482 +7.7360740 +2.2960577 +7.9684482 +-12.3290863 +-8.0768051 +-6.5389347 +12.2500591 +-4.9856162 +-2.9858055 +2.1892519 +0.6212873 +-5.1541686 +2.9123898 +-1.8109065 +-0.2177226 +-0.3721769 +-5.3022428 +0.0731155 +-0.7217552 +6.4881754 +6.2228885 +-3.7310538 +5.2575135 +-5.8435931 +-6.2406726 +-0.6161743 +5.1840639 +-8.9516993 +2.6298928 +-1.8793330 +11.5939751 +-10.2005539 +3.5139997 +-7.4510031 +6.3082833 +-1.6851964 +3.3592007 +16.4358540 +1.2274280 +-7.9939051 +-1.8760816 +-4.5444903 +-1.4804424 +0.7129353 +4.6209302 +34.9488144 +-7.7912908 +17.2796631 +-9.5730381 +15.8453636 +3.1981738 +-1.1217538 +-11.1797438 +-45.5106316 +-4.1179023 +-2.5223188 +1.0196931 +0.5530718 +-3.2964292 +1.9166064 +16.0459824 +1.7146719 +-6.7671027 +-9.8385334 +1.7882491 +12.6175137 +-2.4926212 +6.9334865 +-0.3579419 +4.7784443 +-3.4384637 +19.0307026 +62.1249352 +-17.2556210 +17.8753891 +2.3370903 +-3.4493797 +17.0470333 +10.9809923 +-23.3645611 +-1.5893333 +-3.5334852 +-3.4966428 +3.3528566 +-5.8136668 +3.2039976 +-1.8261610 +-10.2667961 +4.1283216 +-2.3262362 +9.2939625 +6.1728430 +20.4936466 +-3.9646339 +1.2322612 +8.8300447 +12.9475546 +-1.4831469 +14.1456738 +7.6145840 +0.5178981 +-3.3282337 +-3.7497106 +-4.3462038 +-1.2201236 +6.6581960 +4.1019988 +22.2408924 +5.3056684 +10.2993259 +-0.9469098 +7.6335015 +-5.5457573 +-9.7346735 +-14.3352413 +-2.3371053 +-3.0171943 +0.4944257 +74.9146652 +-5.6120071 +-3.6001852 +-5.3149786 +-1.4814260 +23.6170959 +-3.9026895 +6.3389053 +-8.7572479 +0.4658893 +12.2331028 +3.1626642 +14.1279860 +-36.8607025 +-10.1068201 +-7.9584656 +6.5812688 +-8.5945625 +-6.0969429 +2.9761403 +1.9322530 +-7.9427462 +-49.6821327 +-4.9800954 +-0.4410490 +-0.9710294 +-7.9835320 +-0.1275439 +-1.5608822 +8.4303589 +-5.1839428 +-5.8740740 +8.2853870 +-5.6018434 +-3.4428556 +1.4925371 +8.9927149 +-6.1494913 +2.6932626 +-3.0517933 +7.2932134 +-6.7671127 +2.0599840 +-4.9842024 +4.5304689 +-4.5546050 +-13.9206333 +10.5009851 +-13.0721836 +-3.4646678 +3.1812286 +-1.4465539 +3.9577665 +6.2168140 +6.4887729 +27.9523907 +-5.2685838 +11.4755697 +-0.0558813 +20.9233761 +1.3527148 +1.4956515 +-11.6409073 +-53.4156227 +-21.9747753 +-3.5798233 +5.2606955 +2.1879623 +-1.6912649 +1.1425675 +11.6808138 +-0.7851177 +-3.6260548 +-6.2129259 +2.0610654 +10.3827906 +-1.6987844 +2.9466848 +-2.9106793 +3.3544443 +2.1558151 +16.4313717 +40.1749077 +-4.5706372 +14.9535074 +-4.6615477 +-3.1239221 +12.7521696 +4.2799683 +16.2323437 +-4.8954844 +1.1997032 +0.5084150 +0.6493621 +-0.3950117 +3.6887903 +-0.9681193 +-5.8958097 +2.6150436 +-4.7043424 +9.5218115 +4.7062249 +13.0306768 +-1.1363838 +0.1766404 +4.4214211 +3.4441717 +-4.8384337 +-69.8893890 +6.9884591 +-0.3423516 +-0.8748985 +-1.9517000 +-3.4589214 +-2.4736166 +4.1441693 +3.5855367 +16.3400517 +3.9531147 +7.3535390 +-1.1044552 +-1.7361599 +-3.1022260 +-5.9490299 +-4.3606663 +-11.4155035 +-1.0869737 +0.1758565 +52.4933052 +-4.8042698 +-3.1907220 +-1.6115800 +-7.8158650 +17.6917496 +-3.2547302 +8.2921276 +-5.8909106 +-0.1976350 +9.6888466 +3.3523355 +12.8586626 +-8.5373869 +-3.3440454 +0.7775648 +-10.0653667 +-9.2182245 +-2.3871355 +-0.2391395 +0.7029727 +-5.7735085 +-21.9013519 +-3.5536487 +-0.6166483 +1.6635267 +-8.4025269 +-2.5479655 +-0.1221730 +3.4908488 +-88.6866531 +-10.0643120 +3.4905953 +1.7897813 +-3.9918540 +0.2729920 +3.0990350 +-1.4889237 +0.0662775 +-2.5837705 +4.3052769 +-3.7683206 +0.2673195 +-2.4925447 +1.8411754 +-0.4069436 +3.4465921 +3.2851179 +-15.7406435 +-2.8534565 +1.3699942 +0.2405670 +-0.8152555 +-0.0409554 +1.5002930 +10.2536783 +-3.5123432 +6.2858734 +-1.5061529 +2.7114384 +0.5767542 +-0.5965870 +-4.4233060 +-37.2407341 +-22.0453091 +-0.7487772 +0.3477241 +1.2357551 +-1.7286179 +0.3966447 +4.2710533 +1.1548259 +-1.9655280 +-2.6106315 +-0.2247473 +3.5956814 +-1.3130533 +1.8590249 +0.5286158 +1.4437004 +0.3629355 +5.4644618 +15.2417765 +-5.0021238 +-13.3855238 +0.2483232 +-0.4434146 +6.1696305 +3.8946617 +-10.5646048 +0.1589173 +0.2849711 +0.2988753 +-0.3857245 +-2.4975693 +1.1562171 +-1.1790389 +-2.2496755 +-1.7849652 +-0.4412405 +4.8027601 +2.5364537 +5.9443207 +-0.3430216 +0.0202241 +1.3320422 +1.1296638 +0.7882594 +-31.0380516 +2.7688339 +-0.8245748 +-0.4741322 +1.5880674 +-2.0108378 +-0.9918140 +1.7117940 +0.9851990 +6.8466339 +2.0463982 +2.4036853 +-0.2113843 +-6.6999760 +-1.3706968 +-3.5831740 +-2.1666000 +1.3597765 +-4.1443582 +-0.7635300 +23.7349548 +-2.0051162 +-1.1143481 +-0.9282175 +-4.1348872 +7.2213149 +-1.8134028 +2.6440907 +-3.4122031 +0.0417442 +4.3069706 +2.4623568 +3.5866220 +-9.2191935 +-2.8359938 +-1.7503326 +3.2219408 +-1.9928983 +-2.6683040 +0.8163795 +-1.0816178 +-2.9063897 +-0.1768043 +-4.0318494 +-0.9375166 +-0.5071247 +-1.3111023 +-0.6690940 +-5.7755899 +0.7864591 +-2.3198769 +-0.0479589 +4.0575209 +-0.1923246 +-4.1159635 +-2.6614587 +3.2329762 +-6.9364796 +0.6117643 +-1.9662118 +7.7636776 +-6.3453279 +2.6433401 +-4.4645100 +3.6060066 +-2.4193115 +5.4155798 +8.2867975 +10.1825609 +-5.0248375 +-4.9599972 +-3.6193120 +-3.0590622 +1.5726212 +4.1181202 +16.2959595 +-5.7829590 +12.9058704 +-4.9186606 +5.6660624 +1.9473346 +-2.0131316 +-3.4242373 +-13.7123327 +-1.1437572 +-0.9683960 +-2.0177226 +-0.0481002 +-1.9536856 +1.6089962 +8.7074528 +0.4988369 +-3.3773093 +-6.1236577 +1.3553846 +2.3214533 +-2.2184055 +4.5952892 +0.6764459 +2.6882014 +4.3794274 +9.3082056 +35.4877777 +-16.9537373 +10.4011564 +-2.7222171 +-1.7772038 +10.1760921 +9.2768459 +-0.8259513 +1.0888160 +-4.4094782 +-3.9254775 +3.0235646 +-5.3128576 +1.4510359 +-1.9813452 +-7.2059889 +0.8861532 +-1.2691900 +7.3478432 +3.2813561 +13.2180166 +-2.7265854 +1.2500013 +5.3867307 +10.3160324 +-0.0557624 +-16.0481644 +2.7433171 +1.0062529 +-2.7933562 +-3.9123118 +-2.6085105 +1.2727187 +4.6626005 +1.9547378 +13.0568895 +2.4440892 +5.7637138 +-0.2198009 +10.4724722 +-2.4145639 +-7.3836465 +-11.9228086 +5.4955087 +-2.3375874 +-0.4488787 +47.9599800 +-3.6904557 +-1.9269400 +-5.3564730 +4.8023076 +15.1194696 +-2.3711264 +5.6303387 +-6.1872282 +0.3460681 +6.8519845 +1.9050118 +7.2817841 +-14.6304626 +-9.0106544 +-7.2329035 +12.6234169 +-6.8891902 +-5.9168448 +3.6576762 +-0.6417995 +-4.9718328 +-0.1493738 +-8.7305994 +0.1933469 +-0.2430533 +-4.4411435 +1.3118281 +-0.0148592 +5.4683514 +0.7633291 +-2.9399908 +4.5739989 +-7.6701880 +-9.0599537 +-1.0596850 +4.4243298 +-9.3261833 +2.9578080 +-2.9478219 +11.7105932 +-8.7109690 +3.3058112 +-7.1114612 +5.5555563 +-3.9910033 +5.4980140 +12.9675522 +4.8283486 +-8.9009600 +-2.6647706 +-4.2646651 +-2.3253646 +2.4287574 +6.0467448 +29.7600994 +-8.8841534 +18.7088165 +-8.5525427 +11.6825924 +2.9163876 +-1.9799399 +-8.4213848 +-28.1012497 +-2.5128913 +-2.1106031 +-0.1428210 +0.3688605 +-2.9139068 +1.7101214 +13.7469759 +0.8722752 +-5.7510867 +-10.2915516 +2.4109540 +8.7412739 +-2.4168618 +7.6093307 +0.4757348 +4.2978702 +2.7113631 +17.8111496 +60.3839149 +-18.8872471 +16.1903362 +0.2675085 +-2.9679518 +16.3445549 +12.4496078 +-41.2649727 +0.2548149 +-3.6537077 +-3.0259655 +3.3417885 +-6.1828747 +2.9818995 +-2.3753426 +-10.4767561 +1.5501865 +-2.1886663 +11.2495623 +5.7692623 +20.5597363 +-3.1542599 +1.5199460 +8.2823334 +13.4276314 +-1.1255738 +5.7375641 +5.5437536 +0.6559518 +-4.1681771 +-6.3637242 +-4.1109543 +-0.5664170 +7.4375591 +3.7240746 +20.7583961 +4.3660793 +8.9294310 +-0.5800265 +8.9412937 +-4.6373434 +-10.3836470 +-13.2862797 +2.6632740 +-3.1967580 +0.2278924 +73.7358704 +-5.2980614 +-3.2389266 +-6.4276595 +1.7427299 +23.4498367 +-3.7118106 +6.5049477 +-9.0236588 +0.1511893 +11.7159986 +2.9040678 +13.8407354 +-36.1827812 +-10.9282780 +-8.6056967 +3.2097988 +-9.5306873 +-9.6772213 +3.9358404 +1.1102583 +-7.9408484 +-13.5593081 +-5.1199045 +-0.1142716 +-0.3710136 +-6.4732327 +1.0329925 +1.5717556 +8.4737663 +-5.8051729 +-4.5941892 +7.0497441 +-8.8752489 +-4.2230711 +2.3126397 +7.2777004 +-4.8378167 +2.6986699 +-0.3287556 +7.5437045 +-6.0199461 +1.5542485 +-5.7179480 +-0.5242663 +-6.5947628 +-5.9109607 +10.7038860 +-21.0509129 +-5.0970969 +1.2621403 +-5.0759091 +4.5502272 +4.1749444 +6.6968932 +25.5202274 +-6.6433625 +12.3879738 +-8.3580770 +21.1144485 +1.1407681 +-0.1287660 +-11.1482124 +16.9737377 +3.7047169 +-3.3982337 +5.2293139 +1.5188510 +-1.8029231 +-0.6636891 +10.4441605 +0.3713217 +-4.4675422 +-7.0231361 +1.0105832 +8.6916752 +-0.6184214 +4.0810103 +-2.0097957 +2.9993634 +-32.0756264 +15.9710407 +44.9621201 +-5.2816582 +16.1105309 +-0.9816709 +-2.7169046 +12.8663893 +2.8991077 +26.6299763 +-3.2260315 +-0.8213472 +-0.6900339 +1.0022204 +-0.7135390 +2.6977355 +-0.2609586 +-7.6066256 +3.0535431 +-3.5967374 +7.8602762 +5.5519981 +14.0920248 +0.0987488 +0.7096568 +4.8175397 +3.1008437 +-4.1509385 +5.0009246 +7.6927757 +0.1559111 +-1.0808195 +-1.5953263 +-2.9490376 +-3.2003615 +5.0270948 +3.6382821 +17.1072445 +4.0487232 +6.6657333 +-0.8945019 +-3.1931291 +-3.0586627 +-6.2859435 +-1.7901826 +-11.8681898 +-1.1461544 +0.4177000 +48.0002441 +-5.2181201 +-3.6797824 +-0.5115361 +-6.6454453 +18.4477634 +-2.7991300 +6.8893485 +-6.9999781 +0.0930507 +10.3964596 +0.9924031 +13.7295513 +-8.2005119 +-4.2445116 +1.5320957 +-19.8947773 +-6.4182978 +-2.9372005 +0.7415110 +1.9855088 +-5.5750093 +-28.7968407 +-14.2367849 +1.1028700 +-1.4408560 +-6.5784822 +-2.5334122 +-8.9605179 +3.8235390 +-87.4326553 +-7.7778335 +5.2478538 +0.4169393 +-3.4202182 +-0.1088913 +3.5761912 +-0.9249731 +0.8030041 +-2.1889472 +4.2566776 +-3.3951602 +1.0098777 +-2.5972102 +2.6134546 +-0.8537084 +4.3025656 +2.6346002 +-19.6905708 +-1.0409994 +0.2420669 +-0.1958816 +-0.5817104 +0.9926002 +1.4357537 +8.3401699 +-3.9411883 +5.9689488 +0.3317903 +2.1046486 +1.1185004 +-0.2925074 +-3.7598541 +-28.3176422 +-23.5120125 +-0.8729746 +0.5800846 +-0.0675937 +-1.5918573 +0.6327153 +4.2897429 +0.7722000 +-2.5978603 +-2.1202090 +-0.5442995 +2.8227174 +-1.4218488 +2.1741056 +0.0161097 +1.5955297 +0.1053455 +5.7846823 +14.0137959 +-6.9721808 +-14.8923388 +0.2220721 +-0.4753894 +6.1384168 +4.5358381 +-22.3164845 +-0.7007895 +-0.3863032 +-0.5217655 +-1.3125167 +-1.9278176 +1.0743040 +-0.7505906 +-2.3911161 +-4.0280919 +-0.6661376 +4.2781644 +2.1943321 +5.8701553 +0.3987148 +0.0611057 +1.5272903 +1.6030900 +0.2449027 +-9.5993938 +2.4604981 +-0.7989142 +-0.3471975 +-0.1714818 +-1.6861931 +-1.4392240 +2.0260227 +0.6763597 +7.1106601 +1.3993089 +2.3670702 +-0.2484886 +-6.3551579 +-2.0766604 +-3.4518256 +-0.9298002 +1.6280773 +-3.6963558 +-0.9386626 +22.0523853 +-2.4362946 +-1.0652829 +-1.2141414 +-1.9859048 +2.7290258 +-1.6655284 +-4.2818131 +-3.2141924 +0.2480113 +3.7946997 +3.1131477 +3.4151835 +-22.4247684 +-2.5300748 +-2.5985281 +2.5124936 +-1.6431183 +-1.5404294 +0.0475518 +-2.5944843 +-2.9083815 +-3.4707556 +-3.0918579 +-1.3100978 +0.1346337 +-0.6915568 +-1.0865545 +-7.9997959 +0.9711580 +-4.9137554 +0.5494484 +3.0396059 +-0.6590315 +-5.8482933 +-3.2978342 +2.4777222 +-6.2576079 +-0.5825003 +-1.4264374 +7.3048315 +-4.9265003 +3.3659899 +-4.5376678 +2.1841910 +-6.2868295 +5.5249753 +5.9514494 +8.5237675 +-3.6312158 +-4.9705844 +-3.6883230 +-3.3569679 +0.0553348 +3.7859373 +15.4921827 +-6.6142507 +12.3836012 +-6.3121939 +4.0802460 +2.2367072 +-1.7668178 +-2.3503060 +-20.4081478 +-0.3030807 +-1.0196898 +-2.0840304 +-0.4203853 +-2.0408916 +1.2270545 +7.8689842 +-0.5093459 +-3.7182882 +-5.4959011 +1.6713361 +-0.5302009 +-2.4774561 +4.7409067 +0.6659935 +2.4723470 +3.7197983 +9.1143484 +31.8860779 +-18.1325436 +9.8191748 +-3.5914164 +-2.9107440 +9.8713303 +10.4738798 +-7.3839250 +0.8243388 +-4.6338181 +-3.7712281 +2.2909417 +-5.3376555 +1.3717355 +-2.6397889 +-7.3265567 +-1.1431198 +-1.1711166 +7.9694891 +3.0829022 +13.0953846 +-2.2073817 +1.0732075 +5.4609456 +10.5543556 +-0.7337456 +-11.7911329 +1.6006604 +1.2484367 +-3.1531768 +-2.2919204 +-2.7346783 +1.2625865 +5.6801314 +1.7850810 +12.4597616 +0.5881054 +5.2849283 +-0.0628983 +18.6982708 +-2.8956223 +-7.2725739 +-10.0620270 +4.1529379 +-1.5803267 +-1.8664712 +49.2326355 +-3.6862636 +-1.9982009 +-5.8815532 +12.4700136 +13.9953365 +-2.3693967 +5.3539100 +-6.3051105 +0.3890676 +4.5808358 +1.5354090 +4.4262743 +-11.1616316 +-10.5702047 +-7.5391774 +11.9787865 +-6.7919569 +-5.5345478 +3.9543762 +-2.4644914 +-4.6956129 +-7.7655048 +-17.7037354 +-0.0315428 +0.2277953 +-3.7825747 +2.0293007 +-1.5959046 +4.5918727 +-8.3910236 +-3.0272374 +3.0262711 +-7.5150304 +-15.0180082 +-2.0206254 +4.1599832 +-8.4237232 +2.4903741 +-2.1487923 +11.5159264 +-7.1137481 +4.2983537 +-6.6601448 +3.1879857 +-8.9617462 +6.3606811 +9.6818895 +9.7854433 +-5.3749480 +-4.4008570 +-3.8898818 +-2.5926924 +2.9984875 +6.1971159 +26.3676472 +-9.5502958 +18.2883530 +-7.7077894 +9.1035881 +3.2962201 +-1.9875807 +-6.9203405 +-25.1983261 +1.8481784 +-1.9829135 +-0.1169634 +-0.6384811 +-2.7851179 +0.9137061 +12.8175325 +0.1203326 +-5.8778586 +-8.5190639 +3.4850125 +4.9116616 +-2.5958519 +7.9676590 +0.5600989 +3.7084146 +4.6912355 +17.0104427 +56.1357536 +-24.7194500 +15.6350002 +-2.2857203 +-4.4601159 +16.2111473 +13.6812973 +-47.7026520 +0.0760703 +-3.6729233 +-3.2583373 +3.1681533 +-6.0843821 +2.7686207 +-3.0368297 +-10.8631973 +-1.1759785 +-2.0244105 +12.5636015 +5.6555538 +20.4654350 +-2.3388166 +1.6129030 +8.3919439 +12.4852848 +-2.0365076 +-1.0984508 +4.0596189 +0.5977321 +-4.3110385 +-7.0917978 +-4.0695705 +0.3634959 +8.6230240 +3.9226260 +19.7812328 +1.4163542 +8.6245289 +-0.2460829 +16.8935013 +-4.8886828 +-10.2595510 +-10.8051634 +2.0727062 +-3.2466869 +-1.5225198 +75.0378036 +-5.2721043 +-2.9164088 +-7.1021791 +9.8115730 +20.8737793 +-3.6045249 +6.5075126 +-9.1220474 +0.4545376 +9.8175507 +2.9658592 +11.4525681 +-42.2163544 +-13.6803646 +-10.1501989 +1.8179917 +-8.6073666 +-6.2388682 +4.0450778 +-0.2838308 +-7.8060293 +-13.2797012 +-20.7033501 +-0.1984548 +0.6049712 +-6.1286726 +1.7114795 +5.7099943 +8.1981249 +-10.5676346 +-4.8878260 +5.9187026 +-9.3246880 +-9.3321180 +1.6645840 +6.4026899 +-5.6331167 +3.6687129 +-0.1509843 +8.5634928 +-5.5479760 +0.5697709 +-5.8961630 +-0.2128191 +-6.5218029 +-1.3773588 +7.9336448 +-12.5035849 +-3.5936451 +-2.4237642 +-10.0475769 +4.1175671 +2.6715817 +6.2910280 +26.7553959 +-6.8091969 +12.9960375 +-1.0534029 +22.6194553 +2.2667348 +0.3872753 +-8.6241055 +-0.7705556 +-5.6486630 +-2.7706137 +4.4052110 +2.4563906 +-1.7666001 +-0.6035878 +9.1747856 +-0.4926849 +-7.4733829 +-6.0575309 +1.3252281 +9.0244741 +0.1174176 +5.2292800 +-0.1332509 +2.5067556 +0.4533036 +15.5899353 +47.9909019 +-8.0397339 +16.0665531 +2.2029159 +-4.0904217 +10.3392019 +4.5658188 +-1.7664312 +-2.7612655 +-7.7247591 +-5.2434487 +-0.7187258 +-0.3957932 +2.4379694 +-1.2009770 +-5.2574921 +1.1766995 +-2.8687987 +5.3237853 +5.2838378 +14.3765106 +0.2141583 +0.1410396 +4.1480317 +2.3864119 +-2.8390653 +-16.0553303 +6.2286220 +-0.5710417 +-1.0723737 +0.4495161 +-3.3381605 +-2.8829432 +5.4586124 +2.7235858 +16.2213669 +4.1356716 +6.6758375 +-1.9792249 +-3.8896716 +-6.8700438 +-6.2423644 +-2.6165714 +-8.2059250 +-3.2782841 +1.6245340 +46.9642220 +-4.7729983 +-4.1618047 +-1.1533786 +-5.1493554 +17.9191551 +-3.1523888 +7.3163519 +-6.5883851 +0.9612819 +10.2504368 +1.2231302 +11.9713488 +-10.0233526 +-2.5824242 +1.2866927 +-9.6412287 +-4.4106140 +-4.5183201 +0.7072999 +0.6080089 +-4.8675437 +-17.3794975 +2.8891585 +0.1791140 +1.2422501 +-4.9407821 +-1.4794159 +-2.5692632 +2.7665758 +-65.3892136 +-4.8282413 +5.9551396 +-2.4884212 +-2.1470850 +0.0559659 +5.1245966 +-1.4955130 +0.7411591 +-1.9687412 +4.9003658 +-3.5809841 +3.1938672 +-2.0750206 +2.4546556 +-1.6960350 +4.3204703 +1.4971955 +-25.6092415 +-0.0190584 +0.5472362 +-1.1528913 +-0.9926005 +1.0342852 +1.7808696 +5.9580183 +-4.1319537 +5.6114469 +1.1370262 +2.3159461 +1.2044934 +-0.3265280 +-5.6924200 +-19.1681519 +-25.5934811 +-0.9474821 +0.1293993 +0.9356301 +-1.9887326 +0.8366807 +6.5419917 +0.8921875 +-2.1711283 +-1.8343651 +-0.3926918 +1.1150448 +-1.5420840 +3.2423289 +0.6857339 +1.3682666 +-0.1149964 +5.6344261 +12.4338446 +-9.3517666 +-15.0946970 +1.2346497 +-0.3923098 +5.5262251 +5.4741969 +-24.7132912 +-1.3217740 +-0.5805463 +-0.5735142 +0.2042028 +-1.9407429 +1.0459061 +-0.7335022 +-2.6757967 +-3.8243871 +-0.4866166 +4.5055799 +2.1738186 +5.2226367 +1.1175402 +0.1694868 +1.6110569 +1.5725095 +0.4061997 +-33.9076729 +1.7825657 +-0.9478652 +-0.2254870 +-2.5331113 +-1.5986477 +-0.7351317 +1.6926836 +0.2474060 +7.1549025 +0.2287140 +2.4238081 +-0.8152148 +-3.6216011 +-1.5515748 +-3.4247084 +0.0141953 +4.7080359 +-3.1243248 +-0.9359649 +20.2892056 +-3.2255387 +-1.0940213 +-1.6126542 +4.9224367 +1.4159331 +-1.7279855 +-5.7698245 +-2.9484677 +0.4726068 +4.7841725 +3.3606071 +4.2640820 +-9.7213945 +-2.6642992 +-2.5480907 +1.1878855 +-1.4858427 +-1.0976125 +-0.3953157 +-2.2988811 +-2.7261992 +-1.9720644 +-2.2154682 +-0.8625906 +0.1534998 +-0.4000879 +-1.1040148 +-18.5985966 +0.8437032 +-12.9107332 +1.5180771 +2.4746668 +-0.9839466 +-15.0769892 +-5.3140383 +-0.8219157 +-6.9401560 +-0.0513733 +-0.8961420 +7.4033141 +-3.3764319 +5.6816463 +-3.5658398 +1.3273754 +-12.9637299 +5.6814699 +2.6009660 +20.8724976 +-2.6351836 +-6.9206161 +-4.2831144 +-3.7690711 +-1.1921345 +4.2079754 +11.5159311 +-6.8348851 +11.5781918 +-4.9534144 +2.3477128 +1.8187165 +-1.8137335 +-1.2243987 +-21.7122097 +-3.7608380 +-0.6460826 +-2.4673746 +-0.9832888 +-2.2551529 +1.8545001 +8.9373827 +-0.9455526 +-3.4172335 +-6.0149736 +1.8124057 +-4.9374471 +-2.7892537 +6.4979415 +0.3232604 +2.2599218 +4.6631436 +8.3391247 +27.7355194 +-20.1406288 +8.2628345 +-1.2724776 +-2.0346076 +9.5704441 +12.9590530 +-13.2051134 +-0.3402999 +-4.6071062 +-4.1286893 +4.8343377 +-5.5355997 +1.6030010 +-2.5051117 +-7.5774541 +-1.6068627 +-0.4767253 +7.0624518 +4.0807838 +12.7842722 +-0.9478663 +2.2195272 +5.7895632 +10.5125599 +0.1262994 +-13.7466764 +0.2607625 +0.8221363 +-2.5570579 +-5.2452674 +-1.6507028 +1.7518874 +6.5975466 +1.2961435 +11.3244820 +-1.1209871 +5.9711289 +-1.0452772 +17.9578094 +-2.5108545 +-7.7624588 +-10.4888153 +10.7301798 +-1.5797749 +-3.7089691 +47.1313705 +-4.0044951 +-1.1476455 +-6.9556456 +18.3715935 +10.0162449 +-1.6394596 +2.6778557 +-5.9909620 +0.7688593 +3.5252843 +2.4608591 +0.7255135 +-12.8789511 +-11.8907385 +-8.2025328 +13.2753267 +-7.2812824 +-2.4150929 +4.9694748 +-3.6980209 +-4.9418859 +11.3877697 +-8.0928364 +0.5515468 +1.6259242 +-6.2848988 +3.4773171 +10.3417645 +5.9430938 +-15.7856388 +-1.2746292 +2.1308901 +-7.4343090 +-21.1254616 +-4.1464214 +5.0956168 +-8.7833967 +2.9141939 +-1.1925695 +11.5773706 +-5.8632116 +6.8181081 +-5.7784872 +3.7074263 +-17.0848446 +6.9357142 +6.7237616 +-8.0198555 +-3.8833654 +-9.8102465 +-4.9299059 +-3.2318773 +2.7137706 +7.2100782 +20.2452335 +-10.2971897 +17.5276852 +-4.0906453 +7.2992778 +2.8317044 +-2.3104889 +-5.6923642 +-11.5422821 +2.7564008 +-1.3529841 +-0.9027936 +-2.1597819 +-3.0397701 +1.2163355 +13.8005600 +-0.6108411 +-5.1893101 +-8.1715670 +3.0806398 +1.8345946 +-2.9243975 +9.6334982 +0.2558816 +3.5814066 +5.0627055 +15.2364855 +49.6212540 +-32.5920258 +15.2695513 +-0.8158596 +-3.4456077 +15.4556580 +16.3945675 +-56.9816856 +-0.8932192 +-4.2217770 +-5.3959427 +4.4350638 +-6.2875586 +2.8844392 +-3.2429016 +-11.7666817 +-2.4129601 +-1.4483675 +11.9090347 +6.5344553 +20.0797386 +-0.6517736 +2.6190634 +8.1109543 +14.2361536 +-1.2480301 +-5.3076615 +2.7210605 +0.2603065 +-3.4987555 +-8.2763176 +-3.1199813 +1.0193522 +9.2642431 +2.9129863 +18.7718582 +-0.9186016 +8.6268988 +-1.0850285 +15.7260208 +-3.9383538 +-11.0593834 +-10.6272850 +8.7800961 +-2.1418438 +-3.7236257 +71.8098297 +-5.6462560 +-2.1060030 +-8.1895971 +15.9864340 +15.8549051 +-2.9062781 +9.1625652 +-9.0909758 +0.7434814 +8.6142168 +3.6222725 +8.0326385 +0.2182083 +-15.9041500 +-11.1681414 +8.6304760 +-8.4459381 +-0.7936436 +4.7514992 +-0.7503817 +-7.6304851 +8.3038092 +-14.5315886 +0.6423233 +2.2313426 +-8.3822155 +3.1379788 +-10.3835707 +10.6114864 +-12.6390038 +-2.9996202 +4.1760325 +-8.6998005 +-5.6109953 +0.2759884 +1.9111487 +-6.0952873 +5.4350939 +-1.2725166 +8.3967905 +-4.9226618 +1.3221017 +-4.0275636 +3.1350048 +-7.4069614 +0.7820410 +8.0375061 +-5.3170304 +-0.2656879 +-9.2772608 +-1.8657682 +3.3310595 +2.0496941 +5.7130165 +29.8386288 +-6.8792310 +12.4269447 +4.9890833 +21.3262959 +2.6915166 +-0.5686933 +-8.9787340 +25.0608788 +-16.9494019 +-2.5818696 +3.6803105 +-1.0650635 +-0.1310930 +0.5630622 +9.5558825 +2.4017279 +-4.9709678 +-5.2156768 +1.9596504 +8.7598600 +1.3953881 +5.1552844 +0.3685195 +2.7352898 +0.6803024 +16.4430828 +44.2417259 +-14.9069872 +16.9389343 +3.2134871 +-3.1007507 +10.6428099 +5.3699408 +-1.3937678 +-2.2353866 +-16.4706097 +-4.1860180 +0.2111597 +-2.4747169 +2.1093400 +-1.5930035 +-6.1837049 +0.3386787 +-2.7706037 +6.8708835 +4.6818318 +16.6120529 +0.2050436 +0.3893435 +3.7396402 +1.7121660 +-3.2472351 +23.4536228 +6.3334122 +-0.9235889 +-2.7103114 +-5.5280018 +-2.9332759 +-3.9344113 +5.6413016 +4.3843184 +17.0443096 +2.7778807 +5.8998661 +-0.2044346 +-5.0811067 +-4.0783691 +-6.0927124 +-0.5636789 +-7.0234632 +-4.0111089 +2.5151234 +47.4022331 +-4.3056355 +-1.6772227 +-0.3694927 +-4.0309482 +17.9301491 +-3.0391533 +1.5551275 +-6.1927643 +0.6987736 +9.9516792 +1.1099083 +13.4966965 +-0.9240816 +1.4818132 +-0.0842053 +-20.4770012 +-3.2977109 +-7.2589140 +1.4560601 +4.6162491 +-6.5462899 +-12.5739393 +-3.6104307 +0.2396142 +0.3156420 +-3.9698322 +-1.5775578 +20.6143932 +5.5158505 +-24.1391945 +-2.6012943 +8.3088741 +-4.6290083 +-1.8732284 +0.9001651 +10.1025486 +-0.2929163 +1.9352901 +-2.9984198 +2.5956078 +-2.7429390 +1.5887640 +-1.9088455 +1.9655404 +-3.6964777 +1.9628090 +0.5397721 +-28.5840111 +-0.4996994 +-3.4800105 +-0.2733633 +-0.6348267 +-3.2347639 +-0.0286679 +5.1540132 +-3.1373696 +5.7944045 +0.6104020 +2.4699361 +1.2927001 +-0.4923815 +-5.0979624 +-16.1232243 +-24.6202927 +-0.5751446 +-0.0391220 +-0.8627283 +-1.5291445 +-0.1324965 +3.6252377 +1.1718253 +-1.0849698 +-1.6701962 +0.6183007 +-1.3865397 +-1.0907331 +3.6314714 +0.0684223 +1.0430057 +-0.2383078 +6.8579888 +19.7904587 +-10.1181097 +-16.9672203 +1.2109267 +-1.0620683 +5.0278616 +4.4365797 +-1.2699949 +-0.9446784 +-3.4462240 +-4.1711106 +-1.0390716 +-1.2375386 +1.2374564 +-2.0659974 +-2.1807587 +-2.2089047 +-0.6041631 +2.3834202 +2.6876633 +5.1787763 +0.0371481 +0.3254789 +0.4022985 +2.0525930 +0.1968338 +-4.1183028 +2.2455602 +-0.2662291 +-0.1762005 +-7.3962407 +-1.5277369 +-0.9682363 +1.3454088 +0.6566546 +7.3966951 +0.3496688 +2.4114778 +-0.0638839 +-0.3076472 +-0.6950737 +-3.6900225 +-0.2207812 +-0.2748933 +-2.2804482 +-0.3709318 +23.1939526 +-1.6783450 +-0.4359727 +-0.7321223 +-1.4227513 +4.5667648 +-1.3856329 +4.2088480 +-1.8836871 +0.4481944 +1.7621046 +2.0192187 +7.6629686 +-1.5193526 +-2.7017949 +-2.9737482 +-4.1762643 +-1.2512527 +-1.9855602 +-0.6602684 +-1.9847348 +-2.8067081 +-2.4222922 +-3.5946209 +-1.1275063 +3.1805713 +-0.8503308 +-1.5333639 +-21.4656258 +-2.3765788 +-40.4920654 +-0.9886943 +2.9523218 +-0.7943478 +-3.6085773 +-4.0702419 +3.5876172 +-5.7423778 +3.5293660 +-1.9404045 +3.8332481 +-5.0712452 +2.7001271 +-3.8318610 +3.4586954 +-10.7325678 +2.7270527 +-0.1442594 +4.6442828 +-1.8986382 +-3.8267906 +-2.3352451 +0.7067235 +-0.2163201 +6.6145759 +12.1643791 +-6.4532537 +10.4698277 +-10.4524307 +-4.2303824 +0.2753431 +2.1420953 +-8.1427107 +-5.4814367 +-5.4398479 +-1.7900871 +-1.0020117 +-0.2594347 +-0.8060778 +0.4241962 +1.6012982 +-2.0215428 +-3.8673766 +-2.9004824 +-1.0568767 +-10.9229040 +-1.0832778 +5.8179693 +-0.2657568 +1.7645323 +-5.9290762 +12.5162678 +41.4826927 +-10.3449001 +13.0774088 +6.4160171 +-3.2389288 +9.1902208 +6.8434896 +-5.6308918 +-2.1611907 +-1.9392267 +-1.8550023 +-2.5078235 +-2.5543833 +1.1643447 +-2.3144178 +-5.7637296 +-2.1441441 +-2.1539371 +4.5461273 +3.8680139 +13.4648371 +-2.3307526 +0.8773156 +2.7946467 +3.3060303 +-4.7641792 +-10.1223888 +3.8271127 +-0.3708827 +-2.1146457 +-8.0041447 +-2.7885244 +-1.0414113 +2.7407866 +-2.2282696 +13.4134483 +-0.2592394 +7.3501549 +-1.9803386 +-0.9189345 +-3.1249032 +-7.2409463 +-1.9932194 +0.9670193 +-0.6767112 +-0.2151943 +43.3089714 +-3.1644506 +-0.3201601 +-2.0705402 +-4.5927105 +2.5522289 +-2.6732893 +4.6544452 +-3.5093460 +-0.0062311 +-1.9774824 +3.4128454 +11.7871151 +-13.9360447 +-4.0996885 +-2.4864619 +-7.3958468 +-1.5523039 +-13.2672968 +0.5488143 +-3.6393275 +-5.6074347 +4.2639899 +-0.9383058 +-1.3289319 +-1.2014928 +-6.9950457 +-1.9444176 +13.3352766 +-30.6392956 +-4.1106730 +-2.0352368 +0.7302964 +-3.2325692 +-5.5555758 +-11.0847416 +13.2133818 +-7.3869252 +5.6381941 +-2.5060215 +5.2697449 +-8.3407784 +3.4507942 +-5.5686955 +1.9431683 +-14.7951288 +3.7989528 +-2.9517949 +3.3201282 +0.9379412 +-11.8169174 +-2.6489065 +0.9435409 +4.5403256 +10.0495481 +22.1743374 +-9.4704332 +16.4110126 +-17.3139057 +-6.7878599 +1.5293615 +1.3337615 +-11.8908710 +-0.3291048 +-8.0943031 +-2.1285248 +0.0635512 +-3.3712540 +-1.7859023 +1.0082352 +3.5976684 +-1.8140843 +-6.3630166 +-4.3298907 +-3.6469228 +0.3368696 +-1.8717633 +9.3484278 +-0.3836910 +2.6207337 +-6.6986957 +15.4878311 +63.7827606 +-15.5218563 +18.9446011 +9.9596024 +-4.4583058 +14.3775787 +9.8138914 +-14.4549408 +-2.8664429 +-6.8788714 +-4.9616861 +-3.8812375 +-4.2598028 +2.2282679 +-2.8462572 +-9.5160170 +-1.5781378 +-3.3873181 +8.3607988 +6.5682859 +19.7494030 +-2.9114323 +1.5843465 +2.9278607 +5.5541725 +-5.3484368 +-6.6062365 +5.5749388 +-0.8972028 +-2.7861867 +-2.7312014 +-3.8611994 +-2.3649817 +3.9776621 +-5.3925128 +19.7978420 +-0.3678195 +9.3383036 +-2.3019938 +-3.1264882 +-5.1714883 +-11.0911341 +-1.6033531 +-0.5569352 +-1.6045351 +-0.1459378 +66.9898300 +-4.8642802 +-0.8560513 +-3.5144131 +-6.3439894 +13.4834490 +-3.7445078 +2.2824445 +-5.4091072 +0.3004996 +-1.5879283 +2.4132729 +17.9687881 +-0.1234260 +-6.3783360 +-5.7907991 +-16.3644733 +-2.7502787 +-9.9505672 +1.1374068 +-8.2439232 +-8.3896408 +4.3259864 +-8.0837879 +-1.8138769 +-1.1586378 +-8.4412909 +-2.4315639 +0.3968027 +-41.6803284 +-2.0422969 +-3.2400908 +2.7382364 +-3.5059147 +-8.3997450 +-12.5852499 +4.2447414 +-2.5698009 +-0.0265994 +-1.0596571 +-0.5089573 +-2.1605520 +2.2916195 +-3.6396327 +9.5772858 +-4.0756588 +-1.9653122 +-0.3587732 +-0.0311914 +-5.3402534 +3.3975191 +-0.5823929 +-5.2934318 +-6.7971759 +3.8321767 +-3.7629957 +-7.7067904 +13.3835983 +0.1767389 +9.5576315 +3.1931434 +-5.6725688 +-6.3021264 +-0.2401990 +2.8578320 +-0.7739515 +-5.3916149 +15.6139917 +-1.1696142 +-0.4066156 +5.4271655 +3.5914376 +-2.1574147 +-4.5509963 +-9.4704704 +-7.9732738 +-2.2854147 +5.8110299 +0.6849070 +-0.0216772 +-4.0129905 +9.4450588 +30.0058899 +3.3079023 +2.6353991 +0.4783892 +-6.3628616 +9.9004593 +5.4996166 +3.3754468 +-2.3884156 +4.5367084 +-7.7751250 +-6.9489622 +4.1273441 +2.7486880 +-3.0951149 +-1.2627559 +7.3206382 +-3.6045721 +7.0646620 +8.3081493 +13.9562798 +-4.8432636 +-0.2854652 +0.8924356 +11.1231833 +1.1297028 +-0.6951975 +2.9325380 +-0.6458603 +-9.8092480 +3.5340629 +-3.0238039 +-8.9998989 +5.7205691 +0.8973078 +10.7879601 +-0.1636412 +6.5967808 +-1.3663629 +-4.6942482 +-0.8675548 +-13.1922569 +0.1606613 +-4.1553650 +-1.9135563 +-0.5430227 +22.0810719 +-1.1677281 +-2.6798172 +0.5417444 +-2.0716190 +10.5237808 +-2.7188687 +-0.1569049 +0.5754927 +-0.8971524 +-6.4406385 +3.9516411 +7.7202539 +0.1604994 +-9.7762699 +-11.5665770 +-0.7542631 +-3.9423773 +13.2543888 +-0.5498251 +0.7910427 +-5.9286942 +0.6709729 +2.9512100 +-7.9596801 +0.7870285 +-2.9438617 +-1.3001710 +3.3737657 +5.4747872 +-6.7013021 +-6.2130456 +6.9200792 +-0.8059530 +-2.2430930 +-1.2577213 +11.5636930 +-0.5794346 +1.4703951 +-2.0758021 +2.0711348 +-2.4796979 +1.8196489 +-1.6792766 +2.0731990 +-2.9082890 +2.2438331 +0.3512698 +-14.8636274 +0.5816505 +-1.1010945 +-0.4043564 +-0.5308276 +-4.7543836 +-0.5556169 +3.1737869 +-2.8570993 +5.0009551 +1.9726323 +7.4873481 +1.4603742 +-0.3442898 +-3.9848807 +-21.6721458 +-23.3815422 +-0.7237315 +-0.0431070 +-1.5304499 +-1.0074203 +0.1483018 +3.7253981 +0.3756124 +-1.1410704 +-0.8599164 +-0.2317571 +-3.6833303 +-0.9598491 +3.6856937 +-0.2208006 +0.8450605 +-0.3532467 +6.8757043 +18.4747658 +-10.0545855 +-12.4754868 +1.8591832 +-1.3372400 +4.9319868 +3.5845642 +-0.0313474 +-1.3117386 +-2.7137160 +-2.3651779 +-1.3592454 +-1.1470594 +1.1807699 +-2.2336316 +-2.3840151 +-2.8595173 +-0.8696254 +1.2924733 +2.3449488 +5.4099603 +-0.4249428 +0.3384747 +0.2186010 +1.0471010 +0.0575379 +-1.6784992 +2.4029250 +-0.0492595 +-0.5952669 +-11.1918592 +-1.4650509 +-1.3261746 +0.9472587 +0.1192525 +7.5705495 +0.3489651 +2.3018508 +-0.0754922 +-0.5655792 +-0.5630406 +-3.5647833 +0.4921298 +-0.5268422 +-1.6728836 +-0.5634927 +22.9730892 +-1.6006371 +-0.1041385 +-0.4364868 +-1.7025868 +3.9694221 +-1.2943439 +6.2875476 +-0.5284426 +0.5811709 +2.3811653 +2.1318853 +7.7388616 +-8.3061056 +-2.2509546 +-1.6961998 +-1.6081696 +-0.6332359 +-2.5903518 +-0.4434982 +-3.3758967 +-2.6468480 +-1.4005699 +-1.8706387 +-0.9582453 +3.2908535 +-1.1415015 +-1.1744362 +-7.9291267 +4.8120413 +-38.0900497 +-0.6001484 +2.1949093 +-0.4160816 +-5.6846390 +-1.7479297 +3.9831667 +-5.1727457 +2.9069657 +-3.1973462 +2.8851814 +-4.6731672 +2.8170376 +-3.5175021 +2.7716627 +-13.2280855 +3.2935388 +-2.2373590 +17.9130421 +1.1062431 +-4.4021678 +-2.6978800 +0.2368075 +-2.3070195 +6.2190561 +9.7504196 +-5.9746580 +7.9833021 +2.0897415 +-4.5022354 +1.1463656 +0.1231916 +-6.7954788 +-24.9376030 +-13.4427032 +-2.4703722 +-0.4465587 +-0.7818366 +-0.9080602 +1.0481174 +3.8105042 +-0.9158306 +-2.7766435 +-3.2956436 +-1.4590929 +-16.5139561 +-1.3491745 +5.7400775 +-0.2051430 +2.0294819 +-7.6258726 +10.3870716 +36.8404388 +-16.0613651 +14.4138031 +5.9002323 +-1.5488875 +9.9028988 +6.9005499 +-13.4914522 +-2.2085500 +-2.9957199 +-1.8219749 +-1.6205620 +-3.1832318 +1.0089649 +-2.7795696 +-6.8120341 +-1.7327622 +-2.8462646 +5.0130830 +3.9884462 +12.8678036 +-1.6877617 +0.9736657 +1.0177873 +8.0339499 +-2.8162494 +-29.1759090 +2.7279088 +-0.0767428 +-1.5912013 +-11.5879936 +-2.5494273 +-4.1874423 +1.3258992 +-2.0687435 +13.6140270 +0.1532987 +4.7606530 +-2.1115215 +-4.2155704 +-1.5445294 +-7.0401320 +-0.1877420 +-0.6915261 +-3.7719545 +-1.3089827 +44.8042946 +-2.7243156 +-0.2526899 +-2.4742947 +-3.6712735 +5.1685247 +-2.3843036 +6.1418839 +-0.8863492 +0.4314127 +0.4637042 +1.6117262 +14.4088383 +-13.0854921 +-4.5120587 +-1.6971259 +-1.2513494 +-2.5682902 +-4.1092510 +1.0201334 +-8.9278336 +-5.1764059 +-6.6449494 +0.8319324 +-0.4160410 +2.9223645 +-5.0234232 +-1.6370437 +-14.5904293 +8.5142603 +-4.9986620 +-1.5083413 +0.9719008 +-3.5250194 +-11.5759916 +-2.0945816 +-5.3144760 +-7.2277336 +4.6830468 +-4.4748631 +4.8072200 +-6.8472257 +4.6930475 +-4.9936881 +5.2193394 +-16.3370361 +4.4006920 +-1.4822800 +-6.2319469 +3.1027770 +-1.0949304 +-3.9648974 +0.8680540 +-1.1909879 +6.6390896 +-8.7116880 +-9.2153778 +13.0952682 +3.8540766 +-13.0319805 +1.8371952 +0.5272172 +-10.2551870 +-1.7627722 +-20.7873001 +-3.4746022 +0.9094021 +-2.7227762 +-1.1772726 +1.2852006 +4.6565924 +-3.0713792 +-3.8689752 +-3.7213147 +-4.1600938 +-2.0241888 +-1.4638542 +9.0632963 +-0.7675446 +3.0004370 +-10.0249052 +15.3788605 +61.4850006 +-22.3419743 +18.2891617 +11.4297915 +-3.3366346 +15.7347946 +10.1103516 +-24.2754898 +-3.8364422 +-2.2498424 +-2.9950373 +-3.7108326 +-4.4277701 +1.9390937 +-2.9644678 +-9.0939083 +-1.9664795 +-3.8367059 +5.6292949 +6.4116063 +19.1910381 +-2.5752764 +1.6648229 +1.9173844 +10.8469772 +-3.7302325 +31.4460411 +4.9889698 +-0.3079365 +-3.1574714 +-15.7809505 +-3.6217675 +-5.5356092 +3.1040711 +-3.2108316 +21.4060383 +-0.0531033 +6.4628325 +-3.1912546 +-6.2117329 +-2.1657884 +-10.6878710 +0.2467832 +-1.8090496 +-3.6952090 +-1.3440270 +68.6443100 +-4.3610506 +-0.6517488 +-2.9632752 +-5.1588178 +12.7193508 +-3.3388264 +8.6426973 +-1.9264936 +0.5339400 +1.5446826 +1.9701277 +21.0912209 +-0.6218358 +-6.4591012 +-4.9220037 +-14.7281952 +-3.0881565 +-3.6078916 +1.3442566 +-3.1408272 +-7.9094906 +-7.9387689 +-1.6796851 +-1.7791268 +4.0277143 +-6.8196959 +-2.5369809 +-1.2566520 +10.0006914 +-11.2003975 +-2.6739478 +-0.2047223 +-4.4665337 +-8.6823950 +-1.6995100 +1.1054507 +-2.8155174 +-1.0495749 +-3.1787686 +-1.2263244 +0.6804761 +2.8468971 +-3.5373867 +-11.8493338 +-8.9423313 +-1.4358951 +-10.0714674 +-1.1527412 +-28.9482136 +0.5419994 +0.6248333 +2.6851969 +3.4438798 +4.9551182 +-2.8334777 +-7.2044220 +10.8056698 +-4.5003171 +-7.7477589 +4.3998446 +0.6096453 +-5.5327935 +-0.1782259 +-3.0821366 +-0.9112041 +1.7550217 +-4.6093640 +-1.0407276 +-3.8486001 +6.5235987 +0.7803876 +-4.9696002 +-0.8768778 +11.9106779 +4.8851819 +1.3911324 +5.1627312 +-0.3667259 +2.7736034 +6.8467393 +5.6028805 +29.4539032 +6.8193188 +13.4360085 +0.6139865 +-4.4020805 +8.8910570 +5.0016603 +-4.7482481 +-0.4034986 +-0.9663982 +9.2084455 +5.2114911 +0.0863046 +0.8328698 +-1.9725657 +-6.7461319 +1.7608683 +-2.5249453 +0.8691894 +4.5270281 +13.9512644 +1.1673846 +0.8569494 +6.7683315 +4.2279277 +-0.4898622 +7.2567530 +0.8718684 +-1.3299006 +-3.3478301 +8.4361916 +-2.6033821 +-7.2975502 +8.8285913 +-18.3112774 +21.2875271 +4.8743401 +0.2818401 +-0.2668317 +-3.8924699 +-2.7460315 +-8.6956835 +4.3073587 +-4.9520006 +0.5632616 +1.4164195 +40.5748100 +-2.7040377 +-0.6507218 +-2.5653198 +-2.2748039 +3.6255066 +-2.1248519 +-1.0249045 +-1.0204856 +-0.4467867 +-24.0574188 +0.8425279 +3.5501676 +-0.2122859 +-2.2970612 +0.9404002 +-0.2899675 +0.0653675 +-10.1155939 +-0.1042786 +8.8566523 +-5.3255239 +-8.4185495 +-2.0444362 +2.2366846 +2.6057460 +-4.8723712 +-2.2750304 +9.9048033 +-1.5625788 +7.9970598 +-7.0444446 +4.4864168 +0.1748483 +-1.6058937 +1.6936281 +12.3761864 +-0.8382173 +0.8592932 +-2.3321714 +1.6164929 +-2.7511945 +1.6819978 +-1.6448430 +1.7548203 +-3.7095604 +1.8962762 +-0.1492271 +-13.2909870 +0.5610184 +-1.6615911 +-0.7175351 +-0.4768321 +-8.6964436 +0.0665633 +1.6011571 +-2.6593096 +4.5862999 +3.1126714 +9.4725227 +1.1261860 +-0.1309015 +-3.6348360 +-3.7056978 +-21.1420021 +-0.6159990 +-0.4450830 +-1.9702579 +-1.1018991 +-0.4049338 +2.4268014 +0.0407212 +-1.3833947 +-0.5465769 +-1.0404629 +-5.6647954 +-1.3323439 +3.2081258 +-0.4745054 +0.8775218 +-0.3235532 +6.2310548 +16.6388378 +-12.7866364 +-12.2160358 +1.5352242 +-1.8090916 +5.0042071 +3.3781407 +2.9875400 +-1.0242909 +-3.8643329 +-2.4035900 +-2.9594870 +-1.4021523 +0.9748269 +-1.7518269 +-2.4236088 +-3.1569850 +-0.9246375 +1.2298338 +2.2120690 +4.8281593 +-1.0735035 +0.3109165 +-0.1221452 +0.0297848 +0.2461703 +8.9067106 +2.0409045 +0.0646032 +-0.4319312 +-13.6094780 +-1.6185536 +-1.7598544 +0.3071347 +-0.7219388 +7.0745921 +-0.0563657 +1.6475179 +-0.2486299 +-0.8226727 +-0.6799692 +-3.8260696 +0.6772989 +-0.6957228 +-1.0342548 +-0.8559654 +21.9812965 +-1.2932731 +-0.3902425 +-0.6802960 +-1.3131050 +3.4036837 +-1.3301351 +2.2396138 +0.5356755 +0.4419305 +2.3209326 +1.9688040 +7.7285829 +-18.6503277 +-2.0493674 +-0.0559833 +-0.2596877 +-0.3538848 +-1.0248066 +-0.6148997 +-6.2270584 +-2.3145714 +0.2939548 +0.8597356 +-0.8013535 +2.8199096 +-1.3991960 +-1.3591698 +-0.1772281 +1.3856412 +-21.6475487 +-0.9583378 +1.5848018 +-0.3404426 +-4.5863218 +1.4565588 +12.2738562 +-4.8754082 +0.9378830 +-1.8156849 +2.0418499 +-3.4456573 +2.3193281 +-3.4590919 +1.0553185 +-10.9736900 +2.9032488 +-2.4224019 +-10.0231466 +2.1409483 +2.5907760 +-2.9344480 +-0.6422184 +-10.3927879 +3.0860565 +18.2622738 +-5.9222674 +4.9492979 +-1.1173559 +-10.3279905 +0.6474305 +-0.0204048 +-5.9922061 +-10.5051451 +-43.4379616 +-1.7265999 +-1.6388251 +-3.2534280 +-0.7344235 +-0.1554460 +2.6520634 +-1.0069638 +-2.8721373 +-2.6493831 +-1.0038936 +-38.9159279 +-1.1818689 +4.8393717 +0.1924756 +1.8207499 +-2.9162695 +9.2782307 +25.1191959 +-11.8845968 +7.5370798 +5.1331863 +-3.3612971 +9.5847673 +6.8002777 +-3.1039677 +-2.0515902 +-4.4205418 +0.0501730 +-3.5549524 +-3.9383447 +1.2670827 +-3.2061324 +-7.0350966 +-2.4261007 +-3.0273440 +6.2507257 +3.7146225 +12.4502182 +-2.5793834 +0.8202578 +0.7828624 +6.3868690 +-1.7987039 +-10.4903584 +2.5031171 +0.1570084 +-2.4979055 +-9.6755915 +-2.8408267 +-4.9226203 +1.0448933 +-2.9430368 +14.3541632 +-0.3267267 +4.6424484 +-2.2250414 +-2.5732043 +-1.5212680 +-7.4278507 +1.2918215 +-1.5693202 +-2.8312507 +-0.8151051 +43.1658974 +-1.8702009 +-0.5413436 +-2.6207542 +-2.1607831 +0.8995883 +-2.6076310 +10.3513832 +1.0373526 +0.0730915 +0.4136120 +0.9213024 +14.5293684 +-4.5788717 +-3.4152231 +-2.0085731 +6.2881837 +-1.8425431 +-3.1221614 +0.1954213 +-11.2468605 +-4.6130958 +-0.8730503 +2.5223742 +-0.5453836 +2.6274769 +-4.6281166 +-1.9353303 +-40.8280411 +3.5998313 +1.4552191 +-1.2625110 +1.2843539 +-2.7545490 +-5.4729037 +0.6972989 +3.2794182 +-5.8104920 +0.9366918 +-1.7998251 +4.6415262 +-6.4217353 +4.3759856 +-5.0664978 +1.4630867 +-15.0721445 +3.9131284 +-21.7560787 +-3.7872989 +-14.6765194 +-10.3546238 +-3.9893329 +0.5896496 +-10.8002529 +3.6076212 +-15.6336908 +-9.2768450 +7.5379925 +-22.7664604 +-2.9689932 +2.0898359 +0.2196325 +-8.9630661 +0.0442297 +-11.9221344 +-3.3125496 +0.6660530 +2.7297037 +-1.4358032 +-1.7733709 +2.1464946 +-2.3538423 +-4.8915563 +-3.1555853 +-4.0528302 +-3.6600420 +-1.7108008 +6.6202922 +-0.1026397 +2.2252915 +-2.9253719 +8.6127682 +29.5577049 +-24.6521683 +11.6879940 +8.1487455 +-8.9663153 +13.8450022 +9.9189510 +-11.9480715 +-2.4427109 +-9.2248974 +-1.5424998 +-0.6053984 +-6.7024527 +2.3235090 +-3.6292534 +-9.1574583 +-2.4665823 +-4.4608054 +5.6666260 +6.6047044 +17.9187298 +-3.2786593 +0.5604337 +1.2331339 +0.2844666 +-2.7967274 +-3.3526294 +3.3211749 +0.3383613 +-2.4857292 +-11.2630501 +-4.3926840 +-6.6751223 +1.8907068 +-7.6993742 +21.4936180 +-0.4032226 +6.3867526 +-2.7051773 +-4.4270930 +-2.6121368 +-11.0096102 +1.4266934 +-3.2360106 +-1.6830052 +-0.9451438 +62.8685188 +-2.9003797 +-2.0525210 +-4.3198123 +-2.8702800 +1.1220977 +-4.2750177 +13.1525087 +1.2809916 +0.9555051 +3.6674356 +0.3655815 +24.9599915 +-0.1797107 +-4.4099507 +-10.8465109 +-11.5885811 +-2.0935886 +-5.1474228 +1.2897604 +17.5861969 +-6.5570993 +-3.6394658 +2.3524818 +-0.8783016 +3.9012165 +-6.1376233 +-3.2471294 +-18.6497536 +4.0158181 +2.9387348 +-2.5368812 +2.2135663 +-3.9537735 +-11.0978165 +-0.0922669 +1.6193502 +-4.6876383 +-0.5041220 +2.7891762 +9.6778202 +-7.7772727 +4.2060800 +-3.4188993 +1.2560472 +-0.5239057 +-2.3907518 +-1.8805296 +-0.0578071 +1.8041149 +-4.6786995 +-0.0013017 +1.5853720 +0.5868871 +2.5814312 +-0.5152012 +-5.3863173 +-2.5742579 +-2.4426968 +4.5595617 +4.3361683 +1.2289734 +9.4588623 +-0.1115753 +-0.2385073 +-1.3950200 +-5.7382398 +4.7581754 +-0.7885391 +5.2616477 +-5.7685671 +-4.9899278 +-4.6214128 +1.2360548 +4.1199784 +-0.5049196 +-0.2359597 +6.8714447 +-0.7677870 +1.7644657 +-1.2598721 +4.2801185 +7.3592911 +-0.8655816 +17.3472691 +-2.4789393 +6.0046296 +10.5846186 +3.1636226 +0.1725369 +1.2949812 +0.0879180 +-2.5420525 +-1.0677785 +-1.6759099 +2.4906945 +0.1387969 +-7.3366737 +-1.0650831 +-1.8249962 +-2.4960966 +7.3163548 +7.8681192 +-0.2257364 +0.5373781 +4.7202978 +-3.6270599 +-7.9886346 +-0.3450420 +0.3220722 +1.2411828 +-4.5675616 +-0.3987589 +-2.1468508 +-7.0816808 +6.3180571 +-2.7227957 +23.2556019 +6.0196848 +2.6862876 +0.4802055 +-7.7141666 +-1.8777658 +-10.3228130 +6.7137499 +-1.0883136 +-14.2993832 +-2.3269367 +39.9773483 +-3.6480341 +-5.7482219 +1.6892990 +-2.7532070 +-4.0404181 +-3.5090799 +1.3113165 +2.2464952 +1.8449405 +3.4277792 +6.8307428 +-3.1920962 +-0.0231539 +-8.3901997 +-0.2688716 +-1.0643628 +-1.3212967 +-1.4494185 +-8.9531221 +-0.7447098 +-4.3339081 +11.0436268 +4.5584321 +-0.1231885 +-5.0736570 +-9.0008554 +-4.7412615 +-3.1355317 +1.2266066 +0.5954603 +-5.7004247 +4.9680529 +-2.6132629 +-0.9758810 +4.6552553 +12.8958368 +-1.0690033 +-0.5406951 +-2.0932767 +1.1352433 +-3.2247572 +1.6432233 +-1.8130831 +2.3915558 +-4.0220413 +1.6621509 +-0.5299944 +-14.9250612 +1.2637614 +-3.5472291 +-0.9063167 +-0.8933741 +-9.7928171 +0.1944378 +0.9175044 +-2.6363218 +3.8176978 +2.8718560 +9.7677183 +1.0515355 +-0.1380351 +-3.0017278 +-4.5477190 +-19.7864914 +-0.8021103 +-0.9350104 +-0.4306751 +-1.1748977 +-0.4568607 +1.9298887 +-0.7185140 +-1.0161968 +-0.2412942 +-1.1708493 +-9.3972750 +-1.5899140 +3.1878304 +-0.4829414 +0.8414665 +-0.4353344 +6.3260193 +16.2721786 +-15.2744989 +-9.5350981 +1.7967347 +-2.0475929 +5.3032651 +3.2483234 +0.5705590 +-1.2541170 +-4.9244742 +-4.0758348 +-2.2488344 +-0.8993250 +1.0644033 +-1.7326924 +-2.5096219 +-3.6469479 +-1.0728639 +1.0865535 +2.3746877 +4.3153658 +-1.4667747 +0.4449013 +-1.4290731 +-1.0931994 +-0.2088010 +8.7922983 +2.0515780 +-0.1032861 +-0.4232519 +-16.5132332 +-1.3695832 +-1.7356207 +-1.0664812 +-1.0449524 +6.9501505 +0.0057675 +1.2430397 +-0.5205439 +-1.1855987 +-0.3455490 +-3.9484065 +0.9881878 +-0.4293580 +-1.3477163 +-1.1426837 +21.4823399 +-1.0255700 +-0.2836460 +-0.4366242 +-1.0887053 +1.6805044 +-1.2054969 +2.9656723 +1.7856075 +0.5006767 +2.3525641 +1.5096713 +7.8035417 +-23.4423981 +-1.1452284 +0.3755720 +0.4795979 +0.2069109 +0.2823989 +-0.7634583 +-4.5869951 +-2.2536583 +1.8766859 +-2.4103308 +-0.7282422 +2.1338274 +-1.1591308 +-1.3334695 +0.6448964 +0.5002127 +-18.7901859 +-0.8236106 +0.6101455 +-0.1702685 +-2.1300373 +9.1080885 +20.0047913 +-4.9623847 +-1.3997742 +-1.8363538 +2.1678894 +-2.6858225 +2.9244449 +-3.2536657 +0.3021661 +-10.9897327 +2.6011682 +-2.1811028 +0.7653011 +-5.3528490 +-10.1846857 +-2.5131035 +-0.4674382 +-8.2184315 +1.8428999 +18.6936302 +-5.2861071 +3.7885208 +-0.2677863 +-1.8095250 +1.3734510 +0.0178380 +-5.8541293 +-3.3132796 +-17.1525078 +-1.9018282 +-1.1229757 +-5.2609797 +-1.5531089 +-1.9151876 +1.5083798 +-0.8040797 +-3.9838820 +-2.1674707 +-2.4801364 +-17.4358654 +-1.8867511 +4.7626667 +-0.4768795 +1.6279414 +-1.9074136 +6.4686518 +12.8169155 +-7.1073618 +5.3066339 +5.2016883 +-4.7055893 +8.8123503 +6.5899987 +-5.2258186 +-3.0835993 +-2.5320361 +-6.7757154 +-6.3190742 +-4.8145094 +1.5096853 +-3.5236030 +-6.5786152 +-3.0092378 +-2.5116682 +2.7127082 +3.7717447 +10.6975946 +-3.6358607 +0.8017768 +-0.3158591 +1.6444048 +-1.7083843 +-7.0696716 +3.3748784 +-0.0373978 +-1.0972540 +-9.9590178 +-2.8475678 +-5.1172237 +-0.1718343 +-5.0883451 +13.5840902 +-1.3573688 +3.0263591 +-2.1784863 +-4.5229807 +-2.5561981 +-7.4711366 +1.3807583 +-2.4013345 +-2.1446743 +-0.4849261 +39.8567543 +-1.5050725 +-0.6044016 +-1.5621619 +-2.5898092 +-0.7517908 +-2.4696686 +18.2483215 +2.9543376 +0.7018338 +2.8084831 +0.3341562 +13.7128315 +-6.7688184 +-2.8316815 +-2.8701727 +7.7291369 +-0.4908376 +-0.0260623 +0.7359329 +-2.3012667 +-4.8059859 +-3.6337218 +-9.5220213 +-0.3877899 +2.5419562 +-4.7220054 +-2.1273582 +-3.7769876 +3.1693702 +-3.3882630 +-1.4050664 +2.4904096 +-1.9651111 +-6.0677099 +16.2354774 +12.7636309 +-9.5390625 +-5.1111526 +-1.2869503 +3.0624073 +-4.8510294 +5.1302238 +-7.3828712 +3.5855074 +-11.2198935 +2.6074448 +-14.2053690 +0.6783043 +-12.5276012 +10.4228268 +-1.8226964 +1.9584954 +-13.7493916 +0.8388899 +-6.3885918 +-4.9854941 +8.1669502 +-1.8112069 +11.5531836 +-0.7813848 +-0.3576019 +-9.2871418 +-0.0284578 +-6.7856894 +-2.0614283 +-0.0729198 +2.5354917 +-2.5361741 +-0.9353718 +4.3949571 +0.7048684 +-5.9057298 +-2.1901505 +-3.2579348 +-8.1644621 +-3.3375857 +6.8011684 +-0.3730306 +-2.6831334 +-10.5555468 +9.7888584 +29.9151478 +-18.9239044 +7.3082552 +5.6869230 +-6.1398740 +14.9264736 +8.2734060 +-3.5033028 +-2.3230174 +-4.9631019 +-5.2487359 +-6.8612370 +-4.5511718 +3.0789487 +-4.8433390 +-8.8333893 +-20.8069534 +-2.5433288 +5.2204447 +6.2643046 +14.4129496 +-5.9765062 +0.6859425 +-0.6663586 +-6.7392349 +-4.8270402 +-1.9667811 +4.9179106 +1.1254250 +0.5219831 +-4.5202603 +-5.3665695 +-5.5831766 +0.5243376 +-5.1580305 +18.8149300 +-1.8288230 +5.6798401 +-2.8272085 +-5.9875550 +-4.0533590 +-11.4424639 +1.1770623 +-10.5294800 +-4.9018583 +-1.4307680 +66.4186935 +-2.8178706 +-0.9801255 +-2.5051391 +-2.2309046 +3.2555907 +-3.9696486 +34.3343811 +1.4569225 +-0.2992043 +7.4715533 +1.5990802 +22.6859360 +-0.1568012 +-8.1314678 +-1.1364146 +1.4006041 +-0.5071462 +-4.4100451 +2.2957687 +-9.0098820 +-6.6722660 +-4.9295688 +-21.9732246 +0.5542525 +3.1733942 +-8.0278492 +-2.2951868 +10.3918982 +4.2817335 +-2.3794174 +-3.4962525 +2.2959764 +-3.2786658 +-2.0401111 +-2.0647137 +0.2981765 +1.8534513 +1.7414985 +0.0990498 +2.9663780 +-5.4114289 +-3.5131328 +-3.3384094 +1.2977923 +-1.2993648 +-0.8312019 +-0.2145959 +-0.0196872 +-1.0511990 +-0.2099988 +0.8812476 +5.1310320 +-0.1271335 +-1.1223322 +-0.6488954 +-2.4877810 +7.4114923 +0.5085942 +-2.9072003 +-0.5093547 +4.7966313 +-0.0225355 +0.0333343 +-0.2067268 +2.8803151 +2.4470077 +-1.1888262 +-2.3095205 +0.5684880 +-10.4743195 +0.9678172 +1.1509700 +-3.8337226 +3.5086682 +0.0199213 +0.0712780 +-1.2487669 +-0.4237497 +-0.6007547 +-1.7039562 +-0.7826466 +9.7451458 +0.5823720 +-0.2076485 +0.2528414 +-4.8985038 +2.3356442 +4.0221844 +-0.1915072 +-0.8758826 +-0.1089304 +0.2131916 +0.5671338 +-4.6515269 +1.1066254 +3.7247221 +-4.2313619 +0.2806488 +-5.6638079 +3.5337102 +-4.4880352 +6.8418651 +-1.6206137 +-1.3621588 +-0.0148860 +-0.9569107 +-3.6825325 +0.0835542 +0.4165430 +-0.3886997 +-3.3079245 +0.2736957 +1.6753396 +-2.3918126 +4.1935930 +0.5768569 +1.2352939 +0.1261341 +4.0618629 +-4.0657511 +-2.5758350 +-3.1762040 +-2.7348285 +0.8903422 +-3.6549659 +-4.1390214 +-3.2553029 +-1.0532401 +-3.2484820 +11.7084360 +-2.2168524 +2.2632658 +1.0889618 +4.3820281 +-0.1896542 +4.7776775 +-0.4793993 +2.0802271 +-1.0403877 +-1.7009659 +-0.0495694 +1.1991770 +-0.5166666 +-1.5917463 +-1.5208783 +0.5478855 +0.0920683 +-0.1035116 +0.8586575 +0.0214878 +0.3911293 +-4.4301677 +-3.0822496 +-5.5067244 +-6.4290423 +0.5396926 +0.0408885 +-0.1148292 +-7.9606318 +-0.8555329 +-4.0408611 +0.0029511 +3.2065427 +16.3739090 +-0.7906089 +-1.7596612 +-2.8416536 +0.9442605 +-3.7894211 +1.9041712 +-1.5722479 +1.5079702 +-4.3542676 +1.6071392 +-2.1430814 +-13.6560965 +1.7029060 +-3.4447966 +-0.5855967 +-1.0276333 +-8.6657619 +0.6348887 +-1.5731182 +-2.5279586 +3.4591970 +2.3829756 +12.5216732 +0.4666951 +0.0967064 +-1.8205838 +-1.9850892 +-19.6967201 +-0.2589456 +-2.1394539 +-0.7763870 +-1.1669978 +-0.9782799 +1.4639388 +-0.6819056 +-0.9920223 +0.3436573 +-2.3776298 +-11.4898214 +-1.9388272 +2.8755755 +-0.6136202 +0.8146287 +-0.3424459 +5.9966106 +16.3942852 +-15.0491724 +-9.9544897 +3.1201835 +-2.7516625 +4.7000108 +3.0648711 +2.4710617 +-1.5390148 +-5.5026174 +-3.9108720 +-4.6145930 +-1.2535714 +1.0778928 +-2.1778777 +-2.3931723 +-2.4156444 +-0.9599586 +0.6884981 +2.1968658 +3.6796279 +-1.8414263 +0.3010149 +-3.4236445 +-2.0935528 +0.0688436 +-24.5893497 +2.1819046 +-0.2343968 +-0.7932150 +-20.3271027 +-1.7080142 +-1.6849065 +-2.6376088 +-1.9574102 +7.2765741 +-0.1369003 +1.3116450 +-0.8030617 +-0.8883353 +-0.1246173 +-4.0826745 +1.3881530 +-0.3845628 +-1.0548939 +-1.3216717 +21.5978413 +-1.0841070 +-0.4734523 +0.2611251 +-0.5860462 +1.2227700 +-1.2320766 +-2.7445951 +2.7493646 +0.2898065 +3.4080708 +1.4446770 +7.8006401 +-15.9813042 +-0.5264232 +0.5184255 +0.7510728 +0.4053634 +-0.6012567 +-0.2597283 +-5.2536478 +-1.8553988 +1.6825373 +-5.0749969 +-0.7973396 +1.5536753 +-0.9194695 +-1.3085212 +0.8475276 +-1.5961317 +-15.9554424 +-0.3281944 +0.3908487 +0.5566669 +0.3135239 +5.3752804 +24.3261948 +-4.5995841 +-3.9393394 +-3.8197668 +1.9622214 +-2.2896817 +3.3933675 +-2.9443226 +2.1445553 +-15.1196547 +2.5824959 +-3.4735873 +-7.3722796 +4.8931646 +-0.6587478 +-2.4516675 +-0.8820894 +-11.7377129 +1.5496222 +-17.9361725 +-4.7419829 +0.9974687 +3.1681569 +1.3349949 +1.2189497 +0.3133021 +-4.4859409 +-17.6761932 +-1.6941879 +-1.4615670 +-2.0624442 +0.4904394 +-0.9787817 +-2.2391114 +1.8561808 +-1.7739060 +-2.5232184 +-1.0876937 +-4.1432247 +-32.1212082 +-1.8414652 +4.4178462 +-0.5868095 +0.9109484 +-3.1816740 +5.2439499 +1.4609571 +-13.5934086 +-0.7321079 +6.7609992 +-5.2893968 +8.0008907 +6.0537548 +-9.4020882 +-2.1915593 +-0.0293572 +0.4760345 +-3.6114857 +-3.4484389 +1.7699169 +-4.7510023 +-6.3584900 +-1.3742837 +-2.3325782 +2.0097413 +3.2244349 +9.8427324 +-4.5356874 +0.3350607 +-1.6315635 +-2.4639883 +-1.0914245 +-3.7364740 +3.6488924 +-0.7152838 +-2.7692745 +-12.8604803 +-3.5172200 +-5.4052401 +-1.4835538 +-6.4084153 +14.8219929 +-2.5226619 +2.9037004 +-2.6850543 +-4.3776817 +-1.0924776 +-7.8522234 +2.4268644 +0.5417745 +-0.5984008 +-1.5464907 +42.2252579 +-1.2136085 +-0.2779061 +-0.6663002 +-1.7953389 +-7.1487918 +-2.8223968 +21.9290504 +5.5960064 +0.8240247 +4.8304229 +1.6487552 +13.4975672 +12.2662325 +-1.3214417 +-2.9624493 +2.9678946 +-0.2222427 +-1.5441790 +-0.2401816 +-9.6595106 +-3.7715421 +1.9928703 +-11.1182137 +-0.8028702 +1.5422182 +-5.8496904 +-2.4657276 +9.6166830 +-0.8158243 +-4.1758652 +-0.6403676 +0.0016875 +-0.0454961 +-0.4991931 +1.0595424 +2.4542496 +-5.7222581 +-6.3163662 +-0.6267886 +2.8597081 +-4.8575344 +4.9752126 +-4.4137402 +3.7545035 +-18.0642052 +4.1584873 +-7.4938459 +-1.7653680 +0.7454734 +-1.7556373 +-5.0522795 +-0.5265439 +-3.9162698 +8.6244516 +-7.0564747 +-6.6768060 +3.1446698 +-9.9790506 +9.1265497 +1.6882819 +0.4642848 +-5.3915386 +0.2743520 +-1.9877439 +-1.9713879 +-2.1771290 +1.4350489 +-0.7597349 +-2.5020115 +1.5306695 +-4.7251120 +-5.3429909 +-1.3511286 +-3.8814800 +-13.6239653 +-2.2925088 +4.7067513 +-0.9740612 +2.2309036 +-4.9038010 +6.3953414 +21.0092220 +-16.0251884 +-1.7977228 +14.1259918 +-5.8758292 +13.2864180 +9.2477818 +-1.8427495 +-1.7350767 +6.0638657 +-0.0075660 +-9.9301949 +-2.7301166 +3.2423825 +-6.9421606 +-7.6087327 +1.1671107 +-4.2671204 +4.0711389 +6.1188154 +14.9530935 +-4.4473634 +1.7740277 +3.5493126 +-14.2524986 +-0.9818944 +0.7905805 +4.0733719 +-1.2436690 +-3.3872254 +-11.0962582 +-3.8961678 +-7.3949580 +2.3236725 +-7.8416862 +25.5954819 +-4.7359319 +4.7796483 +-3.2894208 +-4.8887825 +-2.9091020 +-12.1462345 +3.4254417 +-1.2595786 +-1.3165464 +-2.9955246 +58.1915436 +-2.3716290 +-0.0286845 +-0.5998337 +-0.5464191 +-4.5578580 +-2.7298572 +2.5553179 +8.1217146 +0.6390640 +7.1174083 +0.1194568 +21.0995941 +0.2358460 +-3.6021109 +0.5275960 +-2.5844119 +-0.2779698 +-2.8958168 +-2.7483642 +-0.7662073 +-5.1494026 +-0.3468162 +-12.0756512 +-0.6997651 +1.8075931 +-6.0929751 +-5.4895539 +-3.4361036 +-2.5592015 +-7.1591225 +-0.3329795 +-7.6896286 +-0.1956377 +-2.6922970 +2.8527071 +-0.3232829 +-11.4101810 +-2.3769705 +-4.0900369 +-4.5751181 +5.1656065 +-0.4496041 +-2.3991690 +-8.4310741 +0.9215626 +-6.0882645 +0.2013988 +-0.4704136 +0.6667600 +1.8100047 +1.2764555 +-2.3640399 +1.5727996 +-4.2016935 +-0.8915820 +-6.9386506 +7.0409513 +3.3858016 +-5.4169264 +-7.0986900 +-2.9548812 +-23.3771305 +-0.0377095 +-0.4338192 +-5.2930083 +6.8493705 +-8.0969744 +-11.7502775 +5.3197360 +-2.5872612 +3.6865373 +-3.0429049 +-17.2268410 +6.9885964 +0.1029680 +-1.8327305 +5.6739769 +3.1724088 +-8.3538952 +6.0480680 +2.9062316 +-0.7788574 +0.1280289 +3.1122007 +-7.2551394 +-3.2344365 +8.9751186 +7.4690762 +0.1722181 +-0.7878607 +-0.2005730 +-0.7333158 +-11.5108185 +6.3984880 +-1.4753960 +5.7756519 +-12.8395433 +4.1566405 +-3.0399044 +1.6096017 +6.5227742 +3.1096280 +-4.1403542 +-2.4379838 +-3.4799204 +-0.0086805 +-5.0006762 +0.1779648 +-4.5038328 +9.2835245 +-8.3593788 +0.3822180 +-4.4409113 +1.5206544 +4.3360572 +-14.7864561 +17.4948654 +5.1146693 +2.2209091 +-1.0959082 +-2.9424515 +-1.3361956 +-9.8443995 +9.3530645 +0.7045387 +-2.1411595 +7.6295314 +28.9833183 +-0.7971838 +2.7420447 +-0.1693286 +3.9674621 +-5.1157055 +-4.3662033 +-0.0070185 +-0.3780060 +-3.6975303 +-5.9908690 +6.4684849 +7.9942608 +-0.0834457 +-11.6760426 +0.3285784 +0.9097934 +-6.9014068 +-2.7878146 +-12.6226473 +0.1392659 +-5.7745495 +-2.6143286 +-1.8814791 +1.9254336 +4.2471771 +8.7369633 +0.0342099 +3.1136866 +-13.8333969 +-0.0441653 +-4.1717849 +0.9613959 +-9.2430201 +2.1046643 +3.6974597 +19.2676296 +-0.3359807 +-2.9429953 +-2.8318486 +0.5560544 +-3.8419807 +1.9021969 +-1.4011406 +2.3165245 +-4.4899359 +1.4008946 +-2.4299133 +-12.8432531 +2.9944410 +-3.9577296 +-0.5799789 +-0.7424799 +-9.8116217 +-0.2225209 +-2.4301467 +-2.1246326 +2.7373540 +2.8827341 +13.2016001 +0.1952098 +0.0942525 +-0.1612631 +-11.8578615 +-19.6041527 +-0.4716211 +-1.8961118 +-0.9302334 +-1.0676289 +-0.8807458 +0.5886190 +-0.7702217 +-0.4519452 +0.8260226 +-2.0696566 +-13.9515219 +-2.0335052 +2.1710572 +-0.8315184 +1.0077602 +-1.0370092 +5.9497848 +17.2151546 +-16.8101006 +-7.2034154 +4.9295306 +-2.0113764 +4.8365111 +3.0688057 +3.4075530 +-1.9218237 +-5.7436008 +-4.6238766 +-3.6700644 +-0.8588390 +1.0256307 +-2.5289681 +-1.8803738 +-2.4081626 +-1.0854431 +0.2319894 +2.1582048 +3.1098537 +-2.4671466 +0.4230006 +-4.9631324 +-2.0706513 +-0.0863462 +15.6905012 +2.4815371 +-0.7511937 +-0.4570530 +-20.7761822 +-1.3411562 +-2.4443855 +-3.8311648 +-2.3839400 +7.4445767 +-0.3183910 +1.2442859 +-1.2521749 +-1.0649667 +0.4782696 +-4.2803226 +1.8029964 +-0.3198791 +-1.5454947 +-1.3119549 +19.7902355 +-0.8401247 +0.0788957 +0.9308875 +-0.3505370 +0.0533640 +-1.1881893 +11.2628365 +4.1457491 +0.6803285 +3.2378397 +0.6394513 +7.6494689 +-20.3408012 +-0.1034577 +0.8840551 +-0.0768017 +0.8091036 +0.0585652 +-0.6345347 +-3.4821496 +-1.9707015 +-2.0598612 +-2.2703052 +-0.4630093 +1.1216319 +-0.2022190 +-1.3624320 +-0.7575791 +-2.8937037 +-6.4075413 +-0.0171080 +-0.0610964 +0.7232265 +3.8844972 +4.1812601 +24.3895969 +-3.7470922 +-6.4981656 +-4.3601708 +0.4124053 +-2.8156755 +2.8284559 +-2.8486567 +0.7485018 +-15.5729437 +2.4312510 +-5.2127872 +10.5829411 +2.9324708 +5.5297604 +-2.7622952 +-0.6575191 +-13.5860977 +-0.8145329 +-9.8446827 +-4.4644547 +-1.8258853 +5.4465795 +-1.1821557 +0.7944314 +0.6051480 +-1.6492298 +-5.5927987 +0.4350141 +-1.4557835 +-2.7650845 +-2.8238616 +-0.5752693 +-2.0468030 +-1.3317574 +-1.8909699 +-2.4637983 +-0.6524295 +-5.6959677 +-35.5601578 +-2.3085649 +4.1499100 +-1.7149650 +1.5733958 +-2.1906009 +2.1403484 +4.7808194 +-13.6178713 +-3.9499967 +10.0847368 +-4.1833515 +8.7016764 +5.8522196 +-7.3123574 +-1.7654556 +-3.2995882 +3.4544561 +-10.0816736 +-5.9839196 +1.3852376 +-4.3420563 +-6.6832509 +-3.9183395 +-2.4575171 +1.7482638 +2.5647848 +8.8036385 +-5.8786550 +1.2577391 +-2.6553633 +-1.2554896 +-0.3902180 +0.8913600 +3.2398217 +-0.7614072 +-2.9049182 +-22.2612457 +-2.2285326 +-6.0167975 +-3.0552623 +-8.4693899 +14.5414286 +-2.9045203 +1.6707118 +-3.0760498 +-7.1384053 +-0.2822245 +-8.0574188 +3.4010928 +-1.8575230 +-2.1083400 +-2.5934753 +40.3658791 +-0.6742128 +0.5540364 +-0.1564126 +-2.9645481 +-14.6683359 +-2.1244891 +24.0547047 +7.1882820 +1.0832764 +1.5469356 +0.4561090 +13.1291637 +11.3848343 +-1.1993493 +-1.8034444 +4.6684084 +-0.6979061 +-0.6555352 +0.7067113 +-12.6503878 +-3.9550736 +-26.2341614 +-1.5578991 +-0.6472047 +1.4487852 +-4.5955515 +-1.9286143 +1.4160837 +0.5307209 +-10.5407829 +-0.3329374 +0.1638273 +-0.2676114 +3.3408265 +6.9242010 +0.6610153 +-4.5203824 +-8.4611568 +-7.6238451 +0.3985581 +-0.7931771 +1.9650291 +-6.1898808 +4.4466610 +-27.8702545 +3.2164760 +-17.0614223 +-0.7018919 +-14.0081625 +-7.9354701 +-3.7122879 +-0.1465390 +-13.0650415 +1.2802827 +-6.8939724 +-7.1257262 +0.7899357 +14.9876785 +12.8999443 +0.5200626 +2.2418156 +-3.0335433 +0.6395898 +-0.9564697 +-2.0461302 +-2.0894487 +-7.2004724 +-1.8743912 +-8.9735126 +-3.8132508 +-2.7714968 +-3.2655041 +-1.6227200 +-16.0971107 +3.0850418 +-4.0106626 +8.8891459 +-2.5238953 +2.9104946 +-8.4980927 +5.4285607 +21.4056988 +-3.2328897 +1.9838558 +12.1960649 +-7.9144039 +15.5638618 +8.3376274 +-5.2043338 +-4.0580797 +-11.2516842 +-0.4912712 +-13.9926481 +-19.8854332 +2.4577324 +-3.9051993 +-9.5232296 +-4.6442671 +-2.4903700 +5.4124932 +4.0899358 +10.9218178 +-10.8117962 +-0.2297354 +1.3919542 +-17.5749741 +-0.6334893 +-2.1040647 +5.6694465 +-0.2348016 +-6.9202881 +-13.0022993 +-4.8993955 +-6.2355533 +-0.8590586 +-17.4620285 +19.7931652 +-5.4010649 +4.5154085 +-4.8442807 +-8.4361515 +-0.0499927 +-11.5845242 +5.0636740 +-6.6394019 +-1.8476363 +-3.2331562 +65.3794250 +-1.5054483 +0.4397270 +0.3391753 +0.2815576 +-8.2192259 +-4.4803982 +6.7315230 +12.0977697 +0.8974601 +5.4115028 +1.0995164 +20.0283852 +0.1410061 +0.1339686 +0.5656033 +3.4586449 +-1.0408425 +-6.4535632 +1.3923748 +-1.5727823 +-6.7251968 +-22.5219116 +-2.4144983 +-1.0156188 +0.5033544 +-4.7176166 +-3.9294915 +-18.5174465 +-0.6463607 +12.5869236 +-0.7474781 +-11.2294407 +0.4901135 +0.1872173 +1.3787524 +-1.8758273 +-3.8041306 +-11.4116535 +-6.2073774 +1.8599371 +-1.8621358 +1.8905628 +-2.1296976 +-12.6954689 +4.4709921 +1.4351025 +-6.5450306 +0.1631494 +-6.7211366 +-3.6422448 +-0.0303770 +3.9103041 +-5.3742347 +-3.6494672 +-4.8862348 +-2.9547257 +11.1566162 +6.6813083 +9.1772356 +-1.8040264 +-1.2460582 +-1.7732395 +0.2549157 +-1.7926965 +-2.1401949 +1.0643903 +-1.9379958 +-0.9016169 +5.4886670 +-7.9397593 +-7.0588522 +-5.2705922 +-3.0446157 +0.7989177 +5.5939455 +-4.7798362 +11.5542173 +1.1558243 +-1.1808805 +2.0200639 +-3.3477328 +16.6544247 +-3.8443716 +-1.5469072 +-4.1917734 +-3.3702974 +10.6172686 +2.7342262 +-1.4464979 +-2.5520515 +-5.9878817 +9.4721384 +-0.2792489 +-4.6900144 +0.7352611 +-9.5071945 +-5.0490007 +4.1613154 +-1.7931381 +-1.4096839 +5.4687009 +5.1081014 +-3.1648967 +4.4620399 +-3.1127677 +-1.4664828 +-0.3465593 +-1.1057808 +0.6126468 +0.1591648 +-0.3202574 +-3.8628182 +0.2296962 +-3.4743369 +-5.7733622 +-10.3223934 +18.2132454 +-0.4921448 +2.7883210 +-7.1659422 +-5.6068230 +-4.1659331 +-4.3188858 +4.5015998 +1.5347744 +-5.6327386 +-0.5601101 +56.1910210 +0.2527886 +-1.7326852 +-3.1831927 +-2.1753447 +-6.1615753 +-2.6175473 +0.6127961 +12.2176466 +-0.6115873 +2.4058855 +-10.1698599 +4.3365774 +0.0140968 +-2.8444116 +1.3161116 +-1.7457935 +-3.1788051 +-3.8785899 +-0.3700420 +-0.0977655 +-3.0189028 +-5.0756974 +-6.6896167 +-1.2669421 +-0.3990761 +-8.6605730 +0.1890484 +0.6746253 +0.9767864 +-8.1769476 +0.1854278 +-6.4938564 +0.2654525 +0.0719474 +3.3864450 +21.7821732 +-0.3658078 +-3.2668593 +-3.6707325 +-0.2944391 +-4.4814138 +2.0433333 +-1.2331910 +2.5668366 +-5.6401811 +1.4145559 +-4.3667178 +-20.4256687 +0.6749688 +-2.4597449 +-0.6023092 +-0.7278970 +-8.2099562 +0.0893657 +-5.3383884 +-1.9378810 +2.1600134 +2.2436121 +13.2294941 +0.5286807 +0.3431768 +0.7962058 +-5.1499653 +-18.0347271 +-0.4452852 +-2.2574444 +0.4764412 +-1.2688798 +-1.4090877 +0.1809551 +-0.4975767 +-0.1914971 +0.9902198 +-3.2993186 +-16.1076164 +-2.4178567 +1.6762458 +-0.9448069 +0.8793172 +-0.5353199 +4.2143855 +18.2948647 +-17.2437916 +-5.4600658 +6.5072732 +-2.4377813 +4.8633580 +2.8048279 +9.0444164 +-1.6545655 +-7.0828996 +-4.3367867 +-4.9137430 +-1.4778174 +1.0845263 +-2.8112557 +-2.0411460 +-0.6971352 +-0.8747057 +0.2278830 +2.0024498 +2.0148523 +-2.9737082 +0.0437464 +-7.0935717 +-3.3695941 +0.2041755 +5.9203005 +2.4549730 +-0.8656076 +-0.7866510 +-23.0378971 +-1.6926951 +-3.1527367 +-5.6068559 +-2.6410902 +7.1198344 +-1.3330076 +1.0210131 +-1.2959285 +-1.1439645 +0.8211909 +-4.1825442 +2.0797465 +-0.6201669 +-2.1816299 +-1.5638447 +19.7191277 +-0.3042092 +0.2539828 +1.0727230 +-0.0276416 +-0.6467749 +-1.4820570 +10.9746227 +5.4854879 +0.8495933 +2.4603641 +0.8560755 +7.9903951 +-6.9055562 +0.7269838 +1.3384725 +-1.4478725 +1.0609388 +-0.7682291 +-0.3081563 +-6.3261132 +-2.0187368 +3.8079960 +-0.3948009 +-0.8735039 +0.2739820 +-0.8197611 +-1.1523490 +-5.0482931 +-7.3907514 +-4.8053761 +0.4097686 +0.0377463 +1.2184578 +-4.2334447 +4.9778218 +-0.4855651 +-6.4318724 +-9.9295492 +-6.7071877 +-2.0410638 +-6.7852011 +3.5973973 +-2.9356344 +0.4527162 +-18.9101276 +-1.9770952 +-13.8256302 +-14.7203074 +-19.7267666 +-5.1658502 +-2.0357680 +-5.2804222 +-18.4277611 +-2.8700910 +-16.6155357 +-3.9971013 +-5.7929568 +1.0870516 +-29.1208324 +0.8188008 +1.4998600 +-3.2060542 +-13.2306223 +-7.1969333 +-2.4542072 +-4.5093446 +-4.8757262 +-2.2235160 +-5.2013412 +-2.2916734 +-0.9217504 +-1.9015536 +-1.1021174 +-6.9340754 +-25.7765274 +-5.4385648 +-2.0614486 +-0.5862509 +1.4563768 +-2.5298908 +-8.3847809 +-13.6052589 +-16.2119503 +-11.2989635 +-4.2522469 +-2.9028714 +8.1807985 +5.8453045 +-10.1436243 +-2.2459979 +-10.6015568 +1.7501292 +-5.3166089 +-12.2103376 +0.3849598 +-4.4551086 +-3.7404971 +-4.6636920 +-2.2150929 +0.4851500 +3.4285443 +5.8335915 +-10.9147062 +0.3082146 +-8.6764288 +-5.8218803 +0.3808089 +18.5516224 +2.4588811 +-0.2333687 +-4.1985617 +-10.1446848 +-2.8980923 +-6.5688620 +-8.8368092 +-9.5691500 +9.8339252 +-7.2227716 +2.1662939 +-3.6279263 +-6.6287847 +-0.0188517 +-7.1835527 +-4.2777200 +2.2253339 +-3.9652278 +-2.0328391 +39.1023750 +-0.3690282 +0.5805187 +-0.4194228 +-10.8294535 +-12.7188826 +-2.6954648 +-2.2242470 +10.3599968 +1.1604931 +-1.9342147 +0.1966621 +2.5179679 +21.2046356 +-1.4893154 +-7.3911710 +-2.4585321 +-1.4556308 +-3.2589083 +2.4733255 +-7.4661226 +-3.8943162 +1.4430525 +2.6178193 +-0.2826982 +4.5210829 +-7.1647973 +-0.4792925 +-6.5104928 +-8.1090145 +0.9725759 +-9.2073469 +0.0169535 +0.5075687 +-4.5826702 +5.3307180 +15.1389637 +-9.2808924 +-14.4631739 +-1.9317074 +-4.5206633 +-4.6363592 +5.8719945 +-4.2249360 +-0.3995210 +-27.7308254 +-0.4781516 +-15.9305134 +-2.2642949 +-10.3620224 +-14.4365950 +-6.1796803 +-4.3528051 +-15.6277189 +-4.4667563 +-15.1840553 +-6.1437893 +1.2987646 +4.2050862 +1.7861909 +1.8074696 +1.2833823 +-5.0988679 +-10.8373785 +0.7017555 +-3.1679878 +-4.2301741 +-2.3905663 +-3.9160633 +-3.9762230 +-2.2527554 +1.4587959 +-4.9058404 +-1.5669366 +-4.6389637 +-22.4684486 +-7.8249898 +3.6118445 +-0.6466883 +2.8529265 +-4.4235044 +1.6928989 +20.3210011 +-9.5979214 +-0.2632620 +2.8366351 +-5.3460293 +12.4387388 +8.0109835 +1.9595101 +-3.7293515 +-7.7040734 +-19.6634235 +-13.1050968 +-15.3323107 +0.5309054 +-6.1094580 +-6.3221393 +-5.3648186 +-3.2164111 +0.2922603 +5.4139853 +7.8480072 +-15.2000580 +0.2893840 +-7.6248507 +-3.1216657 +0.3067522 +-2.1529362 +1.1141361 +0.5472257 +-5.1703167 +-20.0668335 +-4.5649958 +-10.6680298 +-4.0411263 +-17.4402084 +15.6638250 +-5.3026996 +-0.4819978 +-5.4978981 +-6.6938295 +-1.7962588 +-10.4508438 +-2.8658359 +0.6786925 +-4.5215807 +-2.2095978 +57.7823944 +-1.2016941 +0.4848391 +-1.6884363 +-15.2698975 +-5.1135454 +-4.2412443 +15.3875008 +16.0534325 +1.8489757 +-11.0895205 +-1.8728364 +10.1521616 +-4.4736447 +0.3051066 +-0.8872193 +-10.3591900 +-1.5574040 +-1.1194063 +1.7580123 +2.2680922 +-5.7038331 +5.9218597 +2.4045169 +-0.6723265 +4.1004791 +-8.8360558 +-0.9470930 +-1.8469019 +-12.9626055 +19.8302670 +-8.2785149 +-0.8865609 +0.5092596 +0.4361388 +5.2376699 +6.1926951 +-3.2727149 +0.5503162 +-4.4353609 +-13.5502329 +16.0753460 +3.2319748 +-1.5501068 +-11.9962988 +8.0641098 +1.8007463 +-7.9877853 +0.7526136 +-1.4428244 +-6.6967998 +0.4558799 +4.1577454 +0.6793056 +-7.6929598 +3.6904714 +-4.6963410 +21.0767479 +5.7256918 +0.4117762 +0.0004558 +1.1028957 +1.6672273 +-0.0044456 +1.4482654 +-0.2700678 +3.2323864 +-8.2866459 +-1.3044474 +2.8706949 +13.2663622 +-0.1587517 +-0.2032581 +1.0713079 +3.8523512 +0.5542895 +-2.3291516 +12.7302866 +-1.2569489 +1.0600823 +2.8787818 +-2.1226974 +2.5121984 +-7.8422704 +15.7921991 +6.2060814 +-4.5996857 +7.5855265 +0.5277086 +-4.5427980 +-8.1290846 +0.0453645 +10.5957212 +0.3845633 +-2.9205959 +0.4513132 +-5.5189261 +-2.0007157 +5.7141523 +-1.0842191 +-2.3579526 +2.2514799 +6.7004814 +-2.9636521 +1.3058941 +29.5157490 +-19.6448669 +4.4127030 +0.6785797 +-9.1813536 +-1.3296498 +-3.8717055 +-5.7251596 +-2.1152923 +0.5777094 +19.1374130 +-2.1045072 +20.4320259 +0.2371316 +6.9733219 +-6.2437143 +0.3783663 +2.3474724 +-8.8829412 +8.4966688 +-8.0496387 +0.4136568 +1.6435826 +12.3867521 +0.4545804 +3.7481177 +1.4403415 +-1.5880402 +-8.2483282 +-2.2113414 +17.7528648 +10.7486172 +1.0289707 +5.1897831 +5.4641271 +4.5399833 +0.0359251 +-12.9969826 +31.1830482 +-3.7932110 +1.4871092 +-9.3383703 +-0.3433763 +-7.5764394 +-8.8020258 +-11.7274046 +-4.5015063 +-2.5186386 +-1.7370089 +-10.4887218 +-4.2910571 +-3.9957440 +3.5635090 +-10.3479109 +-2.9553654 +-6.7494817 +6.8660884 +-0.1759590 +4.2659316 +19.3280792 +-0.7188773 +-4.0240273 +-4.4088812 +-0.7982212 +-4.6700411 +2.5749798 +-1.0323777 +2.3029304 +-4.9015341 +1.2607800 +-4.6446681 +-17.6078415 +2.2620823 +-3.0406284 +-0.1480249 +-1.1453615 +-14.2354593 +-0.0887872 +-5.7667732 +-1.6952087 +1.5744675 +4.3544545 +15.7685604 +-0.1005000 +0.7812969 +1.9115020 +-25.5668716 +-17.4646549 +-0.4035659 +-2.7345712 +2.0175407 +-1.1237093 +-2.4996908 +-0.2505643 +-1.0507404 +-0.3468803 +1.4399984 +-3.5485065 +-17.7002316 +-2.5605261 +0.8664586 +-1.3796538 +0.9342713 +-0.4051174 +4.0069571 +18.4185734 +-16.2584000 +-4.5719814 +7.7424355 +-2.2719703 +4.6346288 +2.5773058 +9.1163235 +-2.1430938 +-7.6028605 +-5.0625911 +-5.3025055 +-1.4457703 +1.1788186 +-2.7317224 +-1.5190539 +-0.1524734 +-0.8792580 +-0.0765030 +1.8196977 +1.8613651 +-3.3570004 +0.1832464 +-8.8095160 +-4.4679098 +0.5548050 +16.5507565 +2.7814679 +-1.1128591 +-0.3943853 +-24.1846523 +-1.5781921 +-3.5857193 +-6.7564120 +-3.8015218 +7.2619066 +-1.5387191 +0.7397116 +-1.7242736 +-0.9193179 +0.7616220 +-4.3962536 +2.4854951 +-0.9471775 +-2.9448609 +-1.4698259 +18.8977299 +-0.2696702 +0.6647806 +1.7031769 +0.4293256 +-0.6661066 +-1.3609091 +9.0964060 +6.1948090 +0.7881720 +2.7466607 +0.7921991 +7.8069000 +-15.3544674 +1.0803071 +2.3594677 +-1.1606816 +1.5808984 +-2.6668024 +-0.4034231 +-9.7800541 +-2.0214956 +0.0135482 +-0.7999199 +-0.7219104 +-0.4259149 +-0.5843289 +-1.4701179 +-1.7632298 +-0.6565093 +0.6386507 +0.7276388 +0.0375070 +1.6612511 +-4.2057199 +5.0653753 +-7.1397800 +-4.9364576 +-10.8723488 +-6.7470913 +-2.5780382 +-3.2477999 +4.7561617 +-2.2920833 +1.1801192 +-17.3769932 +-2.1784275 +-8.2434044 +7.8679457 +-5.8736615 +-6.0389180 +-2.0842566 +-5.3058839 +-9.7306118 +-0.1714782 +-6.9868937 +-3.7969091 +-5.5581841 +4.6043572 +-21.4662857 +-1.0452791 +1.4056499 +-1.2259089 +6.9410629 +0.3238893 +-1.9296361 +-4.1829324 +-10.1497803 +-2.2670240 +-4.1507463 +-0.5654837 +-1.1282591 +-1.6370302 +-0.2602461 +-8.2553864 +-8.7828770 +-5.9548998 +-1.2180653 +-3.1204753 +2.3534863 +-1.5465815 +-10.2314310 +-5.3337398 +-17.0111809 +-8.4307928 +-2.0293293 +-3.6162779 +8.6675014 +5.7777896 +-12.5609331 +-4.5710249 +-18.3623714 +2.1763930 +-11.5527611 +-14.3394318 +0.7908436 +-4.1700888 +-3.9395568 +-2.8344731 +-2.5673618 +-0.9213749 +3.6534319 +4.1572499 +-11.9597454 +1.0110716 +-5.0199280 +3.9341662 +2.3944221 +-3.5603979 +2.4945493 +-1.6078721 +-4.7175212 +-18.4644299 +-2.6918221 +-8.4915886 +-6.1413069 +-12.8967648 +11.7899857 +-6.5080872 +1.7187968 +-5.5779676 +-8.0970716 +1.0235054 +-6.9403639 +-3.6755247 +-2.7953680 +-4.8449578 +-2.6157620 +39.9260864 +-0.0470573 +0.6329870 +1.6143804 +-10.6327772 +-9.1661234 +-2.1593187 +2.2489102 +13.0046597 +1.1174084 +-0.0593256 +-1.1964643 +3.9107170 +-9.0660715 +-0.2311849 +-5.2932959 +-4.2506790 +-0.3018566 +-5.7561855 +2.6578040 +-4.6666026 +-3.4962118 +1.1000783 +2.8963013 +0.2110767 +3.9387085 +-6.1989255 +-1.0012232 +6.4738383 +3.4979711 +-8.6210899 +-8.7693043 +-2.0613294 +1.8023762 +-5.6799660 +6.8533840 +4.9844322 +-8.2145367 +-16.1200809 +-11.9497910 +-4.0145259 +3.3975904 +6.5275793 +-2.9387462 +8.6871233 +-16.3602791 +-2.0460773 +-15.1667423 +-2.7434609 +-4.3058686 +6.5708790 +-3.1599076 +-3.9652228 +-6.3369312 +-6.8865542 +22.2447338 +-5.0459461 +-2.9931040 +3.1853154 +-6.1268568 +2.3769903 +2.1930239 +-1.0349094 +0.0488547 +-2.5113301 +-1.7676598 +-5.6852140 +-4.8506365 +-4.4807053 +-4.3031850 +-11.7337046 +-3.9877610 +-1.6283584 +-1.7746059 +-6.9089508 +-8.2320271 +-8.3914022 +0.1337655 +-1.8092407 +-6.5816035 +-2.8470702 +-9.1340885 +11.4261627 +-19.1366425 +1.9185742 +6.1229959 +-6.2100105 +12.1860600 +8.9264774 +-6.0423713 +-2.0972989 +-3.4357944 +-12.4748259 +-9.8070145 +-13.0699654 +1.6375077 +-7.5225220 +-8.6829586 +-2.3436832 +-3.4372323 +-0.9649917 +5.8615994 +4.7627826 +-15.3721828 +0.2693237 +-0.7637269 +9.1383610 +2.5285897 +0.1630557 +1.2860392 +-1.1585536 +-4.8541307 +-21.1687641 +-4.8115931 +-7.1002007 +-1.7675384 +-16.9845657 +18.8034554 +-8.2194242 +-1.6259016 +-6.4881878 +-8.2523632 +1.0825808 +-13.0216742 +-1.6630465 +-3.1282029 +-4.2234092 +-6.9990020 +54.8931389 +-0.2464584 +2.2484341 +1.0090581 +-13.1448021 +-1.6976080 +-3.6365783 +-4.9350228 +21.1726589 +1.3090265 +-1.2107691 +-0.5690448 +14.9758244 +0.4020283 +-2.0156777 +1.4170293 +-9.4224615 +-1.3786581 +-7.7930021 +-3.2744358 +-6.1148658 +-2.8899639 +-13.8503141 +2.3196259 +-2.2411397 +6.3068252 +-11.9489918 +-3.3516994 +4.3804207 +1.7233329 +7.6863284 +-7.7472024 +-10.2920818 +3.0737529 +0.6380349 +-15.3386383 +1.0050542 +-5.0487719 +-7.9935546 +1.8836887 +0.2263860 +-4.9857888 +9.8992920 +-0.8932741 +-16.5588322 +-2.6797321 +-3.8892531 +0.2648475 +-0.3668714 +-3.0323839 +2.9184813 +-10.8551607 +-0.9020186 +8.3467979 +-3.0659747 +-1.0084046 +-0.1497711 +4.0012765 +-0.2922899 +2.7086565 +2.0730171 +-0.0263738 +-0.0811019 +0.0218963 +-0.6986361 +-0.1403034 +-3.2832663 +-0.2611269 +2.1668427 +-9.2195225 +-1.7156860 +-3.7751250 +-4.0028119 +-1.7321690 +-2.9188514 +-0.2449868 +-1.4734803 +12.9942102 +-0.6205851 +-0.0964256 +-3.5557458 +-10.3858624 +10.3734646 +1.7285612 +16.5915661 +3.8854973 +-1.1869613 +7.3330255 +6.8936048 +-0.7527395 +-14.1686049 +-4.4663377 +-5.7358313 +-14.0977821 +3.6173573 +2.0226846 +-12.0312757 +-11.6028395 +-0.8875479 +-4.6472917 +-4.4501982 +7.9300728 +5.2685876 +1.1395495 +1.0495285 +-2.2080557 +-0.4401309 +-7.8135996 +0.4326058 +-3.2152979 +0.0359507 +-3.0726175 +5.3009491 +-5.3698606 +-1.7574289 +3.9154079 +-0.9417561 +11.9412098 +-1.6798717 +3.7467351 +-15.0234966 +9.2196865 +1.4162728 +-13.3323507 +3.4898174 +4.0855947 +-8.8630123 +0.5891190 +15.7898989 +0.1754763 +-7.0295091 +2.5237777 +-0.0697522 +-8.2228136 +-9.1128540 +-0.1443410 +5.7356820 +-2.6966856 +6.8021841 +-13.3565512 +0.7692858 +-0.0017350 +-0.8183460 +-0.2779693 +-2.9579444 +0.7298208 +-3.0188239 +3.5261385 +0.3737897 +-1.4948070 +2.1257656 +-3.5959628 +4.7835727 +-1.7109731 +4.2407360 +-3.5147188 +8.4696903 +-6.5428777 +2.8906927 +-5.3074675 +-5.9939132 +-3.2019899 +-0.4113793 +3.5939043 +18.3501129 +-0.5246549 +-4.3705482 +-3.7149498 +-0.9753384 +-6.0236540 +2.5998476 +-0.9169105 +2.2594159 +-4.3317108 +0.9749677 +-6.0340819 +-16.6550484 +2.6040986 +-3.2013183 +-0.4922191 +-1.3990008 +-16.7463322 +0.5089490 +-7.5990472 +-1.4819984 +0.6441627 +5.1166296 +16.5167789 +0.0546595 +1.0067828 +2.5634017 +-11.6527214 +-16.2455845 +-0.4848333 +-3.3160374 +2.4616346 +-1.2627065 +-2.9965746 +-0.8314478 +-1.0691929 +-0.3112095 +1.6713648 +-4.3173347 +-19.0507107 +-2.9931445 +0.1382228 +-1.3301370 +0.6537225 +-0.0059904 +2.6937964 +16.6580334 +-18.6522694 +-2.4484344 +8.4404564 +-3.3065870 +4.1694455 +2.4029486 +14.8837175 +-2.0093853 +-7.8078399 +-4.5795832 +-4.9788604 +-1.9997243 +1.0557140 +-2.4418595 +-1.8039130 +0.6982952 +-0.9938517 +-0.3424246 +1.6998520 +1.1037401 +-4.1435308 +0.1782868 +-11.2438555 +-5.5760484 +0.5332051 +-16.3942242 +2.6003144 +-0.1217633 +-0.2781263 +-26.9078693 +-1.7262987 +-3.8342028 +-9.1630592 +-4.0894613 +6.7207079 +-2.4522727 +0.8881325 +-1.6116264 +-1.0503147 +0.8255600 +-4.3376555 +2.9487975 +-1.1761801 +-2.6851444 +-1.5447577 +18.9518337 +0.0965624 +0.5806005 +1.4971528 +0.7899604 +-1.9597942 +-1.3077756 +7.0503497 +7.0035524 +1.1145325 +3.2928293 +1.1754961 +7.7864475 +-15.7639704 +1.5887612 +3.0478466 +-1.2217767 +1.9394867 +-1.1409389 +-0.3496138 +-10.2086782 +-1.8937407 +-3.0126603 +-1.1617008 +-0.6786072 +-0.8416738 +0.0741592 +-1.6585736 +0.7428906 +-2.9074585 +3.4630809 +0.7463519 +-0.0833263 +2.1699784 +-5.7032285 +5.5882058 +-5.5401969 +-5.1139932 +-12.1786556 +-6.5823183 +-4.0260229 +-8.2699270 +4.4309239 +-2.4186850 +1.5009061 +-13.0020695 +-2.6466789 +-9.9364767 +3.6453192 +-0.7042352 +1.5355834 +-2.6541412 +-5.0780387 +-10.0396261 +-2.9514446 +9.1480427 +-3.4107602 +-7.2782350 +5.5175958 +-17.4764252 +-0.0089048 +2.4180214 +-0.1898851 +-8.8366051 +-1.0025219 +-1.5532943 +-4.1854987 +-0.7191131 +-3.4993141 +-5.3650255 +0.1063041 +-1.5652407 +-2.0485952 +0.7317358 +-8.4592285 +-22.6326485 +-6.7237411 +-2.7538061 +-2.2001626 +2.0454726 +1.4378036 +-11.4952841 +11.9461737 +-23.9562645 +-7.0007658 +-1.2433082 +-7.3571124 +7.4133549 +5.4790912 +-5.6661701 +-3.7181568 +-6.1063399 +2.7937944 +-7.2356524 +-13.0899353 +0.4330168 +-3.6611292 +-3.9087248 +-4.8730474 +-2.2707329 +-1.5023783 +3.2459152 +2.1161454 +-12.5672026 +0.5602272 +-5.5088887 +-1.7124143 +1.2828099 +7.1203570 +0.6367993 +-0.2599826 +-3.4161620 +-13.7311211 +-2.7201443 +-7.5911460 +-9.6490335 +-12.7270708 +11.5159588 +-8.4115505 +1.7202555 +-5.1923919 +-11.2059097 +0.6784270 +-6.8817835 +-2.9584315 +-0.2652558 +-3.0720468 +-3.1043243 +40.6489944 +0.8543623 +0.3438757 +0.4873373 +-12.0249052 +2.0071607 +-2.6737077 +1.8605758 +15.1465883 +1.6605034 +-2.7263255 +0.1105254 +3.1588154 +16.0182018 +-1.1097714 +-7.4533076 +-2.0500977 +0.6558553 +-0.2489294 +0.9977202 +-2.2438636 +-3.0859504 +0.5135112 +2.6924167 +-0.6124648 +3.3537314 +-3.5472732 +-1.2733489 +8.2386274 +-1.0912316 +-2.1805453 +-9.2010660 +-5.0646420 +2.5941291 +-2.1612456 +9.3493443 +-2.5443609 +-6.6468472 +-15.8197241 +-18.7551689 +-6.4769006 +2.1999502 +7.6299067 +-3.4097908 +-2.3245373 +-8.1663351 +-3.3209589 +-15.0157452 +-1.6155829 +10.1944838 +2.2156880 +-1.4818921 +-4.9782205 +-5.8583145 +-0.4968928 +-5.5024943 +-3.4583039 +-10.7370987 +-0.7883800 +3.4838283 +1.2391338 +2.3143239 +-4.2913489 +-0.1255314 +-3.0932081 +-1.7270297 +-2.0312834 +11.5678558 +-6.3983574 +-3.6056421 +-5.3497686 +-2.1245732 +-2.9958758 +-1.1007719 +-4.2490478 +4.4037662 +-8.6605253 +0.1007861 +-2.2827597 +2.4298837 +-0.8648971 +-14.4778681 +6.9753256 +-19.9711323 +-4.2149639 +2.6280606 +-15.0139322 +13.0579500 +7.3315091 +-5.8171325 +-3.2420938 +-1.1661816 +-2.6084459 +-10.8656769 +-19.4306278 +2.1365955 +-5.5849910 +-5.1355290 +-8.7573071 +-1.9759096 +-1.6665787 +3.4901292 +1.6425711 +-16.8005390 +0.8751054 +-8.3483267 +-12.9641676 +2.4151592 +-0.3141458 +-0.8875837 +1.3328708 +-3.0532722 +-9.6017847 +-3.9481823 +-6.6857414 +-3.5273538 +-16.1534367 +20.5333328 +-5.5689168 +3.2211356 +-6.5821509 +-12.3990870 +0.2290263 +-9.6037483 +0.4559056 +-0.7338713 +0.3136911 +-1.8819207 +64.6993332 +-0.3277796 +3.5079494 +-1.0309095 +-11.0988493 +-5.7068114 +-4.1118975 +-3.3471875 +23.0572510 +2.7469997 +-7.8626699 +3.2814429 +9.8175831 +-0.0859231 +-4.2752471 +-3.4330826 +-17.1629391 +0.5115833 +-1.8029283 +2.2932296 +-5.6692400 +-5.7635188 +9.7256050 +4.6775651 +-2.0764799 +4.8104138 +-5.7642131 +-4.4237080 +23.4801483 +-2.6448588 +3.0739098 +-9.9439993 +-13.4064779 +5.2036028 +-1.0090439 +0.5639990 +0.4964418 +-3.1727793 +-4.1121740 +0.7959346 +4.4825559 +0.1258643 +3.8001094 +-3.7178500 +-1.2086580 +2.7578232 +3.7858911 +-0.3556443 +-0.0298881 +2.9500172 +-1.6485350 +-2.3671341 +2.1836052 +6.5668011 +-0.8809472 +-1.3101194 +-0.0153205 +9.7324991 +-0.3473126 +-0.7160741 +-4.2491007 +1.2869319 +-1.0679282 +0.0663489 +-1.0239786 +-3.9136438 +2.7926636 +-3.0425634 +-3.3181531 +-0.9183946 +1.3415390 +-3.0384493 +0.0398397 +2.1937473 +0.7122597 +0.0370175 +-1.4857259 +0.0247853 +7.4017725 +-0.4204823 +0.7036910 +2.4170291 +-7.6224194 +4.4097610 +3.4943540 +-0.0595617 +-1.3428330 +13.5658894 +-1.9966733 +-0.2690186 +-1.8573918 +0.7048873 +0.8658983 +-2.9129560 +-4.3519158 +6.5172520 +0.5247165 +-1.1017267 +0.4043637 +-3.0181804 +-4.2932062 +1.0255615 +4.6747565 +0.8725466 +0.7582092 +0.2802382 +-0.6814363 +1.1150100 +0.0282647 +4.4695473 +1.8540349 +-1.2643274 +0.2668261 +-1.7129893 +1.7006810 +1.3024722 +-2.4479139 +7.4444160 +2.3795373 +-4.2862692 +5.6180592 +-0.1065241 +-0.4481990 +-9.8555546 +-0.8006402 +-0.6327097 +2.1796980 +2.2203796 +3.7162588 +-4.3228259 +-1.6388223 +3.2203557 +0.0526844 +0.3797540 +-2.9906578 +-0.8482589 +2.6146452 +2.3358886 +-0.2758173 +-1.4012461 +0.0907088 +0.0101665 +1.6190665 +0.1189308 +-0.2156928 +-3.0190101 +-0.5085062 +6.0531020 +-0.1560644 +-4.9629478 +-0.1694872 +0.6693822 +-1.6320330 +0.0602936 +-2.2926147 +1.8672440 +0.7883848 +0.1984487 +-0.8222169 +0.8063523 +1.6699475 +3.0682542 +0.0940661 +2.7895124 +19.0096970 +-0.5715057 +-5.2673602 +-3.8944740 +-1.7251732 +-5.8826690 +2.3085370 +-0.6923158 +2.2393782 +-4.3770466 +0.8857024 +-6.6026955 +-21.0688839 +2.5607405 +-4.5511928 +-0.3046817 +-0.8152677 +-17.2205906 +0.2510508 +-8.3991976 +-1.2104355 +0.1318548 +6.3114114 +18.1288700 +-0.1797083 +0.8066004 +2.8621552 +-9.1248226 +-15.8935070 +-0.2743972 +-2.7948599 +-0.6931753 +-1.4926634 +-3.1107614 +-1.2689142 +-1.2735639 +-0.1633912 +1.5438808 +-4.4659357 +-20.6940060 +-3.1374569 +-0.4104537 +-1.7253160 +0.5576965 +-0.2476956 +2.3176281 +17.2812119 +-18.9440498 +-1.2960397 +9.5573158 +-3.1343040 +3.8516297 +2.3137412 +15.5738869 +-2.0673375 +-9.3486576 +-5.9023061 +-6.4280686 +-1.9050757 +1.0642086 +-2.2894931 +-1.4248304 +1.2614521 +-1.0285254 +-2.3252780 +1.8018849 +0.5836945 +-4.7883911 +-0.0014549 +-12.9190063 +-5.2510743 +0.7539816 +14.5778122 +2.8352137 +0.6551988 +0.1859495 +-29.3001938 +-1.6301711 +-4.3730316 +-10.2179966 +-4.7211151 +6.8031316 +-3.0899148 +1.0935367 +-1.9727435 +-1.1719954 +1.1448158 +-4.4531207 +2.9699118 +-1.1138403 +-3.8198650 +-1.2186931 +17.6931896 +0.3071976 +0.8880785 +2.1745350 +1.0838840 +-2.5322242 +-1.5074645 +-14.8239880 +8.3238173 +1.0931709 +2.9842479 +1.2677490 +7.7137723 +-2.0489209 +2.1701565 +3.5881417 +-2.3870983 +1.9727098 +-1.2230756 +-0.5375246 +-11.0612841 +-1.6670532 +0.2613679 +-2.5051880 +-0.7910526 +-1.3821727 +0.8960657 +-1.8580768 +6.5171709 +-4.4317946 +3.0032885 +1.3179581 +-0.1199747 +2.1207891 +-4.6171293 +3.0698974 +-6.3443713 +-5.7135997 +-12.6757555 +-6.2271972 +-5.4955521 +-3.0953856 +6.1811337 +-2.2894185 +2.8481984 +-14.8134174 +-3.2242923 +-4.1687236 +-13.8873167 +-2.8907039 +-6.4488406 +-1.6824206 +-3.6108022 +-17.3751793 +-2.5821433 +-6.4861174 +-2.3905113 +-6.3102264 +6.0274210 +-9.7138777 +0.1371223 +2.0292411 +0.6802607 +-8.7725401 +0.1360515 +-1.3192329 +-2.2923822 +2.8880129 +-3.7893436 +-5.2057710 +2.4696076 +-2.9521756 +-1.7978672 +0.5143706 +-6.2561178 +-30.4822426 +-6.8603787 +-3.7832248 +-3.1364169 +1.3792398 +1.3149362 +-10.5597439 +7.4639349 +-24.5279446 +-3.0523918 +-0.3144474 +-6.0160761 +7.0045609 +5.5723562 +-7.5943694 +-3.1174600 +-12.3826427 +1.2372166 +-12.9441996 +-13.9746590 +0.9568416 +-5.2132530 +-4.3861809 +-6.0725093 +-2.6255429 +-2.1592517 +3.1306758 +0.7986730 +-13.9653749 +-0.2492853 +-8.5143166 +-4.8810945 +2.0195875 +17.1798458 +0.9850262 +0.7885240 +-3.4063811 +-8.9319906 +-3.3006816 +-8.7207403 +-11.6967344 +-13.0893936 +13.5498505 +-8.2087288 +0.5053090 +-5.3284802 +-9.9350719 +0.8682534 +-6.6668763 +-3.0336063 +-3.9224048 +-4.0168533 +-1.7823157 +37.6074295 +0.8101310 +1.2335874 +2.1068349 +-10.9262180 +-1.2299511 +-3.1314268 +-2.3637865 +17.3694744 +2.2475641 +-3.5511975 +-1.9782518 +2.1288998 +-6.7792654 +1.6402558 +-7.8585172 +-6.1036577 +0.9876579 +-2.0615890 +1.1114770 +6.0498104 +-2.5214496 +6.2827878 +3.5788963 +-0.3221714 +2.6472933 +-2.5080724 +-2.5193517 +19.2424068 +-2.8964770 +1.4966344 +-8.5363111 +-8.6470490 +2.4095330 +-4.5572619 +2.0003486 +0.0913308 +-6.2002993 +-16.2129288 +-21.9592991 +-11.2860222 +1.0618589 +6.8011599 +-1.5749506 +-2.5273039 +-18.9842300 +-2.5435700 +-6.4308925 +-1.6896608 +-10.1986055 +-3.2445791 +-2.7107518 +-5.0967855 +-22.6995201 +-5.1293674 +-3.3172989 +-3.5863419 +1.3613235 +-1.1652634 +-2.3369441 +-0.2988807 +1.8833925 +0.2571327 +3.4152491 +3.8559637 +-0.8950735 +-4.1801353 +-6.2348914 +-4.8437467 +-8.9478884 +6.5909481 +-1.3724926 +-4.2177496 +-0.2813765 +-2.3483367 +-9.4917669 +-6.4172945 +4.9887819 +-2.7396564 +2.2298238 +3.1404414 +-10.8300352 +13.4673576 +-17.9514771 +-0.8343209 +2.2888262 +-12.6322632 +8.8687048 +5.4050350 +-2.1254811 +-5.2120681 +-12.8027544 +-8.8158512 +-37.9321823 +-26.2727966 +1.9581485 +-8.0462208 +-3.7567532 +0.0820860 +-3.0896835 +-7.0613017 +4.4543719 +2.1412325 +-17.8512096 +0.4644545 +-0.1249377 +2.0522771 +3.6213114 +3.1159754 +2.5824955 +0.8748567 +-5.3641362 +-17.9511642 +-4.9227548 +-5.0121150 +-9.7380257 +-28.8220329 +21.4816875 +-19.1726742 +2.9117527 +-9.7768412 +-11.5574379 +-0.0698842 +-12.8711405 +1.1277305 +-4.3131452 +-6.0965614 +-0.3466585 +36.0900879 +1.9014144 +3.1834106 +3.8818245 +-10.5907907 +1.0911809 +-3.5730765 +-7.8845048 +26.0602551 +1.5661182 +-2.0259974 +0.4280889 +5.4090528 +0.1797024 +3.1507323 +-2.0237613 +-7.2965312 +1.7326456 +-1.0105696 +3.5582640 +2.5144136 +-4.0081973 +-3.0154078 +0.7605826 +-0.0336050 +0.5564774 +2.2237101 +-3.2868302 +21.5700474 +-6.8382516 +-0.1712136 +-8.1959782 +-4.7007689 +4.5225964 +0.8685227 +1.5397586 +1.3027782 +6.1573076 +4.4621816 +-5.4788771 +-6.5448895 +0.9248644 +6.3446412 +-2.8609695 +5.6418247 +0.0282324 +-0.0589452 +1.2925037 +-0.2046397 +-0.4185945 +-5.1065850 +-0.0885413 +6.3345633 +-2.9914038 +-2.6106873 +-0.0187232 +0.3974257 +-2.5344656 +-0.3581285 +2.1421003 +-9.6936464 +-8.8559494 +-17.3154449 +0.1688443 +2.9281421 +-0.8212860 +13.8371429 +3.3011870 +4.2003617 +-5.8063517 +-0.2762688 +3.7828863 +-9.8643990 +4.6545100 +-15.1219282 +-0.7253625 +-8.6865931 +12.0122738 +0.0158568 +2.8269002 +2.6826870 +0.5210577 +-7.6296091 +2.5016451 +5.4896197 +2.6121459 +-10.1716337 +2.7202971 +-9.9502554 +-1.2612568 +-12.9918728 +-1.2246366 +2.6123612 +5.2054114 +-1.2847122 +-1.5305206 +-8.1359167 +-6.4380488 +-5.8375783 +-1.8391991 +-4.0954590 +1.3079211 +-3.5126665 +-11.1200199 +6.2962909 +0.7359321 +0.0882967 +-8.8766136 +0.4529581 +-2.2726719 +6.1900234 +-6.4489064 +-1.5735703 +5.0603714 +1.7409711 +2.5435903 +2.4035122 +13.7748566 +-1.4409598 +13.3315859 +-0.2136920 +-1.2677879 +-2.6647174 +-7.7417932 +-7.0385647 +-3.0781479 +4.7657342 +-6.8304319 +2.2984519 +-5.5904527 +-9.5848284 +-2.3977385 +-1.9801066 +-1.5427899 +-2.2278342 +-3.2994902 +1.7473094 +1.1560179 +3.5548491 +-20.0313244 +5.5056434 +0.0678444 +16.6779690 +2.6190147 +2.0479693 +-5.2965107 +9.4486961 +-3.4802988 +1.3745580 +-19.7236385 +3.4795401 +-10.3783445 +1.4860964 +8.3240919 +1.1400216 +-10.6856413 +54.8733559 +-1.3915502 +2.1310110 +-6.9726796 +-10.3474541 +7.5220838 +-0.0383727 +2.5200794 +17.8921261 +-0.7773904 +-5.7837572 +-4.4553237 +-2.4465578 +-5.6261201 +2.5487208 +-0.6034343 +1.8298396 +-4.9475293 +0.9253704 +-7.4220128 +-22.9680939 +4.6954389 +-3.7433681 +-0.4297927 +-1.2430860 +-26.0471439 +0.5483475 +-9.7948418 +-1.1242861 +-0.6119256 +5.5583930 +18.5914898 +-0.3181971 +0.8714896 +3.0183849 +-6.9705315 +-15.2474632 +-0.0028132 +-3.5590703 +0.5272857 +-1.5164173 +-3.6705396 +-2.1943350 +-2.0100739 +-0.4052932 +1.9325085 +-5.8286242 +-22.2319489 +-3.3780396 +-0.9696891 +-1.9898055 +0.4415144 +-0.5112610 +1.5309762 +17.2758598 +-19.6015148 +-1.9036371 +11.0878525 +-3.6278572 +3.4238553 +1.8545210 +18.2928886 +-2.5143020 +-9.2322435 +-5.2602329 +-7.3944049 +-2.2662027 +0.9369922 +-2.7597017 +-1.6401387 +1.2359698 +-1.1041821 +-2.3110681 +1.6026239 +0.2766254 +-5.1859341 +0.1505139 +-14.3626766 +-6.7037597 +0.4784289 +15.2407913 +2.7317517 +1.1538246 +-0.1268234 +-31.9038143 +-1.5371935 +-5.1107779 +-11.1012850 +-5.3757019 +6.8958735 +-3.8689861 +1.2591929 +-2.3982587 +-0.9722707 +0.8770447 +-4.4496822 +3.4012668 +-0.4802870 +-3.0608330 +-1.3207240 +17.9715633 +0.6324654 +0.8987327 +2.4080551 +1.5356079 +-3.3235343 +-1.3198620 +-16.1911068 +9.0901270 +1.1878089 +2.6143134 +1.0351585 +7.3878455 +-4.5498490 +2.2404752 +3.7292762 +-1.5504929 +2.1725380 +-0.0287746 +-0.4138197 +-13.2963934 +-1.4228749 +4.6755648 +-2.6536500 +-1.1642445 +-1.9475321 +0.6778810 +-1.7324120 +1.5399467 +-5.7203927 +5.2564735 +1.7161202 +-0.6154287 +2.2633588 +-4.4384198 +2.1266067 +6.6084533 +-6.2947140 +-15.4105787 +-10.1537066 +-8.3508005 +-4.0856490 +6.9042134 +-2.0886829 +2.4301031 +-16.2654266 +-3.4975855 +-2.4797714 +-5.7053003 +-6.9327168 +3.8938324 +-1.4675024 +-5.5058446 +-20.8487968 +-2.8819580 +9.7724085 +-2.0163052 +-4.8135777 +2.4677496 +-2.6041687 +-0.1673055 +1.7874776 +0.6823134 +1.0897263 +1.4362866 +-1.3041832 +-4.8266034 +0.8663443 +-4.3805542 +-6.6289673 +6.9663463 +-3.7710230 +-2.3402398 +0.7238924 +-6.8740449 +-26.8406773 +-7.1957712 +-5.1462712 +-3.7693043 +2.2923820 +1.2690791 +-11.3808460 +17.2593536 +-28.3082943 +2.8604827 +1.3751962 +-6.3413239 +5.9139891 +5.0638776 +-16.9875946 +-5.8956017 +-19.5554848 +4.9036107 +-12.4722891 +-12.5571527 +-0.3873712 +-5.8883486 +-4.5035686 +-3.1845107 +-2.8858607 +-4.2442474 +2.6788018 +-0.7130941 +-14.7817850 +0.1881853 +-7.8943639 +0.8984458 +1.3237339 +22.5395470 +0.6172568 +1.4159212 +-3.8261602 +-10.1540270 +-2.9821777 +-9.8084431 +-10.5285902 +-12.1635799 +14.9679375 +-11.1595440 +0.8988233 +-6.8651133 +-7.4028702 +0.4759005 +-7.1195564 +-3.1999040 +-1.8087354 +-3.6671832 +-2.3329415 +35.7386780 +0.7451836 +1.6260939 +3.4179049 +-8.4971972 +7.6254592 +-3.0554733 +0.9057945 +20.1789646 +1.7574311 +-6.1668272 +-0.5871697 +0.2328817 +2.7221673 +2.5308664 +-7.8974738 +-5.1109796 +0.8987162 +0.3178869 +1.1429081 +17.8256207 +-2.6529202 +4.7123675 +-1.1892364 +-1.2577869 +1.7065719 +-1.8172649 +-0.7749608 +15.1540890 +-8.7348747 +-17.2107639 +-8.6614227 +-11.5298481 +2.7672596 +-5.7366014 +0.9071450 +75.0893555 +-5.0714602 +-21.8422451 +-14.8644323 +-17.2585716 +3.4953930 +10.0807018 +-3.9468818 +0.6612321 +-7.8801346 +-5.5586362 +8.7355518 +-2.7152431 +-8.8277349 +-12.9332123 +-1.3610752 +-0.0053357 +-9.4565344 +6.2565398 +-6.9078403 +-2.8982193 +-5.1603017 +0.9876900 +13.1326084 +-1.4012880 +-0.0294308 +3.4575317 +-16.7674580 +9.5156431 +-1.3070776 +-2.3902740 +-2.1980486 +-2.6045868 +-12.4127712 +13.2476921 +-3.2181654 +-3.5255129 +-0.7782915 +-8.0589399 +-18.5827332 +-6.2266440 +1.3906240 +-5.8840384 +2.6164632 +0.6970553 +-7.7640138 +16.4090328 +-17.7510796 +-9.3554077 +3.6644313 +-11.1209955 +10.6903553 +5.3087072 +18.8198624 +-11.4756174 +-7.9692340 +-0.5992338 +-19.0319481 +-16.4749336 +1.0858287 +-9.9896717 +-12.2655144 +-23.6053524 +-3.6123400 +-3.5077670 +4.0871301 +2.1466141 +-22.1656761 +-0.6138527 +11.9543600 +-12.8475332 +3.5156600 +2.6750340 +0.5338578 +-0.3817326 +-5.1896019 +-9.1002960 +-6.0886436 +-10.3142834 +0.2680136 +-18.2830391 +22.5766201 +-5.8326197 +2.7859087 +-12.8920889 +-7.0960736 +0.7000269 +-12.7444105 +-1.5437683 +-5.4188652 +-3.8524961 +-1.2895797 +25.5843697 +0.1599238 +4.2286334 +3.5504906 +0.1289996 +-1.7964768 +-5.2455430 +-12.2560034 +29.9453659 +2.9131317 +-1.7778280 +-0.9469824 +-2.4298327 +-1.6345928 +2.1708255 +-1.6626887 +-24.7401123 +0.3659902 +-2.7567680 +2.3287859 +14.9631605 +-5.6976943 +2.3773825 +0.9831685 +-0.7994194 +-4.1960669 +-13.0162764 +-2.9317491 +15.3972034 +-8.2206326 +-0.6533353 +-9.0447378 +-14.6017132 +4.7998147 +-3.9748015 +-5.0177207 +10.1751060 +-8.0728331 +-5.5331359 +12.1278181 +2.9481902 +7.4057484 +2.2590425 +-8.9313726 +9.7114887 +5.9652576 +5.2701755 +-3.9162087 +-0.0496723 +22.2760429 +-9.5274525 +-4.2997031 +1.4487401 +-6.2223225 +-23.4669704 +-0.9298908 +-5.2277799 +9.3617811 +-25.8284798 +-10.7319250 +2.7263079 +-10.4106560 +-0.3601385 +0.1626460 +-4.1509662 +0.5534051 +-0.3055956 +-0.6915279 +-12.5365772 +-25.2173080 +6.0323825 +2.4248495 +-2.4231470 +-1.6510752 +-1.3602089 +-0.3251607 +-6.4404626 +2.9327116 +3.5844035 +0.2253777 +-1.6469136 +18.8643723 +-14.6800795 +-3.9545343 +7.5682583 +3.0146027 +-21.5519505 +-0.8477136 +0.7880524 +-11.6047287 +5.3139548 +-6.8254480 +17.3545494 +-14.4365788 +-10.0030766 +2.0269876 +-7.8052053 +-11.4954472 +-4.5571985 +-6.2397342 +-15.5970993 +14.3577394 +10.2238607 +-10.3514652 +-7.9964142 +-0.6562524 +-10.5849648 +-4.9613595 +1.1290805 +-3.5267708 +-10.7991514 +-2.5484748 +3.8947494 +3.3680801 +-2.7207637 +-0.6152156 +-17.8434868 +-3.0136385 +-9.9600573 +11.7715683 +-4.4647269 +0.1426912 +2.4624076 +-8.7357082 +-6.4950085 +-16.7813148 +-4.8844447 +-7.4554048 +28.7413387 +3.6877503 +1.5755354 +-7.0920320 +-0.0623580 +3.9565885 +-7.1944399 +-3.2712705 +21.7296181 +4.1860261 +0.0802372 +-3.2171929 +-4.4201493 +0.1048329 +12.5738316 +7.5569878 +-1.9084545 +-3.5185206 +-6.3464003 +-1.7260115 +-2.5653520 +-1.3651402 +-21.3165627 +1.2314634 +-8.9346457 +4.0108695 +-15.9898129 +-8.1157942 +-21.2806511 +-14.4399958 +-0.5578766 +7.2472029 +-19.3249550 +-3.1620526 +-0.0104161 +2.4847252 +16.6529598 +-1.4712807 +-6.3888059 +-4.2691655 +-3.1468666 +-5.6042309 +2.1907864 +-0.4266543 +2.0971992 +-4.7675180 +0.7512592 +-8.9143867 +-24.2074528 +5.4383144 +-3.0258265 +-0.4542818 +-1.2749125 +-23.3970909 +0.3004167 +-11.4394169 +-0.8306801 +-1.0063769 +6.7239728 +19.4943142 +-0.5230725 +0.9968592 +3.1818624 +-8.7882109 +-15.0422840 +-0.0283045 +-3.6317527 +0.9839109 +-1.7210932 +-4.0126429 +-3.2758980 +-2.4558101 +-0.2321955 +1.3705684 +-5.9018917 +-22.5926857 +-3.5435798 +-1.7092290 +-2.2291520 +0.4569176 +-0.1780565 +0.8125602 +16.0913372 +-20.3521881 +0.5380369 +11.9565334 +-3.0281987 +3.4695508 +1.6468291 +17.7588215 +-2.0126729 +-9.3332138 +-5.2807121 +-8.4763746 +-2.3058546 +0.9865475 +-2.5516520 +-1.5719739 +2.1775475 +-0.9504387 +-2.8194227 +1.3960855 +-0.2782722 +-6.0386572 +0.3977075 +-15.8855581 +-6.7929764 +0.9508559 +13.2642117 +2.2546980 +1.8365989 +0.1426104 +-33.0429840 +-1.3211124 +-5.9039626 +-11.9714260 +-6.0941114 +6.7480869 +-4.5523276 +0.6875834 +-2.7761443 +-1.1231619 +1.1671550 +-4.6594319 +3.7618649 +-0.1427250 +-3.3452048 +-1.0630579 +16.9688740 +1.1946598 +1.3981105 +2.3529592 +1.7405279 +-3.7397058 +-1.1381127 +-34.6308594 +10.3784609 +1.0956708 +2.0233259 +0.3856852 +7.1859136 +-18.1363506 +3.0240920 +3.9604192 +-1.5829854 +2.0332899 +0.0532900 +-0.3778324 +-19.1935635 +-1.3807334 +-0.6943592 +0.3251043 +-1.2212781 +-2.0205011 +0.5566075 +-2.0135860 +6.6039414 +-5.2965312 +5.2908564 +2.0547929 +-1.1987293 +2.2086194 +-2.1264403 +0.1990777 +-10.9288177 +-8.7003765 +-16.6711216 +-7.7233367 +-7.7775841 +-6.9736395 +8.6367636 +-1.6076510 +4.2288866 +-16.7047710 +-3.6012075 +0.4055221 +0.7253104 +-9.7631073 +7.7130890 +-1.0664920 +-2.7257376 +-11.6321487 +-2.7473385 +17.8193531 +-1.3091824 +-6.0257282 +0.4181522 +6.2361412 +-2.1729598 +2.3110919 +1.0767432 +10.4193974 +3.3642783 +-1.7179164 +-1.9552377 +5.6825266 +-3.5704987 +-5.9705329 +6.2394018 +-4.4433446 +-1.6830282 +0.6197266 +-6.6801825 +-9.6207247 +-6.7726469 +-7.6896625 +-4.3466363 +3.1275423 +3.4462874 +-12.2584057 +43.4208183 +-22.7321835 +5.4385433 +0.9389220 +-6.0516534 +6.1553788 +4.4055443 +-23.0336494 +-5.3104630 +-34.7766953 +6.3073063 +-14.6448336 +-14.6184711 +0.1103799 +-6.1373148 +-3.7519610 +-4.7512732 +-2.7473021 +-4.6080666 +2.3037806 +-2.5087974 +-16.6807728 +-0.4121314 +-15.6704397 +-6.0207553 +2.3433702 +-2.7740672 +-0.9358487 +2.3885486 +-2.8233888 +-17.9547462 +-3.2536316 +-12.9986143 +-16.8852177 +-13.4363241 +16.7915077 +-10.8954668 +1.6549759 +-7.3621211 +-7.1816978 +1.5484831 +-5.7523856 +-3.3063877 +-3.8051283 +-5.4049110 +-1.6990939 +38.3920746 +1.1099414 +2.9635208 +3.3089700 +-7.5518641 +16.2847633 +-3.5540929 +7.1415386 +23.0297070 +2.1937006 +-5.3541327 +-2.3181949 +0.9612461 +-10.1833754 +5.7684698 +-8.3751144 +-5.9914837 +1.0783197 +-2.3949924 +1.2039832 +0.6873560 +-2.9983525 +-1.9792787 +5.7641234 +-0.4929737 +1.6741621 +-2.7140923 +-1.9329522 +18.5565109 +-5.1202669 +-13.4204540 +-8.1705990 +-15.4144716 +2.4281197 +-4.3099942 +1.0161029 +16.7813740 +-11.7988644 +-21.8348789 +-18.6305828 +-14.3022537 +-5.1770444 +10.6727524 +-3.2305918 +7.7959309 +-3.5338821 +-4.3099699 +7.0862298 +-3.1787682 +-7.3848977 +1.2103769 +-1.4594755 +-1.5075140 +-26.3664665 +-0.7821916 +-4.6449671 +-2.5816979 +-8.8443718 +12.5492811 +-7.5798202 +-3.9028199 +2.4574924 +2.7845242 +5.7063556 +1.3086339 +1.0564433 +-3.6854095 +2.8999698 +-3.6745391 +-11.6575346 +8.2925644 +-1.2623454 +-3.0336363 +-0.8836020 +-4.5619044 +-4.5116177 +-8.1474562 +-9.8486996 +-5.2964191 +4.0738196 +4.6817999 +-21.7993221 +13.5047989 +-8.6915274 +-20.9403381 +11.2238798 +-7.4303789 +10.3109741 +5.8876071 +-6.4766755 +-7.6807704 +-13.4008932 +3.1334362 +-28.3432446 +-29.0843983 +1.2422920 +-8.6907740 +-4.4642935 +-15.8765993 +-3.7520437 +-5.6938167 +3.0325212 +-5.2987819 +-23.6804581 +-0.2863465 +9.6527195 +-9.5203590 +5.8828416 +6.0469193 +-0.5860375 +0.3583373 +-3.0276883 +-8.7431183 +-5.0343051 +-5.9687567 +-0.8605132 +-15.9201136 +26.8762665 +-25.9068012 +2.2047226 +-10.9326229 +-7.5577812 +1.6849561 +-13.9690933 +-1.0486025 +-4.9713030 +-7.9616380 +-2.8421743 +46.8633690 +1.7830290 +3.0342081 +3.6161816 +-3.2310438 +-2.0420318 +-5.1156535 +-11.9491386 +34.8322525 +0.7449158 +-10.8980169 +-6.1704693 +4.0757160 +0.0438226 +6.3088613 +-5.5978675 +-7.2121930 +0.6002284 +-1.6473485 +0.1167709 +0.0293800 +-4.4818182 +12.1934872 +4.5755916 +0.0789572 +-1.8102177 +-2.0899475 +-6.8312941 +16.5647240 +-15.1149807 +10.3955812 +-9.2494535 +-14.7879391 +3.7389007 +-8.7764654 +1.9176066 +3.6316767 +-13.2463140 +-7.0040226 +-5.6360388 +-4.9942951 +2.1615267 +16.1026573 +3.6224532 +2.9009717 +-8.9716930 +3.6675060 +2.7762413 +-1.8560138 +25.8600388 +-9.1028919 +-1.5320860 +3.3302977 +6.9986587 +-8.8860655 +-4.5169683 +12.7653265 +-1.9744451 +10.1149082 +12.8918571 +-2.2459993 +-9.1132202 +6.6802573 +0.3024337 +-3.0444400 +-2.9311185 +2.3535182 +-6.3317060 +-2.6195395 +-13.1934099 +15.1064444 +-1.0266991 +-2.0036135 +-2.5384300 +2.0929728 +-2.3226717 +1.5992849 +23.9461403 +2.0644691 +5.3216958 +-0.6369308 +-9.0296097 +-9.8837290 +-1.1774756 +-1.6227595 +-0.0124404 +-7.5274868 +8.1861677 +3.1506371 +-0.9225181 +-7.5102668 +-14.6894684 +7.3695569 +-32.8104820 +-0.2916872 +0.6085594 +-4.3680959 +-11.7199707 +-11.8411541 +-4.3556638 +-3.1434913 +3.8335519 +1.4432458 +-9.5112066 +-0.3961111 +1.7198777 +-5.3053474 +-7.4544077 +0.2587892 +-7.5351300 +5.2452602 +-2.0152404 +0.3113985 +-1.1615101 +-6.7393060 +0.0028177 +-10.8287811 +17.8583183 +-1.8987451 +3.5863714 +-15.3937311 +-0.0421749 +1.3374316 +-7.7187171 +7.9818978 +0.3147586 +3.3046372 +-7.6914773 +9.9256773 +-0.0921846 +9.1744747 +2.8035843 +1.5289969 +-8.8437529 +-2.0243802 +-1.3189728 +30.2986279 +-0.2289511 +0.4882077 +-3.1805706 +7.0029297 +-0.3186890 +6.8067904 +6.7198501 +-5.4016886 +-2.5509236 +-12.5647707 +-3.0903759 +0.7222482 +-3.7619979 +-9.5209198 +-6.0216885 +-5.4535036 +-0.1054805 +-5.3869519 +-2.4750381 +-5.3397827 +7.1402693 +7.6648865 +10.4880457 +-9.9312363 +-0.6506734 +-0.0459949 +3.4189939 +15.4329834 +-2.6014938 +-7.5017152 +-5.7972822 +-4.4334927 +-6.0962048 +2.7403533 +-0.0954721 +1.7743478 +-4.6298947 +1.0366981 +-10.9371634 +-26.1169987 +6.0551357 +0.4227452 +-0.4372546 +-2.2266870 +-19.0512238 +0.2648503 +-12.4606228 +-0.2373430 +-1.6862782 +6.8188200 +21.6093063 +1.6422507 +0.9882849 +1.9534773 +-16.4665966 +-13.8040495 +-0.1246978 +-3.9958162 +-2.0328028 +-1.9000341 +-4.3643136 +-3.5931404 +-1.4313637 +0.2292298 +2.0090055 +-6.6768107 +-25.1175404 +-4.2378068 +-2.0483358 +-2.6989794 +-2.4182112 +-0.2228318 +-0.0957899 +16.6163216 +-20.8711929 +0.4613633 +13.4147758 +-3.1002598 +2.5662892 +0.7857287 +23.8117695 +-1.1870998 +-13.9995298 +-3.1865749 +-10.3264685 +-2.2348573 +0.9643244 +-2.4980364 +-2.2118132 +2.5424747 +-1.0533314 +1.8091486 +1.3257779 +-0.7534480 +-6.3248219 +0.4910813 +-17.4528255 +-7.7438884 +1.4073900 +-9.2233171 +1.1365814 +2.5728714 +-0.1330973 +-35.0721397 +-1.5235176 +-7.6227498 +-12.3999281 +-6.7433071 +5.0262680 +-4.0636191 +1.4665360 +-3.9141150 +-0.7910975 +1.5480726 +-4.6335158 +4.1696649 +0.7360082 +-4.0897112 +-0.6106762 +15.7959690 +2.4491434 +1.2589564 +1.4317157 +2.1098394 +-5.4155216 +-0.9638373 +-30.8040524 +-46.0722313 +1.1537429 +0.3290071 +-4.6805673 +7.4355164 +8.7854376 +3.8565223 +5.2919540 +-2.4292395 +2.4975204 +0.7101685 +-0.7372409 +-24.5007057 +-0.6850592 +0.6331555 +0.5403921 +-1.0408531 +-2.8034837 +0.0806532 +-2.0438039 +-4.0759668 +-7.6382661 +10.1222334 +2.6387870 +-0.4621832 +2.5322022 +-4.0778880 +3.2835281 +-18.8046284 +-6.9765997 +-16.5374088 +-6.2782950 +-9.1599302 +-8.1600332 +3.9396579 +0.1892313 +-5.9274487 +-12.4094458 +-2.6238968 +-6.5812063 +-11.5780306 +1.0334367 +7.7353978 +-3.3002262 +-7.2415004 +-6.6002498 +-0.4047827 +-10.8611431 +-1.4308845 +-6.7527242 +1.5012144 +-1.8213329 +8.3024607 +2.8053424 +-0.4526877 +3.8494799 +-4.3693185 +-3.2493618 +-5.9107494 +-8.0052738 +-3.5811191 +-14.8739738 +0.4794241 +-4.7378063 +-0.7818344 +2.5253105 +-5.7036152 +-23.0873470 +-8.8748569 +-6.1310816 +-2.4658296 +2.3675618 +-0.9413520 +-1.4600847 +6.5896039 +-2.4990835 +1.9366801 +0.3341574 +-6.1878934 +7.4572144 +3.2434862 +-18.4290123 +1.0122516 +15.6550903 +-16.4854240 +-21.6502113 +-10.8783684 +0.2285264 +-5.4335303 +-2.9003611 +-4.6123033 +-1.9485998 +11.3444233 +2.0545981 +0.0263645 +-16.4498253 +0.7913190 +-3.3658116 +-0.0874275 +1.7759558 +27.2336788 +5.6056943 +3.2089391 +-4.2920308 +-8.1161871 +-2.2573171 +-10.8489542 +-13.0155201 +-7.1114974 +8.9026003 +-11.8986168 +2.2272792 +-5.1395679 +-5.8717132 +1.9341466 +-5.9727478 +-2.3383536 +1.9989744 +-2.5094609 +-0.8842798 +34.7489853 +3.4745865 +3.2206442 +1.9249266 +-6.7137303 +5.6440778 +-1.6162887 +1.6837031 +9.7162523 +1.4641364 +-3.9641013 +0.3733926 +5.5315380 +8.3608150 +9.3454113 +-5.8534122 +-5.2030301 +3.4481027 +3.7698810 +-0.6836546 +-9.7610626 +-0.5186371 +-2.7253318 +8.0502930 +-1.1628257 +1.5299798 +2.0652344 +-1.8476154 +2.2432652 +-15.1745625 +-12.9854994 +-7.6811457 +-5.1712213 +3.2685668 +-3.0972500 +2.7400138 +0.1959756 +-8.4606361 +-26.7446690 +-12.7912760 +-13.0952263 +-4.7223182 +6.4987526 +0.2596485 +-8.5469952 +-0.5942954 +-1.4146258 +-2.3830464 +0.1490837 +14.9313688 +-7.0946074 +-2.1738708 +-7.0984440 +-5.8961043 +-4.7888608 +0.1322915 +-1.7932926 +-16.3580894 +8.4432449 +-4.3723884 +10.1025085 +1.3029622 +1.8410629 +3.9179833 +9.0020561 +-2.3421812 +-6.8299022 +-12.9655762 +-3.6469641 +-3.7093515 +-3.1235747 +-4.1242404 +-1.4531505 +3.7603352 +0.1339406 +-1.6501546 +-9.5623274 +-10.0918131 +-2.6077509 +-0.3940886 +0.1253363 +-6.0034604 +8.3494463 +0.1076482 +8.0810604 +12.1619034 +-11.0721893 +7.1799250 +3.8003066 +-0.4171554 +6.6893268 +8.2123604 +-9.6584816 +-29.7694035 +-14.5637798 +2.4895720 +-8.4206505 +-5.4625278 +-7.1670628 +-3.4832828 +16.5229702 +3.7091279 +0.6490047 +-22.0469704 +0.8731387 +-11.1388979 +-2.4707563 +3.6286108 +-0.1447219 +5.3570547 +2.4971344 +-1.3635437 +-8.0022755 +-2.8140163 +-10.8855267 +-6.0676689 +-15.3051491 +17.6233292 +-14.6617327 +-4.6563168 +-4.9771767 +-8.0707521 +3.6939151 +-12.3139782 +2.1543016 +2.6441257 +-2.2536535 +1.4464983 +28.8035526 +6.3649435 +5.6122365 +1.4161477 +-5.1641474 +-11.3250856 +-2.8276250 +0.5125163 +-14.0381365 +1.7536064 +-2.4249175 +-3.1027102 +11.9189863 +-0.2316012 +9.4099283 +-9.9141273 +2.7507367 +6.1293898 +5.8041039 +-0.5149974 +-0.9237490 +-1.1465930 +5.3192129 +8.4999914 +-3.2601819 +-1.6261833 +0.2349636 +-4.6076703 +-1.0532190 +-18.0316792 +-3.2013762 +-3.9803689 +-13.6702757 +5.2515683 +9.1208763 +3.2598035 +-0.1364842 +-1.1660185 +-0.9587913 +-7.3112359 +-1.2442586 +2.1322522 +-9.7722597 +3.5920959 +4.6875715 +-2.1046596 +9.2572813 +-0.1153093 +-0.0477144 +12.2611246 +0.4174905 +3.2104051 +2.6956728 +3.3073673 +-0.3235755 +-0.6266969 +-10.7366734 +-5.7643261 +-1.4203495 +1.0704323 +12.7591734 +6.8192177 +-1.2313651 +-0.0960791 +-0.1173718 +0.4986645 +-11.3140678 +-0.0708971 +-0.7666277 +-28.9718704 +-2.1363852 +1.5687277 +1.4136599 +14.1787806 +-0.2342341 +-0.1506828 +-14.7081118 +0.8906105 +1.2288113 +1.8071281 +-3.2645833 +1.6015931 +-5.7569423 +0.0883645 +0.3113485 +-2.6017876 +-8.0023966 +11.0310659 +-8.4535151 +-0.1702775 +4.6820941 +-2.5154674 +1.2452120 +-8.8923807 +0.4045064 +-0.3010290 +-4.6537104 +9.1840496 +-0.8086632 +3.5466754 +-0.2117603 +0.4738380 +3.7447050 +-3.9319537 +5.5738411 +-2.6382713 +6.7341938 +5.9417095 +-0.0415741 +-1.7030442 +-4.4491029 +-10.0877151 +0.5467996 +4.5787764 +-7.6344180 +10.4391994 +0.4213228 +-0.1281658 +2.5155964 +-3.0495021 +-0.5427144 +3.5601397 +9.3584728 +-6.1282029 +0.6867942 +12.8391314 +-0.9569992 +-0.9354581 +-8.5086536 +8.3826885 +-2.0680237 +-1.5772969 +1.9109286 +13.6159458 +1.4456240 +-0.3092434 +4.6525702 +2.4893155 +3.0589802 +-7.8819332 +-3.0474780 +-0.0669593 +-1.7054054 +0.0917327 +-2.3952930 +9.9010868 +17.9515915 +0.5835911 +0.0419154 +1.8359463 +-5.5594463 +-3.9823196 +-5.8920665 +-0.1724687 +24.9302483 +-6.4325457 +-7.7855186 +11.9802332 +-0.5679895 +1.8303636 +0.4385125 +12.5088196 +-0.6160176 +0.6377413 +4.4604115 +-3.0334880 +-8.6675863 +-6.0389080 +-5.6052551 +-6.2870612 +1.4068773 +-0.2577001 +1.8769583 +-5.1535001 +1.0160325 +-11.9860659 +-20.5285854 +8.5205822 +-0.5050393 +-0.9010513 +-3.2563341 +-17.9095783 +0.4439223 +-14.8990593 +-0.1521108 +-2.7066047 +6.7579360 +22.9050522 +2.6357157 +0.8021042 +2.1740570 +-15.6024065 +-14.0278482 +0.1242575 +-5.0717525 +-2.1217120 +-2.2601604 +-12.4612417 +-5.4696097 +-2.3807156 +0.0095948 +2.0331752 +-6.2896395 +-26.1277065 +-4.9902682 +-2.3766909 +-3.8244848 +-3.3839025 +-0.4324787 +-0.6195346 +15.7552948 +-18.8707733 +0.9261664 +14.5152464 +-3.4141898 +1.2675207 +0.5858886 +22.2317410 +-0.8428470 +-10.0392351 +-3.4212666 +-9.7589293 +-1.9349741 +0.9659697 +-2.3773332 +-2.7051783 +2.4907587 +-0.8893884 +2.3547206 +1.1304492 +-1.4385993 +-6.9828453 +0.9868898 +-18.2355022 +-8.6473360 +1.6045470 +-1.2770867 +0.7748181 +2.3614185 +-0.0144357 +-39.9672585 +-1.2225318 +-7.7062016 +-13.2358294 +-7.8161922 +3.4134963 +-4.1022711 +0.9388573 +-5.6438417 +-0.7314222 +1.6753731 +-4.9130487 +4.2817922 +1.6648310 +-3.2429602 +-0.6228161 +15.3411999 +2.8594768 +1.2488931 +1.3845320 +2.3550062 +-5.7110491 +-0.5348276 +-29.1641445 +-50.4764175 +0.5259900 +-1.0346478 +-5.1462235 +6.6057653 +6.7823439 +4.2544847 +4.8455925 +-1.9851975 +2.6135952 +1.5176209 +-1.2260532 +-27.6150589 +-0.0960203 +5.9008837 +-0.8996372 +-1.2951347 +-2.9451842 +-0.9442425 +-2.2156010 +15.0665522 +-4.6325202 +4.6122203 +2.9816453 +-1.2418823 +2.4492834 +-4.5771055 +1.5089856 +-9.5431366 +-7.8380055 +-19.4870605 +-6.7053108 +-12.7054167 +-7.5831537 +2.8314431 +-0.0816819 +-10.3210554 +-11.3712473 +-2.8491488 +-0.3541606 +1.7606447 +1.4872980 +-37.7448845 +-3.8482945 +-8.6355152 +0.7632483 +-0.1789587 +11.9929790 +-0.7036486 +-6.6100349 +2.2070658 +2.8321958 +4.9558201 +1.5357211 +0.1068779 +-28.5964241 +1.0093524 +-2.4164631 +-6.3627810 +-12.2735367 +-3.9752905 +-10.2260017 +1.6221179 +-4.8764315 +-1.2642015 +2.7836838 +-6.5478392 +-16.5028038 +-10.3364487 +-5.8730149 +-5.1898232 +4.1807342 +-0.5903665 +-3.1371891 +8.7345448 +-0.0667114 +9.7347336 +2.0403981 +-6.5475383 +5.6927905 +2.7980862 +-13.8627224 +1.0559772 +10.1047974 +-4.2899232 +-16.7177048 +-11.6050158 +0.4678240 +-5.8616800 +-2.9727588 +-4.2627516 +-1.9091047 +10.5665436 +1.5368940 +-2.1780775 +-16.7948074 +0.3485430 +-1.0777626 +-5.3769078 +2.5045426 +-2.8594773 +3.8808765 +3.0505886 +-2.1502974 +-1.6357461 +-2.6916473 +-10.9189558 +-14.1561775 +-9.1147442 +6.2885962 +-10.6364260 +1.8603556 +-7.6527119 +-6.4113288 +2.1693256 +-6.3813863 +-1.8528357 +2.1812098 +-3.5200682 +-1.0931487 +35.5452538 +3.9490683 +3.6371179 +3.3221335 +-6.2090983 +9.5962439 +-2.2920992 +22.7556019 +6.3210421 +-0.7799736 +-7.3880892 +-2.1040170 +3.6972950 +-20.2509861 +8.4817734 +-9.3899193 +-6.7109537 +3.2576122 +3.8966687 +0.7102633 +7.5393276 +0.2904390 +8.2409344 +-0.5037184 +-0.3852881 +1.8391494 +-0.6861085 +-1.7083918 +27.1041145 +-3.5532174 +-13.7015772 +-7.1371884 +-7.7735190 +3.3266346 +-7.3560643 +2.4699032 +1.8471521 +-9.4695654 +-25.3350029 +-15.5709648 +-16.2346306 +-3.0768554 +6.5407038 +2.5557251 +-10.5993891 +-8.2743702 +-1.9455847 +-11.0085182 +-8.4655027 +8.3218966 +-8.9143391 +-2.9230459 +-9.3898382 +-10.3755693 +1.1496681 +-14.9568634 +0.9366684 +-3.5514612 +11.4776287 +11.9331684 +7.2392387 +3.8959863 +2.7333443 +0.1207005 +-21.8770618 +-2.3727725 +-11.4257593 +-13.1555691 +-2.8705556 +-15.1757421 +-4.4027362 +-3.6753523 +-1.0164421 +4.4765692 +-5.5639796 +-22.8021450 +-11.2928343 +-8.7237253 +-5.6808333 +-4.6034927 +0.1198439 +-13.6951637 +9.9872618 +-1.8281577 +14.1174803 +12.5013895 +-10.8072453 +5.7480330 +2.2965796 +6.2142673 +2.7666376 +-3.8740666 +-18.9136314 +-31.3116093 +-20.4373322 +1.5993063 +-8.1328630 +-3.0893831 +-2.3431098 +-2.4833376 +16.5750637 +3.6488883 +-1.3155687 +-25.7528934 +2.3898907 +1.4919218 +-9.6684723 +4.9825888 +1.1922200 +8.8536644 +3.3429182 +-2.2852721 +-0.6282954 +-3.2319796 +-13.7168102 +-18.0008392 +-9.4083624 +19.7178345 +-17.6840191 +5.5981588 +-9.4438009 +-3.7566211 +3.9004114 +-11.4137487 +0.0758206 +3.2783306 +-1.7926431 +0.5504156 +45.2265816 +5.5636601 +6.9269114 +5.1049356 +-1.3449346 +-5.4255495 +-1.7184780 +3.0471907 +-11.5802860 +1.0570529 +-4.8933935 +-23.9905987 +13.7723398 +2.1725750 +12.4682379 +-2.0582569 +-23.2219086 +6.6405044 +7.2873402 +-2.7433493 +-0.6320756 +-0.9769394 +2.7414305 +-2.4265919 +-0.6368669 +-1.8118353 +1.1498979 +-5.8073401 +21.8826427 +-9.3306923 +-9.4463835 +-4.6405210 +-1.9891901 +6.6452088 +7.9999175 +-1.3372598 +1.5156679 +-6.5771012 +-19.9174919 +-8.5894632 +0.7421759 +-4.9295406 +-9.7368889 +1.2460116 +-14.1830654 +9.9867830 +3.3166640 +-2.9340696 +-0.9267907 +23.5751762 +-10.5582647 +-2.6519229 +-3.5944602 +-3.1642437 +-8.5697403 +-2.2322056 +-2.7760477 +16.8180695 +-3.2983267 +13.9906597 +1.4519494 +-0.3069491 +-1.0037867 +-0.4334899 +-0.5918965 +-1.3715631 +-1.7558986 +5.7370043 +0.6914597 +-8.9341879 +0.2844581 +-2.2477252 +-7.5652952 +8.9534159 +-4.2142944 +0.3458557 +-3.5259490 +-1.1592211 +1.1426642 +-20.8111687 +-7.8855863 +0.2180081 +15.4042845 +4.6062760 +9.7104635 +4.0853143 +-7.6193891 +-7.8918500 +2.6182122 +7.0776086 +1.4236542 +-27.0020790 +-15.0034866 +-0.8097916 +7.8998961 +1.2655550 +2.3061745 +-7.4753966 +18.4300632 +-3.4109089 +-1.2079082 +1.9955570 +-2.2896485 +-3.2660713 +3.9426131 +-1.1192509 +-7.2976141 +12.9826450 +-0.8130105 +10.9601479 +-6.9156189 +0.9139312 +-8.4108515 +2.8982167 +2.7569656 +5.7785144 +19.1652336 +9.6251163 +0.0873685 +4.7176199 +-2.6236839 +0.4866027 +-3.1419842 +-8.8998566 +2.0862644 +-1.9350502 +-0.5355055 +5.6461854 +-3.1298447 +5.1693592 +5.4892697 +3.0970244 +-4.1009054 +-12.6227121 +1.0019188 +-1.0666245 +4.3875403 +-4.4289608 +1.2042464 +-13.9333515 +-10.5797405 +1.1471542 +20.0101433 +-6.1656432 +-11.0267658 +12.8210344 +1.4552921 +-12.6130972 +1.1641215 +-1.4942964 +1.9609863 +-10.4386110 +-10.0901594 +-6.8325424 +0.2127670 +-5.8031974 +-6.2792134 +-4.0419979 +-1.9283416 +-0.7564629 +10.1472816 +10.5718050 +-0.2113592 +2.8834832 +-5.0986099 +-3.0661397 +-9.4594326 +-7.1648841 +-6.9961524 +-6.4546938 +-1.6229666 +-0.9059295 +1.0434279 +-6.6201234 +0.6960919 +-13.6230049 +-20.1803780 +12.5837078 +0.5688110 +-0.5728524 +-3.3200626 +-16.5336857 +0.0929911 +-16.7053127 +-0.2482699 +-2.9180281 +6.5436158 +24.2512264 +1.4991544 +0.7586771 +2.0587723 +-8.9923038 +-12.9079428 +0.0772145 +-5.3498421 +-0.4467921 +-2.5777001 +-12.0724306 +-9.0828257 +-4.1694908 +-0.3657744 +2.7295024 +-7.0510483 +-26.9365921 +-5.3193903 +-2.4089389 +-4.1126990 +-3.8404589 +-0.3509741 +-1.5173751 +14.8464127 +-18.3119926 +1.9979378 +14.7942047 +-4.1040421 +1.3436201 +-0.0049557 +25.1275730 +-1.2988701 +-11.5638742 +-4.8011532 +-10.6718369 +-2.0374293 +0.9615846 +-3.1790311 +-2.7692778 +2.6361642 +-0.8452682 +2.9163172 +0.7303973 +-1.9197633 +-7.6586809 +1.5150836 +-20.3766308 +-10.0601864 +1.2814727 +-4.7060719 +-0.3775074 +1.6098274 +-0.2649972 +-41.6147041 +-1.3321404 +-8.4603281 +-14.5598383 +-9.3767233 +1.8519591 +-4.2689133 +0.5354451 +-7.0436888 +-0.8508548 +1.3385866 +-4.9745145 +5.1323404 +2.2479591 +-4.3886442 +-0.2802723 +14.0011339 +2.8197238 +1.3817865 +0.7661968 +2.5305541 +-8.3038769 +-0.5716879 +-10.3506746 +-42.7857857 +-1.0729642 +-2.3358703 +-7.8105974 +6.4272156 +10.6703424 +4.2466707 +5.1849551 +-1.5874255 +3.0343869 +1.1550741 +-1.2648172 +-29.2586880 +-0.1332869 +2.2931380 +0.7574375 +-1.6156204 +-3.3142130 +-0.5207112 +-2.2924120 +0.9592652 +-5.9119396 +-0.0032254 +2.9689248 +-3.1963928 +2.6509290 +-3.6930830 +1.2506144 +-13.3972168 +-7.8547082 +-21.2969837 +-9.1785679 +-16.1853695 +-9.9202471 +0.7633995 +-0.2257021 +-17.0094318 +-10.5670795 +-3.2609448 +-6.2973261 +4.1721168 +5.1054950 +-11.6337137 +-3.9814548 +-9.7817926 +3.6726096 +-1.1466402 +52.6441269 +-0.1720716 +-7.6714311 +-4.5948267 +0.8660448 +2.1586285 +1.8905658 +-0.4139080 +-25.9211464 +1.5673289 +-3.2103546 +-7.1325436 +-12.9785614 +-4.1650033 +-16.1357479 +0.1037905 +-7.7666879 +-3.0141451 +3.6229177 +-5.2376785 +-14.4834261 +-11.0606222 +-6.8880320 +-6.1478009 +1.0271816 +0.6844600 +-0.9381846 +7.6737475 +-2.6266794 +15.1617975 +1.5095516 +-9.2242069 +3.8898900 +2.3999438 +-15.0585670 +0.1927869 +5.2338271 +-4.0393691 +-19.0597839 +-10.8534555 +-0.0597382 +-7.0693045 +-2.5962765 +-6.3951478 +-2.2257097 +12.3212204 +-0.2427656 +-2.9094121 +-18.3013706 +0.6480709 +-17.8752880 +-1.8729784 +2.5811965 +-11.5024796 +1.6736530 +2.2482462 +-3.4200935 +-13.3311043 +-3.5386000 +-11.6773767 +-23.0869732 +-9.0007305 +1.7158116 +-9.6560230 +1.7873788 +-8.3983459 +-5.3046584 +0.7899475 +-5.3817606 +-0.1270187 +4.3971810 +-4.5346518 +-0.1721743 +34.8987160 +3.6727171 +4.7605538 +1.6340320 +-6.1144600 +-1.6825945 +-2.6006370 +3.6393883 +-7.6408510 +-3.4179473 +-12.3433409 +-3.2154336 +3.1934149 +-1.3155551 +10.6323118 +-10.2720413 +-5.3173776 +3.5039294 +3.3980074 +-1.2996492 +-28.3883095 +-0.1978999 +2.9253087 +8.3217077 +-2.9514925 +1.3218417 +3.4052751 +-2.2111571 +-0.9444467 +-7.6544175 +-5.7143579 +-7.0105610 +-13.6073189 +3.6014640 +-1.8632522 +9.7821054 +9.2246523 +-9.2078362 +-26.1283779 +-14.5573807 +-18.5846386 +-3.0570991 +5.0584087 +-1.0338912 +-13.5414867 +-3.5104551 +-3.1489124 +7.1639752 +2.6904001 +15.5038128 +-10.4765072 +-4.1357002 +-9.8525162 +-8.5101204 +0.3802366 +-13.3534069 +1.3974644 +-1.8194571 +2.9764833 +10.0853529 +4.8085017 +2.1548858 +2.6624379 +11.1764307 +-14.3226633 +-2.5409086 +-11.1354332 +-6.3861914 +-3.2456369 +-20.8049908 +2.6340463 +-8.0566969 +-2.2225232 +6.2988210 +-5.8252745 +-6.2966242 +-11.8153067 +1.0689596 +-7.8868618 +1.8107028 +-2.4255435 +-3.5141897 +8.2253590 +1.5254896 +22.2396202 +12.4073830 +-12.2896185 +1.8808414 +2.3425162 +10.5900459 +4.4257321 +3.5295858 +-4.1733088 +-37.0391960 +-13.3222351 +2.2264276 +-10.7150021 +-5.0010200 +0.2292455 +-2.5403159 +14.7076521 +1.8279146 +-1.8112279 +-22.9992237 +-0.8037814 +-5.4212184 +-4.7036290 +4.4104648 +5.2731962 +8.5672178 +1.5395248 +-3.2048595 +-0.9692217 +-5.4604406 +-18.5934772 +-24.3857250 +-9.7168112 +10.1274786 +-26.2965889 +3.9167552 +-8.7069941 +-9.9221954 +1.9518912 +-10.3495178 +3.5858254 +5.2269750 +-6.6490068 +2.7632933 +47.3302879 +6.6579976 +6.5788760 +4.3872466 +-4.7254348 +-14.7451077 +-4.2672396 +-5.1627603 +-10.0905218 +-1.8417352 +-1.8049357 +-8.8802443 +12.9718351 +7.0515289 +16.1802273 +-4.7842684 +-5.1653733 +8.0647974 +8.3888607 +-2.5416865 +-7.5610342 +-0.6400830 +1.0329792 +5.8634295 +-2.4817398 +-1.7567962 +6.4564142 +-6.1352329 +2.2350788 +-14.1906672 +-2.2172406 +-4.1874933 +-8.8381186 +7.2983332 +-2.3227346 +-1.6526940 +4.1119862 +-9.2465954 +-15.3840704 +-17.0887794 +-13.7473021 +12.5076523 +9.8102360 +-0.1168417 +1.2370790 +-3.6620059 +-0.5273044 +3.1904836 +0.7594553 +15.9631052 +-20.1250801 +3.2197843 +-1.1842966 +-27.1969280 +4.0146513 +1.1484295 +-2.8102536 +10.6117058 +-2.5326865 +8.5655546 +5.5676541 +2.4093454 +0.0391824 +-0.1195771 +19.8444672 +-3.3654170 +-2.9192228 +-5.7356043 +0.1051049 +-6.0281034 +-11.3392353 +-7.2174959 +-8.4413843 +11.0883379 +-12.0997057 +18.6277466 +-4.6774030 +11.4026880 +-0.3614327 +-16.6821442 +-0.7870005 +-1.4570210 +15.6437111 +2.2748597 +-5.6398478 +14.9059744 +-6.8687305 +-8.8858175 +1.0686612 +11.6126976 +-3.0877020 +-17.5180912 +-16.5699921 +-9.5562687 +15.1806269 +2.2283707 +-1.0882797 +-3.4897182 +10.2455158 +-5.0511374 +10.7336035 +-0.3962638 +-8.0930233 +-15.1926908 +3.3784831 +-8.6556349 +-0.0246346 +4.6573272 +0.5836592 +8.2916193 +3.1723876 +0.4905331 +-3.4711556 +0.8908258 +-3.3949187 +2.7006264 +6.6344104 +9.4711304 +-3.2542629 +-10.8462048 +-2.5222337 +2.2883823 +-8.4756660 +-9.2921629 +9.5162449 +-15.0439634 +7.0642486 +4.2262249 +12.6313620 +4.2876415 +4.2908440 +2.1584389 +7.6293602 +4.7622962 +-1.7897862 +-1.6648468 +-8.7669888 +2.4371119 +4.9847307 +-0.2891437 +6.7761350 +-0.0324296 +10.1921892 +15.2693138 +-0.5778957 +13.0637350 +2.9583032 +-15.7176723 +0.2190514 +-2.1533916 +8.4634972 +-9.4637384 +-15.0601959 +-4.6414676 +7.3878284 +-6.8655329 +3.1365523 +-11.3816528 +2.1868167 +3.8951008 +3.2977033 +9.0683002 +-0.6646548 +-1.4034474 +-16.3910675 +-3.2533288 +-10.5224285 +-7.6059170 +-9.6034307 +-7.2378087 +-4.6384249 +-1.2193346 +-0.1215395 +-7.8232880 +0.6152593 +-17.2016811 +-31.9087486 +9.4743643 +-0.0892396 +-0.2070151 +-3.8247039 +-18.1832352 +-1.6418200 +-18.6813259 +-0.3195513 +-3.4496775 +6.7316628 +26.2620239 +0.9848750 +0.5309953 +1.7511340 +3.1299329 +-12.0631208 +-0.0364051 +-6.5819316 +-1.3764927 +-3.1575961 +-7.3898711 +-13.1990108 +-7.2315617 +-1.2315456 +2.6484518 +-8.0491629 +-27.8667755 +-5.5559258 +-2.5155118 +-4.7027278 +-3.9897611 +-0.2715850 +-2.4433184 +12.7775335 +-18.6956902 +2.0287042 +15.3194695 +-3.2969527 +1.4003345 +-0.7634668 +28.8928356 +3.0458705 +-15.0642853 +-9.1327391 +-8.3284178 +-2.0938466 +0.8042638 +-4.0253296 +-2.7427418 +3.3790362 +-0.5841329 +1.1705849 +0.5587072 +-2.4027781 +-8.5573969 +2.4543304 +-22.4795685 +-9.8705359 +1.6874026 +15.8212376 +-1.5271565 +0.8153312 +0.1068790 +-46.7885628 +-0.8946275 +-9.5178928 +-16.0471191 +-11.0008450 +1.7777138 +-4.3437519 +0.5768779 +-7.7629929 +-0.9073338 +0.6981399 +-5.0272412 +5.0332317 +2.4235470 +-3.4336507 +-0.2773462 +13.4993868 +2.9060812 +2.6166978 +0.2927469 +2.8230832 +-9.4986897 +0.5783901 +-15.0092239 +-11.4500818 +-3.7510533 +-6.3292847 +-6.8271494 +6.0055079 +-14.7394199 +4.6546583 +5.1743031 +-1.4539245 +2.9025099 +0.6496770 +-1.3303342 +-31.2607479 +0.1642911 +2.9228568 +0.5060014 +-1.7129887 +-3.4902632 +0.9080487 +-2.2835658 +3.8953013 +-8.1187410 +1.8361425 +2.8164799 +-6.3763580 +2.4013469 +-4.9988079 +-1.8116167 +-22.6926899 +-8.4679289 +-22.9128342 +-12.8099937 +-20.4768353 +-8.4203558 +-3.2862959 +0.0737138 +-22.4615898 +-10.5208368 +-3.0172629 +-7.3723664 +-4.8839655 +2.7586780 +-25.2692337 +-3.5183046 +-9.2042065 +4.4663391 +-2.6527901 +-25.3128262 +0.5188764 +-8.2700253 +-2.0876074 +24.9790974 +1.2283058 +1.0481061 +-0.9060950 +-8.0562592 +3.2179365 +-3.3790469 +-7.6217775 +3.0862515 +-5.3673520 +-14.3588190 +-0.6730114 +-10.3641768 +-2.2900572 +4.4890466 +-4.8922739 +-17.1634808 +-11.8340054 +-8.9328518 +-9.9053955 +4.5628624 +0.5409573 +0.2902197 +9.0915794 +-0.1828339 +16.7756729 +1.6787441 +-7.2918119 +3.1166184 +0.5312856 +-9.5213537 +3.4123631 +1.6592524 +-3.4978657 +-14.0756874 +-9.3445568 +-0.3667988 +-8.5246630 +-1.4787225 +-6.7609859 +-2.0563080 +9.1520901 +0.4239273 +-4.3493519 +-18.1808147 +3.0389240 +-12.7749290 +-0.0303464 +2.9217734 +-8.7970600 +-0.8823232 +1.6056962 +-2.2674575 +-14.8693333 +-5.0307484 +-13.5979166 +-18.6346130 +-12.1201496 +2.8395648 +-8.3819351 +-0.1856268 +-8.5718994 +-4.1073608 +1.5055755 +-4.9435740 +-1.6770180 +3.2636030 +-4.7289133 +-0.2864847 +36.7603226 +4.7100968 +6.1707654 +0.6853557 +-4.6262722 +10.4435120 +2.1465845 +-4.6923299 +-37.5759277 +-6.5112319 +-16.8709049 +-10.6064186 +6.4494457 +-19.6700401 +11.3696041 +-11.1525536 +-7.2767625 +3.5824447 +4.5064096 +-0.3696611 +-28.0228138 +1.0417582 +-7.5463161 +6.9209309 +-1.1092272 +1.1010848 +7.3671970 +-1.5951602 +10.4574108 +-11.3179064 +-5.6946888 +-7.4266462 +-19.5287209 +2.5817726 +-6.6392713 +-2.2785239 +-2.2389238 +-10.2524691 +-30.9070263 +-8.3468971 +-22.1586056 +-4.8090158 +0.8527286 +0.7821373 +-19.1331863 +-7.7050481 +-2.8826809 +11.2494555 +0.5478087 +9.5498018 +-3.2063954 +-6.1614928 +-13.0898123 +-8.9198313 +-3.7994673 +-17.7944965 +9.1239452 +-8.8242245 +1.4621357 +15.3843851 +6.2982020 +2.1545765 +1.7501839 +-19.6214104 +0.5286618 +-3.7582884 +-13.6879807 +5.9665947 +-5.9017940 +-8.9418001 +-0.8977002 +-12.3265314 +-7.0491729 +8.4811468 +-9.5030689 +-7.0603638 +-14.8831224 +-4.2214642 +-8.7954073 +7.9471006 +-0.9975669 +-9.7455635 +10.8355017 +-12.5311184 +10.3414345 +15.1642513 +-10.8525105 +3.4620333 +-0.3867586 +18.7385197 +6.0196404 +-2.6968634 +-7.5284557 +-23.4694901 +-14.5859652 +1.3651079 +-11.5468798 +-2.8476820 +1.0891929 +-2.8364980 +14.6940889 +2.2091551 +-3.5675840 +-28.8471432 +4.5806880 +10.2063427 +-1.9598552 +4.3154068 +-2.6340656 +3.2117081 +1.2622695 +0.3081197 +-11.0954304 +-6.0160103 +-19.0848789 +-19.0031967 +-26.9799805 +6.6869879 +-23.3262024 +-3.7440579 +-8.9123106 +-4.9855418 +-2.3721845 +-9.4019709 +4.6344194 +7.2491789 +-6.5988593 +0.6031410 +53.5093193 +7.6656938 +7.3785033 +2.7598124 +-1.1625037 +-12.0483665 +1.9152100 +-6.4568439 +-22.1957340 +-5.4191465 +-7.9724998 +-10.1054792 +13.4681549 +-8.6961794 +16.7655373 +-7.6980882 +-4.4562578 +8.4395638 +3.6905234 +-4.1093884 +-11.1374292 +1.0410188 +-18.3106384 +4.2582974 +-6.1858435 +-2.5339656 +10.7703075 +-4.7495217 +3.4055331 +-17.9653034 +0.5799859 +-4.7907963 +-17.3367233 +6.1818805 +2.8832026 +2.1858640 +5.3977876 +-2.1999035 +-14.3605127 +-26.1495762 +-13.2173252 +11.5482378 +7.7630897 +-1.6392046 +2.0410643 +-8.0157728 +1.8468313 +8.4269428 +-0.4416247 +-1.0787361 +-1.1624211 +-4.9312015 +-2.1712761 +-13.2284441 +-9.0759163 +0.5560737 +-7.0425386 +2.6035092 +-2.3657982 +14.6651354 +3.9656286 +-1.9360304 +1.1573191 +-0.3290970 +16.3085384 +-1.0139614 +-8.5229616 +-13.0172338 +2.7092493 +-7.4229565 +9.1179514 +-4.2305760 +-2.8290863 +3.9558363 +-11.1909809 +1.4350929 +-1.7159121 +10.4368916 +-4.4509983 +-0.8024628 +-1.1285584 +-11.6976500 +8.3574963 +16.7280045 +-2.1086671 +17.8837852 +-10.6239758 +3.8278239 +4.9482780 +3.6998761 +-0.2763111 +-16.5669498 +-15.8909140 +-30.1831455 +14.1617670 +-0.5285608 +-7.0064116 +-6.4133401 +5.3829145 +-1.9404241 +7.7093229 +-0.2223132 +3.8079212 +-6.1569872 +0.3282675 +-10.6784964 +2.7763591 +4.8547940 +2.2346358 +9.9659300 +-0.6647931 +2.3391292 +-24.0418606 +-7.2428946 +-20.9267387 +11.9442139 +4.1930413 +16.1228409 +-3.1666718 +-19.6269417 +-3.9974883 +1.4856086 +-0.1372763 +-9.2394114 +1.1173180 +-1.3059841 +-1.4420730 +4.2596760 +17.5647812 +5.8399510 +0.6241169 +3.0816381 +7.5272646 +-7.2726541 +-6.2558646 +-2.2503633 +0.0504008 +0.2847402 +-8.7127113 +-21.1884079 +17.5597363 +0.2285009 +8.2598324 +-7.3869281 +-6.6445456 +5.7809639 +-3.7775111 +-21.6572475 +2.4842353 +-1.2666619 +5.4904904 +0.1300978 +-6.2275190 +-5.2079148 +6.6473718 +-5.7601628 +6.8312435 +-8.0364971 +2.9706750 +5.2474570 +11.4179745 +4.0504727 +-1.0259757 +-0.2064887 +-24.0909042 +-3.4741008 +-11.7817192 +-4.6822991 +-13.6601582 +-8.6879272 +-11.4838886 +-2.9680390 +-0.8243144 +-10.1672211 +0.7106640 +-19.7207088 +-28.4203587 +10.0204811 +-8.0463829 +-0.5595214 +-3.8939066 +-16.9787445 +-2.5689294 +-19.9405384 +1.0240216 +-3.4345489 +8.0845909 +27.2462883 +-4.8840399 +0.3797566 +1.2387650 +3.0540071 +-11.4813805 +-0.1059237 +-6.6748514 +-0.7973860 +-3.5019028 +-3.2275219 +-21.4701672 +-8.9603033 +-1.0842619 +3.4988177 +-8.6447182 +-28.2579327 +-5.8187218 +-2.6407719 +-5.8777847 +-1.0473850 +-0.0699650 +-2.4915392 +12.0415020 +-20.0355453 +2.4046237 +15.5908890 +-3.6304195 +1.3926362 +-2.5417507 +18.1109486 +7.1607246 +-15.6615515 +-12.3319645 +-10.4331722 +-2.2487941 +0.5355940 +-4.0357423 +-3.5764122 +4.0213852 +-0.1589274 +0.5725626 +0.8873438 +-2.9081123 +-9.3400621 +3.3306248 +-24.6397381 +-9.3991919 +1.1779171 +7.5496802 +-1.7252989 +-0.0282265 +0.5891888 +-50.1740303 +0.1025014 +-10.0180836 +-17.5822296 +-11.8137560 +1.8511970 +-5.3987784 +1.6195564 +-7.3235078 +-0.9648711 +0.5441495 +-4.5539384 +6.1093769 +1.8851067 +-2.0300794 +-0.7851878 +13.3163223 +2.4167454 +4.7369823 +0.2680448 +3.3651145 +-10.1543140 +0.4722367 +-22.4797821 +-5.4256749 +-10.4794588 +-12.0536928 +-5.1461315 +5.6179771 +-10.5577507 +5.9565468 +5.2506781 +-2.6980999 +3.6627443 +-1.8556619 +-1.3471576 +-33.5094566 +-0.2146791 +11.2959156 +-0.5914570 +-1.1292291 +-4.0044532 +0.0065655 +-1.9492638 +9.8395166 +-8.1323004 +-3.8447680 +2.7171037 +-9.4028358 +2.5272322 +-5.5846062 +2.0964844 +-23.2382584 +-9.8588123 +-25.6115227 +-6.9261322 +-26.1614132 +-10.5175285 +-15.9364624 +-4.3270001 +-30.7157917 +-11.2743292 +-3.2723470 +-16.1151810 +-3.6185622 +4.9486947 +-13.3417988 +-3.1756406 +-13.4751625 +5.7394743 +-2.7309370 +-15.3525715 +7.7924571 +-14.2738743 +-2.1567805 +20.3559761 +-6.5377908 +1.5314106 +-2.3640106 +9.3724985 +3.3461573 +-4.8672075 +-11.5071363 +12.3748026 +-8.2232561 +-8.0977640 +-9.1515350 +-13.0072966 +0.0760526 +6.0193124 +-9.5270672 +-9.1928959 +-14.4454393 +-9.1615801 +-10.9897060 +6.9774990 +-1.0242378 +-0.5849065 +11.0097408 +-8.5603399 +21.1227226 +1.4264674 +-7.8439984 +3.1818173 +-2.1983919 +-4.2182479 +9.0373564 +-2.1724339 +-3.3977602 +-9.2436800 +-10.9844198 +-0.6454239 +-10.7400551 +-0.1329758 +-6.5266147 +-2.4289939 +10.5687532 +0.6616640 +-6.9265532 +-20.1752872 +0.9264027 +-6.0427680 +3.3122222 +2.2737942 +-13.0209188 +-5.0423841 +1.3676277 +-1.0523015 +-15.2496567 +-4.2008133 +-15.8144827 +-20.0431118 +-17.2800655 +-5.6164198 +-8.7593603 +0.2903819 +-8.5926981 +-3.2458713 +3.7411809 +-4.1982288 +-0.6865510 +1.0703831 +-4.3103690 +-0.5081998 +37.0735664 +2.1700923 +9.6732273 +-0.9201093 +-3.1556082 +1.9316030 +-3.9867444 +-8.5951738 +-30.3108215 +-14.4950962 +-26.2479553 +-7.0730767 +7.0365510 +6.5976658 +11.7350340 +-12.9479628 +-7.5843368 +4.5405445 +0.1134866 +0.3867172 +-23.6015110 +2.0207949 +4.9604244 +2.2323761 +-0.2823573 +1.4719394 +10.0571003 +-0.0404286 +21.0889645 +-8.6417513 +-5.6679020 +-7.1921453 +-26.7481155 +2.7464299 +-6.5265484 +-2.0742745 +28.0781155 +-11.4692602 +-39.0812645 +-13.3974009 +-29.2201214 +-8.5628405 +-23.9746094 +-7.0530705 +-32.0585785 +-14.9448156 +-0.7526197 +-19.0195332 +5.3085866 +13.0611305 +-0.5465248 +-2.5219619 +-12.5742397 +-7.9939585 +-0.3879809 +-12.9609556 +10.1891489 +-11.7901154 +-5.5902309 +27.6247005 +-0.2945465 +1.4369305 +1.2321968 +1.1103734 +3.0495703 +-5.9248905 +-14.4941263 +11.8701477 +-8.8993301 +-10.5334501 +-4.1701107 +-17.5722790 +0.7562120 +8.8052235 +-19.4181118 +-6.8471808 +-18.1078720 +-22.0250759 +-12.8565178 +-5.6268282 +-2.4533370 +-28.5169277 +37.6493988 +-27.4338360 +5.9573240 +16.4092655 +-10.2903690 +4.8733964 +-1.9780109 +-3.5214715 +10.9443779 +-7.4824376 +-8.4393606 +-16.0245228 +-18.3731880 +0.1538771 +-13.9327288 +-1.1039553 +-2.2807789 +-4.9720330 +13.7357035 +1.1590353 +-8.0166016 +-27.7598076 +2.8994119 +2.0178587 +-3.7064211 +4.2619209 +-5.9636550 +-4.3596592 +1.3548633 +1.8214060 +-20.1593609 +-4.7723823 +-26.2878113 +-15.3969288 +-17.1515999 +-15.0119057 +-9.5747652 +-7.7330813 +-8.9411249 +-5.7954717 +6.2875767 +-7.5292850 +5.9963040 +3.9142275 +-4.5642428 +1.9808817 +54.9242172 +4.7601256 +9.4784861 +-1.8556414 +-2.7269044 +-14.1844053 +-4.0547800 +-3.3928998 +-19.6383038 +-14.6323261 +-19.1161938 +-15.0094156 +8.7400522 +7.5722523 +14.7812300 +-11.9611712 +-2.9662366 +8.4558573 +5.0548043 +-3.5681632 +-15.9635801 +2.4234233 +11.1678610 +-23.5081768 +-5.1966538 +-2.8391235 +13.1018152 +-2.8649199 +14.3783760 +-18.3377380 +0.0387357 +-1.1410236 +-27.7645245 +5.7021976 +0.7391406 +13.5699854 +3.3995860 +-4.3834553 +-11.2960491 +-9.7480602 +-12.4771662 +-4.2632971 +10.4916277 +4.5941429 +-17.2865868 +-14.0050831 +2.3534954 +0.9548284 +-1.6023201 +11.5661631 +3.9601452 +-6.3776379 +-6.5372734 +-11.4290667 +2.5781164 +-0.2674506 +-2.0379846 +10.0786057 +25.3645344 +13.2340479 +4.4776387 +1.2493176 +3.5212674 +0.1848489 +17.0123405 +0.5632160 +-13.4635067 +-8.4332142 +-2.8897974 +-8.7428570 +-5.2629414 +-5.3753300 +-6.2374010 +3.9235630 +16.0484238 +0.7555872 +-5.9466581 +2.7235582 +-1.3972780 +5.3163791 +-4.8683462 +-3.8196065 +9.4946232 +3.0956936 +-1.0288056 +26.6438198 +-9.6210556 +-0.4654208 +-0.7681660 +-0.7567274 +7.5870991 +-24.2289658 +-18.9189034 +-17.7180271 +16.6878357 +-1.0412912 +-0.3565939 +-6.8165250 +5.9557853 +0.6245950 +10.9614935 +-2.0943773 +-3.1956985 +-5.4332337 +3.0413294 +-7.9235640 +-22.1298866 +2.6887136 +0.8532143 +-1.1152533 +-1.3276758 +5.8772483 +-7.6738596 +-3.7129185 +1.0687866 +-2.0057068 +1.2104590 +-0.8904977 +-0.7510667 +-11.9741840 +-3.3452303 +3.3704119 +-4.3277731 +-11.4085302 +8.5719652 +-0.9971417 +-1.4251195 +1.2012210 +-1.0626171 +6.5760198 +5.2244563 +-0.0914813 +5.9380174 +-4.6247663 +-1.5954924 +-1.0930122 +-3.7437384 +-2.4189942 +-1.7976712 +-12.8478994 +20.0333061 +-1.9862795 +13.3456659 +-7.9162812 +3.2361629 +6.4760046 +2.5929875 +-11.8604259 +3.6259205 +-2.9156656 +-0.2516368 +11.3523006 +-2.1520030 +-5.5107741 +3.9549224 +-7.6516309 +-3.3236260 +-9.9012365 +1.7178389 +5.0006399 +2.9111958 +6.1672578 +-0.1310670 +2.2714376 +-23.9376049 +-2.8046672 +-12.0542088 +-9.0342293 +-18.4236736 +-14.1169004 +-10.6151667 +0.9940479 +-2.0288980 +-9.0843172 +0.9080334 +-23.4437618 +-35.6171532 +12.6540003 +-13.6777163 +0.2165450 +-2.6524599 +-13.9130659 +-2.4264724 +-21.2590122 +8.4682789 +-3.5380375 +7.0640674 +27.4392796 +-10.4530468 +-0.1432679 +0.0677320 +4.8810740 +-10.8533573 +-0.1428431 +-8.5677128 +1.4379157 +-6.1109743 +-5.3351116 +-60.4788055 +-10.6033611 +-0.3824912 +2.6234798 +-9.3262815 +-28.4137650 +-9.4705639 +-4.2864704 +-10.9956017 +2.2753925 +-0.2670763 +-4.5196872 +10.8292980 +-20.6132755 +3.8183403 +15.7677374 +-3.8106759 +1.1763895 +-3.4059114 +-1.0061156 +10.9451542 +-14.7257538 +-13.6411133 +-10.5656700 +-2.4750450 +-0.0054984 +-4.1831408 +-1.3223464 +4.9404397 +0.0690609 +0.7247452 +0.4527361 +-4.8748579 +-8.4602165 +-0.6089421 +-28.2392750 +-9.6438370 +2.4151487 +-7.4051204 +-1.1107091 +-1.0730709 +0.6271639 +-53.9738693 +-3.6181936 +-11.2097492 +-22.1462193 +-11.5741825 +0.6538739 +-7.3530989 +2.8818877 +-5.7209811 +0.4548823 +2.2057145 +-4.5435667 +5.9499936 +2.2056873 +-2.2955008 +-2.1395795 +16.5225887 +1.0435578 +3.7881355 +1.3138148 +4.9733186 +-5.4538908 +-3.9889116 +-19.0900650 +0.3714319 +-19.5486507 +-20.6505852 +-1.1307130 +6.6176863 +-12.5968065 +6.7458935 +4.5880079 +-2.2189875 +2.9376304 +3.0206470 +-1.6546834 +-35.3239937 +-1.0485266 +12.2416391 +1.0006459 +-0.6748099 +-2.9142592 +-1.4593785 +-1.9660815 +12.4449043 +-7.0538435 +-15.6798525 +2.4269886 +-11.9805727 +2.7807980 +-6.1942096 +-9.6343603 +-6.1535611 +-13.0428782 +-25.2134724 +-12.4227314 +-36.7158699 +-14.4321547 +-33.9219322 +-1.1626284 +-26.6201248 +-19.3700066 +-2.9936540 +-31.8770981 +5.3722582 +7.7414999 +7.1641927 +-2.9574022 +-10.0298367 +5.0296040 +-7.0651188 +21.6650257 +1.5622188 +-12.3385935 +-8.9231348 +24.4386520 +-11.9164839 +0.8740624 +-3.4504526 +-7.2996082 +4.8488784 +-9.0061560 +-12.2342834 +20.1396179 +-12.5035143 +-10.9685850 +-30.6715641 +-18.5141220 +-2.1834371 +4.8067198 +-12.5951109 +-0.3171053 +-17.6248627 +-10.1514015 +-14.6139631 +3.0407526 +-0.0640824 +-3.7378123 +37.8996468 +-19.6089115 +21.3049335 +-0.7331545 +-7.1812873 +0.6384743 +-1.3451295 +-3.0363145 +15.6037807 +-1.7863463 +3.0226684 +-8.8887415 +-12.6487284 +-1.3508852 +-12.5752831 +5.0809078 +-7.3406963 +-2.6296093 +9.7552423 +-0.7475103 +-9.2146559 +-19.2093391 +-1.9533174 +-14.3310347 +6.9248815 +6.4629941 +-12.3002062 +-10.5577364 +-0.7907748 +-0.5315626 +-24.3557701 +-7.7930574 +-16.7141495 +-21.8812218 +-14.0347300 +-5.3695784 +-7.2765765 +1.2559359 +-7.3745856 +-2.9203453 +2.9161370 +-2.3570726 +0.6827794 +1.6421775 +-8.4273472 +-1.6736811 +40.3470802 +0.0494852 +9.8840837 +-4.0409608 +-1.6441382 +-4.1357789 +-8.8856430 +2.0427136 +-38.3951416 +-25.3248215 +-42.7052040 +1.7164494 +7.8074489 +10.2271814 +14.6641302 +-16.2592354 +-12.0001040 +2.8548820 +2.9808514 +0.2069292 +-0.9485126 +-0.0124347 +3.0749340 +13.0296478 +-1.1922367 +1.3744538 +12.6946449 +-1.0322268 +19.0152664 +-8.7517509 +2.3966298 +-7.7460423 +-35.5831032 +2.5341792 +-7.2009978 +-16.0234966 +-4.2600002 +-17.7848358 +-35.3558769 +-8.2618237 +-39.9057999 +-19.3614178 +-45.4053268 +-1.1290643 +-33.3532295 +-28.6183052 +-2.6223869 +-22.1115456 +2.0427990 +15.4563828 +8.3994560 +-2.2594275 +-13.9407883 +-8.2054605 +-3.2854388 +51.2954559 +11.9718475 +-17.2397423 +-10.5582752 +40.2826309 +-9.6603260 +1.2747189 +0.0132996 +-1.1560218 +13.6136456 +-9.5654402 +-19.0686474 +18.7399998 +-14.1616077 +-13.0981321 +-20.7158070 +-25.4178371 +-2.9275718 +6.6517549 +-15.9566889 +4.0464048 +-19.9349537 +-11.5441446 +-17.7770576 +-10.2059898 +-0.1713902 +-29.9578609 +17.0582752 +-24.0332127 +-31.4286308 +10.5546408 +-10.1349077 +0.9465476 +0.6252334 +8.3048801 +18.2809505 +-12.6538639 +-7.2868600 +-15.9435682 +-11.7377558 +-1.4211973 +-13.8430128 +2.9399590 +-12.4313602 +-4.9525385 +15.9840097 +2.8423295 +-9.7516527 +-27.0518875 +-0.1663851 +-20.8501720 +7.8929725 +7.9918752 +-2.8936374 +-13.8476915 +-3.4513276 +0.6581854 +-43.7952728 +-9.2335501 +-30.6005974 +-28.1639061 +-10.1570177 +-33.7294579 +-11.1460085 +-3.8469844 +-9.0552931 +-2.5898924 +4.1133437 +-7.5568786 +5.6260591 +2.1039407 +-7.7554746 +-1.7256613 +53.0058289 +2.0702312 +12.2662125 +-5.1617351 +4.6630001 +-19.7468681 +-9.5013733 +-3.3415735 +-27.2864685 +-33.9133835 +-54.7520218 +-10.3176632 +14.6508989 +-6.1483693 +23.1677399 +-11.1389265 +-15.4482660 +5.7642865 +5.1555328 +-3.0373631 +20.0171242 +-0.4846368 +6.1346469 +13.0816689 +-1.9427490 +-3.7444749 +13.2884874 +-4.2006698 +43.7833824 +-19.4562683 +12.8875351 +-3.3841136 +-38.7950706 +5.0916901 +-2.3509204 +-2.5807164 +1.1939163 +-1.1466485 +-20.8116150 +-2.8679352 +-16.0648861 +3.2203789 +-5.7034588 +-2.8751769 +-24.4135933 +-8.5351801 +-0.5551578 +0.5911735 +-0.4458947 +16.1033688 +-7.6157336 +-1.1935391 +-6.7394376 +-9.7793341 +15.9079361 +4.2533240 +18.9309597 +-0.1096902 +-3.8768299 +25.2639256 +-7.4065557 +-2.2723901 +1.0680888 +0.6802092 +10.9268513 +-1.1778435 +-9.7394094 +-4.0345402 +-3.8142033 +-11.3573980 +4.7486777 +-9.7477112 +-14.5454197 +2.8456414 +11.1967564 +-13.7180147 +-16.3493595 +-12.9390421 +-8.1629229 +5.2963719 +0.1059681 +1.7536631 +14.1952477 +-2.6670306 +-4.8661041 +17.3931446 +-7.8278289 +-0.5478778 +-1.8410372 +1.5639424 +3.4199486 +-24.6771526 +-26.5819416 +-20.3230934 +9.1702719 +-1.0702062 +-6.6944757 +-10.2001858 +13.1969852 +-2.3571715 +13.4704762 +0.4120339 +1.5179780 +-13.6311083 +5.2151351 +-6.0307951 +-3.5910492 +3.4039018 +1.2400168 +-3.8285947 +-1.9995477 +4.4578319 +1.7084880 +-1.5357103 +-14.4829407 +3.5110352 +6.1074123 +-10.3183241 +-24.9177284 +6.0173879 +-4.3229623 +-3.8297443 +-11.8642282 +-8.6372528 +3.1721365 +4.8105278 +1.4080857 +1.9166338 +-0.2435380 +5.9795036 +2.5724792 +-1.7737399 +-0.4934075 +-4.0939369 +-0.5575575 +-1.2666123 +-7.7892556 +-24.4386349 +0.8521807 +-17.9995613 +21.3714752 +2.3743045 +10.7442503 +4.2700686 +-8.4287367 +5.6570921 +-2.7671134 +4.7374878 +6.9665394 +-1.1025058 +2.5216386 +5.0746813 +-0.2414714 +-12.9370317 +-0.5306421 +-6.6403017 +-6.7724323 +-13.2580795 +-2.9862964 +3.4513135 +3.5795176 +2.0025377 +0.5956898 +2.7405126 +6.8741889 +8.3243494 +-15.9988756 +-2.9427702 +-14.2487926 +-14.3953466 +-2.4426491 +3.9518523 +-1.3195630 +-11.4464846 +0.0588118 +-19.8671284 +-5.1801004 +10.7647476 +-0.4330891 +0.6365696 +-1.3135310 +-67.3665161 +0.2277318 +-16.2225170 +10.4109669 +-3.5670197 +7.7652521 +30.6299000 +-5.2277727 +0.1348640 +1.9339699 +5.2273993 +-9.0237694 +-1.2216718 +-6.7607117 +3.2643695 +-3.0296929 +0.7288245 +-59.0999413 +-7.2932329 +-4.4975696 +-1.3323525 +-9.6033306 +-30.1547413 +-7.3419137 +-8.0546923 +0.2557657 +5.0617857 +-1.8219520 +-3.0332277 +4.7527685 +-6.7192726 +10.5535793 +16.2660866 +-2.3313851 +1.3945757 +-1.6477306 +-15.6420670 +2.4025192 +-0.9070640 +-1.3416244 +-11.0608673 +-2.0203767 +-1.3258417 +3.1952386 +3.5550923 +3.4335585 +-1.3676846 +4.2755489 +0.0125174 +-3.1602476 +-11.4283609 +5.4485316 +-22.8045082 +-12.8046331 +2.9326227 +-134.5305634 +-2.0815718 +-3.2714345 +2.2010632 +-54.7715797 +0.9249790 +-8.4168196 +-20.5123882 +-12.7678862 +1.7499840 +-6.1245799 +3.8632729 +-6.2996793 +2.8357153 +-2.2297165 +-5.0300183 +7.1017561 +0.1361548 +2.5920343 +-4.7664003 +14.5272799 +1.9435180 +5.4514480 +-0.4589333 +6.6250415 +-6.2318969 +-0.4186214 +-11.3205872 +8.1914206 +-18.6442432 +-22.1178455 +-2.8870528 +-0.4659596 +-13.1067142 +5.4888482 +7.0115094 +-3.9519396 +-0.6019014 +4.4180279 +-2.1001508 +-36.9791908 +-1.3522429 +11.9192724 +6.3724213 +-1.6752771 +1.0429519 +5.1773710 +-2.8604510 +2.5259616 +-11.3167067 +7.6813645 +3.2296240 +-6.6122651 +0.7290085 +-1.2712504 +-9.8594646 +4.6736770 +6.6148558 +-13.8195734 +-2.8865240 +-13.2501554 +-5.0630479 +-16.3505764 +-1.0532600 +-0.7736344 +-15.4597397 +-0.1211795 +-6.0225787 +-27.8073235 +6.8007236 +0.9951667 +0.6793494 +-2.2650757 +20.5409832 +0.7208652 +-7.7837152 +8.7174387 +-3.6926637 +7.8687983 +32.6081047 +0.7297355 +0.5661425 +1.1599391 +-6.4473114 +-11.4722481 +-0.5855870 +-4.7861109 +9.0221481 +-2.3817675 +-1.3706794 +-6.3435249 +-6.8116274 +3.7690167 +0.1851519 +-13.2305431 +-18.6556206 +-3.1844528 +-14.9888029 +-4.0742693 +-2.5605702 +-1.7510513 +-0.9734336 +16.9892235 +-20.8909283 +3.1079471 +17.5911465 +-3.2124124 +1.2556150 +-0.7841431 +-2.4484305 +-4.8253679 +-6.7026792 +-5.6342449 +-9.5072470 +0.0332102 +-1.1451281 +-1.6675221 +-1.7759348 +4.5693774 +-2.5830936 +9.3489103 +0.2254318 +-0.6332611 +-8.1740885 +3.7747695 +-24.2840385 +-10.4923258 +3.1005943 +-3.8261003 +-3.8356233 +-49.4371681 +2.2741129 +-35.3930588 +-0.0197520 +-7.8887067 +-14.7710810 +-12.3382301 +7.1980848 +-3.4745834 +-2.6948948 +-1.2434168 +1.3009393 +8.6227970 +-5.3150768 +8.2614870 +-0.8823267 +0.1940799 +0.9332379 +13.3570118 +-1.5931504 +1.2669330 +-4.6387067 +6.1371479 +-4.8753715 +-1.6242230 +-7.7698293 +8.4713440 +-12.7141953 +-22.3069382 +-4.3610134 +13.0625601 +-0.8104371 +-37.2620010 +6.6731825 +-2.9381242 +1.3006226 +0.3881155 +-1.8467138 +-30.4697628 +-1.7241167 +-30.6919060 +-2.7561100 +-1.2628256 +-7.9468913 +5.1658630 +-4.3397107 +-19.5893955 +-10.9439793 +-8.5428257 +4.7454028 +-2.8524225 +1.5137194 +-6.5717044 +-13.2761173 +0.2884923 +1.1465147 +-9.9808121 +1.7781994 +-8.4343424 +-7.9091134 +3.8371480 +-3.0483584 +-3.4863431 +-1.8602650 +0.4543450 +18.2293472 +-2.8872216 +7.9217916 +-4.1987543 +-11.3648815 +-2.3674135 +33.3958855 +1.7777556 +-21.6959362 +6.5346379 +-0.9378356 +11.3190374 +30.2839203 +-2.3354979 +-1.9524468 +-0.7422786 +26.3720627 +-17.5751667 +-3.5273628 +-4.1568975 +4.4991064 +-4.5234747 +-1.7941893 +-0.9784772 +-3.4957509 +3.0968144 +3.5426972 +-0.4451500 +-8.4313202 +-3.6584556 +-11.6711454 +-4.5996814 +2.1856380 +-2.2215550 +-3.2338204 +-3.0017002 +-20.1684856 +7.5593491 +-7.3437948 +-1.2440467 +-2.4006784 +-1.1762856 +-1.6451436 +10.6769047 +-12.1512318 +-9.9767504 +-8.4237871 +-2.2470007 +-1.4299382 +-3.7481368 +-3.2015469 +8.5555363 +-2.6316710 +5.5711493 +-2.5262058 +-2.6705089 +-8.1462345 +1.4359500 +-18.0893002 +-19.3323116 +-0.1822078 +-2.9897068 +-0.9306565 +-3.6398449 +3.1131873 +8.3641758 +-2.2493978 +-21.5626965 +-12.2973547 +5.9537582 +4.2441063 +1.4600019 +-7.0714569 +-0.5551652 +0.4264050 +4.4869418 +-3.7450936 +8.0387325 +-2.7965086 +-1.2430307 +3.7071474 +15.6242895 +-0.9174662 +0.2667515 +0.7045857 +5.6781316 +-12.8138113 +-1.6944859 +-0.0105558 +-7.5000768 +-15.0623131 +-27.4936352 +-1.2452292 +17.2838898 +-1.1656072 +-12.6058559 +3.1258166 +-5.9809709 +6.0809779 +-4.7247291 +-2.5065863 +24.8125038 +-1.0461829 +-7.9322138 +-9.2576189 +2.1376507 +-6.1395812 +5.4045444 +-1.6875546 +-6.5041666 +-5.9718642 +27.1211357 +4.2329359 +-4.5289998 +1.2259319 +-3.9118841 +-0.4804572 +2.6350238 +6.4631739 +-0.4803981 +-10.2105827 +-4.1800871 +-5.6800623 +0.5635516 +1.3416942 +-5.3708224 +-2.7151020 +-6.1080470 +-2.9577520 +-0.1399022 +26.5588570 +-6.7297707 +1.2359961 +-11.8764915 +-15.0921249 +-2.2842479 +-2.4837959 +9.6272840 +-13.6369658 +2.1414998 +6.7346935 +2.3508909 +-15.9769058 +-13.0458622 +0.3089564 +-1.4289044 +-1.2852310 +-7.9918218 +6.6609592 +-9.4588089 +-17.8381138 +-1.8167821 +-5.9149666 +-10.0546284 +4.7644963 +-0.2445316 +-3.4936676 +-5.4648542 +-1.0017506 +-11.9267864 +5.0013185 +6.8127985 +-0.9889199 +14.2315969 +0.1895565 +14.1658382 +2.4288964 +-10.7864723 +-4.2407484 +5.6708574 +-0.7779061 +9.4798975 +-19.4463253 +-25.2100716 +-18.3852768 +6.7458787 +0.7649674 +-5.6574326 +-17.0061302 +-16.7450638 +-2.0646265 +1.4336861 +-6.1718268 +-13.4256096 +-4.8804655 +1.5813571 +-5.5725431 +-1.1964530 +1.0223081 +-0.7560644 +-2.7557127 +-0.3944432 +-4.8735662 +9.8944225 +-5.6727176 +1.1483220 +2.2208219 +9.6954861 +-19.7076092 +-3.8558748 +-5.3135800 +2.4239368 +2.9716306 +-0.1839515 +-16.7902184 +0.4308283 +-2.8842986 +7.9126053 +4.3816915 +-2.3391109 +1.9378057 +1.8800553 +-3.4697957 +-1.8219351 +4.5509748 +-3.5840807 +-0.2926597 +-10.2685537 +-2.7373621 +-8.6455793 +-14.4237995 +12.8084345 +-0.1777292 +1.5999981 +5.8926959 +-0.1910247 +2.6226988 +4.2546339 +-2.0077572 +-5.6169109 +1.2785705 +-1.3838130 +4.3709865 +-3.9840491 +-13.8381996 +20.0480213 +-8.4212646 +-0.6201167 +-10.2698126 +-3.4510462 +2.0536501 +5.6915307 +-5.2573810 +0.1899983 +0.7535672 +5.4838791 +4.9802504 +-0.4053435 +-0.0469120 +-0.3570589 +7.6324301 +1.0569774 +4.8777585 +-3.4714737 +-0.4859039 +-0.3139291 +-1.9145358 +0.6939552 +0.9397677 +-5.0080686 +-3.8682711 +0.4769601 +-2.4426470 +2.1555836 +9.9567986 +32.2910500 +3.4975476 +-3.6865082 +3.1584260 +4.9645090 +-0.0729795 +-0.8848997 +-2.4446316 +0.7040870 +-0.0574706 +0.0812147 +-6.6665473 +4.9234891 +-1.7696035 +4.5509052 +1.3857849 +-70.2497177 +2.3520284 +-3.0661039 +-1.0727425 +0.9575611 +2.0138907 +2.0299165 +-1.8343072 +-0.6399942 +6.3397417 +18.8322392 +-5.1007237 +11.0452080 +1.8468705 +-2.1619804 +5.3690228 +4.3899083 +-2.1842349 +1.2980856 +-6.1815295 +-5.0210710 +-3.9341090 +-2.3977306 +0.8392569 +-1.0973740 +-9.1316633 +-1.1490852 +-0.9077394 +7.2821259 +-70.5441742 +7.4972548 +0.6558906 +5.3387647 +0.8333104 +-4.5899453 +1.0950431 +-2.2378075 +2.9879804 +1.7934633 +-2.4607995 +-3.2132742 +6.3898377 +1.1703151 +1.9939141 +-3.1872406 +10.4857445 +-2.3763356 +3.5101926 +-0.2515295 +-4.3359427 +-55.0006943 +-0.5154625 +-15.2723293 +-4.7391510 +-5.7966557 +3.3898084 +37.0562935 +1.0864458 +4.9284477 +2.5122414 +-2.1222634 +7.3833184 +4.4723859 +-0.7524295 +3.6348288 +1.1918947 +-0.7823411 +0.9996523 +6.2679582 +-1.8489412 +0.7620231 +-1.6597164 +-4.8336816 +1.5339680 +0.9588377 +-2.7656207 +-2.3985043 +4.3225579 +1.6997939 +-2.4463546 +-0.6994408 +-1.6223466 +0.7762571 +-1.0535561 +0.7472697 +1.7849768 +-2.8452876 +0.1162132 +2.0067079 +-0.6333086 +-1.9650434 +2.5680320 +9.7933130 +10.6346474 +-2.1454384 +1.5926331 +3.8188369 +11.3535194 +-0.2047617 +11.1984482 +-5.8376212 +-0.5033309 +-4.6262574 +-4.5865469 +0.9893414 +4.4648027 +2.0274420 +-17.8370152 +4.1127324 +-4.6824875 +7.3612905 +18.6587944 +76.1357956 +7.1503181 +-3.4406781 +13.3672066 +8.0936289 +2.5311251 +7.5741658 +-6.8875518 +-4.7775173 +-2.8590395 +3.6444538 +-3.7689478 +8.8893919 +-0.1442523 +9.7096100 +2.0791862 +-2.2395086 +6.3295341 +-12.2825441 +-1.7293463 +0.0659027 +4.4757566 +5.4846396 +3.3069553 +-2.3950593 +9.9539499 +33.8333740 +-8.5556355 +18.1059723 +2.4795873 +0.0403536 +19.9308395 +11.2927523 +-4.2428918 +1.8168837 +-2.9515450 +-1.5887693 +-5.4368567 +-4.0173984 +0.7376634 +6.1067023 +5.3006401 +-6.2881870 +0.4697455 +24.8016891 +91.4655533 +14.1670732 +-8.2239561 +11.0531874 +1.2793108 +-11.1920347 +-11.4981680 +-5.3759475 +5.7565451 +4.7976723 +-3.3282981 +-9.7727728 +10.8988676 +-0.9665406 +1.9730475 +-10.7629128 +19.2544346 +-3.1868629 +7.2102590 +-4.2080574 +-0.3193657 +18.9191589 +-2.4302738 +9.4064112 +1.1603056 +0.0139952 +3.7365363 +60.7171059 +4.4820294 +22.1453133 +3.9732997 +-0.1004941 +17.2429256 +9.1658745 +-1.9644654 +1.7465439 +6.0616865 +6.3829436 +1.4681696 +12.2425947 +-3.0340078 +3.5920136 +-0.7094261 +-7.0623355 +5.6312761 +1.7796853 +-7.1219630 +-7.5290504 +4.8143926 +3.4491332 +-4.3766408 +-1.7168505 +5.3840566 +8.5003958 +-6.5375228 +1.1590561 +2.2750924 +-4.8307648 +-1.0223299 +2.1068172 +-3.7469811 +-2.2424939 +2.8529911 +12.4589796 +13.8517218 +-4.0501781 +2.8654449 +3.5865939 +18.9336929 +-0.6766164 +18.6941471 +-11.9075947 +-1.3041013 +-4.5226617 +-7.9614868 +-0.6374841 +2.1579981 +-2.3482912 +-46.2062187 +5.5062075 +-9.2684870 +7.7518487 +25.9276352 +71.8356705 +9.8946543 +-35.6004753 +6.1290712 +12.8704357 +4.4454756 +7.7626867 +-11.5414248 +-5.4030862 +-2.8148348 +5.0445957 +-0.4498878 +11.9884501 +-2.3022311 +14.6713781 +2.3795662 +-12.3448648 +8.0763235 +-16.7573261 +-2.7493479 +0.5918950 +6.2864861 +7.7146988 +-6.7441258 +-3.9728239 +14.4182777 +52.4070168 +-18.2409935 +26.5509243 +5.1536021 +-1.1310242 +29.1618328 +14.8579826 +-6.7669010 +3.9094663 +-11.3609943 +-7.2539029 +-9.4738293 +-8.7436409 +1.6365509 +6.2359400 +8.0826693 +-4.9315610 +-0.4628146 +37.0917625 +94.4419250 +20.5830135 +-8.6923780 +16.2615604 +2.1916602 +-16.5827370 +-11.0860653 +-7.0598226 +6.5082574 +7.2638450 +-8.0114565 +-13.8087301 +15.7284279 +0.1007095 +3.6068120 +-13.7714901 +27.3599224 +-3.9205706 +10.4010582 +-3.2172174 +-1.2464539 +16.4023895 +-3.3119774 +9.9898634 +0.2996087 +0.5064312 +7.1021209 +98.2231750 +7.8612642 +27.9476814 +3.5446663 +0.6248083 +26.0412273 +13.8822689 +-5.0902104 +4.6965408 +7.2079711 +5.8583851 +2.9402797 +19.6129456 +-4.9885988 +5.8091993 +-3.2389433 +-16.8100529 +8.6426897 +3.5484452 +-10.2111387 +-15.5508022 +7.5592933 +5.1789055 +-6.4099131 +-2.9115953 +4.2819066 +10.8293219 +-8.7199764 +-0.3002103 +3.0064621 +-7.5333071 +-0.0569405 +1.5499377 +-3.2203858 +-2.4255157 +-5.3274045 +6.1391168 +5.7164831 +-3.8275919 +-3.9533482 +-0.1373267 +12.8450575 +-0.0229429 +15.0669403 +-12.3714094 +-0.4008553 +-1.2454174 +-6.4082165 +1.4491929 +-6.5961294 +-11.4115353 +-12.7714663 +-1.1409392 +-10.3384867 +-4.7060509 +20.4654560 +-11.5775909 +6.6540389 +2.5156322 +-32.8660698 +3.1140110 +3.6016853 +0.9519705 +-7.5412765 +-1.6264000 +0.2342048 +-3.3347130 +4.4186316 +7.2502847 +-5.2753162 +9.7728977 +0.1892067 +-13.7460051 +3.4980588 +-15.0498772 +-2.6908956 +0.8511670 +3.4685287 +3.9271507 +-28.7633629 +-3.0385804 +8.9760332 +38.1620560 +-15.1868277 +16.5164413 +4.7377071 +-1.3211133 +17.5699768 +7.9308815 +-4.9172654 +1.0938545 +-16.3492184 +-13.3429136 +-9.8081522 +-10.1584835 +1.3803486 +-0.3999480 +3.8165431 +0.6169591 +-2.0353849 +21.8972454 +0.8456985 +14.2075891 +-11.3501263 +10.1992188 +1.0783315 +-11.9636297 +0.0436245 +-4.9733605 +2.2120140 +4.4373770 +-9.7328453 +-5.4901166 +8.8245363 +3.0039575 +1.8776351 +-7.9750152 +16.7727890 +-1.1757814 +6.0577335 +2.3864396 +-0.8239671 +3.9063954 +-2.8723760 +1.4652541 +-0.7309076 +-1.4412878 +5.5143561 +75.9444962 +5.3418055 +10.1954155 +-0.3552250 +2.2440543 +15.5924568 +9.8822289 +-5.9711552 +2.8338382 +-0.1448809 +0.7726707 +1.6006629 +14.1807461 +-3.2516057 +3.1010375 +-10.7966890 +-12.2098579 +5.3023000 +3.7998848 +-11.4961929 +-31.9744415 +6.7122793 +1.5760105 +-4.8038158 +-4.7683010 +-2.4401753 +4.8238187 +-3.6882119 +1.5287534 +1.9360268 +-5.3641868 +1.3232348 +0.2393342 +0.2555917 +0.6290589 +2.1696141 +5.1124544 +3.0177383 +0.0294715 +-2.0716577 +0.8313558 +5.9052835 +1.6591331 +0.2805636 +-2.9312253 +-0.3203330 +-1.6475238 +-2.3085897 +1.8219783 +2.6749516 +0.9650818 +0.0961248 +-0.4026338 +-3.1855767 +2.5705154 +10.1677151 +-33.2940674 +2.6380131 +-1.6102448 +6.8573866 +2.1115422 +0.0970524 +-1.1428854 +-1.6844212 +0.4801085 +-0.7421687 +-1.4600627 +-7.6985297 +4.4222445 +-0.7070674 +5.7534928 +1.2757900 +-15.9964724 +1.3022153 +-3.9551973 +-1.4623691 +1.2241614 +1.7970781 +0.8876490 +-6.7238617 +-0.6152624 +4.9575071 +19.2205143 +-5.1706185 +9.0030689 +1.6202043 +-1.2633713 +4.3213701 +4.1814899 +-1.5480990 +1.9030242 +-2.1326647 +-0.4833039 +-4.1257887 +-2.0440931 +0.3979614 +-0.9411574 +-9.7468042 +-2.2017434 +-1.5580153 +6.1842728 +-20.7296238 +6.7547898 +2.5354936 +4.3037863 +0.4504781 +-6.3766413 +-0.2978903 +-1.8835545 +2.8250704 +1.3820374 +-0.9026874 +-3.2796783 +4.9743633 +0.4757061 +1.2169169 +-3.1922643 +10.4476767 +-2.1619377 +4.1398363 +1.7038447 +-3.5964396 +-7.3494058 +-0.4137764 +-9.4153881 +-7.7661629 +-59.7251015 +3.6423957 +37.9143257 +0.7694817 +3.3160193 +1.9231943 +-1.6910586 +6.0297828 +4.0111170 +-1.0282934 +1.6911230 +0.5929604 +0.8158501 +1.4248930 +7.3126616 +-0.7331003 +-0.2129610 +-2.1516421 +-2.6296713 +0.4172656 +0.6809381 +-1.5178787 +-3.0445392 +3.3423021 +2.4873593 +-1.7813531 +-0.3599543 +-1.9614396 +1.9533100 +0.0836524 +1.8420556 +0.7206568 +-1.8406243 +0.7444314 +1.9683236 +-1.4541960 +0.4110836 +2.6334579 +9.3899508 +9.4568892 +-1.6664989 +-23.1383839 +4.9100957 +7.0221572 +2.4795573 +-0.2962961 +-6.4575596 +-0.5324559 +-5.0152607 +-5.6707501 +0.9260831 +5.0157824 +6.6412048 +-8.5553436 +2.1132228 +-5.6610656 +9.7638102 +19.8936558 +-37.8547096 +6.4001060 +3.0130703 +16.5072861 +4.1734638 +1.0984114 +5.5226765 +-5.5203447 +-3.5666022 +-2.6502063 +-0.7425321 +-3.2295556 +7.6822219 +1.0046678 +8.8635311 +2.4175391 +-15.0664692 +3.0488639 +-8.7340250 +-1.7835789 +-1.4717132 +3.4877784 +2.6971519 +-21.3650455 +-1.6099066 +8.4912014 +34.9565964 +-8.3936300 +15.0579453 +2.5381057 +-0.2523113 +15.4816179 +8.5080748 +-3.5414824 +0.7572231 +2.4743774 +2.1769373 +-4.8934779 +-3.3044095 +0.3618674 +3.8362257 +1.1997601 +-4.7409792 +-0.0125888 +20.4120197 +54.6044006 +11.7405634 +-1.3961085 +11.7300644 +0.4670933 +-10.4506407 +-14.2001476 +-5.5404673 +5.6055532 +4.7462811 +-1.2004001 +-6.1820350 +12.7687302 +0.6745469 +0.5886054 +-6.8686337 +19.8944321 +-4.7005525 +7.8912301 +-0.8438637 +-2.2517583 +5.6636443 +-2.7502654 +7.0842342 +0.9876108 +-0.5352209 +3.0706460 +57.6313858 +6.6610150 +7.1793065 +3.2518642 +-0.4665391 +16.1145306 +10.7389507 +-2.2785871 +-2.6255703 +4.9062700 +7.6977296 +1.2369217 +14.7334642 +-2.6871564 +3.3419075 +-2.9896662 +-4.6470284 +3.1169252 +0.3305711 +-5.1657429 +0.5528753 +3.2160406 +2.8687131 +-3.9662316 +-0.8516015 +4.1888194 +3.6592345 +-4.8439460 +1.0654389 +0.8061665 +-4.5108409 +-0.8527611 +1.9707565 +-4.4183412 +0.4491952 +-0.9579355 +12.7872801 +13.2615757 +-3.7270176 +-16.1175194 +6.3638992 +13.2011881 +2.1637719 +8.5307732 +-11.1577330 +-1.2410384 +-5.9119315 +-8.8474979 +0.5186020 +3.2645037 +4.1135926 +-16.1852627 +4.1948943 +-10.2944756 +10.3760653 +27.8755512 +43.0868263 +9.4761925 +-23.0008755 +10.7557611 +6.3957791 +2.1019793 +7.2001309 +-9.3632050 +-4.5175538 +-3.6096518 +1.8465350 +-1.6118262 +12.1280470 +-0.7844157 +13.2033491 +2.8390541 +-18.3656788 +4.3714256 +-13.5259752 +-3.3803611 +-0.4966968 +5.2510147 +5.2961040 +-57.7269669 +-3.0297174 +13.4175816 +52.8941879 +-16.0138569 +23.3882694 +4.7785530 +-1.0929022 +25.0851784 +13.0873861 +-6.2139292 +1.3085536 +-3.6237316 +-1.8547316 +-7.6840558 +-7.3355875 +1.2556442 +4.4245386 +3.0687392 +-4.9806447 +-0.9271229 +30.8183765 +47.6511765 +18.9235420 +-6.4609804 +13.4761467 +1.1439818 +-14.5482645 +-14.8543825 +-7.8341155 +7.3013830 +7.0066209 +-5.2918978 +-10.4091253 +14.3615532 +1.7609866 +1.5593855 +-10.8855610 +28.2460194 +-5.2436891 +10.9815416 +-0.6912048 +-1.8567065 +10.6610498 +-3.4839571 +9.3907995 +0.3319544 +0.5819092 +5.8625526 +95.5548935 +9.4570026 +22.0880508 +3.8801548 +1.0939393 +24.3296242 +11.7334127 +-4.5363021 +-0.8600785 +5.1156201 +9.6185532 +2.3999612 +20.6690407 +-4.5665784 +5.4074745 +-6.4966679 +-11.4287615 +5.3832355 +1.9045144 +-7.6441646 +-4.3556018 +6.3950148 +3.9098790 +-6.9922729 +-2.1455488 +3.8181953 +6.7854171 +-7.0588617 +0.7687891 +1.9766982 +-6.9923625 +-0.0030717 +2.5159085 +-4.1645956 +-1.9201803 +-21.6535988 +5.3420296 +6.4928026 +-3.8781996 +-0.9212094 +2.4176943 +12.1599741 +1.4950056 +13.8422794 +-10.7076454 +-0.4646055 +-1.0779920 +-6.3018284 +2.6526301 +-3.6020637 +-9.7486258 +1.5949767 +-0.4337506 +-9.7238245 +-0.2361461 +18.6165600 +-85.2508316 +7.1430922 +-36.3870850 +-38.8970718 +-2.3940873 +4.1744080 +0.5191550 +-6.2731347 +-1.4174926 +-0.1303236 +-3.2178872 +3.3453796 +8.5611763 +-5.8836741 +9.5427284 +0.5519789 +-18.4096794 +3.2109497 +-7.4438844 +-2.7250488 +1.2224667 +3.3085136 +3.6758552 +-190.9128113 +-3.0633333 +8.6329060 +37.1818619 +-15.7348108 +16.0296803 +4.5151830 +-0.8618093 +16.1662025 +8.4196281 +-4.4137301 +0.8341379 +-16.8047581 +-12.8837481 +-9.4751606 +-9.3116884 +1.4891129 +0.1623773 +4.2628598 +1.6954232 +-1.9739968 +19.6917324 +3.2926946 +14.5489979 +-5.2473187 +11.6006489 +1.3289580 +-11.8346481 +0.6541883 +-5.3081107 +2.9860880 +4.1234288 +-9.0971107 +-5.2657561 +9.8460417 +2.7948666 +2.2360837 +-7.8904510 +16.4850521 +-0.9472961 +6.9447126 +2.2574408 +-0.8179707 +-0.9902640 +-2.8527501 +1.5809420 +-0.9721082 +-1.1515841 +5.5749221 +75.3333054 +5.9510908 +13.0835295 +0.1378704 +2.4903905 +16.5007305 +10.6636324 +-6.9618144 +2.2639074 +-0.8997601 +4.4362693 +1.9035271 +14.2155371 +-2.9633975 +3.5021944 +-8.0342760 +-7.3593059 +5.1477575 +2.8653538 +-10.8107548 +-5.9230146 +6.8189416 +1.4743389 +-4.4639740 +-3.8939211 +-2.1706183 +4.3016644 +-3.6198142 +2.6694019 +0.9229308 +-5.1910563 +1.4995792 +1.4274017 +0.0881442 +0.3847161 +2.3582652 +4.2748184 +3.4037449 +0.1567589 +-0.6021464 +0.7816304 +5.1007600 +1.7627571 +3.6680512 +-2.9620385 +-1.0182190 +-1.5876188 +-2.8209240 +1.3544083 +2.8490832 +10.0712719 +-6.7267046 +0.1119892 +-3.4262865 +1.3309438 +9.7001047 +-40.5060349 +2.4480786 +-1.1911312 +7.7004671 +1.3008739 +-0.2262030 +-0.6811274 +-2.3373895 +0.1423079 +-1.4593610 +-1.7460032 +-4.1695046 +3.5662043 +-0.8545858 +5.1822157 +1.1453654 +-13.3156300 +1.1361464 +-3.4319000 +-1.5668857 +0.9141419 +1.8602166 +1.6343188 +-8.2299299 +-0.5786277 +4.5833039 +17.5131454 +-4.7010889 +8.3153906 +1.7532011 +-2.5113201 +3.4598219 +3.0466676 +-1.8059716 +0.2046137 +1.6638340 +4.4384465 +-5.3440137 +-1.8121814 +0.2567336 +-1.8941042 +-8.8279171 +-1.7916930 +-0.9383050 +6.2869473 +-36.9146614 +6.9127998 +2.0213530 +1.4417143 +0.6560549 +-4.6368380 +0.0041021 +-2.2814002 +2.3969758 +2.0040944 +-0.4868677 +-4.2728715 +2.4312901 +0.9468055 +0.8812833 +-2.7511709 +9.4321404 +-1.7489736 +4.6147599 +2.6300352 +-0.1371676 +-5.3017182 +-0.4762818 +-5.3129544 +-4.8233323 +-56.0967140 +2.9734716 +36.5710869 +2.8561563 +2.2161205 +1.2029757 +0.3227157 +5.6110520 +-0.1854042 +-1.7532160 +1.7003490 +0.1843387 +-0.1221854 +1.7702734 +8.2757292 +-1.0594656 +-1.3795843 +-2.6949983 +-2.3076777 +0.5455990 +0.0122845 +-1.5052127 +-2.7731740 +3.2217762 +0.9647236 +-1.7447466 +-0.5938801 +-0.8159969 +4.3446302 +-0.1856292 +1.5139430 +-0.0437945 +-2.0274487 +0.4125497 +2.0296435 +-1.6868964 +0.4434043 +3.6219869 +8.7479839 +10.1205683 +-1.5885266 +3.4628625 +5.2281170 +3.5727923 +4.6663294 +-0.0954918 +-7.3543510 +-0.3090556 +-5.5073280 +-6.6993985 +-0.1205793 +5.3758297 +13.5708237 +-4.4205256 +-0.2504845 +-6.9849200 +6.2372618 +19.7778873 +-22.5404377 +6.2373652 +3.3532975 +16.8164768 +1.9606639 +0.1800772 +5.9029250 +-5.9766078 +-3.5032823 +-2.9163997 +-2.6933355 +-2.8990483 +6.6353469 +1.9814554 +8.2867117 +2.2305853 +-18.9989376 +2.1594617 +-7.0883374 +-1.7068136 +-2.1217110 +2.6930685 +2.4200175 +-12.4639502 +-1.5226852 +7.5754142 +34.3140450 +-7.1710682 +14.8707924 +2.2897792 +-0.3394407 +13.0927048 +6.3042002 +-3.5247152 +0.4080262 +7.2182250 +7.0194716 +-23.0512695 +-3.3463330 +0.1109763 +2.1001883 +-1.4152440 +-4.8595400 +0.3178713 +18.5626011 +48.4992332 +11.1493645 +0.0166701 +7.3088474 +-0.2089591 +-6.6779461 +-13.0732899 +-6.1292043 +5.6824923 +4.2013636 +-0.7650240 +-6.6043029 +13.9551077 +1.6379666 +-0.7256271 +-4.9037709 +19.1221752 +-5.5736079 +8.2220984 +-0.0387719 +-0.4268371 +1.5031028 +-2.8132534 +-1.8011179 +0.5059583 +0.3914317 +2.7541714 +54.7328415 +7.2281861 +7.3787384 +3.2293859 +1.0777125 +15.8042841 +-25.6643295 +-2.7479544 +-3.8072355 +4.1970096 +7.6999292 +0.8803588 +15.8912830 +-3.1591988 +3.8639827 +-5.2648063 +-2.3844264 +2.1174788 +0.0700182 +-4.7985687 +5.7869701 +0.1801429 +2.3687699 +-4.3539472 +-1.0888216 +3.6264555 +2.2178824 +-4.8199792 +0.1962958 +-0.3913469 +-4.2934275 +-1.7586565 +2.0333269 +-5.1808882 +0.9244118 +4.5414619 +12.6680269 +13.5205460 +-3.6221735 +-4.4029365 +6.4733510 +9.3569803 +4.7907467 +1.7718993 +-10.4520226 +-1.2203275 +-6.2042651 +-9.1552439 +0.7149622 +5.2538486 +12.3172092 +0.1950177 +2.4107032 +-10.9944487 +9.6117373 +29.2268562 +-62.5414581 +9.2709923 +-1.6083090 +16.5084801 +1.8988808 +1.1468593 +7.3297377 +-9.0366430 +-4.1751437 +-3.7962198 +-0.1928336 +-2.4476006 +11.1815548 +0.9929416 +13.2186651 +2.7914565 +-31.5565186 +3.0758605 +-10.0068378 +-3.3183155 +-1.0292519 +4.7122459 +3.9589360 +-70.1210709 +-2.4790812 +12.2370434 +52.0151520 +-12.8779345 +22.6249199 +3.8143957 +-1.2003046 +22.2279110 +9.8225641 +-5.8010311 +0.5904904 +2.4591675 +3.8251753 +-22.2696915 +-6.5651078 +0.8683097 +2.6122053 +0.7134002 +-4.2054105 +-0.5898534 +27.4074402 +-30.5579815 +18.5929050 +-4.1203928 +14.9561129 +0.4077914 +-9.8724546 +-14.7996693 +-8.4131479 +8.0124598 +5.9727387 +-3.4391048 +-10.0279016 +6.7397442 +2.8962269 +-0.0598831 +-8.1453953 +28.0879688 +-6.0705132 +11.7995815 +0.6304511 +-0.6088433 +-2.3380823 +-3.5721483 +2.4885771 +0.5229421 +0.9113523 +5.3349552 +91.6697769 +11.9568624 +9.3797941 +4.2191720 +2.5855887 +24.1702633 +21.3766918 +-4.5575566 +-2.9866352 +3.0787659 +9.6006498 +2.5197103 +21.9022369 +-4.5806503 +5.7506337 +-6.8183689 +-7.4249840 +4.1809888 +1.1888220 +-6.8883758 +1.9674220 +3.9648190 +3.2248626 +-6.1799197 +-1.9353340 +3.4343743 +3.9828725 +-6.8312802 +1.1934289 +0.0902651 +-6.5556598 +-0.9033322 +3.1548550 +-5.0598426 +-2.0605772 +-24.4275494 +6.4829016 +7.0727744 +-3.2330306 +-18.1261215 +4.7074313 +7.3659053 +2.5197732 +14.7727528 +-8.0355616 +-0.5213955 +-0.5758226 +-5.5411215 +1.9647502 +-1.2210186 +-5.4364271 +3.1985981 +2.2096190 +-8.8410063 +2.2965183 +15.6912012 +8.3210831 +6.9241385 +-47.1951561 +-31.2657166 +-11.7823400 +3.5918822 +0.4720010 +-8.0072660 +-1.8444600 +0.1066274 +0.7927690 +2.0662432 +9.6129074 +-3.7905536 +7.8254662 +0.2208976 +-12.2960892 +1.8109972 +-4.7390757 +-2.4695954 +1.4980446 +3.2481401 +4.2157602 +5.6423268 +-1.5550143 +9.3157024 +36.3008270 +-16.1772633 +15.7869549 +3.8610198 +0.5749153 +15.5606804 +6.0833745 +-4.4190836 +-0.3480665 +-12.0310135 +-8.9095840 +1.8757805 +-7.9741936 +2.0817451 +0.2613084 +2.9893320 +1.3709621 +-1.6783764 +17.5273094 +-3.9125845 +15.1160908 +-2.3156872 +-13.8441353 +1.3732750 +-9.5809641 +-0.1821298 +-4.7615924 +3.9654565 +3.9794426 +-6.8571668 +-6.0928698 +8.6999187 +3.2946277 +0.6520694 +-9.5000248 +16.7377720 +-1.1521902 +6.9777637 +0.9497506 +-1.0495350 +3.9046783 +-2.4176950 +2.9986098 +-1.1800548 +-0.9181545 +5.2597208 +75.9819717 +7.2018971 +21.6265831 +1.0007315 +2.5034978 +16.0472412 +-107.4829636 +-5.1921959 +1.2387900 +-3.4138045 +7.3480253 +1.8904198 +12.6253157 +-3.4108438 +3.9093618 +-7.9735818 +-8.2360783 +4.4449306 +2.6892631 +-7.2412896 +-10.3364773 +6.0747433 +0.5107401 +-4.0134063 +-3.2977707 +-1.6661463 +4.6869760 +-4.6339412 +2.0074084 +0.8129097 +-4.8461108 +1.5591553 +0.9148141 +0.2456533 +0.2238248 +3.0886047 +4.2420154 +2.6794913 +-0.2586059 +-1.1989907 +0.2244684 +3.6979008 +0.7257578 +2.6113174 +-2.4017150 +-0.6906512 +-1.6068019 +-2.7538171 +0.9582299 +2.7266409 +9.7501831 +-4.3584270 +0.0769648 +-3.1690567 +1.9376985 +9.9410772 +-42.6611671 +2.7399011 +0.1781006 +8.5798635 +0.2623902 +-0.1375315 +0.0953661 +-2.7735317 +-0.2807388 +-1.1601222 +-1.4537572 +-1.0054089 +3.3337443 +-0.4000657 +3.5803430 +1.0636823 +-14.4962940 +1.0585148 +-2.0312526 +-1.9392878 +0.5027794 +1.6369096 +1.5093707 +-8.6179962 +-0.3994561 +4.1653275 +17.6733322 +-4.2613349 +6.8477783 +1.6077843 +-0.4095375 +4.3739924 +3.1924675 +-1.7246362 +-1.0244468 +6.8893890 +9.1137524 +-1.2142315 +-1.4138331 +0.0955841 +-2.1048632 +-8.5463085 +-1.7994365 +-1.3373214 +6.8942657 +-40.0576210 +6.8356233 +2.5631847 +-9.2698336 +0.7895827 +-2.3842390 +-0.6461114 +-2.0681880 +1.9111151 +1.4163113 +0.2859866 +-4.1826091 +-5.1209931 +1.4319488 +0.4811331 +-1.6043897 +9.6223011 +-1.4292879 +4.4940600 +2.6166103 +0.1290773 +-6.3923526 +-0.7345811 +-4.2238159 +-2.1908684 +-59.2223587 +2.3693130 +34.3255768 +3.0452218 +-3.0850768 +0.4941312 +0.4356003 +4.6505785 +-56.3670464 +-1.6778439 +1.0165331 +-0.9025252 +-0.6973448 +1.5356462 +8.3290157 +-1.7880744 +-1.1964674 +-2.5842841 +-1.1256928 +0.1423295 +0.9490788 +-1.7377766 +-0.9922315 +2.7796674 +-0.0989265 +-2.1247575 +-0.1925182 +0.2768498 +4.5774832 +-0.6730220 +1.1318969 +-0.2831121 +-1.8520124 +0.4520735 +1.9781823 +-1.6200339 +-0.1918722 +4.2075486 +8.7101469 +9.6875830 +-1.7283856 +3.1877894 +4.6980729 +-1.1888769 +7.5508590 +-5.9201908 +-6.9056649 +-0.3915289 +-5.8054128 +-7.1929960 +-0.4235431 +6.0759149 +11.2685623 +-0.7727660 +-2.5126705 +-7.1401014 +4.2137413 +20.0337143 +-26.1167717 +6.0656481 +1.0908285 +16.0108566 +-2.2337582 +0.1568140 +4.8197031 +-6.3757529 +-4.3348303 +-2.6415317 +-4.9278512 +-2.1956363 +5.3827405 +3.5019085 +7.9029303 +2.4151132 +-36.7122993 +2.2153089 +-6.4979410 +-1.8360927 +-3.1949091 +1.7642754 +1.7450874 +-0.3342172 +-1.7416261 +7.2722473 +33.9261284 +-6.9696140 +14.1752148 +2.4064183 +-0.2607065 +10.6275167 +5.5584707 +-3.3677890 +-0.1054405 +12.8741388 +11.4571781 +-2.7260795 +-3.3888867 +-0.1975510 +0.6627770 +-3.0214779 +-5.6826863 +-0.3790676 +18.3091125 +26.4018726 +10.7361574 +1.4135151 +8.4325590 +-0.9160172 +-4.4518414 +-12.8321009 +-6.2513938 +5.3374238 +3.7624702 +1.2933900 +-5.9031906 +8.9711676 +2.0681708 +-2.2499883 +-3.5982084 +19.1821709 +-5.9520497 +8.2786589 +1.3859116 +-0.7150419 +-16.7586136 +-3.4052286 +-11.1344948 +0.1297408 +2.3936219 +1.8937067 +48.8654022 +3.0681288 +4.0716710 +2.8943398 +1.3627733 +15.2047939 +3.4981167 +-2.5920742 +-7.2595549 +2.1871681 +7.1555614 +0.5809664 +15.8530931 +-3.0174806 +4.2884231 +-6.9283504 +0.3464858 +1.5744185 +-0.3676212 +-4.1983714 +9.2175999 +-2.7717059 +2.3889480 +-4.7541132 +-0.8993230 +3.4601088 +2.1532807 +-4.5423822 +0.0034401 +-1.4968685 +-4.2267132 +-2.0631144 +2.0599017 +-6.0074058 +0.3581045 +5.4855242 +12.9896364 +13.9890261 +-3.4778430 +-0.5095488 +4.3024740 +4.5523190 +8.6306505 +2.9978526 +-9.8368912 +-1.1444216 +-6.6562676 +-9.3680010 +-0.3760836 +7.0231128 +10.3138771 +4.6442547 +-0.2483513 +-10.4920359 +9.3946657 +30.3913403 +-45.1297607 +8.9445734 +-2.6329191 +18.6433258 +-8.2066069 +1.1705776 +7.0673962 +-9.3250303 +-4.8056111 +-2.8368402 +-4.0520625 +-3.2963643 +9.3832016 +2.7850325 +12.0051556 +3.3952408 +-33.7022095 +3.3760076 +-9.6730604 +-3.1803579 +-2.3141961 +3.5451920 +2.5204613 +-37.3679047 +-2.8620610 +12.0825777 +51.8488503 +-11.8722372 +21.6089821 +4.1141100 +-1.9805564 +18.1497498 +8.5504217 +-5.3787704 +-0.1079672 +9.2403746 +8.4532576 +-13.5844793 +-6.0032735 +0.4917450 +1.4057268 +-4.8747587 +-5.9195161 +-1.0653526 +24.2125416 +-30.0482559 +17.8769722 +-1.2681813 +-23.2698212 +-0.1245288 +-7.9551430 +-16.0403099 +-8.4962626 +8.2664614 +5.2848992 +-0.7261727 +-8.3718529 +4.3814960 +3.4787340 +-1.7332972 +-6.9941931 +28.2621307 +-6.6843238 +12.3445673 +1.6052433 +-1.4203293 +-4.8635740 +-4.6204419 +-7.1029735 +0.8199076 +0.3345485 +4.8225813 +86.0723495 +8.2164879 +6.9130864 +4.1790104 +2.6795361 +23.4360237 +-21.8355160 +-4.1411805 +-7.1435871 +-0.1739533 +6.6508880 +2.2724948 +22.2273979 +-4.7699881 +5.8137431 +-7.5490775 +-3.4445236 +3.3775887 +0.2379299 +-6.5734892 +6.4880815 +0.6401610 +2.8441553 +-6.4962397 +-1.7738642 +3.6089880 +2.2119188 +-6.8014684 +0.1467832 +-1.4276578 +-6.3490162 +-1.1383950 +3.8198264 +-6.5167356 +-0.8222917 +-0.7732943 +5.8667440 +7.0817666 +-4.3528233 +-15.7977858 +4.9556761 +1.6920640 +0.9978676 +15.4237204 +-7.1405630 +-0.0714015 +-0.3163710 +-5.6971040 +-2.4172180 +-2.1083891 +-3.3724480 +-0.7310728 +4.0518332 +-8.6160860 +3.4517496 +18.7984791 +1.5213188 +7.5013142 +-23.8867283 +-10.7208004 +-2.1783817 +1.4575871 +0.3860309 +-7.7745748 +0.0656346 +-0.8498874 +3.1572518 +1.0041981 +9.9881220 +-2.8109529 +8.3190918 +1.4596798 +-13.1005716 +1.3411722 +-2.2884777 +-3.1966248 +0.9991102 +0.5895323 +4.0427732 +5.2631621 +-0.8858035 +9.8254976 +34.5671539 +-11.8316517 +18.1897011 +2.8099802 +-1.1579319 +17.5528221 +5.1798663 +-4.0590520 +-0.2555376 +-12.0091124 +-8.2849865 +-17.4894085 +-6.9800391 +2.3479185 +-0.9877416 +3.1098003 +3.2457380 +-1.3367002 +12.4057980 +-0.2130122 +15.3238134 +-2.2968862 +-2.4307053 +0.2576510 +-2.4634449 +-0.6264617 +-4.8852773 +4.6633978 +2.6961119 +-6.8584218 +-6.2642694 +-73.3455887 +2.7122402 +-0.8310441 +-9.2769165 +17.6437683 +-0.9523900 +8.2813091 +1.4028244 +-0.3175382 +4.7728243 +-1.7748740 +4.0384197 +-2.8093314 +1.1627525 +5.1460652 +67.1747589 +7.1880913 +16.9446659 +1.8664531 +3.2729034 +16.0613403 +-42.7624321 +-5.4061222 +-0.4397263 +-3.2603669 +8.2464561 +2.0646627 +13.5053139 +-0.9814745 +5.1584444 +-4.3054347 +-13.5158539 +5.0110750 +1.4606885 +-6.1107082 +-10.2318125 +3.0910652 +3.8278296 +-5.2246246 +-2.2542803 +-2.3031819 +4.0430284 +-5.5514250 +-1.7332584 +1.2316809 +-3.5858691 +1.3448703 +2.6444902 +0.1486868 +-0.2164452 +2.5279467 +4.6490455 +1.7067513 +0.4721944 +1.4563284 +-0.0136843 +1.1404457 +0.1551883 +-5.7661386 +-2.3917251 +-0.4415502 +-2.7270811 +-2.7899628 +0.8122029 +2.4973214 +8.0515022 +-3.1719518 +-1.5293384 +-3.7006061 +1.8289720 +11.0209341 +-38.5389595 +2.4396811 +0.3492630 +8.4480553 +2.3399069 +0.0526453 +0.6025265 +-3.3409622 +-0.4808985 +-1.2931951 +-2.4438150 +1.1744961 +2.2273586 +0.0301976 +3.7744305 +1.2994808 +-18.9534779 +0.3165869 +-2.0144548 +-1.3341408 +-0.0766419 +1.7757041 +1.7719527 +-7.9905276 +-0.7911469 +3.7315109 +17.2462082 +-2.7444656 +5.7335429 +0.4833008 +0.2243169 +3.4774215 +3.8016369 +-1.6278005 +-0.6003501 +8.5955744 +8.7492657 +-2.0573616 +-1.6287961 +0.1104012 +-2.3671694 +-9.6119881 +-1.4610878 +-0.9464864 +4.5689673 +-32.3543777 +6.2945504 +3.3446879 +-24.4189358 +-0.0676349 +-1.4440641 +-1.9178613 +-2.1111975 +2.3300471 +0.8402292 +0.7542326 +-3.2330675 +-10.2091303 +1.3690683 +-0.8421267 +-1.4815750 +9.4471722 +-1.9129874 +4.7569404 +1.7023997 +0.1642667 +-10.4149818 +-1.0134673 +-3.5023048 +-0.9331813 +-56.0937767 +2.2854300 +35.7255821 +2.2934129 +-9.9795933 +0.9429309 +0.4721255 +4.4467831 +-63.9987030 +-1.0284379 +-0.2805170 +-1.1127934 +-0.7613361 +1.3181351 +7.5159760 +-1.4157929 +-0.1577022 +-2.3047299 +-0.8944049 +-1.1972004 +0.1365150 +-1.6652222 +0.5860535 +2.7162604 +0.4789385 +-1.5966215 +-0.3336030 +1.1629183 +4.4784570 +-0.6264865 +1.1694462 +-0.7792740 +-1.6429782 +0.0209412 +2.2588384 +-1.7893575 +0.2835208 +4.1927271 +9.2012730 +9.9774733 +-1.4724536 +6.1983123 +4.8153181 +-4.5697727 +10.0858326 +-5.6317639 +-6.7062201 +-1.2854456 +-6.3876076 +-7.4439440 +-0.8502125 +6.6423001 +9.2102242 +-6.3594041 +-4.7113538 +-8.3228760 +1.0467440 +20.6896667 +-24.1188660 +5.7880044 +2.7293751 +14.9010382 +-2.9283283 +-0.2735841 +5.2742710 +-7.1555910 +-4.5010576 +-3.1972098 +-5.4811444 +-4.4413705 +4.0350547 +5.1133509 +7.3030534 +2.7302265 +-63.2494087 +0.8021978 +-5.6597061 +-1.3643321 +-4.0336900 +1.4980905 +2.2572739 +10.0197430 +-2.2596359 +6.1884131 +32.3573456 +-5.2254410 +13.0546474 +2.1955204 +-2.8942842 +8.7731075 +5.0981421 +-3.4328105 +-1.6122265 +15.1602879 +10.6935091 +-0.0651734 +-3.5625174 +-0.4479213 +-0.3032216 +-4.4735775 +-5.1952820 +-0.7312310 +16.5249519 +-95.2112503 +10.0106697 +1.7046734 +2.3976028 +-1.7480704 +-2.5460093 +-13.7527676 +-6.6236701 +5.6200700 +2.5880911 +2.9612229 +-5.6149473 +1.1117257 +2.1017811 +-3.7578323 +-2.4525518 +18.7673531 +-6.7390676 +8.5418463 +1.3917717 +1.4171219 +-45.2403107 +-3.5131135 +-17.7848930 +1.9968790 +1.8387320 +2.3162086 +44.3748779 +0.5282448 +1.9210368 +2.8353381 +2.7081544 +16.0953999 +-1.6385357 +-2.0126095 +-11.5662403 +1.5050344 +6.5796347 +0.4861144 +13.7963123 +-2.8537769 +4.3874941 +-7.4219584 +1.0788810 +0.4885342 +-2.1293447 +-3.6168234 +11.6289034 +-7.7016530 +1.6194360 +-3.6726596 +-0.3484332 +3.4745066 +2.9465480 +-4.3839197 +-0.3364896 +-3.0615964 +-4.1684399 +-1.6739898 +2.3306489 +-6.0456314 +-0.3095765 +5.0819612 +13.1045198 +14.4225798 +-2.8650517 +5.1855497 +5.3307691 +-1.0311141 +10.5950241 +4.9306297 +-9.9149055 +-1.5411050 +-7.3993788 +-10.0786018 +-0.1465857 +8.1993217 +7.7637477 +1.1430337 +-4.1576681 +-11.7778988 +6.1124401 +31.2357674 +-39.6802788 +8.5472050 +-0.8056573 +20.1320629 +-8.5904388 +0.7555591 +6.3089771 +-9.8182840 +-4.8376918 +-3.8209498 +-6.9170570 +-5.1445661 +7.5930471 +5.3762145 +11.6782742 +4.0733438 +-29.7513695 +1.6306491 +-8.4029045 +-2.6781394 +-3.2492650 +2.9673805 +3.8735988 +-15.2925406 +-3.5653069 +10.5720463 +50.1649666 +-10.3530626 +20.9443130 +3.4373345 +-6.4020638 +13.5670996 +7.4339457 +-5.2123613 +-1.4413739 +12.4021368 +7.6602387 +-4.9860725 +-5.6563601 +0.1035223 +-0.4844072 +-8.6435862 +-4.9661617 +-1.7624525 +22.7948475 +-16.4116211 +16.7046032 +1.5219892 +-46.7152138 +-1.5747738 +-4.5036769 +-18.5597668 +-8.7385960 +8.4916611 +3.6451204 +1.5320833 +-8.2062874 +2.3291032 +3.2516627 +-4.2588511 +-5.0577583 +28.2770233 +-8.0545206 +13.1268940 +0.7864084 +-2.0884926 +-0.0849347 +-5.0355144 +-9.6637325 +-0.4013972 +-3.8203115 +5.6804404 +77.4919052 +6.2714529 +6.1852088 +3.9256639 +2.9367192 +24.1907215 +-18.3697815 +-3.6271980 +-12.9046078 +-0.9549953 +7.4885941 +1.8220956 +21.1840572 +-4.3105044 +5.2887092 +-8.0190802 +-0.9805809 +2.7836752 +-1.5260268 +-5.5177293 +9.5099592 +-5.1312523 +2.3757150 +-5.5890508 +-0.9315739 +3.5466161 +3.5890563 +-5.8178887 +0.3327308 +-3.2987506 +-5.7917666 +-1.1619827 +4.4539838 +-6.7165451 +-1.1364082 +5.2187257 +7.5840378 +8.1813173 +-5.7181149 +-3.4388723 +4.0951576 +-14.5595150 +2.2063718 +15.8795271 +-5.4305091 +-2.6873186 +-3.6527269 +-4.8059602 +-3.4069889 +-0.2119359 +-2.9791639 +-16.6311092 +4.8983779 +-6.7321491 +8.1997519 +20.2886047 +2.6405437 +5.5683098 +-10.1723623 +5.8465137 +-12.9590349 +2.1437397 +0.0994529 +-8.0757742 +-0.5309380 +-1.8691298 +3.8086152 +-0.4353212 +7.7963228 +0.1605775 +8.9594126 +1.7540109 +-28.6524982 +0.2199878 +-4.8560119 +-2.4196064 +0.7016119 +1.5238714 +2.0813494 +-4.0057807 +-3.5284956 +9.0657787 +38.1677437 +-10.4370136 +12.7896185 +2.7929714 +-2.9410353 +18.0767765 +7.0620179 +-3.7419102 +-0.9519736 +-9.2790737 +-7.9103651 +-11.2293081 +-4.6786828 +2.1664093 +-0.9992320 +1.7009492 +3.9876709 +-2.3255548 +17.7619801 +-28.5853348 +13.5806446 +-3.1322236 +-0.9522704 +0.1031903 +-2.6094379 +0.0701669 +-5.2699065 +5.3720260 +-0.1432448 +-4.7333236 +-6.1020217 +-48.0608063 +2.2543058 +-3.9353826 +-6.3733854 +19.5595455 +-1.0962486 +8.5880680 +0.1804669 +-1.7560797 +-11.4646416 +-2.7882493 +-1.4004580 +-11.2509680 +1.9570378 +4.3394547 +66.6410751 +6.6681051 +9.0049791 +2.4690993 +3.5745928 +15.7860556 +-14.5701485 +-3.8395846 +-3.3795862 +-3.1736751 +5.6947889 +3.3801522 +13.6326199 +-2.0304208 +3.9258060 +-0.7027795 +-8.8453608 +4.1545076 +1.7618039 +-5.0030951 +-5.3558450 +3.7225480 +1.5423687 +-3.6159916 +-1.7179030 +-3.9610703 +3.7066731 +-4.5601196 +-3.1784530 +-1.0596515 +-4.4068189 +1.3112921 +3.3855965 +0.2067579 +0.1695339 +1.4344783 +4.9263291 +1.7351594 +0.3684832 +1.0769168 +-0.3447001 +-0.3872761 +-1.8675197 +-28.3072281 +-2.5832472 +-0.7771468 +-1.6106075 +-3.2547708 +0.4747109 +2.0412562 +16.2191753 +-3.5807643 +-2.1845949 +-3.6153886 +1.8000525 +11.8127003 +-47.7831497 +2.4837091 +1.0042225 +8.5854759 +3.6905072 +0.4909979 +-0.5643275 +-2.7417502 +0.3252286 +-0.4048172 +-2.9515316 +4.0899611 +1.7493198 +0.7222069 +3.6711519 +2.4803281 +-26.4757862 +-1.0418777 +-2.4723566 +-1.1655474 +-0.6806969 +1.4515780 +1.7139708 +-31.6764145 +-0.9749250 +3.9859056 +17.1552601 +-2.2496381 +6.1322908 +0.2706281 +-0.1758459 +1.6578985 +3.7985957 +-1.2518835 +-0.7013965 +12.2239761 +14.3294659 +-1.5865291 +-1.8737354 +0.1339708 +-2.8315258 +-9.4548988 +-1.4727129 +-1.0905644 +2.4185772 +-37.4980545 +6.5252609 +2.3379397 +-49.0678596 +-0.1862808 +-1.2210033 +-3.0474274 +-1.5066289 +2.5627697 +-1.6811588 +0.4744616 +-1.8624759 +-18.0216255 +1.7427219 +-1.3244694 +-2.2373393 +9.8225279 +-2.3187344 +5.3057361 +1.8045379 +-1.7030431 +-17.9330864 +-1.4701977 +-5.9545398 +1.4581804 +-22.3621693 +0.7750735 +33.1924629 +1.2977631 +-14.2559166 +1.6034758 +-0.0800083 +3.4230285 +-59.8345299 +-0.7239939 +-2.3874350 +-1.8775265 +-0.6514102 +1.5089450 +7.1838217 +-1.6853411 +0.0434814 +-1.1499032 +-0.5065460 +-0.9774592 +0.0230818 +-1.6058986 +-0.0446763 +0.5111070 +0.6837851 +-0.3258651 +0.2046273 +1.3815225 +4.2510433 +-0.9804919 +0.6287478 +-0.7529168 +-0.9411941 +-0.1809407 +3.0023193 +-1.7693671 +1.9324464 +3.1920364 +10.2284050 +10.8446827 +-0.1596522 +4.6335878 +2.2114542 +-7.4748316 +10.9606953 +-13.6848421 +-5.8117127 +-1.6446736 +-5.5425801 +-7.9709330 +-2.1038415 +7.2100778 +17.8529415 +-11.7298584 +-5.6807718 +-9.1637020 +-0.9387222 +20.4257660 +-20.7446404 +5.8146367 +4.4021816 +15.0174475 +-3.9741590 +-0.4030248 +4.3687439 +-6.5913720 +-2.7929950 +-2.2107482 +-5.2425466 +-6.0453148 +2.0593829 +5.7431026 +6.9212484 +3.4676783 +-54.7246246 +0.3149880 +-5.2563086 +-0.6425412 +-5.2043605 +0.5802978 +2.3057945 +1.4911906 +-2.9528766 +5.8582549 +32.0269394 +-3.4986904 +14.2240829 +0.5420696 +-5.7513795 +5.8375731 +3.1480927 +-2.9095991 +-2.1303577 +20.0640697 +16.2377510 +1.6060492 +-3.3512750 +-0.6354443 +-2.1601326 +-5.0958843 +-7.1473975 +-0.5020540 +14.9856119 +-92.5758133 +9.4586248 +3.4460313 +-1.6498390 +-2.2677250 +-2.7118177 +-14.0736742 +-6.4775057 +5.9304914 +0.9874393 +4.2615757 +-5.9097457 +-4.9670587 +3.5122459 +-5.1752791 +-1.3795555 +18.2530537 +-8.5721979 +9.0030537 +1.2223579 +2.0054295 +-37.8847466 +-3.9212637 +-86.7322769 +3.8576641 +-0.9891389 +2.5144219 +37.2970009 +-4.1177917 +-8.5576124 +2.2839680 +3.7287326 +14.9217415 +-6.9878216 +-0.9077576 +-14.3245134 +-0.5045533 +2.0947766 +0.5520068 +11.9646130 +-2.7562301 +4.5933375 +-6.7565894 +1.2571009 +-0.7889435 +-2.4168520 +-3.8753018 +17.7000465 +-14.6552916 +1.9431255 +-2.3547225 +-0.0358521 +3.4963155 +0.8134519 +-4.8304338 +-1.5605993 +-3.5930457 +-3.6923389 +-2.4660120 +2.9257264 +-6.5522900 +1.7410669 +4.6039762 +13.9027386 +14.9963446 +-1.8298541 +3.6371932 +4.2098222 +-4.4824872 +12.3432178 +8.7859650 +-8.8057928 +-2.3816049 +-7.5806708 +-10.5757561 +-0.7190236 +9.1116657 +15.3322535 +-9.7202053 +-7.9747953 +-12.5161228 +2.0761645 +30.9221020 +-40.6384468 +8.8750439 +2.8806033 +22.2442970 +-5.4686413 +0.7451690 +6.6237311 +-8.8095179 +-3.0833199 +-2.8705893 +-8.4947853 +-5.1953025 +5.7132993 +6.7391362 +10.8457317 +4.5781364 +-48.0503120 +0.1231518 +-7.7825727 +-1.5184212 +-4.9757905 +1.8734454 +4.9558067 +8.0002069 +-3.8706582 +10.3538322 +49.7919617 +-8.9659081 +22.8161736 +1.9776608 +-6.6684022 +10.5411644 +6.0812197 +-4.3842392 +-2.6712830 +17.8331985 +12.7928715 +-1.7060547 +-5.2773490 +-0.1291842 +-3.4705076 +-10.1124458 +-7.5797043 +-2.0702410 +21.2406883 +-13.5483589 +16.2600861 +3.4850712 +-52.5723686 +-2.1330485 +-4.3798451 +-17.5745544 +-8.3665428 +8.4209051 +0.1279350 +2.9736371 +-8.5890245 +0.6912398 +4.5467052 +-5.5398383 +-4.2940774 +27.8935947 +-9.7144337 +13.7979765 +-1.3488394 +0.7754336 +-18.6116238 +-5.9987845 +-16.8223343 +1.3914669 +-10.1002998 +5.1575403 +69.5310745 +2.6372716 +6.6831646 +2.9141695 +5.0424399 +22.3221073 +-20.0142078 +-2.7258399 +-19.0010433 +-3.7221043 +4.8985591 +1.6876818 +18.0596180 +-3.9210691 +5.4787564 +-7.8401132 +0.2275533 +0.9639640 +-2.6180391 +-5.8568091 +16.4854259 +-8.8673210 +2.6047041 +-3.5032837 +-1.2435095 +3.6036570 +4.1396718 +-6.4627614 +-0.2491576 +-4.2879381 +-5.0877085 +-3.5076394 +4.8310537 +-7.5095439 +-3.9173627 +1.7680937 +7.5416026 +7.9874601 +-3.4663157 +-3.0875561 +4.5267277 +-1.2501806 +4.2926326 +10.2473183 +-6.7107782 +-1.4074320 +-11.6296635 +-5.2654743 +0.5199215 +3.6669135 +-3.6848071 +6.9139752 +1.8974451 +-6.5752573 +8.7539082 +21.3295879 +-7.9997315 +5.7999563 +-12.1600142 +9.6167736 +-5.2816586 +1.2942662 +-7.3053460 +-6.0291591 +0.3750290 +-1.3542438 +3.0323789 +-0.5858546 +7.1404004 +0.0291614 +8.0094738 +2.7773726 +1.3406515 +-1.1706128 +-6.3415799 +-2.5160186 +1.0333307 +0.0910330 +0.9742556 +-10.5652418 +-3.1794326 +10.4463301 +36.5879250 +-10.1619120 +17.5314865 +-2.9983828 +-1.1135136 +-0.6588079 +9.5076761 +-3.5407333 +-1.2605039 +-7.0611787 +-7.5829906 +-8.2749844 +-4.3423848 +1.6547232 +-3.4045603 +-5.3082380 +-1.8580570 +-2.9136047 +-3.0973356 +-36.4166641 +14.7636261 +-0.0382935 +-3.6037910 +0.2006700 +-4.9223847 +4.7206845 +-3.9703691 +4.9887266 +-3.1596618 +-4.0024290 +-4.8616867 +-47.7332153 +1.0697155 +-1.2935905 +-7.5976453 +19.7898579 +-1.2619390 +9.1995516 +-0.9811723 +-1.2824861 +-2.3196666 +-2.1350310 +9.6584854 +-12.8232374 +-0.8671504 +3.5861785 +63.2395020 +5.9762206 +-7.0023174 +1.9144423 +3.1720712 +15.7872686 +-1.6348977 +-3.8570709 +2.4464276 +-1.9654847 +6.1318989 +2.7456694 +16.8423901 +-3.1938050 +3.0458927 +-0.3862924 +-6.9199362 +1.5916750 +1.8234185 +-6.3118382 +-2.8737369 +1.1370649 +-0.1555309 +-2.3639765 +-1.5092635 +-1.5540880 +-0.9267440 +-5.9267659 +0.3630218 +-0.7668299 +-3.7064786 +-0.6171085 +4.6020513 +-1.0721785 +1.0190843 +1.2259558 +3.4003913 +2.3814704 +-1.2071177 +0.4512531 +0.8097601 +-1.1173285 +-2.4328694 +-56.5165100 +-2.1524856 +-0.7893525 +-3.5019941 +-1.9304416 +2.6725767 +1.5662053 +-1.0106002 +-2.3592238 +-0.5408860 +-3.0179944 +2.6948712 +9.9189472 +-32.5228081 +3.1869607 +-0.0588394 +6.6844950 +-4.7238946 +-0.2027282 +-0.0827390 +-1.4216125 +0.5695566 +-0.5749767 +-1.2163230 +3.1895416 +2.0322671 +0.5177212 +3.8990717 +1.1559221 +-50.1715813 +-1.4194949 +-1.0426321 +-1.3015783 +-1.1441182 +2.1448267 +1.2462502 +-27.8835239 +-1.0386094 +3.6694996 +16.5432434 +-5.8179588 +6.6781359 +-1.1179942 +-0.9347188 +4.6887689 +4.4959183 +-1.1702057 +-0.2386050 +-0.9907723 +-2.6056237 +-1.8968648 +-1.8097703 +0.6925212 +-2.0952048 +-8.3152523 +-0.6580962 +-1.4824558 +2.0072045 +-41.9187202 +6.0215497 +-1.7566848 +-13.7415142 +0.7511525 +-0.2424465 +-2.0515919 +-1.1983954 +2.8682005 +-5.0288472 +-0.7571785 +-2.8091893 +-27.0217648 +0.9928601 +-1.1051850 +-0.6801460 +8.3948898 +-1.2553947 +3.6586530 +-0.7924539 +-0.8750823 +-36.2310410 +-1.4784770 +-6.7967458 +4.1461606 +-9.5933771 +0.4828700 +32.9400024 +-0.2575968 +-21.2024555 +0.9554633 +0.8753772 +2.3937387 +-38.3459167 +-0.9562846 +0.1036331 +-1.9574169 +0.1906613 +0.6418602 +8.3944492 +-1.1143577 +1.1014498 +-1.3486933 +-1.8124448 +-1.3185414 +-1.1400975 +-1.9208739 +11.4357138 +0.2766744 +0.9397435 +-1.4361906 +-0.0592570 +1.6290460 +1.0233479 +-1.4248579 +2.5029240 +-1.2779866 +-1.2304918 +-1.3842821 +2.2211585 +-1.0050926 +2.6331370 +2.3308036 +6.7007928 +5.5444584 +-3.7038462 +4.1093378 +2.1001546 +-7.6301117 +10.4842463 +-10.4177780 +-6.9495115 +-2.0737629 +-6.3432131 +-7.1265326 +0.2692768 +2.1425688 +-0.1613857 +-2.8054562 +2.1766360 +-5.9656954 +5.3398395 +19.9711895 +-9.9660997 +6.0893216 +-0.2942072 +15.3348055 +-6.9056849 +0.1611634 +-3.0659971 +-4.4229836 +-0.5062026 +-1.4921765 +0.3343605 +0.4461609 +1.1803298 +-0.6217141 +7.0581927 +2.6613288 +-18.8119335 +-0.4101403 +-2.0244644 +-2.8378685 +-4.4705472 +-0.9649584 +2.6852486 +-31.6889439 +-1.9408120 +7.4951267 +30.9687061 +-7.5417295 +10.5002909 +-1.1896728 +-1.8044496 +12.9134798 +-0.7475261 +-2.7627289 +-1.1415348 +-2.3672917 +-4.9768462 +-3.6100094 +-3.2948828 +0.9110143 +-4.2316198 +-1.3255030 +-1.8339441 +0.1446040 +0.5667641 +-59.2566948 +10.9019890 +-11.2004957 +-2.0227733 +-2.5522325 +-0.0542237 +-5.0079026 +-4.8586016 +6.4429893 +2.2077227 +-1.4113286 +-6.4371066 +-9.2127094 +2.2478874 +-5.3014169 +-1.4082774 +14.5693989 +-2.1344898 +6.3279529 +-0.8602312 +0.7423018 +-2.4056857 +-2.5992901 +-24.8095570 +3.6872289 +-5.1459489 +2.8384967 +35.8889999 +-8.7394609 +-12.9231005 +2.8802311 +5.6521626 +4.6346245 +-9.1162376 +-1.3564810 +-11.0564680 +-2.3243022 +1.6487378 +1.6793679 +14.0930262 +-2.6603327 +2.3234758 +-1.5392165 +-5.2280264 +-1.0984026 +-2.9021256 +-4.4704356 +7.8432808 +-22.8694344 +2.8372388 +-4.6694417 +-1.1900395 +3.1456339 +-4.5672946 +-3.7367454 +0.7678382 +-4.3349023 +-3.6643000 +-6.2343640 +3.6615171 +-2.6062083 +2.3610611 +3.2499564 +8.3729496 +6.3480191 +-5.4980412 +4.3421397 +1.5870558 +-1.7820427 +10.7189999 +-5.9549370 +-9.0672827 +-2.4945750 +-2.7770820 +-9.5854197 +1.5674570 +4.3123164 +1.0161315 +-5.3519993 +0.5615658 +-8.7993565 +9.4922295 +30.1289101 +-14.8378725 +9.1908445 +-1.5302534 +21.1500473 +-11.3191328 +0.5743459 +-8.3251514 +-6.1235070 +0.0586362 +-1.5697305 +-1.4094849 +0.5280035 +-22.6318150 +-0.1539902 +10.0373516 +2.9144859 +-0.5476683 +0.5611227 +-3.8604527 +-4.2449183 +-10.1675491 +-0.6135067 +3.0014477 +-0.8075313 +-2.8399923 +10.9748688 +48.2797585 +-13.7761250 +17.9059620 +0.4676186 +-2.9183762 +21.6702919 +3.5631824 +-3.5440431 +-1.8567318 +-4.1056185 +-6.9081159 +-5.9408307 +-5.7607384 +1.4284519 +-5.8576698 +-13.7741327 +-2.3400421 +-0.8104097 +0.4086401 +1.3010968 +15.3840837 +-19.8848209 +-13.3055744 +-2.7583334 +-0.8430774 +-7.0368743 +-6.3575749 +9.1097136 +0.4074512 +-1.8379780 +-8.1919165 +-7.7410321 +2.7721143 +-5.2092705 +-3.6593859 +22.2766724 +-3.2491214 +8.7953043 +-4.2769690 +-2.9265053 +-0.8888648 +-3.7976854 +-15.5572777 +-2.0745211 +-9.5112743 +4.3741956 +61.0842438 +-4.0863557 +0.8589795 +2.8591180 +-2.9482129 +-2.0328860 +-8.0357466 +-3.0039105 +-9.0391722 +-2.8180966 +-0.5108667 +2.5567615 +18.3267288 +-3.2840586 +4.0635662 +-2.4804959 +-7.5577178 +0.3152469 +-3.9731045 +-6.9277554 +6.4791284 +-11.0024424 +4.3641658 +-6.2244959 +-1.3363605 +-4.0292954 +1.0412784 +-5.5662193 +2.2901456 +-5.5850811 +-3.9279602 +-2.0914979 +4.0921092 +-4.3983121 +4.0128050 +4.5659013 +7.7653604 +1.2409750 +-6.1754808 +-1.3640833 +7.2451158 +6.8404136 +-9.7360926 +2.9646039 +-6.2506070 +-3.0391874 +8.3265495 +-3.3545299 +6.1044488 +2.4663479 +-4.1914387 +1.0834900 +3.9578619 +-5.2561312 +7.6963115 +17.5000916 +-0.9610286 +5.5676260 +-7.0192561 +-1.2264581 +2.1498568 +-2.1979060 +1.2959186 +0.2960131 +1.8395085 +-1.0034540 +-7.0810251 +-5.1412506 +-0.7203251 +1.2830967 +3.2576454 +2.7081983 +-0.5558693 +0.8691177 +-5.0105367 +-1.8858857 +-6.5558634 +3.2061121 +-2.9896190 +-0.4362359 +-0.1511936 +8.1067476 +28.7534943 +-16.6146641 +9.9690180 +-0.3284051 +-8.3895206 +20.7242908 +-1.3470466 +-0.6114936 +-2.4470184 +-7.0627394 +-7.2513237 +-9.6208620 +-6.9753747 +-0.3063435 +-1.3809630 +3.2697365 +2.1630294 +-5.1182437 +12.0201836 +2.6643159 +11.7823534 +0.8048393 +2.0842795 +2.4911957 +-0.2257538 +-5.7367663 +-2.7263384 +4.6869774 +-13.6063938 +0.3334577 +-8.4094515 +-6.9050384 +-1.4127802 +-3.1925137 +-5.0041251 +14.2866430 +-2.1562643 +6.7809200 +3.5030723 +-1.0177238 +0.2810074 +-0.7555334 +7.0733728 +-2.5148718 +-5.0359445 +2.1244831 +26.8458672 +11.1530323 +9.2906170 +-0.9277897 +0.0589389 +-8.8148727 +-5.9935284 +-0.3485358 +8.6701088 +-3.0702620 +7.4390807 +1.6831545 +-7.8843427 +-3.0491860 +2.9589996 +-10.7061205 +-8.4623976 +9.5727558 +-10.5769882 +-6.0489221 +-0.1805380 +7.0560246 +-0.9873145 +-0.0566666 +-0.2003058 +9.2030239 +2.6771691 +-5.6715975 +5.9565372 +-4.4285965 +2.4140937 +4.6719832 +2.4236040 +-4.9126163 +0.5924380 +0.7264338 +2.7178373 +1.4741631 +-1.7654024 +-4.6351457 +1.1528788 +-2.3053296 +-3.6299250 +-45.3250389 +-2.1764169 +-1.2181600 +-3.1306665 +-1.6731278 +1.7839615 +1.1183612 +-0.6131299 +-3.1767626 +-0.7706164 +-2.9117980 +2.6210880 +9.5839128 +-34.0547295 +3.2242851 +0.2885867 +7.1711817 +-4.0970531 +0.4319974 +-1.1538086 +-1.0280368 +0.6231926 +0.1110939 +-2.0462718 +1.8048135 +1.1451453 +0.0763174 +2.9610476 +0.9376661 +-34.2657852 +-1.0634711 +-1.3640939 +-1.2466056 +-1.7304544 +1.4439573 +0.7190406 +-31.1566525 +-0.4779785 +3.3371091 +16.2013435 +-5.1648645 +6.6617098 +-0.2873980 +-0.8433148 +5.0509892 +4.2860827 +-0.8711377 +-0.7450499 +-0.9635738 +-2.3806853 +-2.3025157 +-2.1072152 +0.6333584 +-1.9697045 +-7.1592550 +-0.8132034 +-1.0047114 +3.1655707 +-39.6838760 +5.8104496 +-0.5097955 +-5.6378069 +0.5534362 +0.5621299 +-0.8964011 +-1.4822284 +3.5704615 +-5.8041539 +-0.9694592 +-2.7653217 +-42.0842400 +0.4169663 +-1.3150188 +-0.4748127 +7.6914587 +-1.3800987 +2.8396738 +0.1375664 +0.6780766 +-23.1507206 +-1.7462360 +-8.2404327 +0.9354485 +-11.7178726 +0.4901188 +29.8356056 +-1.9169301 +-25.5496883 +1.5059497 +0.8618265 +4.4254794 +-16.6666870 +-0.5155829 +-1.6116844 +-3.1340625 +1.0973547 +0.7026594 +6.2229090 +-1.2156413 +0.3650899 +-0.7764557 +-0.9702027 +-0.8221596 +-1.5981225 +-1.7516282 +0.8236955 +-3.0332992 +0.7560759 +-1.5031766 +-0.6703366 +2.3215005 +-2.0823157 +-1.2810009 +1.9969507 +-1.7771642 +-0.7679902 +-0.5101074 +2.1921685 +-1.0909047 +1.2885814 +0.7721176 +5.2268062 +3.0325792 +-3.7799942 +-10.8526449 +-0.6458089 +-8.6092672 +10.1556358 +-11.3453588 +-5.4304423 +-2.5943072 +-2.8377869 +-4.7117429 +0.3138206 +2.0504110 +-1.0816978 +-8.5681038 +-0.6936062 +-6.3709593 +4.5401778 +19.4618015 +-8.6663704 +6.6234207 +-2.4384708 +13.8764763 +-4.1801152 +0.4791338 +-0.3536761 +-3.5955355 +0.2586640 +-0.7940051 +-2.4585745 +-0.0010308 +0.4103516 +-0.6184571 +7.4959621 +2.0276594 +-7.5992160 +-2.6661446 +-2.1637964 +-2.0564113 +-4.8449659 +-0.4706137 +1.3523459 +-23.1591702 +-1.7367387 +6.5970230 +31.1402283 +-9.8742046 +12.6245775 +-1.3387994 +-3.3176508 +11.3351154 +4.7006922 +-1.9612577 +0.2714823 +-2.4217210 +-5.4809251 +-5.7603402 +-4.0441070 +1.1154474 +-4.5746408 +-3.2499003 +-0.5433724 +-0.8618407 +-3.5212288 +-39.4553680 +10.6521730 +0.1296268 +1.0132365 +-1.0789129 +0.6941788 +-3.8372524 +-3.7774897 +6.9068074 +1.4797232 +-2.1910918 +-5.0917015 +-7.6633363 +0.8165445 +-4.5637541 +-1.3586020 +14.2568789 +-3.6646080 +5.5813155 +-3.2853470 +-0.4121027 +11.4995193 +-3.0385916 +-30.8939972 +3.6140492 +-8.4007959 +2.5763426 +29.6343575 +-12.3948374 +-17.1940479 +2.6359525 +4.4452419 +1.8925831 +-7.0886030 +-0.8978785 +-5.4045992 +-4.2235327 +-3.9964328 +0.9845763 +10.6412201 +-2.6802230 +2.5190277 +-2.0102277 +-3.4658048 +-0.1648029 +-2.4083428 +-4.7932844 +0.4552365 +-41.5038338 +2.2763731 +-4.3696189 +-1.4821652 +2.9256105 +-7.9133153 +-4.3804207 +1.0632669 +-4.4884677 +-2.3448186 +-3.5606046 +3.6795466 +-1.8645903 +1.4586295 +1.3674982 +6.6465044 +1.9292779 +-5.4194994 +-18.2243176 +-0.0689560 +-2.9755344 +8.0737724 +-6.7363763 +-7.2709694 +-3.4801385 +-8.9544668 +-6.9315853 +2.6164107 +4.0980272 +-0.3618875 +-19.7461205 +-2.5394607 +-8.8517170 +8.2988672 +29.1677113 +1.2443714 +10.0727472 +-4.2577143 +20.1036625 +4.4049058 +-0.0156164 +-6.0601311 +-4.7345562 +0.7931279 +-1.0031234 +-5.0121865 +-0.0212195 +-7.0610509 +-0.3359568 +11.6998358 +2.6493776 +-1.5368905 +-5.1088319 +-3.1441762 +-3.0378685 +-8.6762943 +0.2380551 +3.1316736 +-4.0565472 +-2.5359545 +10.2370720 +46.8100929 +-15.3000355 +17.3397789 +-1.2772634 +-5.2328882 +14.2224874 +5.1853461 +-2.9158120 +0.8591005 +-3.7967939 +-7.9633818 +-7.7113914 +-6.4341779 +2.0230758 +-9.0043564 +-13.9544907 +-0.6205298 +-1.6904175 +-9.1614780 +-17.5860157 +15.7534552 +-2.6474640 +10.8143797 +-1.3713024 +0.7282504 +-4.2488475 +-5.1023598 +10.1413155 +-0.7464809 +-2.8350344 +-7.1111789 +-5.5568304 +0.8182772 +-4.3096886 +-2.4832454 +21.3532772 +-5.2533956 +8.6551275 +-6.0231118 +-2.8955274 +-1.0900131 +-4.4090991 +-1.2006733 +3.7034826 +-18.3712864 +3.3006415 +66.5608063 +-6.9040165 +-21.5625114 +3.7222409 +4.2430739 +-3.2540402 +13.6474810 +-2.1000147 +-11.6252127 +-8.1258116 +-4.7710495 +1.6168941 +18.0742626 +-2.8613391 +3.6881332 +-4.0983248 +-5.0592771 +-2.3016512 +-3.3673780 +-6.9243264 +-0.5378109 +-11.9385386 +4.9461122 +-5.8230019 +-2.1666427 +4.8238530 +-7.5487337 +-5.8742061 +3.5365760 +-6.0745549 +-3.2306280 +-4.9918017 +4.9649453 +-2.7577841 +-1.8611442 +-1.9525793 +1.0652052 +-0.2865506 +-2.3959627 +-11.6098604 +3.7598796 +-2.9822550 +4.4607358 +1.2650726 +-7.0538344 +-2.6212518 +10.9479904 +-2.6992075 +4.3702021 +1.2458558 +-12.4430351 +8.5449467 +-0.0501904 +-4.2294455 +15.6165266 +19.8211174 +0.2162707 +7.1832576 +0.1086698 +11.6586637 +-16.6921711 +3.7380009 +-15.5434618 +-3.6713345 +1.9357738 +-0.9218381 +-1.1506177 +-0.1482650 +-16.1378269 +-1.0865500 +5.1193795 +-0.3070384 +-0.4322852 +-2.8427970 +-4.1993217 +-2.7260237 +-18.8775311 +-1.0200919 +-2.6144936 +-1.3733476 +-1.1950663 +7.4459515 +34.5746651 +-5.7529926 +5.8483343 +0.1217808 +2.7472277 +-2.1624026 +9.8109236 +-1.8624972 +-1.2046460 +-8.8585253 +-11.7166395 +-6.6411915 +-4.2140617 +1.3608180 +1.1144197 +5.0033550 +0.3111017 +-9.2757311 +-4.6355734 +-2.4184022 +10.3303490 +-3.0262899 +2.2831054 +2.3212631 +-0.7831165 +6.2334790 +-1.5021601 +9.8398819 +5.8096366 +-2.2700245 +-4.8416228 +8.1971426 +-1.1331252 +0.3510924 +-6.9952950 +14.5331764 +-0.9461049 +2.1517825 +-9.7138128 +0.0541539 +-0.3559118 +-2.7555482 +-16.0006561 +-8.6021414 +7.2293353 +1.4039365 +35.0579834 +5.6307893 +-1.2434999 +7.0132875 +0.8316599 +16.8510647 +13.5331020 +-3.0275462 +-0.5044365 +14.7290154 +3.6354680 +0.7799260 +13.4149008 +-2.4203756 +2.2258880 +1.9720923 +-3.9914446 +2.9992170 +-4.2167363 +-7.7892003 +-0.8022420 +2.1261244 +0.5190056 +-3.7360597 +0.5786287 +3.0107353 +8.4282465 +-8.2793598 +4.1987181 +-1.9294876 +-2.4151523 +3.7289190 +2.6665461 +-0.0705063 +-0.3586136 +-0.2727686 +1.8281082 +0.4503023 +-1.8005599 +0.1977723 +1.5850049 +-3.0105956 +-5.0411744 +-38.4538460 +-1.8703634 +-1.4675993 +-2.9654922 +-1.1647310 +1.7724358 +1.3884819 +-0.7956862 +-4.1970196 +-0.8078132 +-2.5248466 +1.9349307 +9.4145565 +-25.1934280 +3.6732192 +1.1921370 +7.2209139 +-1.7838724 +-0.0445097 +-2.5650084 +-1.1446213 +1.0060138 +-0.2345068 +-1.8084363 +2.2064028 +0.7329046 +0.2273307 +2.8659019 +0.4403934 +-53.9112015 +-1.4140631 +-0.7679914 +-1.2048497 +-2.2884102 +1.4918550 +0.2281978 +-30.0860138 +-0.5560791 +3.2246399 +15.2859116 +-5.7064042 +6.7875042 +-0.6575379 +-0.7172738 +5.3928990 +3.1367161 +-0.9509578 +-0.3059750 +-0.7481498 +-2.5846298 +-5.4894013 +-2.1181808 +0.8430775 +-2.6396437 +-7.7431507 +-0.2301141 +-0.9382176 +3.8246410 +-32.2606964 +5.4350367 +-2.6030028 +-5.4223676 +0.5047787 +0.9885289 +1.0779432 +-1.3244615 +3.8855882 +-9.5861893 +-0.8531858 +-1.9478154 +-31.9189301 +-0.2177956 +-1.2121310 +-0.5298182 +7.3510132 +-1.5410330 +2.2064435 +-0.6917838 +-2.6955574 +-43.2907372 +-1.7500700 +-6.1012073 +-0.2555901 +-10.6009340 +-0.5698838 +30.8015442 +-3.3631096 +-32.8284836 +1.5875490 +-0.2570900 +6.5249648 +-13.1781273 +-0.2893086 +-1.5488110 +-2.5202446 +1.7490705 +0.3028983 +6.9902616 +-1.5713416 +0.3350846 +-1.2581071 +-0.4973553 +-0.7023190 +-1.8007244 +-1.5888925 +0.2425294 +-4.4866414 +0.7446841 +-1.4698601 +-0.4508690 +2.4954267 +-4.1769619 +-1.0124338 +2.0309601 +-2.0202644 +-0.6369649 +-0.6685481 +1.6624359 +-0.6740070 +-0.1388322 +-0.5121521 +3.9673462 +1.2649626 +-4.2415838 +0.2246120 +1.0054158 +-9.4175158 +11.6305151 +-5.7302785 +-5.1365886 +-2.9699981 +-4.0670738 +-3.6892245 +1.2221626 +3.0484326 +0.8290114 +0.4111533 +-0.2784118 +-5.4388437 +4.2789602 +18.9711609 +-0.5450602 +7.2882872 +-0.4415569 +13.7872105 +-2.5483396 +0.9390088 +1.0547841 +-3.4648256 +1.2140815 +-1.5896766 +-2.1078835 +-0.9185736 +1.8485246 +0.3258524 +7.3528528 +0.9893539 +-35.5533295 +-2.8757558 +-1.4037477 +-2.4258082 +-5.0020061 +1.4119692 +0.3087100 +-22.8960190 +-1.2109139 +6.1005683 +28.5774307 +-9.2505341 +11.1207800 +-3.7941844 +-1.8828582 +12.5695906 +2.7807784 +-1.8798350 +0.9603410 +-2.1943610 +-5.4958396 +-13.0482912 +-4.2189360 +1.3786885 +-5.5931072 +-4.7569723 +-0.7175912 +-0.7534922 +1.2246169 +-30.1964493 +10.1022940 +-2.7675986 +3.1616788 +-0.8098543 +1.2344818 +-0.5004340 +-3.0828688 +7.3089833 +1.2220608 +-2.2298331 +-4.9942689 +-23.2936420 +-0.1534306 +-4.0817881 +-1.4938756 +13.4703846 +-3.2599647 +5.5053864 +-6.0828948 +-1.1108572 +-17.2957001 +-3.0750644 +-19.0766258 +2.7670748 +-9.3088188 +1.3161622 +30.6504288 +-11.4160156 +-2.8050301 +2.2012687 +4.3026853 +-1.2284787 +-4.2879186 +0.1060770 +-5.7617807 +-2.9116206 +-3.5331924 +0.7183983 +8.2007980 +-1.7687696 +1.8542722 +-1.5444876 +-3.2914100 +-2.3024335 +-3.2302186 +-4.3917561 +0.1659070 +-43.4112778 +4.2218828 +-3.9384675 +-1.7115510 +3.3767231 +-5.7773871 +-3.6867232 +1.9762858 +-4.5741625 +-1.3497424 +-5.7850008 +3.1209261 +-1.2609123 +-1.0563135 +-1.5384104 +5.2486658 +2.3595245 +-5.1357045 +1.3959732 +9.2213411 +-6.1136193 +15.4611301 +-6.0999360 +-6.1949520 +-3.7830784 +-7.2846556 +-4.8406367 +2.2338190 +4.6555471 +3.7928793 +-1.5395271 +-2.9040632 +-7.4596863 +9.1610222 +28.1266098 +-0.8233227 +11.5138159 +-0.5927793 +19.1970978 +3.7263601 +2.6916721 +1.2688864 +-6.0961299 +2.8049774 +-1.4984125 +-5.3036890 +-1.9029920 +-1.3220582 +0.0604957 +9.3778048 +0.8103630 +1.0384506 +-6.6223645 +-2.2735262 +-3.3185775 +-9.3908854 +1.5889070 +-6.8129883 +-2.3991115 +-2.8547873 +8.6028786 +45.4777870 +-13.8440723 +18.2745972 +-11.9754944 +-2.4162219 +14.8145866 +4.7275095 +-2.9362416 +0.5461156 +-3.3439837 +-7.4054356 +-31.0878735 +-7.0581594 +2.6515543 +-12.5629272 +-3.2746489 +0.7141892 +-2.7325034 +-7.1315050 +0.2775041 +13.6149712 +-5.4005990 +0.4099766 +0.0170158 +1.9445984 +-1.3460361 +-3.8285573 +11.3044147 +-3.1986866 +-3.2545588 +-7.0787859 +-6.6422749 +-0.2101926 +-2.3066504 +-2.8856637 +20.5480061 +-4.1490998 +7.9583335 +-3.2275071 +-5.5492630 +-0.0697625 +-5.3740163 +-1.8321317 +1.0367928 +-17.3775120 +2.3234513 +53.3277054 +-4.9867764 +-9.7698479 +3.9719436 +10.4152985 +-2.7405660 +8.9628315 +-0.7626095 +-2.7051580 +-21.5446205 +8.4794407 +1.3124573 +9.0243034 +-2.7853839 +2.3854373 +-0.5441641 +-4.7162609 +-6.4804330 +-5.2276340 +-5.7813249 +-0.5010552 +-20.9548836 +5.3308907 +-6.1708322 +-1.9264107 +-5.4769721 +0.5494164 +-5.2693906 +3.0870950 +-5.4355822 +-2.1054707 +-9.9054356 +4.0741048 +-1.7259010 +1.5035931 +3.0928562 +3.0494130 +-0.3101749 +-0.3944027 +0.2086201 +9.8409357 +-2.3641601 +4.8735876 +-1.0141088 +-11.7385054 +-6.4707699 +0.9287019 +-2.2040741 +5.5119257 +-1.9990441 +5.1637058 +-5.6519432 +0.3300190 +-7.4199147 +-3.1361916 +13.9103861 +0.0906044 +4.3193173 +-6.9548802 +1.0370369 +-0.1316932 +-1.4899048 +-1.4927208 +-2.9464352 +2.4212027 +0.7484552 +-5.2259059 +-15.5720787 +-2.9292004 +-0.8040712 +14.4139709 +0.0298887 +-0.2429208 +7.0830665 +-2.1545420 +-0.2861044 +-7.0432467 +5.2057958 +-0.7312459 +-0.2396344 +-0.7727572 +7.9377923 +20.9485283 +-4.5970726 +-4.2007971 +1.7899404 +0.6967066 +4.6291909 +-2.0958800 +-3.4948773 +3.6649055 +-7.7330828 +-7.9814391 +-1.6828309 +-9.2028370 +3.2210667 +-1.2252359 +-0.9718592 +-3.3990676 +-8.1165409 +-4.8768392 +0.1841529 +8.0133657 +1.3469121 +0.9601586 +2.7105391 +2.0426931 +-0.4221538 +-3.9205875 +12.9882803 +1.1549152 +-0.3761451 +-8.3718758 +-0.7285350 +-2.5864737 +12.1533222 +-2.8012595 +12.1548462 +-2.3958759 +1.7186378 +-1.4365929 +0.0044705 +-0.1097299 +-0.6071803 +-0.0895026 +-3.5003335 +-0.5341336 +-5.6672306 +19.3832188 +1.1350247 +0.6618584 +7.2897863 +-0.4434423 +-4.9518161 +-0.4837813 +-2.4590700 +3.0774240 +-3.1115391 +-1.6328807 +2.8129191 +-1.6977462 +2.8986285 +2.5353703 +-8.6473465 +-3.8167872 +-2.8647830 +-10.5673246 +-4.7494912 +-2.2916057 +0.1259627 +7.0766134 +2.4316049 +0.5090803 +0.7808138 +0.7210907 +-2.9809237 +5.6299644 +-5.6535845 +0.6923955 +-2.9176247 +2.5903220 +0.6300026 +-1.5786867 +-0.8196706 +1.3206779 +-0.8157909 +-2.0081565 +-0.5644077 +0.3376013 +-4.5958877 +-6.0293121 +-38.4849434 +-1.6542493 +-1.3252330 +-1.7184936 +-0.7694294 +1.8095253 +0.6479532 +-0.1652832 +-3.9804456 +-1.2860317 +-2.2146077 +2.3475037 +9.1697416 +-13.7886171 +3.7069969 +1.4132568 +7.7668915 +-3.1297481 +0.5645243 +-3.3174245 +-0.5342919 +1.3219609 +-0.2937446 +-2.2929759 +2.3722396 +0.5039670 +-0.1570321 +3.0439174 +-0.2165339 +-45.3126144 +-0.8223162 +-0.3146233 +-1.3843753 +-2.7423186 +1.3456999 +-1.2610009 +-30.5325470 +-0.4361823 +3.2934484 +14.9433527 +-5.8273993 +6.5887280 +-0.4674497 +-0.7752741 +5.8638344 +2.1697164 +-0.6574881 +0.4686189 +-1.0190318 +-2.5294018 +0.2432662 +-2.2626050 +1.0832492 +-2.6783209 +-6.2558088 +-1.4731704 +-0.6660866 +2.7085836 +-26.8855057 +5.3141890 +-2.3306239 +-6.1803889 +0.4124231 +1.1524873 +0.7454818 +-1.1639798 +4.0131278 +-8.0342751 +-1.1200314 +-2.1409085 +-24.0185223 +-0.4737085 +-1.5514565 +-0.6475512 +6.6927662 +-1.1561111 +1.3216689 +0.6504375 +-4.6978822 +-35.8492584 +-2.0158987 +-15.8081207 +1.6059210 +-8.3888445 +-0.8344485 +30.4876823 +-7.7544398 +-35.9090614 +1.8093617 +-1.1632284 +8.0803490 +-12.4386606 +0.3964209 +-0.4078730 +-3.6078908 +0.7597011 +0.2272374 +6.9140835 +-0.9884055 +0.1891508 +-0.1915850 +-0.9045134 +-0.3511479 +-2.0163224 +-1.4051710 +0.0162323 +-6.9461503 +1.6291571 +-1.8801966 +-0.8386213 +2.7940979 +-9.4517269 +-0.9685761 +2.2300875 +-2.1517212 +-0.4262324 +-0.4096864 +1.1246626 +-1.1109332 +-3.3716292 +-1.0107304 +2.1708410 +-1.3077639 +-5.1539798 +-0.8797469 +-1.7262416 +-10.5467119 +11.3819475 +10.7201014 +-4.6983442 +-3.7826014 +0.8699167 +-3.0093584 +2.9954436 +1.5830877 +1.0019951 +-1.5551699 +-3.0930762 +-5.1959720 +4.4766393 +18.6268635 +5.1549034 +7.2505622 +-2.3957655 +13.7765608 +-2.8376577 +1.7619985 +-0.4956238 +-2.0547471 +1.9715966 +-1.3206328 +-4.3084521 +0.2190461 +1.4176444 +0.3761956 +7.0480099 +0.0646679 +-36.2105751 +-4.1886668 +-2.0209434 +-2.3197973 +-5.4847517 +0.7228162 +-1.9848949 +-12.8802929 +-1.5398837 +5.4447632 +28.2608891 +-9.0992804 +8.5433168 +-3.7552423 +-3.0853996 +10.9361591 +1.4253728 +-1.6027533 +1.1400632 +-2.3309345 +-5.5693049 +-0.1168811 +-4.5710444 +2.0089796 +-6.5510764 +-2.8434105 +-0.8870732 +-1.0946826 +-0.1952750 +-5.1996593 +9.7160788 +-1.7799332 +8.2639618 +-0.1660010 +2.0057764 +0.5299390 +-2.0865819 +7.1456351 +-2.0812337 +-2.6705768 +-4.5013127 +1.2838924 +-1.2159675 +-3.0676088 +-3.1467471 +12.7999916 +-2.6244509 +4.4813123 +-10.3332462 +0.2603953 +-15.2928352 +-3.8473732 +-14.7446041 +7.8960195 +-8.1452131 +0.5370077 +26.7479019 +-5.3508487 +-8.5174484 +1.0611709 +5.6240854 +-5.0341573 +7.1732464 +0.4656125 +-3.6124249 +-5.5962076 +-8.2983322 +0.1471105 +8.6857176 +-1.9097480 +0.4323964 +-0.5558987 +-3.1364470 +-1.1720557 +-4.7230220 +-3.3677664 +-0.8654227 +-42.8787956 +3.5482171 +-3.9864950 +-1.6028429 +-10.9519463 +-20.9129219 +-3.0858040 +3.7408872 +-5.0683923 +-1.2786273 +-4.7339239 +2.8055961 +-0.5396548 +-6.4223523 +-3.8353770 +2.6511905 +-3.7800472 +-5.8627696 +-1.7677131 +5.1898446 +-19.0690880 +16.2276192 +1.8817298 +-4.2793555 +-4.0399566 +2.6785200 +-4.7562408 +9.8297796 +0.5842069 +1.5699193 +8.5846777 +-1.1684361 +-6.6083536 +8.9627924 +27.3470497 +0.4462951 +10.8298874 +-2.6182482 +16.5970764 +-21.2098961 +2.0912156 +-10.9172535 +-1.0097791 +4.4427776 +-1.6756608 +-7.1732545 +-2.0458655 +-1.1199936 +-0.1099680 +12.7947607 +-0.2426693 +0.3403511 +1.3015803 +-3.2916358 +-4.3503785 +-9.4573803 +2.6923614 +0.6834208 +-1.2051383 +-2.4126155 +8.0985069 +38.4715385 +-11.4893599 +11.6684303 +-5.2791824 +-2.7949882 +16.1232014 +-18.0581341 +-1.9680487 +3.0281336 +-3.9165823 +-8.6523399 +0.3689938 +-8.0959711 +4.2648168 +-15.4712639 +-13.9614363 +-0.5706108 +-4.2775607 +-9.0452433 +0.1088228 +14.3581867 +-4.8411574 +4.9388661 +-1.2604971 +1.9082342 +5.9343171 +-4.4832530 +11.6335936 +-21.8650360 +-3.1279175 +-7.0272551 +2.6429555 +-3.6528444 +-5.9475760 +-5.0527983 +19.5601597 +-1.7670979 +3.1203117 +-5.2428703 +4.9877028 +-0.0087189 +-4.9757047 +2.3538449 +5.2920427 +-12.8955240 +-0.0413365 +44.3436394 +0.2925975 +-3.5886803 +2.4547801 +-0.0708685 +-27.2020016 +-6.0913682 +0.6034890 +-4.2010736 +-4.7850523 +-7.5982661 +0.9822940 +14.0641594 +-1.0558146 +1.4988270 +-0.4542947 +-1.7424208 +8.7494144 +-8.6966791 +-5.3149452 +-0.0848811 +-17.8032780 +6.3828559 +-5.0589247 +-1.7350246 +-6.8478575 +-12.2890472 +-5.0324459 +8.2692699 +-4.4637899 +-0.0798008 +-2.9194520 +4.0943623 +-0.1023817 +-2.5455110 +0.8972276 +0.8483158 +-0.6642473 +-6.1938953 +7.2125964 +0.6765067 +-0.2902553 +-0.0495294 +-0.2482902 +0.0763920 +-3.7246673 +-1.4337851 +0.8795933 +9.3036308 +5.9031773 +3.5845478 +0.4151890 +7.5871115 +0.9445392 +0.8485503 +9.2418575 +0.0533534 +12.0056076 +-2.3171043 +1.4164295 +0.0094910 +2.1932845 +-0.1743334 +-1.0068582 +-2.4324150 +-0.8712246 +-2.2751579 +-5.6075768 +-2.2218802 +1.5577936 +5.8919272 +-1.8399084 +0.0129371 +5.4887013 +-0.5494576 +1.0265681 +1.3209099 +1.9824460 +-1.4310840 +-0.0427400 +-4.5197692 +4.5170794 +7.0773821 +-7.8261414 +-1.1457678 +-1.3463243 +-2.4815636 +-1.6237242 +0.3207886 +7.3967023 +-0.5549892 +-8.5633259 +-5.3647976 +-3.6291580 +-9.4105902 +-2.3710325 +0.2837838 +2.2908306 +-1.5720387 +-0.0358993 +-2.9244602 +-0.1692046 +5.1606770 +-3.5478401 +-0.0718412 +6.3288655 +-4.4521461 +-0.1299411 +0.0948831 +14.9539356 +-0.9537299 +-5.4677835 +3.7460666 +0.1010120 +-12.2960835 +6.1880956 +-8.5645714 +16.6428108 +1.7608000 +1.5530479 +4.6956892 +0.0202883 +-0.0685169 +-6.9977875 +-0.6470527 +0.4287570 +-2.6648219 +-1.3283614 +1.8968557 +-1.6309597 +-0.1199213 +-0.8394411 +0.0513575 +0.0104148 +-0.1286570 +-2.8193634 +1.5976268 +1.1352235 +0.2814936 +-3.0814567 +-1.0983988 +-1.7798702 +0.6469313 +4.1062350 +0.9129848 +1.5425142 +-1.0932257 +-2.2033379 +10.6308823 +0.8059363 +-2.1219683 +8.7452698 +-4.9386358 +-0.5650414 +0.3876180 +-2.9939711 +2.0863433 +0.0543757 +-1.6756461 +-0.2213454 +1.7084680 +3.5382440 +-0.6658556 +-1.2611448 +0.2895308 +-2.0572498 +-2.7364452 +-0.6078898 +-0.7940637 +-5.4288058 +-7.9698625 +-9.1083879 +-0.6137397 +-2.0222592 +-2.4032633 +-0.3410070 +1.1894625 +0.4831040 +0.7882656 +-3.8272464 +-0.6029724 +-1.7527921 +1.7354679 +8.9309282 +-7.4861941 +4.1029296 +2.3531597 +7.6281629 +-5.4214358 +0.2968348 +-4.0125089 +-0.9824646 +1.6666138 +-0.7287347 +-1.1321108 +3.1990683 +0.0687633 +-0.1375090 +2.6757863 +-1.1293758 +-56.1932564 +-0.8650085 +-0.2008798 +-1.2629817 +-3.4046052 +1.3144730 +-1.7859797 +-24.3167019 +-0.3664780 +2.8724489 +13.9713507 +-6.1128016 +5.8640170 +0.0732998 +-0.5678949 +8.2726221 +1.6938431 +-0.7789767 +0.7667914 +-0.6085184 +-2.1041114 +0.0326344 +-2.2894826 +1.3778634 +-2.9561620 +-5.5549393 +-1.0527962 +-0.4493349 +0.5905614 +-26.6538620 +4.8351340 +-3.5692301 +-7.5598617 +0.5208997 +1.4602462 +1.8946766 +-0.9032544 +4.0225210 +-6.9578867 +-1.1388966 +-1.3276962 +-15.0636883 +-1.0217079 +-1.4367312 +-0.6822511 +6.3502369 +-1.0253888 +0.2418924 +1.2766126 +-2.7445071 +-48.1376572 +-2.0077190 +-5.8178334 +0.5964159 +-5.4078813 +-2.3271368 +29.6072979 +-11.5090342 +-34.3836403 +1.5766696 +0.4512544 +9.3645868 +-13.6426859 +0.4473301 +-0.6849799 +-4.1285434 +-1.0810790 +0.0532385 +7.2092018 +-1.0181298 +0.0453475 +-0.1771967 +-0.8250913 +-0.8369633 +-3.2163777 +-1.1779158 +0.0562209 +-9.1707706 +2.4038727 +-1.8395264 +-0.6817195 +1.3850510 +-9.5862322 +-0.7790877 +1.7265115 +-2.8985660 +-0.5766098 +-0.7490746 +0.2922599 +-0.4848866 +-1.7200768 +-2.3648419 +-0.1267560 +-5.4530683 +-6.4536490 +-0.7158644 +2.0713749 +-14.7558842 +5.8601151 +-8.7321215 +-2.9152744 +-3.7762206 +0.1433486 +-2.9764185 +2.4245684 +1.3965594 +4.4081583 +-12.7155695 +-2.2089555 +-4.5813465 +3.5006323 +17.4974670 +15.1134062 +7.7980113 +1.0152063 +14.0566893 +-6.4568620 +1.2210493 +-6.9500556 +-2.1243296 +2.5195935 +-1.8810240 +-2.2362869 +1.0557870 +-0.6839679 +0.2430709 +7.1819448 +-0.9345068 +-9.2267122 +-2.8808367 +-1.6848099 +-2.4904845 +-6.4599757 +0.5050019 +-0.4969682 +-13.6962032 +-0.7196826 +4.5740132 +25.5762424 +-9.1648493 +8.2168818 +-4.5192857 +-2.3393264 +12.3685179 +2.2717264 +-1.3323312 +2.2037041 +-1.3438064 +-4.5868273 +-0.0464848 +-4.4756808 +2.3702233 +-8.4551430 +-4.0603132 +0.6504511 +0.0699780 +-7.8674970 +-10.5639772 +8.4031897 +-4.0227690 +-11.2960863 +-1.4845310 +2.3307269 +3.1539967 +-2.0779183 +7.1532459 +-0.3483415 +-2.1562321 +-3.6719291 +4.5143523 +-2.9341362 +-4.5719519 +-2.3256795 +12.1886110 +-2.6367774 +3.7830949 +-13.9266624 +-3.5557892 +9.3390255 +-3.4394956 +-9.7430420 +1.9658419 +-6.0650024 +-0.8166771 +24.8717499 +-14.2712688 +-18.8574448 +0.9362120 +3.1299746 +-9.4477491 +-12.5242281 +1.2247250 +0.0090619 +-7.7184124 +-2.0851462 +-0.1803670 +3.0638947 +-1.2887279 +0.9198848 +-0.5552233 +-1.9556477 +-0.0119907 +-5.0791950 +-3.0913382 +-1.1925112 +-22.8761501 +5.4132318 +-4.0952396 +-1.2790372 +6.5755415 +-29.9479828 +-2.4134810 +3.6464520 +-5.6316381 +-0.4871117 +-5.8728652 +1.7249666 +0.7362784 +-0.3742514 +-2.2189381 +0.1942796 +-12.1554289 +-7.9700813 +-1.8443038 +15.6474676 +-10.1325741 +8.9370890 +0.0861655 +-2.2914004 +-5.5323896 +7.1689358 +-2.5100553 +-1.9534590 +2.8836153 +9.4042749 +-18.0536060 +-3.6242948 +-5.5843086 +5.1649337 +26.4662704 +4.9896989 +11.9099083 +1.5051733 +20.7882957 +-3.0765171 +2.6102591 +-20.4369144 +-4.4511771 +3.8988214 +-1.5589890 +-4.0053058 +0.5167520 +-4.3996434 +-1.4053469 +6.0723996 +-0.5409961 +8.4507742 +-1.6703550 +-1.8191853 +-3.9061627 +-11.7662039 +-0.0214042 +-3.7462726 +-3.6754639 +-2.8286402 +6.5223460 +40.3683167 +-11.9636679 +4.4621196 +-4.9223037 +-3.0761147 +8.0761747 +1.9834051 +-1.5104340 +2.6774032 +-4.8400559 +-8.0221491 +-2.5384924 +-7.0260048 +3.4046252 +-11.5693150 +-6.8511329 +0.3300982 +0.5177804 +1.1161747 +0.3712773 +12.4308653 +-5.5484209 +1.0531033 +0.6607099 +4.1994638 +0.6933605 +-3.6534665 +13.2841940 +-0.6414691 +-3.3237224 +-5.7780681 +-1.0401087 +-2.6428499 +-4.0024724 +-2.8628719 +19.4135075 +-4.1659546 +4.0783501 +-1.8673545 +0.8791603 +-0.9483427 +-5.3940988 +-0.8708304 +1.2271785 +-10.2933989 +-0.7391572 +48.5846596 +0.9238144 +-3.2207279 +6.4590960 +3.1273539 +2.0961959 +1.1338083 +1.9862118 +-10.0143957 +-9.0112219 +-0.4841377 +0.8711895 +17.3336506 +-2.8971848 +1.8006442 +-0.0729767 +-4.7726378 +5.4080920 +-6.8642316 +-4.6560941 +-1.6500499 +-6.5202742 +9.0396318 +-7.8387375 +-2.1393778 +9.6232071 +-13.1308184 +-2.9143739 +0.3438033 +-8.9018803 +-0.2562700 +-1.8058381 +3.6695898 +-1.0159373 +0.9955812 +-1.6012759 +-3.7468448 +-17.0979099 +-3.5871215 +7.9653358 +0.8395110 +1.7271583 +0.6110238 +-0.4460880 +-15.8728189 +-6.8485770 +0.0817960 +-7.1072841 +5.2019763 +-4.9155459 +-3.1009157 +20.8296947 +-1.4277402 +-10.9045782 +9.4149265 +10.2473993 +-0.0316018 +-7.5156512 +-1.1188687 +-23.3857956 +-4.5056515 +-9.5232048 +0.1715621 +-1.8939184 +11.9154272 +1.9002988 +2.8426857 +-5.0263076 +0.0233915 +-0.6454414 +11.5172234 +0.6152308 +-0.1354362 +-1.6484566 +0.7319678 +-3.2623799 +-7.5471277 +-3.1155393 +0.6857590 +0.3086866 +2.9651842 +9.3442612 +28.7816219 +-3.9108236 +3.4619412 +-1.3893267 +2.9712131 +8.2114420 +-6.0926962 +-2.5267186 +1.8434539 +-0.1882764 +4.0643744 +-22.1926880 +-8.3285046 +5.5064316 +0.4871417 +-8.3973694 +-6.2146993 +-5.5891781 +-2.7757311 +0.3414662 +-2.9471970 +-0.9256853 +0.1383863 +-9.8958092 +-8.6908054 +-6.7715549 +3.7973680 +18.3529739 +-1.0588330 +-1.5738537 +-6.6298661 +0.0364359 +-8.8259668 +-8.7262983 +-3.9092088 +12.7392254 +4.2983074 +-1.7443728 +-3.2230897 +0.4117163 +0.0280326 +-0.3732655 +-0.0877066 +10.1028862 +5.2562194 +7.8328123 +23.8061543 +-0.6025935 +0.2490878 +-0.5914909 +-0.1106320 +-1.3506476 +-0.2984810 +-4.2784781 +-3.6890006 +-0.6053799 +-0.3980651 +-1.8892084 +-4.2988005 +2.1449754 +7.6078820 +-1.6652797 +-7.8056669 +0.0531502 +-4.0052590 +-11.6801386 +1.1103536 +-1.3046046 +4.0477915 +-3.1286201 +-1.5750420 +-0.9755921 +1.0252179 +-11.6730089 +3.9208708 +-7.7004094 +-2.0295963 +1.4132154 +-2.1135702 +-5.6655073 +-0.1117880 +-2.1424754 +-0.0988372 +-3.0703850 +-2.3860431 +-1.8910900 +-1.0894167 +-6.8730936 +-10.2230711 +-3.1787889 +-0.1735912 +-1.8457657 +-1.7303469 +0.2689976 +1.8383882 +0.1705402 +1.9314109 +-4.0501251 +0.0280854 +-1.4017889 +1.6446705 +8.5278111 +-10.8456898 +4.4513879 +1.6237576 +6.8950624 +-3.9321408 +0.5080653 +-6.2406116 +-0.1008176 +2.0753515 +-0.6840075 +-0.4551499 +2.2858295 +0.6085336 +-0.4853026 +2.7462292 +-1.7333897 +-44.7655258 +-1.1755440 +0.1946384 +-1.5281600 +-3.5419161 +1.6200953 +-2.6319733 +-29.2873211 +-0.6781480 +2.7990248 +13.6026993 +-6.2822089 +6.3471556 +1.3089236 +-0.9787940 +8.7344131 +0.6104553 +-0.3653745 +1.2414041 +-0.7132751 +-1.9232408 +-0.7253581 +-2.4837577 +1.5520257 +-3.4036946 +-4.7722449 +-1.8580325 +-0.6021011 +1.0186368 +-26.3685169 +4.5376506 +-5.4459472 +-4.0284653 +0.8097623 +1.4315095 +1.8695178 +-0.6591839 +4.1053710 +-6.2869263 +-1.4504671 +-1.3051630 +-12.8068218 +-1.5881670 +-1.5400802 +-0.6498189 +5.4461761 +-1.1246138 +-0.4136853 +1.2765383 +-2.6500382 +-35.9063835 +-2.1219079 +1.3958684 +1.1056700 +-2.9525230 +-2.6777673 +29.3592377 +-13.8768902 +-35.3783684 +1.4054158 +-0.0270228 +10.1295481 +-10.1906309 +0.9021891 +0.5669743 +-5.1992235 +-1.2094371 +-0.2645119 +7.5241985 +-0.5762182 +0.1124003 +0.2350538 +-0.9012238 +-0.6131110 +-3.2110713 +-0.8356628 +0.2624713 +-11.0361099 +2.5991752 +-2.4302440 +-0.5792752 +1.7653068 +-7.2910957 +-0.4754095 +2.3382041 +-2.5308418 +-0.1017537 +-0.1407143 +0.0639974 +-0.7041307 +-0.9348631 +-3.6103461 +-0.4724024 +-7.0676355 +-5.8181634 +-5.1542487 +4.1954508 +-15.5572834 +9.6868067 +3.3699055 +-2.9250035 +-4.1663184 +-1.5602155 +-0.7375222 +3.6005719 +0.9037741 +5.2124176 +-3.4928014 +-0.9118271 +-4.0965114 +3.0982766 +16.9465580 +-4.8096323 +8.8501682 +0.5317780 +13.4256983 +-3.7150784 +0.6863330 +-5.4985156 +-1.0200549 +3.1928017 +-1.9587218 +-0.7177830 +1.1976029 +-0.9039471 +-0.7053834 +8.3638811 +-3.2832935 +-15.1720877 +-4.0095038 +-0.6482487 +-2.6676126 +-7.3584962 +1.4624801 +-4.8864679 +-4.5092082 +-1.9707581 +4.5992398 +24.4243908 +-7.2425785 +8.3374434 +-5.5755897 +-3.2855279 +11.3846474 +2.2334819 +-1.4454682 +3.8007865 +-1.7522466 +-5.0914803 +-0.9642908 +-4.6842403 +2.9090312 +-8.4525366 +-4.7930279 +-2.2205157 +0.4303643 +-11.6804705 +-3.2614038 +7.0467319 +-6.0493875 +5.7432199 +-0.6186066 +2.2671137 +3.1990576 +-1.6694864 +8.4683943 +-2.7597971 +-2.5457621 +-2.8605711 +7.8938980 +-4.3282108 +-3.8181438 +-2.0572069 +10.8573875 +-2.7384658 +0.4487876 +-12.6921921 +1.0519201 +1.9875454 +-3.7534082 +3.0594072 +3.5185375 +-1.9477483 +-1.7550939 +20.9921341 +-20.9157677 +2.3966606 +1.6198066 +5.7014351 +-10.9493608 +-4.1633544 +2.3135135 +-3.1376963 +-9.3306141 +0.8399778 +-0.8604550 +3.0141397 +-0.2316133 +0.7382811 +-0.1098693 +-3.1182733 +0.2828516 +-6.3039455 +-2.9556556 +-3.1633396 +-37.3954353 +6.2711053 +-4.3328438 +-1.6495490 +-1.0181128 +-16.2554989 +-2.6394954 +4.3277435 +-6.0177851 +-1.0191325 +-7.6430421 +0.0367860 +-0.9624918 +-3.5208211 +-6.7277727 +-0.5132299 +-10.0526285 +-7.8570113 +-4.5643883 +7.5413709 +-22.8962860 +-0.4098310 +4.6337519 +-1.5265918 +-6.1680012 +9.7598515 +-1.1674378 +4.7908788 +0.9744718 +8.3402939 +-16.3505745 +-4.6356101 +-5.8163800 +4.4920144 +25.7270317 +7.4204745 +13.3938780 +-0.4258833 +17.5981770 +-10.7084980 +0.6349880 +-4.1544862 +-1.2493252 +5.6574831 +-0.3778602 +-3.5535669 +0.8706195 +-22.3544674 +-2.1528990 +5.2354813 +-5.5079226 +0.8005403 +-9.6180334 +-1.8722572 +-3.9478984 +-13.7789021 +0.4086259 +3.0587664 +-2.7177966 +-2.0410247 +7.4299603 +35.3603821 +-10.6182499 +13.3904963 +1.3539069 +-5.2532907 +18.8160858 +-6.4586754 +-2.1825175 +0.2898039 +-4.8049221 +-8.9454441 +-1.6996777 +-7.4102783 +5.2090659 +-24.1993790 +-14.9511166 +-3.5379472 +1.3307078 +10.8850803 +-2.2142546 +11.6957140 +-8.5060291 +-3.7350779 +-0.0810254 +3.0312340 +10.7647982 +-2.5533290 +11.4156885 +4.6702209 +-3.0864904 +-4.3921285 +7.5540376 +-6.9159846 +-3.8221087 +-4.9466763 +17.2018013 +-4.6397762 +-15.3463478 +1.0635144 +0.4499126 +-0.4246568 +-6.2788072 +-6.9898496 +-2.6957812 +-1.7484455 +-3.0535297 +44.6586533 +-3.0649738 +-2.5073948 +-7.0963192 +5.2433424 +-14.1963835 +0.8363249 +3.3941090 +-13.0880728 +-8.9315987 +-4.0717373 +-0.3938508 +-0.1289983 +-2.3472893 +0.3998668 +-1.0085620 +-3.5496144 +5.0764885 +-9.1009302 +-5.2932968 +-6.0585027 +-6.5675874 +7.4162483 +-7.3850045 +-3.0445619 +-7.6272144 +-10.2936459 +-5.5961571 +6.0621815 +-9.3933535 +-0.5795899 +-7.2776194 +0.2577770 +-2.0678086 +-2.2371466 +-4.9390397 +4.0259886 +3.3133950 +-7.0521340 +-3.3521440 +-3.2301583 +-7.1317554 +-2.1621900 +-2.1546602 +19.9503784 +-6.5068240 +-17.7815247 +2.0241117 +-6.2015834 +-3.8881302 +14.7970381 +-22.6984100 +0.0560939 +-4.2439017 +8.3460588 +12.5801992 +0.0066755 +6.7165956 +2.5589254 +10.9711370 +-10.0479326 +2.4736919 +-4.6233516 +-3.6901486 +4.8934712 +-1.1814153 +1.3154509 +-2.0118630 +-3.6162064 +-1.9048716 +12.4548826 +6.9188805 +-0.1830402 +-8.1052055 +0.4041789 +-2.0963211 +-11.8908424 +-13.7833576 +0.7214721 +-0.9196725 +-0.3929246 +6.9270945 +30.4930229 +-10.4882736 +16.8287945 +-15.2600527 +-10.8062515 +9.3925524 +-5.3350286 +0.6791384 +-0.1193939 +-1.2126806 +-2.6825862 +0.1440566 +-5.4412193 +8.8582487 +3.7935374 +-0.9607355 +-3.4907105 +-4.1975021 +15.2957592 +-1.4618782 +4.3023801 +-8.6113558 +-1.5031741 +3.1065288 +1.6905842 +-10.7902088 +-3.9382317 +15.5105772 +-24.4367580 +-2.7855036 +-4.4888411 +2.2102396 +-5.1288161 +-1.8055775 +-3.1753676 +16.4664307 +-0.5404764 +-2.1518776 +-9.3121700 +-0.0432201 +-2.0216835 +-2.4722323 +-3.5581205 +-2.2485106 +-1.0011905 +-1.8734388 +23.0306454 +-6.7943830 +-0.9759811 +-1.6542792 +-0.0429902 +1.9019589 +0.8286057 +-0.8665623 +-1.8960551 +-6.4666781 +2.8964007 +-5.2416573 +-3.0282054 +-3.9383433 +0.0687379 +2.9802926 +-6.1939511 +-0.0754021 +-5.9531455 +-3.3653846 +-12.2727728 +17.6504021 +7.9258127 +-2.7144732 +0.0534822 +5.0838304 +-0.6558841 +-3.3345184 +-1.7988318 +-9.1519070 +-3.7248549 +-4.8147449 +7.5178127 +-1.3345659 +0.1183919 +-2.5156848 +-0.9134212 +-3.8641605 +-2.7238059 +-0.9144638 +-1.2157869 +-8.5047741 +-10.2084551 +-14.8857679 +0.4550166 +-2.0037179 +-1.8281305 +0.6899621 +1.8808690 +-0.7618230 +3.6526523 +-3.8988407 +0.5517499 +-1.1309856 +3.3105466 +8.3199558 +-12.6018057 +4.5482740 +2.6431499 +6.5652733 +-4.0918198 +0.7433508 +-7.3943872 +0.0367459 +2.3816237 +-0.5061736 +0.1898649 +0.7001575 +0.2348939 +-0.8926398 +2.9802108 +-1.9118351 +-45.8075104 +-1.8700855 +0.6991692 +-1.7022084 +-3.8732910 +1.8510258 +-3.5033233 +-21.5407906 +-0.5883034 +2.2006299 +12.9768753 +-6.4219046 +4.6358514 +0.8871524 +-1.8260568 +9.3678408 +0.2179240 +-0.1659454 +1.8045933 +-0.9495163 +-1.8281587 +-0.3686485 +-2.5946112 +1.6487837 +-4.0226989 +-3.4169014 +-1.2491713 +-0.5576591 +-2.1821315 +-24.0461731 +4.0527000 +-7.1371269 +-6.0251269 +1.0273031 +2.2234871 +3.3864095 +-0.3558733 +3.9007483 +-5.7801127 +-0.9014789 +-1.2104932 +-11.1699114 +-2.0598125 +-1.4557713 +-0.1922992 +4.4746203 +-1.0247270 +-1.0476724 +0.6031234 +-1.7947862 +-37.9612122 +-1.8585894 +-1.7530072 +0.4257527 +-1.2575029 +-2.4121933 +30.5609703 +-16.1992722 +-38.9584656 +0.2561325 +1.2430313 +10.7795868 +-9.1267576 +1.3380953 +-0.2533352 +-4.6588945 +-1.9202222 +-0.5468186 +6.4705458 +-0.3697588 +0.0169528 +1.2163773 +-1.8250351 +-1.0424830 +-3.7901659 +-0.6590183 +-0.0039683 +-11.7882528 +3.3755484 +-2.4896057 +-0.1965837 +0.9099681 +-9.8857660 +-0.3244030 +2.4474986 +-2.8800890 +0.2862685 +-0.2279238 +0.1704269 +-0.5905496 +-0.2343191 +-2.4627075 +-2.8009853 +-12.2432413 +-6.1024461 +1.6459908 +-1.9464287 +-13.8690977 +-2.6329584 +11.1187706 +-7.9998493 +-4.8394170 +-1.6307112 +-0.6739211 +1.7368810 +0.6129413 +0.9598497 +-4.5926929 +-2.1828749 +-4.4270334 +0.9271329 +15.7584782 +3.1562040 +8.0586796 +1.1223537 +12.8596344 +-1.3258934 +-0.6078133 +-7.1789250 +-1.2541751 +3.0658214 +-1.1089157 +-0.2759410 +2.4744456 +-7.0439868 +-2.2530930 +6.6057401 +-5.1918874 +5.6591148 +-1.4951319 +-3.1459577 +-3.2608166 +-9.8487120 +1.9671253 +-1.3715500 +-19.5383930 +-1.6708158 +2.9984803 +23.3068542 +-10.1162214 +0.8324322 +-8.4436150 +-8.0845003 +11.2279024 +-2.0534465 +-0.7152028 +3.9907806 +-1.2374114 +-4.2767463 +-2.7092109 +-4.3136706 +2.2257469 +-12.2621603 +-11.9457273 +-1.8886145 +-0.9635394 +-14.5985193 +-30.2633228 +4.5730495 +-3.7772312 +-18.9551411 +-0.0794438 +2.1011620 +-0.4113888 +-1.7043979 +3.8489957 +3.8579817 +-2.5432515 +-6.3551702 +-9.6182652 +-4.4251728 +-3.0725629 +0.9468358 +9.0566549 +-3.1228027 +-2.1740279 +-6.9295487 +-0.0529143 +18.4197502 +-2.6147406 +0.8529143 +3.9680510 +-1.6339837 +-1.9408220 +13.7793913 +-6.3132644 +2.4765439 +-5.9978666 +2.0479829 +-17.0590401 +-6.4977360 +3.3865263 +-7.2754073 +-8.6057158 +-12.3126526 +-1.0075246 +0.4987885 +-0.5617107 +-0.0073941 +-2.9414825 +-2.2221310 +-0.7556579 +-7.0158582 +-2.8405783 +-6.1983604 +-15.6299267 +6.1946406 +-5.6307468 +-0.7409297 +-4.9455657 +-8.3805571 +-2.1763182 +2.9659436 +-6.6608963 +0.2124111 +-8.7880650 +-1.9855624 +0.4674225 +-0.0062833 +-4.9753509 +-6.6431389 +-16.0710564 +-8.6663342 +0.3541514 +11.1747837 +-17.8601074 +-4.3650408 +-2.7602224 +-8.1516695 +-7.0919905 +3.2527823 +0.1606672 +2.3832519 +1.3058699 +8.9195976 +-8.6846342 +-1.0035386 +-5.2273121 +1.9656342 +25.2478123 +-1.1307153 +11.5068693 +1.2339170 +18.8752632 +-8.9095907 +-2.2276132 +-14.5419054 +-2.7537289 +4.7493010 +-2.3392975 +-0.8526539 +1.2557307 +-22.9133682 +-2.9182405 +8.2814751 +-5.5260210 +-23.7397690 +-0.4925854 +-3.6026068 +-4.7727804 +-16.4293346 +3.1126828 +0.3920905 +4.4035463 +-4.2206497 +5.4901662 +34.6756516 +-11.1681986 +0.1614288 +-7.5797062 +-9.1959276 +25.5655365 +-4.9037032 +-1.5465008 +4.6539955 +-1.5310280 +-5.1892462 +-3.6548181 +-7.0404921 +3.8894072 +-26.7950802 +-17.7172775 +-1.8990264 +-1.2962811 +-5.7879519 +-0.1535127 +7.0868092 +-7.8523998 +-1.2275178 +1.3261387 +3.5980911 +3.9981334 +-1.8026882 +10.9705820 +3.9184093 +-3.2663200 +-7.1519985 +-9.4819193 +-7.1934052 +-5.4205174 +-0.2707905 +16.0336056 +-3.8324671 +-1.9043750 +-4.8476157 +1.2077736 +2.6184504 +-3.5248330 +-11.6617088 +-1.4895192 +-4.7092280 +-3.6067989 +30.8231564 +-7.5280948 +-8.9840612 +-1.8858511 +-5.2219577 +-20.4195957 +1.6086535 +4.4896250 +-0.1045943 +-8.4142990 +7.8198853 +-2.0502911 +8.6072483 +-1.7968653 +-0.3485708 +-4.8284764 +-5.9372387 +1.4007952 +-10.3360987 +-5.0784831 +-7.7312717 +-12.6644936 +7.9246736 +-7.3070440 +-0.9077740 +9.4813671 +-13.4317064 +-3.5243261 +4.2203312 +-9.4087973 +0.0225727 +-9.1502008 +-1.3603779 +1.2665933 +0.3003763 +-5.8018174 +-14.4800806 +-4.9903932 +-7.0885744 +-9.6753159 +20.1802788 +-15.2175541 +0.4569440 +0.2035968 +-4.2940950 +-4.2255802 +-18.0121613 +0.7243682 +3.4597428 +1.3991154 +-4.6909552 +-17.8332710 +-2.8624570 +-1.1291354 +9.1245575 +17.4041862 +-0.2604661 +8.4632549 +10.3396816 +15.6566811 +-23.5182610 +-1.4808621 +-8.8526020 +0.3382506 +4.6727457 +-3.1392670 +0.6269169 +-1.3668691 +-3.1676290 +-1.1420650 +4.3355937 +-7.3608913 +-0.2717937 +-5.4821963 +1.5518298 +-2.1962755 +-6.1741948 +3.5211265 +22.2738094 +0.0118446 +4.5407696 +5.1208577 +21.8149738 +1.6454834 +-3.5173578 +9.7232075 +-3.5569525 +-2.9413726 +1.8267932 +-0.1773067 +2.5831108 +-2.0600331 +-8.0045271 +2.3445311 +-4.1551318 +6.0357556 +3.6097007 +-4.7985539 +-1.9119595 +3.6686234 +3.4337504 +-1.0775998 +5.5943775 +-11.2647161 +-2.0744524 +4.5588078 +3.6103556 +4.9987569 +0.7752215 +16.2339745 +10.3809967 +-2.7247407 +-1.7901480 +-0.6185590 +-5.1873312 +-4.5245481 +-3.0224547 +6.5208735 +0.1671614 +-10.3143826 +16.2769947 +-0.2639813 +-0.2945384 +-3.6372592 +2.5637128 +-17.8728218 +3.9138970 +-2.9783876 +10.5778179 +-2.1606662 +0.5565199 +-2.1896176 +-1.6986065 +2.9538949 +4.0641394 +1.4679780 +4.1147995 +-11.7948427 +-9.6365080 +-2.6123512 +8.4714251 +-0.6058550 +-2.7449777 +1.3081170 +-6.9315495 +28.8477669 +-9.5931492 +-2.5443242 +-5.9019423 +-2.2594175 +7.6675086 +-5.4158273 +-2.2295167 +-10.4130354 +-6.7349491 +-2.1441581 +4.8358951 +-7.6564231 +1.0391924 +2.2541687 +-0.5119255 +-0.4275086 +-1.2330055 +-2.7657495 +-1.7238584 +-5.3191757 +-2.6179743 +-3.7566888 +-2.1805348 +-9.9305487 +-11.7972193 +-16.0824528 +1.0639001 +-2.4758732 +-1.5587136 +1.2064809 +1.8218956 +-0.8813763 +4.1107640 +-4.0328050 +0.6162342 +-0.7217604 +3.1118741 +7.7549262 +2.9934819 +4.6240101 +1.9932481 +6.7624888 +-4.5834446 +1.1190963 +-8.5326691 +0.2534608 +2.7419269 +-0.4390450 +-0.1532624 +0.3390135 +0.2763321 +-1.2333436 +2.4409647 +-2.9599690 +-41.0212097 +-1.3971438 +0.6076853 +-1.6080341 +-4.2783084 +2.1083064 +-4.5761256 +-14.3361216 +-0.4231373 +1.8572552 +11.7424784 +-6.5424347 +5.3265772 +0.8764121 +-2.4058020 +9.3611603 +-0.5994619 +-0.2066216 +1.6553314 +-0.9682939 +-1.9081315 +-0.3429155 +-2.5615535 +1.8801477 +-4.3749957 +-2.8988898 +-0.4557425 +-0.4748236 +-0.6619607 +-21.6597919 +3.6973410 +-5.3608251 +-10.5405169 +1.1922323 +1.9224309 +4.2476397 +0.1161948 +3.8073239 +-5.9528823 +-1.1425805 +-1.6457521 +-13.7822657 +-2.8689632 +-1.6192011 +-0.3462093 +3.7772143 +-0.7881317 +-1.9193438 +-0.2063319 +-5.1768003 +-31.8098736 +-1.9953331 +1.0911252 +1.8531762 +-1.4660524 +-2.6210194 +29.3322964 +-17.1965370 +-39.1598778 +-0.3630764 +-0.4295198 +9.5498648 +-10.2726965 +1.7573515 +1.3306488 +-5.3973856 +-3.2616920 +-0.8730665 +6.7622590 +-0.4582934 +-0.3995816 +1.8428961 +-0.8504774 +-0.1701639 +-4.1756973 +-0.6622585 +0.2398612 +-13.1563759 +3.1889160 +-2.7237298 +-0.5457419 +1.7491562 +-10.8648453 +-0.2984117 +2.4604681 +-3.5127490 +-0.1058859 +-0.9636423 +-0.6947379 +-0.0660622 +-2.1965625 +-4.6839237 +-3.7515433 +-15.1381741 +-6.9036345 +-2.4097359 +-0.7271561 +-13.7302761 +-1.0574323 +0.0969472 +-6.9054613 +-5.2455215 +-1.9374031 +0.5495569 +2.2022712 +-0.6799251 +-0.9082156 +1.9480338 +-2.9712191 +-3.7548280 +-1.1987998 +14.9872408 +-6.0947318 +8.8542423 +0.0095181 +13.0373096 +-8.4844227 +0.7145901 +-7.5684166 +-1.4112886 +3.7174730 +-0.7288832 +-1.0291566 +1.1369522 +-6.3171310 +-2.8945975 +5.7830524 +-4.9441972 +1.9221187 +-2.4011972 +-3.0200131 +-3.0227339 +-9.8634014 +0.0683407 +-2.0397871 +3.0808270 +-1.8531507 +2.7101769 +22.9925518 +-10.0533991 +3.0617700 +-7.7643437 +-9.0112104 +9.7035542 +1.3284116 +-1.4801332 +3.8659060 +-2.5614464 +-5.5735135 +-1.7007638 +-4.2860346 +2.6261094 +-9.7868271 +-11.2008677 +0.1494614 +-1.2578886 +-9.7260141 +-3.7214293 +4.5289474 +-0.0512542 +-15.3757515 +-0.1809720 +2.8926761 +-0.4048863 +-0.9961307 +3.8266521 +5.6672230 +-3.2329121 +-5.8527369 +-6.3408194 +-5.2766991 +-3.2189231 +1.7502123 +8.9754086 +-2.5652406 +-1.7574394 +-5.1339955 +-13.2820072 +11.6443214 +-3.2246194 +-7.3648987 +4.7415881 +-2.3886998 +-1.8912582 +18.1037350 +-15.2975216 +2.2611284 +-4.8252778 +-1.0038719 +-13.8668385 +-1.0006230 +4.0558143 +-8.2910833 +-12.4199972 +-8.9381027 +-2.3887148 +1.7721817 +-0.8075590 +-0.4507090 +-1.3478137 +-1.5151267 +-2.5896075 +-8.7781115 +-2.3387456 +-5.8389006 +-15.3894711 +6.8267508 +-6.0542564 +-0.9731140 +9.5941391 +-11.1342030 +-2.1445513 +3.3024178 +-7.9645271 +-1.4074962 +-9.9457474 +-1.4437416 +1.5100729 +-0.2485788 +-9.0007334 +-6.7492599 +-22.4643650 +-9.9087267 +-1.1081692 +14.4809132 +-9.8138199 +-0.2840055 +1.4619040 +-4.4311533 +-8.5306063 +5.3132777 +-3.0285428 +2.9479403 +0.1045201 +13.9822245 +-3.2685351 +-0.6383200 +-4.1737728 +-1.8138022 +19.6098747 +0.1151302 +15.2224998 +0.9167362 +13.8107147 +-18.5645561 +3.0475736 +-15.8525734 +-5.0919180 +5.2182646 +-1.6699712 +-3.0231137 +4.6389127 +-15.5775156 +-4.0987983 +14.0731497 +-13.1511822 +-11.5152836 +-3.6387520 +-1.4024414 +-4.2592297 +-20.3272400 +0.6020259 +-11.5103188 +-2.3637171 +-5.5927081 +3.0293550 +33.7106972 +-7.5382247 +8.1253757 +-11.8274012 +-13.4047842 +15.1778307 +-7.8125148 +-7.4230819 +9.6611023 +0.1878152 +-2.7748840 +-2.7943282 +-8.1298285 +5.1457868 +-18.9940586 +-14.0223408 +0.8282967 +-3.0495512 +-2.0543385 +-0.7957430 +3.3414123 +-2.2823906 +-0.3257588 +-0.6382257 +5.2012148 +-2.0516384 +-0.3718460 +8.4517918 +7.7166119 +-1.6897794 +-13.8972464 +0.5116118 +-9.5920830 +-2.4620314 +-3.1071882 +9.7134447 +-4.8824344 +-3.4161854 +8.1711702 +-0.8219942 +8.0037460 +-4.6831675 +-3.0230253 +3.5464492 +-9.0912123 +-5.2490730 +33.4813118 +11.9411068 +-1.2541970 +-8.0176725 +-0.1820184 +-1.5915843 +10.7420807 +4.5138307 +1.1796099 +-13.5912485 +-3.7580442 +-2.7969201 +-7.7623773 +-1.7474530 +0.8073907 +1.2704077 +1.0254394 +4.5763063 +-9.3706245 +-3.9475377 +-17.0564137 +-12.9758539 +-18.2571259 +-13.2083139 +-0.5961137 +7.7549162 +-6.6714711 +-3.8071811 +5.2818460 +-13.9531736 +-20.5790119 +-11.2258358 +-5.1596951 +0.3764539 +-2.6655064 +-12.0735779 +2.2996488 +7.1649313 +-6.0571370 +-4.9175191 +2.1925464 +-0.7335371 +-0.6473937 +0.7538448 +-2.4290738 +-4.5106945 +-0.1351583 +6.9229455 +0.4334170 +2.5865359 +2.2033670 +-9.7947235 +-5.6942034 +-1.2050301 +15.3553038 +11.3452873 +-0.2529280 +6.9616170 +-6.9513817 +4.3836832 +10.6666622 +-4.3990445 +0.5401840 +1.3746595 +11.7648869 +0.0137254 +3.3687804 +-14.0224962 +4.4048109 +-4.3506355 +3.9661858 +8.3187380 +0.0133813 +12.5813990 +-0.8567533 +-5.6257277 +-17.3374939 +0.1552871 +-1.8417159 +0.8349018 +-3.7661436 +1.1362028 +12.6592894 +-8.1837015 +-1.0388715 +9.0163298 +-4.3594589 +-4.4982457 +-0.9515697 +-6.9566431 +-2.5631292 +-6.1074038 +3.0977774 +-0.4988024 +-3.3184412 +4.2596812 +-2.1471810 +-7.8494167 +-4.4749827 +2.7172678 +-9.5996103 +-1.1619548 +4.0977974 +-1.4444262 +-0.7731403 +4.2905335 +-1.0946707 +5.8091254 +-5.4346004 +3.4779119 +0.1259724 +-4.4234934 +-3.1746662 +0.8287178 +-4.5570831 +-14.0475216 +-1.1929431 +6.1025715 +-0.1056733 +-1.0054076 +-3.2021756 +0.1663930 +-0.7621900 +-3.8436308 +-0.8466643 +-10.5740099 +1.6610506 +-0.5475748 +17.3330536 +-0.2938930 +-0.9277260 +-0.9567227 +-0.4221596 +6.4732285 +0.6108528 +0.1568099 +-0.2356643 +-1.8933530 +-0.3890486 +3.7605064 +0.1100430 +-0.6711085 +-4.0225525 +-8.9971142 +0.5644693 +12.7025204 +-2.0847404 +-1.3296189 +-7.5472260 +0.0576074 +0.0163083 +-8.0892725 +1.5985235 +0.3437706 +20.1702652 +-1.3249660 +3.3331013 +5.3328805 +4.8832197 +0.9295138 +8.2957363 +-1.5105058 +-2.0768545 +-3.0408819 +-2.5001025 +-5.9689445 +-2.9425285 +-1.4151425 +-4.2033343 +-11.2536011 +-13.4172926 +-15.1366138 +1.5058057 +-2.9287889 +-0.9543825 +1.4694451 +1.2408484 +-0.8655484 +4.7462168 +-3.6115723 +0.8237986 +-0.5488531 +3.6514916 +7.4519968 +-6.4872179 +4.9316530 +2.6804404 +6.8793468 +-4.4301658 +1.2125337 +-7.5695934 +0.4820095 +2.9206345 +-0.5246039 +0.1577470 +-0.6242627 +0.2051173 +-1.3970135 +1.8109281 +-3.5029972 +-37.7883606 +-1.4757828 +0.8526700 +-1.7361622 +-4.5986528 +2.2244537 +-6.0490561 +-6.5975070 +-0.3415135 +1.7046720 +11.8075857 +-7.3605270 +5.2967448 +0.9915816 +-2.5966263 +8.9682207 +-1.9767042 +0.1256519 +1.4819933 +-1.1592083 +-2.0617089 +-1.0252655 +-2.6407723 +1.9878501 +-5.1742101 +-2.8758466 +-0.6881287 +-0.1375099 +-1.9226873 +-19.6367970 +3.5586557 +-6.1931934 +-11.2155762 +0.9214395 +2.2898388 +4.9456797 +0.4568264 +3.7115383 +-6.6095324 +-1.0458236 +-1.2630593 +-12.2187223 +-3.5894897 +-1.7456453 +-0.2638846 +3.0916591 +-0.8839800 +-2.7628148 +-1.0056370 +-5.9693646 +-29.1366463 +-1.8505683 +1.3035572 +2.4320598 +-0.9115318 +-2.9632533 +29.4419365 +-17.7253036 +-41.0307274 +-0.9101461 +-2.1610184 +9.1050816 +-10.0987635 +2.0155563 +0.6453117 +-6.7049432 +-5.9804955 +-1.0700576 +6.4160233 +-0.3967009 +-0.6677730 +2.2535462 +-1.2172816 +-0.6277035 +-4.6034336 +-0.4303167 +0.2008696 +-12.5998220 +3.5563939 +-2.9776537 +-0.5111477 +-2.1962481 +-12.7736273 +-0.0143225 +1.9997538 +-3.9678335 +0.2487124 +-0.8120436 +-0.9508203 +-0.3914918 +-4.8205037 +-4.3325763 +-5.6095181 +-17.1713600 +-7.6483126 +1.4040626 +-6.0324063 +-16.2950497 +3.3408709 +18.8081512 +-5.5396533 +-5.4964809 +-2.6348619 +0.9160146 +1.4624985 +0.7070137 +2.1318238 +7.0184236 +-4.8155589 +-2.6469820 +0.1953412 +14.7733841 +11.3022203 +8.4304008 +2.9775009 +13.5153313 +-0.4199576 +0.4045193 +-3.6396556 +-1.6161091 +4.1359806 +0.1993286 +-0.9927709 +1.1704761 +-8.2304316 +-3.3451982 +3.5384238 +-5.5215554 +-18.1595535 +-4.7065768 +-2.6618764 +-3.1492100 +-11.6532745 +0.6926032 +-2.0388570 +-3.1223154 +-0.8502290 +2.4235032 +21.8050213 +-9.4789953 +2.9540658 +-7.6400366 +-9.4640579 +8.5529222 +2.1759038 +-1.1636462 +3.2647464 +-1.9410117 +-4.4033089 +-5.1953521 +-4.3330226 +3.3346574 +-8.8921547 +-12.4864721 +0.2662832 +0.5678492 +-3.5240700 +2.9065955 +4.7325950 +-5.1616812 +-15.5919352 +-0.2678423 +2.7852530 +-0.1942259 +-0.2010389 +3.3598256 +4.9180140 +-3.5943384 +-5.2671471 +2.9529490 +-6.5588927 +-4.1808882 +2.0409544 +6.9664397 +-2.5141628 +-0.6636824 +-9.5033417 +3.2565594 +-10.8847237 +-3.4217248 +-0.4924747 +6.4979792 +-1.7810698 +-3.6766925 +21.2032223 +-10.8806782 +-12.1121092 +-2.6146190 +8.3958426 +-8.3766928 +5.4558959 +4.9993310 +-7.1926947 +-7.3730135 +-12.3790646 +-2.3587942 +3.8104463 +-1.7581267 +-1.0634918 +-1.2116027 +-1.0661925 +-5.4181514 +-9.1268864 +-1.8863989 +-7.3975730 +-17.5497017 +6.0898771 +-5.7933836 +-1.6832949 +-9.1422653 +-11.6559620 +-1.0408185 +2.6098373 +-8.1030712 +-0.8726493 +-11.3603296 +-1.5950102 +2.2001522 +-16.1147766 +-0.2288069 +-5.0142241 +-24.3622532 +-15.4580116 +-2.5008633 +1.9078085 +-27.2204304 +14.0026064 +0.0918613 +-4.7357445 +-11.7229681 +1.9777864 +2.5522377 +0.7204861 +-4.9652600 +-16.0744152 +0.6396761 +-3.0693371 +-1.9444700 +2.0845788 +19.6810913 +0.0884361 +12.3924665 +8.2828817 +13.9899559 +-6.5193295 +2.3076174 +-12.2264204 +-2.8426049 +6.1372313 +-2.7005172 +-0.2579196 +-0.3573470 +-26.7381649 +-2.8307030 +-1.4294814 +-7.3093643 +0.6461898 +-4.9246659 +-2.8056765 +-5.4640412 +-21.2476730 +0.3304045 +-4.9659815 +-0.6658935 +3.1620517 +-0.2729776 +33.1776505 +-15.9742193 +1.4579964 +-10.8541174 +-11.0149164 +-3.6650207 +-5.3967829 +-0.9286265 +-3.2371454 +-3.9673481 +-9.0487194 +-4.3313594 +-7.6597586 +4.3509498 +-15.7754717 +-17.4278831 +7.4662781 +0.6031281 +-4.6585832 +-0.3082401 +4.7398920 +-15.4938240 +1.3775308 +-2.5207062 +5.3059835 +3.3026745 +-0.5021419 +14.6880312 +1.5540520 +-4.2447128 +-9.9668674 +-1.0117643 +-11.5795860 +-7.1838183 +1.4748114 +12.2265196 +-1.1946578 +-14.1177778 +-8.8107090 +6.7087798 +-1.3856447 +-3.7667980 +1.7818668 +18.9709892 +-1.5291216 +-5.6444812 +35.6443901 +3.1259618 +0.0258685 +6.4729533 +-7.7169065 +16.0997086 +1.6210827 +10.9850330 +-25.3888664 +-9.5045347 +0.4849527 +-2.2231669 +-16.8673840 +-5.1630621 +0.5145328 +0.1886024 +-20.0900211 +1.5504619 +-16.9785728 +-3.1318271 +-8.4838905 +-8.5035286 +-10.7255211 +-7.5101438 +-0.2092125 +1.9313581 +-8.6558018 +-1.0981045 +2.9944000 +-12.8827333 +1.1152760 +-16.0343113 +-3.8975296 +7.2408280 +-0.1394378 +-3.3363607 +-0.0396326 +-5.7669406 +-2.3113787 +-0.0195709 +0.9115213 +3.7068326 +1.2270814 +0.0406257 +-2.0315955 +-2.8443537 +3.7437048 +3.9173927 +-3.0925722 +0.9017642 +0.1664248 +0.7904888 +1.8697450 +-3.0286028 +0.5865663 +-1.7019382 +-0.0009319 +3.9745660 +2.8554296 +-0.4661623 +-0.0000059 +0.5030106 +-0.8330868 +-0.2044025 +0.6036494 +-2.2091498 +4.2291274 +-1.2690564 +-2.4283969 +0.2638663 +4.2968864 +-1.0694803 +0.0277525 +0.4448373 +-0.0957041 +-7.2051206 +-3.9722261 +1.4790436 +1.5702101 +-0.0915374 +-2.3777556 +2.6038418 +7.4114327 +-1.5483458 +-3.3046353 +3.4208817 +-3.0717504 +-0.9352828 +-0.9369726 +2.3365893 +0.0313039 +0.0184035 +-1.6187460 +1.8324221 +-3.6361418 +6.7021446 +-0.1742513 +-4.9682112 +3.3187821 +0.8936582 +-0.2404937 +-0.1542565 +3.9538012 +0.4816874 +-0.0826385 +6.3790584 +-0.5816780 +1.7927625 +1.6435465 +-1.1218538 +1.2497059 +-6.4157109 +-0.3549556 +0.2487457 +-9.7641039 +-3.8231583 +2.1065576 +5.4004912 +-1.5713396 +0.7299665 +-0.0139225 +-0.0263418 +-0.1086047 +-2.6536090 +-0.2143581 +-2.7149940 +-0.6958687 +0.8739347 +5.8528018 +-0.2326078 +-0.4320690 +-0.8710687 +0.0911057 +0.2474675 +-0.0273395 +14.8768835 +0.6303878 +-2.1091671 +0.7565432 +0.4419243 +-0.1688285 +-0.7549188 +-0.5309808 +-1.6089573 +-0.3837453 +-3.5990424 +-2.0021112 +-6.1095619 +-0.3865929 +-0.0510140 +-0.1542551 +3.5588081 +-0.6128873 +-0.0492014 +1.2857327 +3.8871615 +0.4295793 +-8.1403275 +1.0546499 +-3.9284809 +-0.2061096 +4.5799184 +-2.4427447 +-3.5867889 +-3.0727665 +-7.0558929 +-3.2960086 +-1.9944581 +-6.1048512 +-12.6651411 +-15.1882162 +-4.6101127 +2.2344275 +-3.3334968 +-1.4679828 +1.7686250 +0.9104139 +-1.6569926 +6.1068783 +-4.0142946 +1.1612399 +-0.3263319 +3.8855991 +7.0810637 +-3.4013126 +5.0146985 +2.7521224 +6.7052546 +-7.8229117 +1.4099971 +-7.4085951 +0.4240090 +3.2761104 +-0.8428654 +0.2873716 +-1.2681867 +-0.1805905 +-1.7348895 +1.9073967 +-4.0988498 +-37.9657784 +-1.6858962 +1.1822548 +-1.9089754 +-5.1535888 +1.7141883 +-8.2028532 +-3.4531529 +0.0017875 +1.1819801 +11.0617399 +-7.4612513 +3.5662875 +1.1469907 +-2.8892169 +9.0971022 +-2.8359666 +0.0948361 +2.2460599 +-0.9089372 +-1.6670682 +1.2854402 +-2.6896148 +2.2801175 +-5.6716776 +-3.0895743 +0.2569112 +-0.1871890 +-4.8807917 +-18.4000969 +2.8802614 +-6.9123912 +-10.0394630 +0.9207284 +2.5050130 +6.6499496 +0.6102975 +3.6403189 +-8.3316908 +-0.9989270 +-1.3546730 +-12.9085655 +-4.0789375 +-1.7661273 +-0.3695218 +2.4475143 +-0.5149456 +-3.6022561 +-2.4034593 +-6.6433148 +-31.0456638 +-1.7809530 +-0.2958059 +1.4137112 +-0.2324819 +-3.1267791 +29.8660717 +-18.8354321 +-41.9155617 +-1.8818340 +-1.2157328 +9.8896112 +-9.2536850 +2.5363159 +-0.3971288 +-7.4668140 +-7.6149783 +-1.3761553 +6.1665387 +-0.2519775 +-1.0377345 +2.4405041 +-1.3870775 +-0.3277849 +-5.2080379 +-0.3609664 +0.0575124 +-12.0623646 +4.3379769 +-3.2142699 +-0.4628163 +-4.3098812 +-17.2771835 +-0.0509781 +1.7995876 +-4.4273591 +0.2032845 +-1.5739528 +-1.6137220 +0.6233968 +-6.3520584 +-4.1967916 +-5.8760786 +-17.7685413 +-7.3620839 +-0.6548759 +-3.6864517 +-17.6404285 +2.1898193 +-10.9061842 +-4.7887559 +-6.1362810 +-3.4254079 +2.3974922 +-1.2654530 +-0.0895004 +1.4632171 +9.1623049 +-4.4050245 +-2.6332965 +-0.8433744 +14.1718445 +14.2439957 +8.9424334 +4.5060935 +12.8596210 +-2.6156619 +0.0001861 +0.9873077 +-0.6674405 +4.8720484 +0.2724701 +0.6709440 +-0.7366884 +-9.3607311 +-4.6410866 +0.9601974 +-5.8102422 +-9.1330175 +-6.7493167 +-2.6185021 +-3.6419828 +-12.6119251 +1.3420404 +-1.8809415 +7.1024623 +-0.3880747 +2.7125554 +20.4400005 +-9.8543386 +3.7517748 +-6.1427255 +-11.7646914 +10.4607477 +6.4462748 +-0.0805380 +2.3884563 +-1.4953535 +-4.4743080 +-0.5290302 +-4.5278430 +3.8256180 +-7.9367366 +-14.2897863 +-1.8351710 +-0.0931903 +5.2031155 +6.4096508 +4.0674419 +-3.2925076 +-10.1709156 +-0.0496807 +2.8569515 +-2.4102211 +-0.2232510 +2.0219829 +5.7330179 +-3.3870060 +-6.0910716 +-7.4657931 +-7.5531850 +-4.4815116 +1.9764521 +6.6539826 +-2.7592556 +-1.0069073 +-6.0909715 +-1.1098138 +-1.5089941 +-3.1140289 +8.0467396 +5.9097710 +-1.3728744 +-4.5623689 +23.8213463 +-15.7901087 +-10.2849121 +-4.3466182 +2.4245541 +-6.1447568 +8.2831306 +5.9714766 +-9.6469755 +-2.0003192 +-11.9580822 +-2.8048096 +3.0718942 +-0.9553118 +-2.8689511 +-1.0629963 +0.8532807 +-7.1378984 +-10.0225115 +-1.6398228 +-8.3161612 +-34.2281265 +8.2255936 +-7.4209414 +-1.4401814 +-9.7972727 +-4.7376528 +-0.8911830 +0.5447993 +-9.4542952 +-0.3099458 +-12.5484352 +-1.7496333 +2.0081487 +-2.5014534 +-10.2378950 +-7.2659335 +-30.4095745 +-14.0620584 +1.7785205 +17.8228397 +-26.8362923 +23.8340073 +-1.4410131 +1.3389686 +-8.2363615 +-3.6673348 +3.8827116 +-1.8798913 +-5.6682439 +-7.9586244 +9.0645647 +-8.5454178 +-3.4268000 +-10.9123888 +20.0977001 +1.1504629 +14.1327400 +9.4024134 +19.0157490 +-40.7783966 +-0.7150199 +0.8935270 +-3.1485538 +6.7294202 +-0.9904823 +-0.8731046 +-1.3565284 +-6.4903402 +-7.6956863 +3.9054639 +-7.5750146 +-3.9008589 +-11.5170269 +-0.8219205 +-3.8537462 +-18.8949966 +-6.8266649 +-0.6538647 +-0.4392525 +-3.2753553 +-1.0837778 +35.4731293 +-13.0878448 +-0.1764863 +-4.2392588 +-16.1418018 +20.6930809 +-7.1563067 +-1.4682786 +6.2804527 +-0.1405057 +-4.3406572 +7.2236838 +-5.8452249 +4.4519701 +-9.3055105 +-18.1875114 +2.6641152 +-5.0080123 +4.6675363 +-1.5406429 +6.8939505 +-5.2268739 +9.1180992 +1.8859078 +8.3915958 +-4.3807769 +0.0237541 +11.6188469 +8.9489164 +-2.0567372 +-7.3789930 +-6.5145979 +-12.5420589 +-3.4780362 +0.4962013 +6.9521174 +-3.3162334 +-8.2627010 +5.4521284 +-1.4250679 +2.7250669 +-5.9040775 +12.7238512 +-1.8608688 +-3.4168711 +-4.0318594 +13.8251038 +5.2513103 +-1.9498205 +-1.4902583 +0.9282503 +-6.0655684 +2.8074136 +8.5369558 +-8.0096836 +-4.4358139 +-7.3082108 +-7.2860832 +20.8521461 +-2.2099047 +-2.5419059 +-1.0612938 +2.7110686 +-6.2740774 +-19.1658020 +-3.9729507 +-15.6033983 +-3.7491119 +10.1296997 +-11.3006754 +-1.2153044 +0.8322093 +-1.3909543 +-2.8406475 +0.6530485 +-14.1577024 +-3.6049788 +-9.7891531 +0.0119434 +1.1137193 +-10.1072998 +-7.7766995 +-5.7080264 +-12.9997330 +-15.3106089 +-16.7187614 +4.0448313 +-3.0803325 +-1.5040277 +-0.0293701 +-2.1977222 +-18.4217663 +1.5734122 +7.0814924 +-10.2967243 +-1.8704412 +6.5227656 +18.8883629 +0.2196919 +12.7570925 +7.3341432 +3.1233230 +0.0062855 +-2.8038974 +2.9364269 +7.9752746 +0.4548914 +8.7050066 +0.8657460 +-2.7211916 +7.1468349 +-6.4057508 +-7.8906174 +6.8860269 +3.5121768 +1.2749726 +1.8156643 +6.3697062 +-0.0080837 +6.6054363 +0.0892316 +-5.5963635 +-11.7185373 +-4.5972447 +-1.2850122 +0.2307304 +6.5411758 +1.4884492 +9.6904793 +0.1103128 +7.0610986 +2.1496165 +-9.9141512 +8.6008730 +-0.1963737 +-0.5351610 +0.6714309 +6.0159240 +-8.9359245 +-2.2637286 +-6.3136444 +13.3623629 +-3.5774751 +-8.2044601 +11.0221605 +1.9611169 +6.0074940 +-0.6576278 +3.0407319 +8.9499226 +-0.9952912 +11.6087942 +12.0867167 +21.0673523 +-9.7412977 +-1.3141459 +11.0720377 +-12.3550882 +7.5947089 +1.0045069 +-11.6280174 +4.5996833 +-0.9489586 +12.0941105 +-1.1442078 +-0.0545419 +-6.4496732 +-0.0405304 +-0.0959875 +-1.4847804 +1.1447759 +0.5912062 +8.0555038 +-7.9730010 +0.9329330 +-0.9077813 +-1.0867758 +-1.2038702 +0.1627848 +3.4398327 +0.4057283 +-0.3155043 +-0.5240874 +-4.8747177 +-2.5247455 +0.7947713 +-3.3380165 +-6.6152158 +-4.3413000 +-4.8307772 +4.5878925 +2.6128263 +5.1867681 +-3.7717052 +3.3874927 +-2.3617556 +-0.4679562 +-1.5473963 +0.8003778 +0.7741337 +7.4669352 +-0.6579804 +-9.0928106 +-8.8771458 +-11.0445995 +-4.7748699 +3.5979531 +6.8013539 +-2.6627464 +-4.1632624 +-3.9624438 +-8.0769663 +-3.3712397 +-2.3914661 +-6.5081029 +-13.3114166 +-17.0371380 +-0.8430005 +3.2254002 +-3.4305854 +-1.7204111 +2.3801062 +1.1185609 +-2.2986410 +7.3429971 +-3.2741530 +1.4239757 +-0.1947533 +4.0365868 +6.5904498 +-0.8829025 +5.2200732 +3.2735789 +6.8480630 +-4.5663452 +1.4997557 +-7.3870244 +0.6618572 +3.5265734 +-0.8710915 +0.9797136 +-1.7580782 +-0.6443539 +-2.0861056 +1.4859895 +-4.9419332 +-35.8333626 +-2.0606048 +1.4247200 +-1.9557456 +-5.5245018 +1.8196298 +-9.4640198 +-1.0252999 +-0.2435245 +0.3651947 +10.0832272 +-7.8098359 +3.5993540 +0.8405123 +-3.0299621 +9.7195177 +-3.5077300 +0.3047920 +2.0497673 +-0.8710491 +-1.4326020 +1.3022919 +-2.7439373 +2.4282739 +-5.9485369 +-3.5996933 +0.3744861 +-0.3188754 +-4.1168199 +-16.1978359 +2.4225285 +-8.0561695 +-12.0558548 +1.0105257 +2.5318034 +7.2952361 +0.7362556 +3.6831536 +-10.2946863 +-1.0844188 +-1.5026391 +-16.3670216 +-4.8167520 +-1.4334686 +-0.5004616 +1.7163395 +-0.5213904 +-4.5193338 +-3.6585271 +-13.4350100 +-29.1013985 +-1.7767426 +-2.1799362 +-0.5233061 +-0.2314183 +-3.4828291 +29.6940975 +-19.6255074 +-43.5372467 +-2.5794222 +-5.1746001 +11.4995575 +-6.4812045 +2.8749616 +-1.7438120 +-7.6026435 +-7.4800134 +-1.3823771 +7.7636571 +0.2045533 +-1.2815117 +2.9879432 +-1.4173403 +-0.1410216 +-5.7260981 +-0.2039997 +-0.0683390 +-12.0829191 +4.2433782 +-3.1410100 +-0.3375293 +-5.1485391 +-17.1336536 +0.0394469 +2.1609704 +-4.6698790 +0.6109996 +-2.0162909 +-2.2275865 +1.1912014 +-3.3957710 +-4.6983500 +-7.4021320 +-20.4367638 +-8.5305967 +0.6680712 +2.5526583 +-16.0208302 +3.9254196 +-1.1834053 +-3.1526685 +-6.8799601 +-5.3293705 +2.5741920 +-2.5398812 +-1.8610893 +3.0916502 +5.1369700 +-6.5320559 +-3.3709817 +-0.6248441 +13.5811510 +1.7395356 +8.4064960 +3.7055070 +13.4750242 +0.8545005 +-0.0720634 +0.9928343 +-1.3897185 +4.8652945 +-0.0912396 +0.6101524 +-0.7448453 +-10.2576532 +-4.9115081 +1.6604290 +-6.0661922 +-15.7084589 +-6.2893796 +-1.5382504 +-3.7764227 +-14.3897924 +-1.0416270 +-0.6226835 +-3.0541110 +-0.5266865 +0.7877187 +20.0713787 +-12.9352064 +-0.1738857 +-6.1158099 +-11.8627815 +8.6126413 +5.1918564 +-0.3187219 +3.6588547 +-1.6097847 +-4.0724726 +0.0566675 +-4.7250237 +4.2596421 +-5.0782723 +-15.6038895 +-0.6551670 +0.5360523 +15.1074305 +-3.3603077 +3.2005117 +-8.5508041 +-9.8838139 +-0.9702301 +3.4361691 +1.4453772 +-0.4191346 +1.2525685 +5.3869610 +-3.4119515 +-6.6834631 +1.2366556 +-8.0283651 +-4.8623629 +2.5375571 +5.1007090 +-2.7533219 +-1.8136044 +-12.4010868 +-10.2088881 +-9.2011414 +-3.0000563 +-3.3525090 +5.7821965 +-0.7452993 +-6.2046623 +29.6844864 +-3.2498226 +-3.1967115 +-2.3300471 +8.1770296 +-2.3597684 +3.0642619 +7.1525383 +-21.5916691 +-2.7821739 +-8.3342485 +-3.2845814 +10.2753954 +-2.8981969 +-2.4883511 +-1.6563523 +1.1090329 +-10.2630453 +-9.0358667 +-1.9328721 +-7.4606872 +-27.3860607 +6.4509192 +-7.0796423 +-1.8531662 +-2.7973497 +-13.4775047 +-1.7062674 +-0.2202119 +-10.4923229 +0.0496898 +-14.9648085 +-1.4514598 +2.7234526 +-6.4564266 +-10.9656954 +-9.9049454 +-31.5141830 +-11.4770365 +5.0885158 +27.5926952 +-31.4749088 +4.3945141 +17.8772125 +0.9462781 +-11.0305090 +-17.7681961 +5.5038829 +-2.2390761 +-2.6403396 +1.2230486 +-3.5906355 +-21.2835751 +-2.6698086 +1.8335993 +22.3999004 +0.7503520 +13.5570269 +6.6670079 +19.6133404 +-15.7476444 +-1.3664331 +-0.6226802 +0.0399916 +8.0309744 +-2.7563310 +-0.3242681 +-1.3577399 +-13.3969469 +-5.6159444 +3.4579673 +-2.1928971 +0.8278612 +-8.3121538 +-5.0294061 +-7.4967847 +-17.6164169 +2.2010310 +6.9568415 +0.2902942 +-1.9033818 +-0.0555245 +31.5583134 +-9.0358362 +2.6146629 +-7.5286570 +-12.3436937 +13.5430841 +11.1498709 +1.0074275 +6.5000639 +-3.4485612 +-6.8075800 +1.5702257 +-7.0720015 +5.0549779 +-20.0966148 +-28.1987896 +2.4406133 +0.8892570 +18.0415516 +1.6047506 +4.5965886 +-12.7459011 +5.1572027 +3.8724406 +7.0276608 +6.3617454 +0.4067219 +11.8051071 +10.7510862 +-3.6812778 +-4.9228754 +-5.5619087 +-14.7224960 +-2.4471061 +1.1904730 +4.1839705 +-4.0571384 +5.9124398 +1.8363836 +1.0866497 +-2.5547345 +-4.1469731 +1.6450262 +-5.0001521 +-5.9964938 +-4.6518369 +63.8802185 +1.1386142 +0.8627136 +3.6019034 +1.4826181 +-2.6239095 +14.9022579 +7.8099480 +-18.4317837 +-3.7093146 +-1.5353925 +-4.2037520 +17.8033390 +-1.2808399 +-2.1325941 +-2.9493003 +2.8712320 +-5.9160609 +-14.1149578 +-1.0460857 +-7.0969343 +-20.2678394 +13.1946955 +-8.6775665 +-1.9122045 +10.7554522 +-7.2983475 +0.7738863 +0.7113807 +-15.1312799 +2.8143964 +-24.5876427 +2.0188317 +0.5853742 +-20.7662716 +-15.5682964 +4.3633323 +-1.4376266 +-7.8435960 +-1.4517792 +7.0330973 +-7.7542343 +-0.8309368 +-0.9038507 +3.8673775 +-7.9511452 +-8.3532286 +0.6143978 +-24.5793839 +3.8962133 +-1.3261597 +4.0140228 +-6.7549095 +-2.5078003 +4.1948133 +14.8830223 +-0.3455145 +11.7513342 +4.7847333 +12.7140236 +-0.7445372 +0.3411851 +0.1874994 +-1.7039603 +7.6691952 +-1.9773635 +4.8924427 +-4.1357002 +-1.7853884 +3.1311121 +-5.0059810 +2.9290330 +0.2608301 +-24.1842136 +-4.8510203 +-2.1836634 +-22.4367638 +-13.6345844 +0.1278876 +1.7384344 +-28.9598236 +9.8678703 +9.9504738 +-4.3741922 +-15.3796024 +-24.1375198 +-10.1289625 +24.4065247 +-6.4120650 +0.8883588 +-4.4739890 +-7.5627093 +-3.3888865 +-15.1857834 +-6.0567446 +8.9565096 +-0.6310425 +-8.0731955 +-2.9652519 +8.8368378 +21.0648308 +-1.1612339 +0.1502432 +-1.6821070 +-2.6525362 +-0.2335394 +-0.7771909 +-30.4739132 +6.8897076 +3.2807209 +-6.6632228 +-6.3427219 +7.6332316 +1.2351408 +-13.0367956 +2.3030109 +-8.7422075 +7.5564017 +-10.5886183 +-2.4038148 +-7.4843540 +-0.7579459 +-0.8498920 +-3.1547060 +0.5440541 +4.9994941 +3.6019535 +-6.1453838 +3.7755606 +-0.0495126 +-0.3351472 +2.1469707 +-0.5537364 +-4.9485183 +1.2310284 +4.8680024 +5.6089754 +10.7715759 +0.8808408 +-5.6806750 +23.4747677 +7.4122033 +-3.4707401 +4.2903619 +7.7921038 +22.8570309 +-1.2410319 +-3.2578545 +-0.3444908 +0.5012049 +-3.0832520 +-2.1506140 +-1.1708266 +-0.6737884 +2.9920223 +-3.5111792 +-14.2832556 +-6.2548461 +-11.2697029 +8.0778694 +12.1581497 +4.0454865 +-2.8143234 +-4.7156529 +-4.6507607 +-8.9225960 +-4.0770617 +-3.1707051 +-6.4648356 +-14.4633703 +-19.8735580 +1.2088042 +3.4524677 +-3.9043558 +-1.0929971 +2.4514792 +0.3000799 +-2.7221303 +7.8190813 +-2.8507147 +1.1333424 +0.1402613 +4.1380415 +6.2481441 +-10.1366110 +5.5167522 +3.0691676 +6.7398124 +-3.9870043 +1.7799727 +-7.4968963 +0.8370881 +3.6145148 +-0.8666728 +0.9490808 +-1.8514087 +-1.2533451 +-2.4489088 +0.8259298 +-5.6844130 +-34.3151169 +-1.3554113 +1.5484216 +-2.0505168 +-6.0813580 +1.7489008 +-10.3545351 +1.7088892 +0.0359966 +0.1122330 +9.7852058 +-8.0660944 +3.4248538 +1.1498340 +-3.7755811 +9.6824560 +-4.9573884 +0.6171682 +2.3210318 +-1.0669991 +-1.5300332 +1.0758899 +-2.8504236 +2.6440849 +-6.2620382 +-3.7137897 +0.3916814 +0.0035532 +-5.2070394 +-15.0850592 +1.6649505 +-9.2343616 +-10.0875320 +0.7381516 +2.4642889 +7.2277761 +0.6104650 +3.7054443 +-13.1873159 +-1.2311521 +-1.5327888 +-14.9013309 +-5.4966021 +-1.3640697 +-0.6470524 +0.8459794 +-0.6594167 +-5.4575911 +-5.9807591 +-15.4538555 +-27.6662827 +-1.7418987 +-4.0938821 +1.3147019 +-0.2144490 +-3.5212324 +31.0932617 +-18.4965210 +-45.7756233 +-3.1830809 +-7.5458298 +13.4534864 +-4.5440259 +3.2419591 +-4.0315828 +-7.6182909 +-6.1970100 +-1.4893787 +6.6952181 +-0.1388501 +-1.2953746 +3.2435026 +-1.5415822 +0.3146214 +-6.1876631 +0.2543062 +-0.1247747 +-11.7348385 +4.6486850 +-3.4667315 +-0.4559074 +-7.0017133 +-15.6418724 +0.4845343 +1.4721174 +-4.9366598 +1.0270634 +-1.9677180 +-2.9612024 +1.1335651 +-3.9392703 +-5.9039378 +-6.4679060 +-22.5226479 +-11.5767126 +0.8011767 +-2.7965610 +-12.9634771 +-3.7822394 +-13.6345053 +-2.3360786 +-7.0723696 +-7.8431211 +4.8827329 +-2.5268779 +-4.1973825 +2.3630157 +5.7832675 +-7.5120654 +-1.4206673 +-0.8202211 +13.2949886 +2.4760470 +8.7931337 +4.9640861 +13.7763987 +-20.6768169 +0.3549030 +-0.2117055 +-0.8879688 +5.5427909 +0.5285903 +-0.0411389 +-0.3791151 +-10.5113049 +-6.5998740 +-1.3295587 +-6.8030910 +-4.9438329 +-9.1471996 +-1.8200974 +-3.6312790 +-14.9361420 +-1.2609575 +-9.4068127 +2.0319099 +0.4371378 +2.3205979 +19.8218231 +-11.7237892 +3.8392425 +-8.5018263 +-11.1588030 +9.5598660 +8.2230501 +-0.2009536 +2.7692626 +-2.1595533 +-4.1559024 +-0.7702253 +-4.8824372 +4.4286366 +-8.6859522 +-16.5201988 +-1.9638182 +0.9777018 +6.5856857 +-2.7766433 +4.3416319 +-5.7721090 +-0.6505401 +1.0936272 +4.1376767 +-0.0876001 +-0.6367851 +-1.4994836 +3.4005709 +-4.1764202 +-6.2799935 +-0.6862488 +-8.9613667 +-3.1840286 +2.5443778 +2.8718057 +-2.6832023 +-0.1825338 +-29.9712696 +-1.6781586 +-6.7477436 +-3.3854713 +24.3439045 +7.6318598 +-1.5604637 +-6.4636631 +34.4020233 +-5.2316308 +4.8781805 +-3.8421855 +8.2474604 +6.7672105 +5.4662237 +8.6412029 +-11.8042240 +-2.5189354 +-7.2325196 +-4.4065347 +6.1256704 +-2.7459204 +-3.0175893 +-0.8761392 +-2.0514081 +-12.2263975 +-11.5875816 +-1.4667147 +-7.7482786 +-28.2860546 +6.5091662 +-6.9843817 +-1.9842716 +-21.5154877 +-8.9917049 +-0.8868015 +-0.2445878 +-10.7717686 +-0.2137809 +-18.2474918 +-2.0945635 +1.7686574 +-0.1200980 +-11.9724979 +-20.0407143 +-32.4531059 +-17.8157139 +-10.2268038 +19.3105793 +-19.4038925 +18.4787350 +-1.8068058 +3.6589484 +-8.6273060 +-6.7663388 +6.4628997 +-6.8842564 +-12.0540648 +12.7739487 +-1.1324488 +-8.6535406 +-5.1934061 +3.8130145 +19.5270214 +-1.6475915 +13.5305567 +9.3778467 +22.3498859 +-5.3093944 +0.5368029 +-3.9294066 +-1.5268439 +10.3962812 +-0.6045179 +-1.1283399 +-3.0764251 +-17.6504669 +-9.4566717 +-5.9840083 +-14.2194071 +-0.0560269 +-11.6289310 +0.8390999 +-6.2798948 +-21.1473808 +-1.5705081 +3.6405468 +5.3185191 +1.3177080 +4.6707730 +29.0292110 +-5.7093477 +6.5576715 +-9.5732756 +-17.2850323 +20.5656872 +4.5023932 +-0.9245029 +3.0063219 +-3.2335675 +-4.4996810 +5.4453521 +-7.7949824 +7.8502579 +-17.1219883 +-26.5326672 +-4.6733975 +1.8309029 +-10.7487650 +6.1809325 +6.3876219 +-27.1656284 +-5.1716781 +1.3970948 +5.3772864 +5.0574584 +-0.1517697 +-12.0911503 +5.8758378 +-5.9316983 +-8.4222994 +7.6936779 +-14.7010679 +-6.9920244 +1.2960454 +6.9050689 +-3.5426588 +0.7336402 +-4.0692134 +-6.3441391 +0.8305690 +-5.5596409 +1.6713530 +9.6462278 +0.1794320 +-10.5058565 +58.0953140 +-8.9995670 +-4.7804823 +-12.6345720 +3.5866261 +16.2982712 +13.5353498 +9.6716671 +-24.9471359 +-2.7177529 +4.7798228 +-5.4932742 +-10.1165771 +-4.7933125 +-3.9862254 +1.3295496 +-1.8769158 +-13.5767469 +-14.0836830 +-0.7075430 +-6.9505887 +-15.2196665 +10.8661528 +-11.4971933 +-4.1550617 +7.1964712 +-5.8551173 +-0.2971744 +-2.5321074 +-14.5076065 +-1.0681885 +-22.4464264 +-15.4746809 +1.0716509 +-13.3001966 +-16.5260048 +3.3614323 +-3.4350901 +-15.4335899 +1.8654408 +15.5109558 +6.0901351 +26.8585663 +-6.1776810 +3.4207706 +-2.8681371 +-11.7154837 +-0.1487482 +-5.2187943 +4.2632170 +-3.6994376 +0.7704511 +-8.8769903 +5.0251656 +12.8047457 +11.3056965 +-0.3219389 +8.7124500 +5.4850006 +15.7841463 +-15.1051598 +-2.6629694 +15.3625860 +8.0846882 +7.3359685 +-1.6659936 +3.3303936 +-1.4837161 +-4.5380592 +3.1306922 +9.0360584 +10.2475090 +-0.7585767 +5.1161284 +-7.1277370 +-5.3217311 +-14.0491695 +5.2832403 +-13.4633236 +1.8341402 +-2.0851574 +1.3023207 +14.4848680 +-3.5294597 +7.9929547 +13.1322212 +-6.1936336 +11.0762234 +-3.0165267 +4.4304466 +7.4367552 +-3.8147745 +-7.4571171 +-7.9630828 +-4.2931294 +5.8050270 +-3.3906784 +-7.0699034 +-3.9646337 +5.6082006 +-11.7874899 +-2.3081467 +1.8433257 +4.9403896 +-0.4806344 +4.0410628 +3.2102048 +8.6723156 +0.5138034 +2.8193612 +-11.2422943 +-8.2144699 +0.8858098 +2.0396242 +-14.3723249 +-22.7333031 +-3.6261292 +1.8937206 +2.4559145 +1.2841296 +-7.5733871 +0.7440699 +-1.2344404 +-1.7816235 +-1.8552420 +-1.0791568 +-5.7310319 +-1.8271984 +7.8109136 +0.6251414 +-2.5137711 +0.2584994 +-0.5943501 +14.2600670 +-3.0045443 +0.7809387 +0.0322681 +-0.0395265 +-10.8749361 +-19.2122478 +-2.9016006 +2.0169048 +-2.0167050 +1.4907964 +-15.4577503 +2.5444889 +-10.4143534 +-4.0742812 +-7.5466003 +-0.9928930 +8.2879658 +-12.2113657 +-2.0416946 +2.1048405 +-3.0081306 +-2.2016351 +-2.5305092 +-13.0002346 +4.0792928 +7.2419453 +6.6926603 +0.1141389 +-3.2349482 +-4.0493932 +-4.6995354 +-9.5474052 +-4.9752102 +-2.4930949 +-8.3882704 +-16.2861519 +-20.5444126 +16.9335442 +4.0762405 +-4.6661487 +-0.3347274 +2.7975428 +1.0179822 +-2.9318793 +8.9866619 +-2.9653037 +2.0192800 +-0.2625644 +4.8905506 +6.0175056 +-6.3036027 +5.5211573 +3.7614906 +6.9207501 +2.1947985 +1.4616389 +-7.8671660 +1.1522882 +4.0135612 +-0.6525938 +1.5410042 +-2.3064768 +-1.9730214 +-2.9649854 +4.6622396 +-6.0675554 +-35.6364288 +-1.9605522 +1.3004489 +-1.8937324 +-7.0136261 +0.9424748 +-9.9641018 +1.5022349 +-0.4196443 +-0.8036827 +8.3768482 +-8.3050280 +2.4311004 +0.3398892 +-4.3394136 +10.7535849 +-4.2932439 +0.4270064 +3.7207494 +-0.8346987 +-1.3876885 +2.0028279 +-2.8249407 +2.6504288 +-7.6741972 +-4.4143062 +0.2746853 +-0.5421446 +-4.3261509 +-13.5240536 +1.0583791 +-9.2437487 +-11.0983086 +-0.2737870 +2.1137886 +7.0491872 +1.6336631 +3.6571450 +-16.3169727 +-0.7830052 +-1.2858113 +-4.9818821 +-6.6493349 +-2.2335360 +-0.9947744 +0.1531184 +-0.5563774 +-7.1375556 +-7.1065817 +-16.2531853 +-30.3822155 +-1.6010810 +-5.5373659 +-1.3410465 +-0.1744463 +-4.1277537 +30.8974819 +-17.4927807 +-47.7249908 +-3.9235680 +-10.5899658 +13.5643435 +-3.7254825 +4.6950212 +-5.7663941 +-6.6921253 +-9.4174538 +-1.8918303 +4.4650936 +1.8864238 +-1.7859529 +3.6525829 +-2.1655622 +0.9449559 +-0.9309813 +0.6571867 +-0.4136064 +-11.9291487 +-5.6253362 +-2.9182744 +0.3492390 +-8.3565359 +-13.4097490 +1.1990888 +1.8514056 +-7.3127513 +0.7990414 +-2.2764080 +-3.2048130 +1.4501454 +-6.1163878 +1.7273260 +-6.2758527 +-23.1499386 +-8.7309217 +0.4393944 +1.8985592 +-7.8579254 +9.6991653 +14.2075157 +-1.7543851 +-11.2203770 +4.1801448 +5.4119062 +3.3225424 +2.0971961 +-0.4861774 +-2.0841105 +-4.7405043 +-0.6476846 +-0.3649133 +12.8161430 +15.0217524 +10.0258732 +4.4596705 +14.4182825 +9.0358925 +0.5484314 +0.9056892 +1.7365036 +5.9994698 +-0.5542049 +1.0470710 +-0.2008992 +-2.6466455 +-5.1890340 +10.7064228 +-7.3586297 +8.2167892 +-4.6235051 +-1.2528512 +-3.1237984 +-15.2822275 +1.3638163 +-9.4037924 +4.0259933 +-0.6654212 +-1.5230322 +12.3394556 +-11.9224768 +-0.5813256 +4.0633225 +-13.7921238 +9.2452173 +-2.1307976 +1.5969548 +-44.9461021 +-0.2027771 +-3.8651457 +0.6965945 +-4.5067616 +5.2511401 +-7.4128056 +-13.6004333 +0.4621176 +1.5293493 +-11.0438194 +-9.9625759 +2.2297451 +-9.0639410 +0.2498696 +-0.5423869 +2.5343649 +0.5055556 +3.1421883 +0.9371615 +-1.4458526 +-3.4404433 +-6.0153499 +5.7299991 +-11.1686611 +1.6460447 +3.2175739 +1.8578413 +-1.4473466 +0.4559374 +-11.1085882 +-8.4532509 +-0.3901655 +-3.3049045 +-12.7607737 +8.2818584 +-2.3360989 +-7.4245868 +30.8252411 +9.7442265 +-12.0369959 +-2.2004929 +-5.8013916 +-4.7996922 +7.2655978 +10.8121090 +-26.1908550 +-6.9114242 +-4.7887511 +-2.5106876 +6.4862466 +4.0677547 +-4.8767657 +0.4852799 +0.4285595 +-5.9271698 +1.5833198 +1.9306982 +-5.5374174 +-15.9468679 +14.7173700 +-3.9988945 +-0.2625260 +-11.2993479 +-3.7104692 +2.9434416 +4.9864078 +-15.9795065 +2.8960016 +3.2550294 +0.1040230 +4.0910964 +-9.1849327 +0.7627059 +-15.7359266 +-31.3851433 +-14.0476227 +-4.2283139 +0.1334211 +-11.6320229 +-1.6479580 +-1.7446163 +-2.2303727 +-16.3274612 +4.7101440 +8.7908564 +1.2118657 +1.2096940 +10.8950729 +-4.0458417 +1.3491077 +1.0599556 +5.9200916 +19.2629261 +0.7221351 +14.9221954 +9.0111561 +23.0214462 +-4.5144434 +2.3620505 +-3.5568445 +2.6381865 +9.7284803 +-0.9305761 +2.7675991 +-2.8537147 +-9.8737535 +-4.9112377 +4.7237806 +-11.0105181 +-1.2089907 +-10.2769651 +1.4578234 +-4.9036689 +-19.9799156 +4.6759419 +5.3439431 +-0.2585511 +-1.1593297 +-0.2548903 +21.2602444 +-13.4273243 +1.1806970 +-12.3865499 +-17.8135395 +19.0670033 +-2.0398674 +2.8067071 +0.2825685 +-2.2015109 +-4.6956863 +-0.8913319 +-7.2411995 +8.5005579 +-5.4320736 +-5.3686233 +0.9875219 +2.3783092 +-4.4846268 +-1.4878360 +-1.6291533 +-18.3948021 +-0.7468705 +2.9201753 +4.5102663 +1.9240127 +3.5578637 +0.0954213 +-1.8031397 +-4.7958064 +-10.5870228 +-1.8555665 +-15.9551725 +2.4713795 +3.3613663 +5.8967600 +-0.9512583 +-5.5710249 +-14.1040764 +0.2281053 +0.6816012 +-5.1312070 +-1.3780462 +8.4528027 +-3.6092520 +-8.8509188 +33.9457817 +0.8633665 +-0.4530842 +-3.6098738 +0.3055818 +-9.2519817 +26.2221031 +10.2925148 +-22.8280010 +-6.2963786 +-7.1268530 +-5.4831152 +0.4477733 +-0.2998229 +-5.7603598 +4.7372303 +-8.0492086 +-10.0431728 +0.8450479 +5.4825063 +-6.3548398 +-4.2218552 +-19.1238556 +-6.4730210 +-0.6629983 +-5.3030090 +11.4843254 +7.9812899 +4.9138546 +-23.9331455 +4.7663126 +8.1005573 +-0.9982589 +3.8914404 +2.3189406 +-5.0411963 +1.0360200 +-19.5449162 +-10.1048326 +-5.8879933 +-0.5549013 +-0.4599101 +0.6923466 +0.0680614 +-1.9242737 +-11.6345787 +-0.1130318 +9.1965981 +-3.9960318 +11.1418076 +1.0286989 +-1.2009286 +-1.7194436 +7.6355333 +3.4677022 +14.9081650 +-0.1482812 +6.7825427 +2.3286364 +9.8088551 +-18.8238163 +4.1448226 +1.3098320 +1.2959008 +3.8409543 +-4.7041302 +-0.5503020 +6.7174916 +0.9537298 +5.1927681 +35.0432014 +-8.0976505 +-0.1902759 +3.0192196 +-1.9675155 +-7.2926879 +-6.5863485 +-9.1729784 +0.4781387 +-0.0344350 +-4.6630821 +2.2124684 +-13.4299765 +20.8379803 +-3.2844701 +0.1926701 +-2.7213550 +5.0295858 +1.6201674 +1.1276660 +-12.0766792 +3.3627098 +-6.5648341 +5.9270401 +-4.4301190 +4.1344309 +-4.4012399 +7.0486798 +4.5584607 +8.2269478 +0.2599764 +-0.3074593 +5.6488633 +-1.0475819 +-0.1449132 +3.7633293 +-0.6830955 +-4.8297114 +4.0773644 +3.4513676 +1.5957432 +-2.1595147 +10.5634089 +0.2509185 +-3.8021357 +2.8875799 +-1.7716562 +10.9245834 +8.7959995 +5.4504080 +-0.8405696 +-0.2888088 +-0.2063725 +-3.7735314 +-0.2997201 +-4.6610570 +8.5262699 +-8.6831961 +3.4417961 +0.2650467 +-0.3297041 +-0.0142450 +0.1967966 +-2.0947597 +-0.1615835 +17.9886074 +-0.7732962 +-0.1410890 +0.3644904 +-4.7465196 +-0.7332075 +14.4779472 +3.3141785 +-1.6870475 +-7.4867501 +0.0779616 +-5.0464883 +2.3741145 +8.8429260 +-0.5148231 +-1.0066737 +5.5845079 +-1.9034632 +1.1387742 +-1.0574087 +2.5464027 +-4.7815452 +-9.0247698 +8.0299053 +0.3949009 +1.2303323 +-5.2556286 +-4.2491498 +-3.8285348 +-4.9269042 +-10.3862829 +-5.1371689 +-3.8753631 +-7.5534539 +-21.0233383 +-24.0822430 +-5.0445409 +4.6027451 +-5.5653434 +-0.2275270 +2.5395865 +0.2073796 +-3.5001628 +9.4896011 +-2.6145644 +2.5409961 +-0.0361430 +4.9645858 +5.4638276 +-8.7972813 +5.4355936 +3.4306698 +6.5479298 +1.4639031 +1.7382945 +-6.7330813 +0.9022986 +4.1196771 +-0.5596498 +1.5810151 +-2.7422302 +-3.0581110 +-3.0348721 +-8.2057514 +-7.0549068 +-32.4079208 +-1.6073216 +1.3151487 +-1.9595007 +-8.0783358 +-0.1192958 +-13.2069826 +13.4921350 +-0.4031460 +-2.0062993 +5.3411965 +-8.7234602 +2.7716682 +0.4406048 +-4.7637234 +10.0119495 +-7.3123603 +0.3268908 +-15.8049564 +-0.8884094 +-1.4213156 +2.3688684 +-3.0114131 +2.7864983 +-8.4386120 +-5.0005250 +0.3732887 +-0.7588388 +-5.9344440 +-12.0698919 +0.1109985 +-8.8167133 +-8.4865112 +-1.2242119 +2.0030286 +6.5282793 +1.6622931 +3.5906911 +-22.4277878 +-0.7832006 +-1.7365189 +-11.9453850 +-7.5978580 +-3.5390308 +-1.3924664 +-0.6198008 +-0.4516056 +-7.9595695 +-8.9439507 +-18.5031433 +-24.8638725 +-1.4983940 +-14.0623598 +-0.0222926 +-1.3550639 +-4.7193866 +32.3400230 +-20.3333206 +-46.4557152 +-4.1385560 +-11.7758598 +16.9494152 +-3.4779429 +5.6517735 +-12.7249336 +-2.6078691 +-8.1137705 +-1.9749982 +3.8896477 +0.7888148 +-2.1158459 +3.9821422 +-2.0952899 +1.7093819 +-1.6638180 +0.7854353 +-0.5320749 +-14.2445488 +-12.2950964 +-2.9423039 +0.8829517 +-12.0040131 +-14.7300329 +1.0763046 +1.3138056 +-9.0470810 +0.3553658 +-2.8590879 +-4.2572637 +1.8095136 +-5.7147260 +0.3172641 +-7.8386254 +-24.9632568 +-9.4767923 +-1.9548304 +-9.6312532 +-6.0521555 +10.5453396 +-16.2222424 +-1.3706685 +-12.2553654 +0.2328802 +6.0167370 +0.3671670 +-0.9936845 +-1.9491322 +6.0968728 +-6.6705437 +-0.2112148 +-1.3332609 +11.8999720 +-11.0811758 +10.2642689 +4.9916487 +14.8029652 +11.7331333 +1.2729447 +3.6562500 +-0.2585005 +6.0446186 +0.1688750 +0.6889142 +0.9469687 +-2.0178103 +-7.0253139 +7.3015676 +-9.2643223 +9.3998613 +-3.9732115 +-0.4585408 +-2.4249027 +-16.9966869 +0.7684955 +-15.9628010 +9.8488569 +-1.5206670 +-0.5473697 +13.0584698 +-15.7631397 +1.7876115 +-1.7540889 +-14.7257671 +6.6112561 +-3.8434951 +1.1298553 +-4.4708571 +-0.3646654 +-3.8731093 +1.3754486 +-4.5658798 +5.6812429 +-1.5813854 +-14.5800095 +-1.5554016 +-0.2757653 +9.9095402 +3.6860840 +1.2397062 +-8.8817568 +-0.9330352 +-2.3140750 +2.7544541 +-0.9926730 +3.3544984 +0.7891501 +4.4675860 +-3.7059228 +-6.8264065 +-13.3841658 +-12.0409679 +-0.3140333 +3.1498008 +0.1020903 +-1.2417812 +-1.4141469 +-25.2215748 +2.2738309 +3.3839512 +-3.8017967 +15.0143661 +6.5506067 +-4.6287189 +-8.4092836 +36.8352280 +-14.2157259 +-4.5459065 +3.7707207 +-10.8245106 +-3.9240623 +-15.6791592 +12.0556479 +-12.4457979 +4.4570055 +-8.3383780 +-3.4888570 +14.0547009 +1.6204534 +-5.1891360 +1.4219788 +0.9613287 +-6.0926366 +0.3368901 +1.9732749 +-6.2939463 +-18.3186550 +10.2685261 +-4.5806451 +-0.0366913 +-14.6828060 +-2.4519711 +2.3485346 +2.6194124 +-17.1567039 +1.7789359 +-9.9989824 +-2.1642418 +3.6648412 +-8.6459494 +-0.1335820 +-12.8243313 +-37.1619110 +-15.5464430 +-6.5826936 +-0.8910564 +-11.5517721 +-12.5286722 +9.8817434 +2.6408119 +-18.6922188 +2.8202803 +11.5074301 +1.0553514 +3.2824535 +8.5278635 +6.5615106 +-2.3750663 +-0.0714870 +2.3190985 +16.9250221 +-0.4263684 +16.4353218 +8.5301580 +22.0051060 +16.7363052 +3.5379806 +2.7849138 +4.8731999 +10.5374823 +-0.0874409 +3.1848662 +-4.5895767 +-19.2898998 +-5.6646585 +12.4726562 +-12.8521976 +-0.4136488 +-4.8977265 +1.8554966 +-5.3998528 +-23.8296604 +2.6294248 +-3.8306997 +0.5760804 +-1.8389848 +-1.7755892 +15.0022001 +-8.6437931 +4.3633204 +-15.4637365 +-20.3886414 +13.7969456 +-6.6171021 +4.1231084 +-3.0499868 +0.0536125 +-4.4588308 +4.3823533 +-7.4060645 +8.7125463 +7.5074534 +-26.0085564 +-0.5574976 +-5.4824829 +-1.1775692 +-17.5633011 +1.4868572 +-17.4942436 +-8.9945431 +1.9352821 +5.2012119 +1.4016788 +2.6486855 +10.3482943 +-4.0939684 +-5.1776867 +-12.0761271 +10.2194462 +-18.5892315 +1.2737526 +3.1441095 +4.3676424 +-1.1335322 +-5.3166871 +-14.5485334 +-4.0330453 +-0.8398695 +-5.3098893 +-8.5736017 +4.9888496 +-4.5028858 +-11.2758484 +72.9678040 +-17.8397427 +-17.6345100 +-13.2018671 +-0.1666824 +10.0507622 +20.1964607 +15.4682579 +-8.6903124 +3.6682127 +1.2223827 +-5.2773561 +-11.7765427 +4.5377932 +-7.7176614 +5.3986921 +-0.0436421 +-2.0874479 +-0.2406507 +5.5802059 +-5.8192582 +-16.2997208 +-7.9395280 +-6.9503331 +-0.2986250 +-15.8747759 +-3.6070502 +7.3325725 +4.7851629 +-26.8768139 +6.3065376 +-33.0421181 +-2.6025913 +5.8142662 +-8.9934397 +-1.1855730 +-11.7617264 +-15.4590969 +-5.8661957 +-30.6701756 +2.0280056 +-15.1138620 +-2.0472758 +8.1573267 +7.9810891 +-19.2169361 +-5.5395966 +9.8988113 +-0.3140407 +-8.6103420 +-0.1752838 +3.1583006 +7.8265047 +-12.3630123 +-0.0878857 +15.8364153 +-0.2803392 +7.6415625 +0.7572536 +-0.1447674 +-11.5753536 +-1.2097435 +-3.6659501 +-2.9521189 +-5.9429398 +-2.5317044 +1.0650491 +-4.2499909 +2.2692461 +2.0886440 +12.8528299 +-8.0834808 +-1.6629212 +0.2010583 +-10.0332928 +-3.7846038 +-29.1725101 +-0.8472115 +1.1053734 +1.7095819 +-2.7590551 +-9.2063780 +-14.5929155 +1.1682028 +-9.1829643 +-2.8913782 +-16.1481037 +48.6875954 +0.1351168 +4.4133959 +-0.1984878 +10.7124338 +-0.8477254 +2.0061755 +-9.4328299 +4.9721265 +5.8578629 +-10.3006086 +-0.1704719 +6.6016603 +-8.3003483 +-1.1787380 +-0.7346512 +-12.8073559 +-1.8488364 +7.1113424 +1.0713007 +17.3548565 +-5.3834238 +1.0528921 +0.3447441 +-3.8604047 +2.3944013 +14.6922665 +-13.9496593 +-8.7716627 +-9.0762796 +2.6616986 +-5.2623572 +-1.2979213 +-5.0919294 +-2.2082307 +-0.2890457 +-3.5290501 +-1.3304788 +-12.5430593 +-5.4137816 +-22.4490929 +19.1508217 +-1.0695844 +-0.6244125 +-0.8790560 +1.6790652 +-5.2474031 +17.8487759 +8.7302952 +-0.4918946 +5.5748601 +-3.2817054 +-2.2013831 +-4.3394923 +8.1189604 +-8.7913876 +-3.4191341 +2.8972876 +-4.8310013 +-5.6396480 +6.7020960 +-7.9009981 +0.0799333 +-2.0383241 +8.4897976 +0.9996163 +-7.4218993 +-7.4509945 +7.6690502 +1.1836998 +-17.2527390 +10.8823128 +13.5088806 +-3.1694059 +6.4674139 +-5.2365561 +-3.8999608 +-6.9068437 +-11.1834869 +-5.6759863 +-3.3261979 +-9.4838257 +-23.5762806 +-26.5386333 +-0.6154067 +5.2519774 +-6.5939364 +-0.8501225 +1.7301991 +0.1101076 +-4.8082919 +9.8574400 +-1.9865320 +2.3984432 +0.0947092 +4.7646289 +5.2092676 +8.9242620 +5.1562743 +4.2072186 +6.8606405 +-1.5665754 +1.7522908 +-6.3719945 +0.5019640 +4.5030227 +-0.5230365 +1.5405564 +-2.2205169 +-5.6507783 +-3.6260588 +-10.7915783 +-7.8451400 +-32.7560692 +-1.8455515 +1.7433357 +-1.8899531 +-9.0146255 +-1.6189462 +-12.8488894 +9.2233925 +0.1356622 +-2.9280465 +4.5327559 +-9.0851946 +2.5907917 +0.2306156 +-5.1893845 +10.8065147 +-8.5401230 +-0.1580323 +-19.4019051 +-1.1530337 +-1.7124935 +1.9621336 +-2.9723055 +3.0045137 +-9.0355482 +-5.1474419 +0.4986447 +-0.1641671 +-3.5698075 +-10.0019560 +-1.1193107 +-10.0254564 +-9.3389997 +-2.6334810 +2.0079815 +6.6645107 +1.2230134 +3.7490232 +-29.2483978 +-0.9184154 +-1.5621980 +-12.0945215 +-8.0216494 +-5.4648004 +-1.4124610 +-1.8344603 +-0.6097388 +-9.2207813 +-9.4801464 +-19.8439140 +-34.0122108 +-1.5903021 +-19.4669971 +-2.4571874 +-1.6210084 +-4.9203815 +31.7775230 +-21.9465637 +-47.9007797 +-4.7600927 +-16.9223785 +17.9288445 +-1.6501839 +5.3424940 +-12.7708664 +-2.1067095 +-11.0146275 +-2.6802671 +6.1639771 +-0.3897023 +-2.4420266 +3.8035698 +-2.1815779 +1.6015196 +-2.2475712 +1.4515662 +-0.6800206 +-14.8386374 +-18.7182045 +-3.9184105 +0.6464332 +-10.5819798 +-14.7261209 +1.8598248 +1.3822300 +-11.0406351 +-0.5809854 +-3.3362501 +-5.2552943 +1.7740945 +-8.7086582 +0.6784422 +-9.7458038 +-25.0352001 +-11.4826384 +-0.2184694 +-6.3994756 +-9.0618963 +-20.6007595 +-2.4754725 +-0.5516359 +-12.8778162 +-1.3055949 +4.7747936 +0.4139374 +-1.1000609 +-1.9018211 +8.0579395 +-7.1825647 +-0.0243644 +-2.8668127 +11.5923500 +-7.6959033 +9.8072023 +6.1900764 +15.3006134 +10.5631561 +-0.0067036 +4.5386825 +1.0549209 +5.9578552 +0.4474848 +1.5409182 +0.9021070 +-8.4091883 +-8.7109709 +-0.5739441 +-10.7108755 +-1.8530698 +-5.3088665 +0.1247103 +-2.7335749 +-19.9970875 +-0.5817682 +-9.4302349 +6.7769361 +-1.0502937 +-1.8014798 +11.2716274 +-14.3330050 +4.6887555 +-3.3691294 +-15.0625687 +11.6248035 +-8.2867870 +0.5971651 +-14.4965334 +-0.3468383 +-4.1801348 +-0.3164192 +-4.3180523 +5.8893209 +-2.5020046 +-15.4870167 +-2.2361491 +2.0840802 +6.1433764 +4.5073233 +-0.6472268 +-9.2360973 +9.4617119 +-4.7232714 +2.6493335 +-0.4962167 +1.2392515 +0.7213097 +-2.4437089 +-4.1545405 +-7.0603056 +-7.5740161 +-12.8462782 +-3.9063358 +3.5433567 +-2.5598245 +-1.5146115 +-4.8831987 +-33.9467850 +-25.4117508 +-11.0948639 +-3.7411473 +-34.8540611 +2.9505415 +-4.4368749 +-8.8382750 +46.4572830 +5.4621501 +-3.9837339 +4.1542668 +-35.7840424 +7.3408079 +-12.1448698 +12.1540575 +-17.0960217 +7.0575905 +-5.7884636 +-4.4482565 +17.4516716 +0.2531343 +-7.1273232 +-0.3759577 +0.5296192 +-8.6525717 +-0.5842651 +2.3882751 +-6.4490132 +-10.5734968 +-8.3970900 +-7.4755030 +-0.6290724 +-32.7483063 +-2.7579205 +2.9751914 +2.6917336 +-19.9649220 +0.6859048 +-9.4960203 +-3.8845630 +3.1147468 +-10.8918362 +-12.2796125 +-10.4415426 +-38.1010933 +-15.6509371 +-6.3961873 +-3.5933084 +-25.3217564 +-6.4985633 +6.4037995 +4.5446520 +-17.3005352 +3.1827729 +10.0788498 +1.5774896 +0.0398218 +7.6628251 +2.1548905 +-6.6134562 +0.3118045 +-2.3933623 +17.4352608 +-1.8470795 +15.6196508 +10.1727638 +21.8297176 +19.2060680 +1.0688392 +-0.9017311 +-5.6006470 +9.9454098 +-1.0132703 +2.6295102 +-4.1606398 +-26.5151005 +-8.9689665 +11.8627014 +-11.4476624 +-9.3481722 +-9.5325317 +2.6670768 +-5.9823527 +-27.4012909 +0.6778134 +-6.5371280 +-0.9698190 +-2.6089418 +0.4417221 +18.0149879 +-12.2116556 +7.0940127 +-1.5976672 +-19.2082405 +17.2031460 +-2.3479741 +1.1150888 +-0.8112048 +-1.2172818 +-5.6951547 +-0.4433390 +-7.4514847 +9.7433243 +4.4637675 +-26.6083355 +-4.2285028 +-1.6734964 +-10.0214701 +-10.8356276 +0.3263282 +-21.2087326 +0.8850421 +-3.1177926 +4.3188605 +7.1783047 +3.8834445 +4.2559791 +6.1195965 +-5.5966454 +-11.9367428 +6.1529102 +-19.5346775 +-4.3706450 +2.7575202 +1.6101081 +1.6719886 +-11.2054319 +-19.2079220 +-11.6619453 +8.8302612 +-6.1395912 +-4.3991590 +2.5270140 +-7.8880763 +-12.6654778 +76.5240860 +-1.9359676 +8.7348442 +-14.7538395 +-9.5634995 +10.6443977 +11.9682932 +21.4525127 +-19.1127167 +1.4085205 +-9.5123510 +-7.1338253 +-8.1607590 +-0.1826968 +-9.5293121 +2.6026807 +3.1798844 +-6.3443422 +2.5009031 +5.6315942 +-6.5448165 +11.3238125 +26.6402073 +-4.2116976 +-1.4640414 +-30.7001991 +-0.9473370 +6.7966328 +4.8049331 +-25.1718979 +6.2078466 +-18.9632664 +-4.9924068 +2.5694695 +-4.6584821 +-1.8383619 +1.3328565 +-14.9309855 +-13.3159351 +-8.7741413 +2.5096369 +-10.3260880 +-2.6138525 +0.7549317 +-1.7926191 +-21.2142124 +-3.7213809 +8.1547146 +-1.1972659 +-4.3074794 +11.0430441 +-9.9594965 +0.6596278 +2.9527953 +2.3727629 +6.1610074 +-1.2113557 +11.1461506 +4.2452188 +9.8525400 +-1.3698105 +9.4935484 +-7.7389717 +7.8460636 +11.5569000 +-0.8564193 +6.3366723 +-12.4472303 +3.0975964 +-1.8437228 +22.2400780 +-15.3290424 +-0.2007650 +3.5381098 +3.7518306 +-7.2224984 +-29.0534630 +-2.4958889 +7.1361971 +0.7838019 +6.6511812 +-1.7151617 +3.9357507 +-7.6230297 +-8.0434256 +8.1869535 +-15.7749548 +-3.8688092 +18.3285923 +-2.4458342 +12.2748098 +-4.9640217 +-12.4656534 +-9.3025827 +-6.5505962 +9.1300592 +20.2298412 +19.9855175 +-3.5479736 +13.3463869 +-4.0312252 +3.6447771 +-3.4239779 +-10.0997801 +2.2590246 +3.4558983 +1.4515604 +6.5395656 +11.4720469 +-0.2842828 +-2.8770282 +-3.3799503 +-7.7616644 +-12.8717308 +-16.4419250 +0.2681424 +-1.1152868 +-11.0447035 +1.1206264 +2.2051127 +-11.0480738 +-0.4467216 +-1.1520280 +-2.6437306 +3.7665460 +-0.7474997 +2.1526532 +-10.2994194 +30.9535923 +5.3360329 +6.3393965 +5.0417557 +5.4590187 +6.2539029 +4.3860431 +20.5684643 +-1.4863185 +10.2149553 +4.9560161 +-1.8691288 +-18.6771145 +7.7627902 +-7.1387296 +12.5497627 +4.9198818 +6.1266508 +-2.0708210 +6.7230315 +2.9705412 +13.6532125 +10.0127840 +-1.3974922 +-1.5340921 +0.2147190 +-11.2438049 +7.4196329 +3.0111964 +-26.0629539 +-3.9574614 +12.9812489 +-1.7706249 +-1.6776993 +-4.1723824 +-1.3375666 +-11.0211782 +-11.9328823 +-6.6680894 +-3.2296209 +-8.5472717 +-26.7506084 +-32.0479202 +-10.0652561 +4.9824414 +-7.5963058 +-1.2059427 +0.1556159 +-1.3785969 +-4.3317480 +10.4913731 +-2.4323738 +2.2708724 +0.3505970 +5.0291862 +4.3067508 +9.6603518 +4.7160506 +5.0304861 +6.4619164 +-3.7351584 +1.9113860 +-5.8857551 +-0.3930147 +4.9140325 +-0.6374667 +1.0571029 +-1.8805091 +-8.9482441 +-3.9343042 +-10.6619759 +-7.6055908 +-29.0281601 +-1.6847817 +2.0520687 +-1.7952288 +-10.6285954 +-3.5529032 +-13.8674278 +23.8767548 +0.4073401 +-3.9020402 +2.7188237 +-10.0363331 +2.1445758 +-0.2565611 +-6.1090255 +10.7722130 +-10.2410488 +-0.1658450 +-10.5420628 +-1.3229918 +-1.9443076 +4.1096740 +-3.1683791 +2.7279100 +-9.7114105 +-4.6439333 +-0.6573099 +0.1549242 +-4.2354298 +-8.6458702 +-2.5323718 +-10.5171652 +-14.3091831 +-4.9922800 +2.1613364 +5.7731414 +0.3991945 +3.7069523 +-40.6218605 +-0.3223614 +-2.0792322 +-10.1044922 +-8.5797577 +-7.5790615 +-1.7036755 +-2.8627696 +-0.5218040 +-10.0462666 +-10.0606499 +-17.9623528 +-26.8413734 +-1.4606651 +-20.9524612 +-2.4915156 +-2.1038218 +-5.8206468 +31.8815346 +-23.6447163 +-49.1884041 +-4.9250836 +-17.0676517 +17.4534836 +2.1508026 +3.2885654 +-18.3537521 +-0.0536136 +-11.2494717 +-3.2069619 +6.4162273 +-0.7481881 +-2.8106542 +3.9337120 +-2.2573743 +1.5751022 +-2.6767631 +1.5508095 +-0.9738411 +-15.8370581 +-13.0400181 +-5.6934471 +1.1432594 +-8.7350378 +-18.3210621 +2.1676824 +0.2757457 +-12.7698727 +-0.8262296 +-3.6717424 +-5.5846868 +1.3808234 +-7.4692225 +-0.1905687 +-16.5344143 +-26.7220802 +-13.5701323 +0.0327927 +4.3380556 +-14.3869896 +-6.9329376 +15.7790184 +0.4674989 +-14.2474556 +-3.3620036 +2.0061011 +-4.0414686 +0.1792582 +-3.4076128 +6.2337470 +-8.9861822 +0.1689502 +-2.3937638 +9.8404951 +0.0748352 +9.0789194 +7.4708052 +15.1810732 +-7.8883405 +-0.3658160 +4.2428770 +1.3797266 +7.1045027 +0.2641219 +-0.5571909 +1.3888595 +-11.7186909 +-8.9556570 +-0.0712963 +-11.1800804 +-12.6354475 +-5.2628880 +0.0254586 +-2.2403867 +-22.4275761 +-1.2484922 +-9.8970480 +-4.5169101 +0.4133958 +-2.9545259 +14.5542679 +-21.4288616 +5.7452779 +-4.3369966 +-16.9942493 +11.2245321 +-18.9762115 +3.4601967 +-2.5003920 +-0.0622095 +-4.6448636 +3.8026531 +-4.6703830 +5.7539167 +-5.6825905 +-14.7581673 +-3.9893990 +3.7548943 +21.3128071 +3.5555799 +-1.5970949 +-10.7688494 +14.4141111 +-8.5606661 +2.6235392 +-2.2231748 +2.8611810 +-2.6584918 +-21.7284184 +-3.1607199 +-6.7952480 +-10.6508884 +-14.3219643 +-8.9413147 +2.9294248 +-5.1588669 +-1.3186579 +-2.8380427 +-34.2716904 +-13.7124777 +-12.9470377 +-3.6194377 +-36.0984039 +2.9181325 +-5.2144814 +-11.0104084 +54.8311310 +-2.4083710 +-5.0570707 +-2.4988630 +-38.6071129 +19.8509464 +-18.7969952 +9.1904917 +-11.5307169 +-2.4239209 +-2.0172846 +-6.1674705 +18.2351646 +-3.6768708 +-7.9757080 +-0.9482224 +0.2521945 +-10.2904119 +1.0433122 +3.1308498 +-6.2179475 +-2.6765747 +-2.5553157 +-9.9946117 +-0.8663876 +-10.1893473 +-4.7763190 +4.4175377 +-0.2914641 +-22.2662525 +2.4471006 +-11.6275673 +-5.4003077 +1.6384555 +-10.4109793 +-6.2931066 +-15.8567324 +-39.5258026 +-16.7286434 +-7.6414838 +-7.7249732 +-38.5119324 +-15.6315012 +2.6364291 +7.6351886 +-21.7887955 +-1.1291575 +6.4491439 +-6.8799710 +0.8088140 +1.9434314 +-2.7440503 +-7.9171720 +1.9002320 +0.3491670 +15.4477072 +-11.1047173 +15.4122791 +12.5983982 +22.2720394 +2.7898297 +0.2457197 +-0.1562454 +3.5599723 +11.9247875 +-0.6625363 +0.7546945 +-5.6836042 +-26.4254894 +-9.9509792 +3.2099276 +-16.3912182 +-7.8066940 +-18.9970169 +1.7249188 +-4.7774100 +-30.6548882 +-1.4713827 +-4.1701555 +2.1393962 +-1.0667970 +-0.1651362 +17.9108028 +-12.9320812 +9.1522379 +-5.8818483 +-22.3996601 +19.9760532 +-1.9462365 +2.0428255 +-5.8337669 +-0.5663469 +-6.5473628 +5.3314719 +-8.2958698 +10.0408134 +3.6449890 +-26.0667629 +-5.8380675 +2.1040404 +5.4197063 +-9.4776783 +-0.7304879 +-20.9578400 +19.1477108 +-8.9201984 +4.6041622 +5.1158357 +6.3427939 +5.5333796 +-7.3741870 +-4.1917772 +-8.4535255 +2.6772604 +-22.7299500 +-11.7757854 +1.6710645 +-3.5529313 +-0.2023373 +-19.5405369 +-22.6517258 +-19.2052097 +9.6403809 +-5.5055394 +7.1436181 +1.6078612 +-7.2866521 +-16.5256653 +90.2915421 +-11.3524914 +15.7774353 +-19.9918556 +-10.5767384 +13.2688742 +5.6179800 +20.2189560 +-15.8243923 +-4.4810653 +-12.6501541 +-8.4452105 +13.8173599 +-3.4218295 +-9.4391813 +2.0066888 +-1.5737045 +-10.0787277 +4.3412976 +6.5161567 +-7.0583930 +5.3381543 +-0.0923621 +-8.8226633 +-1.9257494 +5.4336753 +-4.5658789 +8.4524021 +-3.1052003 +-32.4000244 +0.0851000 +-31.3930798 +-14.8482866 +2.0940962 +-10.8911743 +-9.5899916 +5.0894232 +-20.2132645 +-12.0435801 +-22.5214481 +1.8920984 +-15.8091431 +0.4144119 +3.8787341 +11.1909742 +-10.3362646 +3.6713836 +6.2222023 +-3.3177392 +-1.8553845 +13.2861662 +-11.2135744 +-5.7182999 +4.7172904 +14.9334717 +9.9368963 +-0.3348235 +13.4351015 +4.1720295 +12.5051575 +6.2004924 +2.6052744 +-1.4085364 +2.3162680 +10.2825775 +-4.2780356 +1.3619968 +-7.7983088 +15.8969841 +-0.1202465 +-0.6725057 +-7.8595238 +-0.0357471 +20.4047871 +1.9045483 +-5.6857185 +-24.2758713 +-1.7823884 +-19.0618286 +0.0922700 +-5.8835330 +-1.4890263 +13.7413568 +7.6174846 +-1.1746045 +13.7117443 +-3.9797666 +19.3877316 +10.5476608 +-4.1518984 +-5.1951680 +-0.7992891 +-2.9379890 +-3.0040853 +-7.2979736 +6.5535507 +11.7871933 +2.0341592 +-5.2425590 +6.1338811 +1.1325090 +22.9547081 +0.8062805 +-17.5493793 +11.7929230 +0.4946623 +0.3883734 +21.3254681 +0.2806153 +-4.0349097 +-10.2464781 +-5.1280379 +0.9222228 +5.3812714 +-15.1165924 +-7.4003153 +-0.0058644 +4.0203514 +5.3472953 +0.1349815 +-9.8203535 +1.0232298 +-0.6634337 +-3.1829472 +5.0845203 +-2.7924690 +1.1187152 +-19.9478760 +59.3399200 +2.7188778 +4.7568707 +0.3936524 +0.2665402 +8.1350317 +10.1725998 +22.9223728 +-4.6793733 +10.6793642 +0.6427324 +-5.9636765 +-32.9371872 +11.2390242 +-6.8404102 +6.0293550 +1.7549074 +-5.3099294 +-1.5629433 +5.9096041 +-2.4703946 +17.8774853 +2.1841829 +4.5885768 +-0.6826339 +7.4115949 +-16.0561314 +5.8100915 +2.6417446 +7.8891454 +-1.2016690 +-6.3614364 +-7.2166386 +0.6452942 +-4.6058612 +-3.5874157 +-15.8393307 +-12.2275887 +-8.3888083 +-3.1481643 +-13.8015528 +-27.7494202 +-27.7641621 +-11.5400724 +6.0483074 +-8.8542118 +-1.9580742 +-2.6196108 +-1.9852824 +-5.0268340 +10.4966040 +-3.1175320 +2.2430174 +0.9429888 +5.3118300 +3.6643002 +-13.4682226 +4.0074058 +4.4649024 +4.9270244 +-2.1958818 +1.7779262 +-7.1066546 +6.4735093 +6.1561866 +-0.7502939 +0.6385044 +-2.2673657 +-13.0453405 +-4.5003190 +-10.9827690 +-7.8863902 +-25.7954807 +-3.6784658 +1.3175616 +-1.9936776 +-12.2247458 +-6.1829081 +-13.3897533 +26.8662357 +0.3797298 +-7.3667784 +1.3814763 +-11.3021574 +3.5992436 +-1.2371438 +-7.1693811 +9.6588440 +-11.0024385 +-1.0625179 +-10.0831375 +-1.7237172 +-2.5825160 +4.0165253 +-3.7395737 +2.4579704 +-10.3137150 +-5.4977360 +0.3723883 +0.8749245 +-5.8138719 +-7.0640531 +-3.7861607 +-10.9645634 +-15.1268606 +-5.0257130 +2.3480282 +5.3509927 +1.6980981 +2.7885721 +-57.0207253 +-0.1582448 +-1.7155844 +-9.2926092 +-10.3688946 +-7.5030751 +-3.0076728 +-5.9727535 +-0.5674924 +-11.9955225 +-10.0080814 +-17.2395058 +-16.0134239 +-1.3893063 +-24.0503044 +-5.0414166 +-3.0391622 +-6.7479458 +31.6366959 +-24.8597775 +-50.3529968 +-7.9910264 +-18.0336895 +14.8600864 +5.6219378 +-2.2062893 +-26.8329105 +-2.8688574 +-19.4998646 +-4.7487268 +3.5984075 +0.0643724 +-3.6907902 +4.7957978 +-2.6098785 +0.7192354 +-3.6106293 +2.4546688 +-0.8867878 +-16.4224701 +-14.9322824 +-4.0594540 +1.5277911 +-6.4357924 +-20.1855392 +3.7963541 +-0.1790053 +-12.5593395 +-2.2937014 +-4.8602357 +-7.2483735 +1.1841816 +-4.0993376 +-1.7286794 +-25.1615238 +-27.8497696 +-14.4454250 +1.1404475 +-5.1751771 +-19.0520859 +-19.6436043 +-4.0148301 +1.0880520 +-16.7128773 +-6.1586323 +-3.8736808 +-5.5727081 +0.1018508 +-7.4438338 +6.8647962 +-10.9519644 +0.9878411 +-3.8928566 +8.2801781 +-12.8994827 +6.5527515 +5.4573760 +12.9901800 +-19.8359985 +0.2367977 +4.8135509 +10.0258608 +8.4988956 +0.0262247 +-1.8655579 +1.0245477 +-17.8290997 +-10.7907152 +3.5564964 +-9.8145943 +-14.7601366 +-10.1119776 +-0.9235617 +-1.8464018 +-25.9042568 +-3.1239407 +-4.4961057 +-0.2816052 +0.9218804 +-8.3509474 +3.3363619 +-27.6572418 +7.4666576 +-5.7672362 +-19.9554634 +8.5532951 +-12.7858210 +2.5368857 +1.7450216 +-1.2003441 +-6.4380126 +2.7604721 +-5.2792873 +5.1283069 +-5.4118581 +-15.9021749 +-3.0685277 +5.9457521 +25.5488586 +3.6837151 +-3.3253639 +-11.9294538 +11.7703743 +-10.0415268 +3.2193186 +-2.6462471 +0.9134670 +-4.3218260 +-31.5663681 +-2.6205256 +-8.7377729 +-19.5849438 +-16.1820297 +-13.5166111 +1.4574314 +-11.3889780 +-1.7526586 +-1.8570397 +-6.5097413 +4.0738072 +-20.7498169 +-3.7311587 +-27.0756702 +-1.9075341 +-7.0445576 +-12.7582970 +56.5673676 +-17.8347912 +-7.6901631 +-27.0708866 +-1.8923122 +41.1009750 +-18.0378551 +1.8212022 +4.5844092 +-36.3989677 +-16.0865574 +-7.2216849 +17.0898781 +-0.6383336 +-8.7846889 +-0.0801074 +-0.0211940 +-14.9607544 +-0.5852590 +3.4422410 +-5.1480227 +-1.4509226 +-23.3227463 +-9.2256212 +-1.3763855 +10.2575607 +-5.1394696 +5.3236442 +-0.9818236 +-33.7050552 +-0.2583472 +-16.4912148 +-11.1065617 +1.2779883 +-13.3122654 +-8.9334240 +-26.4187660 +-42.2097054 +-18.6079922 +-7.7432213 +-0.2896338 +-36.1747246 +-13.3198195 +0.2946302 +3.4967556 +-23.1505356 +-3.2529418 +-0.7862349 +-9.2224007 +-3.6619067 +10.0653257 +-11.6281595 +-10.4348640 +1.2605375 +0.1167651 +14.1258898 +0.2667010 +11.6446600 +5.1906548 +18.5532322 +15.3739882 +1.8705752 +-1.2167906 +-0.3014852 +13.5229187 +-0.9473530 +-2.6458044 +-1.5927477 +-16.6033344 +-12.6544132 +-18.0160885 +-18.7896919 +-2.5116560 +-30.0537224 +2.9221468 +-4.9185300 +-37.0059853 +-3.0974700 +-35.1182747 +3.8381479 +1.0721959 +-6.3745179 +14.4052429 +-25.4700222 +9.6231461 +-1.4196453 +-26.3187294 +18.8890839 +3.9688363 +1.0789151 +-14.6376104 +-1.0560647 +-4.9722347 +4.3972144 +-8.6960955 +9.8396664 +3.0347071 +-12.9676495 +-3.1552384 +6.5916786 +26.0377483 +4.7441230 +-6.0580959 +-18.2709827 +-7.1284776 +-11.7196436 +4.0749612 +8.9770689 +2.3440707 +6.6986156 +-10.5957527 +-4.8229933 +-9.2988348 +-4.0920763 +-24.8019543 +-21.2188568 +0.7782596 +-10.7767982 +-0.2748986 +-20.1993465 +-8.5550365 +1.1548806 +-2.4343028 +-5.3240356 +-11.1974211 +1.1138242 +-9.8814478 +-16.0708256 +91.0143280 +-2.0127909 +-1.0077326 +-6.4855146 +0.5931955 +10.3277740 +-2.1274946 +13.5920782 +-16.3585148 +2.2325997 +-16.5211048 +-10.5072126 +7.3396192 +-3.7763331 +-11.5945034 +3.0446923 +-1.9178931 +-14.4328766 +2.2457304 +6.7064643 +-8.1716890 +8.0659781 +-35.0034866 +-10.4753714 +-1.6343353 +8.8793097 +-8.4257889 +9.1782942 +-3.2492642 +-41.6961594 +-2.5648093 +-26.8118954 +-21.4661827 +2.5332406 +3.2734759 +-1.7847055 +4.6882534 +-29.4751282 +-9.1436729 +-4.7031054 +2.1538486 +-5.6160026 +-2.1662321 +-4.2939005 +15.0248938 +-13.5662651 +7.7702918 +5.2846098 +3.7824297 +-1.7221771 +6.9883852 +-11.4263306 +-4.3412089 +-0.1050152 +0.9000125 +9.7033720 +0.2925666 +14.0075903 +5.8386707 +14.8806639 +14.3058453 +0.8465160 +-2.5344462 +-3.6946943 +11.9334145 +0.2365627 +4.8248410 +-15.7450113 +26.3675060 +-0.4722548 +-13.6919909 +-18.7207642 +3.9190407 +-9.3871565 +0.0223278 +-4.4933643 +-30.7994766 +-5.8115420 +-6.3932648 +0.8277091 +0.0225529 +-1.2325436 +-6.8489509 +-7.8070388 +-20.8022594 +20.8286705 +-8.9530182 +9.9369173 +-2.2376390 +-1.4315653 +2.1335003 +-3.6339693 +-8.6948290 +-3.5742021 +-6.6869664 +7.9314318 +8.7091846 +3.0934219 +-4.9001527 +3.7380984 +-4.9082484 +11.4609022 +-4.2386370 +-22.7415714 +-2.0098853 +1.2855603 +7.2586837 +19.8087864 +2.2117205 +-0.5793313 +-3.9907594 +-1.6016437 +-0.8172064 +8.1594458 +-15.4086161 +-0.6627748 +-1.4894165 +1.5906954 +1.9788475 +-7.9575901 +-1.5366663 +-8.6242743 +-0.3614557 +-3.7309077 +1.0789077 +-4.5439267 +-2.2472548 +-10.9308186 +59.6785660 +-0.1760416 +-7.4573841 +-3.6622679 +1.5120335 +5.2931600 +2.8293211 +23.2303982 +-4.9741211 +4.3552527 +3.3739431 +-5.0668626 +-2.8538966 +0.3268299 +-3.9772940 +4.7330217 +8.7520905 +-0.9926345 +3.8616073 +5.1516662 +2.0282643 +3.0426204 +-3.9115717 +-0.5858514 +-1.5999694 +4.5225415 +-12.7125473 +5.1818223 +7.3161077 +-7.5720811 +0.4502659 +-4.4505029 +6.4918680 +-0.5506454 +-4.0285926 +-2.4298544 +-23.7352905 +-13.2134733 +-6.9437003 +-3.0950217 +-30.6214809 +-28.5156403 +-73.9083099 +6.4615626 +4.7377605 +-10.9628363 +-2.1221092 +-8.9017925 +0.2492556 +-3.1971858 +11.2944899 +-2.7079339 +1.0420365 +1.4305084 +4.1198936 +4.5300274 +-12.7977018 +4.1489062 +4.2624974 +5.1754990 +-8.4821386 +1.3528922 +-7.6606312 +6.1484709 +6.3502727 +-0.0916979 +-0.4864352 +-1.4354204 +-14.8522530 +-4.8238955 +-11.3843241 +-9.9373856 +-23.1052780 +-3.7848172 +3.8521349 +-2.8217375 +-14.6164131 +-5.3167348 +-15.6475983 +28.9659538 +0.2007803 +-8.5573721 +6.2128897 +-13.4620886 +2.5454731 +0.3461828 +-7.3380833 +9.9795408 +-12.1699018 +-3.6108272 +-11.8179665 +-1.6553133 +-2.6975822 +4.4087977 +-4.0126643 +2.8097203 +-11.9797268 +-4.7493081 +1.3758557 +1.9919140 +-6.0696654 +-6.4785891 +-5.2033682 +-12.1069756 +-6.3167343 +-5.4447875 +2.1201560 +4.0690632 +0.5611621 +1.1040857 +-59.8837357 +-0.3577107 +-0.0020121 +-8.5385838 +-8.0391083 +-7.2587762 +-2.4526162 +-9.8044586 +-0.3745660 +-15.3638144 +-11.3051777 +-18.5351524 +-3.5731049 +-1.9609778 +-24.1159859 +-5.5002718 +-3.3873336 +-8.0064516 +30.8933334 +-27.4486446 +-52.1981277 +-5.6758318 +-20.0478439 +12.7293119 +5.1659799 +-12.2385406 +-32.6630249 +-5.0108004 +-34.1987839 +-4.9278455 +7.6995535 +-0.0220027 +-5.9251733 +4.1276617 +-3.4395580 +0.2664561 +-8.1446209 +3.8270788 +-1.7735320 +-16.9523563 +-24.9931297 +-2.5194449 +1.7392719 +-5.8733420 +-22.7001743 +5.2092934 +1.1173050 +-8.2867231 +-7.8803191 +-5.4723434 +-9.9072380 +0.4808203 +-3.1662016 +15.4444027 +-36.9293251 +-28.5419693 +-12.0073500 +2.9193456 +-11.4829168 +-19.2362728 +4.7508349 +-12.3169851 +3.2709031 +-24.1469059 +-8.3495827 +-11.1488075 +-2.3665285 +0.2045310 +-10.7137375 +8.5528164 +-14.2354240 +2.5073612 +-3.1442685 +11.0512543 +8.1613646 +4.6294560 +7.0456586 +13.8288040 +16.1332169 +0.0047817 +7.3776889 +2.7525342 +7.8480954 +-0.6052098 +-3.6842501 +3.1929393 +-16.4331207 +-10.1631088 +-2.0016983 +-11.4166212 +0.2759570 +-15.3295736 +-0.0050200 +-2.2531874 +-28.7025032 +-6.8003421 +-11.7610226 +-8.1560993 +0.0678259 +-27.2687454 +14.7918854 +-29.2287388 +6.3191171 +-5.8366427 +-20.2231998 +7.1851554 +1.6146921 +-3.2556009 +-7.8680463 +-1.3576701 +-7.3685369 +4.3791170 +-5.7138634 +4.7717552 +-0.4738614 +-15.1856709 +-5.0411167 +6.6562166 +31.7110081 +3.4465375 +-4.9167399 +-15.1853237 +7.2575049 +-9.8100481 +2.3514113 +-3.0994112 +4.2459960 +-4.4133501 +-4.4208589 +-2.6936128 +-4.4519501 +-17.1693535 +-14.1707287 +-13.5290413 +0.6212156 +-17.0904999 +-2.0648110 +-4.5174422 +3.2487032 +7.9046483 +-4.5254412 +-4.1100798 +-12.3926363 +-0.5364013 +-8.4291878 +-13.7480593 +57.4971962 +-19.3147240 +-11.9878616 +8.9727249 +9.6004171 +32.7971878 +-15.6700153 +-3.4520214 +-10.8826742 +-20.4408188 +-44.5070076 +-6.3134918 +15.8493061 +-4.6959653 +-10.3017721 +-0.4026102 +-1.2671347 +-20.1682129 +-4.1442823 +4.9451108 +-4.5686312 +0.6373243 +-42.6064568 +-5.8273191 +-0.4737103 +29.4340725 +-10.4341984 +6.6232343 +1.6895316 +-18.0474567 +-8.3500652 +-18.7326508 +-8.1387997 +-1.9034026 +-5.5088916 +9.1513586 +-43.3254356 +-42.2250862 +-17.7056885 +-2.4082816 +-2.6984859 +-38.9165993 +-0.8880321 +-13.1499920 +9.9683638 +-31.6551361 +-7.8615470 +-11.6631145 +-6.1333046 +-2.9316831 +4.2566028 +5.0643892 +-15.3843651 +2.4602821 +2.0014987 +15.9953346 +-1.3950193 +10.8531542 +11.6969852 +20.9854965 +33.8460312 +2.9707286 +-1.7330546 +0.6437884 +12.4596996 +-0.4006854 +-3.3129103 +-1.3509246 +-0.6479945 +-11.2949562 +-17.9370937 +-21.5278397 +-2.5713716 +-15.1140289 +6.2960324 +-5.0423045 +-36.5871315 +-8.0194674 +-23.9058781 +-1.0896617 +0.9286672 +-23.7064381 +18.4218521 +-30.3156109 +9.9197350 +2.0318213 +-24.1774216 +16.2469463 +4.7565455 +-6.6077390 +-10.0458279 +-3.2495375 +-9.8409700 +3.6306753 +-9.3594265 +9.1194229 +-5.1410537 +-20.3028793 +-6.4773793 +7.1388226 +3.6248043 +13.6276598 +-9.6887617 +-35.2996140 +9.0686007 +-11.6750727 +4.8457718 +4.8950925 +6.8376374 +-15.5683641 +-4.1739235 +-4.2892542 +-5.7665448 +-7.1809044 +-22.2607632 +-20.5732365 +0.4823436 +-15.4037371 +-2.1511955 +-19.7237282 +-3.4650137 +2.5162296 +-1.7738271 +-5.6853828 +-14.5154915 +-2.7590976 +-8.7284937 +-17.0659504 +90.8234711 +2.1456048 +-12.7438602 +-15.2569141 +11.6653967 +15.5822458 +-12.6902790 +9.4585123 +-12.4268274 +6.8881140 +-28.1724186 +-10.0316935 +0.2699594 +-8.4347067 +-10.8537178 +4.4707670 +-3.9241705 +-17.0987225 +0.9010700 +7.9158893 +-6.9451375 +-4.4743199 +-43.0916176 +-6.8551121 +-1.0673546 +21.4861679 +-9.0383158 +10.1984062 +-0.0980784 +-33.3101234 +-13.1402960 +-22.4394512 +-8.7888269 +-3.5405374 +-7.2776837 +-11.8903055 +-4.7616439 +-29.0749779 +-9.3430939 +-14.6673403 +3.7361083 +-10.2199783 +-1.7496698 +0.2942495 +-21.5629692 +-21.4350719 +1.3972169 +5.0466447 +-9.1890278 +-12.0596209 +17.3901253 +-20.5244865 +-6.5022345 +2.7181842 +8.6504297 +8.2249985 +-0.1442347 +13.3402634 +7.1253514 +11.9099083 +-7.0905223 +2.3991590 +-2.9491072 +-1.9800757 +5.0416865 +-0.8734527 +-3.9075325 +-7.1991968 +18.7404060 +-2.5249009 +-24.9360180 +-20.0330143 +1.0792097 +-17.6296120 +-10.4124985 +-4.4822598 +-14.0186853 +-3.1734982 +-14.1938515 +-1.2120274 +-5.4783778 +7.3849478 +0.8432140 +4.6318569 +3.8692784 +16.0371571 +-10.4998226 +16.6385498 +-16.9200420 +0.0308279 +25.8528595 +-8.4977636 +-17.9558849 +4.3834834 +-10.1717081 +8.7890959 +-6.4090986 +11.2274523 +-10.3593769 +-0.8352119 +-3.0944459 +-2.1264081 +-5.8044205 +-14.7383728 +2.0789762 +0.7394002 +2.0173845 +20.2968349 +4.5863304 +1.1220210 +-12.2974243 +-5.0318031 +-5.8158741 +-4.0044465 +-20.4251213 +-5.6223392 +-4.8311033 +11.3359270 +5.3836403 +-10.0470381 +-6.6574507 +2.4097133 +0.1550920 +-4.8313608 +-4.2113471 +-5.3034682 +-5.8012300 +-16.5749245 +57.1074104 +7.9605060 +-4.2221060 +-6.6869617 +-1.8472024 +6.2100663 +-3.0473468 +20.9343872 +-2.0551479 +-8.2758923 +-6.8037081 +-3.4315121 +0.0786033 +-8.5254250 +4.1534591 +7.4955950 +-6.3803916 +-4.8031654 +0.6246275 +10.7458763 +3.3102520 +-13.7300215 +1.8279343 +0.7222243 +-0.1439760 +0.9335247 +-1.7722338 +10.4458494 +-6.6065702 +2.5622027 +-1.3249007 +5.3303738 +10.0918026 +-0.2072136 +-5.9829230 +-5.5014009 +3.5011895 +-16.3494949 +1.1468166 +-3.4997959 +-35.1052475 +-32.2224426 +-8.5782013 +-18.7471485 +6.9173026 +-12.9016771 +1.4583226 +-4.6347823 +-1.3357552 +-7.3928771 +12.4852266 +-2.5824611 +1.6743741 +-1.7123017 +2.8729200 +-1.1316170 +-32.8791885 +7.2147093 +5.3011136 +3.8403623 +-26.6744747 +1.8306594 +-8.7781315 +-1.1373672 +6.2134433 +-0.7804123 +0.3327763 +-11.0212107 +-15.2445507 +-3.0129893 +5.6688962 +-10.1010361 +-22.4078045 +-3.1244156 +3.9755421 +-2.8073323 +-13.7458744 +-3.6591046 +-14.9803829 +34.7766037 +-0.1009730 +-4.3761430 +3.5584602 +-12.0045748 +-1.1930196 +1.7113391 +-4.8428574 +8.0820141 +-12.5131531 +-6.2188010 +-4.8286281 +-0.9557083 +-0.7356855 +2.9652798 +-4.5764365 +3.0626299 +-13.8161058 +-3.6228347 +1.1853391 +-1.2850424 +-1.2732149 +-4.1886606 +-5.7592516 +-10.4005508 +-0.7399217 +-3.4227538 +1.5465415 +4.5604062 +-3.5740101 +-2.7351620 +-70.1195679 +-0.2410674 +-17.0578289 +3.0382264 +-8.2524996 +-5.9486432 +-2.2558377 +-7.4830780 +0.9297391 +-15.8107662 +-11.0205374 +-23.6829967 +-10.8012724 +-2.3740695 +-17.5447121 +-11.4535799 +-2.7106791 +-7.6259317 +25.8380527 +-24.1519680 +-41.8073921 +-8.4366150 +-23.8498707 +5.8139119 +12.9959860 +17.9740429 +-6.6055951 +-20.4345016 +-73.9835892 +-4.8804846 +12.2474833 +2.8361766 +-8.3269577 +3.8578568 +-8.8495121 +0.8894960 +-2.2225940 +4.3050280 +-1.4787462 +-17.9380436 +-30.4625683 +-5.3724999 +-0.2709025 +-7.3300018 +-17.8391266 +5.9700661 +-2.6361737 +-19.2834606 +-9.5872421 +-1.3030608 +-11.7911167 +0.8245789 +-1.3853042 +-2.8106747 +-5.7041597 +-16.0563145 +0.4800909 +-6.3364353 +-12.7894878 +-49.9141121 +1.7129703 +-24.7739601 +4.2417345 +-18.4895077 +1.6583842 +2.6594567 +-5.6092806 +3.8871768 +2.4257658 +-1.9837979 +2.5807736 +-3.0508127 +4.4224062 +1.6293706 +2.0512400 +-6.6382027 +3.8126323 +8.2662697 +38.6273460 +2.2448869 +-7.2879300 +13.7155027 +6.7474532 +-0.6561958 +1.0457463 +-34.3575516 +-2.6951482 +0.0579633 +-32.5509377 +-10.4693165 +-24.8411007 +-2.1286702 +2.3782396 +0.2280978 +-11.7173891 +-5.6063128 +-11.3909454 +-3.4597421 +-0.1455634 +-2.7238910 +3.9732668 +-12.2954063 +0.6440322 +2.1154239 +-4.1276350 +13.0958700 +-8.0185909 +4.0772710 +-28.4900513 +-4.0847650 +-3.7143278 +-0.1724140 +-3.6012936 +3.4982293 +-2.0094099 +-0.8833923 +0.5742486 +0.1510812 +17.6641636 +-8.7392988 +-4.4467487 +-14.0591669 +25.8221607 +-2.2800143 +0.6320492 +9.7727613 +4.7474422 +-6.5440192 +27.0327168 +-1.2129345 +-11.6115494 +-25.4886189 +-10.1374893 +-11.5793819 +-3.0500007 +-2.4438307 +3.1381972 +-12.6103134 +-5.4001822 +-5.3959837 +3.3486326 +-1.7877506 +-18.9458160 +-3.3992240 +-0.1974697 +-5.9494224 +33.4811096 +-12.4278545 +-15.4342146 +-11.7223434 +-3.8136005 +-2.1766241 +10.3035393 +7.3458557 +5.6441197 +-21.4970512 +6.9881611 +-4.3499002 +-6.4633465 +4.4441452 +-5.6553540 +4.0684319 +-15.6255369 +0.1294236 +-4.0980339 +3.3253098 +-0.6188824 +-11.4121389 +7.8312125 +2.5193255 +0.0271249 +-7.0406547 +-18.2496414 +4.2666268 +-4.1179338 +-15.7046680 +0.7598581 +-1.0544527 +-11.3635807 +2.8012793 +-1.3932648 +1.2989931 +-16.2830791 +-11.3807764 +-2.3329039 +-3.5977309 +1.5264931 +6.4852166 +7.4166760 +-0.8235925 +3.4147668 +-11.2196255 +-2.3405764 +-1.0346801 +0.1218031 +5.1287689 +8.6611605 +-0.4777459 +4.9434414 +2.0089829 +4.9139218 +5.2645001 +0.0446163 +-2.4196813 +-13.9749584 +5.7174096 +11.4678965 +-0.3629616 +-20.7337551 +8.9042873 +6.3924723 +1.0728986 +-2.4972668 +0.9441779 +11.7249632 +1.9925821 +-16.5043869 +-13.2398729 +7.5746722 +7.8403649 +3.7533205 +-2.0095594 +-8.5387344 +1.1150744 +-7.2003365 +1.5313252 +-5.9522429 +-3.1502581 +4.8968925 +-6.1654072 +-2.9851608 +-2.3949833 +-8.6643400 +11.6837730 +-11.5599003 +0.7816480 +-7.4337492 +-3.0194438 +-1.8795257 +4.9748397 +-3.2511818 +3.8066916 +10.8518009 +-9.3113842 +-4.6412144 +3.6539776 +-0.9726918 +-4.7778826 +-15.2169914 +-1.8877307 +4.0465627 +0.7957736 +3.4353163 +-10.0260124 +5.3022079 +-0.5079429 +6.2801971 +-2.3193169 +-6.2520733 +24.9328117 +-9.0916653 +4.1024699 +-2.6701865 +-0.0462918 +3.4769907 +-15.8704557 +-1.2611336 +1.1079971 +27.8603134 +-0.9393364 +-30.3115387 +-2.1545773 +-1.3821206 +-3.5789866 +32.1053963 +4.6452289 +-3.4747248 +2.8026836 +13.8625393 +-1.6988592 +12.0771866 +4.5931377 +-7.6411567 +-8.9323301 +9.6317482 +-7.5786767 +-17.0456905 +4.9074831 +2.7446446 +4.9229980 +-21.9126434 +3.6451991 +-4.7445860 +4.6047554 +1.2864591 +-1.2659433 +-17.9332542 +4.4731059 +3.2615404 +0.4502629 +-2.8253255 +6.4237099 +0.2882391 +-2.8695731 +-2.7009737 +-3.8855779 +-20.3477268 +-4.2395840 +-7.1745372 +6.4992380 +-8.0047522 +-10.9526644 +4.2282200 +-13.2853317 +0.8928115 +-0.3083803 +1.0605142 +-0.7260108 +-3.5804458 +-27.6076374 +-9.3614388 +-6.0938511 +-5.8774805 +8.8884907 +0.5127000 +12.4137087 +13.2997723 +-6.9211607 +21.7588825 +18.6043282 +-0.5455933 +7.3501801 +-4.3835049 +10.2228098 +-30.6904469 +11.4483147 +-4.9879808 +2.9501493 +13.2245693 +-6.7133322 +-7.7038560 +0.7439497 +5.9012756 +-0.6960260 +10.0331917 +-2.3401508 +4.4508386 +-3.1031122 +5.2797952 +-6.6145697 +-2.4253011 +1.6651064 +-17.2118149 +0.0942493 +18.0449791 +-2.2013552 +4.2397361 +-9.0638494 +-9.3456373 +-3.1834800 +0.0749637 +-0.2493083 +-1.5664387 +-4.0563936 +2.3707745 +-7.6604519 +18.6890278 +-6.1865950 +-3.2758517 +3.2963908 +-4.3885694 +-1.2729867 +-4.0246692 +6.1264496 +1.2545762 +0.0442096 +-5.0798144 +-10.4323149 +-0.2239759 +2.3364151 +-4.7259250 +2.3519688 +12.8640375 +-1.6998489 +-5.0370502 +3.0408483 +-4.1483712 +-1.0733259 +-11.8177052 +-0.4834734 +-7.8687644 +-22.6314335 +2.9680321 +-2.2214880 +-6.7970252 +-8.9757280 +5.5854974 +-4.3694730 +-2.0340779 +-19.2120514 +-9.9427261 +-4.0333390 +35.7575378 +3.5507963 +-0.6906830 +-4.5590544 +4.9079585 +16.8813038 +-1.2888647 +1.0616839 +-3.8512833 +-0.2310810 +0.6646080 +-9.4690723 +-5.9445810 +19.3908691 +-29.9647579 +5.4135380 +3.8826315 +-8.3652124 +-3.8568647 +1.6086199 +2.6338289 +-11.3372011 +-2.4064445 +2.9717035 +-7.1910219 +-12.0930939 +9.2787123 +4.5180345 +-8.3647089 +0.1220392 +-7.8264489 +-10.9892788 +0.1869008 +-13.9968138 +-5.0854297 +-38.2834358 +33.3102455 +10.4380827 +-6.5738268 +-19.4449539 +-12.7706432 +39.6475182 +0.1386867 +34.3363380 +-38.0669441 +10.9664726 +15.3119459 +-32.2088928 +-2.4935744 +-10.4503069 +-41.2179909 +-1.8857286 +-2.8418009 +-33.7632484 +-25.1326065 +21.8806496 +-26.0955219 +7.5872130 +-69.1778564 +84.9811630 +35.7988052 +6.0767255 +2.1384094 +-33.9954681 +-17.2724915 +-6.7820172 +-8.0012417 +16.0184803 +17.2307682 +-13.4975233 +22.0268154 +-6.7047415 +-51.2815208 +23.2672596 +-64.0117569 +-10.5016556 +-148.5399933 +13.2730370 +4.9548526 +7.9691525 +-6.1019740 +17.5806370 +92.0078278 +-71.7463913 +33.4957085 +16.7634411 +-2.4450648 +36.4738426 +44.3122902 +-12.6107960 +5.2810435 +-63.9936409 +-48.5586395 +-22.5668774 +-46.2438545 +4.6456079 +-3.0439878 +9.2654247 +4.0286913 +-4.4121351 +78.6725616 +2.5122607 +27.3006039 +-14.5525370 +23.9665699 +-3.5608644 +-67.2957153 +1.8136507 +-58.9943581 +0.9924991 +11.3357763 +-16.8148117 +-30.8817902 +24.1498547 +-4.7510986 +4.2087698 +10.9014502 +20.3111649 +-7.0550179 +19.1285152 +5.6381545 +-5.2498531 +-1.5337849 +-176.4096680 +11.6512136 +-3.8008440 +-3.9593620 +21.2195320 +295.5421143 +15.6592827 +26.3392429 +0.3337957 +-2.9665668 +29.8767662 +23.5853958 +-26.5531082 +15.2104120 +5.8038521 +-20.7718048 +5.7969360 +47.2841225 +-6.5760317 +11.6977205 +-27.4733391 +-27.9106312 +23.6327724 +5.3692379 +-31.5244541 +-47.8581390 +14.8215265 +5.9804311 +-13.8115730 +-7.1175694 +-9.9911308 +8.8027229 +-12.5514050 +18.0941277 +5.0474334 +-12.8704786 +12.3711519 +-12.6624222 +5.2268143 +-7.0738463 +45.7744141 +-4.6002717 +16.3228931 +-10.1702404 +-5.0292020 +-20.0502338 +37.7987823 +0.1818764 +42.7431679 +-29.2917595 +-0.2400663 +1.1593390 +-48.6739197 +16.9415874 +-8.7374964 +-23.9672489 +1.6416849 +-4.2073526 +-14.3189573 +21.0241432 +10.2516537 +-28.4178734 +4.2385440 +34.6959076 +38.9433060 +18.7776985 +1.5007920 +-0.8510134 +-27.7751579 +-11.8427105 +-10.3745441 +-9.5910044 +13.0738049 +11.4105434 +-5.7775178 +12.9671907 +-9.3278809 +323.2008667 +12.8589602 +35.6036415 +-2.4245596 +-9.3940144 +8.6331911 +1.7635094 +36.9959412 +-6.2272787 +6.0375509 +82.9110489 +-18.1996326 +34.5712318 +8.4194269 +1.9179982 +39.2890244 +32.2377052 +-18.2176704 +-0.7484243 +14.0019999 +-39.4205933 +-34.1138954 +18.7667675 +3.2738538 +-4.0709352 +5.7681170 +-1.5727258 +-8.4472332 +72.3351212 +12.1481953 +21.0293388 +12.4928780 +22.3972073 +-0.2455491 +54.7582436 +4.2574887 +-11.3092966 +-4.4602628 +9.4038353 +-20.2028160 +-23.0025215 +23.0784454 +-24.7505417 +5.9869933 +-10.2409983 +61.2927666 +-7.2849603 +29.2753124 +2.8663850 +-10.0450668 +218.6518250 +-13.0628424 +14.0040007 +-1.1254339 +-4.4805179 +17.3860359 +7.8653593 +14.5243950 +28.4279060 +-3.4575036 +-4.3582206 +27.3170815 +21.9718075 +-24.7745972 +14.0293846 +-1.2304870 +-36.2012291 +5.0305800 +44.6710396 +-32.3811302 +10.9827232 +-45.4291687 +16.6474400 +15.6335430 +8.4993925 +-15.7687025 +-15.2652664 +15.5638523 +1.9874961 +-10.8186321 +9.3290462 +-11.2111206 +13.2269363 +-16.5840530 +-16.7140179 +3.0489142 +-21.6229534 +3.6807072 +-114.8222198 +2.3641429 +-9.5027113 +0.8853963 +74.1149750 +30.8119297 +-14.5213747 +48.7252350 +-30.4495544 +32.7592850 +-20.0913258 +-99.4021835 +40.0865822 +-4.2923408 +-5.3799367 +-5.4378419 +-5.7062435 +-34.8134995 +11.3665447 +15.6958380 +-4.1054025 +-12.9082098 +-0.1617694 +15.9706516 +222.7427979 +-104.8368454 +-4.3897877 +1.7060765 +26.4531250 +-3.1616285 +-2.5772669 +3.6811793 +-15.4972963 +-15.4477329 +-9.6104193 +7.4143906 +5.4178610 +-19.4830742 +0.5680999 +-27.8967323 +-26.4477291 +7.9954343 +-5.3354082 +-4.8723593 +-5.3351297 +1.2681395 +-39.2599106 +125.2304840 +-2.2471304 +-35.8696136 +50.5005684 +-19.4513302 +16.8685265 +4.7314734 +17.2620487 +-126.6430206 +21.7667809 +-7.8519325 +-4.8257713 +-7.3048272 +-1.5728906 +-66.4249420 +12.9013281 +-0.5172949 +-12.6199226 +-8.1424036 +-4.9286828 +-17.7390499 +9.5440540 +29.2562733 +23.3566418 +16.5762959 +32.0991402 +-4.2025032 +-81.7889557 +8.6065207 +11.6647100 +-48.5227737 +8.7738562 +-6.4768949 +-42.8063850 +40.1500816 +-14.4972324 +2.9337623 +-13.5564013 +59.4399910 +1.0831345 +29.0267677 +10.0871773 +-2.7120938 +13.9226589 +-7.8844156 +8.0997086 +-1.9970502 +22.9555130 +15.9574347 +98.9725266 +-20.0378113 +28.2190495 +-15.1853590 +8.9041214 +40.6979027 +34.0322342 +0.5005791 +17.7469330 +-1.4486134 +-87.3623962 +8.3677645 +44.8021584 +-1.9116448 +1.8266236 +-4.3171520 +-7.7614918 +6.5771489 +12.9732523 +8.0185328 +6.7784176 +18.9708157 +8.1109285 +-12.8330669 +6.3845716 +-11.2607889 +10.6682129 +-13.9684982 +-20.6188927 +15.7551537 +-10.5128002 +-8.5018196 +3.1479509 +-3.0011766 +-15.4302549 +13.0418873 +-63.9903145 +3.2983556 +0.9316877 +-15.9634428 +-25.0022888 +59.7969742 +-43.9691505 +-54.6446114 +6.1209865 +-12.3766909 +3.9516618 +13.0903530 +38.1270142 +-43.8406029 +-24.9577751 +-1.9998277 +-7.0920181 +-2.0756774 +-3.0356314 +-12.8347158 +-28.0686283 +-3.1866553 +2.8622806 +-17.7346706 +20.9854622 +1.0544660 +5.2816763 +-59.4266090 +-5.4904237 +5.6327214 +3.4350998 +21.2481403 +-12.5780592 +-39.5600624 +-13.6674109 +28.3892899 +-9.1649771 +17.3182545 +-7.4128437 +-0.4341737 +15.1095734 +8.0011158 +-22.7771378 +-31.9381638 +2.0383275 +1.7292418 +6.5189018 +-25.0329533 +9.7344255 +21.7028313 +-8.4856501 +-9.1481686 +22.9547405 +-99.5182190 +35.8464584 +-40.4049873 +-28.3012257 +-12.8975086 +-4.3089519 +3.0254743 +-8.3586426 +-7.1626129 +5.3893766 +4.6653905 +18.3773880 +17.0927811 +1.0902654 +0.2349428 +-105.3776855 +7.8969197 +0.4676852 +-2.2714720 +4.6000490 +-4.5509343 +-8.6320305 +-9.7093420 +20.5165691 +-27.1889801 +5.9105334 +16.0030727 +11.4241590 +12.3509893 +-3.7793217 +-155.7919312 +-92.7350311 +-15.9975958 +-11.2743301 +0.2510412 +11.1533899 +-7.3544531 +-20.3477230 +9.1974459 +32.3838425 +-31.8056011 +-12.4521990 +-2.1792810 +-7.4094844 +10.4822874 +-81.0410233 +-267.3204346 +-116.6632309 +62.4506760 +28.1051903 +-77.3336563 +-24.8536663 +-48.8523216 +-10.6441517 +4.1771250 +-14.2682304 +25.3124180 +-27.7531319 +-0.1960314 +-18.6503716 +-16.0406895 +-8.6916895 +-34.9386635 +6.2733617 +-58.2713470 +0.5176886 +-4.2014360 +-10.9746408 +-4.5088782 +-39.9804573 +0.7667883 +31.9453850 +9.1787138 +7.6470866 +-32.5009003 +-61.1598511 +5.8056517 +37.1211395 +8.2032738 +41.4554329 +20.6532555 +7.2228537 +-105.1570969 +9.8022461 +19.6413212 +-9.2577305 +-5.0992250 +-40.7317505 +8.6760054 +4.8191299 +-10.7751446 +0.2296153 +5.8257890 +8.3476229 +-1.6001545 +-83.0443954 +7.7877049 +15.6776876 +27.2308216 +-62.9686928 +7.8795314 +56.6619797 +-10.8152418 +0.2790252 +-5.3153353 +7.8610268 +9.4359655 +-0.5686997 +-6.1292381 +-93.7975311 +1.2856337 +-32.8013916 +-15.0262756 +7.8709645 +7.2878389 +12.0591068 +18.2769527 +23.2598362 +-93.9929123 +2.7371676 +18.8919983 +35.0301704 +9.0195723 +32.6455956 +-2.6357768 +10.0947018 +2.5733657 +42.4895248 +60.4648743 +-32.4528313 +8.8274050 +8.8635368 +-2.8164260 +4.7957950 +4.2993393 +13.1786785 +19.5798779 +5.1781960 +2.2924178 +15.9952393 +-25.1500816 +10.5269346 +11.3271780 +-51.8324966 +-3.1225183 +0.0499676 +-1.2907215 +-7.9991241 +2.8486996 +32.8387184 +-4.5878572 +7.5917053 +-12.0625849 +8.1635733 +5.1573162 +9.6467361 +21.2998505 +2.4654808 +10.3946648 +28.9050922 +-30.6698914 +-37.5653839 +-0.5583532 +114.5564957 +12.5384912 +14.2793789 +10.1595354 +45.5221481 +25.5256271 +72.4069748 +9.3725672 +11.5090446 +55.6967697 +-29.6921730 +-78.5375366 +-11.7016478 +-2.7501502 +34.0650482 +0.6522822 +16.6453438 +32.1497421 +3.6476955 +16.6332378 +11.6168995 +-7.9975295 +16.5106945 +9.2186327 +9.8048792 +21.0811176 +31.5340576 +50.7656097 +-14.0871706 +35.1610031 +43.8555298 +16.3536758 +-44.6313667 +5.5247974 +54.4918556 +10.3384876 +1.4930344 +1.8449929 +-2.0983825 +-34.1694145 +-2.4881604 +6.8087559 +-8.9607544 +-0.4718490 +-23.0587425 +3.9858863 +-49.9020500 +-31.9957924 +5.9341483 +6.2884207 +-10.9977770 +4.0955172 +4.7423034 +-11.4309635 +-9.6723833 +-26.9311123 +9.9213495 +0.5016741 +17.4888382 +2.8785539 +36.6764755 +-0.5907627 +11.1366596 +6.2877965 +-17.8091125 +3.7152524 +-26.8547592 +7.5824795 +8.3870764 +6.0818419 +7.5002184 +0.7235165 +10.8029165 +-3.6548104 +-15.9771032 +-1.0085516 +-89.7578125 +2.6745405 +1.8245770 +-4.1266851 +4.7676835 +2.1933596 +-22.8839855 +-155.4418945 +0.7774320 +8.2083101 +16.6474476 +-10.3740549 +23.2384090 +18.4468307 +4.6577811 +5.4212942 +-9.7527428 +2.9422512 +-12.6380272 +-14.4497051 +-9.4238882 +-1.3143158 +1.3607521 +0.6837834 +12.5495777 +5.9205427 +0.1601630 +-3.8383367 +7.9984775 +-93.2426529 +8.9934959 +-6.3340969 +-44.3058624 +5.0794792 +-0.0081636 +6.2129951 +6.9115515 +-0.7978799 +-20.1061134 +-1.6424038 +5.8757224 +-18.8297062 +1.7455554 +4.7016010 +3.2336988 +2.3320191 +7.0277147 +-5.6023846 +12.6592960 +-15.7462463 +-85.1328354 +-1.2225906 +-16.1881351 +-7.7884684 +3.0680728 +-5.0965271 +70.8418732 +9.2636490 +-123.2950439 +-3.1869128 +-17.2998981 +10.9989986 +-33.4600563 +-2.5699146 +8.7318239 +-15.9935112 +-0.2119560 +-4.8993249 +54.5587349 +-1.3655356 +-3.6895533 +12.0859652 +-2.0150931 +-2.3398154 +-3.6786098 +2.1465480 +7.8924637 +-4.3951387 +-3.1371439 +-5.2273269 +2.2995915 +8.2893286 +-4.5351291 +2.3960290 +5.3232179 +4.6702275 +2.7594998 +9.1246643 +-0.0300820 +-0.8269614 +1.9155107 +-12.7490282 +3.6325631 +4.0772481 +-4.4914832 +1.4611362 +11.0592632 +4.9840488 +6.1901507 +-33.7321625 +5.5726547 +1.6747432 +-8.8857565 +2.2232883 +-5.0185332 +-5.9074020 +-10.8434267 +-5.9111056 +-4.4854178 +2.0925705 +1.5339396 +2.8097386 +-36.4040108 +-0.0430061 +4.6351485 +3.4783943 +13.1092920 +-0.1165453 +0.6304774 +-1.0032132 +0.0445764 +3.0729949 +-0.5119505 +0.7113582 +2.7246816 +-4.1219192 +-11.5161400 +7.0870934 +-28.1441689 +-9.3704739 +2.7727137 +-0.7274240 +-0.7351887 +-3.7755792 +6.0200791 +-65.8318558 +-0.2913984 +5.2300448 +8.5973444 +-4.2715955 +13.6748199 +2.9186435 +0.2810794 +-0.0382639 +15.7102537 +0.2126668 +-6.7539763 +-3.8003323 +-3.8752289 +-0.2885161 +0.7377138 +0.0136031 +13.1981478 +1.4062048 +-3.7769113 +0.6165277 +63.9905205 +-28.9452209 +8.1541662 +-3.7462676 +-26.9060879 +2.0483897 +2.0760307 +-1.6730335 +-2.0823140 +-3.3726935 +10.4212599 +0.5445722 +0.8025604 +-12.7659054 +3.1714909 +-1.6830776 +2.4834688 +0.2048591 +0.1900765 +10.0486469 +14.1696787 +5.5305891 +-43.1584053 +-1.1633421 +10.9866352 +2.2987337 +-0.2028276 +-3.2799778 +34.3998604 +16.2683849 +-18.3335705 +13.6884298 +18.4699631 +79.4920349 +-30.4566936 +1.5413983 +8.1240568 +10.2612801 +28.5102158 +-2.4751852 +22.3684273 +-4.3559389 +-1.0792304 +1.1076077 +-0.3236394 +-15.4347878 +-2.8248613 +-1.8494471 +4.0206971 +9.5428333 +-4.8119283 +-3.6106548 +-1.5155559 +28.0075626 +8.4153471 +-1.9834890 +-4.0380206 +0.8907322 +-1.4426712 +-6.6410918 +7.8655429 +-4.5893359 +0.0134167 +-0.8959290 +-67.2607651 +4.8970876 +2.0946271 +0.0309039 +-1.5573810 +-11.9318981 +-5.3897266 +-6.7743425 +-6.1224298 +-1.3198781 +-1.1553721 +-10.2216463 +-21.8813114 +6.4752069 +5.3988299 +1.6663450 +-1.2572070 +-32.1116257 +-0.5291093 +-16.9763699 +1.6962947 +-6.3720384 +-0.0405084 +0.7437638 +3.8025372 +-0.1344487 +-2.4812174 +-29.0464706 +4.6653819 +-1.1067431 +1.2744286 +4.5760231 +-7.5000787 +5.5316572 +-9.3634377 +-6.2153049 +-1.1789552 +-0.5025470 +-8.9716587 +-6.9957776 +-5.6928287 +-0.5151709 +-2.9456770 +-11.8919926 +0.9394296 +-5.6466231 +2.8816116 +-26.1439571 +23.5700684 +-2.4999516 +-0.2813654 +-28.5066166 +-4.9350815 +-17.3269215 +-14.7741356 +-2.6420059 +-1.8560361 +-1.9800706 +-1.9745497 +-1.9282212 +-3.1074128 +0.2961924 +-2.2556088 +0.8545153 +0.0180784 +2.6379848 +-8.1976299 +-5.8662748 +13.5089941 +-22.2934208 +-3.6121447 +0.8894984 +24.4980812 +-2.7034564 +-9.4022417 +0.2716219 +-9.0460415 +3.9671149 +-9.5230684 +-18.8871574 +-5.7725477 +-4.3581533 +-11.4694748 +3.0630763 +-6.1591263 +5.7565594 +2.5533650 +1.0458579 +7.3588090 +3.0789587 +0.5837457 +-1.7060792 +-2.3532009 +2.2347405 +1.2502444 +-4.3983617 +4.3779616 +-74.3191376 +3.3116524 +-85.2908401 +-9.9735165 +-2.3325336 +0.0693435 +-7.5326476 +11.4223948 +-53.7785492 +6.7744546 +-1.0863550 +0.3703360 +-0.6240242 +-5.0017023 +0.8874342 +-9.4595699 +-2.5158672 +11.5234261 +-3.9396465 +0.1268164 +-0.2108436 +-1.3474083 +-0.6140375 +-21.9503536 +-2.0212584 +-16.1352596 +-2.5483756 +-7.5735765 +-0.4253332 +3.1809759 +-2.4731970 +-7.5733190 +7.0599537 +-5.7262416 +3.7201312 +-1.2398401 +3.4789107 +-0.6946096 +0.7831615 +3.5484407 +-5.8056402 +2.3796659 +-1.4482158 +12.9930315 +2.2767506 +6.3658538 +-2.4749072 +1.9770039 +7.7869368 +3.0313344 +3.7339683 +3.9177127 +3.5296433 +2.9132757 +6.5223308 +-5.9133286 +1.3226976 +-2.2272329 +3.2282441 +-0.6415305 +0.3366868 +2.8187723 +-3.6936402 +3.0125849 +-18.9779415 +-1.8037028 +-1.1144168 +-1.6022788 +-0.6544490 +1.2448560 +2.0039728 +1.7850426 +-2.1894825 +-0.1537921 +15.9829330 +-0.2488560 +3.8345461 +-11.8640890 +12.1433420 +5.5460811 +2.9546928 +0.8553848 +3.6509891 +4.6124487 +-9.2733583 +5.6292086 +8.7135048 +8.4550505 +2.4472842 +2.6661103 +-0.5277188 +1.1340253 +6.7323270 +3.6971166 +-0.9545467 +2.1945972 +-3.2457185 +4.4509249 +9.1484938 +-0.7194127 +5.0484977 +3.8761933 +3.1929872 +-63.9970207 +-3.2432246 +1.2110385 +1.7031949 +4.8529177 +1.6822275 +1.9613889 +5.5332608 +0.0380093 +-8.1965742 +5.3184390 +-0.3114704 +4.0411954 +4.5202627 +-4.2051215 +-0.1181554 +-8.8692970 +-1.0753978 +4.8472204 +0.2088218 +3.1093683 +-1.4418123 +-0.9655813 +-5.0861278 +0.4214109 +21.3950405 +3.9412441 +6.2972245 +-4.6175237 +-3.2678416 +-0.6360323 +8.8703327 +-17.3321362 +26.8590317 +10.3846884 +3.6256077 +-1.1951963 +-1.3360389 +9.6820097 +-0.1475689 +-0.6572056 +4.7565460 +-33.5686569 +-7.7481585 +0.5083894 +-1.3851275 +10.5005522 +0.8034799 +15.9904594 +-0.2039361 +-11.8095493 +3.5427835 +-2.5657532 +-0.2076825 +-1.8162730 +4.3848062 +27.0854435 +2.2082922 +4.6943378 +-3.4250276 +15.7766571 +-3.3268077 +22.5537243 +6.2068591 +-1.6396477 +-9.4676676 +-3.6396286 +0.9331568 +2.9025397 +-1.4363421 +-7.8112726 +-0.9641528 +-4.9278560 +-16.3182907 +-1.0900607 +2.8468819 +-9.7226362 +-3.6464171 +2.4758401 +-7.5130134 +-5.7366476 +-1.3102349 +-1.0935047 +-7.1678090 +-0.9447272 +-1.1877240 +-2.1308782 +-0.4468261 +-3.4566071 +9.8873386 +8.6717501 +-0.6189458 +-1.5562871 +-4.0079174 +-0.9398564 +0.2255063 +-5.3280807 +-1.9266430 +2.1521986 +-7.9753242 +-1.2824498 +-3.2869864 +13.2609873 +-16.6304817 +2.7066138 +0.9246549 +-3.7022729 +11.2952404 +-4.8892384 +-21.1439362 +-8.5135984 +0.8409289 +-1.1792706 +-0.1600842 +-3.0860388 +-1.0918471 +-0.6017911 +4.4587717 +1.3137689 +1.5981693 +18.6850719 +0.6846847 +-6.4048886 +-6.2962866 +5.6705241 +0.1586164 +0.3310485 +2.2973292 +-10.0852385 +-2.7350559 +-10.4651718 +1.5126641 +4.7369895 +6.3822308 +-0.2762310 +-3.6378233 +-1.2337379 +-11.6620760 +-0.7879437 +-2.1121802 +3.7801225 +13.0476713 +0.7064751 +-0.1865464 +-0.0099251 +-9.5003958 +-5.7990847 +-2.8509808 +7.0726762 +2.1231771 +5.0924625 +-3.4574313 +9.0320492 +1.7901144 +-6.7606649 +14.1487131 +-3.3567348 +3.4262090 +18.5096550 +-27.3245602 +-5.0040030 +40.3774567 +8.9631996 +-1.0416433 +-4.0248208 +-1.6542320 +-18.5522137 +-3.1759114 +1.6403857 +-6.2599330 +-19.6631126 +22.1772289 +0.7438778 +-0.9155737 +6.7924733 +-4.4049020 +-6.9346671 +4.7220249 +-20.2945271 +-4.0685306 +-2.2102277 +-1.9919970 +2.8317878 +-14.2909279 +-8.1526270 +-8.2424965 +-14.1308374 +-18.7303181 +6.8092237 +-28.3294888 +0.3034634 +-58.3791695 +-0.8316773 +-9.2019920 +-13.0973597 +8.1685829 +0.4782243 +-31.9915981 +-16.7925491 +-2.8796256 +2.7203767 +-3.0218687 +-11.9758606 +-0.5619598 +-15.0333128 +-3.6825402 +-0.8657532 +4.8096004 +-36.9976768 +0.1534626 +5.2037086 +-10.0558176 +-0.3600302 +-2.4014740 +-6.2965255 +-12.3305664 +7.0934038 +-6.0294390 +15.5047112 +-9.4458485 +-53.4900894 +4.3848162 +-5.2629037 +-3.3525841 +3.4245565 +-9.1484528 +-0.0792098 +15.1225882 +0.7718805 +0.3400449 +32.7160721 +-4.0805931 +22.3918858 +12.3809080 +-5.1597543 +15.0725927 +-10.0200529 +21.0304203 +18.5751839 +-18.2095470 +-10.8741865 +-5.5579286 +-1.2172856 +-3.4323127 +-5.1924291 +4.3588386 +1.3913929 +-6.1166215 +43.9088364 +-22.7510548 +4.6603971 +-11.6232080 +-41.8678360 +2.9517705 +-4.6576219 +1.5192509 +-7.4440088 +10.4271431 +12.5449667 +-2.1093926 +-4.2736011 +-36.5647240 +-0.4062136 +-5.9590445 +-7.4067230 +2.7789803 +0.1614269 +2.0405529 +-7.8519006 +-19.3498154 +-52.4562035 +0.6398951 +-49.1013527 +6.9559736 +0.8146523 +-4.7012129 +106.7031479 +-27.0135746 +-21.3338127 +4.5976076 +-39.8264275 +46.9615746 +-24.8070641 +-25.1604691 +-6.2815413 +0.2647619 +32.0028267 +5.6700888 +3.4828432 +29.1474514 +6.1477828 +-2.4650269 +-9.7208462 +2.1009922 +19.7593784 +2.7196364 +-15.9279623 +-29.9045639 +8.0169230 +10.2894545 +-2.7515445 +3.7858601 +-22.2905655 +4.5784621 +6.2580066 +-13.5824623 +-5.7009797 +-4.1319270 +-0.6577131 +0.2736955 +-7.7648287 +15.3687420 +15.4547291 +-6.7978568 +-0.0787400 +-15.9914112 +-20.2788219 +-11.8158894 +-61.3060112 +-16.1191597 +15.0650253 +-1.4771085 +-18.0713978 +-0.9258528 +18.4785309 +-44.2439461 +20.7171726 +13.8208580 +-7.1357031 +5.4330163 +-5.8491197 +3.1919703 +-4.0154881 +3.2538493 +9.3672905 +15.9984951 +-12.3849525 +-0.2239718 +-0.9225425 +-9.7657309 +1.8117474 +3.2065182 +-4.3321929 +15.4965954 +-1.4199966 +-7.9968362 +-15.5495014 +-3.9334404 +16.7929955 +-15.3961515 +-16.1458073 +-2.7094128 +0.2162692 +0.6638911 +-3.4944396 +-63.2319412 +1.9743197 +13.0360546 +52.0557175 +-28.1943054 +13.0403566 +9.8015480 +1.6701399 +6.5266795 +-0.1442406 +51.5510292 +25.3419971 +-5.3014526 +13.1041384 +6.9490767 +1.3464239 +-2.2241032 +-0.6390073 +5.0388570 +-2.5975535 +-6.9187140 +19.8557854 +39.4317665 +8.8703918 +-8.6198568 +0.3538547 +-8.5234089 +-4.7666039 +4.2220607 +-57.3509903 +-4.4257498 +-8.7036085 +-2.5316095 +6.8776894 +-8.0031881 +3.4414356 +-4.1941590 +-17.1293240 +3.1199355 +-0.2753378 +-0.6134290 +4.2055445 +-20.7705822 +3.6823924 +-0.5384752 +-51.4400253 +-7.8601232 +2.1353226 +-0.9052879 +75.2762222 +-36.2880249 +-16.5714569 +-11.0769749 +-33.3843346 +-0.9308351 +-13.5215998 +5.6205349 +-33.2720833 +-16.0089684 +-28.0570583 +9.1979847 +15.2672415 +-0.6343628 +9.6224108 +0.0264633 +-15.6188803 +-8.0920811 +17.4565067 +-4.2283468 +-9.5319128 +-37.9275322 +2.1865976 +8.7504606 +-2.6535585 +-0.2255161 +-9.3718195 +0.2378669 +15.8050652 +0.4905172 +-9.1972713 +-7.8821206 +-4.7281761 +-7.3797269 +4.3468175 +-59.2657890 +8.8649101 +1.5126469 +-1.5422024 +4.9248657 +-7.5303459 +-11.8563032 +4.8285418 +-8.9090834 +-10.1907005 +-1.2712182 +13.1218100 +-0.4665295 +-4.3299184 +31.5778351 +-16.9407787 +-17.7945309 +0.8609895 +3.0612321 +-1.4644617 +-4.8778691 +-29.6371002 +-5.9549603 +-20.5388203 +-23.0738583 +-30.0857143 +1.7274525 +-3.0947227 +-9.6194630 +-1.4785243 +-10.3875761 +-1.6245010 +-9.3512564 +-6.0624089 +-15.3714275 +-10.2101288 +-6.4421711 +-17.6171932 +15.7442369 +14.0231781 +0.7554923 +-13.2989645 +-41.3113976 +2.7604365 +-19.0903988 +-3.3141513 +-15.3986540 +-11.9808502 +5.5935731 +5.6236672 +1.4015580 +-7.7776494 +30.8568535 +-43.3797607 +-18.5575962 +-39.9761162 +6.2088971 +-9.5637455 +0.0576927 +-1.7707182 +0.6620690 +-12.1703987 +-12.2392645 +3.7988975 +2.3295126 +31.9930706 +12.4405594 +-12.4160242 +6.9301157 +-15.1097345 +8.1784878 +2.7761652 +12.3397150 +-18.8682594 +0.9667392 +7.1479025 +0.9877799 +-7.2394576 +-8.4129677 +-0.9049397 +2.0991049 +18.0543919 +-35.1543808 +-5.5462437 +6.3943667 +6.2951832 +-0.7175381 +32.5119324 +-1.0620575 +3.6664336 +18.2363911 +8.3251104 +-1.1861241 +37.8371315 +-3.1642783 +34.2327843 +-0.9419311 +-15.9952726 +-13.6625299 +-16.6375542 +84.6437454 +18.7133217 +-7.1678429 +-19.7457867 +1.6215496 +15.8619022 +8.2697353 +-29.5885830 +-2.2003591 +21.4205608 +-1.1706852 +-10.2061596 +0.2670328 +23.2415390 +17.8206425 +-9.1699142 +1.9675006 +-1.0102760 +-1.1639936 +-19.0350609 +-9.6716194 +13.6198339 +-5.4702711 +0.9732963 +11.5914364 +-10.3232889 +8.9492559 +-1.8579133 +-2.5380394 +-3.3200440 +-1.0219955 +-8.6188126 +-15.9965487 +13.0084658 +39.1178131 +-26.5133934 +38.4706841 +29.5348415 +4.0665717 +12.7866211 +6.2773719 +9.5940399 +-11.7692108 +15.9968338 +20.9276333 +8.9545536 +0.5079902 +-11.1366138 +1.2355074 +-15.5650444 +6.3111768 +13.5298157 +30.2982140 +4.0142055 +4.8277760 +7.5234890 +-3.7661150 +-1.5430764 +-0.3655710 +6.3063879 +-2.1283917 +9.0518932 +-13.6577530 +7.1113362 +3.5644937 +13.4340973 +16.7164803 +-5.6904221 +1.9352167 +12.0233898 +8.3096561 +32.4101295 +-45.1165848 +8.0402794 +10.5386858 +2.8109303 +10.6028929 +-1.4321963 +-6.4431467 +27.4627266 +30.9354153 +11.9820185 +-2.6730847 +5.4481478 +-16.1534195 +5.4930248 +-2.6115408 +1.3113434 +4.1214066 +-2.8472064 +5.0622039 +6.5151181 +3.0561926 +12.5313911 +-23.1955261 +9.4779549 +3.1643674 +28.4704628 +10.1086435 +11.5088625 +11.5114326 +5.8027420 +5.7878160 +18.9489384 +-5.8166337 +-7.9936042 +-30.6919651 +-4.0743437 +13.8347282 +-18.6573162 +2.0470500 +7.8633986 +1.8289958 +-11.2273169 +6.5700555 +21.1196671 +-1.9535707 +74.3032990 +6.8543229 +27.2784214 +4.1096630 +40.5724831 +-10.2403812 +7.9351363 +18.3898315 +-0.2315407 +16.6899891 +40.5132599 +1.4019310 +30.3258667 +3.6239059 +8.5035706 +-1.5475163 +-26.8617401 +-0.2475505 +-0.5936621 +10.1777048 +-22.5665741 +21.7468243 +6.9573112 +-1.7223383 +9.5768042 +34.1837502 +-4.6037812 +-1.7163727 +-8.5749836 +0.1165289 +47.4934769 +1.0454468 +8.2407932 +6.3780150 +0.7146343 +4.4054604 +4.9578438 +0.4495068 +0.3349918 +3.2727201 +2.7282686 +-2.3792262 +5.4604268 +2.0733254 +-24.1819096 +-18.4035187 +-6.5655794 +-7.9981747 +-13.0352173 +-0.2869520 +-3.7032456 +2.8133914 +3.1661079 +10.9543762 +-14.5722685 +-11.1967630 +-18.3164158 +-3.4574888 +7.7418275 +-1.1264536 +-8.9434299 +-4.7199302 +-7.1868491 +-29.7195969 +-6.4436846 +-10.3011465 +3.0083168 +6.4436817 +4.3808036 +4.2391772 +-9.8039112 +4.8860011 +-16.2205391 +14.9929609 +-4.6295867 +-2.0245564 +16.8025799 +-37.2412643 +3.7501719 +-0.3755983 +-7.7637410 +4.5371633 +-25.4472980 +1.9771818 +-4.7057228 +-10.1842537 +5.6554651 +-16.9000587 +1.0733131 +17.1561890 +-26.8937035 +-23.0383625 +5.0340500 +3.0222473 +-3.5791619 +8.6170282 +-3.9718792 +4.4617500 +-4.3753142 +-2.2398927 +4.1233306 +-47.0426979 +-5.9055166 +-6.4517274 +15.9932041 +2.0212514 +-4.7283111 +-15.9967299 +5.0687289 +0.0181882 +-4.6579299 +-15.9418297 +0.8645717 +-4.8930516 +-23.8429337 +3.6678183 +9.6768646 +33.9903030 +1.2669989 +-6.1166000 +12.5013371 +2.9961019 +-10.7672367 +0.9168772 +-4.3261704 +-18.9901295 +3.0195510 +1.0593230 +26.7615089 +-12.8140202 +-24.8729668 +-9.2814760 +24.5237694 +10.9748240 +-123.5264053 +-12.6953545 +-2.1115725 +-19.2379341 +-1.2194433 +-0.7833672 +-19.7045841 +-13.8295746 +-29.3075848 +0.1272233 +19.4326134 +1.2753800 +5.7636971 +-16.6078472 +11.9353237 +-13.5241680 +-0.7336839 +2.5379913 +-0.1528775 +-20.4009533 +-0.3996590 +5.3744555 +9.9805040 +-4.3916874 +-25.8118095 +0.8213554 +2.9481075 +1.6581161 +3.0237200 +-0.3374029 +-1.1717037 +-0.0688500 +24.7042542 +40.8940086 +1.7179780 +86.4774933 +19.7722149 +1.5378743 +-69.4364548 +-47.7764053 +0.5965561 +-25.4188423 +-39.2312088 +12.6663027 +16.2659645 +-56.2193108 +30.7884235 +13.4635363 +-45.8763275 +0.9622344 +-31.3230286 +-25.1133461 +4.5288692 +36.9842453 +-9.2791624 +-11.2574472 +-18.0643024 +5.9257159 +0.6092275 +4.7753153 +8.7712650 +-4.6987138 +-20.3572826 +2.1486695 +-22.9426594 +-24.1674442 +-3.7063725 +18.8299313 +5.4538932 +-8.2676153 +-63.9909096 +-24.0539265 +-4.9128008 +13.7923794 +-15.7063923 +-11.9564056 +-9.5220375 +20.5731907 +-3.8559566 +18.0229111 +52.7297058 +-27.7619610 +32.9033356 +19.2228661 +50.5124969 +16.0411263 +-21.3166866 +0.5724698 +-63.6491280 +-9.8780012 +-10.3303432 +-19.9180412 +-2.7647371 +-16.5415592 +-25.0770531 +39.1752090 +7.5049920 +-27.0014744 +6.1543503 +-8.9232216 +6.5557842 +-6.9708056 +-15.7309618 +-12.8238611 +-9.3803015 +3.2527716 +-16.1177425 +-71.2852020 +4.6685753 +9.5812101 +-16.0474033 +-52.5826454 +50.9766998 +-42.4967842 +-26.4187927 +-30.1392975 +-12.1526976 +6.4225802 +-7.3391404 +9.1734591 +-29.8840084 +1.9556426 +-310.7977295 +16.2738075 +12.9184942 +8.1433620 +5.2048073 +-84.0046844 +-99.2642899 +-65.8330688 +18.0548134 +-187.9736938 +-3.1130245 +-58.2781868 +-18.6174297 +-40.4464226 +-85.0300140 +34.1818199 +-34.1140022 +-0.7004832 +23.5646076 +-11.9493437 +-25.7487564 +-20.9604549 +28.8368168 +-7.9578581 +12.9843769 +-34.4594498 +-58.9904938 +24.7006931 +1.3568033 +-103.9923630 +-24.7571144 +-1.6386807 +19.6607380 +-6.3476663 +-4.5000725 +27.2049904 +-29.9158497 +-21.9911919 +1.8397804 +-5.9920273 +0.9254017 +4.0317492 +3.2137046 +5.3408546 +-7.8264074 +-4.0616956 +-0.8960807 +26.0048523 +-0.0626238 +2.4197805 +0.6190226 +-0.4511645 +2.0668628 +2.0791516 +10.4220753 +-4.7100062 +-1.0881115 +0.7247831 +1.2798942 +3.5275156 +-68.8153687 +-0.2607109 +-7.3774443 +1.9461819 +16.6172085 +-1.7441700 +-1.1692019 +-1.5075349 +-0.1579155 +0.6055775 +0.5747105 +-5.4691191 +-4.0512853 +-0.2476970 +-2.8694594 +1.6254407 +-7.0360603 +-6.1690989 +1.2225132 +1.7714131 +-2.4292953 +0.0236954 +-1.1716597 +108.2289276 +-1.5387746 +0.1072242 +-0.0179917 +5.1686430 +3.3360908 +0.2338260 +-2.3402479 +0.3999053 +1.8121313 +-0.3513364 +-0.4155231 +7.6201644 +8.4238491 +3.7123947 +0.5093215 +0.1183416 +-2.0264440 +-4.3252430 +-0.2124708 +2.1619678 +5.9264288 +-2.0070763 +-1.8897592 +6.4530573 +-7.4231482 +-2.5193138 +5.1453071 +-0.9020284 +-1.1152221 +1.9832602 +-3.4135952 +0.2245276 +1.5660584 +4.1705217 +1.9018501 +-3.3966637 +3.8004394 +-1.7000414 +-5.0517502 +2.0977316 +-3.9097028 +0.8935000 +8.9641237 +-1.3637358 +1.8774769 +2.5468709 +1.3587445 +-0.1068434 +-6.6694174 +-3.1809711 +1.3760805 +3.5837622 +0.8851815 +1.9099644 +-17.4790115 +0.9821779 +9.7467203 +1.6132396 +-6.4537406 +1.2516890 +0.5109922 +-4.4241180 +2.5046587 +0.1864599 +6.4497147 +-2.3711412 +6.5959597 +-1.3949587 +5.6306734 +0.5978056 +-4.2156410 +0.8243757 +-1.9970199 +1.6903790 +1.5097393 +0.0347573 +2.9165833 +1.5358988 +0.0318158 +-0.6438633 +2.9630668 +-3.1127441 +7.8620043 +-1.5705967 +-13.5973577 +2.1045496 +13.7799625 +5.7171412 +-31.9014053 +-2.2880530 +56.4073486 +4.9379125 +-13.2371616 +59.8490334 +0.5008997 +-21.1048717 +8.8052826 +28.9229832 +16.1864777 +-9.0709295 +-8.7908268 +5.9865975 +5.5345006 +25.1918411 +-24.6281853 +-9.7253313 +-5.5000815 +-0.0273640 +-26.4542046 +-9.7503405 +-4.4985561 +61.0502434 +12.1412687 +-1.7346525 +-7.4858651 +-32.7600708 +-15.0627832 +4.6163168 +-7.5766630 +-6.2296348 +1.1272782 +-14.1768990 +0.6753536 +-17.4438496 +-5.2365370 +2.3592312 +-7.1433458 +22.9597549 +-1.8497027 +-9.0218678 +15.9311724 +3.8586926 +8.0148106 +2.3714511 +-3.1322033 +-4.9437270 +-8.4861498 +-2.2440205 +10.6309834 +-3.1810935 +-1.8748915 +-0.5750474 +3.0050170 +-1.6910243 +10.1669912 +-3.8329995 +2.1429694 +3.6148374 +-3.7150278 +-6.2331500 +-6.6614270 +-0.0415624 +14.9909525 +-2.5985653 +-5.3434539 +3.2472842 +3.6326158 +-8.7037458 +-9.3224325 +-2.6071429 +58.0496483 +-24.0671329 +12.2335930 +-4.4697247 +4.4315190 +-1.2115866 +5.6238370 +-5.5000176 +14.5431423 +9.1035089 +19.7913322 +3.8637590 +2.0694077 +8.2097464 +-1.5881379 +6.4539366 +10.4743633 +-18.7389412 +-18.8344479 +2.5741138 +5.0490656 +19.5304718 +-12.7511578 +-15.6466532 +34.7775269 +16.5603275 +11.4659853 +0.1046497 +44.5523872 +-54.5312347 +5.9298382 +-3.4687886 +27.0769730 +-3.3603578 +31.8716698 +0.7895461 +9.9094610 +1.3997114 +-11.2918186 +12.7290182 +6.4891419 +-0.2522370 +-7.0891438 +3.3280890 +11.4265118 +-3.8936520 +-4.8547211 +0.2970934 +-0.6375829 +-1.0630336 +4.5033607 +5.9072757 +15.4929132 +9.2433462 +17.1848049 +-1.0345091 +1.0180216 +5.1096206 +-3.3345869 +1.7212784 +-6.8456192 +-12.2462082 +-3.8034184 +-8.7787867 +-106.9885254 +0.5553972 +18.9772816 +2.7947679 +19.6944828 +11.6513863 +15.8645487 +33.4636116 +-2.3019381 +3.8172352 +2.8971045 +12.1927929 +-2.4745984 +6.7865081 +-26.8256760 +-8.3269281 +-31.8012619 +-5.9457407 +17.1628723 +0.5407429 +6.6256118 +4.3564095 +-1.6850914 +-1.2627634 +4.2283654 +-0.7096567 +0.8380420 +-8.5176630 +10.3883600 +6.3864737 +-2.2136445 +-0.2390481 +-31.9830627 +30.6624851 +39.4148102 +54.4051170 +30.6493626 +17.2901516 +-4.9782863 +8.3669071 +-9.5172482 +-4.9304695 +-4.9482141 +21.2469368 +15.6590118 +-6.9487576 +12.0075598 +1.7587354 +3.7090724 +1.6079733 +-24.7788296 +-2.6307216 +4.6133513 +6.2885380 +8.7178011 +24.6869869 +-0.4817662 +-11.6007071 +-22.5214729 +-13.1568384 +-15.6382093 +4.3191891 +-5.7188468 +2.8863964 +14.4793682 +0.2567104 +-7.4462042 +-4.8418732 +-3.4523880 +7.7486358 +6.5341043 +0.4565201 +-1.9131629 +-81.8365936 +3.6501615 +5.4532857 +84.9481735 +-16.8957520 +1.7272019 +-3.3065202 +9.0022583 +2.3280330 +0.7405916 +6.4941869 +-48.4858665 +31.5093803 +0.0068575 +9.4227324 +0.4509494 +-0.2132679 +3.8194063 +8.7984524 +7.9514046 +-74.0226746 +18.9357357 +23.0656948 +-44.6144485 +7.2078681 +-12.7389708 +-3.5747728 +4.1370630 +-2.6181788 +-19.9243298 +15.2535906 +7.2577829 +-0.5862479 +-2.9829316 +-0.0592953 +-13.1329479 +-7.6950154 +23.7510471 +5.4416723 +-0.3925303 +9.4500914 +0.7445332 +15.1131001 +-9.1416636 +-12.7511997 +7.2842712 +20.7523537 +-80.4542770 +18.4941807 +-45.9251404 +116.9571762 +-32.1464958 +-0.8641604 +-12.8444662 +-4.7119389 +-1.3203235 +17.9331284 +-46.1362114 +14.8531904 +-18.8144073 +-2.7117381 +-22.6225643 +-0.8083366 +-27.7511253 +-4.0976419 +-3.9140575 +1.9663209 +41.8677940 +-6.7082634 +10.4687996 +-4.3715057 +-3.1295743 +3.7632415 +-2.5393379 +14.1759167 +-37.2539444 +-4.5631738 +-5.1050487 +-7.0718908 +-3.9319139 +7.3196163 +-10.3899202 +1.7180712 +-7.8185682 +5.7203169 +7.0915151 +-9.3596458 +-0.5485910 +0.8238714 +4.4112139 +-15.9303541 +-11.4249773 +-6.5207448 +-11.5531855 +-19.4933243 +-17.5401974 +5.7154980 +4.9254861 +2.6755714 +-2.5708294 +-7.8939648 +4.1997504 +-2.2369061 +-14.7244663 +-30.9054527 +-4.4246936 +1.2731870 +3.9978554 +-52.2842216 +-5.2787795 +31.9849739 +-4.3261461 +-4.9787250 +-5.6106477 +-31.6880550 +-4.2188430 +-24.2451401 +16.3746510 +-5.2328424 +-8.0009031 +-9.7540426 +6.1772313 +-2.7946558 +14.2385817 +-7.4018044 +-1.2076923 +1.1628543 +23.3229961 +6.8502102 +-41.3671913 +-0.0733866 +-15.9992533 +17.0537415 +-4.8369193 +3.0448642 +-11.6572361 +16.6492958 +-97.9976730 +-32.1997299 +-11.2091188 +-40.0400085 +9.1660509 +0.6896104 +-13.7628307 +-26.5510712 +-125.1165466 +-0.4473409 +6.1751881 +-5.2104492 +-2.0776277 +-16.9142780 +11.1108532 +-15.9970741 +8.6525002 +-2.6168110 +-6.6978273 +-3.2866862 +7.4710689 +-10.3243189 +-1.4485430 +15.9955511 +15.8115606 +-2.3364589 +1.9095044 +22.5219879 +5.3378367 +-4.1689348 +-9.6580944 +4.0827227 +1.3421310 +13.8319349 +2.7323148 +1.5181724 +2.5747533 +2.8875177 +0.1583833 +0.6325322 +5.0365744 +6.2306767 +0.3249487 +-0.8144635 +-0.6445175 +0.0190234 +-1.6232423 +3.7876246 +-4.9770589 +-1.2081062 +-4.9007907 +2.3167031 +-4.3839889 +-0.0233044 +-26.2584209 +0.5329314 +-0.5934265 +0.4285873 +21.3333035 +-0.3048610 +3.7610507 +-0.9640492 +-2.7935867 +-1.0993198 +-2.8244596 +0.7464288 +-0.4097338 +0.7697341 +3.2671452 +0.6594983 +-4.8994498 +-1.6949173 +2.1801898 +1.7424940 +-0.9240068 +0.0178936 +3.6854656 +0.3988779 +-0.9756293 +-1.4679251 +-1.5722336 +-3.4210401 +0.9798124 +0.0742934 +-0.5132578 +1.8557459 +1.7608364 +0.6229076 +3.9680393 +3.9298589 +1.5489192 +0.6488802 +-0.0247429 +0.4927798 +-4.6948767 +2.7467756 +-1.7414306 +0.9420717 +11.5201397 +-49.3219337 +-0.7544838 +1.1175504 +3.6197226 +0.4286320 +0.8076802 +1.3579780 +-2.8528886 +-0.3853200 +-0.7650869 +0.7671875 +-1.1959974 +-4.5893822 +0.9921989 +0.2347273 +0.9523411 +-0.9993488 +-1.9334111 +0.1747036 +-1.9243881 +3.0117877 +-5.6060491 +-0.3702994 +-4.9845853 +2.7069168 +-1.7010022 +0.6165986 +3.4747741 +-26.6835670 +11.1154270 +2.4196329 +3.4570832 +46.6374855 +1.7820542 +1.1723696 +-0.1341865 +3.6816223 +-1.3769227 +0.1213755 +-3.4373963 +-0.5859472 +0.5103055 +-2.0729809 +-0.5308576 +-1.7948812 +1.1032864 +-0.3950274 +4.5932784 +-0.8890067 +-0.2534416 +2.5597305 +-0.6782944 +-1.0245789 +-0.2812330 +-0.1255890 +-1.6021808 +-0.9544231 +-0.0036741 +0.5058004 +1.4061495 +-0.5255617 +3.8699214 +-7.8460793 +-12.2699556 +-11.8731604 +2.6520751 +6.3131261 +-5.9870520 +-21.7497959 +-9.9060001 +-3.3392041 +-0.3129763 +7.7844119 +-6.3459082 +-10.6614304 +-18.0170364 +-10.4286366 +2.6312799 +-0.9994221 +0.6947568 +-4.0024686 +-1.1429197 +-0.3653780 +-1.2120446 +-2.3288081 +1.0240457 +-3.7566581 +-7.5649242 +-4.2627726 +-1.7697045 +-13.0899668 +-0.5779724 +1.5778338 +-0.8017446 +-3.1884527 +-24.3415089 +-4.6657948 +-66.7648087 +-16.0117340 +3.2745683 +-14.6504955 +-6.2639313 +-1.6071131 +-11.4520731 +-13.3032856 +-4.8505096 +5.2060933 +1.5247432 +-1.2960110 +4.2025118 +-5.7334089 +-11.1715107 +-23.4501457 +0.2284199 +2.8005052 +-16.6638966 +-7.7042947 +-15.4173985 +-0.2907802 +-1.2980214 +0.7789732 +0.8548920 +-4.4757390 +-14.4956217 +-11.6672106 +-6.4983654 +-5.3330669 +-5.1255698 +-15.3727694 +-6.9334164 +17.9755611 +5.0008483 +-14.8797112 +1.8230641 +-2.7157290 +-7.1910152 +-2.4742620 +-3.2310934 +2.3561928 +3.5598428 +2.0217578 +-0.7073030 +-75.8317642 +-1.5664995 +-7.0199537 +-3.5673571 +-33.9369049 +-26.1154022 +6.4784665 +0.4958181 +0.9089075 +-15.7613344 +1.2373129 +-0.0367525 +1.7809709 +-24.6760941 +-13.2716331 +-17.9990616 +-19.4335575 +-8.9243870 +3.9394996 +6.9369974 +-1.2342539 +-23.9675045 +1.6245561 +-27.0305290 +-2.8200955 +-4.0085030 +-10.7702074 +2.8793218 +-6.4958849 +4.2404523 +-6.5858383 +-10.3790932 +-9.6131716 +-4.4425135 +4.9696198 +-33.7122536 +-6.8135185 +-1.2886237 +2.3557451 +-3.9085634 +-10.5489826 +-15.5552959 +-1.0690438 +-9.3663321 +-18.6920586 +-21.1216507 +-5.9457369 +4.3951426 +-12.0058432 +-1.3219230 +-1.9766150 +-1.2824763 +3.2210164 +-4.8971291 +-32.2023811 +-14.1362228 +-5.0278997 +4.8604255 +2.2849789 +-17.5264874 +-1.3983009 +-15.3568649 +-15.8661776 +6.6114106 +17.0196018 +-6.3759556 +-1.2758636 +-4.2844715 +1.6978989 +-1.6633502 +-2.0767596 +2.3495436 +0.2638280 +2.4242723 +-4.1890235 +8.6061535 +-12.0840158 +-0.7288254 +2.4309161 +-2.1707900 +-0.7974313 +-45.0714149 +-6.8762493 +-54.7911530 +4.6617184 +-18.8696384 +-29.1058407 +-2.0060937 +-1.6238077 +-9.1646461 +-12.8074284 +7.4174132 +1.1447059 +0.9961873 +4.9030614 +5.9715881 +-2.1086779 +4.1701875 +-52.3307266 +-1.7326658 +-5.7550945 +20.9089737 +-6.7116456 +-11.9380360 +-1.8744441 +-1.4323194 +-1.5837431 +1.1984563 +-3.2806926 +-0.3943543 +-14.4792833 +-8.7038832 +-0.0556648 +46.7626953 +11.3746634 +7.6229768 +3.2708685 +23.5168972 +-0.1631670 +2.6297679 +-6.5191622 +-7.4498110 +-10.4949369 +-22.6370773 +1.9886812 +0.4447014 +-24.5616112 +2.8339803 +-33.7287064 +0.1955335 +-0.9322458 +-2.2771740 +1.4256909 +27.8712769 +-38.5937691 +-4.2479911 +-0.1335265 +-10.5999022 +3.0853722 +1.7330916 +-3.3095856 +1.4385489 +-5.3807034 +16.7111244 +-9.3084526 +-5.5909214 +42.2686920 +6.3175421 +1.9691603 +-18.6528740 +11.6896982 +-4.0968657 +-3.9147666 +3.2261727 +-8.6326828 +0.7358332 +-6.5004096 +3.5547786 +-27.1409855 +-12.5401306 +-8.8434877 +-5.4606156 +3.0719221 +-57.9731255 +-8.0470457 +-3.4038885 +20.7037907 +-6.2109160 +-10.3524485 +-13.5438213 +-3.0783377 +-8.2640295 +-82.7276001 +-0.2673295 +-9.5907488 +-20.5531330 +-4.5357294 +27.4121017 +-8.0252686 +-2.3363538 +-41.6426582 +-57.9385300 +32.0562401 +-15.7935667 +-13.6951418 +-0.1410139 +12.2135916 +10.8206625 +6.8401012 +-8.1439829 +-2.6471548 +15.9972286 +-8.8724394 +-0.5495708 +-0.6579401 +-14.9744186 +-5.1237969 +-21.7515392 +-5.9687209 +-8.1397858 +-7.5127101 +13.0164423 +-0.6066089 +-7.3173680 +-2.9039955 +-0.0585984 +5.9013491 +1.7660885 +-0.9965363 +-32.5497704 +2.6366558 +22.9825687 +0.9425026 +-132.3583679 +7.0325689 +-9.6601639 +-3.9564359 +-4.9326901 +4.3315501 +-2.2287350 +14.0669146 +0.0283335 +10.0606556 +16.2015553 +-4.0059528 +6.2656822 +23.4979305 +-4.6912789 +9.2143755 +24.5885181 +-15.2971067 +31.4032669 +-14.8128090 +-9.7497940 +-16.7402630 +-6.2906742 +6.2914014 +4.1295137 +26.4915733 +4.2756662 +6.2307520 +-29.3021812 +18.8449192 +-5.3301716 +-16.1247940 +-62.5052414 +-1.4758891 +-1.0111659 +9.2915325 +1.5508665 +-12.3714876 +-2.0669665 +-9.1902122 +-0.5950682 +-0.8458120 +-2.6555212 +-5.9868574 +-7.1231780 +11.6747770 +0.9210697 +-22.1707859 +-35.7858849 +-12.9250937 +-84.0232925 +1.5368338 +3.1825030 +-11.8540287 +-30.3848801 +0.7048782 +29.9560184 +-48.0205116 +-12.8518763 +-15.1924953 +0.1456844 +8.3670654 +-54.2158508 +10.2456388 +46.8697205 +22.6631451 +-64.5758057 +-3.2368989 +5.0047684 +-3.6263103 +8.3092356 +-2.4916286 +0.4204683 +10.1236067 +15.4241543 +0.3808985 +-12.4389219 +-0.5293629 +13.9153099 +2.9648032 +1.9209940 +-26.0487309 +-0.2664392 +-0.5725388 +-10.2589493 +21.8501225 +-14.6765175 +9.2565165 +-10.0447388 +6.8881607 +-1.5150374 +-0.8358025 +4.2751360 +0.0955781 +0.2688256 +-6.9024987 +-4.3281918 +1.3606532 +-9.3985586 +1.2728699 +1.3701112 +1.8099450 +0.3381524 +1.2084036 +-6.5703826 +1.6863835 +-1.1286987 +-1.2363015 +0.2108380 +0.8681998 +-1.2063249 +1.1697503 +6.1094465 +0.5343422 +0.0356958 +-0.7752127 +-1.5334709 +0.0136831 +0.8319910 +-3.0447574 +0.5533847 +0.0621754 +0.2718365 +0.5482363 +-2.5053072 +-0.1054532 +-6.3999190 +1.5875893 +-1.8948193 +2.1777122 +-2.0808189 +0.0061302 +-0.8849338 +0.0302308 +0.9680480 +36.9608231 +0.9891402 +2.1516721 +4.8601127 +1.5230204 +0.7335474 +1.3423790 +1.0976948 +2.8274624 +-2.4596696 +-1.9354508 +-7.1874046 +0.5588089 +0.1294969 +-2.6881840 +-0.6014509 +0.5428354 +0.2978837 +1.4410225 +0.6291496 +1.1994995 +3.1327214 +-3.9472833 +-0.5077792 +0.8398616 +-0.8327599 +-0.6250955 +-0.0957720 +0.6105168 +-5.7860785 +-0.1573506 +1.1523901 +-1.5469494 +2.2588902 +9.3410397 +0.9061344 +-0.5140528 +0.1613791 +1.6033787 +-0.2539327 +0.0071516 +-0.0185696 +-1.1012180 +0.5040563 +0.0558158 +-0.2370064 +-1.3015419 +-3.1369424 +0.9542687 +-0.0199393 +-3.0982063 +1.2891383 +-0.7714967 +0.1446871 +2.8120000 +-4.9223022 +5.9604726 +3.5129080 +-2.9835789 +-7.3042207 +-1.5217868 +0.5910335 +0.2595489 +0.7082073 +-0.4382457 +2.1799171 +0.8713034 +3.2099822 +0.7331121 +-4.5135236 +2.1159408 +8.6106186 +-0.6790519 +-0.1647956 +-2.0704219 +-1.6217345 +0.5298142 +-6.0647669 +2.9825063 +-4.3892784 +-0.1583104 +0.2479508 +0.3732106 +-15.1179237 +-1.3858653 +-8.7360125 +-14.0819960 +-3.5851421 +-8.8398390 +4.9714866 +-31.7335491 +-14.2253866 +-56.0512199 +-111.1588669 +8.6254606 +-38.0160561 +28.1261139 +32.1402855 +-7.3314734 +7.1905813 +-3.2964594 +-0.4138062 +15.5126247 +16.2145767 +80.0547180 +-10.6230354 +29.9366150 +-10.6695671 +40.3350563 +-52.9311676 +13.4126062 +-36.0014420 +24.1144218 +20.2671051 +-8.2507677 +11.6875372 +-3.9990900 +-40.2859154 +4.7178564 +13.7455025 +10.6802874 +-5.6115465 +9.9583426 +-37.3685722 +23.9486599 +-15.8344250 +-3.4797430 +-17.2803192 +-1.9972062 +-1.3063953 +23.8885136 +98.5433884 +9.6206589 +57.0814476 +-33.0227089 +-7.2341561 +34.4821281 +9.3735647 +3.0184865 +-6.8549595 +14.8221836 +1.5635983 +0.3575850 +-2.0152719 +85.2811432 +2.9803851 +-4.1352129 +-2.1136153 +-24.4976044 +2.9076934 +6.4118276 +27.9376278 +-6.2207613 +-1.9416783 +4.4393339 +6.9436617 +-12.6459370 +30.8230476 +17.2621040 +-0.2919197 +-4.1948328 +-2.2380216 +-10.9585714 +-18.5941486 +-2.5801466 +20.6835251 +28.4716835 +13.9077168 +15.9458055 +-3.4869857 +-19.6218472 +-54.8639221 +-12.4038849 +-34.3351898 +-32.8543510 +-9.3481884 +-5.2043056 +136.8379974 +-17.6279259 +-27.3369293 +-10.1835480 +-30.1182880 +63.9957008 +-8.4842329 +-0.6342039 +-20.9567642 +-42.3827362 +-70.0961456 +10.3403587 +24.6296349 +-15.1944590 +-9.7617645 +5.8220634 +-31.9950123 +-23.5187569 +17.5949631 +7.2579274 +-4.4847898 +-9.7288370 +-53.5254211 +-19.2133694 +34.9491844 +4.4279375 +-28.9894009 +-2.8476756 +-247.5657654 +11.5774412 +32.2722969 +-41.0274048 +-36.0234413 +-3.2603960 +-14.8500433 +-11.9918766 +-11.3502188 +-14.3361950 +-2.9570727 +-7.9903259 +0.2455615 +-33.5383415 +10.3022718 +16.8633690 +-8.2635307 +3.1659808 +0.3239659 +23.6768608 +72.1713028 +-8.1895161 +2.8934042 +-33.7344551 +-0.9891804 +16.8631992 +14.6534595 +89.2806244 +-16.5189629 +29.7548542 +-11.9433384 +38.1550369 +61.5668869 +10.5651503 +-44.1812477 +31.8151150 +26.5548191 +-16.5579739 +8.6535406 +-3.1679375 +9.5828276 +2.2710989 +50.7356796 +0.4515933 +-28.5366573 +-11.7741375 +-4.9213786 +22.3859901 +-23.2743835 +3.1652033 +-14.8851137 +-8.6311817 +-8.0334044 +24.6778049 +114.4385834 +9.0287848 +43.4273834 +-64.0721436 +-9.0411158 +36.5892334 +17.7188110 +1.2187082 +3.4479923 +5.6896038 +-2.1281393 +-0.7921746 +-8.1606598 +-146.7206726 +2.5019510 +-12.3219652 +-7.3974915 +14.9391336 +51.6115952 +-1.8351294 +28.7618904 +-7.5604548 +-4.2927742 +4.5277233 +4.2343197 +-16.5300579 +42.3970299 +16.7034626 +-3.0459514 +-6.6111541 +19.5599861 +-14.2363195 +8.9421577 +-5.3076200 +13.9692116 +19.0206299 +12.1513033 +10.5845404 +-3.6674640 +-1.6700507 +3.2465856 +-12.2094145 +-84.3629456 +-11.5524693 +-6.3665237 +-6.9106340 +128.6483765 +-14.4382801 +-3.7051690 +-11.9034052 +2.9431171 +64.5251236 +-12.0554829 +-2.4778035 +-20.4793186 +-12.0784197 +-12.6156368 +9.7461023 +22.3135338 +197.4274902 +-10.1377230 +4.8596735 +22.6337204 +-41.6751518 +14.5158691 +2.4287634 +2.3056293 +-10.9177837 +19.7696609 +-19.3627987 +13.1241627 +32.2080383 +-22.2367191 +-6.7413917 +290.2756653 +7.4492879 +29.2237358 +-26.5930710 +57.9194756 +-5.6541057 +-0.2613771 +-33.0536461 +-14.4909744 +-23.3860569 +-11.8898973 +-6.3143053 +83.2992630 +-55.8187103 +3.6467037 +-8.6503334 +-1.3689389 +0.7248722 +-0.0936649 +24.9107685 +-109.7520676 +1.4537796 +1.9057283 +-24.8522549 +6.7483840 +20.1749783 +23.4178658 +79.1970749 +-13.1081161 +25.6215916 +-10.7116413 +34.1849709 +19.3912277 +4.8731585 +-19.5028725 +90.7996063 +37.9850807 +-1.4948337 +7.3027062 +4.2997484 +17.7752781 +4.9514456 +29.4449921 +-5.9396057 +-14.9861908 +-20.2555981 +2.0201907 +21.1541500 +2.2963066 +-23.5980911 +-18.2123146 +14.6196232 +8.3240108 +-12.7460651 +-76.9693146 +5.9434829 +40.6532974 +-9.2561378 +-18.5083351 +39.5327568 +12.5095339 +35.4003754 +-2.4175656 +11.1518126 +1.1611296 +4.6253743 +-15.2647314 +24.0739441 +-0.1382690 +-22.2744389 +-5.3931551 +13.4408922 +31.5419235 +14.0905313 +26.8732433 +5.1182032 +2.3887837 +8.6878614 +-3.3074379 +-34.1843414 +20.6373997 +16.2193718 +-15.5658340 +-5.6438341 +23.1511135 +-7.6157813 +-0.5882994 +-15.2491322 +13.0543451 +13.8517962 +12.5611477 +1.9870336 +-3.8131292 +-3.8767333 +2.4885607 +-7.4212270 +-14.9673452 +12.0631609 +-4.2250085 +0.5306789 +144.9941559 +-4.7163930 +-3.3058202 +-14.1039209 +3.2757895 +46.6431007 +-5.8687077 +-8.4672594 +-55.8921204 +-2.1223948 +5.7256751 +1.4596149 +44.6819267 +-27.3690224 +3.1641705 +6.7314959 +19.5471077 +-10.2735014 +0.5896850 +-11.9903822 +15.4162054 +-15.7209721 +34.3896179 +-28.0720596 +12.8401117 +-102.4417496 +5.0504560 +-17.6915150 +-114.7574768 +-174.7566833 +56.9844208 +4.8706174 +8.6673927 +-15.7093925 +-5.6446047 +4.0279245 +-23.4763203 +-1.8908269 +-40.3182106 +-10.5588293 +-55.1726646 +-14.3007498 +-393.5909119 +-19.5078564 +-1.1419301 +51.6339455 +11.6395359 +42.1691322 +-70.4839630 +17.1540604 +2.4426193 +7.3912997 +14.7161121 +11.0151339 +1.4582640 +40.1939125 +-22.5154533 +-48.0878296 +-12.8142948 +15.9989567 +-15.4980450 +-3.4306855 +-25.1991768 +-3.9719970 +10.8703899 +3.6753755 +9.2222681 +-29.4512615 +35.2995834 +-0.2211912 +-111.3641815 +8.8920860 +4.3930998 +14.2637997 +-31.1878681 +-0.8481898 +9.6433706 +-26.8788967 +-10.3622522 +-36.2887230 +0.6432440 +-3.1213160 +31.9297066 +-7.9989848 +15.4739599 +0.8237741 +-5.9503355 +-6.6197019 +-8.0426283 +-140.7321014 +11.8282108 +11.9126978 +2.3466089 +1.6702919 +7.8327117 +3.4777367 +3.2281101 +-8.4691296 +2.2804143 +-4.6656485 +-49.3411942 +3.5925844 +5.0452452 +-0.1449146 +-69.5502396 +2.1128337 +9.4275141 +21.0971680 +-5.7676020 +27.9209976 +16.5759869 +5.1252203 +-15.9969063 +-15.6307192 +-33.8037605 +-20.9750156 +-18.8985291 +7.5263758 +-1.5155851 +-1.9362831 +-39.3469200 +9.0384617 +-1.5444298 +3.7720244 +-31.9932632 +-14.8546877 +1.8814398 +0.4899975 +2.3010564 +3.5684967 +-18.0330505 +2.0002003 +-5.0322304 +12.5918112 +-6.3926888 +15.1322250 +-51.5882568 +-96.8268356 +16.2790737 +-14.4046068 +8.7199049 +-20.3533134 +11.3610630 +-16.4021454 +10.9303398 +11.6355257 +-19.8839855 +1.1805265 +5.7004237 +2.3377528 +29.7156410 +-31.5357342 +13.5353670 +6.8860154 +-40.6403923 +-9.4422932 +26.6799526 +21.1908550 +-31.8033638 +-2.0014873 +17.3349419 +8.6707888 +13.1491623 +-43.0702858 +-24.1357861 +-3.2173080 +2.9799473 +0.1730748 +10.4136648 +4.7719374 +13.7354059 +-15.9992361 +-0.7135646 +-3.2713418 +8.9384260 +28.6015739 +-75.7216721 +-6.4821868 +52.8740959 +3.5827806 +11.0150299 +-19.0736313 +-3.8250885 +35.0011177 +38.0581207 +10.4559746 +-0.9950290 +31.9982014 +-44.6589851 +5.6777258 +-5.2174530 +29.5979500 +10.6375999 +1.8225169 +10.3582926 +-5.4079728 +11.7343950 +18.3151340 +-56.6859894 +-31.9840221 +1.5409247 +11.8477907 +24.3831139 +19.6439342 +3.6185033 +4.4037967 +-3.7197442 +10.7203579 +4.0830932 +16.4876060 +20.5076580 +25.2806435 +-8.9959335 +6.4385719 +-0.1343810 +10.9357185 +-2.2582617 +-4.9809093 +-51.5480309 +29.8450279 +26.1416874 +8.6161165 +7.8876505 +3.8751817 +-8.4322176 +12.0204649 +4.5540395 +-1.4858479 +31.9939480 +-2.1207178 +9.0533285 +5.4862843 +-25.1625137 +12.6298838 +15.4229221 +6.6528568 +-66.3411179 +7.2300138 +-1.2722716 +12.8257904 +37.9929276 +1.6444966 +-5.0002756 +11.8108864 +6.8370380 +2.5012562 +6.4521785 +2.7291689 +15.9009933 +5.3846040 +3.5806224 +2.3353205 +-1.2108414 +3.4440436 +12.8434668 +5.8449764 +1.8037560 +21.0123425 +0.5895710 +5.5828886 +5.4193568 +-2.5110390 +18.7783966 +-16.7528439 +-15.8961687 +2.2724469 +3.9387755 +-20.4860477 +15.4693480 +-67.0222397 +11.0817394 +5.5090451 +9.6421471 +6.9129953 +-2.5610957 +-4.7578001 +63.9029160 +12.4018393 +-73.6861343 +-8.2165022 +-6.9501009 +7.7063065 +-6.8444200 +-3.6622005 +-100.3672867 +-2.9221110 +-18.0398083 +11.5106220 +-19.8661976 +-0.1388373 +-11.3672638 +-16.7731571 +-38.0683022 +-4.4516749 +5.6919150 +-8.1937475 +1.7168812 +-13.0526781 +4.2935448 +4.6085348 +6.0458999 +24.6438293 +-2.5316312 +8.6470213 +-116.4149094 +-21.7526340 +-36.4050369 +6.7417326 +12.1685181 +21.6267567 +12.7114449 +-48.3956299 +2.0066273 +19.2498646 +-4.6163473 +51.3812714 +3.0797763 +1.2999190 +-8.1017637 +-38.6612740 +-35.4930496 +5.9884782 +3.3292174 +10.6177263 +0.7714676 +0.6414534 +9.6062212 +-1.8487763 +0.0911193 +6.8650432 +5.2790160 +-27.3380775 +1.3488133 +5.2941680 +-0.2947099 +0.1446832 +0.6231310 +17.0701485 +33.4834633 +-47.1297417 +22.3084354 +14.6230822 +-3.1970558 +0.2402487 +-7.6312866 +-0.3349462 +-7.3787541 +-30.8846455 +-37.0535431 +-0.1177551 +4.6275554 +3.5638032 +4.1697130 +-1.1030993 +10.6081467 +-1.0726635 +9.0719318 +11.3896933 +0.7860935 +-2.8547518 +0.8498493 +-8.1489553 +-22.1497841 +-6.1130471 +9.6140833 +6.4528341 +1.8342959 +10.2894793 +-21.2387733 +1.3094702 +-2.0697052 +-3.4409430 +-0.2412549 +-0.4272506 +6.0440550 +2.9483733 +-1.2472061 +6.6811719 +-0.9254023 +0.7626708 +-0.0451938 +-10.1444836 +3.8089263 +3.8416409 +5.3264384 +2.0994253 +1.4708903 +4.4927483 +8.2439747 +2.2340617 +1.0357511 +-92.7923126 +3.4097333 +3.0262644 +10.3655195 +2.7285452 +7.2522297 +-75.7001343 +5.3803577 +12.7584705 +0.2057784 +10.8150654 +2.2838941 +-2.3404570 +-4.8823867 +-2.8348908 +-1.2853051 +-8.1497030 +2.2501800 +-0.4340482 +-0.5633406 +0.0263335 +-94.1517410 +-14.1546898 +-52.0486832 +1.4812250 +7.5260906 +3.9863358 +-1.9335136 +-5.5260663 +9.5669689 +-0.7071350 +0.7935680 +-1.6289458 +-1.6956760 +4.4270353 +5.6421676 +0.3898153 +2.9852219 +9.1334190 +1.0238922 +23.2017269 +10.8099422 +-2.5456057 +-0.1179260 +0.6330314 +8.3304787 +14.5361423 +5.0621209 +178.1892853 +0.7185245 +12.1706181 +-6.7409968 +64.6852112 +-3.2581708 +-0.7983230 +1.4377549 +-19.8415203 +4.3388042 +1.3786436 +6.4811153 +22.0900173 +1.9150661 +2.1837292 +21.0182877 +-5.8241577 +-1.4948851 +2.2674258 +12.7955322 +7.2147679 +2.4696527 +0.3326240 +-2.3060391 +3.9933898 +1.9585168 +14.5718832 +122.0727386 +-25.9812126 +32.2074738 +3.5160606 +-2.2718687 +-1.2722124 +1.0363966 +-17.4994011 +-5.5243039 +-7.9993258 +-2.5015192 +3.2442887 +6.3819466 +1.0465248 +-2.1232946 +-0.7866578 +-1.0566921 +-1.6360964 +3.9069803 +0.2155985 +-0.3985054 +3.1427660 +-1.2053719 +17.7516689 +4.1763630 +-1.9174994 +-9.8786325 +-2.3372331 +0.4349186 +4.0114107 +9.6200409 +-1.1780760 +0.0649540 +9.9891424 +4.8433051 +6.6994562 +5.5675268 +0.2513929 +-0.3202126 +4.5254154 +-1.3876996 +2.0529363 +1.2151159 +-5.5101252 +0.2557692 +-0.5841195 +8.7126217 +-2.2060220 +1.4447688 +2.2143888 +7.6291952 +59.0634117 +-1.3319206 +40.8798485 +1.3381186 +-0.3087339 +-0.9832449 +-2.3057532 +11.0388365 +-63.7424507 +3.1030717 +-0.7172661 +-5.0745249 +1.8716140 +-6.2106538 +-2.2974968 +28.9160042 +-0.7544320 +9.3874731 +-1.9144244 +1.5298496 +-0.1763175 +2.8989539 +0.1877277 +-4.6601381 +-4.1660609 +-21.8689919 +3.2400587 +-14.3799906 +0.0129253 +-2.0030701 +4.0447011 +-14.4028873 +1.5243530 +11.5505447 +-1.8983473 +-0.0463082 +-0.8813370 +-22.7421322 +-3.2887931 +-0.0983811 +-4.0895834 +0.6060122 +1.1360446 +-7.7083344 +-4.4354920 +-1.7583793 +-0.1978156 +0.1844815 +0.4641678 +-0.3995946 +-1.9555604 +31.6048985 +-1.4610668 +-0.6208820 +-2.9529216 +7.0610108 +0.5273439 +0.6925659 +-11.8402824 +-3.4913898 +-0.3434602 +-1.1632732 +12.4746037 +0.4907512 +1.4882916 +11.9903765 +0.1864489 +4.3014545 +-1.1455554 +-2.0830061 +1.8350765 +-1.3746738 +2.5018671 +1.2840240 +-16.6076908 +-1.8617114 +-1.1038109 +-4.3801422 +-13.5609150 +4.0686250 +2.7460170 +0.0621765 +12.9379272 +-1.7681632 +-2.6937184 +-2.8125875 +1.8007115 +1.4798129 +-1.8160511 +-1.2327291 +-0.7141317 +2.5214753 +2.9661427 +-2.4961896 +0.8238989 +1.3283330 +3.0795500 +0.4877867 +-5.9081669 +-14.5026150 +-0.9346681 +-2.2117038 +0.2552865 +-24.5816879 +-1.3662714 +-3.1628184 +-0.5433297 +2.0404279 +-1.1222174 +-0.1556444 +-3.3004079 +-2.1915367 +-1.9047396 +-1.9688754 +2.6451886 +-3.3611255 +-1.5868793 +3.1871262 +-0.4241399 +-27.0482025 +3.2987642 +-4.3818493 +-3.4140263 +1.5414383 +-0.3003019 +-0.8736189 +-2.7564902 +-0.9836416 +-3.8498273 +1.4718668 +-26.0461502 +-3.9051790 +0.8802454 +8.9355736 +-2.2244020 +-45.0028801 +1.9394008 +0.1745806 +-0.1725526 +2.1505067 +-0.3853332 +7.6990905 +0.5499753 +3.8083034 +-3.1436305 +-18.7298813 +0.3723167 +0.8700656 +-0.9174042 +-3.4620268 +0.6570718 +-4.3908429 +0.2384758 +-12.4900970 +-2.5134015 +-0.5644407 +-0.4977563 +1.1240474 +-5.8410912 +6.5125656 +-0.0752543 +-0.2017356 +1.9074614 +-1.3145410 +-1.4700027 +37.7057495 +19.1836433 +1.3576096 +4.6179686 +1.2501031 +-0.2091278 +6.3713775 +5.8756676 +7.4436755 +1.3021461 +-0.5440934 +1.5735716 +2.0351880 +6.0730829 +-24.2484493 +3.4098971 +0.0450518 +2.7166758 +-9.1829510 +0.1341221 +1.1280961 +25.9739170 +4.8360147 +1.3434803 +-0.1895319 +-6.5015488 +-2.1366551 +-0.0230890 +1.0451558 +-0.3966144 +0.2811695 +-1.5657060 +2.4976463 +-0.0178517 +0.1047830 +-0.1923706 +-1.2769092 +7.1963968 +2.0546119 +0.8511394 +-4.3806481 +15.5329084 +-2.8920386 +1.2069064 +1.0636331 +-6.8971243 +-2.9679356 +5.2395539 +4.1501288 +2.8162165 +4.3077493 +2.8470380 +1.0019027 +0.7074656 +-2.3810918 +-0.1859029 +5.4286337 +1.1100684 +4.4434891 +-1.1028308 +-1.0889006 +-1.2103291 +32.0861511 +0.7602808 +3.7372639 +4.0350666 +15.0457268 +-0.2614787 +-0.0426792 +0.0638755 +4.1672139 +2.2325122 +1.9741014 +1.2492347 +1.6306108 +3.4354324 +0.3264317 +-2.1667552 +3.2448738 +1.3450909 +3.6208415 +-0.6115174 +5.8876157 +-5.6667633 +4.8962111 +1.4663268 +1.1439304 +1.0680494 +6.7731519 +0.3011750 +0.6226802 +7.5640459 +2.1862459 +10.4463406 +9.2194071 +-0.1581001 +-13.2264013 +-2.1575663 +-2.9380565 +-2.8361001 +-0.0853705 +1.0090575 +-1.4695514 +-0.9956104 +-5.2602696 +-0.4815341 +-2.6093316 +0.3010663 +16.5681210 +-0.7595575 +-0.6505807 +-3.1584921 +1.6889744 +-0.9817595 +3.3753963 +-1.6590025 +6.0464640 +2.0982940 +-0.4535419 +2.0888596 +-3.1038659 +-0.8743639 +21.9898338 +0.4900566 +-0.7628491 +4.6003828 +-1.4369190 +0.7819438 +-19.0982075 +-63.8845482 +0.4576730 +-4.4302454 +0.1830850 +-2.5327601 +12.7723217 +0.3537565 +-6.0729194 +-0.7547520 +-3.1091835 +3.5029466 +-0.4916578 +1.5152694 +-0.5459107 +-0.8756673 +-0.9905840 +-2.6042073 +1.5978327 +0.3613080 +1.4908173 +-2.1287620 +1.7710029 +0.6400713 +1.0510113 +-7.0783739 +-0.4241018 +4.2358065 +-9.6006279 +-0.5731925 +0.7096832 +-1.3404840 +3.6677411 +-1.4203826 +-0.9858301 +-3.0817711 +0.6025589 +-6.5536556 +-0.1854406 +-1.9527950 +1.8219057 +-3.5422988 +0.4775162 +0.4039667 +0.0113167 +0.3271087 +3.4972196 +8.4555426 +-21.2877197 +3.9514828 +-1.3970401 +5.1056843 +0.5499339 +-0.1436970 +1.3402433 +1.9868958 +0.9287252 +-2.4252839 +0.2223295 +0.9466305 +-1.3110372 +3.1522160 +-9.6422758 +-4.2604179 +3.7461581 +-2.4751885 +1.2321663 +-1.8731335 +2.3791871 +0.5766705 +0.5320632 +3.7996433 +1.2264129 +-0.7930697 +2.8290944 +-4.4061565 +2.0725121 +2.2622631 +-9.7770042 +-6.0588160 +-0.0559282 +-0.3269662 +7.3419423 +1.3076273 +2.1360753 +1.3730253 +2.5208800 +1.6344171 +-6.4671035 +0.4651506 +-3.9400270 +3.9222133 +-4.2817259 +20.2332382 +14.3438873 +4.2676711 +-8.5670357 +-3.0724843 +-7.5942545 +9.3604612 +-0.4642509 +1.2420681 +5.6141324 +0.0751749 +0.5088475 +0.1428031 +27.9375153 +1.2252098 +17.4103546 +5.7614293 +0.0378445 +2.8991990 +-1.7964255 +0.2081612 +2.2969558 +1.0186948 +-6.9426370 +1.2321750 +-1.7440203 +-1.2462008 +-2.0013678 +2.2323368 +15.8457909 +-17.1292591 +-15.9462538 +14.7353277 +-1.3908067 +-0.3034473 +-60.2335587 +95.4841385 +0.2470276 +-27.6478500 +-4.6041617 +3.9272950 +-30.0403805 +10.1087322 +-26.9368420 +-4.6521482 +5.1142936 +-14.8278131 +3.5023010 +57.6976738 +-6.0803027 +-1.0257581 +7.8457899 +37.2513351 +21.7884331 +0.2570181 +-0.8569245 +-31.9940281 +3.6716056 +-0.1075062 +-4.6236358 +11.5118752 +2.6588044 +0.2896216 +-24.7006817 +-14.1249952 +1.0230448 +-0.5482973 +2.8443713 +-49.8515434 +3.0336096 +1.2893124 +3.2614648 +7.9861460 +-1.3974694 +27.0072479 +76.3415604 +154.5337982 +7.7209940 +5.7540431 +-5.8728185 +-6.6429081 +1.6570039 +-53.2690392 +15.9123135 +-5.4202738 +-19.4975281 +2.7401950 +10.5417604 +-0.9380208 +5.7478223 +-2.3201303 +-3.7925475 +-4.3446460 +15.9977665 +0.6181528 +1.7950900 +-7.7513843 +19.1096306 +-3.2334821 +7.5425997 +-8.9620590 +-32.4473839 +11.6680470 +2.5058172 +2.0989389 +-31.8261070 +-18.8401814 +-7.7889805 +3.4357276 +-2.2892342 +2.4160101 +-13.7590179 +4.2009797 +-16.9131432 +-8.1916456 +6.2050362 +6.6085825 +40.9137917 +-23.0010033 +-3.5916097 +1.4259629 +51.8436012 +1.7017945 +12.0130148 +13.5508022 +4.2700562 +45.0605545 +8.4442711 +16.3372822 +6.0091972 +-2.5422421 +18.2837391 +30.9551563 +23.5783215 +-15.2251616 +-5.1613550 +-3.3872139 +-8.7763472 +2.3299398 +-20.8562660 +2.2215049 +-27.2965431 +-3.0454555 +-10.3959675 +3.3759954 +3.1685290 +-7.9025965 +-17.4755802 +3.5583842 +-15.3993025 +-15.0013361 +-47.8196373 +4.6670132 +-16.1844177 +-1.1906552 +1.9660723 +15.4685392 +-6.6721959 +-2.4753795 +3.8282893 +10.2470179 +26.4906158 +-12.4893866 +15.5641804 +31.9909554 +-15.7048950 +-47.7132263 +3.7240071 +14.0681381 +17.8607540 +26.6684856 +3.5765429 +7.1369381 +-3.6841562 +-4.9822316 +15.4886608 +43.4559135 +-32.1554718 +7.5312891 +-6.0079041 +-2.8846209 +-20.4478111 +-5.0556979 +6.8782258 +22.2667255 +19.7925091 +-0.1832898 +-16.0178680 +-0.4610051 +2.1280172 +8.4202223 +13.9275627 +-10.4750137 +-17.6890316 +4.5563583 +-3.2983472 +-51.2671547 +2.7424436 +8.3173475 +15.8126240 +-4.0640397 +3.4349418 +7.9601769 +41.2065353 +201.1947327 +-13.8448849 +24.7479610 +7.0115643 +12.0589981 +-4.1808491 +11.9678507 +-2.4356458 +-9.0259800 +-16.4676819 +8.3594084 +-0.8363641 +-5.4464049 +-15.7152691 +3.3861563 +-9.0607843 +-0.1204679 +1.1339738 +5.1283445 +7.1018291 +-15.0969067 +15.3198214 +-13.6091070 +-5.5862279 +-11.2074223 +50.7865143 +0.1457928 +-2.3019171 +3.6887584 +-1.1753262 +15.9911766 +-5.6968451 +-8.7138796 +-6.1362615 +-1.7726307 +-6.8349228 +11.8133821 +-2.8143079 +5.6465840 +-16.7815552 +4.1994891 +-32.1681213 +-4.9160056 +-7.3403773 +-5.0967813 +42.6747704 +10.1604004 +13.5892467 +2.6606753 +21.6461906 +26.0626678 +10.9037104 +21.2964916 +9.9006262 +-1.7643030 +34.3232307 +31.9836807 +50.3997040 +19.5265942 +-16.7710819 +-11.3685989 +-11.5595798 +-5.3072276 +16.9801979 +9.3115120 +-29.6117210 +-8.4846926 +16.1515179 +-15.1330328 +5.8660860 +2.3605421 +1.2467308 +5.5768123 +16.2687931 +-15.9864388 +6.4700856 +11.8175821 +-1.2933127 +-5.9049716 +3.5139532 +-10.3823376 +6.0967221 +-6.9381537 +-6.9312453 +0.0758026 +-25.9839649 +-10.1739607 +-51.9918365 +35.3508186 +21.7709846 +-4.4423628 +2.8261485 +-24.0981522 +-20.1505890 +-25.1407833 +-137.7723083 +-14.8960133 +-0.2867721 +-30.3788166 +-21.5279198 +37.0317383 +-31.9943085 +-22.9987354 +12.5976067 +59.1928291 +-6.2636385 +11.6667280 +-10.5298567 +-12.6595173 +-55.5359268 +5.6715961 +2.6606104 +-7.3637257 +-8.8942041 +-5.7326746 +-48.2905121 +-18.0274143 +10.4854174 +-8.1064510 +-1.2473736 +27.4394741 +-14.6369896 +-3.8662455 +-14.6907158 +-11.4019489 +-9.3099518 +21.4561043 +15.9980135 +-3.3231523 +26.6489334 +-14.6799412 +-15.1303158 +-0.5996227 +4.5517368 +4.0265517 +-56.5358658 +-16.2113972 +-38.0815353 +-24.3911743 +11.3569870 +9.3741856 +2.1927497 +0.8461491 +4.4011455 +-1.1353232 +-2.8655357 +0.1287127 +-17.0124130 +6.3596354 +-13.5435944 +-12.9623470 +10.6678438 +0.2775014 +13.4860125 +2.0448968 +4.9563327 +-3.1018112 +-4.3362441 +-28.0153751 +-18.4049721 +-14.4938564 +-0.0483862 +-12.1305656 +-9.1220770 +-2.9033799 +-13.2675581 +94.9844284 +-18.5825386 +1.1693637 +12.8100290 +-0.4944531 +-10.1079540 +2.3853910 +7.1813264 +-20.3655643 +-17.4848919 +5.8719640 +105.0177231 +-13.0678501 +8.1632748 +-12.8638172 +-29.4697990 +12.4022522 +-7.6207371 +-6.4117188 +-26.7049637 +7.4311471 +26.1251698 +-3.8438845 +2.2622967 +8.2494841 +-52.9761047 +-15.8927135 +-5.4030495 +4.1448436 +17.5570374 +30.8921566 +-23.2936382 +-2.9404607 +-3.9857209 +-4.0659485 +-0.9905508 +10.9572020 +13.4275360 +0.5623202 +-84.1727676 +9.0909252 +29.2090015 +49.3970222 +-39.4111977 +4.9711847 +-5.5937982 +9.4869061 +-2.4374692 +5.0601711 +6.2535496 +-1.7925785 +9.1172686 +-18.8030319 +6.4571118 +11.8733768 +-24.9594078 +23.1848793 +54.6836395 +-1.3644634 +5.8459668 +6.3378258 +-14.9674807 +11.2409801 +-1.5042136 +-0.1680900 +-15.1520824 +14.4853220 +1.5166731 +4.6048059 +-1.2875727 +-19.5212612 +-70.3899155 +3.3887901 +11.6853771 +15.9927635 +2.9207220 +0.4699283 +16.6252384 +1.0931914 +-10.0937576 +-1.7813364 +8.2895803 +40.9694023 +1.5457602 +-0.5299845 +2.0884266 +6.0249176 +-14.5536413 +19.3779526 +15.9966488 +-15.9948492 +14.1679220 +-14.8258677 +-5.9238577 +-0.0515336 +5.2516909 +-25.6428051 +-5.1724167 +24.2518501 +39.6880836 +-3.3569634 +-1.3995590 +-1.0843774 +-3.3937771 +20.4291000 +5.9216413 +4.0871172 +5.7924466 +-5.5398364 +3.7871404 +-6.0595632 +-2.6392148 +12.6915789 +0.4486777 +5.4669819 +-7.9998631 +11.2596426 +2.0362027 +2.7898068 +-3.4200537 +-2.8810396 +-5.1748261 +9.1570091 +7.8761978 +11.7088165 +-11.6127844 +-4.1488080 +-1.2486134 +-13.4566927 +-10.2107201 +7.1276875 +2.7248764 +-22.5352230 +5.8436666 +6.2722406 +36.9476357 +-7.5108514 +-4.3628874 +13.0752087 +-65.7757797 +8.1013927 +-1.7435474 +-42.2987175 +2.9024792 +-3.2326431 +4.0477862 +4.7214885 +-31.9954185 +22.6893635 +22.2622318 +7.3748569 +-6.1097751 +2.2458808 +-1.6115576 +3.9743083 +6.9994345 +2.0940421 +-98.1026764 +-13.7672777 +1.0268642 +11.4318638 +4.8466020 +5.5480413 +-15.0789032 +-35.3147545 +-15.9993591 +2.1003258 +-4.7205229 +2.2264931 +-30.1313877 +-19.6385040 +56.7421875 +-0.7519821 +1.7943047 +-11.5526695 +3.2042799 +-7.8704309 +-4.6238236 +2.0205479 +-19.8042316 +9.3829441 +-6.5914636 +-16.3449440 +-5.7436132 +-8.5361738 +-29.9489784 +6.5495782 +-2.3582594 +-18.8084908 +16.2390957 +-6.2473774 +1.1680926 +-1.8248175 +6.2270570 +-22.3758564 +2.6180284 +-9.4498844 +4.7893386 +-8.9545727 +-18.3716545 +-3.0244577 +-0.2020224 +-34.1033669 +-2.0487649 +-0.4824986 +-0.9997819 +4.7817106 +7.8212638 +-0.9457606 +-6.3026586 +-47.1536026 +-1.3160641 +2.6874189 +-0.9178239 +-2.8703246 +19.4216061 +-24.0714054 +-6.2641511 +41.4097824 +-13.4618425 +3.5890336 +7.4609470 +3.2148232 +0.2361069 +31.9965553 +3.5050120 +-20.7136631 +-41.4980240 +5.8353295 +2.1490753 +1.3662258 +3.3042400 +-14.2099152 +-9.3934917 +-3.8525572 +-0.5669333 +5.3661742 +-4.5651860 +5.9762554 +2.5642722 +-16.4924660 +-18.7029381 +7.6696024 +-9.3372765 +-18.0037708 +0.3229516 +-1.0192786 +-17.6705341 +2.3016765 +0.4506316 +-11.3621101 +-2.9836223 +-6.7013130 +12.4339743 +-2.3902996 +2.2774093 +-1.2305363 +8.7203417 +-3.6494296 +-2.0434957 +3.7003875 +-7.4302163 +-5.8514385 +-13.8453579 +3.7214968 +0.9704259 +-14.3025703 +38.9468498 +5.8138638 +2.5137341 +31.9965973 +-1.4179642 +2.8246710 +6.5264449 +-5.8228812 +25.3469772 +7.6928725 +-24.4941273 +-2.9587023 +-92.6259155 +-9.8647242 +14.1992369 +-0.4231023 +19.2068825 +-0.4529025 +32.3471184 +-7.2660284 +0.6441125 +0.5582994 +3.6066470 +-4.0484400 +-23.0916538 +30.4030857 +36.4009628 +-3.6054869 +11.0013638 +-4.0042124 +4.7986536 +22.5844498 +2.6188512 +8.5274334 +88.4362488 +30.1616268 +-26.1650982 +-50.7707977 +-8.1691360 +1.7197734 +-0.7906122 +-35.4555893 +9.5586061 +-84.7464371 +-25.4694977 +15.0869417 +22.2820454 +0.5022030 +6.5379105 +12.6734276 +15.8047390 +-25.3345852 +-48.8498077 +10.4146633 +3.2128122 +20.4352989 +14.0902853 +-9.1179276 +-9.8011837 +-18.1849518 +0.7648852 +-7.5514908 +22.4337997 +-0.0186078 +-32.6030045 +13.8352814 +-29.0873928 +-5.9305935 +-18.6540356 +-25.1964817 +5.6742077 +-6.4559064 +-5.6177239 +11.7653303 +10.4237547 +-12.1124125 +-1.4642812 +12.0887756 +20.6396351 +-63.9993095 +-24.3682842 +-45.0627670 +16.5264988 +10.1116762 +21.0585785 +22.0739899 +8.7220612 +21.3232193 +0.5725826 +72.1184692 +17.8322964 +-8.5313988 +14.0325155 +-14.5056810 +-23.1103477 +-4.5347452 +57.7112770 +11.6402826 +-2.6484485 +62.9422226 +8.6044254 +-43.2894783 +14.2037373 +-8.1024675 +0.9669926 +-30.9859295 +-16.1212788 +12.1874800 +-23.7636185 +5.8394270 +1.7372161 +5.6101546 +15.9950256 +-11.3181534 +0.3083869 +10.6986885 +25.5652695 +-7.1987863 +-25.6365585 +1.3880346 +15.8834143 +-9.6273661 +7.7038560 +-10.0042562 +64.0427551 +-32.9304314 +-9.0584030 +-23.8854465 +7.9959517 +30.9953346 +6.4232426 +13.5197048 +-121.9622192 +-7.7289233 +-135.6516876 +22.3077736 +32.6518402 +-19.0874672 +-50.1530952 +-12.0714178 +-5.4363275 +-25.2570190 +12.5904770 +-4.3340182 +-17.8015747 +-6.9517508 +12.3185186 +5.1311436 +-4.6999035 +4.9658685 +-11.7927961 +4.9940686 +26.6524048 +24.7743130 +-19.8482094 +-2.6855626 +-41.1924934 +-9.5438967 +2.2728379 +9.9102163 +4.4405813 +-0.2772527 +-1.0212399 +1.9838778 +0.0911273 +1.5072687 +2.2808676 +-0.0928170 +-1.7383311 +-0.3671114 +1.4284964 +-2.8753443 +-16.2638435 +-1.3739275 +-0.1283001 +-1.1531082 +-0.0586038 +1.6563874 +1.4763848 +0.8183201 +-1.7229457 +1.4670199 +3.2450984 +4.6573563 +2.0308373 +-0.8080092 +0.6457186 +-85.3249054 +-2.7013018 +-0.5806004 +0.9872465 +1.3132288 +-1.2416408 +-4.4567900 +-0.3404481 +-2.6393363 +-0.3625519 +-3.2549591 +0.2980958 +2.9651530 +-0.7045152 +2.6055005 +2.7182057 +-0.1686317 +-2.4767964 +2.4238076 +6.7092199 +-0.6943973 +-1.7592241 +3.8251693 +1.2122629 +-0.8155658 +3.4650798 +-2.1071725 +0.7374614 +0.4494598 +-1.0495452 +2.4709823 +2.2201343 +0.7392008 +-3.7837086 +0.8740917 +-0.9889643 +0.6845317 +14.6243601 +-1.2509779 +-0.9395011 +3.2871101 +0.7315514 +-0.4244111 +2.4188452 +2.2750132 +5.3830786 +-3.3836150 +0.9866288 +0.8415734 +4.0902271 +0.5861957 +-1.6192333 +0.9462940 +-2.0620954 +-7.0974956 +-1.5670180 +-7.8273087 +-0.8206898 +-0.9275458 +-0.2064557 +-1.2224178 +3.6628933 +4.8661585 +4.0308647 +-0.0394720 +-10.4006948 +0.3955280 +-0.6358117 +-4.5109334 +-0.8556508 +-11.3338604 +0.8369884 +-2.7977326 +0.1690835 +0.6907274 +-2.1575329 +-2.6032844 +6.7993679 +2.9652879 +0.0338107 +0.4023826 +16.6444912 +-3.0396907 +2.5658748 +-0.1573355 +-1.4841479 +1.6280297 +0.0427830 +-7.5298238 +0.7502438 +-2.7441916 +0.2986988 +0.7095501 +-41.3030167 +-1.3472508 +-5.7029586 +4.0371037 +-4.4819851 +0.2883489 +1.4182361 +-28.2787170 +3.1894379 +-9.1725454 +0.3513210 +-0.8722541 +13.1271572 +-10.8155241 +31.9759216 +-16.1830578 +2.2723382 +5.2929134 +-3.6158316 +-15.1220436 +-64.4435730 +17.4645367 +-5.5572147 +-4.9404216 +10.2952347 +-0.6276521 +-0.6819249 +-4.6806054 +29.4749699 +2.7967370 +13.4154196 +19.9428024 +21.2174530 +-2.6723635 +-4.1076570 +5.5577760 +-4.5034800 +2.5012386 +0.9345784 +-5.4911418 +-1.5930985 +-14.6145372 +-4.6056967 +-10.5447865 +-51.5544853 +6.9735451 +-1.8683218 +-0.7128479 +-4.5463223 +16.5575085 +4.8773894 +2.1241589 +0.0363435 +4.7023325 +-3.2719069 +-4.7555256 +-2.3039286 +-14.4158268 +11.0544748 +-0.9215857 +4.0002470 +65.9507370 +-7.9445300 +-2.4765000 +-2.7372842 +7.7412558 +6.2604752 +-0.0157840 +5.3381934 +8.1165504 +6.9809914 +-0.1422919 +21.2932262 +43.3619308 +2.8781581 +5.2534137 +3.4044049 +-12.0033302 +6.8968911 +5.2070885 +-67.6121521 +0.0153955 +-17.7301960 +2.7363703 +0.9718482 +3.9727991 +-4.4500785 +-5.9645472 +-7.6509390 +-13.4782219 +14.0102348 +-6.8615918 +-19.8908844 +5.3126168 +-61.1274414 +-1.0660715 +-12.3885279 +-12.0513105 +-5.6351824 +6.9108849 +-7.5917039 +-0.6369520 +4.2630658 +0.9551219 +7.7971263 +17.3341656 +18.0779819 +-19.2699280 +-0.0870610 +19.6663132 +28.6053085 +41.0676346 +9.7659025 +-5.6953859 +1.2542589 +-2.6632218 +3.1475792 +1.9545531 +28.7098598 +-2.0557334 +-8.6670494 +-12.3486910 +42.2432175 +-10.3103065 +-1.5205164 +-1.5502599 +10.6133194 +-2.3685968 +-37.4452286 +6.2240129 +4.6934261 +-6.3220377 +-18.1513271 +2.4535775 +-6.4964681 +-3.5948346 +0.3423952 +13.6310320 +-4.0903974 +-4.2870169 +-16.4116135 +7.8922062 +3.4642770 +30.0062027 +2.0080173 +-1.4554554 +10.3801661 +3.1822577 +6.9114752 +-8.2643337 +-65.1148300 +-7.9621949 +-1.7395203 +5.7025657 +22.1104927 +13.7501869 +13.7054157 +0.5264278 +-26.7296734 +-14.6204109 +-12.1770401 +0.0311525 +-8.4040165 +8.9706955 +18.8835335 +9.7262983 +-0.5859714 +30.8449497 +-0.0406822 +-10.6151581 +0.0809776 +6.1083999 +-29.6409836 +-4.9468274 +6.2491469 +-1.4277407 +11.5934944 +-1.8148086 +0.5378486 +-85.6245193 +-1.7222314 +10.6753702 +9.3502054 +-15.9965734 +18.4873638 +2.2597299 +12.5249119 +15.9978456 +-5.5423303 +1.6212052 +1.2279630 +-33.5017395 +-33.7100983 +-19.5231304 +-1.2780565 +3.6929233 +-16.5070267 +3.0367129 +20.5717907 +-6.1345639 +8.9903069 +-286.9699707 +8.7836933 +1.7347132 +-2.3936155 +-4.0634365 +-0.4872436 +42.7214432 +10.4521151 +-7.6583538 +-0.0829336 +-9.7947054 +19.1004124 +12.7768240 +6.7803087 +-2.1919060 +-0.5013856 +1.1634377 +13.2453337 +4.6643071 +11.8078966 +1.1369665 +-47.3275375 +-1.5981737 +-31.9967918 +-12.9952946 +-4.0163136 +8.0636816 +58.3114662 +13.8849392 +-11.3711338 +-8.2764969 +11.9503984 +-5.9165249 +3.4574537 +-2.2316554 +14.6565905 +-24.0405197 +-21.4394150 +7.7946815 +7.1978493 +0.2481967 +5.1239872 +11.2525406 +-2.7376111 +1.6443626 +4.9110336 +-1.8692833 +-48.5190315 +0.0992222 +2.1239874 +2.5651538 +-3.3624265 +-26.7761669 +-13.8559990 +0.2421748 +8.0192089 +2.0652034 +3.0817327 +4.7885056 +13.9530840 +16.8263340 +-14.3724022 +0.0144464 +-271.9219055 +-4.5384274 +-9.8620872 +1.3231242 +-4.0309734 +-17.0573978 +6.3344584 +-1.6954867 +2.6429095 +-0.8014386 +-16.0517368 +-39.4233742 +-44.8894081 +-56.9589729 +19.9265461 +-2.1687264 +-16.0642548 +19.7808495 +-10.9526424 +-35.8197517 +-1.3122226 +-11.8610783 +-32.0283165 +-185.6921844 +-7.7856727 +2.5223095 +-15.0366316 +-7.9966283 +-47.2921715 +-6.7298131 +-0.6376063 +6.5755105 +-4.8067660 +-3.2726161 +10.8367910 +0.2051359 +1.2475375 +-4.0748882 +5.0054765 +6.7715373 +-11.2305508 +-18.7513180 +-1.1094002 +6.3962822 +2.1038618 +-45.0565109 +-73.1658783 +13.9907837 +-10.3677816 +-69.2270966 +2.6567633 +1.9466544 +3.5660391 +-70.0862579 +-1.6902601 +24.9889164 +34.4918022 +1.2330906 +-33.7671127 +-3.7557392 +4.2642193 +8.5056505 +-21.1657162 +0.4018917 +10.6276026 +3.8182352 +-8.1641283 +-15.9847279 +-1.7695893 +-18.1444817 +15.0724039 +-0.0609761 +0.4124975 +-5.8787608 +2.2071831 +-5.3061666 +24.0822926 +0.5763617 +5.6061897 +-22.4629955 +-4.0035639 +-17.6485538 +-13.9777527 +1.3372996 +-1.7021896 +-7.9964252 +0.1677938 +8.6075554 +-35.0867577 +-1.0874877 +-4.5785055 +-0.4381015 +10.4546165 +-1.2774811 +0.3524871 +-1.3719171 +-38.0973244 +8.2663126 +-2.1244445 +-307.0060120 +-4.6816726 +-4.8112507 +-2.9973185 +8.0550547 +-40.9764252 +-9.0466213 +-1.4246163 +-42.6492882 +-2.0103686 +-6.3585782 +9.7970533 +7.8856168 +-1.5003711 +-0.2817417 +-15.7879171 +13.0411882 +3.2910409 +19.6578236 +0.5072262 +6.3875856 +13.9329262 +13.4828014 +28.1313515 +-38.1346626 +-3.6680975 +-4.8967996 +4.1413021 +5.4971452 +-2.3662415 +2.4184122 +-0.2115874 +1.3651776 +-0.3796278 +-1.4503247 +-0.3868273 +-1.1755747 +-0.5863842 +-2.5806916 +2.1969783 +-0.5516695 +31.1259880 +5.1796947 +0.8732315 +-2.3911865 +-3.3394117 +0.5903905 +-1.8093396 +-33.0695534 +-0.3398266 +1.8860455 +-1.3266383 +8.3336477 +-1.9414206 +-0.0884881 +3.9077797 +0.9309461 +3.1419611 +-1.8049531 +-1.0513084 +3.9819014 +1.8286146 +-0.9991935 +0.5035084 +-0.1296815 +0.2989436 +1.4899539 +3.9645512 +-4.4690666 +-0.1145744 +-2.7767234 +-0.2238510 +0.6354665 +-1.2362213 +3.1935027 +29.9272442 +-13.6779261 +17.8337593 +-3.2998939 +-0.2858470 +-0.4398355 +3.9302189 +13.0877237 +2.2902780 +2.6552942 +1.6815047 +1.3769991 +1.3085073 +-0.6113620 +-1.3142283 +1.1273857 +-0.3673241 +-1.1967785 +0.4157949 +-3.7928879 +0.6069318 +2.8761241 +-0.2675661 +-2.9769292 +6.1627493 +1.6248629 +-9.1755104 +-0.1943212 +-0.1127013 +0.0640931 +-7.5749679 +-0.6719714 +1.7429823 +-3.6618128 +4.3610725 +-1.0046679 +-0.8880039 +-2.3777516 +1.5714718 +2.8778830 +0.5864002 +0.7774112 +-0.6037810 +1.4115232 +-2.9569874 +-0.5502409 +3.4280434 +-2.4195619 +-0.0713237 +0.5856047 +2.0603075 +14.4976463 +-0.1936292 +16.8531303 +-1.9730554 +-1.4110847 +2.4615891 +-2.0322104 +1.7422303 +-1.7891093 +2.0177534 +-0.8143381 +-2.7517672 +-1.3762279 +-3.6576488 +-0.0805784 +-2.7585092 +1.2474177 +8.9879045 +-0.3387354 +-1.3612229 +-0.6281999 +5.8005614 +0.3268666 +33.9801674 +4.1046000 +31.1934376 +2.0511758 +-0.3559058 +-0.4507598 +0.2839745 +-3.6589224 +-17.0400028 +1.1480136 +-1.1737170 +-0.5494599 +-8.9965715 +0.2226215 +5.7456040 +-7.4587383 +-10.9484062 +-12.8180046 +-4.1797600 +-21.7846775 +6.7742896 +0.1602857 +-2.1901808 +2.5597341 +5.3893628 +-32.4387894 +-1.1141362 +-2.7691045 +-0.2340928 +4.3171239 +4.2614431 +-6.8922997 +-14.7233315 +-2.6859517 +6.6282840 +-0.2561971 +-9.6389551 +1.2071254 +3.8356156 +8.6940928 +-5.5705056 +-6.4765773 +-30.1849518 +-3.4310284 +-4.1049695 +-8.8914309 +-4.3847971 +-19.7682590 +-2.9286304 +-61.7135162 +-8.9124289 +-34.0837440 +4.5561438 +-63.5372772 +-16.5719967 +8.8347015 +-9.1060619 +5.1113458 +3.2125421 +-3.3004997 +5.3284812 +0.4013606 +-13.8247700 +17.0029125 +23.3209038 +-1.8753042 +-3.0353100 +-0.1387478 +-2.7639596 +-2.5353816 +-14.6141529 +0.5253220 +-16.1748772 +0.3060964 +-27.1664314 +-5.4426079 +-4.8995328 +-13.1293468 +12.1629705 +-1.4225502 +1.0010532 +-49.9171295 +-0.4153548 +-6.9615107 +-6.4153919 +-5.9519253 +-30.1528645 +-40.4234009 +-32.3113289 +-0.7564009 +-20.6488667 +-3.2833250 +-7.5980701 +-5.7572594 +-3.9373939 +-1.3979044 +-4.8921804 +-4.6938767 +-7.4941230 +-4.6769886 +-0.2796212 +-1.9842085 +-3.4560916 +0.5084054 +-25.5574226 +-25.6905060 +-5.6887116 +-12.5300159 +-13.6531801 +-5.5072570 +-38.7717819 +-11.1004009 +-39.8879852 +-0.9876991 +-13.2014885 +-4.0424671 +9.1249952 +-9.4922237 +-16.6650352 +2.9956698 +-7.3508964 +-4.7095575 +-6.9536963 +-3.4642794 +-0.5900239 +-0.2535873 +-11.8209143 +0.4743532 +8.7411089 +-2.1886768 +0.6323537 +-2.4222836 +-41.1629868 +-4.7589660 +-1.2821018 +-5.4976058 +20.5796299 +-0.9069617 +-4.1160593 +-5.9706588 +-9.0743790 +22.7498150 +9.4691477 +-4.8099236 +20.1016579 +0.3403182 +-2.4772663 +2.1604581 +1.0050207 +2.6412187 +34.1420135 +2.7074299 +11.9584370 +10.3033867 +-5.4292583 +8.2875786 +2.2724710 +1.9529588 +-6.2786822 +36.1959496 +-11.2259493 +-2.6944382 +6.9592381 +-13.3568811 +10.2668781 +3.1450453 +7.5358448 +34.6047707 +-1.2224610 +2.4051175 +22.8442326 +-7.7288303 +-0.7543475 +-5.2050891 +5.9126344 +5.7173486 +1.3092989 +-11.0394411 +-7.9071269 +-8.9530773 +5.7938247 +-32.2452583 +37.1779022 +-25.5282040 +6.6079001 +2.5673842 +1.8784510 +-3.3918493 +4.7393460 +-0.6789621 +-13.3081312 +25.2444496 +58.4191895 +5.6054983 +-7.7245698 +0.5285940 +-3.4260454 +-2.7214119 +-4.7732549 +-0.8146796 +-7.3420067 +-0.0029001 +-9.0417786 +-0.7780080 +-3.5817888 +-7.2194538 +9.4160938 +-1.7346834 +-8.5585604 +-32.3972969 +0.3826827 +-5.9698620 +-23.8460369 +-3.2758832 +-1.9214467 +8.1917076 +-26.8069954 +9.9962044 +9.3707666 +0.4651519 +-5.4878311 +-0.8080675 +0.0163609 +0.6830919 +-2.0164592 +-9.8065615 +-2.1788769 +-4.9924612 +7.5904851 +-4.4595799 +-0.1284726 +1.8692729 +-1.7414961 +23.5835190 +-4.2599044 +6.8613753 +29.3632698 +-4.8396449 +-14.5598154 +-26.3372173 +-1.9513191 +4.3649697 +-7.7976737 +-13.9392452 +-6.6843400 +-5.3950462 +-10.7864256 +2.7975929 +-12.2795515 +-3.8655539 +0.0982696 +-3.2642586 +4.2669978 +0.1702278 +-10.3195286 +0.5543779 +6.2016611 +-4.3257761 +-10.7876863 +-0.0085111 +-63.9909096 +-2.6644199 +-6.7186036 +-6.3465090 +-53.9874611 +-8.8732967 +5.0099893 +6.1630998 +14.0497417 +-31.9215908 +-10.5258064 +-8.1709328 +-11.6818533 +45.4933510 +-7.0397577 +4.2510080 +-26.0845680 +14.5245113 +10.2274027 +2.1538811 +-1.9945356 +8.8414097 +7.9117994 +41.7042465 +28.8524132 +-11.5487671 +-9.3159895 +3.4514418 +6.0950851 +-0.7340670 +-1.7499094 +-15.9591074 +27.2820282 +4.9093823 +-0.1052384 +-13.9045515 +0.8509921 +6.1422091 +18.2354202 +2.7501545 +7.4504075 +0.8768611 +-10.1736088 +-9.9546432 +-4.3861818 +2.5959778 +2.2448516 +10.4398403 +-4.6230011 +-25.6260529 +11.1646671 +55.8753929 +-21.0841713 +-13.5011148 +-3.2678754 +8.1701403 +-7.7914820 +-91.2670059 +10.2109833 +12.3798075 +1.5884135 +5.8853021 +4.9558239 +-1.4863827 +5.3940787 +-3.2166767 +9.6526499 +5.0435653 +-10.8588810 +6.6546459 +-1.4094669 +1.1980146 +-1.3667597 +-15.9977579 +1.7215166 +1.8085788 +3.2701859 +0.5532638 +3.5737560 +5.2703424 +41.0742836 +-3.1241941 +6.0488863 +-29.4305477 +1.5488884 +0.2261423 +-8.6691427 +-2.0070255 +1.1382557 +-16.0000153 +7.3857398 +-3.2668047 +-38.9104195 +4.0192385 +10.1680145 +-5.1279693 +-11.8266096 +5.8966446 +-8.2062416 +-6.0095248 +-52.1673164 +7.4744434 +-0.1728361 +-23.9987106 +8.6584816 +6.2728739 +25.2739525 +-8.6132612 +11.4590673 +-42.8737869 +6.9266844 +-14.0892820 +17.0451221 +-1.7726977 +-0.8424926 +7.7631211 +7.5710678 +1.3413211 +-22.2705040 +-10.8358669 +-0.4664765 +1.9779224 +-8.1932449 +-5.0775065 +-20.6593475 +2.1628449 +7.8058653 +-16.1965580 +-7.5719810 +1.9486121 +-1.2042364 +-4.3840442 +-8.7773676 +-1.0369582 +1.1326127 +0.2756777 +4.6031418 +-1.5366379 +4.8411593 +-0.7200202 +-2.6520438 +-0.1610379 +-3.6792450 +0.6480570 +5.3568163 +0.2674819 +-2.0659904 +0.2847748 +-0.0000016 +-0.0173499 +1.1652296 +1.4523985 +7.8507867 +-1.4631591 +-1.0886180 +-1.3335190 +0.3383608 +-0.1686590 +-0.8647809 +36.0773239 +-1.0946349 +1.1261388 +0.2539018 +-0.4787384 +0.9695862 +1.7898582 +8.3235722 +-1.2511640 +-0.8692084 +3.1482794 +-0.5163090 +0.1436666 +0.0836206 +0.4022194 +1.0878876 +0.1682980 +-1.1521667 +-3.2558799 +1.5111976 +-3.1820240 +-4.0725451 +-5.6621094 +-0.6345844 +2.4308529 +-0.6251961 +9.5402069 +4.5940762 +-1.0828313 +-1.3023536 +-0.5451897 +-0.1400761 +-0.0979151 +1.5196251 +-2.3309035 +-0.4719973 +1.4440161 +2.3773017 +1.1450597 +-0.6933924 +0.8568046 +1.5204827 +-0.8380816 +-0.1905998 +-0.3109902 +11.4611378 +-0.4672991 +1.1016306 +-0.3816417 +3.9727633 +0.7173636 +1.1825997 +-1.1964960 +-0.0602622 +0.7666706 +1.5017986 +-0.7077995 +1.3252982 +-191.2638550 +-1.0800053 +-0.2864310 +1.7322661 +1.4977459 +1.0144616 +-0.2897439 +-0.6268132 +0.3799307 +-2.3796499 +-0.8659904 +-61.4572601 +4.5220718 +1.1317542 +-0.6229650 +0.1124805 +1.2459706 +8.9121151 +-0.6223320 +3.4817803 +-0.2580531 +0.7405838 +0.0726043 +0.6824601 +0.6446277 +1.3792425 +0.1664058 +-0.4444612 +2.0884399 +1.2987454 +1.6474550 +0.2121788 +2.5574174 +0.0362769 +-0.3069218 +4.5210648 +4.0649152 +10.6738558 +-5.2873483 +-3.3491094 +0.4736681 +-59.7852859 +42.8082581 +0.2528385 +1.8730084 +-1.9141884 +-172.7386627 +-0.4429462 +-29.3238602 +10.4700804 +-141.0413818 +-0.0297435 +-1.2197318 +6.1833253 +178.2949829 +-4.2541437 +2.1708925 +-345.7582397 +-19.8449326 +4.0019069 +4.0642366 +-18.0216179 +-4.0221977 +-18.7277641 +-16.7711277 +-4.9384675 +-0.1102694 +1.8530114 +-6.6343412 +-3.2118320 +6.7399483 +-7.9526920 +-3.9441974 +-3.0542691 +1.1822968 +-2.1610954 +-3.4408374 +-1.0962716 +-0.2004615 +-1.6146878 +1.6322405 +-3.8842883 +-3.6424487 +0.0696245 +8.4592552 +7.4284272 +95.0052414 +7.5737205 +-1.1532054 +-7.3351331 +3.7845414 +-1.5511556 +5.0577044 +26.2383995 +-0.9474844 +3.0564051 +-30.4957657 +-3.1901660 +-6.4386578 +18.7784309 +-92.2704697 +99.8916779 +0.0073178 +5.0287943 +2.2146902 +-132.2490997 +-68.4496994 +-0.0336968 +17.3421497 +0.5804471 +-127.2182159 +18.2011909 +-9.8564415 +7.0139360 +-1.9982859 +74.8072586 +-30.1079140 +-9.0668154 +5.3280244 +3.8467164 +-35.4806938 +9.9246349 +14.3964252 +-2.9098699 +-0.0133993 +-5.5689611 +2.4961407 +5.1417346 +5.2431078 +1.5086071 +-6.7179956 +8.0964422 +-15.8823004 +1.7116153 +4.0671635 +0.0495414 +7.0682039 +14.0688696 +14.4536629 +-51.6735649 +-5.5722432 +-40.8464890 +-6.8277054 +11.9221678 +-2.1455503 +0.1455066 +-15.2373543 +3.2809601 +4.2463121 +4.0935807 +4.0550451 +16.3577156 +-3.5115142 +-0.0364953 +4.9649138 +11.6693115 +9.4736357 +-0.9512175 +61.1683464 +-0.4119569 +-3.1003287 +-1.6926463 +-4.5373874 +4.6528044 +0.9552271 +3.5620527 +-6.2311196 +-0.3144176 +3.3909471 +-41.6847305 +71.9401932 +0.3223206 +2.0308483 +-1.2029744 +-43.9824524 +-10.4590063 +1.4525537 +4.5189219 +-95.8013763 +5.8136697 +0.6271603 +-3.7792470 +-9.7373571 +-35.9366570 +1.9495850 +-91.9540405 +-11.5743246 +1.4211141 +8.3310871 +-23.3820992 +-53.8558273 +-10.0670605 +-50.6621284 +-6.2716918 +0.0023672 +0.2698779 +-16.1129913 +-2.8587189 +8.7179909 +-49.2742500 +0.1886460 +-1.6646322 +0.5738479 +4.1198330 +-1.4333200 +-3.8103480 +-41.4632950 +-7.2577305 +-1.3804920 +27.4086018 +-2.7492921 +-0.0449342 +6.6162415 +10.2053623 +13.6279202 +9.2389822 +3.4718242 +-56.7168579 +36.5132446 +-55.8540916 +1.3908184 +31.4985943 +-4.1919985 +0.1751830 +-4.5766530 +-3.5444689 +-6.2557096 +4.9783483 +-45.7420082 +-11.9573040 +-97.4609375 +5.4539928 +3.4265521 +-59.1890335 +51.5494461 +0.0897586 +6.3994441 +-4.3875113 +4.6186619 +12.3201704 +-7.4849763 +1.1687375 +-1.8091102 +7.9994206 +-34.0078697 +-8.9580116 +1.6923805 +16.1253433 +-24.3915825 +-17.7350845 +-0.0663328 +-37.5855408 +0.0551075 +-6.7593784 +1.7185749 +5.0625572 +-34.5951614 +7.2903314 +0.5270657 +1.6191297 +-26.2321053 +0.7815644 +1.8499770 +0.0862041 +2.7101815 +6.9759622 +6.2056446 +44.2132988 +-145.0824127 +-28.9818172 +-2.8620815 +2.7605646 +5.0768056 +4.2713614 +-20.3739853 +1.0951306 +-0.4881407 +1.2842597 +8.9671144 +-25.9253788 +-0.2039572 +-10.3231220 +8.3414450 +3.8901765 +12.6568918 +-1.1126262 +75.0713196 +-48.4551086 +-2.8664184 +-1.4829446 +-7.9018373 +5.7471294 +0.7067729 +1.3314548 +1.5608076 +17.3702431 +2.6117001 +-18.3565311 +24.9425392 +0.1062199 +1.7719235 +-1.6608876 +19.6808662 +11.2739611 +12.1359119 +4.4129815 +-37.2430305 +2.2827072 +0.3240690 +-2.5374477 +-30.1879978 +-0.9394181 +1.9859433 +-34.0932693 +0.7998213 +3.3641672 +0.5280076 +-16.3602867 +-43.5441780 +-5.0306849 +-103.4434509 +1.2437853 +-0.0670210 +5.8601723 +-36.6711044 +-3.1991107 +-0.2353076 +-26.9457474 +-34.9739456 +-6.3034306 +-0.0052620 +2.1275110 +8.3962908 +-4.8112893 +-69.1793365 +-4.0056796 +-0.2844574 +8.4851170 +-10.5848751 +-1.3281624 +-7.0756831 +-31.9965801 +42.0811691 +5.9150658 +3.3305035 +-59.3261948 +-0.7519293 +-57.0966263 +-0.6933680 +27.5608387 +-27.6494637 +0.8110728 +-4.5212340 +-1.8448473 +-16.1044540 +8.3269930 +-7.7220197 +25.4867058 +-63.9830971 +4.0452957 +3.5823190 +-15.7115526 +232.6994171 +1.4404656 +0.3597776 +-3.6980746 +43.9385719 +5.2741017 +-0.6860736 +-9.1126423 +-0.8013728 +-0.0801504 +8.9044933 +-7.9033008 +-0.8367484 +29.3133888 +-12.4454288 +70.2579117 +-4.4772344 +-11.5551176 +-2.1007123 +1.5557595 +3.5154593 +1.4974637 +-35.1195717 +3.9975548 +-16.0329609 +2.1936541 +-8.6251650 +0.4890101 +0.4012993 +0.1639881 +0.3092239 +2.5949185 +-4.0981827 +-4.8168020 +-67.8145752 +-15.4230537 +-1.9987650 +-33.4646034 +-15.6627970 +-16.7871971 +-33.9183273 +-0.7026179 +-0.1024217 +1.2946514 +13.7167740 +1.4170563 +0.8475513 +-9.2564926 +8.1977730 +0.1449594 +8.4787874 +-0.0690976 +52.6614799 +-20.1554928 +-4.6571093 +-0.5657992 +-18.1066666 +1.0321018 +0.2173279 +-2.6614850 +1.5974647 +15.6248007 +0.5866736 +71.0047836 +-73.5560913 +-6.2499986 +-1.5052321 +2.5208340 +167.4199066 +-0.2801305 +68.0090179 +-50.6070595 +50.7803841 +-0.0181137 +2.5795255 +-42.8293076 +63.8492546 +8.1047974 +-2.0907941 +315.6244812 +25.2636929 +-5.8739009 +-2.3379526 +6.4208436 +0.3209242 +14.2523794 +11.2794189 +6.5669594 +-22.7026653 +-2.2621739 +2.3573911 +2.7205033 +-4.4425001 +1.7899809 +7.8393741 +0.4315768 +-3.5042636 +-4.4470983 +4.0339499 +0.2606975 +6.9071007 +-14.9196148 +-10.3040409 +6.7492909 +4.0748096 +13.9989805 +-18.7423325 +-14.4013567 +14.1914263 +-8.3115788 +1.4541719 +6.7165260 +-0.3186458 +0.6468558 +-3.3145614 +-6.3804998 +1.0348594 +-72.9254303 +22.8416443 +-3.5222979 +-10.4036407 +1.4905763 +103.1316299 +267.2067566 +-0.1620977 +-0.3883519 +-0.7035626 +141.8041687 +29.2672901 +-10.1493330 +-68.0351868 +-4.2662363 +112.8398895 +-23.6896229 +3.2681742 +-5.3920331 +1.5090810 +-44.9672852 +-1.2982085 +9.3276510 +-7.0760331 +-0.5521835 +85.8324280 +1.7549657 +-16.9821510 +-3.6694553 +-3.5727572 +3.4201641 +-26.2075462 +-3.9832280 +-1.5535791 +-15.5639601 +418.4461975 +-110.4103622 +22.4593277 +-3.3307440 +-15.9795637 +-115.6976547 +-41.4060822 +-63.9378853 +-7.1106710 +4.9480472 +0.2366239 +65.7491379 +5.8205390 +-7.4592772 +22.4872341 +0.3529398 +11.9916105 +-39.8983688 +-2.8004231 +-6.1631598 +-0.8684181 +127.7840576 +5.7251201 +0.1644752 +-0.2971560 +-15.9925880 +5.2341237 +0.1312647 +-44.0613365 +-1.6472195 +1.9756452 +2.6623034 +1.1143866 +-8.8111219 +-0.7479174 +-2.8215611 +9.3030663 +0.4226875 +-3.2871139 +58.6357117 +32.4686089 +-0.5219502 +-1.8066857 +2.9141150 +48.2296600 +0.5901922 +2.8866277 +-18.7857380 +-17.5081234 +-13.3652973 +-7.8478608 +-48.7093620 +-7.5175409 +2.9410667 +-1.2630373 +43.4800186 +-8.8264322 +0.4040619 +-1.1703459 +-1.8012618 +0.3261896 +9.6140738 +5.5062461 +2.9658530 +-8.2308817 +-5.3575573 +0.1884840 +-2.0451641 +-0.0675871 +-0.6256464 +4.4256220 +-1.4763407 +-4.2403712 +-5.7156634 +1.0592210 +-8.0029154 +4.4304729 +-12.0497303 +-17.5952969 +-9.2116718 +3.9939103 +7.1470051 +-33.6190834 +-39.2812195 +-0.0432338 +-0.3129326 +-8.7851772 +-49.9194336 +0.6505321 +1.4092917 +-2.1724474 +5.0669060 +0.2410291 +-32.2416115 +-2.0320954 +50.5973587 +-8.2054062 +11.1277447 +45.9838524 +260.7554932 +-0.2237999 +4.4914865 +-1.4398092 +-7.8079939 +42.3550377 +-14.3886223 +-14.1184835 +-0.9724463 +-5.7909303 +-6.4144716 +-3.8827119 +-8.9076052 +1.1275805 +-14.7690077 +-14.2595196 +-13.4539223 +-10.5037670 +-0.7885740 +-12.1693850 +4.3105426 +-5.1098495 +-2.7543960 +-1.1995319 +3.2326980 +-25.2472267 +1.3105857 +2.2269220 +-0.6078703 +156.0604401 +-32.8280869 +3.6669526 +-4.3383532 +-12.2136927 +-27.6842155 +-61.6360703 +-25.2562923 +-62.9802704 +-5.8712573 +-0.0533372 +-6.0802779 +0.8193638 +30.4881554 +5.9441533 +2.4806564 +-6.4055443 +-58.1563606 +14.2044001 +-9.2387066 +0.0584225 +112.1160278 +6.7090907 +4.5722895 +0.9303448 +-18.2105846 +-28.8587074 +-9.9321737 +-20.4393311 +2.8736587 +-0.1671879 +4.0404248 +0.3653034 +-3.8228414 +6.9540176 +0.4414462 +9.3277559 +0.9288335 +-7.1828470 +-31.9971237 +-15.0762815 +-23.8670254 +-35.9148941 +-25.7975502 +-53.5744171 +-63.3013496 +-47.9508820 +9.9455662 +-70.6008759 +-31.4349136 +-26.9355450 +-31.9947186 +-148.8300323 +-22.4394608 +-0.6305034 +-68.8963089 +-12.9436026 +-45.8243752 +-29.9203148 +-145.6517029 +-834.7780151 +-18.9208679 +-190.6063232 +-16.6948795 +-473.4431152 +-51.1144562 +-60.9642830 +-7.4566197 +-31.9424114 +-90.2869339 +-15.4161444 +-47.7949028 +-108.9017792 +-63.9747543 +-15.9890938 +-92.7925339 +-12.8965425 +-64.0033646 +-15.5323477 +-51.0779533 +-31.9501648 +-7.8730912 +-92.5704498 +-63.9634361 +-63.9670410 +-14.5896435 +-279.8923950 +-1072.4255371 +-31.9831257 +-446.0566711 +-98.1838074 +-24.5612564 +-274.2492676 +-206.8550873 +-7.1191692 +-5.4246016 +-33.8167763 +-22.6736393 +-31.9660683 +-39.7325287 +-75.6149979 +-31.4263248 +-29.7769547 +-61.1702499 +-16.7613335 +-533.4503784 +16.0506687 +-228.2620239 +-53.7054901 +13.4826002 +-63.0664482 +-77.1718445 +-5.3507385 +-49.0611725 +-104.9621124 +-106.4553452 +-10.0337000 +-15.9961824 +-16.8784981 +-31.9959278 +-40.6803627 +-49.3499527 +-259.8202820 +-30.6459274 +-146.6623077 +-44.9316559 +-31.9965210 +-34.7405357 +-7.3474507 +-104.7098846 +-16.7530403 +-24.7392960 +-50.7348709 +-1314.0495605 +-61.1769104 +-46.1732140 +-61.1987343 +-122.2750397 +-706.0893555 +-17.3104782 +11.5213051 +-21.5697937 +-31.9694786 +-129.2160797 +-98.6447525 +-383.5563049 +-29.0990276 +-64.7320557 +-15.6716404 +-15.9920998 +-7.9998908 +-75.5782928 +-5.2695084 +-127.7502823 +-31.3506966 +-16.7897434 +-31.9893589 +-41.9719849 +-111.2145844 +-7.8545246 +-10.1016836 +3.7803867 +-31.8931160 +-26.6083603 +-15.2728434 +-25.6545849 +-6.1345983 +0.3156946 +-0.2038144 +-1.4622425 +-2.6295319 +-4.0385032 +200 16 5 0 0.1000000 1.0000000 +-0.5710276 +18.7520161 +0.5920613 +2.6863692 +-1.9471474 +-1.1981076 +-1.8814205 +-1.3246627 +-2.4190915 +-0.4274399 +1.4535340 +-0.9391261 +1.8681396 +-0.3801599 +-0.4781401 +3.8702645 +1.0118128 +34.7637482 +-2.2540503 +3.5792356 +4.3821373 +1.2358999 +-2.5263555 +0.1242628 +-2.1987936 +2.7414267 +1.4347969 +-2.8001204 +2.0607696 +0.5189249 +0.5116698 +8.6669302 +1.0166337 +51.3315964 +0.6597801 +3.8383524 +3.4930041 +2.1240866 +-2.6361473 +-2.5335274 +-4.6951923 +4.5298977 +0.8983822 +-4.3768392 +1.6635321 +0.0292025 +0.2028699 +11.3380728 +0.5086936 +33.8289833 +1.7892029 +-0.4096617 +-0.1544780 +0.9523614 +-0.8459195 +-9.0394592 +-2.6921241 +2.9734755 +-1.1710253 +-4.4344983 +-0.1321232 +-0.1936919 +0.8195126 +4.4486241 +0.0913621 +17.6149807 +1.2108252 +2.8474760 +-3.0187337 +-0.5156025 +-1.8174189 +0.4056022 +-2.1038954 +-0.2136584 +1.3852463 +-1.8151418 +1.5583508 +-0.6811851 +-0.9374002 +4.4654317 +0.9579426 +39.2500648 +-2.2491043 +4.2331896 +4.2094631 +1.2244155 +-1.0966046 +2.1124835 +-1.8087057 +2.4944072 +1.7108804 +-3.2103190 +1.4839939 +1.0163448 +1.0869205 +10.0854807 +1.3239515 +57.5325470 +-1.2608311 +5.2669077 +3.3858211 +2.2469110 +-1.4124271 +0.9420633 +-3.7730553 +4.3558102 +1.7104527 +-4.4188395 +2.2542944 +0.7758225 +0.9529571 +13.7734661 +1.1897802 +34.2361259 +1.6921184 +0.1665088 +-0.3917626 +0.9688451 +-0.6477823 +-4.2479010 +-2.9716086 +3.5624497 +-1.1008084 +-3.9546633 +0.4914354 +-0.3479931 +1.1716808 +6.1899056 +0.0216634 +17.8099728 +1.7565804 +3.2534904 +-3.7869997 +-0.5344932 +-3.1721513 +0.9780952 +-2.2122808 +-0.5653263 +1.3980151 +-2.4862432 +1.3638626 +-1.4283452 +-1.1430819 +4.8317528 +1.1212007 +41.7339096 +-2.5713902 +4.8273134 +4.3300004 +2.3469057 +-0.8868710 +3.1042683 +-1.6576126 +2.5819578 +1.8453743 +-3.2436657 +1.8371632 +0.5644445 +1.2378342 +11.0543575 +1.6392864 +59.4187508 +-1.5519402 +5.9951262 +3.3908916 +3.3633304 +-0.5074340 +3.2019031 +-3.4805229 +4.2823105 +1.8043677 +-4.4503531 +2.7525678 +-0.0231651 +0.9922160 +15.1825333 +1.6075151 +34.1953964 +1.3333944 +1.1196742 +-0.3536306 +2.2751462 +-0.6729207 +-0.6441439 +-2.6581519 +3.8540735 +-0.6453444 +-3.4370742 +1.9313729 +-0.6206194 +0.8202233 +7.9992070 +0.2226125 +17.2508469 +1.7578737 +3.3846490 +-3.7961175 +-1.4925679 +-5.0483670 +1.4709804 +-2.0887921 +-0.3155421 +1.4250485 +-3.2208834 +0.9975085 +-1.3227534 +-1.0053819 +4.9572449 +1.1232853 +44.5976486 +-3.0751560 +5.0891585 +4.1858821 +3.2601848 +-3.1238773 +4.0332046 +-1.4377480 +2.6926074 +1.7685281 +-3.2916484 +1.8784510 +0.3339886 +1.5064282 +11.8856220 +1.5485997 +62.3698158 +-2.5414648 +6.6957970 +3.7108741 +4.4143977 +-3.8912981 +4.7407069 +-2.9966309 +4.0460062 +2.0997388 +-4.3484221 +2.7922659 +-0.1617727 +1.6140075 +16.6028385 +2.1859219 +31.4421616 +2.8215187 +2.6829095 +-0.2270837 +2.6315563 +-1.3562161 +0.9499970 +-3.1444163 +4.9627504 +0.3611408 +-4.0405183 +0.8841531 +-0.7282214 +-0.0333014 +9.0477333 +0.2762145 +17.0875149 +2.1893108 +3.1705084 +-3.4429040 +-3.5847623 +-8.2111378 +1.7759184 +-2.0109208 +-0.1863452 +1.1555306 +-3.9892848 +0.7558333 +-1.5960214 +-1.1355550 +4.6222000 +1.1387070 +48.3545952 +-3.4127192 +5.1441998 +3.9257958 +4.1828938 +-4.6603646 +4.9444108 +-1.2173579 +2.8367603 +1.5624335 +-3.4552085 +1.9412264 +0.3699881 +1.5965990 +12.5612221 +1.3903030 +66.2092590 +-3.5857294 +7.0220766 +3.5828991 +5.3232517 +-6.2934680 +5.9143004 +-2.4689171 +3.7915924 +1.9318479 +-4.7491174 +2.9246867 +-0.3642921 +1.8891919 +17.5017719 +2.4885786 +33.9261589 +2.0634561 +3.2216671 +-0.0089652 +2.9146798 +-1.5344104 +2.0707757 +-2.1380613 +4.5854030 +1.1350565 +-3.7043810 +1.7693934 +-0.6429566 +1.1272470 +10.1102638 +-0.1694240 +18.4327660 +3.3273721 +4.5252414 +-3.0167527 +-6.5554643 +-13.5246658 +2.1722033 +-2.9808168 +-1.2194607 +2.4302874 +-3.4059625 +-0.3391747 +-0.7483422 +-1.8017880 +5.1821065 +1.4004979 +47.7720947 +-3.2188380 +5.9198647 +4.0540061 +2.3803949 +-6.4506116 +6.1912494 +-1.4309200 +2.9417036 +2.0406888 +-3.6651301 +1.1452581 +0.8271388 +1.5751357 +13.4016638 +1.5661547 +65.5741043 +-3.1435366 +7.8296418 +3.8966093 +3.8484535 +-8.6953402 +7.5085721 +-2.6245158 +3.7970779 +2.3067231 +-4.9306803 +2.2386744 +-0.0484192 +1.9793315 +18.4451542 +2.1247187 +35.9661751 +1.2534238 +3.7740974 +-0.6459187 +1.6500874 +-2.5819550 +2.4214671 +-2.4973528 +3.0709298 +0.8989444 +-3.4231203 +2.3897643 +-1.2269646 +1.1287838 +10.3458080 +0.0684482 +17.0910969 +1.3415370 +1.3891695 +0.8785425 +-3.6736042 +-10.2063446 +1.7601954 +-1.0424320 +0.5170659 +-0.4826620 +-5.6189208 +1.3451980 +-0.8913904 +0.2208106 +3.3691373 +-0.0440062 +47.0949364 +-1.9920579 +4.6146746 +-1.6176282 +4.4822783 +-9.5250111 +4.3126664 +-1.6608652 +3.6752548 +1.0215974 +-3.6870832 +2.4749486 +-0.8331496 +2.2829852 +12.3948364 +-0.7135618 +65.4266205 +-2.1402247 +6.5317230 +-2.0943050 +5.8500896 +-15.3772154 +5.4528208 +-2.7903533 +4.0862336 +1.1189116 +-5.4420824 +3.8975630 +-2.1113517 +3.0721142 +17.3725452 +0.0929249 +36.0413628 +0.6809337 +4.5181465 +-1.0241252 +3.3846157 +-1.9571989 +2.0148985 +-2.1430531 +5.1476998 +0.8449936 +-4.8059144 +2.3617766 +-1.6852689 +1.4548993 +10.6673288 +-0.1359195 +19.0056744 +0.9149975 +1.5917150 +0.4239393 +-2.6204746 +-12.2353916 +1.6578836 +-1.0423841 +0.5637665 +-0.4054944 +-5.1072598 +1.7040039 +-1.2461494 +0.2550459 +3.9057570 +-0.6525989 +42.6504707 +-0.7050689 +4.1347351 +-1.5715064 +3.7750719 +-11.7413378 +4.0143232 +-1.9889235 +2.5876977 +0.3050755 +-4.0211425 +2.1501977 +-1.7313803 +2.0816109 +11.5783587 +-1.1108799 +60.4673424 +-0.2878783 +6.1280403 +-2.3053920 +5.6377530 +-15.6632347 +5.9165015 +-3.0382321 +3.2569110 +0.3618446 +-6.1092801 +3.2704039 +-2.9945347 +3.0601265 +17.0843849 +-0.8696702 +35.9942436 +0.6908110 +4.1911077 +-1.2633485 +2.4207737 +-5.5997329 +2.5835805 +-2.3395169 +2.0909119 +0.4973374 +-4.1281533 +3.2676339 +-2.1472542 +2.2223985 +10.6712379 +-0.5715994 +19.4394531 +0.9639868 +1.1978660 +0.1784793 +-1.4607886 +-12.3779259 +1.9742382 +-0.9261336 +0.5387395 +-0.9230200 +-4.9443579 +2.0069323 +-1.5359286 +0.4111519 +4.0810308 +-2.4299417 +42.2358551 +-0.8197541 +3.4884191 +-2.8014982 +3.5328014 +-14.9576178 +3.8227341 +-2.0543540 +1.9698998 +-0.9319202 +-4.5049386 +1.2673116 +-2.4811110 +1.9955025 +10.8211241 +-3.4564650 +60.4871864 +-0.6782777 +5.4530845 +-3.7908854 +6.2569237 +-19.7154408 +5.6410980 +-3.1597483 +2.6134725 +-1.1637121 +-6.2599535 +3.5082350 +-4.0583749 +3.0414031 +16.0432205 +0.3566967 +33.7473831 +2.6150815 +5.0327253 +-1.2521235 +3.9961505 +-8.6667585 +4.1156812 +-1.9145906 +3.5632348 +0.9624910 +-5.9832220 +1.8847426 +-2.1071320 +1.7354417 +12.1691303 +-0.7516018 +19.5565796 +1.0857131 +0.7677495 +-0.0604270 +-0.8840836 +-13.2870064 +2.0283692 +-0.9542890 +0.5285446 +-1.3581676 +-4.7154841 +2.2207634 +-2.0257301 +0.5315881 +4.0407968 +-2.8927212 +38.6325531 +-0.1534939 +3.0137041 +-2.6644509 +3.6005993 +-17.6714096 +3.5610638 +-2.3868051 +0.8979425 +-1.4215029 +-4.2498574 +1.9573381 +-3.3490176 +2.0693221 +10.3604031 +-3.6447101 +56.8668709 +-0.0164581 +5.1492934 +-3.9632545 +5.4952254 +-22.6132374 +5.4768529 +-3.3837218 +1.4892710 +-1.6104105 +-6.5777006 +3.4226830 +-5.2893791 +3.4352121 +16.1466274 +-0.5087420 +38.6477127 +-1.0772676 +5.8046751 +-2.0413787 +4.6346908 +-12.5466557 +0.4842595 +-3.4015150 +2.3879571 +0.4073273 +-4.9619584 +3.5906661 +-2.0667458 +1.5455599 +12.1082487 +-1.2110060 +19.6510258 +1.1772585 +0.5721549 +-0.3010516 +0.1316877 +-14.0960302 +2.2027993 +-0.9238172 +0.5186369 +-1.6553837 +-4.6276946 +2.3498905 +-2.3313143 +0.6355669 +4.2357168 +-2.7393019 +35.8808746 +0.8263680 +2.4325166 +-2.5575230 +3.1113358 +-20.2207565 +3.9083531 +-2.2943959 +1.3349910 +-1.8920115 +-5.0228152 +1.8092693 +-4.0916243 +2.0658731 +10.1479120 +-3.7171786 +53.9597168 +1.2378614 +4.2171464 +-4.3826394 +5.0172911 +-22.4150848 +6.1243734 +-3.2568023 +2.7133760 +-2.5408969 +-7.4148474 +3.4544888 +-6.0180211 +3.3277504 +15.7449121 +-4.5985231 +22.5345459 +4.1101141 +4.3394628 +-4.7437344 +2.0846078 +-6.2702022 +4.3891616 +-2.4420774 +-0.5607494 +-0.9149880 +-5.3866191 +2.1869409 +-8.3476076 +2.5830770 +11.2344666 +-1.2126269 +19.7293205 +1.4541453 +-0.3989968 +0.0723336 +0.7792770 +-14.8816738 +1.9269582 +-0.8262139 +0.5587872 +-2.5380883 +-5.7213907 +2.3107669 +-2.5418093 +0.6541635 +3.8616533 +-3.6768942 +36.4921379 +0.7100044 +2.3793960 +-2.3784986 +1.8952338 +-21.3963146 +3.4754536 +-2.2260866 +1.6578754 +-2.2861106 +-5.3664522 +1.7735809 +-4.5019164 +2.1479602 +9.8183908 +-4.4175458 +56.1953354 +1.2358902 +4.3804355 +-4.7001801 +3.4928350 +-50.3995171 +5.3622642 +-3.5848739 +2.2147202 +-2.7940617 +-6.7071657 +4.6515517 +-7.6810350 +3.2802148 +15.5421553 +13.4125566 +10.6411276 +-1.4018589 +3.9175329 +5.9680395 +-1.7318227 +7.5061460 +-0.0406383 +-5.7414832 +0.2961349 +0.2858233 +2.3208208 +6.6058598 +-5.7449160 +3.8299675 +13.4998331 +-1.6134157 +19.5282421 +1.8614699 +-1.2261983 +-0.4054743 +0.1627067 +-15.6187353 +2.2910316 +-0.9132966 +0.6532808 +-3.6820481 +-5.9971738 +2.5589931 +-2.7751775 +0.4292449 +3.2520108 +-4.0708561 +36.1092072 +1.5316699 +1.5945015 +-3.1369116 +1.3774236 +-25.2392845 +4.2086186 +-2.2864547 +1.2501864 +-3.1473019 +-5.9857163 +2.2827475 +-5.1757851 +2.0348954 +9.3569889 +-6.1179104 +54.2416382 +2.3932812 +2.8955538 +-4.9640121 +2.5108786 +-27.2896881 +6.1395040 +-3.4098918 +2.0274942 +-4.2085681 +-8.5576630 +3.6021063 +-7.6437321 +3.4453285 +14.6383219 +-3.8433118 +34.8413391 +3.5736918 +2.0143294 +-4.6476951 +1.5651867 +-5.7699952 +3.5697746 +-2.7475986 +2.3734579 +-2.7603397 +-5.7230430 +2.4063416 +-6.6909714 +1.9877111 +10.2325115 +-2.0542824 +19.2024708 +2.4424636 +-2.1236494 +-1.0583956 +0.8191262 +-15.4988546 +2.1876571 +-1.0853919 +0.3989439 +-4.3453221 +-5.6701374 +2.4430759 +-3.7519357 +0.2949470 +3.0549138 +-5.3769593 +36.9380302 +2.1541986 +1.1860888 +-4.3362083 +0.8022300 +-31.4085655 +3.8853128 +-2.3768919 +0.8768445 +-3.9730046 +-6.3391113 +2.0012991 +-6.9693604 +1.9438740 +8.9685440 +-8.3336611 +55.5949135 +2.9381225 +2.2318087 +-7.1745753 +2.3593431 +-49.6390190 +4.5619006 +-4.1596236 +0.2044155 +-6.0720129 +-8.8210707 +2.8076458 +-10.2455378 +3.0643117 +13.7353153 +-4.2625518 +8.7571192 +4.4374862 +0.8796889 +-0.1954902 +-12.1374273 +-5.8606629 +6.6334248 +-3.2808998 +4.5547585 +-4.1712756 +-3.4510648 +-0.1027892 +-2.9104652 +2.4300604 +6.6522517 +-2.5701141 +19.3482132 +2.4145675 +-2.9524026 +-1.2362220 +0.3978555 +-17.0543232 +2.0267296 +-1.1960163 +0.2788752 +-5.1447806 +-5.6089373 +2.4194400 +-3.9492526 +0.3020591 +2.6828122 +-6.1520925 +36.4955025 +2.6568112 +-0.1011013 +-4.9094100 +-0.3915206 +-46.8762589 +4.0445991 +-2.5077088 +1.1334417 +-5.3618121 +-6.7134113 +1.2536829 +-7.2268925 +1.6477946 +7.9361730 +-8.5456676 +56.3635712 +4.1393318 +1.3345886 +-7.7679648 +0.5087302 +-67.9289322 +6.6039896 +-3.3803825 +2.6818779 +-6.3617134 +-10.2238817 +2.3784394 +-9.0241947 +2.6924984 +13.5298967 +-4.9550734 +33.9375229 +2.4695742 +0.8524352 +-3.6903384 +5.4401565 +-9.6839399 +3.1648448 +-5.1318674 +1.4699113 +-5.7538919 +-2.7579205 +5.0899310 +0.4168425 +1.2041312 +8.7320004 +-2.9807491 +19.3560390 +2.8102751 +-3.7591412 +-1.2491306 +0.2428662 +-18.0978031 +2.0429988 +-1.3117937 +0.5185475 +-5.9968834 +-5.4667664 +2.4156210 +-3.8436487 +0.2875009 +2.3142996 +-6.6955042 +36.5500641 +2.6581175 +-1.1831012 +-5.3232560 +-1.3940896 +-69.5793381 +3.8653309 +-2.5062845 +2.1426184 +-6.7139330 +-7.0824280 +1.0280948 +-8.3530502 +1.6234673 +7.2343955 +-10.3392115 +55.2877502 +4.3828158 +0.0389900 +-8.6703606 +-0.3679996 +-60.9369774 +5.7309308 +-3.8371959 +2.7234313 +-8.6111145 +-10.3235655 +2.5357380 +-12.3392000 +2.5069916 +12.1467371 +-7.9117198 +38.3086128 +6.2513304 +0.6595852 +-8.3241272 +9.6499166 +-8.0429888 +2.5805109 +-4.9483271 +-1.1118646 +-4.8865151 +-2.5031955 +6.8819962 +-5.1593742 +0.4386436 +9.9100828 +-3.2457502 +18.9914646 +2.7639856 +-5.8432870 +-1.0514667 +-0.1914252 +-18.0040665 +1.9107748 +-1.3879577 +0.6905716 +-7.7649570 +-5.1700215 +2.5814121 +-3.8149536 +-0.0332812 +1.4567987 +-7.9421682 +36.2360573 +2.5460820 +-2.3406901 +-5.7356987 +-2.5360675 +-74.9457703 +3.9055846 +-2.4282045 +1.8894089 +-8.3251162 +-7.2975154 +0.7392224 +-8.7415800 +1.3669049 +6.2740545 +-11.7787304 +56.6434860 +2.0693700 +-1.4226806 +-9.0179501 +-2.6705635 +-52.5512657 +4.7961359 +-3.7214501 +2.7765903 +-10.4639225 +-9.5045509 +2.9345531 +-11.3524904 +2.7198470 +10.8762817 +-17.6840839 +20.3828068 +8.3724413 +-1.7100873 +-4.2562723 +-2.0593498 +-11.2184401 +-2.3485060 +-8.6887035 +2.0766106 +-14.7555676 +-4.6914725 +-6.1577926 +-6.9264760 +-0.4879391 +4.9227781 +-3.7632327 +19.4194374 +3.2391663 +-6.4758601 +-1.2292776 +-2.1810427 +-20.0265293 +1.8921722 +-1.5829512 +0.3454360 +-8.4956121 +-5.3031478 +2.7539771 +-3.2851324 +0.0575629 +0.8870910 +-9.0566664 +35.1533699 +3.9267907 +-3.7124043 +-7.3440080 +-4.1523380 +-139.1839294 +4.0915642 +-2.4830785 +2.9184685 +-10.3621178 +-8.4110050 +-1.0461226 +-10.3030653 +0.5229157 +5.0475159 +-14.2164068 +53.4411812 +5.5918140 +-3.4244661 +-10.8062820 +-2.9737711 +-77.9323807 +5.1375332 +-3.9687085 +3.8651545 +-13.9860039 +-11.9678755 +0.8890875 +-15.9417028 +1.1054010 +8.5413799 +-3.9152703 +33.6445656 +1.2721014 +-0.7664439 +-8.0982447 +4.4245763 +-22.9857178 +2.4359260 +-4.2761769 +2.4271026 +-6.9757276 +-5.2572618 +2.4295957 +3.2247810 +1.5658875 +10.1816378 +-4.7251630 +16.9016380 +3.8530605 +-8.1161470 +-2.3925822 +-1.5901505 +-19.0661068 +2.0106978 +-1.5301780 +1.1995469 +-8.8639717 +-4.8295598 +0.1539760 +-2.8263571 +-0.5775017 +0.2551529 +-11.0392084 +31.7146091 +4.1220908 +-5.1596155 +-7.3538079 +-4.3304563 +-59.0995216 +4.4046187 +-2.4271817 +2.9278002 +-13.3155565 +-7.9926405 +-1.8360888 +-10.3226881 +0.4485956 +3.1027658 +-15.2249537 +50.5668831 +10.6567564 +-4.6216059 +-8.0988178 +-4.5249023 +-70.1336517 +7.4166508 +-4.0954452 +4.3789816 +-12.8176489 +-14.0440197 +-4.1857839 +-10.0827475 +0.3557922 +8.3967676 +-25.3997192 +1.0634958 +11.5296068 +-2.5039213 +-7.0846906 +2.6486197 +2.1763878 +-0.0228823 +-8.5576324 +0.6409077 +-9.3820744 +-1.4674323 +5.6742578 +-23.9495029 +-6.0550838 +2.9927540 +-4.7923794 +18.0563831 +4.2379832 +-7.0987744 +-2.1795361 +-5.7665124 +-21.9111977 +2.2881217 +-1.7785261 +0.5021920 +-8.7104492 +-4.7041397 +0.9194548 +-2.7036300 +-0.2809304 +0.1387314 +-9.9770947 +33.3734512 +7.9324059 +-4.2284207 +-8.1855822 +-6.2218556 +-105.7678070 +5.8527193 +-2.5589521 +4.2319088 +-11.8857908 +-6.8334179 +-3.7290769 +-9.1464520 +-0.9609551 +4.6767879 +-15.0632801 +50.6990166 +12.7119999 +-5.0884557 +-12.1018200 +-5.1447401 +-69.5566101 +8.1352482 +-5.2105103 +6.7339439 +-16.9766598 +-9.7202921 +-2.1210973 +-11.3095436 +-2.1088538 +7.6307092 +-11.8239079 +34.2985115 +2.9702845 +-2.6629884 +-4.6213212 +-0.2588595 +-13.2905407 +2.5921671 +-4.5117769 +1.1082150 +-16.9159374 +-8.5419226 +2.9896312 +3.0444582 +2.3936853 +6.6115189 +-5.1006799 +18.2784405 +4.7743583 +-7.7331662 +-2.6331782 +-10.1591949 +-27.1931610 +2.2682874 +-2.0105734 +0.5934067 +-9.6566296 +-4.6082792 +0.5438023 +-2.9543855 +-0.6613961 +-0.6976871 +-11.4952946 +32.4127617 +11.4997902 +-5.5389166 +-8.9360199 +-7.8642006 +-94.7047501 +6.5077295 +-3.3750756 +3.5249946 +-13.6955385 +-7.7381878 +-5.1364942 +-7.8548751 +-3.4825199 +2.9979448 +-16.4640388 +49.9102058 +14.7603741 +-6.8461361 +-12.9870644 +-7.2092881 +-47.2807388 +8.4474220 +-5.3563471 +5.7644973 +-18.9534397 +-11.7578077 +-3.3871729 +-9.0265245 +-3.9964173 +5.7836456 +-11.4981651 +36.5035133 +1.0093307 +-6.0974660 +-6.0563216 +-0.5342370 +-20.1088657 +2.6212101 +-3.7148111 +3.5095379 +-23.1686478 +-7.8617320 +4.4397931 +2.4997487 +4.5071697 +4.6436830 +-6.1826506 +18.5465031 +4.8601236 +-8.2743626 +-2.8221695 +-14.8399792 +-26.0142040 +2.3914328 +-2.2726436 +-0.5260079 +-10.8256035 +-4.3677721 +0.3716873 +-2.0727470 +-0.7184469 +-1.4411496 +-13.0659618 +32.3649979 +14.9576263 +-7.5659151 +-9.7708817 +-12.1011200 +-75.1126862 +7.3521919 +-4.0160818 +2.7438014 +-16.1424427 +-9.7263021 +-7.8182149 +-5.9968057 +-6.3044395 +0.7468325 +-18.1437817 +49.8936806 +17.9846783 +-10.7664967 +-14.8446398 +-12.8212662 +-38.1324196 +9.6601553 +-5.7485323 +5.2358041 +-27.4039745 +-14.0728340 +-4.9312124 +-7.6782141 +-6.1943121 +2.0383563 +-8.8699141 +34.5668449 +4.2936273 +-2.6182456 +-9.8414268 +-1.8984648 +-13.1395741 +2.1185312 +-3.9962871 +2.9251294 +3.3949623 +-7.9715519 +3.5767415 +0.0894797 +6.4358668 +5.6328683 +-7.1069703 +18.5935078 +4.9348221 +-8.8052654 +-3.3922522 +-20.9539261 +-24.0275726 +2.2127342 +-2.4980283 +-2.1490657 +-12.0384769 +-4.2921767 +-0.1848618 +-1.3999535 +-0.7561660 +-2.2118134 +-15.5966501 +32.4316711 +15.9043198 +-10.0500889 +-9.7450247 +-18.1373882 +-51.7272758 +6.5329995 +-5.0985856 +-1.3027370 +-21.0082054 +-10.8458614 +-10.6430035 +-3.6630087 +-6.4582195 +-1.9100062 +-23.1622391 +49.5651207 +18.6254673 +-13.4195127 +-13.4006939 +-20.2954960 +-37.8058281 +7.9452996 +-7.5448947 +-0.8259929 +-37.1216774 +-16.0713062 +-10.0621367 +-4.7814178 +-4.0683494 +-0.8567213 +-9.9246292 +38.9679642 +10.5540752 +-6.2489638 +-7.0735488 +-5.0284767 +-81.9652100 +-0.5253713 +-9.4043884 +2.4766848 +5.5085044 +-6.3525314 +3.5979757 +-3.5312963 +2.7488461 +-1.2903138 +-7.2022896 +18.7272415 +5.1101055 +-8.6130066 +-3.5625644 +-26.8588638 +-25.2099171 +2.4802468 +-2.6432605 +-1.7807838 +-11.9706659 +-3.7288902 +-0.2627053 +-0.1741051 +-1.0951241 +-2.8321311 +-16.5516949 +31.4004002 +15.2957945 +-13.6901321 +-9.2385712 +-50.8066254 +-40.3675919 +5.9715028 +-5.6316218 +-4.5696750 +-28.4745903 +-12.3658304 +-12.9828634 +-1.5356759 +-6.1393332 +-5.2522898 +-24.3979340 +46.5677872 +19.1933517 +-19.5386791 +-14.0762253 +-56.7768822 +-43.4392586 +6.5278368 +-8.0857124 +-4.6890388 +-48.8129082 +-19.8803673 +-14.8059082 +-3.2546647 +-3.9621816 +-6.6129575 +-7.7206378 +37.9482079 +6.6110969 +-13.0505667 +-11.9029551 +0.6784034 +-102.5208969 +1.9356548 +-5.6341834 +1.8155913 +8.9171438 +-12.4288387 +2.6620483 +0.5930918 +11.4857368 +-3.1552515 +-6.5890398 +20.9444885 +6.7917514 +-10.1150007 +-5.2234716 +-18.3270359 +-22.6274071 +1.3834816 +-3.8087239 +1.0545697 +-13.2449579 +-2.2358415 +5.7823405 +-2.1321261 +-1.0900424 +-3.5067568 +-5.6697340 +19.5438786 +7.2087178 +-11.4938908 +-3.1045563 +-7.1098919 +-97.8310242 +0.1459784 +-3.6081259 +1.1325958 +-16.4146500 +-4.9176545 +2.5142963 +-4.6140909 +-0.4852410 +-1.2983452 +-6.8411231 +19.0112553 +6.0731335 +-8.6977577 +-7.4651995 +-12.8754826 +-29.1231689 +-1.5852243 +-2.8198950 +-1.9610114 +-25.7495937 +-6.9089518 +-0.2715827 +-5.0837893 +-0.2663877 +-1.4705838 +-30.8775120 +36.9218063 +12.2569542 +-18.6106586 +-19.8057938 +-24.5758629 +-25.4378719 +-7.6880989 +-7.9423585 +-1.7418106 +13.5996437 +-16.0141296 +-2.3235552 +-4.8804698 +5.7426515 +-26.1816597 +1.7246398 +0.3957011 +-1.9902135 +2.9917576 +0.9307458 +0.7413061 +0.0171116 +0.3363010 +-0.1224768 +-0.2256344 +9.7578297 +0.5940439 +3.0076871 +1.1066723 +-9.7028570 +1.6597241 +2.5928872 +1.7002228 +-0.1887831 +5.0747795 +1.4493985 +4.4359293 +1.9785643 +-0.4707253 +-0.8979587 +-1.9754286 +19.0894623 +0.9856420 +7.7067237 +2.6578395 +-19.3996391 +1.8676559 +3.2554111 +1.9488213 +-1.4618424 +6.2812414 +1.1146299 +4.7412448 +3.7713335 +-0.4617263 +-1.1625394 +-1.5284511 +26.3478546 +2.0063410 +7.7874660 +2.3059628 +-29.4122124 +1.9075528 +1.0746022 +0.0400476 +-0.8713504 +2.2563205 +0.2054252 +3.2177987 +2.5448532 +0.2887044 +-0.5956693 +-1.3666447 +13.5550871 +2.7996197 +2.3784733 +-10.8166533 +-19.5226154 +0.8666723 +1.5715067 +0.8261195 +-1.4451907 +3.4564128 +1.2855831 +2.1236928 +0.2296628 +-0.0307172 +0.0014505 +-0.4038862 +10.2836342 +0.0099232 +3.1944640 +2.1597283 +-9.7829342 +1.7465004 +2.1584218 +2.3787520 +0.4495001 +5.8103566 +1.4092989 +5.1122804 +2.2590873 +-0.6773165 +-0.7645316 +-1.2348682 +20.3393536 +0.6302879 +7.6346359 +5.5925970 +-19.3887997 +1.9843208 +3.0168982 +2.8853717 +-0.7411986 +7.4787173 +1.7903000 +6.4581885 +3.6486602 +-1.0411488 +-0.9110524 +-1.1448598 +28.8623505 +1.2609707 +8.1564083 +7.2139893 +-29.2156811 +2.4731989 +1.1466504 +0.0347735 +-0.4380456 +2.2176843 +0.7644951 +2.2972493 +2.8374469 +0.2419783 +0.2638766 +-0.7823622 +16.3655510 +1.7948098 +1.4626280 +-1.5205488 +-19.4851761 +0.1915626 +1.1763858 +0.7198191 +-1.2576349 +3.7566109 +1.6633195 +3.2208600 +0.3311672 +-0.6977550 +-0.1670179 +-1.2445084 +10.6257124 +-0.0572034 +3.1361589 +3.3603511 +-10.0003424 +1.7291255 +1.9939454 +2.3375878 +0.9503863 +6.2777619 +1.7114328 +5.8838201 +2.8186865 +-1.5317454 +-0.9113353 +-1.4256811 +21.0040665 +0.3742447 +7.5325198 +7.3309669 +-19.6381664 +1.9964738 +3.1226804 +3.0058019 +-0.0121514 +8.1715279 +2.5185289 +7.5134635 +3.9832013 +-2.1980267 +-1.0534798 +-1.1007528 +30.1441536 +0.6494896 +8.6739006 +9.1578760 +-29.3229980 +2.5502679 +1.4244210 +0.7328944 +-1.1759442 +3.2507443 +1.5408142 +3.7229135 +2.8042774 +-1.0638691 +-0.1240979 +-0.9431798 +17.2600422 +1.1429801 +1.3680297 +0.9967218 +-19.2909031 +0.6572672 +0.8753250 +0.8476004 +-0.7464705 +3.7721772 +1.9491574 +3.8058040 +1.0425267 +-0.7940705 +-0.1226800 +-2.0835240 +10.8654442 +-0.2542228 +2.9313042 +4.6579523 +-10.0955772 +1.6132830 +1.7933233 +2.1465812 +1.9389869 +6.5564165 +1.8820069 +6.2244787 +3.3765101 +-1.8731884 +-1.0224501 +-3.2449498 +21.5954227 +-0.0240879 +7.0225115 +9.1202869 +-19.9516830 +1.9036361 +2.9334848 +2.7365043 +1.9112918 +8.9919682 +2.6272969 +8.3028316 +4.4700489 +-2.2356615 +-1.1045316 +-3.9050326 +31.4362183 +-0.1239360 +8.5736599 +11.2864285 +-29.7139587 +2.8605101 +1.6485292 +1.1652803 +-2.6270058 +4.1313486 +1.2727690 +3.9819751 +2.6344116 +-2.0144336 +-0.1755770 +-1.8668801 +18.1865234 +1.7673211 +2.2210746 +1.3592952 +-18.6544418 +1.4341888 +0.8080591 +0.8534622 +-0.4449927 +3.8367653 +2.4245093 +3.9565849 +1.2914032 +-0.9840519 +-0.2064707 +-2.8005631 +11.1458378 +-0.4347570 +2.6742072 +6.1027713 +-10.1763144 +1.5643488 +1.5098366 +2.0953305 +2.8045611 +6.6330395 +2.0054317 +6.4504795 +3.7659218 +-2.1348112 +-1.2184075 +-5.2172780 +22.0117722 +-0.3353783 +6.3280106 +10.9310322 +-20.2302494 +1.7978724 +2.3924558 +2.4650929 +2.9319355 +9.4324675 +2.8791323 +8.4495277 +4.6907730 +-2.5981581 +-1.2690222 +-6.9407115 +32.2190094 +-0.7465084 +8.1247644 +13.3632097 +-29.9077854 +2.7758129 +2.6280074 +1.4480397 +-2.1773522 +5.0466151 +2.3248672 +2.3766601 +0.2435022 +-1.3724002 +0.5462708 +-1.9357331 +20.0730648 +0.3994741 +2.9939339 +3.1788435 +-18.3854713 +1.8432777 +0.8797520 +0.3085584 +-1.5675268 +3.6295052 +1.9746785 +3.1591377 +0.7720258 +-0.0668036 +0.5351675 +-2.4747288 +11.6033239 +-0.2590605 +2.5895801 +6.0980625 +-10.0111399 +1.6399217 +1.6063995 +2.2272668 +2.1835506 +5.8670902 +1.7649940 +6.0684743 +4.2763300 +-1.5941987 +-0.4626175 +-6.6469870 +22.1506577 +-0.9748716 +6.8349257 +10.1399040 +-19.7807198 +1.2345293 +2.3903210 +2.4908092 +2.0306106 +8.7668056 +2.8121817 +8.2970638 +5.0587797 +-2.5170798 +-0.4331227 +-8.9047222 +32.3975487 +-1.5563385 +8.8029451 +12.6236725 +-29.3476124 +2.0484281 +2.9852817 +1.1373293 +-2.0456846 +6.0214238 +2.2369263 +2.7749012 +0.8921791 +-1.3293658 +0.1768757 +-2.8437705 +21.2480736 +0.8373879 +3.6321292 +4.9129510 +-18.9252434 +2.0918036 +0.3531901 +0.0936076 +-0.5758411 +3.5312135 +2.7398260 +2.9215996 +1.8264005 +-0.7833002 +0.0652456 +-3.6054449 +10.7880411 +-0.2060320 +2.2264197 +4.7355776 +-10.1758089 +0.8665333 +0.6632597 +0.8523759 +2.3424566 +6.8778811 +1.9825571 +4.8874917 +5.0992489 +-1.6077105 +-0.6375145 +-9.4737825 +22.1705418 +0.0694476 +2.6630192 +10.1668005 +-20.9464912 +1.7566580 +1.4131720 +0.8510289 +2.1699524 +10.0695362 +3.5678933 +5.7435389 +6.0801926 +-2.3491600 +-0.4545258 +-14.5123148 +32.9350090 +-0.2414011 +3.7124450 +13.3213472 +-30.6575737 +2.6304760 +2.3955286 +-0.0772145 +0.0148371 +6.5285029 +3.5187902 +2.4120293 +5.4889479 +-0.8487090 +0.4301967 +-1.9934341 +21.2422562 +-0.7089432 +1.8704387 +5.0336566 +-20.2642651 +1.7034281 +0.1244605 +-0.1276399 +-1.0893651 +3.3824944 +2.6714590 +1.7464629 +1.1238025 +-1.1080261 +0.2617256 +-4.3086467 +10.7155218 +-0.2770188 +2.1843674 +3.7335093 +-9.9837456 +0.5376733 +0.0534461 +0.3353978 +0.5855916 +6.7750001 +2.2715693 +2.3673716 +3.8956048 +-1.8933235 +-0.0452690 +-12.0401869 +21.9992275 +-0.3967531 +2.3953958 +8.5554190 +-20.3183556 +1.2109177 +0.6342018 +0.3227045 +0.2162927 +10.3030262 +3.7745512 +3.4101284 +4.6870599 +-2.7719326 +0.2734009 +-16.0293579 +33.1645699 +-0.7374519 +3.1099274 +11.7395191 +-30.0146542 +2.2136276 +1.2499453 +0.1372440 +-0.9500573 +7.0417190 +2.7938104 +1.2440112 +2.0763109 +-1.3211105 +0.4203673 +-7.8790531 +22.0786228 +0.7006280 +2.0268364 +4.9314723 +-19.9424400 +1.7919605 +-0.2937340 +-0.5105155 +-0.7686045 +3.2766416 +2.7986865 +1.2629050 +1.1963676 +-1.0669879 +0.1451527 +-4.3313851 +10.6971130 +-0.2270969 +1.8018305 +3.9073832 +-10.2358627 +0.1633546 +-1.2054986 +-0.3250381 +1.2016335 +6.6207347 +1.4604468 +1.2605940 +3.8095365 +-2.0561645 +-0.0803247 +-15.0068245 +21.8208275 +-0.7733310 +1.0385513 +8.4006042 +-20.9140873 +0.4984086 +-0.9360081 +-0.3893022 +1.3158219 +10.0900688 +3.8054018 +1.8932117 +4.3239856 +-2.9917107 +0.1973561 +-19.4898491 +32.8160934 +-0.9181511 +1.6602416 +11.7020807 +-30.6838169 +1.1243981 +2.7398679 +0.2139835 +0.9861532 +7.3900709 +2.3532832 +1.2555684 +2.4243305 +-0.8562555 +0.3990444 +-9.7767448 +23.1753407 +-0.2747995 +1.4058878 +5.5369081 +-21.6548176 +2.0857618 +-0.6346823 +-0.8009804 +-0.9077615 +3.2367558 +2.9307449 +0.2232937 +0.9444921 +-1.3065517 +0.1025782 +-4.7242403 +10.7335606 +-0.0123282 +1.4506534 +3.9059167 +-10.2598906 +-0.1046331 +-1.8241891 +-0.9216716 +0.0337072 +6.3418603 +2.0949790 +-0.4035104 +1.6996188 +-2.3203866 +0.2959668 +-17.0743408 +21.5755405 +-0.6105227 +1.5134629 +7.0292044 +-20.6597424 +-0.2201945 +-1.8457574 +-1.5479133 +0.2810788 +10.2373323 +3.8067889 +0.0561789 +2.9872823 +-2.9924221 +0.6892688 +-22.0954723 +33.1402740 +-0.9218780 +1.7656654 +10.3833246 +-30.7756081 +0.5649061 +2.8364015 +-2.4349229 +0.9163231 +7.9261947 +3.2671957 +3.2652729 +5.6961317 +-0.6446726 +0.1603437 +-11.3259163 +22.9207897 +-2.7796459 +0.9912769 +5.1224575 +-20.8687534 +1.9679346 +-0.9173327 +-1.3339243 +-0.8471640 +3.4114163 +3.0704441 +-0.2806327 +0.8663797 +-1.2151450 +0.1481717 +-5.3333826 +11.0025692 +0.0056104 +1.0853300 +4.2032523 +-10.4007645 +-0.1232416 +-2.5469692 +-1.4496018 +-0.9651890 +6.0903835 +2.3296700 +-1.7560688 +1.5359290 +-2.4770734 +0.5012053 +-20.1174946 +21.5104694 +-0.3586829 +1.3193458 +6.8007259 +-20.5400696 +-0.7857548 +-3.2265565 +-2.3801458 +-0.9736679 +9.8748522 +3.6355419 +-1.8280001 +2.8327148 +-3.4032426 +0.8532848 +-24.8354950 +32.8786583 +-0.8105128 +1.3732657 +9.7096519 +-30.7519608 +-0.4925154 +-2.5398080 +-3.2422438 +-2.3190432 +7.3832378 +2.4481800 +-0.5271152 +0.9254442 +-2.3494201 +0.9430293 +-5.9343033 +21.7252026 +0.1518512 +0.6673908 +4.2572579 +-20.4105415 +0.0456446 +-1.6708440 +-1.7462096 +-1.0843332 +3.5412464 +3.3831244 +-0.8220598 +0.7900862 +-1.3555387 +0.1273056 +-6.3586545 +10.8951645 +0.4878413 +1.2892780 +4.2089829 +-10.4291582 +-0.5242509 +-3.7686296 +-2.1634686 +-0.9111969 +5.9562716 +2.7664115 +-3.2452598 +1.7536672 +-2.7131040 +0.2743337 +-19.0139942 +21.4312592 +0.1702769 +1.1384388 +6.7173719 +-20.4274120 +-1.6443368 +-5.1014366 +-3.9216049 +-1.9889126 +9.9910269 +4.5788789 +-5.1642365 +2.7560179 +-4.4098253 +0.3995369 +-30.0639877 +33.2626915 +-0.0172065 +0.4826058 +11.4667234 +-30.0869408 +-1.4868770 +5.4275975 +0.3535615 +-0.8791924 +9.1823931 +9.0655088 +-16.6434002 +1.7836214 +-3.7019925 +-0.4232951 +6.4514370 +24.4381542 +-1.2318788 +2.5828023 +0.9161291 +-22.4213314 +0.8716501 +-2.2660313 +-1.6840049 +-1.6909579 +3.2281756 +3.3109202 +-1.5065309 +0.8970177 +-1.6659902 +0.0101248 +-8.0728788 +10.7341413 +0.5659878 +1.1921163 +4.3620744 +-10.3748293 +-1.1283273 +-4.9122877 +-2.4050684 +-2.3287587 +5.6963601 +3.1523271 +-3.8049784 +1.3341475 +-3.2923951 +0.3573108 +-29.5723686 +21.2918110 +0.6566383 +1.4026324 +6.9715095 +-20.3144379 +-2.4099195 +-6.9456635 +-3.7958539 +-2.9171150 +9.3262262 +4.5170455 +-4.7512388 +2.5217767 +-4.3088870 +0.7856187 +-170.7106628 +32.7373199 +0.5520065 +0.9213881 +10.3847942 +-30.3985100 +-2.3423817 +-3.6888375 +-3.8118441 +-3.1216326 +7.0500011 +3.0888956 +-2.9283731 +1.6650324 +-2.0798020 +1.0788504 +-64.2798080 +23.1705551 +0.9302459 +-0.6251360 +6.5119300 +-20.1970730 +-0.0552289 +-2.9199283 +-4.1493144 +-1.7016821 +3.1382892 +3.2370079 +-2.4530795 +0.4973812 +-1.2603050 +0.2632137 +-9.8206625 +10.6805582 +0.6022376 +0.5246671 +4.1786714 +-10.4272184 +-1.1700368 +-5.9085832 +-5.5212002 +-1.7138100 +5.1109409 +2.9376812 +-5.6003633 +1.1604054 +-2.7394228 +0.2819482 +-26.6728802 +20.9764175 +0.9465099 +0.0911410 +7.0506029 +-21.0176449 +-3.2189388 +-8.1862135 +-5.9329529 +-1.4048558 +8.5760813 +4.9242420 +-6.0047655 +0.8185695 +-2.9734657 +0.7873200 +-30.3657322 +32.3627548 +1.0049294 +0.4406548 +10.4723835 +-31.2781658 +-3.7066174 +-9.8090477 +-5.1598625 +-4.2336698 +6.5175314 +-7.7774496 +-2.5874634 +-5.4698014 +-4.5007730 +-0.6960746 +-13.8255262 +19.5204830 +3.5040791 +-1.3031859 +3.5463421 +-21.9198322 +-0.9101636 +-3.6955526 +-4.6796827 +-1.8506134 +2.6948376 +3.2439890 +-2.7754271 +0.1818489 +-1.4822146 +0.1148484 +-10.8553171 +10.4503222 +0.9599032 +0.3872033 +4.2889571 +-10.4873447 +-1.7168779 +-7.3502865 +-5.7787371 +-2.6239171 +4.1696024 +2.3604038 +-6.0450354 +1.0452155 +-2.9980485 +0.3191190 +-35.1312218 +20.3821526 +1.2299600 +-0.2836101 +7.3988771 +-20.9162102 +-4.3277407 +-9.8943205 +-9.0170212 +-2.5582545 +8.0096598 +3.4574919 +-7.1841164 +2.5437002 +-3.3620105 +0.5280555 +-67.2063980 +31.9251900 +0.8534334 +-1.5242603 +11.9889097 +-31.9845390 +-4.5818243 +-14.3733835 +-14.1111546 +-4.5389323 +4.6850080 +1.3637526 +-6.6053963 +3.4111807 +-4.4232216 +-0.1886877 +8.9250059 +19.6062965 +-1.7584671 +-6.1801825 +5.3133388 +-19.3877220 +-4.6436572 +-4.3498664 +-5.2390542 +-2.0715172 +2.5173748 +3.1527824 +-3.2033720 +0.3976928 +-1.4374897 +0.2092493 +-12.1883955 +10.4983025 +1.0670142 +0.3612781 +4.3722053 +-10.5020599 +-2.1515310 +-8.0666008 +-8.1120319 +-2.9694674 +3.3082292 +2.2564318 +-6.9445009 +2.0670125 +-3.2096107 +0.4388694 +-38.7542000 +20.0901222 +1.0040748 +-0.8507266 +7.1815801 +-20.8622036 +-5.5185843 +-11.9678793 +-9.6333723 +-4.9544382 +6.7267356 +4.6260138 +-10.8203354 +3.4868746 +-4.8231673 +0.9185209 +-49.2937813 +31.3218422 +0.7045885 +-2.4368820 +11.6779671 +-30.6607094 +-6.5093064 +-11.9796715 +-31.2811680 +-1.5667328 +5.9218531 +0.4236445 +-3.1931033 +3.6011965 +-1.1625363 +0.0557457 +-1.4781117 +19.4720745 +-1.8981262 +-8.0849342 +2.8509717 +-20.1254692 +-2.8125536 +-4.9839010 +-5.1419029 +-2.1144741 +1.7162195 +3.4981446 +-3.2447591 +0.3040138 +-1.9223675 +-0.0483384 +-12.6982241 +9.8448677 +1.4471242 +0.6936251 +4.2424808 +-10.6282797 +-3.0894532 +-10.0454798 +-9.6732101 +-2.4076550 +2.3488955 +1.7103266 +-6.9300680 +1.5402021 +-3.3441215 +0.2168483 +-41.5680122 +19.3628311 +0.8126348 +-1.5224870 +6.7833757 +-21.3475342 +-6.9721918 +-13.3937912 +-12.6515656 +-1.5093893 +5.2207651 +3.3603237 +-9.2459307 +3.0116022 +-3.3864057 +0.5805380 +-55.7673721 +29.9958229 +0.1365514 +-3.0620956 +9.5359745 +-33.0246086 +-8.2820854 +-3.0038154 +0.5136493 +-10.3641329 +10.1597443 +0.1499882 +7.8790889 +6.3624253 +3.9991927 +1.2850807 +-1.5321895 +26.4471550 +7.7714734 +13.0352221 +15.6396780 +-19.4465008 +3.6197569 +-6.0720339 +-11.4929419 +-2.1368268 +0.8392274 +2.8576806 +-2.8095648 +0.1044551 +-1.3627957 +0.0964913 +-14.2648592 +9.4815235 +1.6610363 +0.2259281 +4.1620040 +-10.6599035 +-3.9744902 +-12.4281969 +-17.4562035 +-3.8814859 +-0.1622351 +1.2285608 +-5.9631915 +2.3584752 +-3.7426736 +0.2555118 +-66.4605637 +17.4643612 +1.7942772 +-1.4796555 +6.7996216 +-20.7194214 +-9.3121462 +-18.2838745 +-21.0136089 +-5.1744981 +2.4423320 +3.4995718 +-9.9321899 +3.4421377 +-5.4059911 +-0.1160340 +-67.2487640 +27.4634380 +3.0133748 +-2.1763663 +10.4020119 +-31.2563648 +-12.0047827 +0.9286903 +-21.6055279 +-5.5965471 +6.8719544 +0.6182221 +2.0972090 +0.9456385 +-2.9670327 +0.0340042 +5.6770916 +23.8753548 +2.5069480 +-4.6939702 +6.4294963 +-22.8038864 +2.9295561 +-6.4510369 +-12.0511761 +-0.6143949 +-3.0602927 +0.9585081 +-3.3878839 +1.4157709 +-0.9517935 +-0.5532190 +-15.6942415 +6.6159654 +1.2585734 +-0.1300181 +2.6443861 +-11.2724838 +-6.3930697 +-13.6970453 +-38.8404770 +-1.4711818 +-4.3106413 +1.2345051 +-6.9721642 +3.5922778 +-2.2244430 +-0.3531155 +-35.4035950 +13.2899818 +0.4476993 +-2.9565649 +5.7103291 +-21.3593998 +-14.5944700 +-18.3218765 +-15.6440020 +-4.6850824 +-0.8435450 +2.5990157 +-6.4674835 +2.5173626 +1.7338475 +1.9629316 +-53.0418816 +25.3871040 +3.6781867 +3.4444056 +8.7188911 +-31.4880333 +-12.1166916 +-25.8659821 +-4.2296462 +-0.1063788 +7.9665117 +-0.0511471 +-14.8123560 +4.4261456 +1.5883605 +0.2672578 +-0.6842726 +20.1233082 +-1.7241851 +-3.9295397 +2.5160315 +-21.2133408 +-1.4526855 +-8.2383308 +-7.2779379 +-2.1947246 +-1.8565252 +0.5271049 +-1.9430871 +0.4939111 +-1.4452999 +-0.0210970 +-14.9375916 +7.5823441 +1.7790321 +-0.0533709 +3.5017281 +-10.3868513 +-6.3247442 +-13.6365414 +-10.6723080 +-4.0944033 +-2.0373671 +-0.2495958 +-3.8813968 +3.0238748 +-3.4086833 +0.4200483 +-35.5579529 +16.2170181 +1.1971598 +-2.2850668 +6.8261924 +-19.3278866 +-10.9246750 +-17.8327065 +-12.5267525 +-5.0106187 +-2.1070235 +1.9375418 +-7.1898732 +7.4336538 +-4.0769997 +1.0651680 +-30.4393234 +24.3462276 +0.1044728 +-5.5048089 +10.0038223 +-30.5986538 +-16.2639790 +-15.0551395 +11.0871191 +-4.6644087 +1.2912508 +4.2764101 +-7.8127618 +0.2316542 +-2.2042024 +0.5300503 +-5.9985561 +19.5864162 +2.1122386 +-3.9098420 +7.1743646 +-22.6828289 +-15.4504356 +-9.2302456 +-2.9300127 +-2.9333799 +-3.5710692 +-0.0159229 +-1.8699580 +-0.5496231 +-1.7810279 +-0.0241322 +-16.9844036 +6.6966348 +2.2000492 +0.2060001 +3.5246525 +-10.4703484 +-7.7317734 +-15.5241356 +-5.3396111 +-5.1486931 +-3.4614985 +-1.0979390 +-4.3680797 +2.4256244 +-3.1871614 +0.6342546 +-34.1448898 +14.7434540 +0.6083828 +-3.1283228 +6.8100305 +-19.8152924 +-12.7264376 +-20.7084675 +-4.8793855 +-6.7031627 +-3.1557326 +1.7554681 +-9.2223730 +5.4760323 +-4.1892614 +1.3650742 +-31.1329708 +23.2905598 +-0.4196807 +-6.8607197 +10.2640648 +-30.9186478 +-18.6323605 +-12.9550629 +4.7675943 +-2.9608097 +-1.1744369 +3.1623039 +-16.5689869 +3.5063801 +-3.8813417 +-0.9940183 +-11.6450043 +18.9319191 +2.9585271 +-6.1875792 +7.1445274 +-23.4216213 +-30.4324379 +-11.5215178 +-0.1910015 +-3.2211483 +-5.6904984 +-0.3858242 +-1.3698207 +-0.6375108 +-2.0005801 +-0.0329372 +-17.0265923 +5.3532619 +2.3626895 +0.2586457 +3.4542367 +-10.8266649 +-9.9197111 +-17.8951664 +-3.4170578 +-6.5745997 +-5.8333311 +-2.1853688 +-6.2334771 +2.9970522 +-2.6622508 +1.0837132 +-38.3331718 +12.5485754 +-0.2474872 +-4.3634415 +7.0732021 +-20.2643929 +-16.0312939 +-22.9277153 +-4.7030625 +-9.3726845 +-8.4168825 +1.1828017 +-18.0123596 +6.0612359 +-3.9371202 +1.8019223 +-33.9769173 +19.7986622 +-0.7163016 +-8.2487793 +10.6420507 +-31.0468903 +-39.6859398 +-12.6373138 +1.8401020 +-5.1792893 +1.6289760 +3.1560664 +-10.0338306 +1.3259343 +-4.4884853 +-1.3381702 +-16.3147106 +21.7551098 +3.8394220 +-12.2849674 +7.9087291 +-23.2774067 +-24.0106964 +-12.8526011 +1.1057376 +-3.4189303 +-8.3903627 +-0.6381330 +-2.1589093 +-3.3565974 +-1.7872002 +0.0897737 +-17.9669552 +4.1263938 +2.4643500 +0.3418361 +2.9861403 +-11.1585684 +-12.7778511 +-20.6162891 +-1.6114390 +-6.5337400 +-9.1259384 +-4.2200484 +-8.4597692 +-0.4717369 +-1.4371278 +1.3127021 +-37.6537094 +10.1296768 +-0.1661999 +-4.3289704 +6.2175341 +-21.2925301 +-22.8828697 +-26.9237633 +-2.8320305 +-9.6742296 +-11.1755934 +-1.8366330 +-16.3912525 +0.8218389 +-1.4145277 +2.1050739 +-39.2013817 +18.4565945 +0.8287103 +-6.0734100 +9.8614159 +-32.1179276 +-102.8015823 +-10.1134033 +-0.9463376 +-7.9299593 +-0.9237945 +2.1414440 +-13.6470404 +-1.5482793 +-5.3278661 +-1.7710794 +-272.6188660 +18.0119877 +4.0772524 +-11.0134592 +5.2854047 +-25.4476528 +-25.0307369 +-13.0977097 +3.5859036 +-4.0489211 +-8.7157383 +0.0419193 +-3.5503120 +-4.0420809 +-2.1284862 +0.2042110 +-22.7233772 +3.8174067 +2.2573383 +0.4786442 +2.8671856 +-10.9303856 +-13.6119709 +-24.2469578 +2.6559815 +-7.7120209 +-18.5643692 +-5.3019681 +-6.2155995 +-4.3811288 +-2.7091630 +1.1394491 +-264.2794189 +5.0625753 +1.3865638 +-1.8068179 +4.2284727 +-22.2878933 +-129.1376801 +-42.8305740 +1.0652926 +-10.1514893 +-18.5008430 +-5.9811802 +-7.4272022 +-4.7009230 +-1.8150069 +2.3038828 +-38.2273979 +12.0802193 +1.5348560 +-5.4521518 +5.4854364 +-33.9763794 +-126.7779083 +-76.3626709 +1.8983254 +-5.5113335 +-9.5826559 +0.2299372 +-8.7814999 +-0.7189363 +-1.6805922 +-0.3906971 +-16.1723576 +16.3909168 +6.4346914 +-10.2282019 +7.0299492 +-25.1309013 +-12.8253880 +-10.9525623 +-0.7977144 +-5.1923609 +-17.2613945 +22.3499756 +-2.3804069 +-1.7237312 +-1.3677857 +1.6714035 +-17.0229759 +-2.6093955 +-0.4095954 +-1.1345928 +5.0841122 +-9.3969927 +-13.0796680 +-5.9376745 +-7.1606240 +-5.5701365 +-3.3548458 +5.7808528 +-2.7083671 +0.2771067 +0.0303686 +1.5492899 +-20.3322926 +8.9635143 +-0.2418652 +-3.7514992 +4.8228817 +-11.0204020 +-2.9131818 +-10.2339792 +-8.1342058 +-4.6278238 +-11.3185654 +1.3950109 +-8.5123434 +-2.1369879 +-1.2114335 +-0.0616284 +-35.7570114 +6.8048162 +4.1575689 +-2.4836931 +3.2011228 +-12.2480564 +-54.1191521 +-29.7313957 +-14.1456728 +-11.5390854 +-9.6291990 +-0.1305717 +5.5121574 +-5.6509571 +-4.7943454 +-1.2738800 +-28.9153404 +3.9338789 +10.5656834 +-4.7160659 +4.9328399 +-28.1810188 +-20.9506264 +-1.7189035 +-56.6103325 +2.3094735 +1.4298761 +-5.5239677 +-2.4554424 +-9.4160595 +-6.6357870 +42.4930191 +7.9250789 +-50.3835907 +-17.4496136 +3.5978844 +118.7043457 +0.3438383 +19.9825745 +-26.9337254 +-53.0576515 +-0.0557077 +-139.7488403 +-4.2769074 +-4.1180029 +-27.9328594 +-1.8708438 +-93.3231888 +8.3859701 +73.9142075 +-124.9954987 +5.4167337 +41.4898529 +0.0331668 +30.9200382 +-21.3561287 +-1.6235999 +-2.5122950 +-284.5744629 +-1.4311192 +-114.2574768 +-36.1260185 +0.1548883 +-227.8827972 +3.7568657 +36.3521042 +-279.0063782 +3.0126107 +14.7981176 +0.6545590 +37.2413139 +-33.3041267 +18.8697109 +-3.5656693 +-95.8061218 +5.0238905 +-1.0053514 +9.1711740 +3.6206939 +-19.3564053 +-11.7225513 +63.9780655 +4.4401083 +-1.5681282 +-63.9201050 +-50.0287476 +17.3454914 +-60.1962433 +-11.9394102 +-5.5789428 +-84.5777130 +1.1613219 +2.9283810 +4.4306216 +4.3758821 +21.9558163 +-180.7989197 +-33.8200836 +3.2477434 +3.1141505 +-2.5227103 +-127.9198074 +-46.9868660 +-26.4673958 +-373.2945557 +-3.0824337 +-102.1586304 +-59.8116570 +-50.3339310 +-20.8350143 +-34.0293579 +-23.6591530 +-13.5106506 +-191.8402710 +-15.8354349 +-60.7659454 +-104.3844299 +104.1947708 +-105.4020691 +-0.9662876 +0.6115178 +1.7920685 +0.6732075 +-1.3370186 +200 16 5 0 0.1000000 1.0000000 +2.3475289 +-0.6921729 +3.1712563 +0.9343429 +-5.7262745 +-4.8521504 +-1.7799748 +5.7739859 +-0.6654971 +-2.0522277 +-0.8824420 +5.9970064 +-0.2928656 +0.2167690 +-0.2886271 +-1.0631036 +5.5245709 +2.0001462 +-0.8052547 +2.0927567 +-0.8863404 +-7.5709486 +0.7794430 +11.7557840 +-0.2561330 +-3.7820625 +-3.3911114 +9.6201792 +1.2782853 +0.2696002 +0.9226453 +-1.1261865 +3.3062110 +1.6793065 +-1.5841300 +3.4966092 +-2.2361226 +-11.5974293 +1.6417297 +14.3240595 +-0.3808107 +-4.9075570 +-4.4911017 +10.9675446 +3.1628842 +-0.3274567 +2.9712496 +-1.6298807 +14.8992653 +0.2055749 +-0.8997350 +2.0829041 +-2.0351868 +-8.1456089 +1.2587681 +3.6554227 +0.9953147 +-2.6689072 +-3.6208255 +5.5258055 +1.2882190 +0.0977886 +1.8926018 +-0.0253342 +3.2332280 +-0.5642753 +3.4729908 +0.6323051 +-6.4863482 +-5.8665438 +-2.3007984 +5.8701034 +-0.9876453 +0.3862914 +-0.8255259 +5.9607415 +-1.3449090 +0.1257901 +-0.6236514 +-1.3548282 +8.3652792 +3.6791635 +0.6363283 +2.5177486 +-3.7382464 +-7.5769062 +2.7280943 +13.0983725 +-0.4237475 +-3.6797361 +-3.5592761 +10.5359135 +1.5466616 +0.3065910 +-0.2118449 +-1.1125796 +8.5299788 +3.8221738 +-0.2677821 +3.6004395 +-4.8900352 +-11.4014788 +3.3211403 +17.5506783 +-0.6772340 +-5.8719621 +-5.1656160 +14.0490627 +2.4605405 +-0.6008180 +1.3129336 +-1.6278081 +15.2300987 +0.3548102 +-0.8886650 +2.1274436 +-1.6920065 +-8.1236238 +0.6668540 +6.1605420 +1.3930266 +-2.3322217 +-3.7031531 +5.1594896 +1.3094414 +0.2997145 +2.2981391 +0.0998976 +2.4786847 +-0.1947101 +2.4566073 +0.2263158 +-7.8371568 +-6.2975993 +-4.4554853 +5.5385160 +-0.5327257 +0.8395340 +-0.7971699 +5.4690123 +-1.7811604 +0.5946863 +-0.4501128 +-1.0653144 +9.4740791 +5.0013108 +0.5289623 +2.4128931 +-4.9588981 +-7.6037583 +2.3328645 +13.8577013 +0.0809604 +-3.0138364 +-3.6946681 +10.5553684 +1.2824481 +0.8198922 +-0.2886636 +-0.8678362 +11.0097961 +5.3055239 +0.0302975 +3.1852221 +-6.1132903 +-11.5564833 +2.6670616 +19.3009739 +-0.9556723 +-5.9423323 +-5.6773958 +15.0441456 +1.2302603 +-0.1153640 +0.8870991 +-1.7562041 +1.5013685 +0.3624902 +0.1427013 +2.6041121 +-1.5924971 +-7.2119932 +0.9406050 +6.8901439 +1.5026958 +-3.5953641 +-3.2899354 +6.2032304 +1.9434735 +0.2289656 +3.3073721 +0.0000261 +2.4527538 +0.7746457 +-0.9973828 +-0.8485687 +-8.1192789 +-6.5540304 +-6.7396245 +5.5776772 +-1.0813043 +1.1092076 +-1.2987417 +4.9254889 +-2.7827885 +0.6184341 +0.1777807 +-1.0263436 +11.2010880 +5.5517616 +-0.4063665 +2.3367248 +-5.7901387 +-7.6323061 +1.7297678 +14.7901545 +0.6014330 +-2.1240027 +-3.8025954 +10.6810942 +0.4904219 +1.4763023 +-0.5644989 +-0.5607983 +13.7408419 +4.9829445 +-1.1733692 +2.7043228 +-7.8100615 +-12.0640993 +1.5350325 +20.6206379 +0.2226970 +-4.7455101 +-5.3930516 +15.1302271 +-0.5194052 +-0.1434068 +-0.1876959 +-1.1436247 +0.3605943 +0.4353175 +0.2438601 +3.3728948 +-2.3410809 +-6.4203424 +0.5750158 +9.1465378 +1.1329987 +-3.7164540 +-3.6160331 +8.4901953 +2.5136793 +-0.2963032 +3.0858784 +-1.1058118 +3.1833107 +0.0437790 +-5.5899782 +-1.9959930 +-7.9378185 +-6.8543963 +-6.9420347 +6.0858879 +-0.9473403 +1.2263498 +-1.2953602 +4.3102193 +-3.8350568 +0.0851731 +0.5097524 +-0.9542724 +13.0120239 +5.1192436 +-1.0992402 +2.0018318 +-6.9459000 +-7.5526290 +2.1966581 +15.7916832 +1.2967856 +-2.2563245 +-3.9334857 +10.3782978 +-0.4317532 +0.9427118 +-0.7880861 +-0.1609576 +16.1577816 +4.3452430 +-2.6903155 +2.2022488 +-9.8155432 +-11.9349136 +2.2612405 +22.0166836 +1.3362397 +-4.4059844 +-5.4347053 +14.9876041 +-1.7463597 +-1.1201713 +-0.7307017 +-0.5022521 +0.5156776 +-1.0183860 +-0.7584888 +3.0730464 +-2.8520236 +-7.5676498 +-0.2044972 +10.7707148 +-0.6543915 +-4.3059754 +-3.4041297 +8.9863167 +1.5851024 +-1.5872253 +2.7402337 +-1.7491285 +4.0363302 +-1.3827620 +-8.9005661 +-3.0291893 +-8.8168230 +-7.5051608 +-7.5107479 +6.8073177 +-0.2573988 +3.3383825 +-0.7962816 +3.3423648 +-4.8869572 +-0.5684527 +0.6563547 +-0.7679024 +14.2310886 +4.1357851 +-2.7951856 +1.3114408 +-9.4747229 +-7.7524185 +2.5412114 +16.5235519 +1.7693255 +-0.2595964 +-3.9268141 +10.2157164 +-1.5206977 +-0.1459108 +-1.2811204 +-0.2051374 +17.4975471 +3.5367703 +-4.1208401 +1.3607378 +-13.5298309 +-12.4614677 +2.7305889 +22.7009983 +1.7578728 +-1.7074794 +-5.3145924 +14.6746998 +-3.1936026 +-2.2385695 +-1.3966990 +-0.7094510 +5.4078312 +-1.9860551 +-0.6428716 +3.3879006 +-4.4863992 +-8.0847836 +-1.2575021 +11.8972654 +-0.3618877 +-5.5013137 +-3.3264513 +11.9242153 +-0.6979467 +-3.1674879 +-0.6719338 +-1.2086931 +3.3854399 +-0.1227748 +-13.0365343 +-0.7342827 +-9.7953043 +-5.4957509 +-1.4918358 +6.1978316 +-0.5269353 +1.5912676 +-2.2426972 +4.4429970 +-2.2191513 +-0.6494591 +0.5864870 +-1.2102172 +12.0159349 +-2.5630484 +-4.5576878 +0.1732320 +-14.8199968 +-7.6448178 +4.1047373 +17.0861645 +1.2611282 +-2.9130192 +-4.9027710 +9.4633036 +-1.8159600 +-6.3839793 +1.8089777 +-0.5421517 +16.0480232 +-3.5957463 +-10.5738125 +-0.2396402 +-15.0348577 +-12.7410460 +3.7054734 +23.8048153 +0.9361309 +-1.9163833 +-7.4930201 +13.9119968 +-3.3247213 +-8.2556715 +2.6910095 +-1.7088377 +3.7527199 +-1.3844506 +0.6873944 +3.8538649 +-9.8718977 +-10.9120989 +-4.1556773 +10.6549578 +-1.1011536 +-7.0428925 +-6.7420125 +8.0384283 +-3.5622122 +-4.2497091 +-0.2464269 +-1.5926167 +3.4151480 +-0.0373317 +-16.2275181 +-0.7554657 +-10.2415915 +-5.4327083 +-0.2714340 +6.2164249 +-0.7935577 +1.5579537 +-2.5476449 +4.5655336 +-2.2527051 +-0.6280853 +0.4710570 +-1.4917928 +11.2188311 +-3.8409336 +-8.9829721 +-0.6907298 +-12.6269579 +-9.3305273 +0.7646888 +15.4517069 +2.2090483 +-3.1724362 +-4.9593830 +8.4032583 +-4.0077024 +-5.7843013 +0.4409086 +0.0301822 +15.5812721 +-5.6461573 +-11.0029793 +-0.8794041 +-20.4402447 +-14.6651182 +0.9885914 +22.0928211 +1.6588070 +-2.5465069 +-7.8829131 +12.5516500 +-6.2319818 +-8.5768528 +0.7572116 +-0.8422483 +6.6582704 +-1.9588555 +-11.8965921 +3.0667427 +-7.3127184 +-11.5976696 +-2.6476898 +11.4103155 +-1.8444955 +-0.7553082 +-6.7166209 +8.6072168 +-3.2787476 +-2.9875581 +-0.5281404 +-1.7708154 +3.8400631 +-0.0188060 +-20.9428482 +-0.6306178 +-10.3703451 +-5.4647670 +0.2791707 +6.3386583 +-0.9298850 +2.0960219 +-2.9509075 +4.5909038 +-2.3574259 +-0.3881754 +0.4336730 +-1.6989253 +10.8244610 +-5.8293624 +-10.4217176 +-1.3555595 +-16.3196278 +-10.4094095 +-2.8258688 +14.6966801 +2.2300253 +-3.4432230 +-5.7934527 +7.7121916 +-5.9498129 +-6.2989106 +-0.2823288 +0.4723095 +15.4878168 +-8.6911058 +-18.3461647 +-1.7392561 +-21.3345356 +-15.8661003 +-5.7353911 +21.4678421 +1.1634982 +-1.7294333 +-9.7405386 +12.1109858 +-10.2233706 +-8.1588898 +0.4668941 +-1.1558236 +3.7917881 +-8.0056105 +8.1603994 +10.4280310 +1.4217213 +-11.1478939 +-10.4469452 +10.3916492 +-2.4278467 +-5.0884295 +-9.4773598 +9.9653616 +5.5953813 +9.4148922 +-1.8932678 +-2.0378644 +4.0333252 +-0.0659525 +-22.2172985 +-0.7536484 +-10.1099787 +-5.4954333 +0.6786955 +6.3627071 +-0.9917886 +2.5086076 +-3.3699682 +4.4375243 +-2.5044811 +-0.4155306 +0.4119813 +-1.7611971 +10.1708574 +-5.2824740 +-10.7177763 +-1.6948124 +-18.1043129 +-11.4246397 +-2.8538744 +13.7755642 +1.5385207 +-1.0672381 +-6.3520341 +7.2375736 +-7.3117285 +-5.9413781 +-0.6004511 +-0.3342898 +16.0483685 +-12.8749571 +-20.0834351 +-0.6037496 +-33.6529274 +-15.5350513 +-5.2864223 +21.4811249 +0.6983026 +-0.8722589 +-10.9618864 +12.3717709 +-7.9509435 +-10.5922222 +-0.5959926 +-0.3228826 +-0.6804956 +8.2356930 +-0.6809242 +4.0619984 +-3.9554045 +-12.3952150 +7.7347956 +13.2810240 +0.0309661 +-11.8553696 +-4.0382881 +9.4891796 +-17.0205727 +7.1546636 +2.4276481 +-6.4318051 +4.2468395 +-0.3048057 +-21.5563660 +-0.9958072 +-10.5477467 +-5.5825386 +0.5927565 +6.5616994 +-0.8920217 +2.4853137 +-3.6946516 +4.4802155 +-2.8334954 +-0.9429489 +0.4372494 +-1.7605773 +9.6306295 +-4.4149432 +-14.5964632 +-1.8668661 +-22.3251934 +-11.5047598 +-1.9145787 +13.5176363 +-0.3815654 +-0.8711499 +-7.4172688 +7.5570836 +-6.5560150 +-6.2424850 +-0.3505546 +-1.1674142 +15.5573530 +-6.9881158 +-15.7489243 +-1.8916655 +-22.3525696 +-16.4578323 +-1.3365963 +21.2796936 +-1.4395015 +-4.7861671 +-11.6029520 +12.6670580 +-14.1234303 +-10.5418844 +0.1097203 +-1.7993509 +9.8470573 +12.7885132 +-1.0088824 +15.3903599 +-8.1794567 +-4.3546114 +-0.0073936 +8.0052233 +0.1655508 +-15.8504486 +-14.4116249 +16.5412807 +10.0735378 +-1.1043653 +-9.1776276 +-0.7449422 +4.2591720 +-0.4281778 +-21.5114059 +-1.1459258 +-11.2337847 +-5.6386437 +0.7450448 +6.6157522 +-0.7218463 +3.0239077 +-3.9964693 +4.1835074 +-2.8592236 +-1.1635927 +0.6800289 +-1.8927890 +9.3967876 +-3.8873115 +-13.7858648 +-1.7993170 +-18.9714565 +-11.8622408 +-1.3730317 +13.1698284 +-0.3783864 +-0.3589281 +-8.3809853 +6.8030987 +-7.1411886 +-3.6365163 +-0.5721966 +-1.1196454 +14.8698282 +-6.4749622 +-14.6129198 +-2.8199980 +-16.3997250 +-17.8933372 +-1.4109651 +20.8868275 +-0.6473951 +-0.7349247 +-12.6443806 +10.4500990 +-16.8428917 +-3.7937098 +-0.3684240 +-1.1390790 +9.7512751 +4.9788232 +-10.6904030 +9.7403002 +-18.7903881 +-18.4148178 +-16.6187954 +12.7466516 +2.9446850 +0.1911055 +-4.0108771 +12.1301136 +-10.9778004 +5.5190454 +-0.4139436 +-1.0387042 +4.0409193 +-0.4823749 +-20.8784199 +-1.5348746 +-10.7066298 +-5.7620659 +0.6968669 +6.5019093 +-0.7469496 +2.7446241 +-4.6373997 +3.9553397 +-3.0905414 +-1.1468872 +0.6935515 +-1.5748270 +7.7419772 +-2.6253355 +-20.2811050 +-4.1111717 +-22.6325302 +-12.8017473 +-2.2559314 +12.2241096 +-0.3710245 +-0.0771080 +-8.9299364 +5.6755838 +-9.2713842 +-5.8821964 +0.0846699 +-1.0412798 +12.2477770 +-4.2473688 +-32.5939827 +-5.0481348 +-24.8005772 +-19.9286594 +-3.1804173 +18.8850307 +0.2331353 +0.8650748 +-12.5379753 +9.0699062 +-16.9148102 +-8.6140280 +0.4786613 +-1.6448390 +5.7195888 +-0.2847623 +-2.6561992 +16.1466312 +-10.6687489 +-14.3634310 +-8.1332617 +9.2051210 +-0.0169531 +-1.2123084 +-7.5193291 +9.8866234 +-34.3533554 +-24.6363773 +-2.6979103 +-1.3971015 +4.3248024 +-0.5013736 +-21.7907848 +-2.2387028 +-10.6803122 +-6.0354996 +-0.1681893 +6.6077213 +-0.3588547 +3.0985661 +-4.8878770 +3.9019859 +-4.0838714 +-0.8591809 +0.7007158 +-1.5343704 +9.1259651 +-3.5820653 +-17.1721096 +-3.2752650 +-21.7843018 +-13.5360498 +-2.4926517 +12.3931351 +-2.2745533 +1.8542678 +-10.2614470 +6.0666780 +-9.9298925 +-4.3907804 +-0.4694839 +-2.2407665 +12.2272673 +-8.4717293 +-21.2363071 +-4.4939404 +-37.8235207 +-19.3722744 +-0.6794048 +19.3891640 +-6.8358302 +-7.8445253 +-17.3851128 +8.5487766 +-18.0685196 +-10.3826952 +-1.0545782 +-2.1770990 +4.2292509 +-8.1425133 +-0.1314921 +5.4443984 +-2.8216920 +-11.4093866 +-2.4020879 +13.3199167 +-4.3228517 +1.1052368 +-21.7229652 +10.3857307 +-16.7569370 +7.3865404 +1.0193454 +-3.6956573 +4.3873205 +-0.7558308 +-23.1156998 +-2.8034270 +-10.4367523 +-6.4224219 +-1.0917341 +6.5863652 +0.1206466 +3.4321036 +-5.0756869 +3.5666702 +-4.7235680 +-0.7507107 +0.8286834 +-1.3883635 +9.1832952 +-3.0599389 +-21.4712048 +-3.8709519 +-23.7781868 +-13.6698370 +-4.2823782 +12.6493616 +-1.1793482 +0.5905127 +-10.6299067 +6.1927476 +-10.7508030 +-3.8222191 +-0.0700289 +-1.3153609 +15.1519632 +-4.1116428 +-14.0423765 +-0.3479422 +-34.3509598 +-23.3521538 +-2.4595432 +17.8472881 +-4.2235293 +-1.2908599 +-16.2636471 +9.0592661 +-23.1576157 +-3.8217633 +-2.5164533 +-2.6292043 +-12.1045113 +9.8136234 +-10.5742130 +-0.5270910 +-2.8957481 +-9.4632931 +-2.9169815 +6.1817603 +17.0529671 +-0.4010226 +-6.2541575 +7.6469769 +-4.8697367 +-7.5324411 +11.9183826 +0.9949383 +4.3837581 +-0.7625372 +-22.8846741 +-3.2021654 +-10.5447435 +-6.7126279 +-1.4914049 +6.5646367 +-0.1422705 +3.3638279 +-5.6181135 +3.3050067 +-5.4807043 +-0.8916138 +0.9023556 +-1.4172491 +9.4001818 +-4.1188641 +-25.0660439 +-3.1174657 +-21.8617134 +-14.1100883 +-4.4246197 +12.8424759 +-1.4708364 +0.5008700 +-10.8859491 +6.7432656 +-10.7875557 +-3.8409517 +-0.2470307 +-1.7768080 +13.7271233 +-8.8481750 +-24.0196342 +-1.5030549 +-35.1709061 +-20.1907291 +-2.6479065 +19.1624241 +-1.1215254 +0.0058712 +-16.2779522 +10.7990513 +-17.0567818 +-5.2544403 +-1.2560903 +-1.8519514 +8.7361889 +-11.1696758 +8.9599237 +15.3228951 +-4.8259320 +-17.7090321 +-0.7172505 +17.2455978 +-6.5353532 +0.7584066 +-11.5511570 +3.8448865 +-28.4856224 +-5.0630622 +8.7556171 +-5.8261328 +4.2753716 +-0.6556158 +-23.2623692 +-3.4878118 +-10.2666292 +-6.9518013 +-1.9912335 +6.4666071 +-0.5130511 +3.0492508 +-6.2503171 +2.7891483 +-6.0403495 +-0.6853682 +1.0925807 +-1.3262017 +8.3814764 +-3.4414825 +-28.8623142 +-4.2208304 +-22.9748688 +-15.0213804 +-7.2321076 +12.0567245 +-1.5161878 +1.3105738 +-11.7987585 +5.7127323 +-13.4986572 +-4.2092390 +-0.0464792 +-1.8548336 +13.0764351 +-4.0739884 +-26.9879475 +-1.9395164 +-19.4048691 +-24.2549362 +-13.5539980 +17.2696667 +-2.0363424 +4.3922334 +-15.7620192 +11.2299891 +-20.5324879 +-1.5033252 +-1.1346240 +-3.4987032 +6.7415609 +4.5197306 +3.7453821 +27.0270691 +2.6661072 +-9.9052286 +-2.7273319 +13.3769693 +0.7619087 +-34.5982170 +-19.6247272 +10.2427607 +-28.3813591 +8.5986862 +-1.3391448 +1.8019660 +4.4212046 +-0.6810099 +-24.4879646 +-3.9029558 +-10.1071310 +-7.1868973 +-2.7924116 +6.4987121 +-0.5925629 +3.4196966 +-6.8111219 +2.6484773 +-6.8362837 +-0.6178266 +1.2125239 +-1.3303685 +8.0934324 +-3.8848515 +-31.6302414 +-5.3492718 +-22.9112835 +-15.3513632 +-7.6242108 +12.2240381 +-1.3287302 +1.6218630 +-12.0451317 +5.2718768 +-12.8021441 +-4.1349201 +0.6079692 +-1.6989025 +13.5180225 +-2.4770010 +-35.9438667 +1.9549638 +-26.0660191 +-25.3692627 +-12.5547142 +17.4425507 +-0.8377866 +1.7090548 +-16.2891350 +10.1896019 +-26.1948948 +-2.0422719 +-1.0858154 +-2.0507414 +11.3563347 +9.7702017 +-15.8101816 +4.8139615 +-16.6757259 +-13.5667000 +-6.7384553 +12.7219830 +2.4723916 +-2.2867429 +-5.5367527 +13.4606705 +-13.3732767 +2.1562281 +-0.0364945 +-0.6455181 +4.0079937 +-0.3593975 +-24.5448990 +-4.3137956 +-10.0299854 +-7.6418571 +-3.5172293 +6.1715031 +-2.7164814 +3.3657897 +-8.1547537 +2.3468800 +-7.8896475 +0.3814347 +1.0472877 +-0.4479377 +7.7128768 +-1.6525111 +-43.8447075 +-7.3203430 +-27.4817104 +-15.4851789 +-6.6661077 +11.9042931 +-5.0774798 +5.3504558 +-14.6157360 +5.0902033 +-18.6197910 +-5.9750285 +1.2775207 +-0.6441342 +11.5824318 +-3.4416473 +-25.1712666 +-6.3787522 +-40.1817741 +-23.1381931 +-5.1523347 +16.6867542 +-9.9070978 +8.6724119 +-23.0724697 +9.0724583 +-30.3486004 +-3.9991863 +-0.1617460 +-1.5918207 +12.6801100 +13.4765310 +-2.7052786 +-10.4423141 +-6.9662967 +-9.8298073 +-7.4805236 +17.1355743 +10.2956200 +-14.6080360 +-11.2297163 +10.9885626 +1.8154484 +3.6421835 +3.1115837 +6.2170062 +4.5384340 +-0.1063687 +-22.7818069 +-5.4530687 +-9.6690149 +-8.0463343 +-3.9357300 +6.3932648 +-3.2969425 +4.6332364 +-8.7154503 +2.1024861 +-9.8053522 +0.8389031 +1.3566065 +-0.2789182 +8.1888990 +-2.3802991 +-60.8337097 +-7.6195331 +-23.2449646 +-15.1509571 +-7.8049493 +12.2588720 +-6.2077775 +5.0865493 +-16.7555122 +5.4809718 +-18.3271370 +-4.4192934 +1.2023162 +-0.4254401 +11.6401157 +-4.5725188 +-35.2507172 +-8.0580940 +-33.2554703 +-22.3281841 +-9.1646862 +18.4351482 +-7.9228110 +9.5259600 +-23.8230057 +9.8559256 +-30.4877148 +-5.3055158 +1.5400668 +-0.6070482 +11.5130892 +-6.6291552 +7.2992005 +23.4137440 +-10.8947792 +-9.8607893 +3.7850423 +13.1541290 +-7.6066113 +3.0799816 +-17.9315834 +14.8151684 +-25.1941204 +6.2427640 +-3.0030866 +-1.4153984 +4.7295938 +0.2100296 +-22.8425179 +-6.4646106 +-9.0226116 +-8.3256836 +-4.2440300 +6.3939261 +-4.9547725 +4.6033473 +-9.8913422 +1.8182967 +-11.8635721 +0.8676168 +1.5535951 +-0.7030323 +8.3358126 +-2.7210791 +-63.5402794 +-9.5767632 +-23.9488583 +-15.6958923 +-9.5970144 +12.3622656 +-7.0820351 +5.8353667 +-18.0223789 +5.0309377 +-19.2031822 +-4.2499576 +1.7093817 +-0.5889093 +12.7562828 +-5.0666614 +-32.7171402 +-9.9819794 +-26.0470524 +-21.7456455 +-9.2284327 +19.2250710 +-8.7969570 +8.0837631 +-25.7674446 +9.7654200 +-31.6749725 +-4.5911217 +2.2579727 +-0.0769064 +10.9802713 +-7.5964293 +9.5157633 +-0.6685024 +-7.7413406 +-12.6758528 +4.1593232 +15.7862110 +-7.1115599 +6.9903793 +-17.9855919 +9.2080183 +-38.4193535 +5.0614014 +2.7722824 +-0.5099276 +4.8262963 +0.5178562 +-22.1322346 +-8.1695461 +-9.2727861 +-8.9157705 +-4.4604173 +6.2064071 +-8.6083317 +4.6125078 +-11.7135668 +1.7466582 +-14.9303694 +0.4857088 +1.5179383 +-1.2909170 +8.2149677 +-2.5674465 +-82.9774704 +-11.6149883 +-23.2402363 +-16.9274712 +-10.8352814 +12.0090027 +-10.8522911 +5.1851954 +-19.9418221 +4.6005034 +-23.6893330 +-4.5027070 +1.1936353 +-0.0853240 +12.6719208 +-2.9907699 +-30.9169712 +-12.7857599 +-22.0329323 +-22.3253193 +-9.3006439 +19.0889320 +-14.2519131 +8.2360229 +-29.5831566 +9.6847696 +-50.8933487 +-2.8658967 +2.2211890 +-0.2172173 +9.9282112 +0.0847436 +-0.1197050 +4.6240239 +-11.5171452 +-11.9000864 +0.8602844 +13.2115211 +-6.6292319 +10.5266705 +-20.0100937 +9.9643345 +-27.8834896 +4.6395488 +1.7715377 +-0.4313237 +5.2872729 +0.6964496 +-21.6605225 +-11.9961500 +-8.7226524 +-9.8903866 +-5.0025477 +6.0231080 +-12.6047373 +6.1553588 +-13.7985382 +1.2592725 +-19.0891666 +0.4657642 +1.1458031 +-2.7706549 +8.1874399 +-2.2906370 +-82.6348114 +-14.1583986 +-21.4387989 +-17.4405155 +-10.3821115 +11.4996700 +-16.9134655 +7.0215464 +-24.4022331 +3.5779722 +-30.7312393 +-3.9738293 +0.5678777 +-1.8720460 +13.0118408 +-4.0819683 +-26.8917351 +-15.4648380 +-25.7845840 +-22.5428848 +-8.3697701 +18.8413792 +-21.5927811 +10.2530317 +-38.0431900 +7.6114135 +-74.6127701 +-2.4575438 +2.1610301 +-2.1245954 +8.5312452 +-1.5096772 +-4.7867351 +-14.4239683 +-13.3431683 +-11.9092741 +-0.2823887 +14.4829292 +-10.3478146 +7.3873382 +-20.6477757 +9.4602585 +2.2597742 +4.4420304 +3.0866323 +-0.2595091 +3.4015751 +-0.9015359 +-21.5942383 +-14.6434288 +-8.5060081 +-9.6817150 +-5.1245184 +6.0551419 +-18.8865051 +7.9213576 +-17.2025890 +1.2551291 +-20.8984184 +-0.3429960 +1.9641294 +-5.2460928 +6.5524511 +-2.8713739 +-35.1389351 +-18.0466919 +-21.1822338 +-17.8312149 +-9.0738478 +11.3094435 +-27.4959469 +12.0209894 +-30.4809933 +2.4699857 +-49.1458168 +-3.9286222 +1.8691288 +-4.4322686 +10.6487017 +-5.1882219 +-30.4577808 +-34.3571472 +-35.0119743 +-24.3176460 +-9.0616302 +18.2852974 +-38.1489258 +17.8389549 +-42.6273117 +5.4307408 +-78.1886063 +-4.7617960 +4.4344540 +-5.2381968 +10.4644766 +0.3719620 +-12.0226555 +-15.9774809 +-39.8752594 +-14.2299452 +-3.6020286 +15.2010803 +-18.0872555 +16.1319809 +-19.0748329 +5.3298621 +-0.4931671 +2.1820543 +6.7808495 +-1.2239195 +-0.5629330 +-0.7151816 +-20.5783482 +-9.5369225 +-8.2956181 +-6.9160891 +-2.0804904 +6.5954628 +-13.4123831 +9.1758804 +-15.7146530 +3.1718223 +-13.3367186 +0.7897092 +5.1680198 +-3.1229270 +2.7824686 +-2.9628239 +-8.3282795 +-8.5363741 +-10.0112104 +-7.4005675 +-1.3532481 +7.5382113 +-6.9018397 +8.1754007 +-12.2993355 +3.7386608 +-8.2567873 +0.3229588 +4.0874367 +-0.5203601 +6.2398820 +-1.4800576 +-7.7742167 +-49.6111183 +-8.6585398 +-8.0237236 +-2.9410808 +7.2534404 +-10.4067612 +12.2216015 +-11.6362820 +4.1114941 +-60.2558975 +3.4024734 +3.4406779 +-3.0393677 +0.7104347 +3.8843126 +7.7663612 +1.1533843 +-20.9150581 +-23.2865944 +-16.9581089 +11.4818563 +-16.5368195 +31.9923859 +-25.8709755 +-4.7766418 +-2.2160006 +5.3774552 +14.8675528 +-2.5536878 +-18.5821362 +1.6144530 +2.9735961 +-5.1806483 +-0.2999800 +0.2874221 +-0.7293891 +-2.4969187 +0.1661943 +-5.4575524 +0.2053496 +-0.1252269 +2.2040896 +4.0923018 +-1.6299361 +-1.5150863 +-1.7593299 +2.8010986 +6.5207028 +-10.4251089 +-0.3802962 +0.6303869 +-0.9572535 +-0.0790299 +2.6248703 +-8.6098366 +4.0557528 +5.1124220 +4.8898587 +7.8794365 +-1.7098548 +-2.0011318 +-2.9158514 +3.3291321 +10.3112440 +-15.8433113 +0.2705415 +1.1552098 +-0.6090315 +0.3924968 +3.2807446 +-13.8192291 +5.3105588 +5.9930167 +6.6009903 +9.5377522 +-2.4858882 +-2.8879189 +-3.0256774 +2.1690431 +5.3480492 +-12.3807144 +1.4708085 +0.5228181 +0.0094503 +0.0032738 +1.7224990 +-8.8347435 +3.1796181 +2.0092790 +2.4106810 +2.3375728 +-2.1517825 +-2.3907945 +-7.1323457 +2.6531956 +3.3509514 +-5.2503452 +-0.2624992 +0.1069801 +-0.5928587 +-1.3660555 +1.4075506 +-3.5141203 +0.9610942 +0.7915597 +2.0971649 +5.5423841 +-2.2232025 +-1.7419455 +-8.5975103 +1.9086815 +6.5308371 +-10.5289459 +0.0312977 +0.9725167 +-0.5463824 +-1.3250816 +1.8224909 +-4.8969617 +2.9040892 +3.1652005 +5.4848056 +9.3953571 +-1.1566284 +-3.8882716 +-7.7072468 +3.4438298 +9.3471384 +-15.9943714 +0.3336069 +1.4579027 +-0.4736252 +-0.7834646 +2.5428178 +-10.2557220 +4.3894415 +5.0661983 +7.7799177 +11.4213619 +-1.5858145 +-6.4355097 +-3.1955175 +2.2341409 +4.9394512 +-12.3807850 +1.7701428 +0.6204190 +0.1264223 +-0.1616615 +1.5791392 +-9.2150087 +3.2475846 +1.6322877 +2.2983754 +2.8631446 +-2.3480012 +-1.0538502 +-6.9104252 +2.9637992 +3.4666712 +-6.0002956 +-0.0459784 +0.0287690 +-0.2915412 +-1.1330388 +2.9903383 +-3.4821320 +2.2070699 +0.5144188 +1.3295819 +5.9354854 +-2.0996966 +-1.1851975 +-10.2962446 +2.1317751 +6.7483959 +-11.1333227 +0.1603044 +0.9681470 +-0.0740789 +-1.1024640 +1.4576744 +-3.5260084 +2.8347111 +2.0060012 +5.2262254 +10.2711792 +-0.5599369 +-5.1242537 +-10.6044254 +3.5505707 +8.9812851 +-16.4713020 +-0.0398862 +1.5403481 +-0.2915636 +-1.1088240 +1.6626294 +-9.3118286 +4.1091819 +3.6125164 +7.8989134 +13.0454540 +-1.3031627 +-7.2928882 +-4.6352563 +3.8277183 +6.2596064 +-10.6165915 +1.6173475 +1.0635626 +0.1745225 +-0.6302350 +2.8606057 +-5.0010147 +3.8902287 +2.3669801 +4.2637305 +4.3528595 +-1.5995388 +-2.3875847 +-8.0991688 +3.5571377 +3.7200198 +-6.0295477 +-0.1217755 +-0.0125404 +-0.0892679 +-1.3006965 +2.1698990 +-2.1451526 +2.0034101 +0.5040803 +1.2663966 +6.6732941 +-2.1228380 +-1.6061400 +-11.7405024 +2.4116745 +7.6224809 +-11.2261133 +0.2475606 +0.8764858 +0.1316763 +-1.2676984 +-0.0874975 +-0.5384667 +2.2269878 +1.0290487 +5.1025920 +11.8475790 +-0.7349693 +-7.0881381 +-14.3960314 +2.9743929 +10.0062695 +-16.4129105 +-0.1698090 +1.2417198 +-0.3589162 +-1.8911598 +-0.1761844 +-5.1305881 +3.1972909 +1.7075583 +7.9447885 +15.1655235 +-1.8045882 +-10.5714178 +-8.6352720 +3.5653622 +5.2622490 +-10.3023911 +0.8182032 +1.1868845 +-0.1784672 +-1.2476557 +2.5406067 +-5.6243219 +4.0751681 +1.4889317 +5.6307955 +5.7687731 +-1.0347110 +-2.5382462 +-8.1452866 +3.9448137 +3.5276794 +-5.8485298 +-0.2207141 +0.0381971 +0.2403586 +-1.4497029 +1.1268680 +-0.8243611 +1.6549033 +0.6769103 +1.5699940 +7.3995180 +-2.2981541 +-2.3952515 +-15.9866114 +2.6818936 +8.0078869 +-11.3437738 +0.4353578 +0.4172819 +0.1802424 +-1.9823685 +-1.2221096 +1.4657805 +2.1329982 +-0.4593514 +4.8976960 +13.1084471 +-1.0077362 +-9.1972389 +-20.7098885 +3.9188457 +10.8351698 +-16.4565754 +0.2177170 +0.9732856 +0.3056099 +-2.8253839 +-2.0559614 +-1.7111512 +2.5805719 +-0.4112394 +7.7890615 +17.4386387 +-2.3681066 +-12.9892569 +-9.2153225 +0.8632599 +4.9823432 +-10.1584244 +-0.5814914 +0.9758815 +-1.1761520 +-1.2202680 +1.1186426 +-10.9802675 +3.5773194 +0.8382630 +5.8777189 +6.0486813 +-1.5700932 +-3.3926640 +-8.5732365 +3.6095054 +3.9278677 +-5.5688639 +-0.6737942 +-0.2389876 +-0.0545198 +-1.9941280 +0.3263035 +-0.7965081 +1.4906182 +0.2713385 +1.6074700 +7.7442236 +-3.0241263 +-3.3797781 +-31.9940834 +2.7950172 +8.4903584 +-11.3586483 +0.0482825 +-0.0423037 +-0.6211412 +-3.3266299 +-4.6356406 +1.9876050 +0.7294562 +-2.4047358 +4.7142787 +13.8940191 +-1.7955645 +-11.5211010 +-45.3506203 +4.5681739 +11.8671560 +-16.5940628 +-0.1074439 +0.3176319 +-0.5845562 +-4.5073786 +-5.9182777 +-0.8807760 +1.0992703 +-2.8545732 +7.2161188 +18.9496784 +-3.5841541 +-13.7605324 +-10.0026064 +3.1699388 +5.8575721 +-10.2457695 +-0.9748671 +0.3331841 +-1.3552610 +-3.2081368 +1.5584505 +-8.3460970 +4.1183329 +-0.2513857 +5.4384499 +8.3994150 +-2.9178443 +-1.2276940 +-15.3832760 +1.8972127 +3.5884452 +-5.6909347 +-0.0514268 +0.4158154 +0.2362791 +-3.0895860 +-1.2705919 +-0.7793639 +0.1518785 +-1.3516763 +2.5545728 +5.9205766 +-2.3364589 +-4.8975000 +-39.7231369 +0.5869204 +7.3478303 +-11.7462988 +0.3658094 +1.2882812 +0.8098763 +-3.7869658 +-7.9644356 +-0.2581973 +-0.7856197 +-4.3682480 +5.6328731 +10.9129181 +-2.9870532 +-18.0163174 +-36.8825836 +3.2530289 +10.9589500 +-18.3199368 +0.3366855 +1.3491515 +1.1151687 +-6.6946640 +-11.8140612 +-2.9220543 +-0.7369584 +-5.3113856 +7.1887736 +16.2021790 +-5.2494125 +-30.9818878 +-7.0809212 +2.0041358 +5.5746098 +-13.3498840 +-2.1793182 +0.5755973 +-1.2709590 +-1.8121744 +-0.4473883 +-14.2766523 +5.2497382 +2.3836014 +3.9022706 +6.0927615 +-2.5061376 +6.1167173 +-17.2161140 +2.1565127 +3.7350323 +-6.0581832 +-0.2504651 +0.1033886 +0.2005105 +-3.2434440 +-2.4954355 +-1.1924365 +-0.1083938 +-1.2253125 +2.2712812 +5.7747283 +-2.5431106 +-6.1894431 +-42.9320869 +1.1852691 +7.5984621 +-12.9950686 +0.0678180 +0.4962885 +0.3406171 +-4.1897659 +-11.2995853 +-1.4154634 +-2.1879787 +-5.6790743 +4.4439926 +10.4153299 +-3.5484803 +-22.6217518 +-30.5127640 +3.2117991 +11.6013966 +-19.6723232 +-0.0048436 +0.6637831 +0.6745362 +-6.4974623 +-11.8964577 +-2.9657793 +-2.0105393 +-8.4047480 +6.2729478 +15.9978380 +-5.9770045 +-35.4474144 +-9.6966705 +3.0790548 +6.7580667 +-13.2671356 +-1.0550900 +0.0571751 +-1.5794793 +-7.4882236 +-6.5505352 +-5.2007847 +-1.0040897 +0.3941705 +3.4265859 +9.3285780 +-5.7490125 +-20.4821129 +-16.2771645 +2.5705206 +4.1720285 +-6.3849301 +-0.1269277 +0.0370992 +0.5264651 +-3.3817275 +-3.1021588 +-0.6568519 +-0.5405949 +-1.5073988 +1.8863564 +6.3664436 +-3.1495311 +-7.9617109 +-36.2907181 +3.1079011 +8.7028141 +-14.0476036 +0.3007643 +-0.1712897 +0.9484566 +-6.1645131 +-12.2646236 +-0.5073119 +-3.3103881 +-7.9925938 +2.7020376 +12.0629091 +-5.8089533 +-18.7532578 +-26.2285118 +6.8252044 +12.6474295 +-20.9562263 +-0.1343333 +-0.1869780 +2.1134086 +-6.9301910 +-12.9177265 +-1.3341385 +-1.3863635 +-11.1977558 +4.5313482 +18.2325897 +-8.5376358 +-41.6529198 +-1.8603945 +5.4994817 +8.4049263 +-13.4286413 +-0.7119676 +1.7607166 +0.5988090 +-13.9770107 +15.7250347 +-8.1386042 +9.0944366 +10.8259487 +0.7056075 +11.0394230 +-11.3071947 +-0.5466634 +-19.7484016 +2.7157321 +4.3906608 +-6.9036865 +-0.0944783 +-0.0966119 +0.5643546 +-4.1536708 +-5.2898293 +-0.6626311 +-1.7215527 +-2.4112496 +1.3136530 +6.4133677 +-3.4863613 +-9.8391838 +-27.7547989 +3.8807743 +9.5845680 +-14.2797909 +-0.0210305 +-0.4481852 +1.2485641 +-6.3928404 +-16.0980759 +-0.2956762 +-5.0491471 +-7.0371766 +2.1587775 +12.4606609 +-7.2702160 +-21.2278748 +-29.1785011 +8.5287008 +13.5794258 +-20.6960316 +0.1226939 +-0.3249310 +2.2001369 +-7.7897978 +-9.7282267 +0.5961104 +-1.9303131 +-13.4046030 +3.9067562 +20.6426620 +-11.9587917 +-46.0497513 +-5.6482725 +8.5067968 +1.9016696 +-12.2928267 +-0.6073068 +-2.5018284 +-0.4985113 +5.5277596 +-3.6911583 +-12.2750473 +8.4275246 +8.3028002 +7.6664743 +8.9294481 +0.2275230 +-2.3211236 +-17.8409595 +2.6869016 +4.5456300 +-7.2164230 +-0.0587643 +-0.1272075 +0.5271314 +-3.8180311 +-8.1982002 +-0.6626063 +-2.6972258 +-2.4259453 +1.1560735 +6.4132257 +-3.5802040 +-10.9762993 +-35.9307823 +4.4459701 +8.8591604 +-14.6955318 +0.1165270 +0.0009342 +0.8699334 +-6.3855057 +-17.8331089 +-0.4308123 +-6.6719651 +-6.9432645 +2.5337865 +12.3801460 +-6.9176502 +-26.5764446 +-11.2916765 +8.8209772 +13.3215942 +-21.2946663 +0.2848637 +0.0286112 +1.9247671 +-6.4191966 +-16.1067047 +-1.7319491 +-1.3539647 +-6.3747015 +3.7439017 +19.6420593 +-12.1866999 +-37.2519455 +-0.4972848 +-1.4637057 +9.5909491 +-12.7001858 +-3.0650935 +3.6843793 +-4.9240971 +-0.6668247 +2.5585506 +1.0575565 +4.8301873 +8.2763290 +6.4948077 +7.4497466 +-0.5445930 +-2.7408597 +-18.2913151 +2.8732231 +4.7671642 +-7.6564012 +0.0109781 +-0.3235475 +0.5580426 +-4.3726931 +-10.5917597 +-0.4122643 +-3.9746556 +-3.3674345 +0.6992326 +6.6329041 +-4.0878382 +-13.0437775 +-30.9677849 +4.6083980 +9.1658916 +-15.3889370 +-0.0756628 +-0.4487799 +0.5498848 +-6.3574181 +-20.5303535 +-0.3287185 +-7.5336280 +-7.0717282 +1.6470908 +12.4950590 +-8.1249056 +-29.5682373 +-8.9680452 +8.5037918 +12.9909468 +-22.7137203 +-0.3377575 +0.6077974 +2.4329791 +-9.9472895 +-17.6926613 +-0.3613352 +-0.2449957 +-12.4880495 +3.5066702 +19.2607365 +-11.9672308 +-24.2099018 +-17.5881615 +-0.0684954 +7.5360575 +-18.9899921 +0.2203597 +-1.2698456 +-8.0759945 +13.4035950 +-3.5104735 +-6.3708763 +-8.1686449 +5.2842646 +2.1945539 +9.2426720 +-4.4682555 +-14.6195984 +-17.6300144 +2.8964956 +4.9184952 +-8.2597179 +0.2104463 +-0.5672823 +0.5010773 +-4.4334702 +-13.5160112 +-0.8100373 +-4.8703589 +-3.8223999 +0.3088677 +6.5380831 +-4.2181001 +-14.2801476 +-27.6948795 +3.8980970 +9.0217333 +-16.7975807 +0.2888842 +-1.0684129 +0.3416409 +-6.8806496 +-24.3891430 +-1.5316784 +-8.8812723 +-9.0801144 +1.2251476 +11.6379728 +-7.7273827 +-39.6355362 +-24.6689434 +5.9604592 +12.6893454 +-24.2614269 +0.3381092 +-1.1365260 +1.0637262 +-7.7393389 +-33.6840248 +-2.7924347 +-7.8761811 +-12.0819941 +3.0740044 +17.4293537 +-11.5364647 +-40.1522560 +2.4013925 +3.2586575 +6.4731803 +-20.5454941 +0.3394329 +-0.5570823 +-0.0681441 +-39.6412086 +28.2122536 +-5.1789308 +18.5880108 +-14.0263739 +0.9978405 +9.8173523 +-6.2560906 +-1.3341068 +-17.4066124 +3.3145251 +5.2052865 +-8.7298298 +0.1652546 +-0.8806354 +0.4651764 +-4.6612024 +-15.8864841 +-0.9221715 +-6.0053573 +-4.5872812 +-0.2620379 +6.7566056 +-4.7502837 +-15.4445200 +-34.1783600 +5.1436758 +8.7823658 +-17.5497093 +0.1326810 +-1.2020394 +0.2559082 +-7.0655427 +-23.9687805 +-0.8898002 +-7.5361710 +-9.8739166 +0.5573862 +12.4704103 +-8.4912033 +-34.7296600 +-28.4525394 +8.7579422 +12.1223717 +-25.7711697 +-0.2152300 +-2.5212440 +2.1890924 +-8.3261042 +-30.2391605 +-3.1704161 +-8.7034140 +-13.4895182 +1.0953847 +17.8149338 +-14.0577726 +-47.4671516 +-12.1698875 +-0.2752516 +-0.1047582 +-13.4852028 +-4.0870318 +2.5685413 +-7.3996153 +-1.0627698 +-1.7073650 +-9.4112396 +-0.6282749 +13.3429451 +2.5609901 +7.9598789 +-25.8252945 +-10.0778694 +-16.7117290 +3.4981797 +5.5820918 +-9.1488028 +0.0698464 +-1.1033882 +0.4180876 +-4.8041530 +-18.5352955 +-0.8739922 +-7.2002306 +-5.1644335 +-0.5430759 +6.7874379 +-5.0565538 +-16.4744225 +-27.7730446 +5.7226505 +8.4995852 +-18.2165203 +0.3536051 +-1.4227501 +0.0266727 +-6.4286132 +-26.2996922 +-1.4241488 +-10.8299379 +-10.7821655 +0.4137239 +12.5510406 +-8.8619280 +-44.1399841 +-33.5936356 +3.0768697 +9.0770750 +-28.4698143 +0.8894589 +-0.4360693 +0.6928149 +-4.4689074 +-31.0038757 +-4.3013320 +-4.7050304 +-15.5622873 +1.5498102 +15.9911327 +-11.1784649 +-46.6296349 +-4.1359434 +17.7515678 +-0.2643269 +-12.6915560 +1.6213911 +-2.6539838 +-2.7667150 +-4.3412361 +-3.0923190 +-0.5516444 +7.7031827 +5.7091455 +11.3664103 +13.2295713 +3.8178546 +-4.7850528 +-15.5838194 +3.6361225 +5.5190187 +-9.5866222 +0.0627909 +-1.2369807 +0.4199266 +-4.8410096 +-20.6312428 +-0.9379016 +-7.7300572 +-5.5135918 +-0.7327298 +6.7763810 +-5.2050414 +-17.3727093 +-26.5059700 +5.0683188 +8.6764259 +-18.8264198 +-0.0604700 +-1.3979985 +0.8698072 +-5.8489480 +-31.3626938 +-2.4288511 +-9.7115774 +-11.2214394 +0.0656549 +11.8610830 +-9.4844894 +-39.1592979 +-26.5491047 +5.1788220 +9.8494329 +-27.4998035 +-0.8557160 +-0.8567669 +0.2812451 +-3.1483948 +-22.8494625 +-3.8972402 +-1.0350512 +-15.5756111 +3.0340140 +16.1018085 +-12.3469162 +-57.1812134 +-4.0085855 +11.6702976 +6.9267387 +-15.6262922 +0.1746580 +-2.4321516 +-5.0995498 +-11.3147621 +4.4447980 +-7.1208563 +-0.0810841 +-16.9453259 +-0.4364398 +13.5299931 +-19.2350254 +-3.3988783 +-14.8572416 +3.7166133 +5.3735085 +-10.0103521 +0.1719900 +-1.2413287 +0.3895260 +-4.7882047 +-25.3339729 +-1.0635540 +-9.0345812 +-5.4036112 +-0.9731568 +6.7427926 +-5.2164035 +-18.0922909 +-25.1206722 +5.1448989 +8.7318659 +-19.8604069 +-0.0542376 +-2.2898026 +0.3038269 +-6.0792050 +-31.4160995 +-2.3098891 +-9.3582306 +-12.4688301 +-0.5963563 +11.8359509 +-9.7350225 +-56.5310707 +-20.6656303 +5.0327425 +10.0152988 +-28.9544449 +0.3466769 +0.0530324 +2.9219375 +-0.1465741 +-29.1188107 +-6.3257227 +-3.7688189 +-12.2098732 +1.9723258 +16.2890244 +-12.0325661 +-33.4554214 +-12.1626644 +57.5466423 +12.7351885 +-19.6281948 +-19.3486843 +-2.8376498 +-1.6044677 +-28.1945553 +18.9735146 +-8.9328651 +11.3318558 +-0.8549047 +0.8430327 +61.1703911 +0.6384690 +10.4404926 +-14.2542009 +3.5105598 +5.4871306 +-10.4438887 +0.1024305 +-1.2599063 +0.6758980 +-4.9298167 +-28.9896908 +-0.7983787 +-10.2746696 +-5.8352461 +-1.0715932 +6.5258460 +-5.3632121 +-19.9064980 +-22.3148155 +6.1958060 +8.9496832 +-20.9553089 +-0.1424813 +-2.4512506 +0.4645314 +-6.5659914 +-41.2292213 +-2.8412292 +-12.1216908 +-12.6597538 +-1.4731784 +12.1242142 +-10.8952618 +-63.8003883 +-51.8598480 +7.9038153 +10.3451557 +-29.3719711 +-2.0577354 +0.5170812 +0.4588091 +-4.7183733 +-27.0266647 +-7.3292155 +-3.9972289 +-17.0804710 +0.4017262 +14.8719416 +-14.4400635 +-83.4845963 +-21.4506817 +3.8132348 +3.6500611 +-26.7859097 +-0.7596846 +0.5923539 +-9.9153023 +-7.9526992 +4.3724737 +-11.0861273 +-1.9647111 +-33.9798851 +-1.0716769 +8.4825220 +-12.7012005 +-36.7571411 +-8.4576759 +4.3331890 +5.1700850 +-10.9112902 +0.8168813 +-1.4000015 +-0.9660772 +-1.5561774 +-33.1853294 +-0.7332953 +-10.1879549 +-5.0823755 +-1.3207420 +7.6999516 +-5.3695421 +-17.4229546 +-15.6069021 +7.7649469 +8.9236660 +-21.3793087 +1.3898225 +-2.6785617 +-3.6804843 +-5.3232403 +-56.8076172 +-1.7510206 +-15.4527292 +-13.1090670 +-1.8199695 +14.7526999 +-10.0764771 +-39.6837463 +-1.8040742 +8.6564817 +8.2978783 +-29.5744171 +1.3674030 +-1.1196595 +-8.5659208 +-2.6740010 +-47.9238396 +-2.5438366 +-18.3629227 +-7.9016061 +0.2702727 +20.5381527 +-15.6696405 +-45.8641701 +-6.2023549 +18.8019238 +1.6397177 +-25.7475834 +-0.9072398 +2.8456717 +-3.0867658 +0.8387547 +-4.4316907 +-14.2031555 +1.0921223 +-4.8419375 +1.7241945 +13.2308474 +4.8209400 +-3.2200124 +-9.6024742 +4.5280943 +4.6215773 +-11.0323906 +1.0198071 +-1.3973433 +-1.6393807 +-2.8418963 +-38.0363274 +-0.8276414 +-12.1465693 +-5.5116701 +-1.4332556 +8.1207581 +-5.6535277 +-17.8871479 +-23.6172028 +7.6970944 +7.3203158 +-21.7997627 +1.5011209 +-2.9287214 +-5.1884775 +-8.6321783 +-71.2629242 +-2.1282606 +-19.9192390 +-17.4328098 +-1.8289996 +14.7533293 +-9.9394941 +-58.1062317 +-32.7562981 +10.0208073 +11.3230438 +-29.4597683 +1.5593301 +-3.2554147 +-7.0379286 +-13.1008997 +-40.8140755 +-2.8031945 +-11.7637005 +-24.1974354 +-0.1346410 +21.7817020 +-16.8374538 +-61.4502678 +-12.8872747 +-1.3002257 +4.3207760 +-16.5075970 +-0.1001700 +4.3595753 +-21.9255028 +0.8127410 +-5.1765404 +-11.1255207 +-0.8589318 +-21.0456009 +0.5465170 +5.6548257 +-10.5343790 +-17.6923237 +-9.3245087 +4.2322297 +2.5398824 +-11.5588226 +1.2438656 +-1.6460871 +-3.1582136 +-2.9803836 +-71.7048569 +-1.1126695 +-14.8382769 +-6.1843476 +-1.7093703 +8.0042305 +-5.5129204 +-18.7068710 +-26.8255978 +7.9619155 +5.7690020 +-22.9181976 +1.6919442 +-4.1596112 +-7.1453481 +-8.5938702 +-82.0053787 +-2.8137062 +-20.1707287 +-17.9021091 +-3.1258504 +15.0382633 +-10.9335022 +-62.3080750 +-32.3317642 +10.7208195 +9.2876740 +-31.8777008 +2.8138773 +-4.9655414 +-9.5154037 +-14.1441288 +-38.9352188 +-3.7780423 +-14.3116341 +-35.9594803 +-1.9156511 +22.5152283 +-17.6001015 +-71.2809982 +2.8948786 +8.6304092 +6.1652145 +-19.3176785 +-0.3677375 +6.0596895 +-6.4341388 +6.1680202 +4.1947837 +-4.9090862 +-2.2016079 +-38.6961784 +3.3416307 +13.7809839 +-7.9123230 +-20.8165779 +-8.0535269 +3.2625577 +-0.9670079 +-12.8144598 +1.4126061 +-2.3263006 +-6.5623527 +-2.2547462 +-89.6101074 +-1.7502354 +-16.3047466 +-7.3462706 +-2.4068568 +7.4968553 +-5.1439891 +-19.1170750 +-22.1662960 +7.5039411 +2.0028152 +-24.3994560 +2.2272301 +-5.3193331 +-11.8275194 +-8.5065479 +-89.0100708 +-3.2724450 +-22.2309513 +-19.7584343 +-3.9094911 +15.4508467 +-11.0465422 +-60.5535240 +-25.2564201 +10.9381647 +4.8691959 +-34.3909988 +2.0982318 +-4.7475333 +-16.4540882 +-12.7576551 +-43.1562042 +-5.7858801 +-23.2089767 +-49.2859039 +-3.0968363 +21.6796513 +-15.8661337 +-98.6778641 +-1.5435021 +7.2527170 +6.0386577 +-19.5793571 +1.5271037 +5.1774364 +-8.7146492 +5.6046891 +9.9049139 +-3.7820704 +10.8238869 +-35.9131088 +1.3156797 +14.1089916 +-11.4699707 +-20.0571136 +-6.7512188 +1.1380529 +-7.6627150 +-13.9461613 +1.2318605 +-2.9874771 +-17.5049114 +-1.5537817 +-88.4006500 +-2.4937339 +-16.7536068 +-7.8370972 +-2.7936823 +7.3138227 +-4.7249937 +-17.9619827 +-19.9151306 +6.3218818 +-4.6858482 +-26.0503788 +2.0482743 +-5.5304441 +-23.0338707 +-9.8124313 +-83.1529541 +-4.7018170 +-27.4566727 +-24.0863628 +-4.7928691 +15.6760511 +-11.7199316 +-59.0048218 +-19.7850266 +11.3085260 +-1.8587704 +-36.7309685 +1.9872104 +-3.8882182 +-26.0651169 +-12.3124390 +-32.7606621 +-6.9205866 +-18.5523338 +-81.8041000 +-5.3262944 +22.4166164 +-17.9064407 +-76.9670105 +-1.8179897 +9.2727499 +10.5958691 +-21.1323795 +1.3396670 +0.2205760 +-6.3534393 +8.6152782 +3.2895045 +-1.9159292 +6.8279290 +-1.4642637 +-3.0598586 +17.4289608 +-16.5050449 +-13.2406693 +-4.8530741 +3.1141536 +-17.4994736 +-14.5434599 +0.0306457 +-3.3104403 +-25.7407684 +-0.6429588 +-36.3185539 +-3.6427741 +-15.1663132 +-9.7826233 +-1.7768527 +6.2550387 +-3.8090200 +-19.4009972 +-15.8526316 +7.2327147 +-11.1467772 +-27.9732780 +1.0044166 +-5.5673265 +-37.6971321 +-10.7412415 +-58.9243660 +-4.6767564 +-25.1903896 +-28.1811390 +-6.1673279 +14.7298260 +-12.1206474 +-52.0176582 +-19.1263542 +12.5558844 +-7.9211841 +-39.7406273 +0.6626837 +-3.2945387 +-43.1182823 +-17.1786575 +-42.6642685 +-6.9416647 +-19.6101475 +-39.8158340 +-8.5574026 +21.7175846 +-20.6536598 +-106.1015625 +-22.3594837 +15.1606674 +10.6528339 +-25.3051701 +-0.1328438 +1.4605457 +-6.8965449 +3.7135096 +10.1382027 +-1.5226322 +4.9491549 +-22.4840946 +-7.1748509 +19.8086529 +-33.2433586 +-57.3296318 +-5.1688294 +10.2151775 +-19.3492851 +-14.5913477 +2.3081949 +-0.6898436 +-18.6900234 +-1.0637534 +-41.3133965 +-2.3361075 +-23.0079212 +-8.5611467 +-0.0372159 +10.1570396 +-3.5601375 +-19.5005188 +-6.4820180 +8.4323196 +-29.0115986 +-12.2534418 +0.7800983 +-0.8366214 +-8.5724573 +-4.1955109 +-23.0490665 +-4.8106756 +-33.0107384 +-9.5639095 +-0.4040622 +9.2302542 +-6.8635173 +-94.2831192 +-1.8997027 +8.1088190 +-20.3783073 +-10.0110826 +0.0744613 +0.0208680 +-7.3528671 +-1.3460931 +-4.2744775 +-2.9626219 +0.1559653 +4.5547976 +-0.2777232 +10.7392530 +-6.2509847 +-41.3479652 +-11.4505472 +10.0343657 +-0.3858747 +-22.1339645 +-3.3883054 +15.3255081 +-35.9762497 +-10.0143623 +2.1291063 +-15.2304068 +-0.1931650 +19.0107536 +-2.9318752 +8.2571926 +-9.1265812 +-8.2434549 +7.4546552 +-4.9449492 +-7.4486756 +0.5706164 +-62.8147812 +-0.2527323 +15.0206661 +-22.8038483 +4.0777521 +-1.1120349 +-4.8190684 +2.9843242 +-5.9177756 +5.9124107 +6.4291935 +35.0265198 +-0.5600220 +-3.5115223 +-21.4189262 +0.2304554 +-120.7347260 +-220.3030396 +22.2399406 +-13.0331202 +6.8928766 +-1.2026038 +-101.6080551 +5.2428050 +4.4262114 +4.8254170 +5.4774160 +35.1208687 +-2.2197297 +-3.7058558 +-0.0745463 +0.2195439 +-26.9992886 +-63.8379974 +11.2462292 +-3.9223888 +-12.0580721 +2.4527659 +-66.0376358 +3.8619027 +-26.3708420 +0.7772697 +2.8200240 +75.8338623 +-23.0158157 +1.8706673 +7.1438518 +-1182.7377930 +30.5911045 +-0.2925719 +-13.5123978 +11.1508236 +-2.0895627 +-3.9552743 +3.7132790 +2.4043763 +13.0465527 +-1.8558660 +-11.6093397 +-286.2464905 +-36.5158577 +1.9047323 +4.6540160 +-132.2582092 +29.7906246 +3.3657327 +-401.8402710 +16.4186363 +8.6056976 +-3.3338425 +-1.0916144 +3.3251629 +3.5219660 +1.2472156 +-11.1081152 +-136.8114929 +-77.2173233 +-53.1294670 +-62.4957809 +29.5175304 +-22.3955059 +21.1320419 +-33.2692909 +-125.5661087 +-6.4310718 +2.2815228 +-8.1465597 +-76.7870178 +-39.7948418 +-87.4531403 +-0.9695534 +-11.3977566 +-1.1952410 +-2.1184518 +-5.4281735 +-0.3027123 +-4.6344662 +200 8 5 0 0.1000000 1.0000000 +2.5178869 +-1.2504656 +-0.6578671 +0.6010239 +-2.4048753 +2.2010918 +-0.7813341 +2.6928041 +4.2993517 +-1.5848659 +-1.7043748 +1.5669206 +-6.6908073 +3.0300155 +-1.7423356 +5.2503810 +6.1962085 +-1.8131732 +-2.9412231 +2.7544742 +-10.5818348 +5.4029174 +-3.1472011 +7.4747548 +3.1793551 +-1.8323264 +-3.7700863 +2.2838299 +-4.5440650 +2.9405918 +-3.6602097 +5.8716965 +2.4399755 +-0.6957905 +-1.3266573 +0.9427723 +-3.5670259 +1.0900860 +-1.1842468 +1.9296069 +4.1881475 +-1.4192442 +-3.3036149 +1.8950329 +-6.5790401 +3.0699017 +-2.6378038 +4.9843254 +5.9053450 +-2.3954597 +-5.3072662 +3.0851169 +-10.2632828 +4.9352684 +-4.2017450 +7.5463095 +3.3243423 +-1.3577986 +-3.3255064 +2.2426388 +-5.3105712 +5.4670258 +-3.9338291 +5.2741880 +2.3285258 +-1.5785412 +-2.2154167 +1.2178942 +-2.4105461 +1.5165817 +-1.6792424 +2.6745315 +4.0383315 +-2.1307039 +-3.8226099 +2.2907619 +-6.4316201 +4.2418261 +-3.5054414 +4.9009399 +5.7991247 +-2.9607944 +-5.6089711 +3.4948549 +-10.0796852 +6.6134601 +-5.4449883 +7.3203011 +3.1944733 +-0.8375099 +-3.0689845 +2.4101362 +-7.0004926 +6.0788431 +-4.4329886 +4.5378199 +2.5002964 +-1.4372219 +-2.0238287 +1.2180597 +-3.8250041 +2.0838010 +-1.9106206 +2.2467656 +4.2037992 +-1.5091769 +-3.9004555 +2.5140226 +-7.6892085 +4.6017189 +-4.0166264 +4.4635987 +6.0446501 +-2.3462272 +-5.4268880 +3.8630376 +-11.6510000 +7.1476207 +-6.3251677 +6.7834301 +3.2603757 +-2.0479751 +-3.2806520 +2.5903378 +-8.1446295 +6.1650820 +-5.1591110 +4.4736381 +2.4147832 +-0.7195692 +-2.1033266 +1.3697616 +-4.1041832 +2.7484744 +-2.4724543 +2.3008380 +4.3363791 +-2.0837185 +-4.7758379 +2.9154832 +-7.7789454 +4.8200598 +-5.1969929 +4.3911753 +6.1103435 +-3.1602242 +-6.9426804 +4.6219139 +-11.0894461 +6.8936791 +-8.0906057 +6.5634117 +3.2947707 +-1.9312513 +-3.6609507 +3.3133774 +-6.0850558 +6.0766740 +-6.2330036 +4.5936375 +1.9970813 +-0.6750594 +-2.9224007 +1.7428564 +-3.8323891 +3.4850979 +-3.1072216 +2.1136458 +3.5876698 +-1.1887335 +-3.7913547 +3.6176546 +-5.5689111 +5.4057198 +-6.5486379 +4.4078698 +5.4173455 +-1.4962059 +-5.1492734 +5.6726856 +-8.9176807 +8.0205469 +-9.9489498 +6.4577103 +3.4613435 +-2.2766767 +-4.6247854 +4.0642285 +-5.9931269 +7.0514874 +-7.1165977 +4.2509303 +0.1268182 +0.7313466 +-44.5723076 +2.5659006 +-2.3164480 +3.3273056 +-4.0632405 +5.1160221 +-1.5254221 +-0.7971495 +-100.6303711 +4.9346733 +-4.1760926 +7.7455168 +-8.3153391 +11.1474619 +-4.2211919 +6.8846960 +-51.0784721 +7.5294700 +-6.4520512 +10.2056637 +-12.2845306 +17.8619194 +-3.8940880 +-4.5836291 +-71.9757233 +4.8168559 +-10.1393356 +9.0722380 +-7.6373820 +11.6987286 +-1.2588665 +0.7047764 +-44.9423676 +2.8818805 +-1.4807268 +2.8493578 +-4.4728742 +5.8986239 +-3.4776630 +-1.1848049 +-96.6963654 +5.6664152 +-3.9441385 +6.3180461 +-9.0953989 +12.3841524 +-7.0039988 +6.4391961 +-53.8508072 +8.4754686 +-6.9837389 +9.4477987 +-13.5419064 +18.4332867 +-4.0538282 +-4.9611335 +-43.2431679 +5.6967421 +-7.9360676 +6.8150029 +-8.8097448 +13.5478649 +-1.7553289 +-1.2992018 +-47.7861137 +3.1224210 +-3.6254573 +3.3423162 +-4.8853192 +6.0806284 +-4.7267456 +1.6186826 +-65.0948792 +6.1519647 +-6.9726095 +7.3556857 +-9.9727716 +11.9044323 +-8.1289043 +7.9755406 +-56.2214241 +9.4401894 +-9.2078238 +8.9832926 +-15.0220327 +18.7340565 +-3.9804494 +17.2896748 +-6.4118547 +6.4207945 +-7.7482877 +5.6044531 +-9.9781008 +12.0970907 +-3.0721936 +-2.4662318 +-50.8800888 +3.4677136 +-3.2867010 +2.9249864 +-5.3925576 +6.6199584 +-6.7731791 +-0.5973988 +-62.1904221 +7.0156622 +-5.9960523 +5.2337790 +-10.9225264 +13.2172937 +-11.2442408 +-3.2234085 +-72.5624084 +10.6944714 +-7.5548210 +5.9088097 +-16.4920406 +21.0048161 +-1.0254035 +-0.4495553 +-7.2150817 +7.0701485 +-8.8848438 +6.1310945 +-10.7812643 +14.5311956 +-3.9758990 +-3.9062328 +-56.2698364 +3.8703012 +-3.2360528 +2.5485830 +-5.9808927 +7.0669036 +-8.7660885 +-0.1570540 +-65.2694397 +7.7152267 +-5.9373770 +5.1712213 +-12.1153622 +14.5143795 +-13.1288061 +1.9446427 +-77.2450867 +11.5829344 +-9.8770933 +6.3600373 +-18.1492367 +21.9746666 +-8.3132095 +3.4305654 +-5.0662832 +8.0318222 +-9.7034664 +-5.1851430 +-11.2842712 +14.8682213 +-4.8928876 +-3.4001784 +-68.4993591 +4.1534514 +-3.3852715 +2.5824912 +-6.7106194 +8.1458769 +-11.4333324 +-0.6608297 +-82.6862335 +8.2538385 +-5.9429550 +6.0329027 +-13.3381433 +16.3899460 +-18.7381840 +-3.9198053 +-67.2997742 +12.6859589 +-6.4331708 +8.1050539 +-19.5742016 +26.9328804 +-8.2187128 +1.3118140 +-3.6006021 +8.6372986 +-10.1718702 +2.5785460 +-10.8871679 +11.7821741 +-6.0982747 +-1.1513565 +-99.4297638 +4.4215817 +-4.7400880 +3.9675419 +-7.2439108 +9.7010174 +-12.5733061 +1.9297071 +-88.7946625 +8.9005976 +-9.1138630 +7.2503948 +-14.2361841 +19.5796413 +-19.3814392 +-6.6138330 +-67.4990005 +13.5686941 +-11.1470547 +7.3417978 +-21.2678490 +30.9138622 +-10.7800856 +4.4109631 +-13.1509733 +9.0087748 +-6.5738668 +-0.3635551 +-14.6529408 +23.5225277 +-7.4389849 +-1.0916448 +-72.5341263 +4.7494078 +-4.1897511 +3.2244496 +-7.9778228 +10.3724880 +-14.5824194 +3.4567449 +-74.2332230 +9.5442562 +-8.8401327 +7.3357315 +-15.3971157 +21.1358128 +-23.3803368 +11.8522558 +-54.3915558 +14.4969120 +-11.4681244 +2.4957852 +-24.0922241 +31.1371021 +-13.0312586 +0.7684373 +-2.2503364 +10.9758472 +-7.7562809 +1.5307888 +-7.3715830 +12.3962240 +-8.5783501 +-0.7509816 +-69.2769241 +4.9146881 +-4.2367105 +4.9618249 +-8.5687618 +11.2480831 +-17.6261692 +7.3594375 +-70.6448975 +10.2550611 +-7.9418063 +4.0276198 +-17.2098942 +22.2429028 +-26.0572338 +12.7689981 +-54.8112259 +15.6595984 +-13.5172930 +2.1409674 +-24.6763821 +33.3538094 +-13.4172268 +0.3415805 +-2.6408863 +10.9906006 +0.7565925 +3.6397154 +-14.7426062 +-1.0721284 +-9.9503765 +0.2072612 +-64.9442596 +5.2296953 +-4.2829990 +3.9775438 +-9.3674335 +11.8574009 +-19.9348431 +2.5099950 +-79.3107681 +11.0246916 +-7.4532361 +2.4297271 +-18.4495506 +24.3122196 +-29.8689270 +-1.1237402 +-53.7956886 +17.1380062 +-12.8364906 +11.2762575 +-23.6679840 +35.7705383 +-14.0888100 +1.2630527 +-6.2804894 +15.4771309 +-10.0291023 +8.6482401 +1.3438952 +20.8881550 +-10.8705225 +-0.6756330 +-64.6956329 +5.6225224 +-4.6906996 +3.2509501 +-10.1138840 +12.6331768 +-22.1802273 +-3.4947805 +-70.9722061 +11.9514866 +-8.9652195 +-1.6133058 +-19.5853138 +25.5340672 +-35.3848190 +0.4332115 +-53.6661873 +27.7354164 +-6.3671279 +15.7961321 +-11.4307966 +35.7043343 +-7.8052478 +2.4562163 +-10.6562214 +22.9445343 +-9.3607216 +5.4545493 +-1.4839240 +19.4102650 +-12.3270741 +0.2133150 +-66.5559235 +5.7818160 +-5.1332693 +5.3690310 +-10.7868271 +13.4240522 +-23.8234615 +-1.8969491 +-76.1699295 +12.6503096 +-10.5995445 +-4.6114302 +-25.3779259 +26.4193115 +-34.9130745 +-0.3415057 +-54.6340599 +22.5881634 +-18.9925861 +8.1043081 +-24.2424297 +36.6276245 +-12.7230377 +0.9913384 +-6.8049531 +31.3812771 +-11.4658175 +4.4995098 +-0.7433885 +8.8279800 +-12.8928127 +3.6037941 +-72.1943054 +5.7618561 +-5.3406649 +-34.8110085 +-13.7264376 +14.8043747 +-25.5254974 +5.4346113 +-73.0031128 +13.9877815 +-11.7711744 +-25.2850895 +-19.8273697 +28.0809593 +-41.8873177 +17.0967236 +-53.2118988 +28.7315693 +-11.7354012 +11.9421272 +-11.2880774 +39.8456345 +-8.9839983 +3.1960082 +-8.3834972 +28.5502663 +-10.5233727 +6.8243370 +-2.4324360 +20.2344170 +-14.2827587 +2.7806115 +-80.5522614 +6.7806621 +-4.3644996 +-37.1712799 +-13.2409248 +15.5484514 +-27.7451324 +9.5116558 +-70.4279709 +15.4459219 +-10.9027767 +-31.7256031 +-22.6728821 +29.3183270 +-35.8929100 +8.8365374 +-40.6894493 +28.9919434 +-23.6586990 +11.2554569 +-18.4837875 +39.8782654 +-13.7951698 +1.3463789 +-13.6930666 +34.5338173 +-8.5734682 +7.2321982 +-2.0190408 +18.6029835 +-15.6768198 +4.0835600 +-83.5023499 +6.8562799 +-3.8043189 +-34.3865700 +-15.1835957 +16.4878941 +-31.1002903 +17.5793343 +-63.9089050 +18.7345695 +-8.8817749 +-29.3413696 +-22.1055450 +29.1717358 +-28.4416904 +23.4765892 +-47.1155891 +43.5574455 +-17.6745434 +-2.4330533 +-10.9418678 +38.4811783 +-17.7078857 +1.1317812 +-6.0024395 +22.7159138 +-10.4238367 +2.7766800 +-2.1158822 +14.1675663 +-16.9454174 +5.6354346 +-68.3403854 +7.8496137 +-5.3481278 +-35.8604431 +-12.6878672 +16.0921078 +-40.6132660 +5.9559402 +-59.2495766 +23.3777256 +-5.6447511 +-17.4163265 +-12.4510717 +27.9804649 +-38.7310600 +11.9661942 +-33.4403114 +61.0752678 +-27.3828220 +-32.0253716 +-8.5182705 +-21.3708038 +-6.1672797 +18.4775906 +-3.3494835 +8.2147465 +-7.6460748 +-6.1597772 +-2.0575895 +-4.3467855 +-17.7611485 +9.9177084 +-49.5620461 +9.7314501 +-11.8263187 +-29.3470745 +-7.7965612 +13.7571001 +-21.1436653 +10.6967535 +-71.2724228 +43.4339790 +-10.9211206 +-42.4025078 +-3.1388264 +16.3926373 +-32.3961525 +17.5647068 +-30.8934860 +54.6458435 +-25.5732269 +-39.5289917 +-3.2401850 +-6.0542507 +-0.7939494 +12.2707958 +-0.8961523 +6.1629438 +-8.1257029 +-13.5594683 +-0.6371673 +-12.7893057 +0.0015084 +-0.0301310 +0.0251429 +0.0353280 +0.0208815 +0.0210072 +0.0490947 +0.0398394 +0.0040389 +-0.0124635 +-0.0083836 +-0.0390172 +-0.0349928 +-0.0039806 +0.0231780 +-0.0317804 +0.0196726 +-0.0474289 +-0.0226227 +0.0196243 +0.0183593 +-0.0309477 +-0.0377952 +0.0164472 +-0.0151557 +0.0288419 +-0.0469923 +0.0370622 +0.0274415 +-0.0377712 +0.0456276 +-0.0357087 +-0.0293467 +0.0035706 +-0.0065949 +-0.0221471 +0.0483063 +-0.0110782 +-0.0177299 +-0.0235997 +0.0250716 +0.0345773 +-0.0343963 +-0.0464026 +-0.0436516 +0.0167249 +-0.0162085 +0.0235631 +0.0239038 +0.0170737 +-0.0214635 +0.0246790 +-0.0246154 +0.0129410 +0.0436247 +-0.0035921 +0.0400541 +-0.0218126 +0.0065279 +-0.0261494 +0.0459490 +-0.0129825 +-0.0303242 +0.0213319 +2.2196279 +-6.3760443 +-1.9789431 +-1.1281648 +0.8088945 +3.6157558 +0.5845705 +-1.3337507 +5.0578356 +-15.7473907 +-4.2458534 +-2.0792241 +2.0308766 +5.0493989 +1.8548114 +-3.9618258 +7.6698999 +-25.9001007 +-7.3480544 +-3.3554952 +2.9344361 +6.6269689 +3.3340330 +-7.5791469 +4.6205640 +-13.1157703 +-6.3012123 +-3.3157387 +2.0393004 +2.9004076 +2.8105042 +-7.7802806 +2.0708804 +-10.1931124 +-3.1716807 +-1.4268796 +0.9147742 +2.4247055 +0.8645043 +-2.3756838 +4.7281346 +-20.1945496 +-5.4407272 +-2.7664039 +2.0535812 +4.2391968 +2.1161423 +-5.9098058 +7.1038823 +-29.5066624 +-8.5183992 +-4.2965031 +2.9874902 +6.2237339 +3.5981615 +-10.3195190 +5.1555610 +-19.5146542 +-7.2374768 +-3.5494080 +2.4666600 +2.6217756 +2.9765894 +-8.1328831 +2.7524319 +-10.6683807 +-3.6630418 +-1.6857432 +0.9326671 +2.0787807 +1.2490115 +-3.7643251 +5.5100579 +-22.1865864 +-7.0065126 +-3.4371724 +2.1525545 +3.5018466 +2.5744791 +-7.9919024 +8.0858870 +-35.8367424 +-10.3196182 +-5.2542853 +3.0800242 +5.2227917 +4.1829014 +-12.5661011 +6.0986843 +-24.4508247 +-6.3609695 +-4.0004516 +0.2926685 +2.5461967 +3.2751951 +-10.1421947 +2.9564579 +-12.5126114 +-4.0556889 +-1.9198939 +1.3188859 +2.3341150 +1.4395926 +-4.3092623 +5.9744105 +-26.6878815 +-7.5152698 +-3.9073517 +2.2465205 +3.8296604 +2.9786234 +-9.1999960 +8.9262609 +-55.2377281 +-11.2453442 +-6.0434694 +3.0806856 +5.6352496 +4.6389470 +-14.3598537 +6.8285618 +-18.5487118 +-6.9807897 +-4.4236917 +0.2919528 +2.3257957 +3.6251698 +-11.4267282 +3.3619983 +-14.6008358 +-4.7240548 +-2.2833648 +1.2093816 +1.9508821 +1.8108022 +-5.4558196 +6.9743237 +-34.4319763 +-8.5635071 +-4.7020073 +2.1212387 +3.9882948 +3.6007555 +-11.4041204 +10.5269337 +-56.2353592 +-13.2101860 +-7.2287130 +3.0946856 +5.1799898 +5.5845704 +-17.7274647 +7.0019140 +-14.8968201 +-8.9787560 +-5.2991738 +1.2358299 +1.9840790 +4.0972199 +-13.2139950 +4.2901931 +-16.6662922 +-5.2905350 +-2.8178248 +1.3320680 +2.1820607 +2.2503924 +-5.9674988 +9.1521339 +-38.3292809 +-10.1839685 +-5.6287274 +2.1152227 +3.1485119 +4.4430327 +-12.6132822 +13.9323645 +-36.2718697 +-15.4041624 +-8.4968863 +2.9499667 +4.2088408 +6.8563018 +-19.8239975 +8.2984505 +-12.3729124 +-11.2215977 +-6.0541840 +0.9798861 +1.6655620 +4.7322383 +-15.3051949 +3.8980193 +-21.5804634 +-5.1702003 +-3.1107249 +2.6372495 +-1.5650054 +3.1625724 +-9.7686787 +7.3827124 +-24.7524567 +-8.7884312 +-6.2054067 +6.2358766 +-5.0504680 +6.2208080 +-9.9381323 +8.0943031 +-1.2186718 +-12.3805399 +-9.3949738 +9.7600203 +-7.2619863 +9.3537683 +-32.3677139 +1.2635597 +15.2126589 +-2.5810523 +-6.2948236 +5.0496683 +-8.6231718 +6.4620581 +-8.1667957 +3.0841637 +-21.8368473 +-4.2544723 +-3.4851031 +2.8794932 +-2.5446529 +3.4436760 +-12.0647430 +5.0378814 +-36.9144974 +-7.9260135 +-7.0397992 +5.6283636 +-6.9089646 +6.8424473 +-37.3676414 +6.3148508 +-32.1466408 +-12.0289612 +-10.5087662 +9.0100727 +-11.2321606 +10.4032011 +-38.0652161 +0.6873507 +-10.7353220 +-7.1727962 +-7.0458970 +6.2954893 +-7.9725327 +7.1172719 +-11.9893904 +1.6758013 +-13.4896240 +-3.9744942 +-3.9346075 +2.9947798 +-3.4252362 +3.8690486 +-17.6064186 +3.6040683 +-4.6566715 +-8.7112408 +-7.6978726 +5.5691538 +-9.9847898 +7.7830439 +-22.1828556 +5.1031742 +-2.0469236 +-11.2388735 +-11.5518856 +9.6579542 +-15.1686258 +11.6068621 +-21.4712410 +5.4091525 +-2.4783854 +-1.0842495 +-7.9040813 +4.5117865 +-6.9110389 +8.0632191 +-1.3558116 +0.8438005 +-29.6437225 +-3.3346515 +-4.3375692 +1.8673639 +-5.1364989 +4.2393475 +-31.1907539 +2.3373401 +-34.3820457 +-6.5953069 +-8.5811300 +4.5892701 +-11.1075764 +8.6913757 +-22.3331566 +2.7162986 +-10.6082487 +-9.0905685 +-12.8833685 +6.4369369 +-17.7176456 +13.2204962 +-15.8007927 +3.0983958 +-1.8566915 +-8.5510254 +-8.4691210 +7.8648906 +-8.0900927 +8.9333344 +-10.7037039 +0.8507599 +-27.1449852 +-2.5116816 +-4.6749368 +1.6902546 +-6.9344468 +4.7922983 +-23.5440826 +1.6145236 +-18.4088745 +-5.2219319 +-9.3689890 +4.8381743 +-14.3675423 +9.5221586 +-20.8785782 +1.5371037 +6.3601799 +-8.2751875 +-14.1540318 +7.5189009 +-19.7983646 +14.3926888 +-13.9657021 +-0.9301136 +0.0157767 +-5.7529573 +-9.1403856 +6.6395121 +-14.5985451 +10.0116997 +-8.8487272 +-0.0046495 +-24.4989109 +-1.7090083 +-5.1619463 +1.0602210 +-8.6883068 +5.1488004 +-31.0949802 +-0.3532568 +-17.2936897 +-3.3142478 +-10.3325014 +3.3791707 +-17.4644012 +10.3026924 +-0.5830024 +0.3826487 +-9.4200230 +-5.2879128 +-15.1563158 +7.3297887 +-29.0483341 +15.8723583 +-1.3235848 +7.7948442 +-0.6772933 +1.4841646 +-9.9192762 +-0.4910606 +-2.8985467 +11.0879135 +1.3059399 +-1.9505208 +-21.0660515 +-1.9097832 +-5.5482483 +2.4098592 +-9.5016317 +5.8605809 +-22.9471989 +-3.6627696 +-26.1283398 +-2.7718365 +-11.1109247 +6.0130749 +-17.1469021 +11.6183500 +-7.7549577 +-5.2348371 +-5.5899591 +-3.3869452 +-16.4045753 +10.0659637 +-26.8663063 +17.3208466 +-27.7773247 +-9.7013893 +-0.2935639 +1.9436948 +-11.2632523 +6.9182720 +-7.4256783 +10.7789364 +-2.1596372 +-2.0995898 +-10.3531027 +-0.9233402 +-6.0335598 +2.4876294 +-11.4235487 +6.1396875 +-13.8944693 +-5.2162180 +-10.9140368 +-1.7074747 +-11.9316635 +5.9155335 +-20.9678097 +12.3483372 +-9.5255814 +-8.8624277 +-2.1551230 +1.0031774 +-18.8056393 +9.7811003 +-22.7672367 +17.7985821 +-4.9214373 +7.3500319 +-0.2056762 +4.1974554 +-9.9028406 +0.9534310 +-7.2665029 +13.8340397 +4.1680880 +-2.5222075 +-5.6280169 +0.0703084 +-6.3806520 +2.2445571 +-12.8348207 +6.5889549 +4.9784799 +-5.9227023 +-8.9395618 +0.3663810 +-12.8164606 +4.8512845 +-24.0277996 +13.1925383 +-2.4694567 +-8.1824627 +-2.1626000 +0.4437862 +-18.8929768 +7.1272650 +-37.3037529 +19.9731693 +-2.8519464 +18.6936474 +-0.2250537 +1.4433467 +-11.7009230 +0.8922100 +-6.7815509 +15.3916540 +2.8881750 +-3.6449556 +-8.2607603 +0.7310134 +-6.9733305 +1.9570311 +-14.3382797 +6.8937621 +-1.7339445 +-7.3915462 +-6.7106748 +1.0536580 +-13.9062204 +5.0157771 +-28.0346851 +14.0013161 +-8.1828032 +-13.6250896 +-2.8165200 +0.7583418 +-21.0494499 +4.8949242 +-34.1777649 +21.5431900 +-6.4585690 +10.2391834 +-0.5295570 +12.2194920 +-15.3213167 +3.2658770 +-11.5502481 +11.8895454 +2.2647083 +-4.3975134 +1.0889224 +1.8149552 +-7.5790863 +1.4079416 +-15.4682751 +7.3201399 +-1.7150209 +-10.8251686 +-2.1780636 +3.6440575 +-15.5225897 +3.1575308 +-29.2485867 +14.5883713 +-11.3642473 +7.7853327 +-6.5468998 +40.9552155 +-24.8359261 +7.0338354 +-38.5840378 +15.8405581 +2.3803179 +6.7350888 +-0.7984187 +24.0277100 +-11.8036203 +2.9411879 +-18.6012230 +20.9147148 +8.9131794 +-5.4654918 +13.7382288 +1.8531421 +-8.1683817 +1.8377013 +-17.5786953 +7.7518749 +-5.4683628 +-11.6892996 +4.3725839 +4.0182090 +-16.5448093 +4.4169955 +-32.4978180 +15.4597263 +9.9341955 +41.8011436 +-1.4369966 +47.8711967 +-35.6443367 +14.0401936 +-54.6532440 +39.3291702 +0.9868936 +8.1344509 +-0.9583625 +23.5630245 +-16.5471859 +1.7208736 +-15.4541187 +24.4111137 +8.6754484 +-7.4268928 +12.8491030 +3.0544941 +-8.6269941 +2.7396035 +-16.7894192 +7.9738531 +-3.4850667 +-16.3560390 +11.9733315 +6.7161379 +-16.9498100 +6.2974558 +-31.1069889 +15.8141699 +0.0819664 +-22.3721275 +-6.7707224 +28.8257484 +-16.5616817 +9.1173954 +-45.7287598 +16.8855915 +1.7208385 +14.8299074 +-0.6131330 +17.7063160 +-10.5395517 +7.2150149 +-9.7436228 +17.2125492 +8.1900597 +-7.9381700 +9.4744101 +3.8130367 +-8.9892359 +2.6538568 +-18.7535000 +8.4553041 +3.2295597 +-21.0032883 +1.1458555 +8.9400272 +-18.1266594 +4.6458211 +-34.1345711 +16.0949554 +-2.7053993 +-12.7620659 +-2.1154599 +38.4523849 +-19.7590942 +16.0004997 +-47.4703751 +14.4708061 +-0.1327288 +9.8745012 +-0.5744892 +18.3081455 +-10.5719147 +2.5368972 +-13.1220379 +26.0594616 +9.1686049 +-8.3951025 +20.6223564 +4.1641583 +-9.3932791 +1.9797418 +-21.5680504 +8.9076395 +7.1671510 +-14.7054119 +-3.4595921 +4.3392777 +-23.4924431 +2.0387647 +-41.3884735 +19.3872471 +1.3316351 +-4.6699924 +-1.4879042 +54.4803429 +-25.3522892 +5.9754639 +-49.8132858 +18.0042839 +10.3712759 +6.4259043 +-0.3126109 +14.6655836 +-6.2842550 +1.5529300 +-10.6992550 +30.1154461 +12.7510471 +-8.9039564 +29.3049335 +5.4438176 +-10.1977806 +1.8667293 +-22.6812897 +8.9562273 +-2.3201079 +-23.4633522 +-1.4017687 +26.1813927 +-9.9239445 +7.1781340 +-51.9639854 +11.8954554 +-1.6339447 +17.3961887 +-2.1546085 +37.5902748 +-19.3821335 +20.7700424 +-36.2937775 +41.0792389 +24.8988400 +3.2037950 +-1.1979600 +9.0825005 +-3.1869652 +16.4772072 +-9.2148180 +12.5517178 +9.6115675 +32.7067184 +-3.1461313 +52.2068863 +-4.9212785 +7.0821848 +-34.6782532 +18.5047798 +4.6478930 +5.3913941 +-0.7909020 +37.0989876 +-15.2967205 +19.9949322 +-19.9902515 +18.1801624 +33.9859467 +13.9620228 +-0.1235535 +42.2184868 +-14.1040182 +22.7156906 +-29.6722870 +38.1997948 +68.3178940 +4.5510058 +-0.3411796 +2.0397820 +-0.7730381 +-0.2376515 +-0.4521550 +4.3193407 +28.8145828 +0.0069611 +-0.0414035 +-0.0066671 +-0.0156546 +0.0347898 +-0.0068203 +-0.0285197 +-0.0466326 +0.0114840 +0.0436433 +0.0152209 +-0.0074379 +0.0321818 +0.0316244 +0.0156932 +0.0204711 +0.0105011 +-0.0479866 +-0.0262406 +0.0427519 +-0.0369307 +0.0142825 +-0.0030159 +0.0113251 +-0.0385851 +0.0193827 +-0.0314223 +-0.0289577 +-0.0035788 +0.0201854 +-0.0254997 +0.0154617 +-0.0087822 +0.0499439 +0.0477543 +-0.0252782 +0.0036634 +-0.0155989 +0.0455860 +0.0443218 +-0.0042887 +0.0078918 +0.0139727 +-0.0148530 +-0.0324391 +-0.0293934 +0.0187026 +0.0155855 +0.0230472 +0.0131703 +0.0113666 +0.0247549 +0.0077060 +0.0379071 +0.0108720 +0.0088625 +0.0147799 +-0.0059425 +-0.0035397 +-0.0114485 +0.0482280 +-0.0322321 +0.0116540 +-0.0289940 +-0.6065395 +0.4816957 +-0.0524995 +64.7793350 +-6.3912001 +1.1792265 +-61.0045013 +-1.6807468 +-115.3067017 +35.0680351 +-61.7762451 +3.7883921 +-145.7450562 +-0.0889851 +-86.7193298 +5.5362659 +1.6789309 +30.6925278 +-52.6121140 +3.9092667 +-53.9355927 +-130.5955811 +-1.1395355 +-1.0112584 +-6.0816917 +-112.5545197 +3.3129356 +-179.1917267 +5.9724054 +-116.7099915 +7.2863913 +0.3147163 +1.2537336 +-6.7742796 +16.7874680 +-4.5003395 +7.2244864 +1.7636479 +-1.6983852 +3.1956618 +-75.9648514 +11.1671762 +47.2553902 +-26.2025013 +-17.3383942 +-61.8542786 +-33.9443588 +-42.6539154 +-0.4512386 +-0.7947870 +-5.2446609 +-2.9216764 +-21.8254299 diff --git a/engine/gnubg/COPYING b/engine/gnubg/COPYING new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/engine/gnubg/COPYING @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/engine/gnubg/PROVENANCE.md b/engine/gnubg/PROVENANCE.md new file mode 100644 index 0000000..6762109 --- /dev/null +++ b/engine/gnubg/PROVENANCE.md @@ -0,0 +1,73 @@ +# Provenance de la copie de GNU Backgammon + +Les fichiers de ce dossier sont copiés de GNU Backgammon +(https://git.savannah.gnu.org/cgit/gnubg.git), commit +`14b67984737ded0f6de43d63dcb789f729d9b06b` (version 1.08.003, 2026-10-23), +choisi par l'ADR 0005. Licence : GPLv3 ou ultérieure (`COPYING`). Les +en-têtes de copyright sont conservés. + +**Aucun fichier n'est modifié** : chacun est identique octet pour octet à +l'original. Vérification, depuis un clone de gnubg à ce commit : + +```sh +for f in $(cd engine/gnubg && find . -type f ! -name PROVENANCE.md); do + cmp "engine/gnubg/$f" "chemin/du/clone/gnubg/$f" || echo "différent : $f" +done +``` + +Les espaces en fin de ligne de l'original sont gardés ; `tests/lint.sh` +exclut donc ce dossier (et `engine/data/`) de cette vérification. + +## Fichiers repris + +Compilés dans le moteur embarqué (`build/libengine.a`) : + +| Fichier | Rôle | +| --- | --- | +| `eval.c`, `eval.h`, `movefilters.inc` | Évaluation, génération et classement des coups, videau | +| `positionid.c`, `positionid.h` | Position ID | +| `matchid.c`, `matchid.h` | Match ID | +| `matchequity.c`, `matchequity.h`, `mec.c`, `mec.h` | Tables d'équité de match | +| `bearoff.c`, `bearoff.h`, `bearoffgammon.c`, `bearoffgammon.h` | Bases de fin de partie | +| `drawboard.c`, `drawboard.h` | Notation des coups (`FormatMove`) | +| `mtsupport.c` | Données du fil d'exécution unique (branche sans threads) | +| `lib/neuralnet.c`, `lib/neuralnet.h`, `lib/neuralnetsse.c`, `lib/inputs.c`, `lib/simd.h`, `lib/sigmoid.h` | Réseaux de neurones | +| `lib/cache.c`, `lib/cache.h` | Cache d'évaluations | +| `lib/isaac.c`, `lib/isaac.h`, `lib/isaacs.h`, `lib/md5.c`, `lib/md5.h` | Hasards (bruit, désactivé ici) et hachage | +| `lib/list.c`, `lib/list.h` | Listes (tables d'équité) | +| `lib/gnubg-types.h`, `common.h`, `dice.h` | Types et définitions communes | + +Compilés seulement pour générer les données au build (`build/host/`), avec +la vraie GLib, comme dans le build officiel : + +| Fichier | Rôle | +| --- | --- | +| `makeweights.c` | `gnubg.weights` → `gnubg.wd` (réseaux en binaire) | +| `makebearoff.c` | Bases `gnubg_os0.bd` et `gnubg_ts0.bd` | + +Données, dans `engine/data/` (non modifiées non plus) : `gnubg.weights` +(racine du dépôt gnubg) et `Kazaross-XG2.xml` (`met/`), la table d'équité +de match par défaut de gnubg de bureau. + +## Ce qui remplace le reste de gnubg + +Les fichiers de gnubg non repris sont remplacés par des fichiers propres à +Ustagammon, dans `engine/compat/`, trouvés en premier par le compilateur : + +| Fichier | Remplace | +| --- | --- | +| `config.h` | Le `config.h` produit par `configure` (sans threads, C générique, NEON prévu) | +| `glib-shim/glib.h`, `glib-shim/glib/*.h`, `glib-shim.c` | GLib, pour le moteur embarqué seulement | +| `backgammon.h`, `output.h`, `util.h`, `format.h`, `multithread.h`, `external.h` | En-têtes réduits aux déclarations utilisées par le cœur | +| `gnubg-support.c` | Fonctions et variables de `gnubg.c`, `output.c`, `util.c`, `multithread.c` utilisées par le cœur | +| `host-tools-support.c` | `GetTemporaryFile` de `util.c`, pour `makebearoff` | + +La liste des symboles à fournir a été établie à l'édition des liens. Le +fichier `jni-bridge/src/stubs.c` de CBG (https://github.com/clavierhaus/gnubg-android, +GPLv3) a servi de point de repère, sans reprise de code. + +## Mettre à jour la copie + +Copier les mêmes fichiers depuis le nouveau commit, mettre à jour le commit +ci-dessus, puis `make engine` et `make test`. Une erreur de compilation ou +d'édition des liens indique un symbole à ajouter dans `engine/compat/`. diff --git a/engine/gnubg/bearoff.c b/engine/gnubg/bearoff.c new file mode 100644 index 0000000..2bad261 --- /dev/null +++ b/engine/gnubg/bearoff.c @@ -0,0 +1,1229 @@ +/* + * Copyright (C) 2002-2004 Joern Thyssen + * Copyright (C) 2003-2019 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" +/*must be first here because of strange warning from mingw */ +#include "multithread.h" + +#include "backgammon.h" + +#if HAVE_UNISTD_H +#include +#endif + +#include "bearoffgammon.h" +#include "positionid.h" + +#include +#include +#include +#include + +#define HEURISTIC_C 15 +#define HEURISTIC_P 6 + +static int +setGammonProb(const TanBoard anBoard, unsigned int bp0, unsigned int bp1, float *g0, float *g1) +{ + int i; + unsigned short int prob[32]; + + unsigned int tot0 = 0; + unsigned int tot1 = 0; + + for (i = 5; i >= 0; --i) { + tot0 += anBoard[0][i]; + tot1 += anBoard[1][i]; + } + + { + g_assert(tot0 == 15 || tot1 == 15); + } + + *g0 = 0.0; + *g1 = 0.0; + + if (tot0 == 15) { + struct GammonProbs *gp = getBearoffGammonProbs(anBoard[0]); + double make[3]; + + if (BearoffDist(pbc1, bp1, NULL, NULL, NULL, prob, NULL)) + return -1; + + make[0] = gp->p0 / 36.0; + make[1] = (make[0] + gp->p1 / (36.0 * 36.0)); + make[2] = (make[1] + gp->p2 / (36.0 * 36.0 * 36.0)); + + *g1 = (float) ((prob[1] / 65535.0) + + (1 - make[0]) * (prob[2] / 65535.0) + + (1 - make[1]) * (prob[3] / 65535.0) + (1 - make[2]) * (prob[4] / 65535.0)); + } + + if (tot1 == 15) { + struct GammonProbs *gp = getBearoffGammonProbs(anBoard[1]); + double make[3]; + + if (BearoffDist(pbc1, bp0, NULL, NULL, NULL, prob, NULL)) + return -1; + + make[0] = gp->p0 / 36.0; + make[1] = (make[0] + gp->p1 / (36.0 * 36.0)); + make[2] = (make[1] + gp->p2 / (36.0 * 36.0 * 36.0)); + + *g0 = (float) ((prob[1] / 65535.0) * (1 - make[0]) + (prob[2] / 65535.0) * (1 - make[1]) + + (prob[3] / 65535.0) * (1 - make[2])); + } + return 0; +} + + +static void +AverageRolls(const float arProb[32], float *ar) +{ + float sx; + float sx2; + int i; + + sx = sx2 = 0.0f; + + for (i = 1; i < 32; i++) { + float p = (float) i * arProb[i]; + sx += p; + sx2 += (float) i * p; + } + + ar[0] = sx; + ar[1] = sqrtf(sx2 - sx * sx); +} + +/* Make a plausible bearoff move (used to create approximate bearoff database). */ +static unsigned int +HeuristicBearoff(unsigned int anBoard[6], const unsigned int anRoll[2]) +{ + unsigned int i, /* current die being played */ + c, /* number of dice to play */ + nMax, /* highest occupied point */ + anDice[4], j, iSearch, nTotal; + int n; /* point to play from */ + + if (anRoll[0] == anRoll[1]) { + /* doubles */ + anDice[0] = anDice[1] = anDice[2] = anDice[3] = anRoll[0]; + c = 4; + } else { + /* non-doubles */ + g_assert(anRoll[0] > anRoll[1]); + + anDice[0] = anRoll[0]; + anDice[1] = anRoll[1]; + c = 2; + } + + for (i = 0; i < c; i++) { + for (nMax = 5; nMax > 0; nMax--) { + if (anBoard[nMax]) + break; + } + + if (!anBoard[nMax]) + /* finished bearoff */ + break; + + do { + if (anBoard[anDice[i] - 1]) { + /* bear off exactly */ + n = (int) anDice[i] - 1; + break; + } + + if (anDice[i] - 1 > nMax) { + /* bear off highest chequer */ + n = (int) nMax; + break; + } + + nTotal = anDice[i] - 1; + for (n = -1, j = i + 1; j < c; j++) { + nTotal += anDice[j]; + if (nTotal < 6 && anBoard[nTotal]) { + /* there's a chequer we can bear off with subsequent dice; + * do it */ + n = (int) nTotal; + break; + } + } + if (n >= 0) + break; + + for (n = -1, iSearch = anDice[i]; iSearch <= nMax; iSearch++) { + if (anBoard[iSearch] >= 2 && /* at least 2 on source point */ + !anBoard[iSearch - anDice[i]] && /* dest empty */ + (n == -1 || anBoard[iSearch] > anBoard[n])) + n = (int) iSearch; + } + if (n >= 0) + break; + + /* find the point with the most on it (or least on dest) */ + for (iSearch = anDice[i]; iSearch <= nMax; iSearch++) + if (n == -1 || anBoard[iSearch] > anBoard[n] || + (anBoard[iSearch] == anBoard[n] && + anBoard[iSearch - anDice[i]] < anBoard[(unsigned int) n - anDice[i]])) + n = (int) iSearch; + + g_assert(n >= 0); + } while (n < 0); /* Dummy loop to remove goto's */ + + g_assert(anBoard[n]); + anBoard[n]--; + + if (n >= (int) anDice[i]) + anBoard[n - (int) anDice[i]]++; + } + + return PositionBearoff(anBoard, HEURISTIC_P, HEURISTIC_C); +} + +static void +GenerateBearoff(unsigned char *p, unsigned int nId) +{ + unsigned int anRoll[2], anBoard[6], aProb[32] = { 0 }; + unsigned int i, iBest; + + for (anRoll[0] = 1; anRoll[0] <= 6; anRoll[0]++) + for (anRoll[1] = 1; anRoll[1] <= anRoll[0]; anRoll[1]++) { + PositionFromBearoff(anBoard, nId, HEURISTIC_P, HEURISTIC_C); + iBest = HeuristicBearoff(anBoard, anRoll); + + g_assert(iBest < nId); + + if (anRoll[0] == anRoll[1]) + for (i = 0; i < 31; i++) + aProb[i + 1] += p[(iBest << 6) | (i << 1)] + (p[(iBest << 6) | (i << 1) | 1] << 8); + else + for (i = 0; i < 31; i++) + aProb[i + 1] += (p[(iBest << 6) | (i << 1)] + + ((unsigned int) p[(iBest << 6) | (i << 1) | 1] << 8)) << 1; + } + + for (i = 0; i < 32; i++) { + unsigned short us = (unsigned short) ((aProb[i] + 18) / 36); + + p[(nId << 6) | (i << 1)] = us & 0xFF; + p[(nId << 6) | (i << 1) | 1] = us >> 8; + } +} + +static unsigned char * +HeuristicDatabase(void (*pfProgress) (unsigned int)) +{ + unsigned char *pm = malloc(40 + 54264 * 64); + unsigned char *p; + unsigned int i; + + if (!pm) + return NULL; + + p = pm + 40; + p[0] = p[1] = 0xFF; + for (i = 2; i < 64; i++) + p[i] = 0; + + for (i = 1; i < 54264; i++) { + GenerateBearoff(p, i); + if (pfProgress && !(i % 1000)) + pfProgress(i); + } + + return pm; +} + + +static void +ReadBearoffFile(const bearoffcontext * pbc, unsigned int offset, unsigned char *buf, unsigned int nBytes) +{ + MT_Exclusive(); + + if ((fseek(pbc->pf, (long) offset, SEEK_SET) != 0) || (fread(buf, 1, nBytes, pbc->pf) < nBytes)) { + if (errno) + perror(_("bearoff database")); + else + fprintf(stderr, _("Error reading bearoff database")); + + memset(buf, 0, nBytes); + } + + MT_Release(); +} + +/* BEAROFF_GNUBG: read two sided bearoff database */ +static void +ReadTwoSidedBearoff(const bearoffcontext * pbc, const unsigned int iPos, float ar[4], unsigned short int aus[4]) +{ + unsigned int i, k = (pbc->fCubeful) ? 4 : 1; + unsigned char ac[8]; + unsigned char *pc = NULL; + + if (pbc->p) + pc = pbc->p + 40 + 2 * iPos * k; + else { + ReadBearoffFile(pbc, 40 + 2 * iPos * k, ac, k * 2); + pc = ac; + } + /* add to cache */ + + for (i = 0; i < k; ++i) { + unsigned short int us = pc[2 * i] | (unsigned short) (pc[2 * i + 1] << 8); + + if (aus) + aus[i] = us; + if (ar) + ar[i] = us / 32767.5f - 1.0f; + } +} + +extern int +BearoffCubeful(const bearoffcontext * pbc, const unsigned int iPos, float ar[4], unsigned short int aus[4]) +{ + g_return_val_if_fail(pbc, -1); + g_return_val_if_fail(pbc->fCubeful, -1); + + ReadTwoSidedBearoff(pbc, iPos, ar, aus); + return 0; +} + + +static int +BearoffEvalTwoSided(const bearoffcontext * pbc, const TanBoard anBoard, float arOutput[]) +{ + + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + unsigned int n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUs * n + nThem; + float ar[4]; + + ReadTwoSidedBearoff(pbc, iPos, ar, NULL); + + memset(arOutput, 0, 5 * sizeof(float)); + arOutput[OUTPUT_WIN] = ar[0] / 2.0f + 0.5f; + + return 0; + +} + + +static int +ReadHypergammon(const bearoffcontext * pbc, const unsigned int iPos, float arOutput[NUM_OUTPUTS], float arEquity[4]) +{ + + unsigned char ac[28]; + unsigned char *pc = NULL; + unsigned int us; + int i; + const int x = 28; + + if (pbc->p) + pc = pbc->p + 40 + x * iPos; + else { + ReadBearoffFile(pbc, 40 + x * iPos, ac, x); + pc = ac; + } + + if (arOutput) + for (i = 0; i < NUM_OUTPUTS; ++i) { + us = pc[3 * i] | (pc[3 * i + 1]) << 8 | (pc[3 * i + 2]) << 16; + arOutput[i] = (float) ((double) us / 16777215.0); + } + + if (arEquity) + for (i = 0; i < 4; ++i) { + us = pc[15 + 3 * i] | (pc[15 + 3 * i + 1]) << 8 | (pc[15 + 3 * i + 2]) << 16; + arEquity[i] = ((float) ((double) us / 16777215.0) - 0.5f) * 6.0f; + } + + return 0; + +} + + +static int +BearoffEvalOneSided(const bearoffcontext * pbc, const TanBoard anBoard, float arOutput[]) +{ + int i, j; + float aarProb[2][32]; + float aarGammonProb[2][32]; + float r; + unsigned int anOn[2] = { 0 }; + unsigned int an[2]; + float ar[2][4]; + + /* get bearoff probabilities */ + + for (i = 0; i < 2; ++i) { + + an[i] = PositionBearoff(anBoard[i], pbc->nPoints, pbc->nChequers); + if (BearoffDist(pbc, an[i], aarProb[i], aarGammonProb[i], ar[i], NULL, NULL)) + return -1; + } + + /* calculate winning chance */ + + r = 0.0; + for (i = 0; i < 32; ++i) + for (j = i; j < 32; ++j) + r += aarProb[1][i] * aarProb[0][j]; + + arOutput[OUTPUT_WIN] = r; + + /* calculate gammon chances */ + + for (i = 0; i < 2; ++i) + for (j = 0; j < 25; ++j) + anOn[i] += anBoard[i][j]; + + if (anOn[0] == 15 || anOn[1] == 15) { + + if (pbc->fGammon) { + + /* my gammon chance: I'm out in i rolls and my opponent isn't inside + * home quadrant in less than i rolls */ + + r = 0; + for (i = 0; i < 32; i++) + for (j = i; j < 32; j++) + r += aarProb[1][i] * aarGammonProb[0][j]; + + arOutput[OUTPUT_WINGAMMON] = r; + + /* opp gammon chance */ + + r = 0; + for (i = 0; i < 32; i++) + for (j = i + 1; j < 32; j++) + r += aarProb[0][i] * aarGammonProb[1][j]; + + arOutput[OUTPUT_LOSEGAMMON] = r; + + } else { + + if (setGammonProb(anBoard, an[0], an[1], &arOutput[OUTPUT_LOSEGAMMON], &arOutput[OUTPUT_WINGAMMON])) + return -1; + + } + } else { + /* no gammons possible */ + arOutput[OUTPUT_WINGAMMON] = 0.0f; + arOutput[OUTPUT_LOSEGAMMON] = 0.0f; + } + + + /* no backgammons possible */ + + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + + return 0; +} + + +extern int +BearoffHyper(const bearoffcontext * pbc, const unsigned int iPos, float arOutput[], float arEquity[]) +{ + + return ReadHypergammon(pbc, iPos, arOutput, arEquity); + +} + + +static int +BearoffEvalHypergammon(const bearoffcontext * pbc, const TanBoard anBoard, float arOutput[]) +{ + + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + unsigned int n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUs * n + nThem; + + return ReadHypergammon(pbc, iPos, arOutput, NULL); +} + +extern int +BearoffEval(const bearoffcontext * pbc, const TanBoard anBoard, float arOutput[]) +{ + g_return_val_if_fail(pbc, 0); + + switch (pbc->bt) { + case BEAROFF_TWOSIDED: + return BearoffEvalTwoSided(pbc, anBoard, arOutput); + case BEAROFF_ONESIDED: + return BearoffEvalOneSided(pbc, anBoard, arOutput); + case BEAROFF_HYPERGAMMON: + return BearoffEvalHypergammon(pbc, anBoard, arOutput); + case BEAROFF_INVALID: + default: + g_warning(_("Invalid bearoff database type")); + g_assert_not_reached(); + return 0; + } +} + +extern void +BearoffStatus(const bearoffcontext * pbc, char *sz) +{ + char buf[256]; + + if (!pbc || (pbc->bt != BEAROFF_TWOSIDED && pbc->bt != BEAROFF_ONESIDED && pbc->bt != BEAROFF_HYPERGAMMON)) + return; + + /* Title */ + if (pbc->bt == BEAROFF_HYPERGAMMON) { + if (pbc->p) + sprintf(buf, _("In memory 2-sided exact %u-chequer Hypergammon database evaluator"), pbc->nChequers); + else + sprintf(buf, _("On disk 2-sided exact %u-chequer Hypergammon database evaluator"), pbc->nChequers); + + } else { + if (pbc->p) + sprintf(buf, _("In memory %u-sided bearoff database evaluator"), pbc->bt); + else + sprintf(buf, _("On disk %u-sided bearoff database evaluator"), pbc->bt); + + } + sz += sprintf(sz, " * %s\n", buf); + + sz += sprintf(sz, " - %s\n", _("generated by GNU Backgammon")); + + sprintf(buf, _("up to %u chequers on %u points (%u positions) per player"), pbc->nChequers, pbc->nPoints, + Combination(pbc->nChequers + pbc->nPoints, pbc->nPoints)); + sz += sprintf(sz, " - %s\n", buf); + + switch (pbc->bt) { + case BEAROFF_TWOSIDED: + sz += sprintf(sz, " - %s\n", pbc->fCubeful ? _("database includes both cubeful and cubeless equities") + : _("cubeless database")); + break; + + case BEAROFF_ONESIDED: + if (pbc->fND) + sz += sprintf(sz, " - %s\n", _("distributions are approximated with a normal distribution")); + if (pbc->fHeuristic) + sz += sprintf(sz, " - %s\n", _("with heuristic moves")); + + sz += sprintf(sz, " - %s\n", pbc->fGammon ? _("database includes gammon distributions") + : _("database does not include gammon distributions")); + break; + case BEAROFF_HYPERGAMMON: + case BEAROFF_INVALID: + default: + break; + } + sprintf(sz, "\n"); +} + +static int +BearoffDumpTwoSided(const bearoffcontext * pbc, const TanBoard anBoard, char *sz) +{ + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + unsigned int n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUs * n + nThem; + float ar[4]; + const char *aszEquity[] = { + N_("Cubeless equity"), + N_("Owned cube"), + N_("Centered cube"), + N_("Opponent owns cube") + }; + + sprintf(sz + strlen(sz), "%19s %14s\n%s %12u %12u\n\n", _("Player"), _("Opponent"), _("Position"), nUs, nThem); + + ReadTwoSidedBearoff(pbc, iPos, ar, NULL); + + if (pbc->fCubeful) + for (int i = 0; i < 4; ++i) + sprintf(sz + strlen(sz), "%-30.30s: %+7.4f\n", gettext(aszEquity[i]), ar[i]); + else + sprintf(sz + strlen(sz), "%-30.30s: %+7.4f\n", gettext(aszEquity[0]), 2.0f * ar[0] - 1.0f); + + strcat(sz, "\n"); + + return 0; + +} + + +static int +BearoffDumpOneSided(const bearoffcontext * pbc, const TanBoard anBoard, char *sz) +{ + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + float ar[2][4]; + unsigned int i; + float aarProb[2][32], aarGammonProb[2][32]; + int f0, f1, f2, f3; + unsigned int anPips[2]; + const float x = (2 * 3 + 3 * 4 + 4 * 5 + 4 * 6 + 6 * 7 + + 5 * 8 + 4 * 9 + 2 * 10 + 2 * 11 + 1 * 12 + 1 * 16 + 1 * 20 + 1 * 24) / 36.0f; + + + if (BearoffDist(pbc, nUs, aarProb[0], aarGammonProb[0], ar[0], NULL, NULL)) + return -1; + if (BearoffDist(pbc, nThem, aarProb[1], aarGammonProb[1], ar[1], NULL, NULL)) + return -1; + + sz += sprintf(sz, "%19s %14s\n%s %12u %12u\n\n", _("Player"), _("Opponent"), _("Position"), nUs, nThem); + + sz += sprintf(sz, "%s \t\t\t\t%s\n", _("Bearing off"), _("Bearing at least one chequer off")); + sz += sprintf(sz, "%s\t%s\t%s\t%s\t%s\n", _("Rolls"), _("Player"), _("Opponent"), _("Player"), _("Opponent")); + + f0 = f1 = f2 = f3 = FALSE; + + for (i = 0; i < 32; i++) { + + if (aarProb[0][i] > 0.0f) + f0 = TRUE; + + if (aarProb[1][i] > 0.0f) + f1 = TRUE; + + if (aarGammonProb[0][i] > 0.0f) + f2 = TRUE; + + if (aarGammonProb[1][i] > 0.0f) + f3 = TRUE; + + if (f0 || f1 || f2 || f3) { + if (f0 && f1 && ((f2 && f3) || !pbc->fGammon) && + aarProb[0][i] == 0.0f && aarProb[1][i] == 0.0f && + ((aarGammonProb[0][i] == 0.0f && aarGammonProb[1][i] == 0.0f) || !pbc->fGammon)) + break; + + sprintf(sz = sz + strlen(sz), + "%5u\t%7.3f\t%7.3f" "\t\t", i, aarProb[0][i] * 100.0f, aarProb[1][i] * 100.0f); + + if (pbc->fGammon) + sprintf(sz = sz + strlen(sz), + "%7.3f\t%7.3f\n", aarGammonProb[0][i] * 100.0f, aarGammonProb[1][i] * 100.0f); + else + sprintf(sz = sz + strlen(sz), "%-7.7s\t%-7.7s\n", _("n/a"), _("n/a")); + + + } + } + + sz += sprintf(sz, "\n%s\n", _("Average rolls")); + sz += sprintf(sz, "%s\t\t\t\t%s\n", _("Bearing off"), _("Saving gammon")); + sz += sprintf(sz, "\t%s\t%s\t%s\t%s\n", _("Player"), _("Opponent"), _("Player"), _("Opponent")); + + /* mean rolls */ + + sz += sprintf(sz, "%s\t%7.3f\t%7.3f\t\t", _("Mean"), ar[0][0], ar[1][0]); + + if (pbc->fGammon) + sz += sprintf(sz, "%7.3f\t%7.3f\n", ar[0][2], ar[1][2]); + else + sz += sprintf(sz, "%-7.7s\t%-7.7s\n", _("n/a"), _("n/a")); + + /* std. dev */ + + sz += sprintf(sz, "%s\t%7.3f\t%7.3f\t\t", _("Std dev"), ar[0][1], ar[1][1]); + + if (pbc->fGammon) + sz += sprintf(sz, "%7.3f\t%7.3f\n", ar[0][3], ar[1][3]); + else + sz += sprintf(sz, "%-7.7s\t%-7.7s\n", _("n/a"), _("n/a")); + + + /* effective pip count */ + + PipCount(anBoard, anPips); + + sz += sprintf(sz, "\n%s:\n", _("Effective pip count")); + sz += sprintf(sz, "\t%s\t%s\n", _("Player"), _("Opponent")); + sz += sprintf(sz, "%s\t%7.3f\t%7.3f\n%s\t%7.3f\t%7.3f\n\n", _("EPC"), + ar[0][0] * x, ar[1][0] * x, _("Wastage"), ar[0][0] * x - (float) anPips[1], + ar[1][0] * x - (float) anPips[0]); + + sprintf(sz, "%s = %5.3f * %s\n%s = %s - %s\n\n", + _("EPC"), x, _("Average rolls"), _("Wastage"), _("EPC"), _("pips")); + + return 0; + +} + +static int +BearoffDumpHyper(const bearoffcontext * pbc, const TanBoard anBoard, char *sz) +{ + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + unsigned int n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUs * n + nThem; + float ar[4]; + unsigned int i; + const char *aszEquity[] = { + N_("Owned cube"), + N_("Centered cube"), + N_("Centered cube (Jacoby rule)"), + N_("Opponent owns cube") + }; + + if (BearoffHyper(pbc, iPos, NULL, ar)) + return -1; + + sprintf(sz + strlen(sz), "%19s %14s\n%s %12u %12u\n\n", _("Player"), _("Opponent"), _("Position"), nUs, nThem); + + for (i = 0; i < 4; ++i) + sprintf(sz + strlen(sz), "%-30.30s: %+7.4f\n", gettext(aszEquity[i]), ar[i]); + + return 0; +} + +extern int +BearoffDump(const bearoffcontext * pbc, const TanBoard anBoard, char *sz) +{ + g_return_val_if_fail(pbc, -1); + + switch (pbc->bt) { + case BEAROFF_TWOSIDED: + return BearoffDumpTwoSided(pbc, anBoard, sz); + case BEAROFF_ONESIDED: + return BearoffDumpOneSided(pbc, anBoard, sz); + case BEAROFF_HYPERGAMMON: + return BearoffDumpHyper(pbc, anBoard, sz); + case BEAROFF_INVALID: + default: + g_warning(_("Invalid bearoff database type")); + return -1; + } +} + +extern void +BearoffClose(bearoffcontext * pbc) +{ + if (!pbc) + return; + + if (pbc->pf) + fclose(pbc->pf); + + if (pbc->map) { + g_mapped_file_unref(pbc->map); + pbc->p = NULL; + } + + if (pbc->p) + free(pbc->p); + + if (pbc->szFilename) + g_free(pbc->szFilename); + + g_free(pbc); +} + +static unsigned char * +ReadIntoMemory(bearoffcontext * pbc) +{ + GError *error = NULL; + pbc->map = g_mapped_file_new(pbc->szFilename, FALSE, &error); + if (!pbc->map) { + g_printerr(_("%s: Failed to map bearoff database %s\n"), pbc->szFilename, error->message); + g_error_free(error); + return NULL; + } + pbc->p = (unsigned char *) g_mapped_file_get_contents(pbc->map); + return pbc->p; +} + +/* + * Check whether this is a exact bearoff file + * + * The first long must be 73457356 + * The second long must be 100 + * + */ + +static inline unsigned int +MakeInt(unsigned char a, unsigned char b, unsigned char c, unsigned char d) +{ + return ((unsigned int) a | + (unsigned int) b << 8 | + (unsigned int) c << 16 | + (unsigned int) d << 24); +} + +static void +InvalidDb(bearoffcontext * pbc) +{ + if (errno) { + const char *fn = pbc->szFilename ? pbc->szFilename : ""; + g_printerr("%s(%s): %s\n", _("Bearoff Database"), fn, g_strerror(errno)); + } + BearoffClose(pbc); +} + +/* + * Initialise bearoff database + * + * Input: + * szFilename: the filename of the database to open + * + * Returns: + * pointer to bearoff context on succes; NULL on error + * + * Garbage collect: + * caller must free returned pointer if not NULL. + * + */ +extern bearoffcontext * +BearoffInit(const char *szFilename, const unsigned int bo, void (*p) (unsigned int)) +{ + bearoffcontext *pbc; + char sz[41]; + + pbc = g_new0(bearoffcontext, 1); + + if (bo & BO_HEURISTIC) { + pbc->bt = BEAROFF_ONESIDED; + pbc->nPoints = HEURISTIC_P; + pbc->nChequers = HEURISTIC_C; + pbc->fHeuristic = TRUE; + pbc->p = HeuristicDatabase(p); + return pbc; + } + + errno = 0; + + if (!szFilename || !*szFilename) { + g_printerr("%s\n", _("No database filename provided")); + InvalidDb(pbc); + return NULL; + } + pbc->szFilename = g_strdup(szFilename); + + if (!g_file_test(szFilename, G_FILE_TEST_IS_REGULAR)) { + /* fail silently */ + errno = 0; + InvalidDb(pbc); + return NULL; + } + + + if ((pbc->pf = g_fopen(szFilename, "rb")) == 0) { + g_printerr("%s\n", _("Invalid or nonexistent database")); + InvalidDb(pbc); + return NULL; + } + /* + * Read header bearoff file + */ + + /* read header */ + + if (fread(sz, 1, 40, pbc->pf) < 40) { + g_printerr("%s\n", _("Database read failed")); + InvalidDb(pbc); + return NULL; + } + + /* detect bearoff program */ + + if (strncmp(sz, "gnubg", 5) != 0) { + g_printerr("%s\n", _("Unknown bearoff database")); + InvalidDb(pbc); + return NULL; + } + + /* one sided or two sided? */ + + if (!strncmp(sz + 6, "TS", 2)) + pbc->bt = BEAROFF_TWOSIDED; + else if (!strncmp(sz + 6, "OS", 2)) + pbc->bt = BEAROFF_ONESIDED; + else if (*(sz + 6) == 'H') + pbc->bt = BEAROFF_HYPERGAMMON; + else { + g_printerr("%s: %s\n (%s: '%2s')\n", szFilename, _("incomplete bearoff database"), _("illegal bearoff type"), + sz + 6); + InvalidDb(pbc); + return NULL; + } + + if (((bo & BO_MUST_BE_ONE_SIDED) && (pbc->bt != BEAROFF_ONESIDED)) + || ((bo & BO_MUST_BE_TWO_SIDED) && (pbc->bt != BEAROFF_TWOSIDED))) { + g_printerr("%s: %s\n (%s: '%2s')\n", szFilename, _("incorrect bearoff database"), _("wrong bearoff type"), + sz + 6); + InvalidDb(pbc); + return NULL; + } + + if (pbc->bt == BEAROFF_TWOSIDED || pbc->bt == BEAROFF_ONESIDED) { + + /* normal onesided or twosided bearoff database */ + + /* number of points */ + + pbc->nPoints = (unsigned) atoi(sz + 9); + if (pbc->nPoints < 1 || pbc->nPoints >= 24) { + g_printerr("%s: %s\n (%s: %u)\n", szFilename, _("incomplete bearoff database"), + _("illegal number of points"), pbc->nPoints); + InvalidDb(pbc); + return NULL; + } + + /* number of chequers */ + + pbc->nChequers = (unsigned) atoi(sz + 12); + if (pbc->nChequers < 1 || pbc->nChequers > 15) { + g_printerr("%s: %s\n (%s: %u)", szFilename, _("incomplete bearoff database"), + _("illegal number of chequers"), pbc->nChequers); + InvalidDb(pbc); + return NULL; + } + + } else { + + /* hypergammon database */ + + pbc->nPoints = 25; + pbc->nChequers = (unsigned) atoi(sz + 7); + + } + switch (pbc->bt) { + case BEAROFF_TWOSIDED: + /* options for two-sided dbs */ + pbc->fCubeful = atoi(sz + 15); + break; + case BEAROFF_ONESIDED: + /* options for one-sided dbs */ + pbc->fGammon = atoi(sz + 15); + pbc->fCompressed = atoi(sz + 17); + pbc->fND = atoi(sz + 19); + break; + case BEAROFF_HYPERGAMMON: + case BEAROFF_INVALID: + default: + break; + } + + /* + * read database into memory if requested + */ + + if (bo & BO_IN_MEMORY) { + fclose(pbc->pf); + pbc->pf = NULL; + if ((ReadIntoMemory(pbc) == NULL)) + if ((pbc->pf = g_fopen(szFilename, "rb")) == 0) { + g_printerr("%s\n", _("Invalid or nonexistent database")); + InvalidDb(pbc); + return NULL; + } + } + + return pbc; +} + +extern float +fnd(const float x, const float mu, const float sigma) +{ + + const float epsilon = 1.0e-7f; + + if (sigma <= epsilon) + /* dirac delta function */ + return (fabsf(mu - x) < epsilon) ? 1.0f : 0.0f; + else { + + float xm = (x - mu) / sigma; + + return 1.0f / (sigma * sqrtf(2.0f * F_PI)) * expf(-xm * xm / 2.0f); + + } + +} + + + +static int +ReadBearoffOneSidedND(const bearoffcontext * pbc, + const unsigned int nPosID, + float arProb[32], float arGammonProb[32], + float *ar, unsigned short int ausProb[32], unsigned short int ausGammonProb[32]) +{ + + unsigned char ac[16]; + float arx[4]; + int i; + float r; + + ReadBearoffFile(pbc, 40 + nPosID * 16, ac, 16); + + memcpy(arx, ac, 16); + + if (arProb || ausProb) + for (i = 0; i < 32; ++i) { + r = fnd((float) i, arx[0], arx[1]); + if (arProb) + arProb[i] = r; + if (ausProb) + ausProb[i] = (unsigned short) (r * 65535.0f); + } + + + + if (arGammonProb || ausGammonProb) + for (i = 0; i < 32; ++i) { + r = fnd((float) i, arx[2], arx[3]); + if (arGammonProb) + arGammonProb[i] = r; + if (ausGammonProb) + ausGammonProb[i] = (unsigned short) (r * 65535.0f); + } + + if (ar) + memcpy(ar, arx, 16); + + return 0; + +} + + +static void +AssignOneSided(float arProb[32], float arGammonProb[32], + float ar[4], + unsigned short int ausProb[32], + unsigned short int ausGammonProb[32], + const unsigned short int ausProbx[32], const unsigned short int ausGammonProbx[32]) +{ + if (ausProb) + memcpy(ausProb, ausProbx, 32 * sizeof(ausProb[0])); + + if (ausGammonProb) + memcpy(ausGammonProb, ausGammonProbx, 32 * sizeof(ausGammonProbx[0])); + + if (ar || arProb || arGammonProb) { + float arx[64]; + int i; + + for (i = 0; i < 32; ++i) + arx[i] = ausProbx[i] / 65535.0f; + + for (i = 0; i < 32; ++i) + arx[32 + i] = ausGammonProbx[i] / 65535.0f; + + if (arProb) + memcpy(arProb, arx, 32 * sizeof(float)); + if (arGammonProb) + memcpy(arGammonProb, arx + 32, 32 * sizeof(float)); + if (ar) { + AverageRolls(arx, ar); + AverageRolls(arx + 32, ar + 2); + } + } +} + + +static void +CopyBytes(unsigned short int aus[64], + const unsigned char ac[128], + const unsigned int nz, const unsigned int ioff, const unsigned int nzg, const unsigned int ioffg) +{ + + unsigned int i, j; + + i = 0; + memset(aus, 0, 64 * sizeof(unsigned short int)); + for (j = 0; j < nz; ++j, i += 2) + aus[ioff + j] = ac[i] | (unsigned short int) (ac[i + 1] << 8); + + for (j = 0; j < nzg; ++j, i += 2) + aus[32 + ioffg + j] = (unsigned short int) (ac[i] | ac[i + 1] << 8); +} + +static unsigned short int * +GetDistCompressed(unsigned short int aus[64], const bearoffcontext * pbc, const unsigned int nPosID) +{ + unsigned char *puch; + unsigned char ac[128]; + unsigned int iOffset; + unsigned int nBytes; + unsigned int ioff, nz, ioffg = 0, nzg = 0; + unsigned int nPos = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int index_entry_size = pbc->fGammon ? 8 : 6; + + /* find offsets and no. of non-zero elements */ + + if (pbc->p) + /* database is in memory */ + puch = pbc->p + 40 + nPosID * index_entry_size; + else { + ReadBearoffFile(pbc, 40 + nPosID * index_entry_size, ac, index_entry_size); + puch = ac; + } + + /* find offset */ + + iOffset = MakeInt(puch[0], puch[1], puch[2], puch[3]); + + nz = puch[4]; + ioff = puch[5]; + if (pbc->fGammon) { + nzg = puch[6]; + ioffg = puch[7]; + } + /* Sanity checks */ + + if ((iOffset > 64 * nPos && 64 * nPos > 0) || nz > 32 || ioff > 32 || nzg > 32 || ioffg > 32) { + fprintf(stderr, _("The bearoff file '%s' is likely to be corrupted.\n"), pbc->szFilename); +#if !defined(G_DISABLE_ASSERT) + fprintf(stderr, + "Offset %lu, dist size %u (offset %u), " + "gammon dist size %u (offset %u)\n", (unsigned long) iOffset, nz, ioff, nzg, ioffg); +#endif + g_assert_not_reached(); + } + + /* read prob + gammon probs */ + + iOffset = 40 /* the header */ + + nPos * index_entry_size /* the offset data */ + + 2 * iOffset; /* offset to current position */ + + /* read values */ + + nBytes = 2 * (nz + nzg); + + /* get distribution */ + + if (pbc->p) + /* from memory */ + puch = pbc->p + iOffset; + else { + /* from disk */ + ReadBearoffFile(pbc, iOffset, ac, nBytes); + puch = ac; + + } + + CopyBytes(aus, puch, nz, ioff, nzg, ioffg); + + return aus; +} + +static unsigned short int * +GetDistUncompressed(unsigned short int aus[64], const bearoffcontext * pbc, const unsigned int nPosID) +{ + unsigned char ac[128]; + unsigned char *puch; + unsigned int iOffset; + + /* read from file */ + + iOffset = 40 + 64 * nPosID * (pbc->fGammon ? 2 : 1); + + if (pbc->p) + /* from memory */ + puch = pbc->p + iOffset; + else { + /* from disk */ + + ReadBearoffFile(pbc, iOffset, ac, pbc->fGammon ? 128 : 64); + puch = ac; + } + + CopyBytes(aus, puch, 32, 0, 32, 0); + + return aus; + +} + + +static int +ReadBearoffOneSidedExact(const bearoffcontext * pbc, const unsigned int nPosID, + float arProb[32], float arGammonProb[32], + float ar[4], unsigned short int ausProb[32], unsigned short int ausGammonProb[32]) +{ + unsigned short int aus[64]; + unsigned short int *pus = NULL; + + /* get distribution */ + if (pbc->fCompressed) + pus = GetDistCompressed(aus, pbc, nPosID); + else + pus = GetDistUncompressed(aus, pbc, nPosID); + + if (!pus) { + printf(_("Error decoding one-sided bearoff database entry; position %u\n"), nPosID); + return -1; + } + + AssignOneSided(arProb, arGammonProb, ar, ausProb, ausGammonProb, pus, pus + 32); + + return 0; +} + +extern int +BearoffDist(const bearoffcontext * pbc, const unsigned int nPosID, + float arProb[32], float arGammonProb[32], + float ar[4], unsigned short int ausProb[32], unsigned short int ausGammonProb[32]) +{ + g_return_val_if_fail(pbc, -1); + g_return_val_if_fail(pbc->bt == BEAROFF_ONESIDED, -1); + if (pbc->fND) + return ReadBearoffOneSidedND(pbc, nPosID, arProb, arGammonProb, ar, ausProb, ausGammonProb); + else + return ReadBearoffOneSidedExact(pbc, nPosID, arProb, arGammonProb, ar, ausProb, ausGammonProb); +} + +extern int +isBearoff(const bearoffcontext * pbc, const TanBoard anBoard) +{ + unsigned int i, nOppBack, nBack; + unsigned int n = 0, nOpp = 0; + + if (!pbc) + return FALSE; + + for (nOppBack = 24; nOppBack > 0; nOppBack--) { + if (anBoard[0][nOppBack]) + break; + } + for (nBack = 24; nBack > 0; nBack--) { + if (anBoard[1][nBack]) + break; + } + if (!anBoard[0][nOppBack] || !anBoard[1][nBack]) + /* the game is over */ + return FALSE; + + if ((nBack + nOppBack > 22) && !(pbc->bt == BEAROFF_HYPERGAMMON)) + /* contact position */ + return FALSE; + + for (i = 0; i <= nOppBack; ++i) + nOpp += anBoard[0][i]; + + for (i = 0; i <= nBack; ++i) + n += anBoard[1][i]; + + if (n <= pbc->nChequers && nOpp <= pbc->nChequers && nBack < pbc->nPoints && nOppBack < pbc->nPoints) + return TRUE; + else + return FALSE; +} diff --git a/engine/gnubg/bearoff.h b/engine/gnubg/bearoff.h new file mode 100644 index 0000000..6d29c6c --- /dev/null +++ b/engine/gnubg/bearoff.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2002-2004 Joern Thyssen + * Copyright (C) 2003-2018 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef BEAROFF_H +#define BEAROFF_H + +#include "gnubg-types.h" + +#include + +typedef enum { + BEAROFF_INVALID, + BEAROFF_ONESIDED, + BEAROFF_TWOSIDED, + BEAROFF_HYPERGAMMON +} bearofftype; + +typedef struct { + bearofftype bt; /* type of bearoff database */ + unsigned int nPoints; /* number of points covered by database */ + unsigned int nChequers; /* number of chequers for one-sided database */ + /* one sided dbs */ + int fCompressed; /* is database compressed? */ + int fGammon; /* gammon probs included */ + int fND; /* normal distribution instead of exact dist? */ + int fHeuristic; /* heuristic database? */ + /* two sided dbs */ + int fCubeful; /* cubeful equities included */ + FILE *pf; /* file pointer */ + char *szFilename; /* filename */ + GMappedFile *map; + unsigned char *p; /* pointer to data in memory */ +} bearoffcontext; + +enum bearoffoptions { + BO_NONE = 0, + BO_IN_MEMORY = 1, + BO_MUST_BE_ONE_SIDED = 2, + BO_MUST_BE_TWO_SIDED = 4, + BO_HEURISTIC = 8 +}; + +extern bearoffcontext *BearoffInit(const char *szFilename, unsigned int bo, void (*p) (unsigned int)); + +extern int + BearoffEval(const bearoffcontext * pbc, const TanBoard anBoard, float arOutput[]); + +extern void + BearoffStatus(const bearoffcontext * pbc, char *sz); + +extern int + BearoffDump(const bearoffcontext * pbc, const TanBoard anBoard, char *sz); + +extern int + BearoffDist(const bearoffcontext * pbc, unsigned int nPosID, + float arProb[32], float arGammonProb[32], + float ar[4], unsigned short int ausProb[32], unsigned short int ausGammonProb[32]); + +extern int + BearoffCubeful(const bearoffcontext * pbc, unsigned int iPos, float ar[4], unsigned short int aus[4]); + +extern void BearoffClose(bearoffcontext * pbc); + +extern int + isBearoff(const bearoffcontext * pbc, const TanBoard anBoard); + +extern float fnd(float x, float mu, float sigma); + +extern int + BearoffHyper(const bearoffcontext * pbc, unsigned int iPos, float arOutput[], float arEquity[]); + +#endif /* BEAROFF_H */ diff --git a/engine/gnubg/bearoffgammon.c b/engine/gnubg/bearoffgammon.c new file mode 100644 index 0000000..0add418 --- /dev/null +++ b/engine/gnubg/bearoffgammon.c @@ -0,0 +1,7856 @@ +/* + * Copyright (C) 2000-2002 Joseph Heled + * Copyright (C) 2006-2019 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" +#include "bearoffgammon.h" + +struct GroupInfo { + struct GammonProbs gDefault; + unsigned char *info; + unsigned int base; + unsigned int size; +}; + +static struct GammonProbs all[] = { + {0, 0, 0, 36}, + {36, 0, 0, 35}, + {35, 36, 0, 35}, + {35, 35, 36, 35}, + {72, 0, 0, 34}, + {108, 0, 0, 33}, + {107, 36, 0, 33}, + {107, 35, 36, 33}, + {106, 72, 0, 33}, + {104, 144, 0, 33}, + {103, 180, 0, 33}, + {103, 179, 36, 33}, + {103, 176, 144, 33}, + {103, 174, 216, 33}, + {103, 173, 252, 33}, + {100, 288, 0, 33}, + {100, 284, 144, 33}, + {99, 312, 432, 33}, + {99, 306, 648, 33}, + {99, 305, 684, 33}, + {144, 0, 0, 32}, + {140, 144, 0, 32}, + {138, 216, 0, 32}, + {137, 248, 144, 32}, + {136, 284, 144, 32}, + {132, 424, 288, 32}, + {130, 492, 432, 32}, + {130, 484, 720, 32}, + {128, 544, 1152, 32}, + {128, 536, 1440, 32}, + {128, 533, 1548, 32}, + {128, 532, 1584, 32}, + {128, 520, 2016, 32}, + {128, 516, 2160, 32}, + {128, 512, 2304, 32}, + {180, 0, 0, 31}, + {176, 144, 0, 31}, + {175, 180, 0, 31}, + {175, 174, 216, 31}, + {175, 173, 252, 31}, + {172, 288, 0, 31}, + {171, 324, 0, 31}, + {171, 312, 432, 31}, + {171, 311, 468, 31}, + {216, 0, 0, 30}, + {212, 144, 0, 30}, + {208, 288, 0, 30}, + {200, 568, 288, 30}, + {196, 704, 576, 30}, + {196, 688, 1152, 30}, + {196, 682, 1368, 30}, + {196, 658, 2232, 30}, + {196, 650, 2520, 30}, + {192, 812, 1872, 30}, + {192, 782, 2952, 30}, + {192, 774, 3240, 30}, + {242, 360, 0, 29}, + {241, 396, 0, 29}, + {241, 392, 144, 29}, + {241, 391, 180, 29}, + {238, 504, 0, 29}, + {238, 502, 72, 29}, + {232, 720, 0, 29}, + {232, 704, 576, 29}, + {231, 730, 936, 29}, + {231, 729, 972, 29}, + {231, 722, 1224, 29}, + {231, 714, 1512, 29}, + {231, 713, 1548, 29}, + {230, 784, 288, 29}, + {226, 916, 720, 29}, + {226, 912, 864, 29}, + {220, 1124, 1008, 29}, + {221, 1044, 2592, 29}, + {221, 1041, 2700, 29}, + {220, 1108, 1584, 29}, + {221, 1000, 4176, 29}, + {221, 989, 4572, 29}, + {219, 1104, 3024, 29}, + {219, 1102, 3096, 29}, + {219, 1086, 3672, 29}, + {219, 1085, 3708, 29}, + {288, 0, 0, 28}, + {284, 144, 0, 28}, + {283, 173, 252, 28}, + {281, 243, 324, 28}, + {280, 288, 0, 28}, + {279, 305, 684, 28}, + {276, 432, 0, 28}, + {276, 416, 576, 28}, + {268, 720, 0, 28}, + {264, 848, 576, 28}, + {260, 956, 1872, 28}, + {260, 950, 2088, 28}, + {260, 920, 3168, 28}, + {260, 912, 3456, 28}, + {244, 1528, 2016, 28}, + {313, 391, 180, 27}, + {310, 502, 72, 27}, + {240, 1552, 6336, 28}, + {240, 1480, 8928, 28}, + {240, 1472, 9216, 28}, + {304, 720, 0, 27}, + {304, 704, 576, 27}, + {303, 729, 972, 27}, + {303, 722, 1224, 27}, + {303, 714, 1512, 27}, + {303, 713, 1548, 27}, + {360, 0, 0, 26}, + {287, 1229, 3708, 27}, + {356, 144, 0, 26}, + {348, 432, 0, 26}, + {400, 1152, 0, 24}, + {392, 1440, 0, 24}, + {390, 1504, 288, 24}, + {368, 2248, 2016, 24}, + {368, 2212, 3312, 24}, + {364, 2236, 7632, 24}, + {364, 2224, 8064, 24}, + {360, 2480, 4032, 24}, + {360, 2472, 4320, 24}, + {364, 2152, 10656, 24}, + {364, 2144, 10944, 24}, + {356, 2444, 10512, 24}, + {356, 2442, 10584, 24}, + {356, 2360, 13536, 24}, + {356, 2352, 13824, 24}, +}; + +static unsigned char x9[] = { + 0, + 4, + 4, + 5, + 5, + 9, + 9, + 10, + 10, + 13, + 13, + 14, + 14, + 14, +}; + + +static unsigned char x10[] = { + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, + 3, +}; + + +static unsigned char x11[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, +}; + + +static unsigned char x17[] = { + 0, + 35, + 35, + 56, + 58, + 70, + 71, + 73, + 74, + 76, + 76, + 77, + 77, + 77, +}; + + +static unsigned char x18[] = { + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 51, + 51, + 52, + 52, + 52, +}; + + +static unsigned char x19[] = { + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 34, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 34, + 34, +}; + + +static unsigned char x20[] = { + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 31, + 33, + 33, + 34, + 34, + 34, +}; + + +static unsigned char x21[] = { + 0, + 1, + 5, + 1, + 5, + 8, + 1, + 5, + 8, + 22, + 1, + 5, + 8, + 22, + 23, + 1, + 5, + 8, + 22, + 24, + 26, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 30, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 31, + 33, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 31, + 33, + 33, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 31, + 33, + 33, + 34, + 1, + 5, + 8, + 22, + 24, + 26, + 27, + 29, + 31, + 33, + 33, + 34, + 34, +}; + + +static unsigned char x22[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, + 3, +}; + + +static unsigned char x23[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, +}; + + +static unsigned char x25[] = { + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x26[] = { + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x27[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x33[] = { + 4, + 108, + 110, + 113, + 114, + 119, + 120, + 123, + 124, + 125, + 125, + 126, + 126, + 126, +}; + + +static unsigned char x34[] = { + 20, + 108, + 111, + 112, + 113, + 115, + 116, + 117, + 118, + 121, + 121, + 122, + 122, + 122, +}; + + +static unsigned char x35[] = { + 0, + 0, + 44, + 0, + 44, + 44, + 0, + 44, + 44, + 90, + 0, + 44, + 44, + 90, + 90, + 0, + 44, + 44, + 90, + 90, + 96, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 99, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 99, + 100, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 99, + 100, + 100, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 99, + 100, + 100, + 101, + 0, + 44, + 44, + 90, + 90, + 96, + 96, + 99, + 99, + 100, + 100, + 101, + 101, +}; + + +static unsigned char x36[] = { + 4, + 44, + 44, + 86, + 88, + 91, + 91, + 92, + 93, + 94, + 94, + 95, + 95, + 95, +}; + + +static unsigned char x37[] = { + 0, + 0, + 20, + 0, + 20, + 20, + 0, + 20, + 20, + 46, + 0, + 20, + 20, + 46, + 46, + 0, + 20, + 20, + 46, + 46, + 48, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 53, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 53, + 54, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 53, + 54, + 54, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 53, + 54, + 54, + 55, + 0, + 20, + 20, + 46, + 46, + 48, + 48, + 53, + 53, + 54, + 54, + 55, + 55, +}; + + +static unsigned char x38[] = { + 4, + 4, + 20, + 4, + 20, + 20, + 4, + 20, + 20, + 45, + 4, + 20, + 20, + 45, + 46, + 4, + 20, + 20, + 45, + 46, + 47, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 51, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 51, + 51, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 51, + 51, + 52, + 4, + 20, + 20, + 45, + 46, + 47, + 47, + 49, + 50, + 51, + 51, + 52, + 52, +}; + + +static unsigned char x39[] = { + 0, + 0, + 0, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 21, + 0, + 4, + 4, + 21, + 21, + 0, + 4, + 4, + 21, + 21, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 0, + 4, + 4, + 21, + 21, + 25, + 25, + 28, + 28, + 32, + 32, + 34, +}; + + +static unsigned char x40[] = { + 20, + 82, + 83, + 97, + 98, + 102, + 103, + 104, + 105, + 106, + 106, + 107, + 107, + 109, +}; + + +static unsigned char x41[] = { + 4, + 4, + 44, + 4, + 44, + 45, + 4, + 44, + 45, + 62, + 4, + 44, + 45, + 56, + 69, + 4, + 44, + 45, + 56, + 60, + 72, + 4, + 44, + 45, + 57, + 60, + 62, + 75, + 4, + 44, + 45, + 57, + 60, + 62, + 63, + 78, + 4, + 44, + 45, + 58, + 61, + 62, + 63, + 64, + 79, + 4, + 44, + 45, + 58, + 61, + 62, + 63, + 64, + 66, + 80, + 4, + 44, + 45, + 59, + 61, + 62, + 63, + 65, + 66, + 67, + 80, + 4, + 44, + 45, + 59, + 61, + 62, + 63, + 65, + 66, + 67, + 67, + 81, + 4, + 44, + 45, + 59, + 61, + 62, + 63, + 65, + 66, + 67, + 67, + 68, + 81, +}; + + +static unsigned char x42[] = { + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 13, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 14, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 14, + 14, +}; + + +static unsigned char x43[] = { + 0, + 0, + 0, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 13, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 13, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 5, + 0, + 4, + 4, + 5, + 5, + 0, + 4, + 4, + 5, + 5, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 0, + 4, + 4, + 6, + 5, + 9, + 9, + 10, + 10, + 13, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 0, + 4, + 4, + 7, + 5, + 9, + 9, + 11, + 10, + 13, + 13, + 14, +}; + + +static unsigned char x44[] = { + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 18, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 18, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 13, + 19, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 13, + 14, + 19, +}; + + +static unsigned char x45[] = { + 0, + 0, + 0, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 17, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 18, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 18, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 18, + 0, + 0, + 4, + 0, + 4, + 4, + 0, + 4, + 4, + 9, + 0, + 4, + 4, + 5, + 9, + 0, + 4, + 4, + 5, + 8, + 15, + 0, + 4, + 4, + 5, + 8, + 9, + 16, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 17, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 18, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 18, + 0, + 4, + 4, + 5, + 8, + 9, + 9, + 10, + 12, + 13, + 13, + 19, +}; + + +static unsigned char x46[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 3, +}; + + +static unsigned char x47[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, +}; + + +static unsigned char x48[] = { + 87, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 84, + 85, + 89, +}; + + +static unsigned char x49[] = { + 4, + 4, + 4, + 9, + 5, + 5, + 9, + 5, + 5, + 5, + 15, + 9, + 9, + 9, + 9, + 15, + 9, + 9, + 9, + 9, + 9, + 17, + 10, + 10, + 10, + 10, + 10, + 10, + 17, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 18, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 18, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 19, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 19, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 19, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, +}; + + +static unsigned char x50[] = { + 20, + 20, + 20, + 35, + 35, + 35, + 35, + 35, + 35, + 35, + 36, + 36, + 36, + 36, + 40, + 36, + 36, + 36, + 36, + 36, + 40, + 37, + 37, + 37, + 37, + 37, + 37, + 41, + 37, + 37, + 37, + 37, + 37, + 37, + 37, + 41, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 42, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 38, + 42, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 43, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 43, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 39, + 43, +}; + + +static unsigned char x51[] = { + 4, + 4, + 4, + 4, + 4, + 4, + 4, + 5, + 5, + 5, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 4, + 4, + 4, + 5, + 5, + 5, + 5, + 5, + 5, + 5, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 9, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 13, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, + 14, +}; + + +static unsigned char x52[] = { + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x53[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x54[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + + +static unsigned char x55[] = { + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, +}; + +static struct GroupInfo info[63] = { + /* 1 100000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 2 010000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 3 110000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 4 001000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 5 101000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 6 011000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 7 111000 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 8 000100 */ + {{175, 173, 252, 31}, 0, 0, 0}, + /* 9 100100 */ + {{0, 0, 0, 0}, x9, 91, 14}, + /* 10 010100 */ + {{0, 0, 0, 0}, x10, 91, 14}, + /* 11 110100 */ + {{0, 0, 0, 0}, x11, 364, 91}, + /* 12 001100 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 13 101100 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 14 011100 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 15 111100 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 16 000010 */ + {{397, 1127, 4788, 24}, 0, 0, 0}, + /* 17 100010 */ + {{0, 0, 0, 0}, x17, 91, 14}, + /* 18 010010 */ + {{0, 0, 0, 0}, x18, 91, 14}, + /* 19 110010 */ + {{0, 0, 0, 0}, x19, 364, 91}, + /* 20 001010 */ + {{0, 0, 0, 0}, x20, 91, 14}, + /* 21 101010 */ + {{0, 0, 0, 0}, x21, 364, 91}, + /* 22 011010 */ + {{0, 0, 0, 0}, x22, 364, 91}, + /* 23 111010 */ + {{0, 0, 0, 0}, x23, 1001, 364}, + /* 24 000110 */ + {{107, 35, 36, 33}, 0, 0, 0}, + /* 25 100110 */ + {{0, 0, 0, 0}, x25, 364, 91}, + /* 26 010110 */ + {{0, 0, 0, 0}, x26, 364, 91}, + /* 27 110110 */ + {{0, 0, 0, 0}, x27, 1001, 364}, + /* 28 001110 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 29 101110 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 30 011110 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 31 111110 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 32 000001 */ + {{583, 3203, 15588, 17}, 0, 0, 0}, + /* 33 100001 */ + {{0, 0, 0, 0}, x33, 91, 14}, + /* 34 010001 */ + {{0, 0, 0, 0}, x34, 91, 14}, + /* 35 110001 */ + {{0, 0, 0, 0}, x35, 364, 91}, + /* 36 001001 */ + {{0, 0, 0, 0}, x36, 91, 14}, + /* 37 101001 */ + {{0, 0, 0, 0}, x37, 364, 91}, + /* 38 011001 */ + {{0, 0, 0, 0}, x38, 364, 91}, + /* 39 111001 */ + {{0, 0, 0, 0}, x39, 1001, 364}, + /* 40 000101 */ + {{0, 0, 0, 0}, x40, 91, 14}, + /* 41 100101 */ + {{0, 0, 0, 0}, x41, 364, 91}, + /* 42 010101 */ + {{0, 0, 0, 0}, x42, 364, 91}, + /* 43 110101 */ + {{0, 0, 0, 0}, x43, 1001, 364}, + /* 44 001101 */ + {{0, 0, 0, 0}, x44, 364, 91}, + /* 45 101101 */ + {{0, 0, 0, 0}, x45, 1001, 364}, + /* 46 011101 */ + {{0, 0, 0, 0}, x46, 1001, 364}, + /* 47 111101 */ + {{0, 0, 0, 0}, x47, 2002, 1001}, + /* 48 000011 */ + {{0, 0, 0, 0}, x48, 91, 14}, + /* 49 100011 */ + {{0, 0, 0, 0}, x49, 364, 91}, + /* 50 010011 */ + {{0, 0, 0, 0}, x50, 364, 91}, + /* 51 110011 */ + {{0, 0, 0, 0}, x51, 1001, 364}, + /* 52 001011 */ + {{0, 0, 0, 0}, x52, 364, 91}, + /* 53 101011 */ + {{0, 0, 0, 0}, x53, 1001, 364}, + /* 54 011011 */ + {{0, 0, 0, 0}, x54, 1001, 364}, + /* 55 111011 */ + {{0, 0, 0, 0}, x55, 2002, 1001}, + /* 56 000111 */ + {{72, 0, 0, 34}, 0, 0, 0}, + /* 57 100111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 58 010111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 59 110111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 60 001111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 61 101111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 62 011111 */ + {{0, 0, 0, 36}, 0, 0, 0}, + /* 63 111111 */ + {{0, 0, 0, 36}, 0, 0, 0}, +}; + +#include +#include "positionid.h" + +extern struct GammonProbs * +getBearoffGammonProbs(const unsigned int board[6]) +{ + int group = 0; + int i; + struct GroupInfo *in; + + for (i = 5; i >= 0; --i) { + if (board[i] > 0) + group += (0x1 << i); + } + + g_assert(group > 0); +// cppcheck-suppress negativeIndex + in = &info[group - 1]; + if (!in->info) { + return &in->gDefault; + } + + { + unsigned int grpSize = 0; + unsigned int b1[6] = { 0 }; + unsigned int k; + unsigned short index; + + for (k = 0; k < 6; ++k) { + if ((group & (0x1 << k))) { + g_assert(board[k] > 0); + b1[grpSize] = board[k] - 1; + grpSize++; + } + } + + index = PositionIndex(grpSize, b1); + + g_assert(index >= in->base && index - in->base < in->size); + g_assert(in->info[index - in->base] < sizeof(all) / sizeof(all[0])); + + return &all[in->info[index - in->base]]; + } +} + +/* race BG part */ + +static long ya1[6][RBG_NPROBS] = { + {36, 0, 0, 0, 0,}, + {36, 0, 0, 0, 0,}, + {6, 1080, 0, 0, 0,}, + {6, 1080, 0, 0, 0,}, + {0, 396, 32400, 0, 0,}, + {0, 396, 32400, 0, 0,}, +}; + +static long ya2[6][RBG_NPROBS] = { + {36, 0, 0, 0, 0,}, + {26, 360, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {5, 596, 18720, 0, 0,}, + {0, 335, 33596, 36000, 0,}, + {0, 235, 17666, 739080, 0,}, +}; + +static long ya3[15][RBG_NPROBS] = { + {36, 0, 0, 0, 0,}, + {6, 1080, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {5, 1016, 3600, 0, 0,}, + {0, 396, 32400, 0, 0,}, + {0, 396, 32400, 0, 0,}, + {0, 376, 33120, 0, 0,}, + {0, 335, 34596, 0, 0,}, + {0, 396, 32400, 0, 0,}, + {0, 376, 33120, 0, 0,}, + {0, 335, 34596, 0, 0,}, + {0, 335, 33596, 36000, 0,}, + {0, 335, 27296, 262800, 0,}, +}; + +static long ya4[6][RBG_NPROBS] = { + {36, 0, 0, 0, 0,}, + {17, 684, 0, 0, 0,}, + {4, 999, 5508, 0, 0,}, + {4, 297, 30082, 25128, 0,}, + {0, 272, 24281, 450484, 90144,}, + {0, 120, 11765, 983521, 4213260,}, +}; + +static long ya5[15][RBG_NPROBS] = { + {34, 72, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {4, 1148, 144, 0, 0,}, + {4, 1148, 144, 0, 0,}, + {4, 1080, 2592, 0, 0,}, + {4, 739, 14860, 288, 0,}, + {0, 396, 32400, 0, 0,}, + {0, 371, 33292, 288, 0,}, + {0, 298, 35716, 7632, 0,}, + {0, 272, 34033, 101900, 576,}, + {0, 388, 32680, 288, 0,}, + {0, 322, 34856, 7488, 0,}, + {0, 272, 34794, 74504, 576,}, + {0, 272, 27197, 346480, 55152,}, + {0, 256, 15488, 772640, 634752,}, +}; + +static long ya6[15][RBG_NPROBS] = { + {25, 396, 0, 0, 0,}, + {5, 1112, 144, 0, 0,}, + {4, 1112, 1440, 0, 0,}, + {4, 631, 18756, 0, 0,}, + {4, 615, 19324, 288, 0,}, + {4, 523, 22528, 4176, 0,}, + {0, 333, 33656, 36432, 0,}, + {0, 322, 33854, 43560, 0,}, + {0, 297, 33393, 92540, 576,}, + {0, 272, 30181, 240284, 10944,}, + {0, 233, 17737, 739100, 576,}, + {0, 217, 18281, 739964, 10944,}, + {0, 192, 18895, 747036, 127008,}, + {0, 192, 17551, 782404, 595584,}, + {0, 184, 14192, 886751, 1565604,}, +}; + +static long ya7[20][RBG_NPROBS] = { + {5, 1116, 0, 0, 0,}, + {4, 1148, 144, 0, 0,}, + {4, 1048, 3744, 0, 0,}, + {4, 999, 5508, 0, 0,}, + {0, 392, 32544, 0, 0,}, + {0, 375, 33156, 0, 0,}, + {0, 355, 33868, 288, 0,}, + {0, 335, 34588, 288, 0,}, + {0, 331, 34624, 4176, 0,}, + {0, 297, 35266, 25128, 0,}, + {0, 371, 33292, 288, 0,}, + {0, 331, 34732, 288, 0,}, + {0, 298, 35716, 7632, 0,}, + {0, 331, 33728, 36432, 0,}, + {0, 297, 34754, 43560, 0,}, + {0, 272, 34033, 101900, 576,}, + {0, 330, 27470, 263016, 0,}, + {0, 297, 28537, 267356, 576,}, + {0, 272, 28421, 303644, 10944,}, + {0, 272, 24281, 450484, 90144,}, +}; + +static long ya8[6][RBG_NPROBS] = { + {34, 72, 0, 0, 0,}, + {11, 880, 720, 0, 0,}, + {3, 751, 15482, 9000, 0,}, + {3, 163, 30547, 225808, 104400,}, + {0, 195, 14249, 822591, 3288276,}, + {0, 57, 8951, 767859, 18563364,}, +}; + +static long ya9[15][RBG_NPROBS] = { + {29, 252, 0, 0, 0,}, + {5, 1116, 0, 0, 0,}, + {3, 1115, 2628, 0, 0,}, + {3, 1146, 1512, 0, 0,}, + {3, 899, 10284, 4320, 0,}, + {3, 452, 25549, 34076, 576,}, + {0, 392, 32544, 0, 0,}, + {0, 333, 34408, 9360, 0,}, + {0, 236, 35179, 106580, 26496,}, + {0, 207, 27064, 426011, 397044,}, + {0, 357, 33552, 9072, 0,}, + {0, 249, 35142, 91080, 25920,}, + {0, 207, 28985, 359990, 284184,}, + {0, 207, 16674, 753203, 2083572,}, + {0, 165, 8770, 941530, 7506936,}, +}; + +static long ya10[15][RBG_NPROBS] = { + {23, 468, 0, 0, 0,}, + {5, 1086, 1080, 0, 0,}, + {3, 1043, 5212, 288, 0,}, + {3, 659, 19036, 288, 0,}, + {3, 583, 21510, 9720, 0,}, + {3, 368, 27767, 62980, 4608,}, + {0, 325, 33734, 43992, 0,}, + {0, 289, 33359, 103644, 18144,}, + {0, 235, 30691, 266808, 121392,}, + {0, 207, 23831, 532351, 758772,}, + {0, 223, 18071, 739532, 18720,}, + {0, 175, 19349, 750336, 212976,}, + {0, 147, 18301, 802935, 983988,}, + {0, 147, 13709, 895395, 3606660,}, + {0, 129, 9184, 920983, 9389700,}, +}; + +static long ya11[20][RBG_NPROBS] = { + {5, 1112, 144, 0, 0,}, + {3, 1144, 1584, 0, 0,}, + {3, 1055, 4788, 0, 0,}, + {3, 857, 11792, 4464, 0,}, + {0, 385, 32796, 0, 0,}, + {0, 371, 33292, 288, 0,}, + {0, 321, 34738, 13032, 0,}, + {0, 335, 34472, 4464, 0,}, + {0, 308, 34657, 32780, 576,}, + {0, 235, 34181, 143452, 39168,}, + {0, 345, 33984, 9072, 0,}, + {0, 309, 35268, 9504, 0,}, + {0, 236, 35555, 93060, 25920,}, + {0, 309, 34282, 45000, 0,}, + {0, 235, 34783, 122124, 26784,}, + {0, 207, 28547, 375536, 292176,}, + {0, 307, 28169, 267628, 1152,}, + {0, 235, 29373, 316128, 54000,}, + {0, 207, 25276, 488623, 460260,}, + {0, 207, 15791, 778381, 2321532,}, +}; + +static long ya12[15][RBG_NPROBS] = { + {17, 680, 144, 0, 0,}, + {4, 983, 6076, 288, 0,}, + {3, 923, 9488, 1872, 0,}, + {3, 333, 29949, 29900, 576,}, + {3, 331, 29167, 60532, 4608,}, + {3, 283, 29081, 125244, 25920,}, + {0, 263, 24605, 449718, 117720,}, + {0, 245, 24912, 457129, 292860,}, + {0, 222, 23475, 526367, 735732,}, + {0, 207, 19394, 669443, 1573812,}, + {0, 120, 11720, 984849, 4223772,}, + {0, 108, 11969, 985331, 4443588,}, + {0, 93, 12122, 963477, 5731884,}, + {0, 93, 11334, 906514, 8803800,}, + {0, 93, 9540, 858470, 12858408,}, +}; + +static long ya13[20][RBG_NPROBS] = { + {4, 1132, 720, 0, 0,}, + {3, 1091, 3484, 288, 0,}, + {3, 775, 14808, 2160, 0,}, + {3, 715, 16754, 9864, 0,}, + {0, 367, 33436, 288, 0,}, + {0, 296, 35680, 11504, 576,}, + {0, 284, 35649, 28172, 576,}, + {0, 268, 34079, 105284, 5760,}, + {0, 252, 33761, 136812, 29376,}, + {0, 222, 32167, 230992, 104400,}, + {0, 309, 35114, 15032, 576,}, + {0, 259, 35139, 78796, 5472,}, + {0, 223, 34893, 133328, 40752,}, + {0, 258, 27701, 345954, 74088,}, + {0, 222, 28523, 359568, 198288,}, + {0, 207, 25658, 472035, 562356,}, + {0, 246, 15840, 772067, 665748,}, + {0, 210, 17074, 766333, 952524,}, + {0, 195, 16968, 761467, 1964916,}, + {0, 195, 13487, 839379, 3671460,}, +}; + +static long ya14[20][RBG_NPROBS] = { + {4, 1089, 2268, 0, 0,}, + {3, 647, 19404, 2592, 0,}, + {3, 559, 22396, 8928, 0,}, + {3, 527, 23025, 27740, 576,}, + {0, 313, 34013, 49484, 576,}, + {0, 293, 33443, 95796, 5184,}, + {0, 277, 32921, 134556, 32832,}, + {0, 267, 30329, 241000, 26640,}, + {0, 252, 30183, 263560, 103536,}, + {0, 222, 28408, 360893, 299628,}, + {0, 211, 18473, 740252, 31680,}, + {0, 186, 19069, 747694, 157752,}, + {0, 162, 19534, 758017, 303228,}, + {0, 185, 17752, 783317, 628812,}, + {0, 162, 18254, 788219, 874836,}, + {0, 147, 17470, 814155, 1657044,}, + {0, 180, 14314, 886931, 1587636,}, + {0, 155, 15088, 882887, 1896516,}, + {0, 141, 14977, 868919, 3196404,}, + {0, 141, 12630, 886913, 5590332,}, +}; + +static long ya15[15][RBG_NPROBS] = { + {3, 1019, 6076, 288, 0,}, + {0, 355, 33824, 1872, 0,}, + {0, 331, 34492, 8928, 0,}, + {0, 297, 35133, 29900, 576,}, + {0, 284, 34771, 59668, 4608,}, + {0, 285, 35948, 16112, 576,}, + {0, 284, 35025, 50636, 576,}, + {0, 259, 34403, 105284, 5760,}, + {0, 222, 34305, 155740, 42624,}, + {0, 283, 28939, 270876, 6048,}, + {0, 258, 28885, 304624, 27504,}, + {0, 222, 29275, 334920, 111024,}, + {0, 258, 24785, 449718, 117720,}, + {0, 221, 25756, 457849, 292860,}, + {0, 207, 23447, 546031, 763956,}, +}; + +static long ya16[6][RBG_NPROBS] = { + {31, 180, 0, 0, 0,}, + {6, 975, 3772, 288, 0,}, + {2, 466, 25089, 78660, 18144,}, + {2, 84, 23554, 584297, 1627164,}, + {0, 116, 6951, 880249, 14356620,}, + {0, 18, 6042, 425561, 36475740,}, +}; + +static long ya17[15][RBG_NPROBS] = { + {23, 468, 0, 0, 0,}, + {4, 1148, 144, 0, 0,}, + {2, 995, 8200, 1584, 0,}, + {2, 1066, 5688, 0, 0,}, + {2, 603, 22062, 10568, 576,}, + {2, 205, 32081, 163840, 67248,}, + {0, 383, 32860, 288, 0,}, + {0, 254, 35419, 75284, 2304,}, + {0, 154, 29734, 402111, 269892,}, + {0, 140, 15913, 828583, 3482100,}, + {0, 296, 34104, 68256, 0,}, + {0, 164, 30562, 363296, 127584,}, + {0, 136, 17946, 801264, 2017440,}, + {0, 120, 7889, 1002899, 8538948,}, + {0, 70, 5652, 775017, 21974652,}, +}; + +static long ya18[15][RBG_NPROBS] = { + {19, 608, 144, 0, 0,}, + {4, 1065, 3132, 0, 0,}, + {2, 884, 12012, 8208, 0,}, + {2, 655, 20336, 5328, 0,}, + {2, 444, 26523, 55852, 7200,}, + {2, 189, 30326, 243663, 214596,}, + {0, 304, 33253, 88380, 5184,}, + {0, 224, 30938, 271784, 135360,}, + {0, 153, 24544, 564925, 1181484,}, + {0, 140, 14007, 849405, 5202684,}, + {0, 193, 18775, 748820, 171648,}, + {0, 117, 18938, 811339, 1255572,}, + {0, 100, 13699, 913601, 5157036,}, + {0, 92, 7775, 917424, 13070160,}, + {0, 62, 5739, 706619, 24697476,}, +}; + +static long ya19[20][RBG_NPROBS] = { + {4, 1130, 792, 0, 0,}, + {2, 1063, 5796, 0, 0,}, + {2, 991, 8364, 864, 0,}, + {2, 587, 22351, 20884, 1152,}, + {0, 371, 33292, 288, 0,}, + {0, 357, 33712, 3312, 0,}, + {0, 246, 35383, 86828, 6624,}, + {0, 327, 34262, 22392, 0,}, + {0, 237, 34453, 131064, 39312,}, + {0, 152, 28396, 445719, 527364,}, + {0, 288, 34388, 68400, 0,}, + {0, 260, 35352, 69984, 0,}, + {0, 158, 30668, 367220, 128880,}, + {0, 259, 34481, 102492, 5184,}, + {0, 157, 30147, 385270, 200952,}, + {0, 140, 17532, 803268, 2295216,}, + {0, 257, 28879, 305844, 38016,}, + {0, 155, 26546, 508717, 517068,}, + {0, 140, 16334, 823115, 3133332,}, + {0, 124, 7589, 978016, 9636912,}, +}; + +static long ya20[15][RBG_NPROBS] = { + {14, 776, 576, 0, 0,}, + {4, 913, 8552, 1872, 0,}, + {2, 767, 15983, 16868, 576,}, + {2, 360, 29605, 53820, 5184,}, + {2, 300, 28857, 156860, 64512,}, + {2, 176, 27944, 340841, 409788,}, + {0, 243, 24528, 474225, 268380,}, + {0, 198, 22633, 576764, 1132416,}, + {0, 150, 18321, 737255, 3182580,}, + {0, 140, 12063, 859951, 7342452,}, + {0, 108, 11969, 977637, 4720572,}, + {0, 76, 12092, 946693, 7168140,}, + {0, 64, 10674, 863340, 12566448,}, + {0, 64, 7844, 761133, 19913580,}, + {0, 52, 6032, 616407, 28031940,}, +}; + +static long ya21[20][RBG_NPROBS] = { + {4, 1099, 1908, 0, 0,}, + {2, 1019, 7348, 1152, 0,}, + {2, 751, 16778, 9000, 0,}, + {2, 520, 23769, 56524, 6336,}, + {0, 342, 34202, 5112, 0,}, + {0, 292, 35133, 36292, 3744,}, + {0, 225, 34874, 131282, 45720,}, + {0, 268, 32812, 150088, 34848,}, + {0, 220, 30222, 298601, 284508,}, + {0, 150, 25691, 530366, 1079064,}, + {0, 262, 35170, 73880, 2304,}, + {0, 222, 34976, 132004, 27504,}, + {0, 154, 30031, 392356, 236160,}, + {0, 220, 28078, 378260, 195408,}, + {0, 151, 25786, 529760, 931104,}, + {0, 140, 16413, 821065, 3104748,}, + {0, 210, 16875, 771659, 1018692,}, + {0, 140, 17488, 793184, 2715264,}, + {0, 132, 12957, 858233, 6618924,}, + {0, 128, 6962, 908191, 12776580,}, +}; + +static long ya22[20][RBG_NPROBS] = { + {4, 1035, 4204, 288, 0,}, + {2, 642, 20738, 7704, 0,}, + {2, 555, 23523, 20180, 576,}, + {2, 410, 27049, 80676, 18144,}, + {0, 290, 33665, 91628, 7488,}, + {0, 275, 33057, 132372, 28512,}, + {0, 212, 30778, 291535, 191556,}, + {0, 253, 29938, 271332, 94608,}, + {0, 208, 27684, 401077, 444492,}, + {0, 151, 23054, 608233, 1646748,}, + {0, 184, 19038, 750756, 181008,}, + {0, 164, 19390, 761061, 286956,}, + {0, 113, 18750, 820147, 1368756,}, + {0, 164, 17961, 797571, 824580,}, + {0, 111, 17708, 838828, 2139984,}, + {0, 100, 13209, 915715, 5715972,}, + {0, 158, 14796, 886873, 1991484,}, + {0, 106, 15120, 886295, 4018500,}, + {0, 96, 12026, 896601, 8123868,}, + {0, 92, 7533, 877093, 14835708,}, +}; + +static long ya23[15][RBG_NPROBS] = { + {2, 963, 9344, 1872, 0,}, + {0, 331, 34550, 6840, 0,}, + {0, 311, 34757, 25292, 576,}, + {0, 292, 34669, 52956, 5184,}, + {0, 225, 34049, 160400, 66672,}, + {0, 242, 35841, 75644, 2304,}, + {0, 242, 34959, 107252, 7488,}, + {0, 222, 34300, 156216, 31968,}, + {0, 153, 29610, 407273, 291420,}, + {0, 240, 29401, 308924, 43776,}, + {0, 220, 29234, 339556, 90576,}, + {0, 151, 26258, 521963, 600084,}, + {0, 220, 25312, 475809, 268380,}, + {0, 149, 23843, 596484, 1140480,}, + {0, 140, 15529, 836357, 3699900,}, +}; + +static long ya24[15][RBG_NPROBS] = { + {10, 887, 1764, 0, 0,}, + {3, 719, 16407, 17156, 576,}, + {2, 641, 19951, 37220, 4032,}, + {2, 194, 30182, 243319, 180324,}, + {2, 185, 28264, 318235, 388980,}, + {2, 143, 26206, 434497, 830268,}, + {0, 183, 14564, 820763, 3505716,}, + {0, 160, 14565, 819849, 4610412,}, + {0, 136, 13405, 831119, 6827796,}, + {0, 132, 10367, 861740, 9849312,}, + {0, 55, 8811, 772043, 18687492,}, + {0, 47, 8633, 762062, 19650744,}, + {0, 40, 8204, 717461, 22138956,}, + {0, 40, 7232, 643295, 26068644,}, + {0, 36, 6082, 562587, 30651156,}, +}; + +static long ya25[20][RBG_NPROBS] = { + {3, 1079, 3916, 288, 0,}, + {2, 887, 11834, 10728, 0,}, + {2, 476, 25507, 51044, 4032,}, + {2, 402, 27073, 90180, 18144,}, + {0, 318, 34810, 14312, 576,}, + {0, 232, 34908, 121056, 43200,}, + {0, 200, 34336, 181552, 99648,}, + {0, 200, 26978, 434919, 514404,}, + {0, 176, 26107, 485813, 930780,}, + {0, 147, 23378, 600873, 1678428,}, + {0, 221, 35079, 128568, 64368,}, + {0, 182, 29423, 372592, 429264,}, + {0, 148, 27194, 487861, 754668,}, + {0, 176, 17571, 762085, 2047644,}, + {0, 139, 17798, 786039, 2617380,}, + {0, 132, 14067, 884661, 4228956,}, + {0, 152, 9103, 939942, 7739064,}, + {0, 113, 10135, 926300, 8712288,}, + {0, 100, 9481, 906351, 10884564,}, + {0, 100, 6941, 887101, 14869404,}, +}; + +static long ya26[20][RBG_NPROBS] = { + {3, 985, 7264, 1584, 0,}, + {2, 595, 21997, 23276, 576,}, + {2, 395, 27547, 82204, 17568,}, + {2, 340, 27770, 144132, 65232,}, + {0, 269, 33277, 131568, 52272,}, + {0, 226, 30426, 285363, 216756,}, + {0, 195, 28399, 389959, 524628,}, + {0, 196, 23900, 538799, 950436,}, + {0, 173, 22617, 594924, 1665792,}, + {0, 146, 19382, 710497, 2957436,}, + {0, 159, 19533, 759847, 378612,}, + {0, 133, 18457, 807913, 1255788,}, + {0, 107, 17761, 834132, 2426976,}, + {0, 133, 14018, 894693, 3884652,}, + {0, 105, 14160, 885933, 5322348,}, + {0, 100, 11603, 903632, 8232336,}, + {0, 120, 9386, 919460, 9602640,}, + {0, 92, 9959, 897073, 10972332,}, + {0, 88, 9081, 845101, 14167836,}, + {0, 88, 6944, 797786, 18640728,}, +}; + +static long ya27[15][RBG_NPROBS] = { + {2, 850, 13146, 11448, 0,}, + {0, 310, 34855, 23044, 1152,}, + {0, 296, 34455, 55420, 7200,}, + {0, 232, 33661, 164996, 77472,}, + {0, 200, 32377, 248703, 221076,}, + {0, 209, 35429, 131512, 64656,}, + {0, 208, 34703, 158780, 70560,}, + {0, 182, 29012, 387017, 442620,}, + {0, 147, 26918, 497879, 798372,}, + {0, 207, 29618, 341130, 142776,}, + {0, 181, 25868, 495979, 641268,}, + {0, 146, 24254, 583029, 1232172,}, + {0, 180, 16617, 776622, 2574072,}, + {0, 142, 16946, 792561, 3346812,}, + {0, 136, 13415, 872781, 5315004,}, +}; + +static long ya28[20][RBG_NPROBS] = { + {3, 876, 11070, 5832, 0,}, + {2, 355, 29081, 78820, 17568,}, + {2, 312, 28766, 144712, 59904,}, + {2, 268, 28254, 217343, 161604,}, + {0, 227, 24896, 477159, 432324,}, + {0, 209, 23554, 535275, 919188,}, + {0, 185, 22006, 601857, 1648188,}, + {0, 194, 19630, 671532, 1799280,}, + {0, 172, 18904, 699721, 2751804,}, + {0, 145, 16482, 774441, 4460508,}, + {0, 100, 12078, 980097, 4863996,}, + {0, 87, 12104, 965251, 5971284,}, + {0, 71, 11891, 942537, 7811532,}, + {0, 87, 11301, 910749, 8974044,}, + {0, 70, 11128, 900933, 10344780,}, + {0, 64, 10008, 845763, 14062356,}, + {0, 87, 9602, 858987, 13039380,}, + {0, 70, 9669, 843115, 14317092,}, + {0, 64, 8948, 788345, 17503164,}, + {0, 64, 7347, 721049, 22000716,}, +}; + +static long ya29[15][RBG_NPROBS] = { + {2, 711, 17893, 20684, 576,}, + {0, 277, 35301, 49644, 5184,}, + {0, 250, 32889, 169600, 72432,}, + {0, 216, 31766, 251079, 180900,}, + {0, 191, 29823, 346777, 420300,}, + {0, 196, 34817, 169610, 92808,}, + {0, 195, 28619, 387703, 320724,}, + {0, 180, 26178, 483327, 741636,}, + {0, 147, 24325, 575456, 1366128,}, + {0, 185, 17665, 769685, 1232316,}, + {0, 172, 17499, 767034, 2149416,}, + {0, 137, 17091, 792659, 3388644,}, + {0, 172, 14184, 836845, 3932460,}, + {0, 137, 14526, 834307, 5213556,}, + {0, 132, 11813, 863857, 7899084,}, +}; + +static long ya30[15][RBG_NPROBS] = { + {2, 537, 23595, 40820, 4032,}, + {0, 260, 32786, 160172, 78768,}, + {0, 239, 29984, 285233, 187740,}, + {0, 215, 28156, 375495, 427140,}, + {0, 191, 26442, 456345, 857628,}, + {0, 147, 19675, 767435, 481284,}, + {0, 147, 18377, 798257, 1053900,}, + {0, 133, 17615, 821824, 1846224,}, + {0, 106, 17096, 842747, 3025332,}, + {0, 141, 15264, 885864, 2214432,}, + {0, 128, 15090, 876847, 3371076,}, + {0, 101, 14852, 877549, 4913964,}, + {0, 128, 12865, 889903, 5784660,}, + {0, 100, 13053, 881311, 7156692,}, + {0, 96, 11075, 873594, 10184616,}, +}; + +static long ya31[6][RBG_NPROBS] = { + {0, 278, 34449, 78676, 17568,}, + {0, 196, 34220, 190904, 99936,}, + {0, 195, 29493, 359469, 204444,}, + {0, 195, 25955, 480507, 432324,}, + {0, 180, 24042, 554123, 961236,}, + {0, 146, 22638, 628265, 1698012,}, +}; + +typedef long T[RBG_NPROBS]; + +static T *y[] = { + ya1, ya2, ya3, ya4, ya5, ya6, ya7, ya8, ya9, ya10, ya11, ya12, ya13, ya14, ya15, ya16, + ya17, ya18, ya19, ya20, ya21, ya22, ya23, ya24, ya25, ya26, ya27, ya28, ya29, ya30, ya31 +}; + +extern long * +getRaceBGprobs(const unsigned int board[6]) +{ + unsigned int tot = 0; + int i; + unsigned int group = 0; + g_assert(board[5] == 0); + + for (i = 4; i >= 0; --i) { + if (board[i]) + group += (0x1u << i); + tot += board[i]; + } + + g_assert(group < 32); + + if (tot > 6) + return 0; + + { + unsigned int grpSize = 0; + unsigned int b1[6] = { 0 }; + unsigned int k; + + for (k = 0; k < 5; ++k) { + if ((group & (0x1u << k))) { + g_assert(board[k] > 0); + b1[grpSize] = board[k] - 1; + ++grpSize; + } + } + + return y[group - 1][PositionIndex(grpSize, b1)]; + } +} diff --git a/engine/gnubg/bearoffgammon.h b/engine/gnubg/bearoffgammon.h new file mode 100644 index 0000000..389be9b --- /dev/null +++ b/engine/gnubg/bearoffgammon.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2000-2002 Joseph Heled + * Copyright (C) 2006-2008 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: bearoffgammon.h,v 1.12 2018/06/16 14:54:30 plm Exp $ + */ + +#if !defined( BEAROFFGAMMON_H ) +#define BEAROFFGAMMON_H + +/* pack for space */ +struct GammonProbs { + unsigned int p1:16; /* 0 - 36^2 */ + unsigned int p2:16; /* 0 - 36^3 */ + unsigned int p3:24; /* 0 - 36^4 */ + unsigned int p0:8; /* 0 - 36 */ +}; + +extern struct GammonProbs *getBearoffGammonProbs(const unsigned int board[6]); + +extern long *getRaceBGprobs(const unsigned int board[6]); + +#define RBG_NPROBS 5 + +#endif diff --git a/engine/gnubg/common.h b/engine/gnubg/common.h new file mode 100644 index 0000000..f35cf22 --- /dev/null +++ b/engine/gnubg/common.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2006-2009 Jon Kinsey + * Copyright (C) 2006-2017 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/*! \file common.h + * \brief Odd definitions + */ + +#ifndef COMMON_H +#define COMMON_H +#include +#include "config.h" + + +#ifndef HAVE___ATTRIBUTE__ +#define __attribute__(Spec) /* Empty */ +#endif /* HAVE___ATTRIBUTE__ */ + +#define F_PI (float)G_PI +#define F_PI_2 (float)G_PI_2 + +/*! \brief Safe error value + */ +#define ERR_VAL (-FLT_MAX) + +/*! \brief Macro to extract sign + */ +#ifndef SGN +#define SGN(x) ((x) > 0 ? 1 : -1) +#endif + +/*! \brief typedef of signal handler function + */ +#if HAVE_SIGACTION +typedef struct sigaction psighandler; +#elif HAVE_SIGVEC +typedef struct sigvec psighandler; +#else +typedef void (*psighandler) (int); +#endif + +/* abs returns unsigned int by definition */ +#define Abs(a) ((unsigned int)abs(a)) + +/* Do we need to use g_utf8_casefold() for utf8 anywhere? */ +#define StrCaseCmp(s1, s2) g_ascii_strcasecmp(s1, s2) +#define StrNCaseCmp(s1, s2, n) g_ascii_strncasecmp(s1, s2, (gsize)n) +/* if the following are defined as macros undefine them */ +#ifdef strcasecmp +#undef strcasecmp +#endif +#ifdef strncasecmp +#undef strncasecmp +#endif +/* Avoid new code using strcase functions */ +#define strcasecmp strcasecmp_error_use_StrCaseCmp +#define strncasecmp strncasecmp_error_use_StrNCaseCmp + + +/* Macro to mark parameters that aren't used in the function */ +#ifdef UNUSED +#elif defined(HAVE_FUNC_ATTRIBUTE_UNUSED) +#define UNUSED(x) UNUSED_ ## x __attribute__((unused)) +#elif defined(_lint) +#define UNUSED(x) /*lint -e{715, 818}*/ _unused_##x +#else +#define UNUSED(x) _unused_##x +#endif + +/* Helper macros for __builtin_expect */ +#ifdef HAVE___BUILTIN_EXPECT +#define likely(expression) __builtin_expect(!!(expression), 1) +#define unlikely(expression) __builtin_expect(!!(expression), 0) +#else +#define likely(expression) (expression) +#define unlikely(expression) (expression) +#endif + +#endif diff --git a/engine/gnubg/dice.h b/engine/gnubg/dice.h new file mode 100644 index 0000000..93b2832 --- /dev/null +++ b/engine/gnubg/dice.h @@ -0,0 +1,61 @@ +/* + * Copyright (C) 1999-2002 Gary Wong + * Copyright (C) 1999-2016 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DICE_H +#define DICE_H + +#include + +typedef enum { + RNG_BBS, RNG_ISAAC, RNG_MD5, RNG_MERSENNE, + RNG_MANUAL, RNG_RANDOM_DOT_ORG, RNG_FILE, + NUM_RNGS +} rng; + +typedef struct rngcontext rngcontext; + +extern const char *aszRNG[NUM_RNGS]; +extern const char *aszRNGTip[NUM_RNGS]; +extern char szDiceFilename[]; +extern rng rngCurrent; +extern rngcontext *rngctxCurrent; + +rngcontext *CopyRNGContext(rngcontext * rngctx); + +extern void free_rngctx(rngcontext * rngctx); +extern void *InitRNG(unsigned long *pnSeed, int *pfInitFrom, int fSet, rng rngx); +extern void CloseRNG(rng rngx, rngcontext * rngctx); +extern void DestroyRNG(rng rngx, rngcontext ** rngctx); +extern void PrintRNGSeed(rng rngx, rngcontext * rngctx); +extern void PrintRNGCounter(rng rngx, rngcontext * rngctx); +extern void InitRNGSeed(unsigned int n, rng rngx, rngcontext * rngctx); +extern int RNGSystemSeed(rng rngx, void *p, unsigned long *pnSeed); + +extern int RollDice(unsigned int anDice[2], rng * prng, rngcontext * rngctx); + +#if defined(HAVE_LIBGMP) +extern int InitRNGSeedLong(char *sz, rng rng, rngcontext * rngctx); +extern int InitRNGBBSModulus(const char *sz, rngcontext * rngctx); +extern int InitRNGBBSFactors(char *sz0, char *sz1, rngcontext * rngctx); +#endif + +extern FILE *OpenDiceFile(rngcontext * rngctx, const char *sz); + +extern char *GetDiceFileName(rngcontext * rngctx); + +#endif diff --git a/engine/gnubg/drawboard.c b/engine/gnubg/drawboard.c new file mode 100644 index 0000000..c5e49ea --- /dev/null +++ b/engine/gnubg/drawboard.c @@ -0,0 +1,1140 @@ +/* + * Copyright (C) 1999-2002 Gary Wong + * Copyright (C) 2000-2020 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: drawboard.c,v 1.82 2020/02/23 20:20:37 plm Exp $ + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include + +#include "backgammon.h" +#include "drawboard.h" +#include "positionid.h" +#include "matchequity.h" + +int fClockwise = FALSE; /* Player 1 moves clockwise */ + +/* + * GNU Backgammon Position ID: 0123456789ABCD + * Match ID : 0123456789ABCD + * +13-14-15-16-17-18------19-20-21-22-23-24-+ O: gnubg (Cube: 2) + * | | | O O O O O | OO 0 points + * | | | O O | OO Cube offered at 2 + * | | | O | O + * | | | | O + * | | | | O + * v| |BAR| | Cube: 1 (7 point match) + * | | | | X + * | | | | X + * | | | | X + * | | | X X X X | X Rolled 11 + * | | | X X X X X | XX 0 points + * +12-11-10--9--8--7-------6--5--4--3--2--1-+ X: Gary (Cube: 2) + * + */ + +static char * +DrawBoardStd(char *sz, const TanBoard anBoard, int fRoll, char *asz[], char *szMatchID, int nChequers) +{ + + char *pch = sz, *pchIn; + unsigned int x, y; + unsigned int cOffO = nChequers, cOffX = nChequers; + static char achX[17] = " X6789ABCDEF", achO[17] = " O6789ABCDEF"; + + for (x = 0; x < 25; x++) { + cOffO -= anBoard[0][x]; + cOffX -= anBoard[1][x]; + } + + pch += sprintf(pch, " %-15s %s: ", _("GNU Backgammon"), _("Position ID")); + + if (fRoll) + strcpy(pch, PositionID((ConstTanBoard) anBoard)); + else { + TanBoard an; + + for (x = 0; x < 25; x++) { + an[0][x] = anBoard[1][x]; + an[1][x] = anBoard[0][x]; + } + + strcpy(pch, PositionID((ConstTanBoard) an)); + } + + pch += L_POSITIONID; + *pch++ = '\n'; + + /* match id */ + + if (szMatchID && *szMatchID) { + pch += sprintf(pch, " %s : %s\n", _("Match ID"), szMatchID); + } + + strcpy(pch, fRoll ? " +13-14-15-16-17-18------19-20-21-22-23-24-+ " : + " +12-11-10--9--8--7-------6--5--4--3--2--1-+ "); + pch += 49; + + if (asz[0]) + for (pchIn = asz[0]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + + for (y = 0; y < 4; y++) { + *pch++ = ' '; + *pch++ = '|'; + + for (x = 12; x < 18; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = anBoard[0][24] > y ? 'O' : ' '; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < 24; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + + for (x = 0; x < 3; x++) + *pch++ = (cOffO > 5 * x + y) ? 'O' : ' '; + + *pch++ = ' '; + + if (y < 2 && asz[y + 1]) + for (pchIn = asz[y + 1]; *pchIn; pchIn++) + *pch++ = *pchIn; + *pch++ = '\n'; + } + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 12; x < 18; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = achO[anBoard[0][24]]; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < 24; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + + *pch++ = ' '; + + for (x = 0; x < 3; x++) + *pch++ = (cOffO > 5 * x + 4) ? 'O' : ' '; + + *pch++ = '\n'; + + *pch++ = fRoll ? 'v' : '^'; + strcpy(pch, "| |BAR| | "); + pch = strchr(pch, 0); + + if (asz[3]) + for (pchIn = asz[3]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 11; x > 5; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = achX[anBoard[1][24]]; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < UINT_MAX; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + + *pch++ = ' '; + + for (x = 0; x < 3; x++) + *pch++ = (cOffX > 5 * x + 4) ? 'X' : ' '; + + *pch++ = '\n'; + + for (y = 3; y < UINT_MAX; y--) { + *pch++ = ' '; + *pch++ = '|'; + + for (x = 11; x > 5; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = anBoard[1][24] > y ? 'X' : ' '; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < UINT_MAX; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + + for (x = 0; x < 3; x++) + *pch++ = (cOffX > 5 * x + y) ? 'X' : ' '; + + *pch++ = ' '; + + if (y < 2 && asz[5 - y]) + for (pchIn = asz[5 - y]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + } + + strcpy(pch, fRoll ? " +12-11-10--9--8--7-------6--5--4--3--2--1-+ " : + " +13-14-15-16-17-18------19-20-21-22-23-24-+ "); + pch += 49; + + if (asz[6]) + for (pchIn = asz[6]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + *pch = 0; + + return sz; +} + + +/* + * GNU Backgammon Position ID: 0123456789ABCD + * Match ID : 0123456789ABCD + * +24-23-22-21-20-19------18-17-16-15-14-13-+ O: gnubg (Cube: 2) + * OO | O O O O O | | | 0 points + * OO | O O | | | Cube offered at 2 + * O | O | | | + * O | | | | + * O | | | | + * | |BAR| |v Cube: 1 (7 point match) + * X | | | | + * X | | | | + * X | | | | + * X | X X X X | | | Rolled 11 + * XX | X X X X X | | | 0 points + * +-1--2--3--4--5--6-------7--8--9-10-11-12-+ X: Gary (Cube: 2) + * + */ + +static char * +DrawBoardCls(char *sz, const TanBoard anBoard, int fRoll, char *asz[], char *szMatchID, int nChequers) +{ + + char *pch = sz, *pchIn; + unsigned int x, y, cOffO = nChequers, cOffX = nChequers; + static char achX[17] = " X6789ABCDEF", achO[17] = " O6789ABCDEF"; + + for (x = 0; x < 25; x++) { + cOffO -= anBoard[0][x]; + cOffX -= anBoard[1][x]; + } + + pch += sprintf(pch, "%18s %s: ", _("GNU Backgammon"), _("Position ID")); + + if (fRoll) + strcpy(pch, PositionID((ConstTanBoard) anBoard)); + else { + TanBoard an; + + for (x = 0; x < 25; x++) { + an[0][x] = anBoard[1][x]; + an[1][x] = anBoard[0][x]; + } + + strcpy(pch, PositionID((ConstTanBoard) an)); + } + + pch += L_POSITIONID; + *pch++ = '\n'; + + /* match id */ + + if (szMatchID && *szMatchID) { + pch += sprintf(pch, " %s : %s\n", _("Match ID"), szMatchID); + } + + strcpy(pch, fRoll ? " +24-23-22-21-20-19------18-17-16-15-14-13-+ " : + " +-1--2--3--4--5--6-------7--8--9-10-11-12-+ "); + pch += 49; + + if (asz[0]) + for (pchIn = asz[0]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + + for (y = 0; y < 4; y++) { + + for (x = 2; x < UINT_MAX; x--) + *pch++ = (cOffO > 5 * x + y) ? 'O' : ' '; + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 23; x > 17; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = anBoard[0][24] > y ? 'O' : ' '; + *pch++ = ' '; + *pch++ = '|'; + + for (; x > 11; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = ' '; + if (y < 2 && asz[y + 1]) + for (pchIn = asz[y + 1]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + } + + for (x = 2; x < UINT_MAX; x--) + *pch++ = (cOffO > 5 * x + 4) ? 'O' : ' '; + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 23; x > 17; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = achO[anBoard[0][24]]; + *pch++ = ' '; + *pch++ = '|'; + + for (; x > 11; x--) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + + *pch++ = ' '; + *pch++ = ' '; + + *pch++ = '\n'; + + strcpy(pch, " | |BAR| |"); + pch = strchr(pch, 0); + *pch++ = fRoll ? 'v' : '^'; + *pch++ = ' '; + + if (asz[3]) + for (pchIn = asz[3]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + + for (x = 2; x < UINT_MAX; x--) + *pch++ = (cOffX > 5 * x + 4) ? 'X' : ' '; + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 0; x < 6; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = achX[anBoard[1][24]]; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < 12; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] ? achX[anBoard[1][x]] : achO[anBoard[0][23 - x]]; + *pch++ = ' '; + } + + *pch++ = '|'; + + *pch++ = ' '; + *pch++ = ' '; + + *pch++ = '\n'; + + for (y = 3; y < UINT_MAX; y--) { + + for (x = 2; x < UINT_MAX; x--) + *pch++ = (cOffX > 5 * x + y) ? 'X' : ' '; + + *pch++ = ' '; + *pch++ = '|'; + + for (x = 0; x < 6; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = anBoard[1][24] > y ? 'X' : ' '; + *pch++ = ' '; + *pch++ = '|'; + + for (; x < 12; x++) { + *pch++ = ' '; + *pch++ = anBoard[1][x] > y ? 'X' : anBoard[0][23 - x] > y ? 'O' : ' '; + *pch++ = ' '; + } + + *pch++ = '|'; + *pch++ = ' '; + *pch++ = ' '; + if (y < 2 && asz[5 - y]) + for (pchIn = asz[5 - y]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + } + + strcpy(pch, fRoll ? " +-1--2--3--4--5--6-------7--8--9-10-11-12-+ " : + " +24-23-22-21-20-19------18-17-16-15-14-13-+ "); + pch += 49; + + if (asz[6]) + for (pchIn = asz[6]; *pchIn; pchIn++) + *pch++ = *pchIn; + + *pch++ = '\n'; + *pch = 0; + + return sz; +} + +extern char * +DrawBoard(char *sz, const TanBoard anBoard, int fRoll, char *asz[], char *szMatchID, int nChequers) +{ + if (fClockwise == FALSE) + return (DrawBoardStd(sz, anBoard, fRoll, asz, szMatchID, nChequers)); + + return (DrawBoardCls(sz, anBoard, fRoll, asz, szMatchID, nChequers)); +} + +static char * +FormatPoint(char *pch, int n) +{ + + g_assert(n >= 0); + + /*don't translate 'off' and 'bar' as these may be used in UserCommand at a later + * point */ + if (!n) { + strcpy(pch, ("off")); + return pch + strlen(("off")); + } else if (n == 25) { + strcpy(pch, ("bar")); + return pch + strlen(("bar")); + } else if (n > 9) + *pch++ = (char) ((n / 10) + '0'); + + *pch++ = (char) ((n % 10) + '0'); + + return pch; +} + +static char * +FormatPointPlain(char *pch, int n) +{ + + g_assert(n >= 0); + + if (n > 9) + *pch++ = (char) ((n / 10) + '0'); + + *pch++ = (char) ((n % 10) + '0'); + + return pch; +} + +extern char * +FormatMovePlain(char *sz, const TanBoard anBoard, const int anMove[8]) +{ + + char *pch = sz; + int i, j; + + for (i = 0; i < 8 && anMove[i] >= 0; i += 2) { + pch = FormatPointPlain(pch, anMove[i] + 1); + *pch++ = '/'; + pch = FormatPointPlain(pch, anMove[i + 1] + 1); + + if (anBoard && anMove[i + 1] >= 0 && anBoard[0][23 - anMove[i + 1]]) { + for (j = 1;; j += 2) + if (j > i) { + *pch++ = '*'; + break; + } else if (anMove[i + 1] == anMove[j]) + break; + } + + if (i < 6) + *pch++ = ' '; + } + + *pch = 0; + + return sz; +} + +static int +CompareMovesSimple(const void *p0, const void *p1) +{ + + int n0 = *((const int *) p0), n1 = *((const int *) p1); + + if (n0 != n1) + return n1 - n0; + else + return *((const int *) p1 + 1) - *((const int *) p0 + 1); +} + +extern void +CanonicalMoveOrder(int an[]) +{ + + int i; + + for (i = 0; i < 4 && an[2 * i] > -1; i++); + + qsort(an, i, sizeof(int) << 1, CompareMovesSimple); +} + +extern char * +FormatMove(char *sz, const TanBoard anBoard, const int anMove[8]) +{ + + char *pch = sz; + int aanMove[4][4], *pnSource[4], *pnDest[4], i, j; + int fl = 0; + int anCount[4], nMoves, nDuplicate, k; + + /* Re-order moves into 2-dimensional array. */ + for (i = 0; i < 4 && anMove[i << 1] >= 0; i++) { + aanMove[i][0] = anMove[i << 1] + 1; + aanMove[i][1] = anMove[(i << 1) | 1] + 1; + pnSource[i] = aanMove[i]; + pnDest[i] = aanMove[i] + 1; + } + + while (i < 4) { + aanMove[i][0] = aanMove[i][1] = -1; + pnSource[i++] = NULL; + } + + /* Order the moves in decreasing order of source point. */ + qsort(aanMove, 4, 4 * sizeof(int), CompareMovesSimple); + + /* Combine moves of a single chequer. */ + for (i = 0; i < 4; i++) + for (j = i; j < 4; j++) + if (pnSource[i] && pnSource[j] && *pnDest[i] == *pnSource[j]) { + if (anBoard[0][24 - *pnDest[i]]) + /* Hitting blot; record intermediate point. */ + *++pnDest[i] = *pnDest[j]; + else + /* Non-hit; elide intermediate point. */ + *pnDest[i] = *pnDest[j]; + + pnSource[j] = NULL; + } + + /* Compact array. */ + i = 0; + + for (j = 0; j < 4; j++) + if (pnSource[j]) { + if (j > i) { + pnSource[i] = pnSource[j]; + pnDest[i] = pnDest[j]; + } + + i++; + } + + while (i < 4) + pnSource[i++] = NULL; + + for (i = 0; i < 4; i++) + anCount[i] = pnSource[i] ? 1 : 0; + + for (i = 0; i < 3; i++) { + if (pnSource[i]) { + nMoves = (int) (pnDest[i] - pnSource[i]); + for (j = i + 1; j < 4; j++) { + if (pnSource[j]) { + nDuplicate = 1; + + if (pnDest[j] - pnSource[j] != nMoves) + nDuplicate = 0; + else + for (k = 0; k <= nMoves && nDuplicate; k++) { + if (pnSource[i][k] != pnSource[j][k]) + nDuplicate = 0; + } + if (nDuplicate) { + anCount[i]++; + pnSource[j] = NULL; + } + } + } + } + } + + /* Compact array. */ + i = 0; + + for (j = 0; j < 4; j++) + if (pnSource[j]) { + if (j > i) { + pnSource[i] = pnSource[j]; + pnDest[i] = pnDest[j]; + anCount[i] = anCount[j]; + } + + i++; + } + + if (i < 4) + pnSource[i] = NULL; + + for (i = 0; i < 4 && pnSource[i]; i++) { + if (i) + *pch++ = ' '; + + pch = FormatPoint(pch, *pnSource[i]); + + for (j = 1; pnSource[i] + j < pnDest[i]; j++) { + *pch = '/'; + pch = FormatPoint(pch + 1, pnSource[i][j]); + *pch++ = '*'; + fl |= 1 << pnSource[i][j]; + } + + *pch = '/'; + pch = FormatPoint(pch + 1, *pnDest[i]); + + if (*pnDest[i] && anBoard[0][24 - *pnDest[i]] && !(fl & (1 << *pnDest[i]))) { + *pch++ = '*'; + fl |= 1 << *pnDest[i]; + } + + if (anCount[i] > 1) { + *pch++ = '('; + *pch++ = (char) ('0' + anCount[i]); + *pch++ = ')'; + } + } + + *pch = 0; + + return sz; +} + +extern int +ParseMove(char *pch, int an[8]) +{ + /* + * anUser[] size had been 8 for years without apparent issues, even + * when instrumented by clang's address sanitizer. Gcc 5 complains + * ("array subscript is above array bounds") until it is raised to 12 + * then gcc 6 does the same until the size is 17. + */ + int i, j, iBegin, iEnd, n, c = 0, anUser[17]; + unsigned fl = 0; + + while (*pch) { + if (isspace(*pch)) { + pch++; + continue; + } else if (isdigit(*pch)) { + if (c == 8) { + /* Too many points. */ + errno = EINVAL; + return -1; + } + + if ((anUser[c] = (int) strtol(pch, &pch, 10)) < 0 || anUser[c] > 25) { + /* Invalid point number. */ + errno = EINVAL; + return -1; + } + + c++; + continue; + } else + switch (*pch) { + case 'o': + case 'O': + case '-': + if (c == 8) { + /* Too many points. */ + errno = EINVAL; + return -1; + } + + anUser[c++] = 0; + + if (*pch != '-' && (pch[1] == 'f' || pch[1] == 'F')) { + pch++; + if (pch[1] == 'f' || pch[1] == 'F') + pch++; + } + break; + + case 'b': + case 'B': + if (c == 8) { + /* Too many points. */ + errno = EINVAL; + return -1; + } + + anUser[c++] = 25; + + if (pch[1] == 'a' || pch[1] == 'A') { + pch++; + if (pch[1] == 'r' || pch[1] == 'R') + pch++; + } + break; + + case '/': + if (!c || fl & (1 << c)) { + /* Leading '/', or duplicate '/'s. */ + errno = EINVAL; + return -1; + } + + fl |= 1 << c; + break; + + case '*': + case ',': + case ')': + /* Currently ignored. */ + break; + + case '(': + if ((n = (int) strtol(pch + 1, &pch, 10) - 1) < 1) { + /* invalid count */ + errno = EINVAL; + return -1; + } + + if (c < 2) { + /* incomplete move before ( -- syntax error */ + errno = EINVAL; + return -1; + } + + if (fl & (1 << c)) { + /* / immediately before ( -- syntax error */ + errno = EINVAL; + return -1; + } + + for (iBegin = c - 1; iBegin >= 0; iBegin--) + if (!(fl & (1 << iBegin))) + break; + + if (iBegin < 0) { + /* no / anywhere before ( -- syntax error */ + errno = EINVAL; + return -1; + } + + iEnd = c; + + if (c + (iEnd - iBegin) * n > 8) { + /* Too many moves. */ + errno = EINVAL; + return -1; + } + + for (i = 0; i < n; i++) + for (j = iBegin; j < iEnd; j++) { + if (fl & (1 << j)) + fl |= 1 << c; + anUser[c++] = anUser[j]; + } + + break; + + default: + errno = EINVAL; + return -1; + } + pch++; + } + + if (fl & (1 << c)) { + /* Trailing '/'. */ + errno = EINVAL; + return -1; + } + + for (i = 0, j = 0; j < c; j++) { + if (i == 8) { + /* Too many moves. */ + errno = EINVAL; + return -1; + } + + if (((i & 1) && anUser[j] == 25) || (!(i & 1) && !anUser[j])) { + /* Trying to move from off the board, or to the bar. */ + errno = EINVAL; + return -1; + } + + an[i] = anUser[j]; + + if ((i & 1) && (fl & (1 << (j + 1)))) { + /* Combined move; this destination is also the next source. */ + if (i == 7) { + /* Too many moves. */ + errno = EINVAL; + return -1; + } + + if (!an[i] || an[i] == 25) { + errno = EINVAL; + return -1; + } + + an[++i] = anUser[j]; + } + + i++; + } + + if (i & 1) { + /* Incomplete last move. */ + errno = EINVAL; + return -1; + } + + if (i < 8) + an[i] = -1; + + CanonicalMoveOrder(an); + + return i >> 1; +} + +/* + * Generate FIBS board + * + * (see ) + * + * GNUbg extends the meaning of the "doubled" field, so the sign of + * the field indicates who doubled. This is necessary to correctly + * detects beavers and raccoons. + */ + +extern char * +FIBSBoard(char *pch, TanBoard anBoard, int fRoll, + const char *szPlayer, const char *szOpp, int nMatchTo, + int nScore, int nOpponent, int nDice0, int nDice1, + int nCube, int fCubeOwner, int fDoubled, int fTurn, int fCrawford, int nChequers, int fPostCrawford) +{ + char *sz = pch; + int i, anOff[2]; + + /* Names and match length/score */ + strcpy(sz, "board:"); + + for (sz += 6; *szPlayer; szPlayer++) + *sz++ = (*szPlayer != ':' ? *szPlayer : '_'); + + for (*sz++ = ':'; *szOpp; szOpp++) + *sz++ = (*szOpp != ':' ? *szOpp : '_'); + + sprintf(sz, ":%d:%d:%d:", nMatchTo, nScore, nOpponent); + + /* Opponent on bar */ + sprintf(strchr(sz, 0), "%d:", -(int) anBoard[0][24]); + + /* Board */ + for (i = 0; i < 24; i++) { + int point = (int) anBoard[0][23 - i]; + sprintf(strchr(sz, 0), "%d:", (point > 0) ? -point : (int) anBoard[1][i]); + } + + /* Player on bar */ + sprintf(strchr(sz, 0), "%u:", anBoard[1][24]); + + /* Whose turn */ + strcat(sz, fRoll ? "1:" : "-1:"); + + anOff[0] = anOff[1] = nChequers ? nChequers : 15; + for (i = 0; i < 25; i++) { + anOff[0] -= anBoard[0][i]; + anOff[1] -= anBoard[1][i]; + } + + sprintf(strchr(sz, 0), "%d:%d:%d:%d:%d:%d:%d:%d:1:-1:0:25:%d:%d:0:0:0:" + "0:%d:%d", nDice0, nDice1, nDice0, nDice1, fTurn < 0 ? 1 : nCube, + fTurn < 0 || fCubeOwner != 0, fTurn < 0 || fCubeOwner != 1, + fDoubled ? (fTurn ? -1 : 1) : 0, anOff[1], anOff[0], fPostCrawford, !fCrawford); + + return pch; +} + +extern int +ProcessFIBSBoardInfo(FIBSBoardInfo * brdInfo, ProcessedFIBSBoard * procBrd) +{ + + int i, n, fCanDouble, fOppCanDouble, anOppDice[2]; + int fNonCrawford, fPostCrawford; + int nTurn, nColor, nDirection; + int anFIBSBoard[26]; + int fMustSwap = 0; + GString *tmpName; + + procBrd->nMatchTo = brdInfo->nMatchTo; + procBrd->nScore = brdInfo->nScore; + procBrd->nScoreOpp = brdInfo->nScoreOpp; + nTurn = brdInfo->nTurn; + nColor = brdInfo->nColor; + nDirection = brdInfo->nDirection; + procBrd->fDoubled = brdInfo->fDoubled; + procBrd->nCube = brdInfo->nCube; + fCanDouble = brdInfo->fCanDouble; + fOppCanDouble = brdInfo->fOppCanDouble; + memcpy(procBrd->anDice, brdInfo->anDice, sizeof(brdInfo->anDice)); + memcpy(anOppDice, brdInfo->anOppDice, sizeof(brdInfo->anOppDice)); + memcpy(anFIBSBoard, brdInfo->anFIBSBoard, sizeof(brdInfo->anFIBSBoard)); + fNonCrawford = brdInfo->fNonCrawford; + fPostCrawford = brdInfo->fPostCrawford; + + /* Not yet supported set to zero */ + procBrd->nResignation = 0; + + for (i = 0; i < 26; ++i) + anFIBSBoard[i] = -anFIBSBoard[i]; + + /* FIBS has a maximum match length of 99. Unlimited matches are + * encoded with a match length of 9999. + */ + if (procBrd->nMatchTo == 9999) + procBrd->nMatchTo = 0; + + if (procBrd->nMatchTo && (procBrd->nMatchTo <= procBrd->nScore || procBrd->nMatchTo <= procBrd->nScoreOpp)) + return -1; + + /* If the match length exceeds MAXSCORE we correct the match length + * to MAXSCORE and the scores to the closest equivalents. + */ + if (procBrd->nMatchTo > MAXSCORE) { + if (procBrd->nMatchTo - procBrd->nScore > MAXSCORE) + procBrd->nScore = 0; + else + procBrd->nScore -= procBrd->nMatchTo - MAXSCORE; + + if (procBrd->nMatchTo - procBrd->nScoreOpp > MAXSCORE) + procBrd->nScoreOpp = 0; + else + procBrd->nScoreOpp -= procBrd->nMatchTo - MAXSCORE; + + procBrd->nMatchTo = MAXSCORE; + } + + /* Consistency check: 0 is a valid value for nColor but signifies + * end of game which is invalid for our purposes here. + */ + if (!nTurn || !nColor || !nDirection) + return -1; + + /* Check whether the cube was turned. That is indicated by the + * pfDoubed flag for the "player" and by setting the may double + * flag to zero for both players for the opponent. Actually + * we could completely ignore the pfDoubled flag but it could + * still help, when processing data from other sources than + * fibs.com. + */ + if (!procBrd->fDoubled && !fCanDouble && !fOppCanDouble) + procBrd->fDoubled = 1; + + if (procBrd->fDoubled) + fMustSwap = !fMustSwap; + if (nTurn * nColor < 0) + fMustSwap = !fMustSwap; + + /* Opponent's turn? */ + if (fMustSwap) { + int nTmp; + + nTmp = procBrd->nScore; + procBrd->nScore = procBrd->nScoreOpp; + procBrd->nScoreOpp = nTmp; + nTmp = fCanDouble; + fCanDouble = fOppCanDouble; + fOppCanDouble = nTmp; + tmpName = brdInfo->gsName; + brdInfo->gsName = brdInfo->gsOpp; + brdInfo->gsOpp = tmpName; + } + + if (nTurn * nColor < 0) + nDirection = -nDirection; + nColor = nTurn > 0 ? 1 : -1; + + for (i = 0; i < 24; ++i) { + n = nDirection < 0 ? anFIBSBoard[i + 1] : anFIBSBoard[25 - i - 1]; + if (nColor * n < 0) { + procBrd->anBoard[1][i] = n < 0 ? -n : n; + procBrd->anBoard[0][23 - i] = 0; + } else if (nColor * n > 0) { + procBrd->anBoard[1][i] = 0; + procBrd->anBoard[0][23 - i] = n < 0 ? -n : n; + } else { + procBrd->anBoard[1][i] = procBrd->anBoard[0][23 - i] = 0; + } + } + + if (nDirection < 0) { + n = anFIBSBoard[25]; + procBrd->anBoard[1][24] = n < 0 ? -n : n; + n = anFIBSBoard[0]; + procBrd->anBoard[0][24] = n < 0 ? -n : n; + } else { + n = anFIBSBoard[0]; + procBrd->anBoard[1][24] = n < 0 ? -n : n; + n = anFIBSBoard[25]; + procBrd->anBoard[0][24] = n < 0 ? -n : n; + } + + /* See https://savannah.gnu.org/bugs/?36485 for this. */ + if (procBrd->fDoubled) + SwapSides(procBrd->anBoard); + + if (!procBrd->anDice[0] && anOppDice[0]) { + procBrd->anDice[0] = anOppDice[0]; + procBrd->anDice[1] = anOppDice[1]; + } + + /* + * Crawford detection. This is rather tricky with FIBS board states + * because FIBS sets both may-double flags to 1 in the Crawford game. + * + * We have to inspect the last and second last field for that. + * The last field is the post-Crawford flag, the second last + * field is the non-Crawford flag. + * + * Until at least one of the players is 1-away, you cannot deduce whether + * the Crawford rule is in use or not. Once one of the players + * is 1-away, the non-Crawford flag is set to 3 if the Crawford rule + * is not in use; otherwise everything is still 0. + * + * Once the Crawford game is finished, the post-Crawford flag is set + * to 1. + * + * Since we cannot find out whether the Crawford rule is in use or not + * in the pre-Crawford games, the cubeful evaluation can be slightly + * biased. But since the vast majority of matches on FIBS is played + * with the Crawford rule and we assume usage of the Crawford rule + * as a default, the bias is negligible. + */ + if (!procBrd->nMatchTo) { + procBrd->fCrawford = 0; + } else { + if (((procBrd->nMatchTo - procBrd->nScore) == 1) || ((procBrd->nMatchTo - procBrd->nScoreOpp) == 1)) { + if (fNonCrawford || fPostCrawford) { + procBrd->fCrawford = 0; + } else { + procBrd->fCrawford = 1; + } + } else { + procBrd->fCrawford = 0; + } + } + + procBrd->fCubeOwner = fCanDouble != fOppCanDouble ? fCanDouble : -1; + g_strlcpy(procBrd->szPlayer, brdInfo->gsName->str, MAX_NAME_LEN); + g_strlcpy(procBrd->szOpp, brdInfo->gsOpp->str, MAX_NAME_LEN); + + return 0; +} diff --git a/engine/gnubg/drawboard.h b/engine/gnubg/drawboard.h new file mode 100644 index 0000000..dd7528f --- /dev/null +++ b/engine/gnubg/drawboard.h @@ -0,0 +1,46 @@ +/* + * Copyright (C) 1999-2001 Gary Wong + * Copyright (C) 2000-2015 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef DRAWBOARD_H +#define DRAWBOARD_H + +#include "gnubg-types.h" +#include "external.h" + +extern int fClockwise; /* Player 1 moves clockwise */ + +extern char *DrawBoard(char *sz, const TanBoard anBoard, int fRoll, char *asz[], char *szMatchID, int nChequers); +/* Fill the buffer pch with a representation of the move anMove, assuming + * the board looks like anBoard. pch must have room for 28 characters plus + * a trailing 0 (consider the move `bar/24* 23/22* 21/20* 19/18*'). */ +#define FORMATEDMOVESIZE 29 +extern char *FormatMove(char *sz, const TanBoard anBoard, const int anMove[8]); +extern char *FormatMovePlain(char *sz, const TanBoard anBoard, const int anMove[8]); +extern int ParseMove(char *pch, int an[8]); +extern void CanonicalMoveOrder(int an[]); +/* Fill the buffer pch with a FIBS "boardstyle 3" description of the game. */ +extern char *FIBSBoard(char *pch, TanBoard anBoard, int fRoll, + const char *szPlayer, const char *szOpp, int nMatchTo, + int nScore, int nOpponent, int nDice0, int nDice1, + int nCube, int fCubeOwner, int fDoubled, int fTurn, + int fCrawford, int nChequers, int fPostCrawford); + +/* Process a board info structure from external interface */ +extern int ProcessFIBSBoardInfo(FIBSBoardInfo * brdInfo, ProcessedFIBSBoard * procBrd); + +#endif diff --git a/engine/gnubg/eval.c b/engine/gnubg/eval.c new file mode 100644 index 0000000..edbeef4 --- /dev/null +++ b/engine/gnubg/eval.c @@ -0,0 +1,6396 @@ +/* + * Copyright (C) 1998-2003 Gary Wong + * Copyright (C) 2000-2025 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" +#include "backgammon.h" +#include +#include +#include +#include +#include +#include +#include "isaac.h" +#include "md5.h" +#include "bearoffgammon.h" +#include "positionid.h" +#include "matchid.h" +#include "matchequity.h" +#include "format.h" +#include "simd.h" +#include "multithread.h" +#include "util.h" +#include "lib/simd.h" + +typedef void (*classstatusfunc) (char *szOutput); +typedef int (*cfunc) (const void *, const void *); + +/* Race inputs */ +enum { + /* In a race position, bar and the 24 points are always empty, so only */ + /* 23*4 (92) are needed */ + + /* (0 <= k < 14), RI_OFF + k = */ + /* 1 if exactly k+1 checkers are off, 0 otherwise */ + + RI_OFF = 92, + + /* Number of cross-overs by outside checkers */ + + RI_NCROSS = 92 + 14, + + HALF_RACE_INPUTS +}; + + +/* Contact inputs -- see Berliner for most of these */ +enum { + /* n - number of checkers off + * + * off1 - 1 n >= 5 + * n/5 otherwise + * + * off2 - 1 n >= 10 + * (n-5)/5 n < 5 < 10 + * 0 otherwise + * + * off3 - (n-10)/5 n > 10 + * 0 otherwise + */ + + I_OFF1, I_OFF2, I_OFF3, + + /* Minimum number of pips required to break contact. + * + * For each checker x, N(x) is checker location, + * C(x) is max({forall o : N(x) - N(o)}, 0) + * + * Break Contact : (sum over x of C(x)) / 152 + * + * 152 is degree of contact of start position. + */ + I_BREAK_CONTACT, + + /* Location of back checker (Normalized to [01]) + */ + I_BACK_CHEQUER, + + /* Location of most backward anchor (Normalized to [01]) + */ + I_BACK_ANCHOR, + + /* Forward anchor in opponents home. + * + * Normalized in the following way: If there is an anchor in opponents + * home at point k (1 <= k <= 6), value is k/6. Otherwise, if there is an + * anchor in points (7 <= k <= 12), take k/6 as well. Otherwise set to 2. + * + * This is an attempt for some continuity, since a 0 would be the "same" as + * a forward anchor at the bar. + */ + I_FORWARD_ANCHOR, + + /* Average number of pips opponent loses from hits. + * + * Some heuristics are required to estimate it, since we have no idea what + * the best move actually is. + * + * 1. If board is weak (less than 3 inner points made), don't consider + * hitting on points 23 and 24. + * 2. Don't break inner points to hit. + */ + I_PIPLOSS, + + /* Number of rolls that hit at least one checker. + */ + I_P1, + + /* Number of rolls that hit at least two checkers. + */ + I_P2, + + /* How many rolls permit the back checker to escape (Normalized to [01]) + */ + I_BACKESCAPES, + + /* Maximum containment of opponent checkers, from our points 9 to op back + * checker. + * + * Value is (1 - n/36), where n is number of rolls to escape. + */ + I_ACONTAIN, + + /* Above squared */ + I_ACONTAIN2, + + /* Maximum containment, from our point 9 to home. + * Value is (1 - n/36), where n is number of rolls to escape. + */ + I_CONTAIN, + + /* Above squared */ + I_CONTAIN2, + + /* For all checkers out of home, + * sum (Number of rolls that let x escape * distance from home) + * + * Normalized by dividing by 3600. + */ + I_MOBILITY, + + /* One sided moment. + * Let A be the point of weighted average: + * A = sum of N(x) for all x) / nCheckers. + * + * Then for all x : A < N(x), M = (average (N(X) - A)^2) + * + * Diveded by 400 to normalize. + */ + I_MOMENT2, + + /* Average number of pips lost when on the bar. + * Normalized to [01] + */ + I_ENTER, + + /* Probablity of one checker not entering from bar. + * 1 - (1 - n/6)^2, where n is number of closed points in op home. + */ + I_ENTER2, + + I_TIMING, + + I_BACKBONE, + + I_BACKG, + + I_BACKG1, + + I_FREEPIP, + + I_BACKRESCAPES, + + MORE_INPUTS +}; + +#define MINPPERPOINT 4 + +#define NUM_INPUTS ((25 * MINPPERPOINT + MORE_INPUTS) * 2) +#define NUM_RACE_INPUTS ( HALF_RACE_INPUTS * 2 ) +#define NUM_PRUNING_INPUTS (25 * MINPPERPOINT * 2) + + +#if !defined(LOCKING_VERSION) + +f_FindnSaveBestMoves FindnSaveBestMoves = FindnSaveBestMovesNoLocking; +f_FindBestMove FindBestMove = FindBestMoveNoLocking; +f_EvaluatePosition EvaluatePosition = EvaluatePositionNoLocking; +f_ScoreMove ScoreMove = ScoreMoveNoLocking; +f_GeneralCubeDecisionE GeneralCubeDecisionE = GeneralCubeDecisionENoLocking; +f_GeneralEvaluationE GeneralEvaluationE = GeneralEvaluationENoLocking; + +#define FindnSaveBestMoves FindnSaveBestMovesNoLocking +#define FindBestMove FindBestMoveNoLocking +#define EvaluatePosition EvaluatePositionNoLocking +#define ScoreMove ScoreMoveNoLocking +#define GeneralCubeDecisionE GeneralCubeDecisionENoLocking +#define GeneralEvaluationE GeneralEvaluationENoLocking +#define EvaluatePositionCache EvaluatePositionCacheNoLocking +#define FindBestMovePlied FindBestMovePliedNoLocking +#define GeneralEvaluationEPlied GeneralEvaluationEPliedNoLocking +#define EvaluatePositionCubeful3 EvaluatePositionCubeful3NoLocking +#define ScoreMoves ScoreMovesNoLocking +#define ScoreMovesPruned ScoreMovesPrunedNoLocking +#define FindBestMoveInEval FindBestMoveInEvalNoLocking +#define GeneralEvaluationEPliedCubeful GeneralEvaluationEPliedCubefulNoLocking +#define EvaluatePositionCubeful4 EvaluatePositionCubeful4NoLocking +#define CacheAdd CacheAddNoLocking +#define CacheLookup CacheLookupNoLocking + +static int EvaluatePositionCache(NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * pci, const evalcontext * pecx, int nPlies, positionclass pc); + +static int FindBestMovePlied(int anMove[8], int nDice0, int nDice1, + TanBoard anBoard, const cubeinfo * pci, + const evalcontext * pec, int nPlies, movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]); + +static int anEscapes[0x1000]; +static int anEscapes1[0x1000]; + +static int anPoint[16] = { 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; + +neuralnet nnContact, nnRace, nnCrashed; + +neuralnet nnpContact, nnpRace, nnpCrashed; + +bearoffcontext *pbcOS = NULL; +bearoffcontext *pbcTS = NULL; +bearoffcontext *pbc1 = NULL; +bearoffcontext *pbc2 = NULL; +bearoffcontext *apbcHyper[3] = { NULL, NULL, NULL }; + +evalCache cEval; +evalCache cpEval; +unsigned int cCache; +int fInterrupt = FALSE; +int fMatchCancelled = FALSE; + +/* variation of backgammon used by gnubg */ + +bgvariation bgvDefault = VARIATION_STANDARD; + +/* the number of chequers for the variations */ + +int anChequers[NUM_VARIATIONS] = { 15, 15, 1, 2, 3 }; + +const char *aszVariations[NUM_VARIATIONS] = { + N_("Standard backgammon"), + N_("Nackgammon"), + N_("1-chequer hypergammon"), + N_("2-chequer hypergammon"), + N_("3-chequer hypergammon") +}; + +const char *aszVariationCommands[NUM_VARIATIONS] = { + "standard", + "nackgammon", + "1-chequer-hypergammon", + "2-chequer-hypergammon", + "3-chequer-hypergammon" +}; + +cubeinfo ciCubeless = { 1, 0, 0, 0, {0, 0}, FALSE, FALSE, FALSE, +{1.0f, 1.0f, 1.0f, 1.0f}, VARIATION_STANDARD +}; + +const char *aszEvalType[] = { + N_("No evaluation"), + N_("Neural net evaluation"), + N_("Rollout") +}; + +evalcontext ecBasic = { .fCubeful = FALSE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.0f }; + +/* defaults for the filters - 0 ply uses no filters */ + +#include "movefilters.inc" + +movefilter defaultFilters[MAX_FILTER_PLIES][MAX_FILTER_PLIES] = MOVEFILTER_NORMAL; + + +/* Random context, for generating non-deterministic noisy evaluations. */ +static randctx rc; +#if defined(USE_MULTITHREAD) +static GMutex noiseRNGMutex; +#endif + +/* + * predefined settings + */ + +const char *aszSettings[NUM_SETTINGS] = { + N_("setting|beginner"), + N_("setting|casual play"), + N_("setting|intermediate"), + N_("setting|advanced"), + N_("setting|0ply"), + N_("setting|1ply"), + N_("setting|2ply"), + N_("setting|3ply"), + N_("setting|4ply") +}; + +/* which evaluation context does the predefined settings use */ +evalcontext aecSettings[NUM_SETTINGS] = { + {.fCubeful = TRUE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.060f}, /* beginner */ + {.fCubeful = TRUE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.050f}, /* casual player */ + {.fCubeful = TRUE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.040f}, /* intermediate */ + {.fCubeful = TRUE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.015f}, /* advanced */ + {.fCubeful = TRUE, .nPlies = 0, .fUsePrune = FALSE, .fDeterministic = TRUE, .rNoise = 0.0f}, /* 0 ply */ + {.fCubeful = TRUE, .nPlies = 1, .fUsePrune = TRUE, .fDeterministic = TRUE, .rNoise = 0.0f}, /* 1 ply */ + {.fCubeful = TRUE, .nPlies = 2, .fUsePrune = TRUE, .fDeterministic = TRUE, .rNoise = 0.0f}, /* 2 ply */ + {.fCubeful = TRUE, .nPlies = 3, .fUsePrune = TRUE, .fDeterministic = TRUE, .rNoise = 0.0f}, /* 3 ply */ + {.fCubeful = TRUE, .nPlies = 4, .fUsePrune = TRUE, .fDeterministic = TRUE, .rNoise = 0.0f} /* 4 ply */ +}; + +/* which move filter does the predefined settings use */ +int aiSettingsMoveFilter[NUM_SETTINGS] = { + -1, /* beginner: n/a */ + -1, /* casual play: n/a */ + -1, /* intermediate: n/a */ + -1, /* advanced: n/a */ + -1, /* 0 ply: n/a */ + 0, /* 1 ply: normal */ + 0, /* 2 ply: normal */ + 0, /* 3 ply: normal */ + 0 /* 4 ply: normal */ +}; + +/* the predefined move filters */ + +const char *aszMoveFilterSettings[NUM_MOVEFILTER_SETTINGS] = { + N_("Normal"), + N_("Large") +}; + +movefilter aaamfMoveFilterSettings[NUM_MOVEFILTER_SETTINGS][MAX_FILTER_PLIES][MAX_FILTER_PLIES] = { + MOVEFILTER_NORMAL, + MOVEFILTER_LARGE +}; + + +const char *aszDoubleTypes[NUM_DOUBLE_TYPES] = { + N_("doubletype|Double"), + N_("doubletype|Beaver"), + N_("doubletype|Raccoon") +}; + +/* parameters for EvalEfficiency */ + +static float rTSCubeX = 0.6f; /* for match play only */ +float rOSCubeX = 0.6f; +float rRaceFactorX[2] = { 0.00125f, 0.00250f }; +float rRaceCoefficientX[2] = { 0.55f, 0.60f }; +float rRaceMax[2] = { 0.7f, 0.8f }; +float rRaceMin[2] = { 0.6f, 0.6f }; +float rCrashedX[2] = { 0.68f, 0.76f }; +float rContactX[2] = { 0.68f, 0.76f }; + + +static inline int +msb32(int n) +#ifdef HAVE___BUILTIN_CLZ +{ + return 31 - __builtin_clz(n); /* or __builtin_clz() ^ 31 */ +} +#else +/* from rosettacode.org */ +{ + int b = 0; +#define step(x) if (n >= 1 << x) b += x, n >>= x + step(16); + step(8); + step(4); + step(2); + step(1); +#undef step + return b; +} +#endif + +static void +ComputeTable0(void) +{ + int i, n0, n1; + + for (i = 0; i < 0x1000; i++) { + int c = 0; + + for (n0 = 0; n0 <= 5; n0++) + for (n1 = 0; n1 <= n0; n1++) + if (!(i & (1 << (n0 + n1 + 1))) && !((i & (1 << n0)) && (i & (1 << n1)))) + c += (n0 == n1) ? 1 : 2; + + anEscapes[i] = c; + } +} + +static int +Escapes(const unsigned int anBoard[25], int n) +{ + + int i, af = 0, m; + + m = (n < 12) ? n : 12; + + for (i = 0; i < m; i++) + af |= (anPoint[anBoard[24 + i - n]] << i); + + return anEscapes[af]; +} + +static void +ComputeTable1(void) +{ + int i, n0, n1; + + anEscapes1[0] = 0; + + for (i = 1; i < 0x1000; i++) { + int c = 0; + int low = 0; + + while (!(i & (1 << low))) { + ++low; + } + + for (n0 = 0; n0 <= 5; n0++) + for (n1 = 0; n1 <= n0; n1++) { + + if ((n0 + n1 + 1 > low) && !(i & (1 << (n0 + n1 + 1))) && !((i & (1 << n0)) && (i & (1 << n1)))) { + c += (n0 == n1) ? 1 : 2; + } + } + + anEscapes1[i] = c; + } +} + +static int +Escapes1(const unsigned int anBoard[25], int n) +{ + + int i, af = 0, m; + + m = (n < 12) ? n : 12; + + for (i = 0; i < m; i++) + af |= (anPoint[anBoard[24 + i - n]] << i); + + return anEscapes1[af]; +} + + +static void +ComputeTable(void) +{ + ComputeTable0(); + ComputeTable1(); +} + +static void +DestroyWeights(void) +{ + NeuralNetDestroy(&nnContact); + NeuralNetDestroy(&nnCrashed); + NeuralNetDestroy(&nnRace); + + NeuralNetDestroy(&nnpContact); + NeuralNetDestroy(&nnpCrashed); + NeuralNetDestroy(&nnpRace); +} + +extern int +EvalShutdown(void) +{ + + int i; + + /* close bearoff databases */ + + BearoffClose(pbc1); + BearoffClose(pbc2); + BearoffClose(pbcOS); + BearoffClose(pbcTS); + for (i = 0; i < 3; ++i) + BearoffClose(apbcHyper[i]); + + /* destroy neural nets */ + + DestroyWeights(); + + /* destroy cache */ + + CacheDestroy(&cEval); + CacheDestroy(&cpEval); + + return 0; + +} + +static int +binary_weights_failed(char *filename, FILE * weights) +{ + float r; + + if (!weights) { + g_print(_("couldn't open %s"), filename); + g_print("\n"); + return -1; + } + if (fread(&r, sizeof r, 1, weights) < 1) { + g_print(_("couldn't read %s"), filename); + g_print("\n"); + return -2; + } + if (r != WEIGHTS_MAGIC_BINARY) { + g_print(_("%s is not a weights file"), filename); + g_print("\n"); + return -3; + } + if (fread(&r, sizeof r, 1, weights) < 1) { + g_print(_("couldn't read %s"), filename); + g_print("\n"); + return -4; + } + if (r != WEIGHTS_VERSION_BINARY) { + char buf[20]; + sprintf(buf, "%.2f", r); + g_print(_("weights file %s, has incorrect version (%s), expected (%s)"), filename, buf, WEIGHTS_VERSION); + g_print("\n"); + return -5; + } + + return 0; +} + +static int +weights_failed(char *filename, FILE * weights) +{ + char file_version[16]; + if (!weights) { + g_print(_("couldn't open %s"), filename); + g_print("\n"); + return -1; + } + + if (fscanf(weights, "GNU Backgammon %15s\n", file_version) != 1) { + g_print(_("%s is not a weights file"), filename); + g_print("\n"); + return -2; + } + if (strcmp(file_version, WEIGHTS_VERSION)) { + g_print(_("weights file %s, has incorrect version (%s), expected (%s)"), + filename, file_version, WEIGHTS_VERSION); + g_print("\n"); + return -3; + } + return 0; +} + +extern void +EvalInitialise(char *szWeights, char *szWeightsBinary, int fNoBearoff, void (*pfProgress) (unsigned int)) +{ + FILE *pfWeights = NULL; + int i, fReadWeights = FALSE; + static int fInitialised = FALSE; +#if defined(USE_SIMD_INSTRUCTIONS) + int simderror = TRUE; +#endif + + if (!fInitialised) { +#if defined(USE_SIMD_INSTRUCTIONS) + int result = SIMD_Supported(); + switch (result) { + case -1: + outputerrf(_("Can't check for SIMD support\n")); + break; + case -2: + outputerrf(_("No cpuid check available\n")); + break; + case 0: + /* No SIMD support */ + break; + case 1: + /* SIMD support */ + simderror = FALSE; + break; + default: + outputerrf(_("Unknown error while doing SIMD support test\n")); + } + + if (simderror) { +#if defined(USE_AVX) + outputerrf(_ + ("\nThis version of GNU Backgammon is compiled with AVX support but this machine does not support AVX\n")); +#else + outputerrf(_ + ("\nThis version of GNU Backgammon is compiled with SSE support but this machine does not support SSE\n")); +#endif + exit(EXIT_FAILURE); + } +#endif + cCache = 0x1 << CACHE_SIZE_DEFAULT; + if (CacheCreate(&cEval, cCache)) { + PrintError(_("Evaluation cache allocation failed")); + CacheCreate(&cEval, 0); + cCache = 0; + } + + if (CacheCreate(&cpEval, 0x1 << 16)) { + PrintError(_("Evaluation cache allocation failed")); + return; + } + + ComputeTable(); + + rc.randrsl[0] = (ub4) time(NULL); + for (i = 0; i < RANDSIZ; i++) + rc.randrsl[i] = rc.randrsl[0]; + irandinit(&rc, TRUE); + + fInitialised = TRUE; + } + + if (!fNoBearoff) { + char *gnubg_bearoff; + char *gnubg_bearoff_os; + + gnubg_bearoff_os = BuildFilename("gnubg_os0.bd"); + if (!pbc1) + pbc1 = BearoffInit(gnubg_bearoff_os, BO_IN_MEMORY | BO_MUST_BE_ONE_SIDED, NULL); + g_free(gnubg_bearoff_os); + + if (!pbc1) + pbc1 = BearoffInit(NULL, BO_HEURISTIC, pfProgress); + + /* read two-sided db from gnubg.bd */ + gnubg_bearoff = BuildFilename("gnubg_ts0.bd"); + pbc2 = BearoffInit(gnubg_bearoff, BO_IN_MEMORY | BO_MUST_BE_TWO_SIDED, NULL); + g_free(gnubg_bearoff); + + if (!pbc2) + g_printerr( + _("\n***WARNING***\n\n" + "GNU Backgammon will not use the two-sided bearoff\n" + "database since the gnubg_ts0.bd could not be found.\n" + "You should obtain this file or generate it yourself\n" + "with the command: makebearoff -t 6x6 -f gnubg_ts0.bd\n" + "You can also generate other bearoff databases; see\n" "README for more details\n\n")); + + gnubg_bearoff_os = BuildFilename("gnubg_os.bd"); + /* init one-sided db */ + pbcOS = BearoffInit(gnubg_bearoff_os, BO_IN_MEMORY | BO_MUST_BE_ONE_SIDED, NULL); + g_free(gnubg_bearoff_os); + + gnubg_bearoff = BuildFilename("gnubg_ts.bd"); + /* init two-sided db */ + pbcTS = BearoffInit(gnubg_bearoff, BO_IN_MEMORY | BO_MUST_BE_TWO_SIDED, NULL); + g_free(gnubg_bearoff); + + /* hyper-gammon databases */ + + for (i = 0; i < 3; ++i) { + char *fn; + char sz[10]; + sprintf(sz, "hyper%c.bd", i + '1'); + fn = BuildFilename(sz); + apbcHyper[i] = BearoffInit(fn, BO_IN_MEMORY, NULL); + g_free(fn); + } + + } + + if (szWeightsBinary) { + pfWeights = g_fopen(szWeightsBinary, "rb"); + if (!binary_weights_failed(szWeightsBinary, pfWeights)) { + if (!fReadWeights && !(fReadWeights = + !NeuralNetLoadBinary(&nnContact, pfWeights) && + !NeuralNetLoadBinary(&nnRace, pfWeights) && + !NeuralNetLoadBinary(&nnCrashed, pfWeights) && + !NeuralNetLoadBinary(&nnpContact, pfWeights) && + !NeuralNetLoadBinary(&nnpCrashed, pfWeights) && + !NeuralNetLoadBinary(&nnpRace, pfWeights))) { + perror(szWeightsBinary); + } + } + if (pfWeights) + fclose(pfWeights); + pfWeights = NULL; + } + + if (!fReadWeights && szWeights) { + pfWeights = g_fopen(szWeights, "r"); + if (!weights_failed(szWeights, pfWeights)) { + setlocale(LC_ALL, "C"); + if (!(fReadWeights = + !NeuralNetLoad(&nnContact, pfWeights) && + !NeuralNetLoad(&nnRace, pfWeights) && + !NeuralNetLoad(&nnCrashed, pfWeights) && + !NeuralNetLoad(&nnpContact, pfWeights) && + !NeuralNetLoad(&nnpCrashed, pfWeights) && !NeuralNetLoad(&nnpRace, pfWeights) + )) + perror(szWeights); + setlocale(LC_ALL, ""); + } + if (pfWeights) + fclose(pfWeights); + pfWeights = NULL; + } + + g_assert(fReadWeights); + + g_assert(nnContact.cInput == NUM_INPUTS && nnContact.cOutput == NUM_OUTPUTS); + g_assert(nnCrashed.cInput == NUM_INPUTS && nnCrashed.cOutput == NUM_OUTPUTS); + g_assert(nnRace.cInput == NUM_RACE_INPUTS && nnRace.cOutput == NUM_OUTPUTS); + + g_assert(nnpContact.cInput == NUM_PRUNING_INPUTS && nnpContact.cOutput == NUM_OUTPUTS); + g_assert(nnpCrashed.cInput == NUM_PRUNING_INPUTS && nnpCrashed.cOutput == NUM_OUTPUTS); + g_assert(nnpRace.cInput == NUM_PRUNING_INPUTS && nnpRace.cOutput == NUM_OUTPUTS); + + if (!fReadWeights) { + outputerrf(_("GNU Backgammon couldn't find a weights file.")); + exit(EXIT_FAILURE); + } + +} + +/* Calculates inputs for any contact position, for one player only. */ + +static void +CalculateHalfInputs(const unsigned int anBoard[25], const unsigned int anBoardOpp[25], float afInput[]) +{ + int i, j, k, l, nOppBack, n, aHit[39], nBoard; + + /* aanCombination[n] - + * How many ways to hit from a distance of n pips. + * Each number is an index into aIntermediate below. + */ + static const int aanCombination[24][5] = { + {0, -1, -1, -1, -1}, /* 1 */ + {1, 2, -1, -1, -1}, /* 2 */ + {3, 4, 5, -1, -1}, /* 3 */ + {6, 7, 8, 9, -1}, /* 4 */ + {10, 11, 12, -1, -1}, /* 5 */ + {13, 14, 15, 16, 17}, /* 6 */ + {18, 19, 20, -1, -1}, /* 7 */ + {21, 22, 23, 24, -1}, /* 8 */ + {25, 26, 27, -1, -1}, /* 9 */ + {28, 29, -1, -1, -1}, /* 10 */ + {30, -1, -1, -1, -1}, /* 11 */ + {31, 32, 33, -1, -1}, /* 12 */ + {-1, -1, -1, -1, -1}, /* 13 */ + {-1, -1, -1, -1, -1}, /* 14 */ + {34, -1, -1, -1, -1}, /* 15 */ + {35, -1, -1, -1, -1}, /* 16 */ + {-1, -1, -1, -1, -1}, /* 17 */ + {36, -1, -1, -1, -1}, /* 18 */ + {-1, -1, -1, -1, -1}, /* 19 */ + {37, -1, -1, -1, -1}, /* 20 */ + {-1, -1, -1, -1, -1}, /* 21 */ + {-1, -1, -1, -1, -1}, /* 22 */ + {-1, -1, -1, -1, -1}, /* 23 */ + {38, -1, -1, -1, -1} /* 24 */ + }; + + /* One way to hit */ + typedef struct { + /* if true, all intermediate points (if any) are required; + * if false, one of two intermediate points are required. + * Set to true for a direct hit, but that can be checked with + * nFaces == 1, + */ + int fAll; + + /* Intermediate points required */ + int anIntermediate[3]; + + /* Number of faces used in hit (1 to 4) */ + int nFaces; + + /* Number of pips used to hit */ + int nPips; + } Inter; + + const Inter *pi; + /* All ways to hit */ + static const Inter aIntermediate[39] = { + {1, {0, 0, 0}, 1, 1}, /* 0: 1x hits 1 */ + {1, {0, 0, 0}, 1, 2}, /* 1: 2x hits 2 */ + {1, {1, 0, 0}, 2, 2}, /* 2: 11 hits 2 */ + {1, {0, 0, 0}, 1, 3}, /* 3: 3x hits 3 */ + {0, {1, 2, 0}, 2, 3}, /* 4: 21 hits 3 */ + {1, {1, 2, 0}, 3, 3}, /* 5: 11 hits 3 */ + {1, {0, 0, 0}, 1, 4}, /* 6: 4x hits 4 */ + {0, {1, 3, 0}, 2, 4}, /* 7: 31 hits 4 */ + {1, {2, 0, 0}, 2, 4}, /* 8: 22 hits 4 */ + {1, {1, 2, 3}, 4, 4}, /* 9: 11 hits 4 */ + {1, {0, 0, 0}, 1, 5}, /* 10: 5x hits 5 */ + {0, {1, 4, 0}, 2, 5}, /* 11: 41 hits 5 */ + {0, {2, 3, 0}, 2, 5}, /* 12: 32 hits 5 */ + {1, {0, 0, 0}, 1, 6}, /* 13: 6x hits 6 */ + {0, {1, 5, 0}, 2, 6}, /* 14: 51 hits 6 */ + {0, {2, 4, 0}, 2, 6}, /* 15: 42 hits 6 */ + {1, {3, 0, 0}, 2, 6}, /* 16: 33 hits 6 */ + {1, {2, 4, 0}, 3, 6}, /* 17: 22 hits 6 */ + {0, {1, 6, 0}, 2, 7}, /* 18: 61 hits 7 */ + {0, {2, 5, 0}, 2, 7}, /* 19: 52 hits 7 */ + {0, {3, 4, 0}, 2, 7}, /* 20: 43 hits 7 */ + {0, {2, 6, 0}, 2, 8}, /* 21: 62 hits 8 */ + {0, {3, 5, 0}, 2, 8}, /* 22: 53 hits 8 */ + {1, {4, 0, 0}, 2, 8}, /* 23: 44 hits 8 */ + {1, {2, 4, 6}, 4, 8}, /* 24: 22 hits 8 */ + {0, {3, 6, 0}, 2, 9}, /* 25: 63 hits 9 */ + {0, {4, 5, 0}, 2, 9}, /* 26: 54 hits 9 */ + {1, {3, 6, 0}, 3, 9}, /* 27: 33 hits 9 */ + {0, {4, 6, 0}, 2, 10}, /* 28: 64 hits 10 */ + {1, {5, 0, 0}, 2, 10}, /* 29: 55 hits 10 */ + {0, {5, 6, 0}, 2, 11}, /* 30: 65 hits 11 */ + {1, {6, 0, 0}, 2, 12}, /* 31: 66 hits 12 */ + {1, {4, 8, 0}, 3, 12}, /* 32: 44 hits 12 */ + {1, {3, 6, 9}, 4, 12}, /* 33: 33 hits 12 */ + {1, {5, 10, 0}, 3, 15}, /* 34: 55 hits 15 */ + {1, {4, 8, 12}, 4, 16}, /* 35: 44 hits 16 */ + {1, {6, 12, 0}, 3, 18}, /* 36: 66 hits 18 */ + {1, {5, 10, 15}, 4, 20}, /* 37: 55 hits 20 */ + {1, {6, 12, 18}, 4, 24} /* 38: 66 hits 24 */ + }; + + /* aaRoll[n] - All ways to hit with the n'th roll + * Each entry is an index into aIntermediate above. + */ + + static const int aaRoll[21][4] = { + {0, 2, 5, 9}, /* 11 */ + {1, 8, 17, 24}, /* 22 */ + {3, 16, 27, 33}, /* 33 */ + {6, 23, 32, 35}, /* 44 */ + {10, 29, 34, 37}, /* 55 */ + {13, 31, 36, 38}, /* 66 */ + {0, 1, 4, -1}, /* 21 */ + {0, 3, 7, -1}, /* 31 */ + {1, 3, 12, -1}, /* 32 */ + {0, 6, 11, -1}, /* 41 */ + {1, 6, 15, -1}, /* 42 */ + {3, 6, 20, -1}, /* 43 */ + {0, 10, 14, -1}, /* 51 */ + {1, 10, 19, -1}, /* 52 */ + {3, 10, 22, -1}, /* 53 */ + {6, 10, 26, -1}, /* 54 */ + {0, 13, 18, -1}, /* 61 */ + {1, 13, 21, -1}, /* 62 */ + {3, 13, 25, -1}, /* 63 */ + {6, 13, 28, -1}, /* 64 */ + {10, 13, 30, -1} /* 65 */ + }; + + /* One roll stat */ + + struct { + /* number of chequers this roll hits */ + int nChequers; + + /* count of pips this roll hits */ + int nPips; + } aRoll[21]; + + { + int np = 0; + + for (nOppBack = 24; nOppBack >= 0; --nOppBack) { + if (anBoardOpp[nOppBack]) { + break; + } + } + + nOppBack = 23 - nOppBack; + + for (i = nOppBack + 1; i < 25; i++) + if (anBoard[i]) + np += (i + 1 - nOppBack) * anBoard[i]; + + afInput[I_BREAK_CONTACT] = (float) np / (15 + 152.0f); + } + { + unsigned int p = 0; + + for (i = 0; i < nOppBack; i++) { + if (anBoard[i]) + p += (i + 1) * anBoard[i]; + } + + afInput[I_FREEPIP] = (float) p / 100.0f; + } + + { + int t = 0; + int no = 0; + + int m = (nOppBack >= 11) ? nOppBack : 11; + + t += 24 * anBoard[24]; + no += anBoard[24]; + + for (i = 23; i > m; --i) { + if (unlikely(anBoard[i] && anBoard[i] != 2)) { + int ns = ((anBoard[i] > 2) ? (anBoard[i] - 2) : 1); + no += ns; + t += i * ns; + } + } + + for (; i >= 6; --i) { + if (anBoard[i]) { + int nc = anBoard[i]; + no += nc; + t += i * nc; + } + } + + for (i = 5; i >= 0; --i) { + if (anBoard[i] > 2) { + t += i * (anBoard[i] - 2); + no += (anBoard[i] - 2); + } else if (anBoard[i] < 2) { + int nm = (2 - anBoard[i]); + + if (no >= nm) { + t -= i * nm; + no -= nm; + } + } + } + + afInput[I_TIMING] = (float) t / 100.0f; + } + + /* Back chequer */ + + { + int nBack; + + for (nBack = 24; nBack >= 0; --nBack) { + if (anBoard[nBack]) { + break; + } + } + + afInput[I_BACK_CHEQUER] = (float) nBack / 24.0f; + + /* Back anchor */ + + for (i = ((nBack == 24) ? 23 : nBack); i >= 0; --i) { + if (anBoard[i] >= 2) { + break; + } + } + + afInput[I_BACK_ANCHOR] = (float) i / 24.0f; + + /* Forward anchor */ + + n = 0; + for (j = 18; j <= i; ++j) { + if (anBoard[j] >= 2) { + n = 24 - j; + break; + } + } + + if (n == 0) { + for (j = 17; j >= 12; --j) { + if (anBoard[j] >= 2) { + n = 24 - j; + break; + } + } + } + + afInput[I_FORWARD_ANCHOR] = n == 0 ? 2.0f : (float) n / 6.0f; + } + + + /* Piploss */ + + nBoard = 0; + for (i = 0; i < 6; i++) + if (anBoard[i] >= 2) + nBoard++; + + memset(aHit, 0, sizeof(aHit)); + + /* for every point we'd consider hitting a blot on, */ + + for (i = (nBoard > 2) ? 23 : 21; i >= 0; i--) + /* if there's a blot there, then */ + + if (unlikely(anBoardOpp[i] == 1)) + /* for every point beyond */ + + for (j = 24 - i; j < 25; j++) + /* if we have a hitter and are willing to hit */ + + if (anBoard[j] && !(j < 6 && anBoard[j] == 2)) + /* for every roll that can hit from that point */ + + for (n = 0; n < 5; n++) { + if (aanCombination[j - 24 + i][n] == -1) + break; + + /* find the intermediate points required to play */ + + pi = aIntermediate + aanCombination[j - 24 + i][n]; + + if (pi->fAll) { + /* if nFaces is 1, there are no intermediate points */ + + if (pi->nFaces > 1) { + /* all the intermediate points are required */ + + for (k = 0; k < 3 && pi->anIntermediate[k] > 0; k++) + if (anBoardOpp[i - pi->anIntermediate[k]] > 1) + /* point is blocked; look for other hits */ + goto cannot_hit; + } + } else { + /* either of two points are required */ + + if (anBoardOpp[i - pi->anIntermediate[0]] > 1 && anBoardOpp[i - pi->anIntermediate[1]] > 1) { + /* both are blocked; look for other hits */ + goto cannot_hit; + } + } + + /* enter this shot as available */ + + aHit[aanCombination[j - 24 + i][n]] |= 1 << j; + cannot_hit:; + } + + memset(aRoll, 0, sizeof(aRoll)); + + if (!anBoard[24]) { + /* we're not on the bar; for each roll, */ + + for (i = 0; i < 21; i++) { + n = -1; /* (hitter used) */ + + /* for each way that roll hits, */ + for (j = 0; j < 4; j++) { + int r = aaRoll[i][j]; + + if (unlikely(r < 0)) + break; + + if (likely(!aHit[r])) + continue; + + pi = aIntermediate + r; + + if (pi->nFaces == 1) { + /* direct shot */ + k = msb32(aHit[r]); + /* select the most advanced blot; if we still have + * a chequer that can hit there */ + + if (n != k || anBoard[k] > 1) + aRoll[i].nChequers++; + + n = k; + + if (k - pi->nPips + 1 > aRoll[i].nPips) + aRoll[i].nPips = k - pi->nPips + 1; + + /* if rolling doubles, check for multiple + * direct shots */ + + if (aaRoll[i][3] >= 0 && aHit[r] & ~(1 << k)) + aRoll[i].nChequers++; + + } else { + /* indirect shot */ + if (!aRoll[i].nChequers) + aRoll[i].nChequers = 1; + + /* find the most advanced hitter */ + + k = msb32(aHit[r]); + + if (k - pi->nPips + 1 > aRoll[i].nPips) + aRoll[i].nPips = k - pi->nPips + 1; + + /* check for blots hit on intermediate points */ + + for (l = 0; l < 3 && pi->anIntermediate[l] > 0; l++) + if (anBoardOpp[23 - k + pi->anIntermediate[l]] == 1) { + + aRoll[i].nChequers++; + break; + } + } + } + } + } else if (anBoard[24] == 1) { + /* we have one on the bar; for each roll, */ + + for (i = 0; i < 21; i++) { + n = 0; /* (free to use either die to enter) */ + + for (j = 0; j < 4; j++) { + int r = aaRoll[i][j]; + + if (r < 0) + break; + + if (!aHit[r]) + continue; + + pi = aIntermediate + r; + + if (pi->nFaces == 1) { + /* direct shot */ + + /* FIXME: There must be a more profitable way to use + * the possibility of finding the msb quickly, + * but I don't understand the code below. */ +#ifdef HAVE___BUILTIN_CLZ + /* This shortcut is worthwhile only if msb32 is fast */ + for (k = msb32(aHit[r]); k > 0; k--) { +#else + for (k = 24; k > 0; k--) { +#endif + if (aHit[r] & (1 << k)) { + /* if we need this die to enter, we can't hit elsewhere */ + + if (n && k != 24) + break; + + /* if this isn't a shot from the bar, the + * other die must be used to enter */ + + if (k != 24) { + int npip = aIntermediate[aaRoll[i][1 - j]].nPips; + + if (anBoardOpp[npip - 1] > 1) + break; + + n = 1; + } + + aRoll[i].nChequers++; + + if (k - pi->nPips + 1 > aRoll[i].nPips) + aRoll[i].nPips = k - pi->nPips + 1; + } + } + } else { + /* indirect shot -- consider from the bar only */ + if (!(aHit[r] & (1 << 24))) + continue; + + if (!aRoll[i].nChequers) + aRoll[i].nChequers = 1; + + if (25 - pi->nPips > aRoll[i].nPips) + aRoll[i].nPips = 25 - pi->nPips; + + /* check for blots hit on intermediate points */ + for (k = 0; k < 3 && pi->anIntermediate[k] > 0; k++) + if (anBoardOpp[pi->anIntermediate[k] + 1] == 1) { + + aRoll[i].nChequers++; + break; + } + } + } + } + } else { + /* we have more than one on the bar -- + * count only direct shots from point 24 */ + + for (i = 0; i < 21; i++) { + /* for the first two ways that hit from the bar */ + + for (j = 0; j < 2; j++) { + int r = aaRoll[i][j]; + + if (!(aHit[r] & (1 << 24))) + continue; + + pi = aIntermediate + r; + + /* only consider direct shots */ + + if (pi->nFaces != 1) + continue; + + aRoll[i].nChequers++; + + if (25 - pi->nPips > aRoll[i].nPips) + aRoll[i].nPips = 25 - pi->nPips; + } + } + } + + { + int np = 0; + int n1 = 0; + int n2 = 0; + + for (i = 0; i < 6; i++) { + int nc = aRoll[i].nChequers; + + np += aRoll[i].nPips; + + if (nc > 0) { + n1 += 1; + + if (nc > 1) { + n2 += 1; + } + } + } + + for (; i < 21; i++) { + int nc = aRoll[i].nChequers; + + np += aRoll[i].nPips * 2; + + if (nc > 0) { + n1 += 2; + + if (nc > 1) { + n2 += 2; + } + } + } + + afInput[I_PIPLOSS] = (float) np / (12.0f * 36.0f); + + afInput[I_P1] = (float) n1 / 36.0f; + afInput[I_P2] = (float) n2 / 36.0f; + } + + afInput[I_BACKESCAPES] = (float) Escapes(anBoard, 23 - nOppBack) / 36.0f; + + afInput[I_BACKRESCAPES] = (float) Escapes1(anBoard, 23 - nOppBack) / 36.0f; + + for (n = 36, i = 15; i < 24 - nOppBack; i++) + if ((j = Escapes(anBoard, i)) < n) + n = j; + + afInput[I_ACONTAIN] = (float) (36 - n) / 36.0f; + afInput[I_ACONTAIN2] = afInput[I_ACONTAIN] * afInput[I_ACONTAIN]; + + if (nOppBack < 0) { + /* restart loop, point 24 should not be included */ + i = 15; + n = 36; + } + + for (; i < 24; i++) + if ((j = Escapes(anBoard, i)) < n) + n = j; + + + afInput[I_CONTAIN] = (float) (36 - n) / 36.0f; + afInput[I_CONTAIN2] = afInput[I_CONTAIN] * afInput[I_CONTAIN]; + + for (n = 0, i = 6; i < 25; i++) + if (anBoard[i]) + n += (i - 5) * anBoard[i] * Escapes(anBoardOpp, i); + + afInput[I_MOBILITY] = (float) n / 3600.0f; + + j = 0; + n = 0; + for (i = 0; i < 25; i++) { + int ni = anBoard[i]; + + if (ni) { + j += ni; + n += i * ni; + } + } + +// cppcheck-suppress zerodiv + n = (n + j - 1) / j; + + j = 0; + for (k = 0, i = n + 1; i < 25; i++) { + int ni = anBoard[i]; + + if (ni) { + j += ni; + k += ni * (i - n) * (i - n); + } + } + + if (j) { + k = (k + j - 1) / j; + } + + afInput[I_MOMENT2] = (float) k / 400.0f; + + if (anBoard[24] > 0) { + int loss = 0; + int two = anBoard[24] > 1; + + for (i = 0; i < 6; ++i) { + if (anBoardOpp[i] > 1) { + /* any double loses */ + + loss += 4 * (i + 1); + + for (j = i + 1; j < 6; ++j) { + if (anBoardOpp[j] > 1) { + loss += 2 * (i + j + 2); + } else { + if (two) { + loss += 2 * (i + 1); + } + } + } + } else { + if (two) { + for (j = i + 1; j < 6; ++j) { + if (anBoardOpp[j] > 1) { + loss += 2 * (j + 1); + } + } + } + } + } + + afInput[I_ENTER] = (float) loss / (36.0f * (49.0f / 6.0f)); + } else { + afInput[I_ENTER] = 0.0f; + } + + n = 0; + for (i = 0; i < 6; i++) { + n += anBoardOpp[i] > 1; + } + + afInput[I_ENTER2] = (float) (36 - (n - 6) * (n - 6)) / 36.0f; + + { + int pa = -1; + int w = 0; + int tot = 0; + int np; + + for (np = 23; np > 0; --np) { + if (unlikely(anBoard[np] >= 2)) { + if (pa == -1) { + pa = np; + continue; + } + + { + int d = pa - np; + + static const int ac[23] = { 11, 11, 11, 11, 11, 11, 11, + 6, 5, 4, 3, 2, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 + }; + + w += ac[d] * anBoard[pa]; + tot += anBoard[pa]; + } + } + } + + if (tot) { + afInput[I_BACKBONE] = 1.0f - ((float) w / ((float) tot * 11.0f)); + } else { + afInput[I_BACKBONE] = 0.0f; + } + } + + { + unsigned int nAc = 0; + + for (i = 18; i < 24; ++i) { + if (anBoard[i] > 1) { + ++nAc; + } + } + + afInput[I_BACKG] = 0.0f; + afInput[I_BACKG1] = 0.0f; + + if (nAc >= 1) { + unsigned int tot = 0; + for (i = 18; i < 25; ++i) { + tot += anBoard[i]; + } + + if (nAc > 1) { + /* g_assert( tot >= 4 ); */ + + afInput[I_BACKG] = (float) (tot - 3) / 4.0f; + } else { /* nAc == 1 */ + afInput[I_BACKG1] = (float) tot / 8.0f; + } + } + } +} + + +static void +CalculateRaceInputs(const TanBoard anBoard, float inputs[]) +{ + unsigned int side; + + for (side = 0; side < 2; ++side) { + unsigned int i, k; + + const unsigned int *const board = anBoard[side]; + float *const afInput = inputs + side * HALF_RACE_INPUTS; + + unsigned int menOff = 15; + + { + g_assert(board[23] == 0 && board[24] == 0); + } + + /* Points */ + for (i = 0; i < 23; ++i) { + unsigned int const nc = board[i]; + + k = i * 4; + + menOff -= nc; + + afInput[k++] = (nc == 1) ? 1.0f : 0.0f; + afInput[k++] = (nc == 2) ? 1.0f : 0.0f; + afInput[k++] = (nc >= 3) ? 1.0f : 0.0f; + afInput[k] = nc > 3 ? (float) (nc - 3) / 2.0f : 0.0f; + } + + /* Men off */ + for (k = 0; k < 14; ++k) { + afInput[RI_OFF + k] = (menOff == (k + 1)) ? 1.0f : 0.0f; + } + + { + unsigned int nCross = 0; + + for (k = 1; k < 4; ++k) { + for (i = 6 * k; i < 6 * k + 6; ++i) { + unsigned int const nc = board[i]; + + if (nc) { + nCross += nc * k; + } + } + } + + afInput[RI_NCROSS] = (float) nCross / 10.0f; + } + } +} + +/* baseInputs() is now in lib/inputs.c */ + +static void +menOffAll(const unsigned int *anBoard, float *afInput) +{ + /* Men off */ + int menOff = 15; + int i; + + for (i = 0; i < 25; i++) { + menOff -= anBoard[i]; + } + + if (menOff <= 5) { + afInput[0] = menOff ? (float) menOff / 5.0f : 0.0f; + afInput[1] = 0.0f; + afInput[2] = 0.0f; + } else if (menOff <= 10) { + afInput[0] = 1.0f; + afInput[1] = (float) (menOff - 5) / 5.0f; + afInput[2] = 0.0f; + } else { + afInput[0] = 1.0f; + afInput[1] = 1.0f; + afInput[2] = ((float) menOff - 10) / 5.0f; + } +} + +static void +menOffNonCrashed(const unsigned int *anBoard, float *afInput) +{ + int menOff = 15; + int i; + + for (i = 0; i < 25; ++i) { + menOff -= anBoard[i]; + } + { + g_assert(menOff <= 8); + } + + if (menOff <= 2) { + afInput[0] = menOff ? (float) menOff / 3.0f : 0.0f; + afInput[1] = 0.0f; + afInput[2] = 0.0f; + } else if (menOff <= 5) { + afInput[0] = 1.0f; + afInput[1] = (float) (menOff - 3) / 3.0f; + afInput[2] = 0.0f; + } else { + afInput[0] = 1.0f; + afInput[1] = 1.0f; + afInput[2] = (float) (menOff - 6) / 3.0f; + } + +} + +/* Calculates contact neural net inputs from the board position. */ + +static void +CalculateContactInputs(const TanBoard anBoard, float arInput[]) +{ + baseInputs(anBoard, arInput); + + { + float *b = arInput + MINPPERPOINT * 25 * 2; + + /* I accidentally switched sides (0 and 1) when I trained the net */ + menOffNonCrashed(anBoard[0], b + I_OFF1); + + CalculateHalfInputs(anBoard[1], anBoard[0], b); + } + + { + float *b = arInput + (MINPPERPOINT * 25 * 2 + MORE_INPUTS); + + menOffNonCrashed(anBoard[1], b + I_OFF1); + + CalculateHalfInputs(anBoard[0], anBoard[1], b); + } +} + +/* Calculates crashed neural net inputs from the board position. */ + +static void +CalculateCrashedInputs(const TanBoard anBoard, float arInput[]) +{ + baseInputs(anBoard, arInput); + + { + float *b = arInput + MINPPERPOINT * 25 * 2; + + menOffAll(anBoard[1], b + I_OFF1); + + CalculateHalfInputs(anBoard[1], anBoard[0], b); + } + + { + float *b = arInput + (MINPPERPOINT * 25 * 2 + MORE_INPUTS); + + menOffAll(anBoard[0], b + I_OFF1); + + CalculateHalfInputs(anBoard[0], anBoard[1], b); + } +} + +extern void +swap_us(unsigned int *p0, unsigned int *p1) +{ + unsigned int n = *p0; + + *p0 = *p1; + *p1 = n; +} + +extern void +swap(int *p0, int *p1) +{ + int n = *p0; + + *p0 = *p1; + *p1 = n; +} + +extern void +SwapSides(TanBoard anBoard) +{ + for (int i = 0; i < 25; i++) { + int n = anBoard[0][i]; + anBoard[0][i] = anBoard[1][i]; + anBoard[1][i] = n; + } +} + +/* An upper bound on the number of turns it can take to complete a bearoff + * from bearoff position ID i. */ +static int +MaxTurns(int id) +{ + unsigned short int aus[32]; + int i; + + BearoffDist(pbc1, id, NULL, NULL, NULL, aus, NULL); + + for (i = 31; i >= 0; i--) { + if (aus[i]) + return i; + } + + return -1; +} + +extern void +SanityCheck(const TanBoard anBoard, float arOutput[]) +{ + int i, j, nciq, ac[2], anBack[2], anCross[2], anGammonCross[2], anMaxTurns[2], fContact; + + g_assert(arOutput[OUTPUT_WIN] >= 0.0f && arOutput[OUTPUT_WIN] <= 1.0f); + g_assert(arOutput[OUTPUT_WINGAMMON] >= 0.0f && arOutput[OUTPUT_WINGAMMON] <= 1.0f); + g_assert(arOutput[OUTPUT_WINBACKGAMMON] >= 0.0f && arOutput[OUTPUT_WINBACKGAMMON] <= 1.0f); + g_assert(arOutput[OUTPUT_LOSEGAMMON] >= 0.0f && arOutput[OUTPUT_LOSEGAMMON] <= 1.0f); + g_assert(arOutput[OUTPUT_LOSEBACKGAMMON] >= 0.0f && arOutput[OUTPUT_LOSEBACKGAMMON] <= 1.0f); + + ac[0] = ac[1] = anBack[0] = anBack[1] = anCross[0] = anCross[1] = 0; + anGammonCross[0] = anGammonCross[1] = 1; + + for (j = 0; j < 2; j++) { + for (i = 0, nciq = 0; i < 6; i++) + if (anBoard[j][i]) { + anBack[j] = i; + nciq += anBoard[j][i]; + } + ac[j] = anCross[j] = nciq; + + for (i = 6, nciq = 0; i < 12; i++) + if (anBoard[j][i]) { + anBack[j] = i; + nciq += anBoard[j][i]; + } + ac[j] += nciq; + anCross[j] += 2 * nciq; + anGammonCross[j] += nciq; + + for (i = 12, nciq = 0; i < 18; i++) + if (anBoard[j][i]) { + anBack[j] = i; + nciq += anBoard[j][i]; + } + ac[j] += nciq; + anCross[j] += 3 * nciq; + anGammonCross[j] += 2 * nciq; + + for (i = 18, nciq = 0; i < 24; i++) + if (anBoard[j][i]) { + anBack[j] = i; + nciq += anBoard[j][i]; + } + ac[j] += nciq; + anCross[j] += 4 * nciq; + anGammonCross[j] += 3 * nciq; + + if (anBoard[j][24]) { + anBack[j] = 24; + ac[j] += anBoard[j][24]; + anCross[j] += 5 * anBoard[j][24]; + anGammonCross[j] += 4 * anBoard[j][24]; + } + } + + fContact = anBack[0] + anBack[1] >= 24; + + if (unlikely(!fContact)) { + for (i = 0; i < 2; i++) + if (anBack[i] < 6 && pbc1) + anMaxTurns[i] = MaxTurns(PositionBearoff(anBoard[i], pbc1->nPoints, pbc1->nChequers)); + else + anMaxTurns[i] = anCross[i] * 2; + + if (unlikely(!anMaxTurns[1])) + anMaxTurns[1] = 1; + + } + + if (unlikely(!fContact) && anCross[0] > 4 * (anMaxTurns[1] - 1)) + /* Certain win */ + arOutput[OUTPUT_WIN] = 1.0f; + + if (unlikely(ac[0] < 15)) + /* Opponent has borne off; no gammons or backgammons possible */ + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + else if (unlikely(!fContact)) { + if (anCross[1] > 8 * anGammonCross[0]) + /* Gammon impossible */ + arOutput[OUTPUT_WINGAMMON] = 0.0f; + else if (anGammonCross[0] > 4 * (anMaxTurns[1] - 1)) + /* Certain gammon */ + arOutput[OUTPUT_WINGAMMON] = 1.0f; + if (anBack[0] < 18) + /* Backgammon impossible */ + arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + } + + if (unlikely(!fContact) && anCross[1] > 4 * anMaxTurns[0]) + /* Certain loss */ + arOutput[OUTPUT_WIN] = 0.0f; + + if (unlikely(ac[1] < 15)) + /* Player has borne off; no gammon or backgammon losses possible */ + arOutput[OUTPUT_LOSEGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + else if (unlikely(!fContact)) { + if (anCross[0] > 8 * anGammonCross[1] - 4) + /* Gammon loss impossible */ + arOutput[OUTPUT_LOSEGAMMON] = 0.0f; + else if (anGammonCross[1] > 4 * anMaxTurns[0]) + /* Certain gammon loss */ + arOutput[OUTPUT_LOSEGAMMON] = 1.0f; + if (anBack[1] < 18) + /* Backgammon impossible */ + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + } + + /* gammons must be less than wins */ + if (unlikely(arOutput[OUTPUT_WINGAMMON] > arOutput[OUTPUT_WIN])) { + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WIN]; + } + + { + float lose = 1.0f - arOutput[OUTPUT_WIN]; + if (unlikely(arOutput[OUTPUT_LOSEGAMMON] > lose)) { + arOutput[OUTPUT_LOSEGAMMON] = lose; + } + } + + /* Backgammons cannot exceed gammons */ + if (unlikely(arOutput[OUTPUT_WINBACKGAMMON] > arOutput[OUTPUT_WINGAMMON])) + arOutput[OUTPUT_WINBACKGAMMON] = arOutput[OUTPUT_WINGAMMON]; + + if (unlikely(arOutput[OUTPUT_LOSEBACKGAMMON] > arOutput[OUTPUT_LOSEGAMMON])) + arOutput[OUTPUT_LOSEBACKGAMMON] = arOutput[OUTPUT_LOSEGAMMON]; + + if (fContact) { + float noise = 1 / 10000.0f; + + for (i = OUTPUT_WINGAMMON; i < NUM_OUTPUTS; ++i) { + if (unlikely(arOutput[i] < noise)) { + arOutput[i] = 0.0f; + } + } + } + +} + + +extern positionclass +ClassifyPosition(const TanBoard anBoard, const bgvariation bgv) +{ + int nOppBack, nBack; + + for (nOppBack = 24; nOppBack >= 0; --nOppBack) { + if (anBoard[0][nOppBack]) { + break; + } + } + + for (nBack = 24; nBack >= 0; --nBack) { + if (anBoard[1][nBack]) { + break; + } + } + + if (unlikely(nBack < 0 || nOppBack < 0)) + return CLASS_OVER; + + /* special classes for hypergammon variants */ + + switch (bgv) { + case VARIATION_HYPERGAMMON_1: + return CLASS_HYPERGAMMON1; + + case VARIATION_HYPERGAMMON_2: + return CLASS_HYPERGAMMON2; + + case VARIATION_HYPERGAMMON_3: + return CLASS_HYPERGAMMON3; + + case VARIATION_STANDARD: + case VARIATION_NACKGAMMON: + + /* normal backgammon */ + + if (nBack + nOppBack > 22) { + + /* contact position */ + + unsigned int const N = 6; + unsigned int i; + unsigned int side; + + for (side = 0; side < 2; ++side) { + unsigned int tot = 0; + + const unsigned int *board = anBoard[side]; + + for (i = 0; i < 25; ++i) { + tot += board[i]; + } + + if (unlikely(tot <= N)) { + return CLASS_CRASHED; + } else { + if (unlikely(board[0] > 1)) { + if (unlikely(tot <= (N + board[0]))) { + return CLASS_CRASHED; + } else { + if (unlikely((1 + tot - (board[0] + board[1])) <= N) && board[1] > 1) { + return CLASS_CRASHED; + } + } + } else { + if (unlikely(tot <= (N + (board[1] - 1)))) { + return CLASS_CRASHED; + } + } + } + } + + return CLASS_CONTACT; + } else { + + if (unlikely(isBearoff(pbc2, anBoard))) + return CLASS_BEAROFF2; + + if (unlikely(isBearoff(pbcTS, anBoard))) + return CLASS_BEAROFF_TS; + + if (unlikely(isBearoff(pbc1, anBoard))) + return CLASS_BEAROFF1; + + if (unlikely(isBearoff(pbcOS, anBoard))) + return CLASS_BEAROFF_OS; + + return CLASS_RACE; + + } + + default: + + g_assert_not_reached(); + + } + + return CLASS_OVER; /* for fussy compilers */ +} + +static int +EvalBearoff2(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + g_assert(pbc2); + + return BearoffEval(pbc2, anBoard, arOutput); +} + +static int +EvalBearoffOS(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(pbcOS, anBoard, arOutput); + +} + + +static int +EvalBearoffTS(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(pbcTS, anBoard, arOutput); + +} + +static int +EvalHypergammon1(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(apbcHyper[0], anBoard, arOutput); + +} + +static int +EvalHypergammon2(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(apbcHyper[1], anBoard, arOutput); + +} + +static int +EvalHypergammon3(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(apbcHyper[2], anBoard, arOutput); + +} + +static int +EvalBearoff1(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * UNUSED(nnStates)) +{ + + return BearoffEval(pbc1, anBoard, arOutput); + +} + +enum { + /* gammon possible by side on roll */ + G_POSSIBLE = 0x1, + /* backgammon possible by side on roll */ + BG_POSSIBLE = 0x2, + /* gammon possible by side not on roll */ + OG_POSSIBLE = 0x4, + /* backgammon possible by side not on roll */ + OBG_POSSIBLE = 0x8 +}; + +/* side - side that potentially can win a backgammon */ +/* Return - Probablity that side will win a backgammon */ + +static float +raceBGprob(const TanBoard anBoard, int side, const bgvariation bgv) +{ + int totMenHome = 0; + int totPipsOp = 0; + unsigned int i; + TanBoard dummy; + + for (i = 0; i < 6; ++i) { + totMenHome += anBoard[side][i]; + } + + for (i = 22; i >= 18; --i) { + totPipsOp += anBoard[1 - side][i] * (i - 17); + } + + if (!((totMenHome + 3) / 4 - (side == 1 ? 1 : 0) <= (totPipsOp + 2) / 3)) { + return 0.0f; + } + + for (i = 0; i < 25; ++i) { + dummy[side][i] = anBoard[side][i]; + } + + for (i = 0; i < 6; ++i) { + dummy[1 - side][i] = anBoard[1 - side][18 + i]; + } + + for (i = 6; i < 25; ++i) { + dummy[1 - side][i] = 0; + } + + { + float p = 0.0f; + const long *bgp = getRaceBGprobs(dummy[1 - side]); + if (bgp) { + int k = PositionBearoff(anBoard[side], pbc1->nPoints, pbc1->nChequers); + unsigned short int aProb[32]; + + unsigned int j; + + unsigned long scale = (side == 0) ? 36 : 1; + + BearoffDist(pbc1, k, NULL, NULL, NULL, aProb, NULL); + + for (j = 1 - side; j < RBG_NPROBS; j++) { + unsigned long sum = 0; + scale *= 36; + for (i = 1; i <= j + side; ++i) { + sum += aProb[i]; + } + p += (float) bgp[j] / (float) scale *(float) sum; + } + + p /= 65535.0f; + + } else { + float ar[5]; + + if (PositionBearoff(dummy[0], 6, 15) > 923 || PositionBearoff(dummy[1], 6, 15) > 923) { + EvalBearoff1((ConstTanBoard) dummy, ar, bgv, NULL); + } else { + EvalBearoff2((ConstTanBoard) dummy, ar, bgv, NULL); + } + + p = (side == 1 ? ar[0] : 1.0f - ar[0]); + } + + return MIN(p, 1.0f); + } +} + +extern void +EvalRaceBG(const TanBoard anBoard, float arOutput[], const bgvariation bgv) + +/* anBoard[1] is on roll */ +{ + /* total men for side not on roll */ + int totMen0 = 0; + + /* total men for side on roll */ + int totMen1 = 0; + + /* a set flag for every possible outcome */ + int any = 0; + + int i; + + for (i = 23; i >= 0; --i) { + totMen0 += anBoard[0][i]; + totMen1 += anBoard[1][i]; + } + + if (totMen1 == 15) { + any |= OG_POSSIBLE; + } + + if (totMen0 == 15) { + any |= G_POSSIBLE; + } + + if (any) { + if (any & OG_POSSIBLE) { + for (i = 23; i >= 18; --i) { + if (anBoard[1][i] > 0) { + break; + } + } + if (i >= 18) { + any |= OBG_POSSIBLE; + } + } + + if (any & G_POSSIBLE) { + for (i = 23; i >= 18; --i) { + if (anBoard[0][i] > 0) { + break; + } + } + + if (i >= 18) { + any |= BG_POSSIBLE; + } + } + } + + if (any & (BG_POSSIBLE | OBG_POSSIBLE)) { + /* side that can have the backgammon */ + int side = (any & BG_POSSIBLE) ? 1 : 0; + + float pr = raceBGprob(anBoard, side, bgv); + + if (pr > 0.0f) { + if (side == 1) { + arOutput[OUTPUT_WINBACKGAMMON] = pr; + + if (arOutput[OUTPUT_WINGAMMON] < arOutput[OUTPUT_WINBACKGAMMON]) { + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WINBACKGAMMON]; + } + } else { + arOutput[OUTPUT_LOSEBACKGAMMON] = pr; + + if (arOutput[OUTPUT_LOSEGAMMON] < arOutput[OUTPUT_LOSEBACKGAMMON]) { + arOutput[OUTPUT_LOSEGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON]; + } + } + } else { + if (side == 1) { + arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + } else { + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + } + } + } +} + +static int +EvalRace(const TanBoard anBoard, float arOutput[], const bgvariation bgv, NNState * nnStates) +{ + SSE_ALIGN(float arInput[NUM_RACE_INPUTS]); + + CalculateRaceInputs(anBoard, arInput); + +#if defined(USE_SIMD_INSTRUCTIONS) + if (NeuralNetEvaluateSSE(&nnRace, arInput, arOutput, nnStates ? nnStates + (CLASS_RACE - CLASS_RACE) : NULL)) +#else + if (NeuralNetEvaluate(&nnRace, arInput, arOutput, nnStates ? nnStates + (CLASS_RACE - CLASS_RACE) : NULL)) +#endif + return -1; + + /* special evaluation of backgammons overrides net output */ + + EvalRaceBG(anBoard, arOutput, bgv); + + /* sanity check will take care of rest */ + + return 0; +} + +static int +EvalContact(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * nnStates) +{ + SSE_ALIGN(float arInput[NUM_INPUTS]); + + CalculateContactInputs(anBoard, arInput); + +#if defined(USE_SIMD_INSTRUCTIONS) + return NeuralNetEvaluateSSE(&nnContact, arInput, arOutput, + nnStates ? nnStates + (CLASS_CONTACT - CLASS_RACE) : NULL); +#else + return NeuralNetEvaluate(&nnContact, arInput, arOutput, nnStates ? nnStates + (CLASS_CONTACT - CLASS_RACE) : NULL); +#endif +} + +static int +EvalCrashed(const TanBoard anBoard, float arOutput[], const bgvariation UNUSED(bgv), NNState * nnStates) +{ + SSE_ALIGN(float arInput[NUM_INPUTS]); + + CalculateCrashedInputs(anBoard, arInput); + +#if defined(USE_SIMD_INSTRUCTIONS) + return NeuralNetEvaluateSSE(&nnCrashed, arInput, arOutput, + nnStates ? nnStates + (CLASS_CRASHED - CLASS_RACE) : NULL); +#else + return NeuralNetEvaluate(&nnCrashed, arInput, arOutput, nnStates ? nnStates + (CLASS_CRASHED - CLASS_RACE) : NULL); +#endif +} + +extern int +EvalOver(const TanBoard anBoard, float arOutput[], const bgvariation bgv, NNState * UNUSED(nnStates)) +{ + int i, c; + int n = anChequers[bgv]; + + for (i = 0; i < 25; i++) + if (anBoard[0][i]) + break; + + if (i == 25) { + /* opponent has no pieces on board; player has lost */ + arOutput[OUTPUT_WIN] = arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + + for (i = 0, c = 0; i < 25; i++) + c += anBoard[1][i]; + + if (c == n) { + /* player still has all pieces on board; loses gammon */ + arOutput[OUTPUT_LOSEGAMMON] = 1.0f; + + for (i = 18; i < 25; i++) + if (anBoard[1][i]) { + /* player still has pieces in opponent's home board; + * loses backgammon */ + arOutput[OUTPUT_LOSEBACKGAMMON] = 1.0f; + + return 0; + } + + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + + return 0; + } + + arOutput[OUTPUT_LOSEGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + + return 0; + } + + for (i = 0; i < 25; i++) + if (anBoard[1][i]) + break; + + if (i == 25) { + /* player has no pieces on board; wins */ + arOutput[OUTPUT_WIN] = 1.0f; + arOutput[OUTPUT_LOSEGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + + for (i = 0, c = 0; i < 25; i++) + c += anBoard[0][i]; + + if (c == n) { + /* opponent still has all pieces on board; win gammon */ + arOutput[OUTPUT_WINGAMMON] = 1.0f; + + for (i = 18; i < 25; i++) + if (anBoard[0][i]) { + /* opponent still has pieces in player's home board; + * win backgammon */ + arOutput[OUTPUT_WINBACKGAMMON] = 1.0f; + + return 0; + } + + arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + + return 0; + } + + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WINBACKGAMMON] = 0.0f; + } + + return 0; + +} + +classevalfunc acef[N_CLASSES] = { + EvalOver, + EvalHypergammon1, + EvalHypergammon2, + EvalHypergammon3, + EvalBearoff2, EvalBearoffTS, + EvalBearoff1, EvalBearoffOS, + EvalRace, EvalCrashed, EvalContact +}; + +extern float +Noise(const evalcontext * pec, const TanBoard anBoard, int iOutput) +{ + float r; + + if (pec->fDeterministic) { + char auchBoard[50]; + unsigned char auch[16]; + int i; + + for (i = 0; i < 25; i++) { + auchBoard[i << 1] = (char) anBoard[0][i]; + auchBoard[(i << 1) + 1] = (char) anBoard[1][i]; + } + + auchBoard[0] += (char) iOutput; + + md5_buffer(auchBoard, 50, auch); + + /* We can't use a Box-Muller transform here, because generating + * a point in the unit circle requires a potentially unbounded + * number of integers, and all we have is the board. So we + * just take the sum of the bytes in the hash, which (by the + * central limit theorem) should have a normal-ish distribution. */ + + r = 0.0f; + for (i = 0; i < 16; i++) + r += auch[i]; + + r -= 2040.0f; + r /= 295.6f; + } else { + /* Box-Muller transform of a point in the unit circle. */ + float x, y; + +#if defined(USE_MULTITHREAD) + g_mutex_lock(&noiseRNGMutex); +#endif + do { + x = (float) irand(&rc) * 2.0f / (float) UB4MAXVAL - 1.0f; + y = (float) irand(&rc) * 2.0f / (float) UB4MAXVAL - 1.0f; + r = x * x + y * y; + } while (r > 1.0f || r == 0.0f); +#if defined(USE_MULTITHREAD) + g_mutex_unlock(&noiseRNGMutex); +#endif + + r = y * sqrtf(-2.0f * logf(r) / r); + (void) x; + } + + r *= pec->rNoise; + + if (iOutput == OUTPUT_WINGAMMON || iOutput == OUTPUT_LOSEGAMMON) + r *= 0.25f; + else if (iOutput == OUTPUT_WINBACKGAMMON || iOutput == OUTPUT_LOSEBACKGAMMON) + r *= 0.01f; + + return r; +} + +extern int +EvalKey(const evalcontext * pec, const int nPlies, const cubeinfo * pci, int fCubefulEquity) +{ + + int iKey; + /* + * Bit 00-03: nPlies + * Bit 04 : fCubeful + * Bit 05 : fMove + * Bit 06 : fUsePrune + * Bit 07-12: anScore[ 0 ] + * Bit 13-18: anScore[ 1 ] + * Bit 19-22: log2(nCube) + * Bit 23-24: fCubeOwner + * Bit 25 : fCrawford + * Bit 26 : fJacoby + * Bit 27 : fBeavers + */ + + iKey = (nPlies | (pec->fCubeful << 4) | (pci->fMove << 5)); + + if (nPlies) + iKey ^= ((pec->fUsePrune) << 6); + + + if (nPlies || fCubefulEquity) { + /* In match play, the score and cube value and position are important. */ + if (pci->nMatchTo) + iKey ^= + ((pci->nMatchTo - pci->anScore[pci->fMove] - 1) << 7) ^ + ((pci->nMatchTo - pci->anScore[!pci->fMove] - 1) << 13) ^ + (LogCube(pci->nCube) << 19) ^ + ((pci->fCubeOwner < 0 ? 2 : pci->fCubeOwner == pci->fMove) << 23) ^ (pci->fCrawford << 25); + else if (pec->fCubeful || fCubefulEquity) + /* in cubeful money games the cube position and rules are important. */ + iKey ^= + ((pci->fCubeOwner < 0 ? 2 : + pci->fCubeOwner == pci->fMove) << 23) ^ (pci->fJacoby << 26) ^ (pci->fBeavers << 27); + + if (fCubefulEquity) + iKey ^= 0x6a47b47e; + } + + return iKey; + +} + +extern int +PerfectCubeful(bearoffcontext * pbc, const TanBoard anBoard, float arEquity[]) +{ + + unsigned int nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned int nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + unsigned int n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUs * n + nThem; + + return BearoffCubeful(pbc, iPos, arEquity, NULL); + +} + + +extern int +EvaluatePerfectCubeful(const TanBoard anBoard, float arEquity[], const bgvariation bgv) +{ + + positionclass pc = ClassifyPosition(anBoard, bgv); + + g_assert(pc <= CLASS_PERFECT); + + switch (pc) { + case CLASS_BEAROFF2: + return PerfectCubeful(pbc2, anBoard, arEquity); + case CLASS_BEAROFF_TS: + return PerfectCubeful(pbcTS, anBoard, arEquity); + default: + g_assert_not_reached(); + } + + return -1; + +} + +extern void +InvertEvaluation(float ar[NUM_OUTPUTS]) +{ + + float r; + + ar[OUTPUT_WIN] = 1.0f - ar[OUTPUT_WIN]; + + r = ar[OUTPUT_WINGAMMON]; + ar[OUTPUT_WINGAMMON] = ar[OUTPUT_LOSEGAMMON]; + ar[OUTPUT_LOSEGAMMON] = r; + + r = ar[OUTPUT_WINBACKGAMMON]; + ar[OUTPUT_WINBACKGAMMON] = ar[OUTPUT_LOSEBACKGAMMON]; + ar[OUTPUT_LOSEBACKGAMMON] = r; +} + +extern void +InvertEvaluationR(float ar[NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci) +{ + /* invert win, gammon etc. */ + + InvertEvaluation(ar); + + /* invert equities */ + + ar[OUTPUT_EQUITY] = -ar[OUTPUT_EQUITY]; + + if (pci->nMatchTo) + ar[OUTPUT_CUBEFUL_EQUITY] = 1.0f - ar[OUTPUT_CUBEFUL_EQUITY]; + else + ar[OUTPUT_CUBEFUL_EQUITY] = -ar[OUTPUT_CUBEFUL_EQUITY]; + + +} + + +extern int +GameStatus(const TanBoard anBoard, const bgvariation bgv) +{ + + SSE_ALIGN(float ar[NUM_OUTPUTS]) = { 0.0f }; + + if (ClassifyPosition(anBoard, bgv) != CLASS_OVER) + return 0; + + EvalOver(anBoard, ar, bgv, NULL); + + if (ar[OUTPUT_WINBACKGAMMON] > 0.0f || ar[OUTPUT_LOSEBACKGAMMON] > 0.0f) + return 3; + + if (ar[OUTPUT_WINGAMMON] > 0.0f || ar[OUTPUT_LOSEGAMMON] > 0.0f) + return 2; + + return 1; + +} + +/* + * Utility returns the "correct" cubeless equity based on the current + * gammon values. + * + * Use UtilityME to get the "true" money equity. + */ + +extern float +Utility(float ar[NUM_OUTPUTS], const cubeinfo * pci) +{ + + if (!pci->nMatchTo) { + + /* equity calculation for money game */ + + /* For money game the gammon price is the same for both + * players, so there is no need to use pci->fMove. */ + return + ar[OUTPUT_WIN] * 2.0f - 1.0f + + (ar[OUTPUT_WINGAMMON] - ar[OUTPUT_LOSEGAMMON]) * + pci->arGammonPrice[0] + (ar[OUTPUT_WINBACKGAMMON] - ar[OUTPUT_LOSEBACKGAMMON]) * pci->arGammonPrice[1]; + + } else { + + /* equity calculation for match play */ + + return ar[OUTPUT_WIN] * 2.0f - 1.0f + ar[OUTPUT_WINGAMMON] * pci->arGammonPrice[pci->fMove] + - ar[OUTPUT_LOSEGAMMON] * pci->arGammonPrice[!pci->fMove] + + ar[OUTPUT_WINBACKGAMMON] * pci->arGammonPrice[2 + pci->fMove] + - ar[OUTPUT_LOSEBACKGAMMON] * pci->arGammonPrice[2 + !pci->fMove]; + + } + +} + +/* + * UtilityME is identical to Utility for match play. + * For money play it returns the money equity instead of the + * correct cubeless equity. + */ + +extern float +UtilityME(float ar[NUM_OUTPUTS], const cubeinfo * pci) +{ + + if (!pci->nMatchTo) + + /* calculate money equity */ + + return + ar[OUTPUT_WIN] * 2.0f - 1.0f + + (ar[OUTPUT_WINGAMMON] - ar[OUTPUT_LOSEGAMMON]) + (ar[OUTPUT_WINBACKGAMMON] - ar[OUTPUT_LOSEBACKGAMMON]); + + else + + return Utility(ar, pci); + +} + + +extern float +mwc2eq(const float rMwc, const cubeinfo * pci) +{ + + /* mwc if I win/lose */ + + float rMwcWin, rMwcLose; + + rMwcWin = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + rMwcLose = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, !pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* + * make linear inter- or extrapolation: + * equity mwc + * -1 rMwcLose + * +1 rMwcWin + * + * Interpolation formula: + * + * 2 * rMwc - ( rMwcWin + rMwcLose ) + * rEq = --------------------------------- + * rMwcWin - rMwcLose + * + * FIXME: numerical problems? + * If you are trailing 30-away, 1-away the difference between + * 29-away, 1-away and 30-away, 0-away is not very large, and it may + * give numerical problems. + * + */ + + return (2.0f * rMwc - (rMwcWin + rMwcLose)) / (rMwcWin - rMwcLose); + +} + +extern float +eq2mwc(const float rEq, const cubeinfo * pci) +{ + + /* mwc if I win/lose */ + + float rMwcWin, rMwcLose; + + rMwcWin = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + rMwcLose = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, !pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* + * Linear inter- or extrapolation. + * Solve the formula in the routine above (mwc2eq): + * + * rEq * ( rMwcWin - rMwcLose ) + ( rMwcWin + rMwcLose ) + * rMwc = ----------------------------------------------------- + * 2 + */ + + return 0.5f * (rEq * (rMwcWin - rMwcLose) + (rMwcWin + rMwcLose)); + +} + +/* + * Convert standard error MWC to standard error equity + * + */ + +extern float +se_mwc2eq(const float rMwc, const cubeinfo * pci) +{ + + /* mwc if I win/lose */ + + float rMwcWin, rMwcLose; + + rMwcWin = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + rMwcLose = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, !pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + return 2.0f / (rMwcWin - rMwcLose) * rMwc; + +} + +/* + * Convert standard error equity to standard error mwc + * + */ + +extern float +se_eq2mwc(const float rEq, const cubeinfo * pci) +{ + + /* mwc if I win/lose */ + + float rMwcWin, rMwcLose; + + rMwcWin = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + rMwcLose = getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, !pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* + * Linear inter- or extrapolation. + * Solve the formula in the routine above (mwc2eq): + * + * rEq * ( rMwcWin - rMwcLose ) + ( rMwcWin + rMwcLose ) + * rMwc = ----------------------------------------------------- + * 2 + */ + + return 0.5f * rEq * (rMwcWin - rMwcLose); + +} + +extern int +ApplySubMove(TanBoard anBoard, const int iSrc, const int nRoll, const int fCheckLegal) +{ + + int iDest = iSrc - nRoll; + + if (fCheckLegal && (nRoll < 1 || nRoll > 6)) { + /* Invalid dice roll */ + errno = EINVAL; + return -1; + } + + if (iSrc < 0 || iSrc > 24 || iDest >= iSrc || anBoard[1][iSrc] < 1) { + /* Invalid point number, or source point is empty */ + errno = EINVAL; + return -1; + } + + anBoard[1][iSrc]--; + + if (iDest < 0) + return 0; + + if (anBoard[0][23 - iDest]) { + if (anBoard[0][23 - iDest] > 1) { + /* Trying to move to a point already made by the opponent */ + errno = EINVAL; + return -1; + } + anBoard[1][iDest] = 1; + anBoard[0][23 - iDest] = 0; + anBoard[0][24]++; + } else + anBoard[1][iDest]++; + + return 0; +} + +extern int +ApplyMove(TanBoard anBoard, const int anMove[8], const int fCheckLegal) +{ + int i; + + for (i = 0; i < 8 && anMove[i] >= 0; i += 2) + if (ApplySubMove(anBoard, anMove[i], anMove[i] - anMove[i + 1], fCheckLegal)) + return -1; + + return 0; +} + +static void +SaveMoves(movelist * pml, unsigned int cMoves, unsigned int cPip, int anMoves[], const TanBoard anBoard, int fPartial) +{ + unsigned int i, j; + move *pm; + positionkey key; + + if (fPartial) { + /* Save all moves, even incomplete ones */ + if (cMoves > pml->cMaxMoves) + pml->cMaxMoves = cMoves; + + if (cPip > pml->cMaxPips) + pml->cMaxPips = cPip; + } else { + /* Save only legal moves: if the current move moves plays less + * chequers or pips than those already found, it is illegal; if + * it plays more, the old moves are illegal. */ + if (cMoves < pml->cMaxMoves || cPip < pml->cMaxPips) + return; + + if (cMoves > pml->cMaxMoves || cPip > pml->cMaxPips) + pml->cMoves = 0; + + pml->cMaxMoves = cMoves; + pml->cMaxPips = cPip; + } + + PositionKey(anBoard, &key); + + for (i = 0; i < pml->cMoves; i++) { + + pm = &(pml->amMoves[i]); + + if (EqualKeys(key, pm->key)) { + if (cMoves > pm->cMoves || cPip > pm->cPips) { + for (j = 0; j < cMoves * 2; j++) + pm->anMove[j] = anMoves[j] > -1 ? anMoves[j] : -1; + + if (cMoves < 4) + pm->anMove[cMoves * 2] = -1; + + pm->cMoves = cMoves; + pm->cPips = cPip; + } + + return; + } + } + + pm = pml->amMoves + pml->cMoves; + + for (i = 0; i < cMoves * 2; i++) + pm->anMove[i] = anMoves[i] > -1 ? anMoves[i] : -1; + + if (cMoves < 4) + pm->anMove[cMoves * 2] = -1; + + CopyKey(key, pm->key); + + pm->cMoves = cMoves; + pm->cPips = cPip; + pm->cmark = CMARK_NONE; + + for (i = 0; i < NUM_OUTPUTS; i++) + pm->arEvalMove[i] = 0.0f; + + pml->cMoves++; + + g_assert(pml->cMoves < MAX_INCOMPLETE_MOVES); +} + +static int +LegalMove(const TanBoard anBoard, int iSrc, int nPips) +{ + + int nBack; + const int iDest = iSrc - nPips; + + if (iDest >= 0) { /* Here we can do the Chris rule check */ + return (anBoard[0][23 - iDest] < 2); + } + /* otherwise, attempting to bear off */ + + for (nBack = 24; nBack > 0; nBack--) + if (anBoard[1][nBack] > 0) + break; + + return (nBack <= 5 && (iSrc == nBack || iDest == -1)); +} + +static int +GenerateMovesSub(movelist * pml, int anRoll[], int nMoveDepth, + int iPip, int cPip, const TanBoard anBoard, int anMoves[], int fPartial) +{ + int i, fUsed = 0; + TanBoard anBoardNew; + + if (nMoveDepth > 3 || !anRoll[nMoveDepth]) + return TRUE; + + if (anBoard[1][24]) { /* on bar */ + if (anBoard[0][anRoll[nMoveDepth] - 1] >= 2) + return TRUE; + + anMoves[nMoveDepth * 2] = 24; + anMoves[nMoveDepth * 2 + 1] = 24 - anRoll[nMoveDepth]; + + for (i = 0; i < 25; i++) { + anBoardNew[0][i] = anBoard[0][i]; + anBoardNew[1][i] = anBoard[1][i]; + } + + ApplySubMove(anBoardNew, 24, anRoll[nMoveDepth], TRUE); + + if (GenerateMovesSub(pml, anRoll, nMoveDepth + 1, 23, cPip + + anRoll[nMoveDepth], (ConstTanBoard) anBoardNew, anMoves, fPartial)) + SaveMoves(pml, nMoveDepth + 1, cPip + anRoll[nMoveDepth], anMoves, (ConstTanBoard) anBoardNew, fPartial); + + return fPartial; + } else { + for (i = iPip; i >= 0; i--) + if (anBoard[1][i] && LegalMove(anBoard, i, anRoll[nMoveDepth])) { + anMoves[nMoveDepth * 2] = i; + anMoves[nMoveDepth * 2 + 1] = i - anRoll[nMoveDepth]; + + memcpy(anBoardNew, anBoard, sizeof(anBoardNew)); + + ApplySubMove(anBoardNew, i, anRoll[nMoveDepth], TRUE); + + if (GenerateMovesSub(pml, anRoll, nMoveDepth + 1, + anRoll[0] == anRoll[1] ? i : 23, + cPip + anRoll[nMoveDepth], (ConstTanBoard) anBoardNew, anMoves, fPartial)) + SaveMoves(pml, nMoveDepth + 1, cPip + + anRoll[nMoveDepth], anMoves, (ConstTanBoard) anBoardNew, fPartial); + + fUsed = 1; + } + } + + return !fUsed || fPartial; +} + +extern int +CompareMoves(const move * pm0, const move * pm1) +{ + + /* return (pm1->rScore > pm0->rScore || (pm1->rScore == pm0->rScore && pm1->rScore2 > pm0->rScore2)) ? 1 : -1; */ + /* high score first */ + if (pm0->rScore > pm1->rScore) + return -1; + if (pm0->rScore < pm1->rScore) + return 1; + + if (pm0->rScore2 > pm1->rScore2) + return -1; + if (pm0->rScore2 < pm1->rScore2) + return 1; + + /* (pm0->rScore == pm1->rScore) && (pm0->rScore2 == pm1->rScore2) + * when it is used directly as a qsort() comparator */ + return 0; +} + +static int +CompareMovesGeneral(const move * pm0, const move * pm1) +{ + TanBoard board[2]; + int back[2] = { -1, -1 }; + int cleft[2] = { 0, 0 }; + int a, b; + + int i = cmp_evalsetup(&pm0->esMove, &pm1->esMove); + + if (i) + return -i; /* sort descending */ + + /* find the "back" chequer and the number of chequers left */ + PositionFromKey(board[0], &pm0->key); + PositionFromKey(board[1], &pm1->key); + for (a = 0; a < 2; a++) { + for (b = 0; b <= 24 ; b++) { + if (board[a][1][b] > 0) { + back[a] = b; + cleft[a] += board[a][1][b]; + } + } + } + + /* Rounding errors when collating evaluations with lookahead make + * comparing for equality unreliable. The first check below catches + * situations that would be obvious and puzzling to a human opponent. + * In general, the third check is probably not reached as often as it + * should and, among equal moves, the most "natural" one may not + * always be chosen. */ + + /* Winning now is always at least as good as winning later */ + if (back[0] == -1 && back[1] != -1) + return -1; + if (back[1] == -1 && back[0] != -1) + return 1; + + if (pm0->rScore != pm1->rScore || pm0->rScore2 != pm1->rScore2) + return CompareMoves(pm0, pm1); + + /* If everything else is equal bear as many men off as possible */ + if (cleft[0] > cleft[1]) + return 1; + if (cleft[0] < cleft[1]) + return -1; + + /* If everything else is equal "back" chequer at high point bad */ + if (back[0] > back[1]) + return 1; + if (back[0] < back[1]) + return -1; + + return 0; +} + +extern int +GenerateMoves(movelist * pml, const TanBoard anBoard, int n0, int n1, int fPartial) +{ + + int anRoll[4], anMoves[8]; + anRoll[0] = n0; + anRoll[1] = n1; + + anRoll[2] = anRoll[3] = ((n0 == n1) ? n0 : 0); + + pml->cMoves = pml->cMaxMoves = pml->cMaxPips = pml->iMoveBest = 0; + pml->amMoves = MT_Get_aMoves(); + GenerateMovesSub(pml, anRoll, 0, 23, 0, anBoard, anMoves, fPartial); + + if (anRoll[0] != anRoll[1]) { + swap(anRoll, anRoll + 1); + + GenerateMovesSub(pml, anRoll, 0, 23, 0, anBoard, anMoves, fPartial); + } + + return pml->cMoves; +} + + +extern float +KleinmanCount(int nPipOnRoll, int nPipNotOnRoll) +{ + int nDiff, nSum; + + nDiff = nPipNotOnRoll - nPipOnRoll; + nSum = nPipNotOnRoll + nPipOnRoll; + + if (nSum > 4) { + float rK = (float) (nDiff + 4) / (2.0f * sqrtf((float) (nSum - 4))); + return 0.5f * (1.0f + erff(rK)); + } else + return 0.f; +} + +extern int +KeithCount(const TanBoard anBoard, int pn[2]) +{ + unsigned int anPips[2]; + int i, x; + PipCount(anBoard, anPips); + for (i = 0; i < 2; i++) { + pn[i] = anPips[i]; + pn[i] += (MAX(1, anBoard[i][0]) - 1) * 2; + pn[i] += MAX(1, anBoard[i][1]) - 1; + pn[i] += MAX(3, anBoard[i][2]) - 3; + for (x = 3; x < 6; x++) + if (!anBoard[i][x]) + pn[i]++; + } + return 0; +} + +extern int +IsightCount(const TanBoard anBoard, int pn[2]) +{ + unsigned int anPips[2]; + int anMenLeft[2] = { 0, 0 }, anCrossOver[2] = { 0, 0 }; + int i, x; + + PipCount(anBoard, anPips); + + for (x = 0; x < 25; x++) { + anMenLeft[0] += anBoard[0][x]; + anMenLeft[1] += anBoard[1][x]; + anCrossOver[0] += anBoard[0][x] * (x / 6); + anCrossOver[1] += anBoard[1][x] * (x / 6); + } + + for (i = 0; i < 2; i++) { + pn[i] = anPips[i]; + if (anMenLeft[i] > anMenLeft[1 - i]) + pn[i] += (anMenLeft[i] - anMenLeft[1 - i]); + pn[i] += (MAX(2, anBoard[i][0]) - 2) * 2; + pn[i] += MAX(2, anBoard[i][1]) - 2; + pn[i] += MAX(3, anBoard[i][2]) - 3; + for (x = 3; x < 6; x++) + if (!anBoard[i][x] && anBoard[1 - i][x]) + pn[i]++; + if (anCrossOver[i] > anCrossOver[1 - i]) + pn[i] += (anCrossOver[i] - anCrossOver[1 - i]); + } + return 0; +} + +extern int +ThorpCount(const TanBoard anBoard, int *pnLeader, float *adjusted, int *pnTrailer) +{ + + int anCovered[2], anMenLeft[2]; + int x; + unsigned int anPips[2]; + + PipCount(anBoard, anPips); + + anMenLeft[0] = 0; + anMenLeft[1] = 0; + for (x = 0; x < 25; x++) { + anMenLeft[0] += anBoard[0][x]; + anMenLeft[1] += anBoard[1][x]; + } + + anCovered[0] = 0; + anCovered[1] = 0; + for (x = 0; x < 6; x++) { + if (anBoard[0][x]) + anCovered[0]++; + if (anBoard[1][x]) + anCovered[1]++; + } + + *pnLeader = anPips[1]; + *pnLeader += 2 * anMenLeft[1]; + *pnLeader += anBoard[1][0]; + *pnLeader -= anCovered[1]; + if (*pnLeader > 30) + *adjusted = (float) *pnLeader * 1.1f; + else + *adjusted = (float) *pnLeader; + + *pnTrailer = anPips[0]; + *pnTrailer += 2 * anMenLeft[0]; + *pnTrailer += anBoard[0][0]; + *pnTrailer -= anCovered[0]; + + return 0; + +} + + +extern void +PipCount(const TanBoard anBoard, unsigned int anPips[2]) +{ + + int i; + + anPips[0] = 0; + anPips[1] = 0; + + for (i = 0; i < 25; i++) { + anPips[0] += anBoard[0][i] * (i + 1); + anPips[1] += anBoard[1][i] * (i + 1); + } +} + + + +static void +StatusHypergammon1(char *sz) +{ + + BearoffStatus(apbcHyper[0], sz); + +} + +static void +StatusHypergammon2(char *sz) +{ + + BearoffStatus(apbcHyper[1], sz); + +} + +static void +StatusHypergammon3(char *sz) +{ + + BearoffStatus(apbcHyper[2], sz); + +} + + +static void +StatusBearoff2(char *sz) +{ + + BearoffStatus(pbc2, sz); + +} + +static void +StatusBearoff1(char *sz) +{ + + BearoffStatus(pbc1, sz); + +} + +static void +StatusNeuralNet(neuralnet * pnn, char *szTitle, char *sz) +{ + char buf[200]; + sz += sprintf(sz, " * %s %s:\n", szTitle, _("neural network evaluator")); + sprintf(buf, _("version %s, %u inputs, %u hidden units"), WEIGHTS_VERSION, pnn->cInput, pnn->cHidden); + sprintf(sz, " - %s.\n\n", buf); +} + +static void +StatusRace(char *sz) +{ + StatusNeuralNet(&nnRace, _("Race"), sz); +} + +static void +StatusCrashed(char *sz) +{ + StatusNeuralNet(&nnCrashed, _("Crashed"), sz); +} + +static void +StatusContact(char *sz) +{ + StatusNeuralNet(&nnContact, _("Contact"), sz); +} + +static void +StatusOS(char *sz) +{ + BearoffStatus(pbcOS, sz); +} + +static void +StatusTS(char *sz) +{ + BearoffStatus(pbcTS, sz); +} + +static classstatusfunc acsf[N_CLASSES] = { + NULL, + StatusHypergammon1, StatusHypergammon2, StatusHypergammon3, + StatusBearoff2, StatusTS, + StatusBearoff1, StatusOS, + StatusRace, StatusCrashed, StatusContact +}; + +extern void +EvalStatus(char *szOutput) +{ + + int i; + + *szOutput = 0; + + for (i = N_CLASSES - 1; i >= 0; i--) + if (acsf[i]) + acsf[i] (strchr(szOutput, 0)); + + sprintf(strchr(szOutput, 0), _(" * " "Weights file and databases installed in" ":\n - %s\n"), getPkgDataDir()); +} + + +extern char* +GetCubeRecommendation(const cubedecision cd) +{ + switch (cd) { + case DOUBLE_TAKE: + return _("Double, take"); + case DOUBLE_PASS: + return _("Double, pass"); + case NODOUBLE_TAKE: + return _("No double, take"); + case TOOGOOD_TAKE: + return _("Too good to double, take"); + case TOOGOOD_PASS: + return _("Too good to double, pass"); + case DOUBLE_BEAVER: + return _("Double, beaver"); + case NODOUBLE_BEAVER: + return _("No double, beaver"); + case REDOUBLE_TAKE: + return _("Redouble, take"); + case REDOUBLE_PASS: + return _("Redouble, pass"); + case NO_REDOUBLE_TAKE: + return _("No redouble, take"); + case TOOGOODRE_TAKE: + return _("Too good to redouble, take"); + case TOOGOODRE_PASS: + return _("Too good to redouble, pass"); + case NO_REDOUBLE_BEAVER: + return _("No redouble, beaver"); + case NODOUBLE_DEADCUBE: + return _("Never double, take (dead cube)"); + case NO_REDOUBLE_DEADCUBE: + return _("Never redouble, take (dead cube)"); + case OPTIONAL_DOUBLE_BEAVER: + return _("Optional double, beaver"); + case OPTIONAL_DOUBLE_TAKE: + return _("Optional double, take"); + case OPTIONAL_REDOUBLE_TAKE: + return _("Optional redouble, take"); + case OPTIONAL_DOUBLE_PASS: + return _("Optional double, pass"); + case OPTIONAL_REDOUBLE_PASS: + return _("Optional redouble, pass"); + case NOT_AVAILABLE: + return _("Cube not available"); + default: + return _("Unknown cube decision"); + } +} + + +extern void +EvalCacheFlush(void) +{ + CacheFlush(&cEval); +} + +void +CommandClearCache(char *UNUSED(sz)) +{ + EvalCacheFlush(); +} + +extern double +GetEvalCacheSize(void) +{ + if (cEval.size == 0) + return 0; + else { + double value = log(cEval.size) / log(2); + if (value < 15) + return 0; + if (value < 17) + return .5; /* Special case for old default 65536 */ + if (value >= CACHE_SIZE_GUIMAX) + return CACHE_SIZE_GUIMAX - 16; /* Maximum value */ + else + return value - 16; + } +} + +extern void +SetEvalCacheSize(unsigned int size) +{ + EvalCacheResize((size == 0) ? 0 : 1U << (size + 16)); +} + +extern unsigned int +GetEvalCacheEntries(void) +{ + return cCache; +} + +extern int +GetCacheMB(int size) +{ + if (size <= 0) + return 0; + else + return (1 << (size + 15)) * (int) sizeof(cacheNode) / (1024 * 1024); +} + +extern int +EvalCacheResize(unsigned int cNew) +{ + int cActual = CacheResize(&cEval, cNew); + + if (cActual < 0) { + outputerrf(_("Evaluation cache resize failed; keeping the previous size\n")); + return -1; + } + + cCache = (unsigned int) cActual; + return cActual; +} + +#if CACHE_STATS +extern int +EvalCacheStats(unsigned int *pcUsed, unsigned int *pcLookup, unsigned int *pcHit) +{ + CacheStats(&cEval, pcLookup, pcHit, pcUsed); + CacheStats(&cpEval, pcLookup + 1, pcHit + 1, pcUsed + 1); + return 0; +} +#endif + +extern int +SetCubeInfoMoney(cubeinfo * pci, const int nCube, const int fCubeOwner, + const int fMove, const int fJacoby, const int fBeavers, const bgvariation bgv) +{ + + if (nCube < 1 || fCubeOwner < -1 || fCubeOwner > 1 || fMove < 0 || fMove > 1) { /* FIXME also illegal if nCube is not a power of 2 */ + memset(pci, 0, sizeof(cubeinfo)); + return -1; + } + + pci->nCube = nCube; + pci->fCubeOwner = fCubeOwner; + pci->fMove = fMove; + pci->fJacoby = fJacoby; + pci->fBeavers = fBeavers; + pci->nMatchTo = pci->anScore[0] = pci->anScore[1] = pci->fCrawford = 0; + pci->bgv = bgv; + + pci->arGammonPrice[0] = pci->arGammonPrice[1] = + pci->arGammonPrice[2] = pci->arGammonPrice[3] = (fJacoby && fCubeOwner == -1) ? 0.0f : 1.0f; + + return 0; +} + +static int +SetCubeInfoMatch(cubeinfo * pci, const int nCube, const int fCubeOwner, + const int fMove, const int nMatchTo, const int anScore[2], const int fCrawford, const bgvariation bgv) +{ + + if (nCube < 1 || fCubeOwner < -1 || fCubeOwner > 1 || fMove < 0 || fMove > 1 || nMatchTo < 1 || anScore[0] >= nMatchTo || anScore[1] >= nMatchTo) { /* FIXME also illegal if nCube is not a power of 2 */ + memset(pci, 0, sizeof(cubeinfo)); + return -1; + } + + pci->nCube = nCube; + pci->fCubeOwner = fCubeOwner; + pci->fMove = fMove; + pci->fJacoby = pci->fBeavers = FALSE; + pci->nMatchTo = nMatchTo; + pci->anScore[0] = anScore[0]; + pci->anScore[1] = anScore[1]; + pci->fCrawford = fCrawford; + pci->bgv = bgv; + + { + int nAway0 = pci->nMatchTo - pci->anScore[0] - 1; + int nAway1 = pci->nMatchTo - pci->anScore[1] - 1; + int nCubeIndex = MIN(LogCube(pci->nCube), MAXCUBELEVEL - 1); + + if ((!nAway0 || !nAway1) && !fCrawford) { + if (!nAway0) + memcpy(pci->arGammonPrice, aaaafGammonPricesPostCrawford[nCubeIndex] + [nAway1][0], 4 * sizeof(float)); + else + memcpy(pci->arGammonPrice, aaaafGammonPricesPostCrawford[nCubeIndex] + [nAway0][1], 4 * sizeof(float)); + } else + memcpy(pci->arGammonPrice, aaaafGammonPrices[nCubeIndex] + [nAway0][nAway1], 4 * sizeof(float)); + } + + return 0; +} + +extern int +SetCubeInfo(cubeinfo * pci, const int nCube, const int fCubeOwner, + const int fMove, const int nMatchTo, const int anScore[2], + const int fCrawford, const int fJacoby, const int fBeavers, const bgvariation bgv) +{ + + return nMatchTo ? SetCubeInfoMatch(pci, nCube, fCubeOwner, fMove, + nMatchTo, anScore, fCrawford, bgv) : + SetCubeInfoMoney(pci, nCube, fCubeOwner, fMove, fJacoby, fBeavers, bgv); +} + + +static int +isOptional(const float r1, const float r2) +{ + + const float epsilon = 1.0e-5f; + + return (fabsf(r1 - r2) <= epsilon); + +} + +static int +winGammon(const float arOutput[NUM_ROLLOUT_OUTPUTS]) +{ + + return (arOutput[OUTPUT_WINGAMMON] > 0.0f); + +} + +static int +winAny(const float arOutput[NUM_ROLLOUT_OUTPUTS]) +{ + + return (arOutput[OUTPUT_WIN] > 0.0f); + +} + +extern cubedecision +FindBestCubeDecision(float arDouble[], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci) +{ + + /* + * FindBestCubeDecision: + * + * Calculate optimal cube decision and equity/mwc for this. + * + * Input: + * arDouble - array with equities or mwc's: + * arDouble[ 1 ]: no double, + * arDouble[ 2 ]: double take + * arDouble[ 3 ]: double pass + * pci - pointer to cube info + * + * Output: + * arDouble - array with equities or mwc's + * arDouble[ 0 ]: equity for optimal cube decision + * + * Returns: + * cube decision + * + */ + + /* Check if cube is available */ + + if (!GetDPEq(NULL, NULL, pci)) { + + arDouble[OUTPUT_OPTIMAL] = arDouble[OUTPUT_NODOUBLE]; + + /* for match play distinguish between dead cube and not available cube */ + + if (pci->nMatchTo && (pci->fCubeOwner < 0 || pci->fCubeOwner == pci->fMove)) + return (pci->fCubeOwner == -1) ? NODOUBLE_DEADCUBE : NO_REDOUBLE_DEADCUBE; + else + return NOT_AVAILABLE; + + } + + + /* Cube is available: find optimal cube action */ + + if ((arDouble[OUTPUT_TAKE] >= arDouble[OUTPUT_NODOUBLE]) && (arDouble[OUTPUT_DROP] >= arDouble[OUTPUT_NODOUBLE])) { + + /* DT >= ND and DP >= ND */ + + /* we have a double */ + + if (arDouble[OUTPUT_DROP] > arDouble[OUTPUT_TAKE]) { + + /* 6. DP > DT >= ND: Double, take */ + + int f = isOptional(arDouble[OUTPUT_TAKE], arDouble[OUTPUT_NODOUBLE]); + + arDouble[OUTPUT_OPTIMAL] = arDouble[OUTPUT_TAKE]; + + if (!pci->nMatchTo && arDouble[OUTPUT_TAKE] >= -2.0f && arDouble[OUTPUT_TAKE] <= 0.0f && pci->fBeavers) { + if (arDouble[OUTPUT_TAKE] * 2.0f < arDouble[OUTPUT_NODOUBLE]) { + /*not a double if we can beaver */ + return NODOUBLE_BEAVER; + } else + /* beaver (Jacoby paradox) */ + return f ? OPTIONAL_DOUBLE_BEAVER : DOUBLE_BEAVER; + } else if (winAny(aarOutput[0])) { + /* ...take */ + if (f) + return (pci->fCubeOwner == -1) ? OPTIONAL_DOUBLE_TAKE : OPTIONAL_REDOUBLE_TAKE; + else + return (pci->fCubeOwner == -1) ? DOUBLE_TAKE : REDOUBLE_TAKE; + } else + /* no (presumably optional) double if we are sure to lose */ + return (pci->fCubeOwner == -1) ? NODOUBLE_TAKE : NO_REDOUBLE_TAKE; + + } else { + + /* 4. DT >= DP >= ND: Double, pass */ + + /* + * the double is optional if: + * (1) equity(no double) = equity(drop) + * (2) the player can win gammon + * (3a) it's match play + * or if it's money play + * (3b) it's not a centered cube + * or + * (3c) the Jacoby rule is not in effect + */ + + arDouble[OUTPUT_OPTIMAL] = arDouble[OUTPUT_DROP]; + + if (isOptional(arDouble[OUTPUT_NODOUBLE], + arDouble[OUTPUT_DROP]) && + (winGammon(aarOutput[0]) && (pci->nMatchTo || pci->fCubeOwner != -1 || !pci->fJacoby))) + return (pci->fCubeOwner == -1) ? OPTIONAL_DOUBLE_PASS : OPTIONAL_REDOUBLE_PASS; + else + return (pci->fCubeOwner == -1) ? DOUBLE_PASS : REDOUBLE_PASS; + + } + } else { + + /* no double */ + + /* ND > DT or ND > DP */ + + arDouble[OUTPUT_OPTIMAL] = arDouble[OUTPUT_NODOUBLE]; + + if (arDouble[OUTPUT_NODOUBLE] > arDouble[OUTPUT_TAKE]) { + + /* ND > DT */ + + if (arDouble[OUTPUT_TAKE] > arDouble[OUTPUT_DROP]) { + + /* 1. ND > DT > DP: Too good, pass */ + + /* sanity check: don't play on for a gammon if none is possible... */ + + if (winGammon(aarOutput[0])) + return (pci->fCubeOwner == -1) ? TOOGOOD_PASS : TOOGOODRE_PASS; + else + return (pci->fCubeOwner == -1) ? DOUBLE_PASS : REDOUBLE_PASS; + + } else if (arDouble[OUTPUT_NODOUBLE] > arDouble[OUTPUT_DROP]) { + + /* 2. ND > DP > DT: Too good, take */ + + if (winGammon(aarOutput[0])) + return (pci->fCubeOwner == -1) ? TOOGOOD_TAKE : TOOGOODRE_TAKE; + else + return (pci->fCubeOwner == -1) ? NODOUBLE_TAKE : NO_REDOUBLE_TAKE; + + } else { + + /* 5. DP > ND > DT: No double, {take, beaver} */ + + if (arDouble[OUTPUT_TAKE] >= -2.0f && arDouble[OUTPUT_TAKE] <= 0.0f && !pci->nMatchTo && pci->fBeavers) + return (pci->fCubeOwner == -1) ? NODOUBLE_BEAVER : NO_REDOUBLE_BEAVER; + else + return (pci->fCubeOwner == -1) ? NODOUBLE_TAKE : NO_REDOUBLE_TAKE; + + } + + } else { + + /* 3. DT >= ND > DP: Too good, pass */ + + if (winGammon(aarOutput[0])) + return (pci->fCubeOwner == -1) ? TOOGOOD_PASS : TOOGOODRE_PASS; + else + return (pci->fCubeOwner == -1) ? DOUBLE_PASS : REDOUBLE_PASS; + + } + + } +} + + +extern cubedecision +FindCubeDecision(float arDouble[], float aarOutput[][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci) +{ + GetDPEq(NULL, &arDouble[OUTPUT_DROP], pci); + arDouble[OUTPUT_NODOUBLE] = aarOutput[0][OUTPUT_CUBEFUL_EQUITY]; + arDouble[OUTPUT_TAKE] = aarOutput[1][OUTPUT_CUBEFUL_EQUITY]; + + if (pci->nMatchTo) { + /* convert to normalized money equity */ + + int i; + + for (i = 1; i < 4; i++) + arDouble[i] = mwc2eq(arDouble[i], pci); + } + + return FindBestCubeDecision(arDouble, aarOutput, pci); +} + + + +static int +fDoCubeful(cubeinfo * pci) +{ + + if (pci->anScore[0] + pci->nCube >= pci->nMatchTo && pci->anScore[1] + pci->nCube >= pci->nMatchTo) + /* cube is dead */ + return FALSE; + + if (pci->anScore[0] == pci->nMatchTo - 2 && pci->anScore[1] == pci->nMatchTo - 2) + /* score is -2,-2 */ + return FALSE; + + if (pci->fCrawford) + /* cube is dead in Crawford game */ + return FALSE; + + return TRUE; +} + + +extern int +GetDPEq(int *pfCube, float *prDPEq, const cubeinfo * pci) +{ + + int fCube; + + if (!pci->nMatchTo) { + + /* Money game: + * Double, pass equity for money game is 1.0 points, since we always + * calculate equity normed to a 1-cube. + * Take the double branch if the cube is centered or I own the cube. */ + + if (prDPEq) + *prDPEq = 1.0f; + + fCube = (pci->fCubeOwner == -1) || (pci->fCubeOwner == pci->fMove); + + if (pfCube) + *pfCube = fCube; + + } else { + + /* Match play: + * Equity for double, pass is found from the match equity table. + * Take the double branch is I can/will use cube: + * - if it is not the Crawford game, + * - and if the cube is not dead, + * - and if it is post-Crawford and I'm trailing + * - and if I have access to the cube. + */ + + /* FIXME: equity for double, pass */ + int fPostCrawford = !pci->fCrawford && + (pci->anScore[0] == pci->nMatchTo - 1 || pci->anScore[1] == pci->nMatchTo - 1); + + fCube = (!pci->fCrawford) && + (pci->anScore[pci->fMove] + pci->nCube < pci->nMatchTo) && + (!(fPostCrawford && (pci->anScore[pci->fMove] == pci->nMatchTo - 1))) + && ((pci->fCubeOwner == -1) || (pci->fCubeOwner == pci->fMove)); + + if (prDPEq) + *prDPEq = + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->fMove, pci->nCube, pci->fMove, pci->fCrawford, aafMET, aafMETPostCrawford); + + if (pfCube) + *pfCube = fCube; + + } + + return fCube; + +} + + +static float +MoneyLive(const float rW, const float rL, const float p, const cubeinfo * pci) +{ + + if (pci->fCubeOwner == -1) { + + /* centered cube */ + float rTP = (rL - 0.5f) / (rW + rL + 0.5f); + float rCP = (rL + 1.0f) / (rW + rL + 0.5f); + + if (p < rTP) + /* linear interpolation between + * (0,-rL) and ( rTP,-1) */ + return (pci->fJacoby) ? -1.0f : (-rL + (-1.0f + rL) * p / rTP); + else if (p < rCP) + /* linear interpolation between + * (rTP,-1) and (rCP,+1) */ + return -1.0f + 2.0f * (p - rTP) / (rCP - rTP); + else + /* linear interpolation between + * (rCP,+1) and (1,+rW) */ + return (pci->fJacoby) ? 1.0f : (+1.0f + (rW - 1.0f) * (p - rCP) / (1.0f - rCP)); + + } else if (pci->fCubeOwner == pci->fMove) { + + /* owned cube */ + + /* cash point */ + float rCP = (rL + 1.0f) / (rW + rL + 0.5f); + + if (p < rCP) + /* linear interpolation between + * (0,-rL) and (rCP,+1) */ + return -rL + (1.0f + rL) * p / rCP; + else + /* linear interpolation between + * (rCP,+1) and (1,+rW) */ + return +1.0f + (rW - 1.0f) * (p - rCP) / (1.0f - rCP); + + } else { + + /* unavailable cube */ + + /* take point */ + float rTP = (rL - 0.5f) / (rW + rL + 0.5f); + + if (p < rTP) + /* linear interpolation between + * (0,-rL) and ( rTP,-1) */ + return -rL + (-1.0f + rL) * p / rTP; + else + /* linear interpolation between + * (rTP,-1) and (1,rW) */ + return -1.0f + (rW + 1.0f) * (p - rTP) / (1.0f - rTP); + + } + +} + + +extern float +Cl2CfMoney(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX) +{ + const float epsilon = 0.0000001f; + const float omepsilon = 0.9999999f; + + float rW, rL; + float rEqDead, rEqLive; + + /* money game */ + + /* Transform cubeless 0-ply equity to cubeful 0-ply equity using + * Rick Janowski's formulas [insert ref here]. */ + + /* First calculate average win and loss W and L: */ + + if (arOutput[OUTPUT_WIN] > epsilon) + rW = 1.0f + (arOutput[OUTPUT_WINGAMMON] + arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + else { + /* basically a dead cube */ + return Utility(arOutput, pci); + } + + if (arOutput[OUTPUT_WIN] < omepsilon) + rL = 1.0f + (arOutput[OUTPUT_LOSEGAMMON] + arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + else { + /* basically a dead cube */ + return Utility(arOutput, pci); + } + + + rEqDead = Utility(arOutput, pci); + rEqLive = MoneyLive(rW, rL, arOutput[OUTPUT_WIN], pci); + + return rEqDead * (1.0f - rCubeX) + rEqLive * rCubeX; + +} + +static float +Cl2CfMatchCentered(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX) +{ + + /* normalized score */ + + float rG0, rBG0, rG1, rBG1; + float arCP[2]; + + float rMWCDead, rMWCLive; + float rMWCOppCash, rMWCCash, rOppTG, rTG; + float aarMETResult[2][DTLBP1 + 1]; + + /* Centered cube */ + + /* Calculate normal, gammon, and backgammon ratios */ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + rG0 = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + rBG0 = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + rG0 = 0.0f; + rBG0 = 0.0f; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + rG1 = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + rBG1 = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + rG1 = 0.0f; + rBG1 = 0.0f; + } + + /* MWC(dead cube) = cubeless equity */ + + rMWCDead = eq2mwc(Utility(arOutput, pci), pci); + + /* Get live cube cash points */ + + GetPoints(arOutput, pci, arCP); + + getMEMultiple(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->nCube, -1, -1, pci->fCrawford, aafMET, aafMETPostCrawford, aarMETResult[0], aarMETResult[1]); + + rMWCCash = aarMETResult[pci->fMove][NDW]; + + rMWCOppCash = aarMETResult[pci->fMove][NDL]; + + rOppTG = 1.0f - arCP[!pci->fMove]; + rTG = arCP[pci->fMove]; + + if (arOutput[OUTPUT_WIN] <= rOppTG) { + + /* Opp too good to double */ + + float rMWCLose = (1.0f - rG1 - rBG1) * aarMETResult[pci->fMove][NDL] + + rG1 * aarMETResult[pci->fMove][NDLG] + + rBG1 * aarMETResult[pci->fMove][NDLB]; + + if (rOppTG > 0.0f) + /* avoid division by zero */ + rMWCLive = rMWCLose + (rMWCOppCash - rMWCLose) * arOutput[OUTPUT_WIN] / rOppTG; + else + rMWCLive = rMWCLose; + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } else if (arOutput[OUTPUT_WIN] < rTG) { + + /* In doubling window */ + + rMWCLive = rMWCOppCash + (rMWCCash - rMWCOppCash) * (arOutput[OUTPUT_WIN] - rOppTG) / (rTG - rOppTG); + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } else { + + /* I'm too good to double */ + + /* MWC(live cube) linear interpolation between the + * points: + * + * p = TG, MWC = I win 1 point + * p = 1, MWC = I win (normal, gammon, or backgammon) + * + */ + + float rMWCWin = (1.0f - rG0 - rBG0) * aarMETResult[pci->fMove][NDW] + + rG0 * aarMETResult[pci->fMove][NDWG] + + rBG0 * aarMETResult[pci->fMove][NDWB]; + + if (rTG < 1.0f) + rMWCLive = rMWCCash + (rMWCWin - rMWCCash) * (arOutput[OUTPUT_WIN] - rTG) / (1.0f - rTG); + else + rMWCLive = rMWCWin; + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } + +} + +static float +Cl2CfMatchOwned(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX) +{ + + /* normalized score */ + + float rG0, rBG0, rG1, rBG1; + float arCP[2]; + + float rMWCDead, rMWCLive; + float rMWCCash, rTG; + float aarMETResult[2][DTLBP1 + 1]; + + /* I own cube */ + + /* Calculate normal, gammon, and backgammon ratios */ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + rG0 = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + rBG0 = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + rG0 = 0.0f; + rBG0 = 0.0f; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + rG1 = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + rBG1 = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + rG1 = 0.0f; + rBG1 = 0.0f; + } + + /* MWC(dead cube) = cubeless equity */ + + rMWCDead = eq2mwc(Utility(arOutput, pci), pci); + + /* Get live cube cash points */ + + GetPoints(arOutput, pci, arCP); + + getMEMultiple(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->nCube, -1, -1, pci->fCrawford, aafMET, aafMETPostCrawford, aarMETResult[0], aarMETResult[1]); + + rMWCCash = aarMETResult[pci->fMove][NDW]; + + rTG = arCP[pci->fMove]; + + if (arOutput[OUTPUT_WIN] <= rTG) { + + /* MWC(live cube) linear interpolation between the + * points: + * + * p = 0, MWC = I lose (normal, gammon, or backgammon) + * p = TG, MWC = I win 1 point + * + */ + + float rMWCLose = (1.0f - rG1 - rBG1) * aarMETResult[pci->fMove][NDL] + + rG1 * aarMETResult[pci->fMove][NDLG] + + rBG1 * aarMETResult[pci->fMove][NDLB]; + + if (rTG > 0.0f) + rMWCLive = rMWCLose + (rMWCCash - rMWCLose) * arOutput[OUTPUT_WIN] / rTG; + else + rMWCLive = rMWCLose; + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } else { + + /* we are too good to double */ + + /* MWC(live cube) linear interpolation between the + * points: + * + * p = TG, MWC = I win 1 point + * p = 1, MWC = I win (normal, gammon, or backgammon) + * + */ + + float rMWCWin = (1.0f - rG0 - rBG0) * aarMETResult[pci->fMove][NDW] + + rG0 * aarMETResult[pci->fMove][NDWG] + + rBG0 * aarMETResult[pci->fMove][NDWB]; + + if (rTG < 1.0f) + rMWCLive = rMWCCash + (rMWCWin - rMWCCash) * (arOutput[OUTPUT_WIN] - rTG) / (1.0f - rTG); + else + rMWCLive = rMWCWin; + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } + +} + + +static float +Cl2CfMatchUnavailable(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX) +{ + + /* normalized score */ + + float rG0, rBG0, rG1, rBG1; + float arCP[2]; + + float rMWCDead, rMWCLive; + float rMWCOppCash, rOppTG; + float aarMETResult[2][DTLBP1 + 1]; + + /* I own cube */ + + /* Calculate normal, gammon, and backgammon ratios */ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + rG0 = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + rBG0 = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + rG0 = 0.0f; + rBG0 = 0.0f; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + rG1 = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + rBG1 = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + rG1 = 0.0f; + rBG1 = 0.0f; + } + + /* MWC(dead cube) = cubeless equity */ + + rMWCDead = eq2mwc(Utility(arOutput, pci), pci); + + /* Get live cube cash points */ + + GetPoints(arOutput, pci, arCP); + + getMEMultiple(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->nCube, -1, -1, pci->fCrawford, aafMET, aafMETPostCrawford, aarMETResult[0], aarMETResult[1]); + + rMWCOppCash = aarMETResult[pci->fMove][NDL]; + + rOppTG = 1.0f - arCP[!pci->fMove]; + + if (arOutput[OUTPUT_WIN] <= rOppTG) { + + /* Opponent is too good to double. + * + * MWC(live cube) linear interpolation between the + * points: + * + * p = 0, MWC = opp win normal, gammon, backgammon + * p = OppTG, MWC = opp cashes + * + */ + + float rMWCLose = (1.0f - rG1 - rBG1) * aarMETResult[pci->fMove][NDL] + + rG1 * aarMETResult[pci->fMove][NDLG] + + rBG1 * aarMETResult[pci->fMove][NDLB]; + + if (rOppTG > 0.0f) + /* avoid division by zero */ + rMWCLive = rMWCLose + (rMWCOppCash - rMWCLose) * arOutput[OUTPUT_WIN] / rOppTG; + else + rMWCLive = rMWCLose; + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } else { + + /* MWC(live cube) linear interpolation between the + * points: + * + * p = OppTG, MWC = opponent cashes + * p = 1, MWC = I win (normal, gammon, or backgammon) + * + */ + + float rMWCWin = (1.0f - rG0 - rBG0) * aarMETResult[pci->fMove][NDW] + + rG0 * aarMETResult[pci->fMove][NDWG] + + rBG0 * aarMETResult[pci->fMove][NDWB]; + + rMWCLive = rMWCOppCash + (rMWCWin - rMWCOppCash) * (arOutput[OUTPUT_WIN] - rOppTG) / (1.0f - rOppTG); + + /* (1-x) MWC(dead) + x MWC(live) */ + + return rMWCDead * (1.0f - rCubeX) + rMWCLive * rCubeX; + + } + +} + + +extern float +Cl2CfMatch(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX) +{ + /* Check if this requires a cubeful evaluation */ + + if (!fDoCubeful(pci)) { + + /* cubeless eval */ + + return eq2mwc(Utility(arOutput, pci), pci); + + } /* fDoCubeful */ + else { + + /* cubeful eval */ + + if (pci->fCubeOwner == -1) + return Cl2CfMatchCentered(arOutput, pci, rCubeX); + else if (pci->fCubeOwner == pci->fMove) + return Cl2CfMatchOwned(arOutput, pci, rCubeX); + else + return Cl2CfMatchUnavailable(arOutput, pci, rCubeX); + + } + +} + + + +extern float +EvalEfficiency(const TanBoard anBoard, positionclass pc, int ply) +{ + /* Since it's somewhat costly to call CalcInputs, the + * inputs should preferably be cached to save time. */ + + const int i = ply >= 2 ? 0 : 1; + + switch (pc) { + case CLASS_OVER: + return 0.0f; /* dead cube */ + + case CLASS_HYPERGAMMON1: + case CLASS_HYPERGAMMON2: + case CLASS_HYPERGAMMON3: + + /* FIXME */ + + return 0.60f; + + case CLASS_BEAROFF1: + case CLASS_BEAROFF_OS: + /* FIXME: calculate based on #rolls to get off. + * For example, 15 rolls probably have cube eff. of + * 0.7, and 1.25 rolls have cube eff. of 1.0. + * + * It's not so important to have cube eff. correct here as an + * n-ply evaluation will take care of last-roll and 2nd-last-roll + * situations. */ + + return rOSCubeX; + + case CLASS_RACE: + { + unsigned int anPips[2]; + + float rEff; + + PipCount(anBoard, anPips); + + rEff = (float) anPips[1] * rRaceFactorX[i] + rRaceCoefficientX[i]; + if (rEff > rRaceMax[i]) + return rRaceMax[i]; + else { + if (rEff < rRaceMin[i]) + return rRaceMin[i]; + else + return rEff; + } + } + + case CLASS_CONTACT: + + /* FIXME: should CLASS_CRASHED be handled differently? */ + + /* FIXME: use Oystein's values published in rec.games.backgammon, + * or work some other semiempirical values */ + + /* FIXME: very important: use opponents inputs as well */ + + return rContactX[i]; + + case CLASS_CRASHED: + + return rCrashedX[i]; + + case CLASS_BEAROFF2: + case CLASS_BEAROFF_TS: + + return rTSCubeX; /* for match play only */ + + default: + g_assert_not_reached(); + + } + return 0; + +} + + +extern char * +FormatEval(char *sz, evalsetup * pes) +{ + + switch (pes->et) { + case EVAL_NONE: + strcpy(sz, ""); + break; + case EVAL_EVAL: + sprintf(sz, "%s %1u-%s", pes->ec.fCubeful ? _("Cubeful") : _("Cubeless"), pes->ec.nPlies, _("ply")); + break; + case EVAL_ROLLOUT: + sprintf(sz, "%s", _("Rollout")); + break; + default: + sprintf(sz, _("Unknown eval type (%d)"), (int) pes->et); + g_assert_not_reached(); + break; + } + + return sz; + +} + +#if 0 +static void +CalcCubefulEquity(positionclass pc, float arOutput[NUM_ROLLOUT_OUTPUTS], int nPlies, int fDT, cubeinfo * pci) +{ + + float rND, rDT, rDP, r; + int fCube; + cubeinfo ci; + float ar[NUM_ROLLOUT_OUTPUTS]; + + int fMax = !(nPlies % 2); + + memcpy(&ar[0], &arOutput[0], NUM_OUTPUTS * sizeof(float)); + + if (!nPlies) { + + /* leaf node */ + + if (pc == CLASS_OVER || (pci->nMatchTo && !fDoCubeful(pci))) { + + /* cubeless */ + + rND = Utility(arOutput, pci); + + } else { + + /* cubeful */ + + rND = (pci->nMatchTo) ? mwc2eq(Cl2CfMatch(arOutput, pci), pci) : Cl2CfMoney(arOutput, pci); + + } + + } else { + + /* internal node; recurse */ + + SetCubeInfo(&ci, + pci->nCube, pci->fCubeOwner, + !pci->fMove, pci->nMatchTo, pci->anScore, pci->fCrawford, pci->fJacoby, pci->fBeavers, pci->bgv); + + CalcCubefulEquity(pc, ar, nPlies - 1, TRUE, &ci); + + rND = ar[OUTPUT_CUBEFUL_EQUITY]; + + } + + GetDPEq(&fCube, &rDP, pci); + + if (pci->nMatchTo) + rDP = mwc2eq(rDP, pci); + + if (fCube && fDT) { + + /* double, take */ + + if (!nPlies) { + + SetCubeInfo(&ci, 2 * pci->nCube, !pci->fMove, pci->fMove, + pci->nMatchTo, pci->anScore, pci->fCrawford, pci->fJacoby, pci->fBeavers, pci->bgv); + + /* leaf node */ + + if (pc == CLASS_OVER || (pci->nMatchTo && !fDoCubeful(&ci))) { + + /* cubeless */ + + rDT = Utility(arOutput, &ci); + if (pci->nMatchTo) + rDT *= 2.0; + + } else { + + /* cubeful */ + + rDT = (pci->nMatchTo) ? mwc2eq(Cl2CfMatch(arOutput, &ci), &ci) : 2.0 * Cl2CfMoney(arOutput, &ci); + + } + + } else { + + /* internal node; recurse */ + + SetCubeInfo(&ci, 2 * pci->nCube, !pci->fMove, !pci->fMove, + pci->nMatchTo, pci->anScore, pci->fCrawford, pci->fJacoby, pci->fBeavers, pci->bgv); + + CalcCubefulEquity(pc, ar, nPlies - 1, TRUE, &ci); + + rDT = ar[OUTPUT_CUBEFUL_EQUITY]; + if (!ci.nMatchTo) + rDT *= 2.0; + + } + + if (fMax) { + + /* maximize my equity */ + + if (rDP > rND && rDT > rND) { + + /* it's a double */ + + if (rDT >= rDP) + r = rDP; /* pass */ + else + r = rDT; /* take */ + + } else + r = rND; /* no double */ + + } else { + + /* minimize my equity */ + + rDP = -rDP; + + if (rDP < rND && rDT < rND) { + + /* it's a double */ + + if (rDT < rDP) + r = rDP; /* pass */ + else + r = rDT; /* take */ + + } else + r = rND; /* no double */ + + } + } else { + r = rND; + rDT = 0.0; + } + + arOutput[OUTPUT_EQUITY] = UtilityME(arOutput, pci); + arOutput[OUTPUT_CUBEFUL_EQUITY] = r; + +} +#endif /* !LOCKING_VERSION */ + + +/* + * Compare two evalcontexts. + * + * Input: + * - pec1, pec2: the two evalcontexts to compare + * + * Output: + * None. + * + * Returns: + * -1 if *pec1 "<" *pec2 + * 0 if *pec1 "=" *pec2 + * +1 if *pec1 ">" *pec2 + * + */ + +extern int +cmp_evalcontext(const evalcontext * pec1, const evalcontext * pec2) +{ + + /* Check if plies are different */ + + if (pec1->nPlies < pec2->nPlies) + return -1; + else if (pec1->nPlies > pec2->nPlies) + return +1; + + /* Check for cubeful evals */ + + if (pec1->fCubeful < pec2->fCubeful) + return -1; + else if (pec1->fCubeful > pec2->fCubeful) + return +1; + + /* Noise */ + + if (pec1->rNoise > pec2->rNoise) + return -1; + else if (pec1->rNoise < pec2->rNoise) + return +1; + + if (pec1->rNoise > 0) { + + if (pec1->fDeterministic < pec2->fDeterministic) + return -1; + else if (pec1->fDeterministic > pec2->fDeterministic) + return +1; + + } + + if (pec1->nPlies > 0) { + int nPrune1 = (pec1->fUsePrune); + int nPrune2 = (pec2->fUsePrune); + if (nPrune1 > nPrune2) + return -1; + else if (nPrune1 < nPrune2) + return +1; + } + + return 0; + +} + + +/* + * Compare two rolloutcontexts. + * + * Input: + * - prc1, prc2: the two evalsetups to compare + * + * Output: + * None. + * + * Returns: + * -1 if *prc1 "<" *prc2 + * 0 if *prc1 "=" *prc2 + * +1 if *prc1 ">" *prc2 + * + */ + +static int +cmp_rolloutcontext(const rolloutcontext * UNUSED(prc1), const rolloutcontext * UNUSED(prc2)) +{ + + /* FIXME: write me */ + + return 0; + + +} + + +/* + * Compare two evalsetups. + * + * Input: + * - pes1, pes2: the two evalsetups to compare + * + * Output: + * None. + * + * Returns: + * -1 if *pes1 "<" *pes2 + * 0 if *pes1 "=" *pes2 + * +1 if *pes1 ">" *pes2 + * + */ + +extern int +cmp_evalsetup(const evalsetup * pes1, const evalsetup * pes2) +{ + + /* Check for different evaltypes */ + + if (pes1->et < pes2->et) + return -1; + else if (pes1->et > pes2->et) + return +1; + + /* The two evaltypes are identical */ + + switch (pes1->et) { + case EVAL_NONE: + return 0; + + case EVAL_EVAL: + return cmp_evalcontext(&pes1->ec, &pes2->ec); + + case EVAL_ROLLOUT: + return cmp_rolloutcontext(&pes1->rc, &pes2->rc); + + default: + g_assert_not_reached(); + } + + return 0; +} + + +static void +calculate_gammon_rates(float aarRates[2][2], float arOutput[], cubeinfo * pci) +{ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + aarRates[pci->fMove][0] = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + aarRates[pci->fMove][1] = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + aarRates[pci->fMove][0] = aarRates[pci->fMove][1] = 0.0f; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + aarRates[!pci->fMove][0] = + (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + aarRates[!pci->fMove][1] = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + aarRates[!pci->fMove][0] = aarRates[!pci->fMove][1] = 0.0f; + } + +} + +/* + * Get current gammon rates + * + * Input: + * anBoard: current board + * pci: current cubeinfo + * pec: eval context + * + * Output: + * aarRates: gammon and backgammon rates (first index is player) + * + */ + +extern int +getCurrentGammonRates(float aarRates[2][2], + float arOutput[], const TanBoard anBoard, cubeinfo * pci, const evalcontext * pec) +{ + + if (EvaluatePosition(NULL, anBoard, arOutput, pci, pec) < 0) + return -1; + + calculate_gammon_rates(aarRates, arOutput, pci); + + return 0; + +} + +/* + * Get take, double, beaver, etc points for money game using + * Rick Janowski's formulae: + * https://www.bkgm.com/articles/Janowski/cubeformulae.pdf + * + * Input: + * fJacoby, fBeavers: flags for different flavours of money game + * aarRates: gammon and backgammon rates (first index is player) + * + * Output: + * aaarPoints: the points + * + */ + +extern void +getMoneyPoints(float aaarPoints[2][7][2], const int fJacoby, const int fBeavers, float aarRates[2][2]) +{ + + const float arCLV[2] = /* average cubeless value of games won */ + { 1.0f + aarRates[0][0] + 2.0f * aarRates[0][1], + 1.0f + aarRates[1][0] + 2.0f * aarRates[1][1] }; + + /* calculate average cubeless value of games won */ + + /* calculate points */ + + for (int i = 0; i < 2; i++) { + + /* Determine rW and rL from Rick's formulae */ + + const float rW = arCLV[i]; + const float rL = arCLV[!i]; + + /* Determine points */ + + /* take point */ + + aaarPoints[i][0][0] = (rL - 0.5f) / (rW + rL); + aaarPoints[i][0][1] = (rL - 0.5f) / (rW + rL + 0.5f); + + /* beaver point */ + + aaarPoints[i][1][0] = rL / (rW + rL); + aaarPoints[i][1][1] = rL / (rW + rL + 0.5f); + + /* raccoon point */ + + aaarPoints[i][2][0] = rL / (rW + rL); + aaarPoints[i][2][1] = (rL + 0.5f) / (rW + rL + 0.5f); + + /* initial double point */ + + if (!fJacoby) { + /* without Jacoby */ + aaarPoints[i][3][0] = rL / (rW + rL); + } else { + /* with Jacoby */ + + if (fBeavers) + /* with beavers */ + aaarPoints[i][3][0] = (rL - 0.25f) / (rL + rW - 0.5f); + else + /* without beavers */ + aaarPoints[i][3][0] = (rL - 0.5f) / (rL + rW - 1.0f); + + } + aaarPoints[i][3][1] = (rL + 1.0f) / (rL + rW + 0.5f); + + /* redouble point */ + aaarPoints[i][4][0] = rL / (rW + rL); + aaarPoints[i][4][1] = (rL + 1.0f) / (rL + rW + 0.5f); + + /* cash point */ + + aaarPoints[i][5][0] = (rL + 0.5f) / (rW + rL); + aaarPoints[i][5][1] = (rL + 1.0f) / (rW + rL + 0.5f); + + /* too good point */ + + aaarPoints[i][6][0] = (rL + 1.0f) / (rW + rL); + aaarPoints[i][6][1] = (rL + 1.0f) / (rW + rL + 0.5f); + + } + +} + +extern void +GetECF3(float arCubeful[], int cci, float arCf[], cubeinfo aci[]) +{ + + int i, ici; + float rND, rDT, rDP; + + for (ici = 0, i = 0; ici < cci; ici++, i += 2) { + + if (aci[i + 1].nCube > 0) { + + /* cube available */ + + rND = arCf[i]; + + if (aci[0].nMatchTo) + rDT = arCf[i + 1]; + else + rDT = 2.0f * arCf[i + 1]; + + GetDPEq(NULL, &rDP, &aci[i]); + + if (rDT >= rND && rDP >= rND) { + + /* double */ + + if (rDT >= rDP) + /* pass */ + arCubeful[ici] = rDP; + else + /* take */ + arCubeful[ici] = rDT; + + } else { + + /* no double */ + + arCubeful[ici] = rND; + + } + + + } else { + + /* no cube available: always no double */ + + arCubeful[ici] = arCf[i]; + + } + + } + +} + + +extern void +MakeCubePos(const cubeinfo aciCubePos[], const int cci, const int fTop, cubeinfo aci[], const int fInvert) +{ + int i, ici; + + for (ici = 0, i = 0; ici < cci; ici++) { + + /* no double */ + + if (aciCubePos[ici].nCube > 0) { + + SetCubeInfo(&aci[i], + aciCubePos[ici].nCube, + aciCubePos[ici].fCubeOwner, + fInvert ? + !aciCubePos[ici].fMove : aciCubePos[ici].fMove, + aciCubePos[ici].nMatchTo, + aciCubePos[ici].anScore, + aciCubePos[ici].fCrawford, + aciCubePos[ici].fJacoby, aciCubePos[ici].fBeavers, aciCubePos[ici].bgv); + + } else { + + aci[i].nCube = -1; + + } + + i++; + + if (!fTop && aciCubePos[ici].nCube > 0 && GetDPEq(NULL, NULL, &aciCubePos[ici])) + /* we may double */ + SetCubeInfo(&aci[i], + 2 * aciCubePos[ici].nCube, + !aciCubePos[ici].fMove, + fInvert ? + !aciCubePos[ici].fMove : aciCubePos[ici].fMove, + aciCubePos[ici].nMatchTo, + aciCubePos[ici].anScore, + aciCubePos[ici].fCrawford, + aciCubePos[ici].fJacoby, aciCubePos[ici].fBeavers, aciCubePos[ici].bgv); + else + /* mark cube position as unavailable */ + aci[i].nCube = -1; + + i++; + + + } /* loop cci */ + +} + + +/* + * Get take, double, take, and too good points for match play. + * + * Input: + * pci: cubeinfo + * aarRates: gammon and backgammon rates (first index is player) + * + * Output: + * aaarPoints: the points + * + */ + +extern void +getMatchPoints(float aaarPoints[2][4][2], + int afAutoRedouble[2], int afDead[2], const cubeinfo * pci, float aarRates[2][2]) +{ + + SSE_ALIGN(float arOutput[NUM_OUTPUTS]); + float arDP1[2], arDP2[2], arCP1[2], arCP2[2], arTG[2]; + + const int anNormScore[2] = { pci->nMatchTo - pci->anScore[0], pci->nMatchTo - pci->anScore[1] }; + + /* get cash points */ + + arOutput[OUTPUT_WIN] = 0.5f; + arOutput[OUTPUT_WINGAMMON] = 0.5f * (aarRates[0][0] + aarRates[0][1]); + arOutput[OUTPUT_WINBACKGAMMON] = 0.5f * aarRates[0][1]; + arOutput[OUTPUT_LOSEGAMMON] = 0.5f * (aarRates[1][0] + aarRates[1][1]); + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.5f * aarRates[1][1]; + + GetPoints(arOutput, pci, arCP2); + + for (int i = 0; i < 2; i++) { + + float rDTW, rDTL, rNDW, rNDL, rDP, rRisk, rGain; + + afAutoRedouble[i] = (anNormScore[i] - 2 * pci->nCube <= 0) && (anNormScore[!i] - 2 * pci->nCube > 0); + + afDead[i] = (anNormScore[!i] - 2 * pci->nCube <= 0); + + /* MWC for "double, take; win" */ + + rDTW = + (1.0f - aarRates[i][0] - aarRates[i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 2 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 4 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 6 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* MWC for "no double, take; win" */ + + rNDW = + (1.0f - aarRates[i][0] - aarRates[i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 2 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 3 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* MWC for "Double, take; lose" */ + + rDTL = + (1.0f - aarRates[!i][0] - aarRates[!i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 2 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 4 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 6 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* MWC for "No double; lose" */ + + rNDL = + (1.0f - aarRates[!i][0] - aarRates[!i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 1 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 2 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 3 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* MWC for "Double, pass" */ + + rDP = + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford); + + /* Double point */ + + rRisk = rNDL - rDTL; + rGain = rDTW - rNDW; + + arDP1[i] = (rRisk == 0.0f) ? 0.0f : rRisk / (rRisk + rGain); + arDP2[i] = arDP1[i]; + + /* Dead cube take point without redouble */ + + rRisk = rDTW - rDP; + rGain = rDP - rDTL; + + arCP1[i] = 1.0f - rRisk / (rRisk + rGain); + + /* find too good point */ + + rRisk = rNDW - rNDL; + rGain = rNDW - rDP; + + arTG[i] = rRisk / (rRisk + rGain); + + if (afAutoRedouble[i]) { + + /* With redouble */ + + rDTW = + (1.0f - aarRates[i][0] - aarRates[i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 4 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 8 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 12 * pci->nCube, i, pci->fCrawford, aafMET, aafMETPostCrawford); + + rDTL = + (1.0f - aarRates[!i][0] - aarRates[!i][1]) * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 4 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][0] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 8 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford) + + aarRates[!i][1] * + getME(pci->anScore[0], pci->anScore[1], pci->nMatchTo, i, + 12 * pci->nCube, !i, pci->fCrawford, aafMET, aafMETPostCrawford); + + rRisk = rDTW - rDP; + rGain = rDP - rDTL; + + arCP2[i] = 1.0f - rRisk / (rRisk + rGain); + + /* Double point */ + + rRisk = rNDL - rDTL; + rGain = rDTW - rNDW; + + arDP2[i] = (rRisk == 0.0f) ? 0.0f : rRisk / (rRisk + rGain); + + } + + } + + /* save points */ + + for (int i = 0; i < 2; i++) { + + /* take point */ + + aaarPoints[i][0][0] = 1.0f - arCP1[!i]; + aaarPoints[i][0][1] = 1.0f - arCP2[!i]; + + /* double point */ + + aaarPoints[i][1][0] = arDP1[i]; + aaarPoints[i][1][1] = arDP2[i]; + + /* cash point */ + + aaarPoints[i][2][0] = arCP1[i]; + aaarPoints[i][2][1] = arCP2[i]; + + /* too good point */ + + aaarPoints[i][3][0] = arTG[i]; + + if (!afDead[i]) + aaarPoints[i][3][1] = arCP2[i]; + + } + +} + +extern void +getCubeDecisionOrdering(int aiOrder[3], + float arDouble[4], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci) +{ + + cubedecision cd; + + /* Get cube decision */ + + cd = FindBestCubeDecision(arDouble, aarOutput, pci); + + switch (cd) { + + case DOUBLE_TAKE: + case DOUBLE_BEAVER: + case REDOUBLE_TAKE: + + /* + * Optimal : Double, take + * Best for me : Double, pass + * Worst for me: No Double + */ + + aiOrder[0] = OUTPUT_TAKE; + aiOrder[1] = OUTPUT_DROP; + aiOrder[2] = OUTPUT_NODOUBLE; + + break; + + case DOUBLE_PASS: + case REDOUBLE_PASS: + + /* + * Optimal : Double, pass + * Best for me : Double, take + * Worst for me: no double + */ + aiOrder[0] = OUTPUT_DROP; + aiOrder[1] = OUTPUT_TAKE; + aiOrder[2] = OUTPUT_NODOUBLE; + + break; + + case NODOUBLE_TAKE: + case NODOUBLE_BEAVER: + case TOOGOOD_TAKE: + case NO_REDOUBLE_TAKE: + case NO_REDOUBLE_BEAVER: + case TOOGOODRE_TAKE: + case NODOUBLE_DEADCUBE: + case NO_REDOUBLE_DEADCUBE: + case OPTIONAL_DOUBLE_BEAVER: + case OPTIONAL_DOUBLE_TAKE: + case OPTIONAL_REDOUBLE_TAKE: + + /* + * Optimal : no double + * Best for me : double, pass + * Worst for me: double, take + */ + + aiOrder[0] = OUTPUT_NODOUBLE; + aiOrder[1] = OUTPUT_DROP; + aiOrder[2] = OUTPUT_TAKE; + + break; + + case TOOGOOD_PASS: + case TOOGOODRE_PASS: + case OPTIONAL_DOUBLE_PASS: + case OPTIONAL_REDOUBLE_PASS: + + /* + * Optimal : no double + * Best for me : double, take + * Worst for me: double, pass + */ + + aiOrder[0] = OUTPUT_NODOUBLE; + aiOrder[1] = OUTPUT_TAKE; + aiOrder[2] = OUTPUT_DROP; + + break; + + default: + + g_assert_not_reached(); + + } + +} + + + +extern float +getPercent(const cubedecision cd, const float arDouble[]) +{ + + switch (cd) { + + case DOUBLE_TAKE: + case DOUBLE_BEAVER: + case DOUBLE_PASS: + case REDOUBLE_TAKE: + case REDOUBLE_PASS: + case NODOUBLE_DEADCUBE: + case NO_REDOUBLE_DEADCUBE: + case OPTIONAL_DOUBLE_BEAVER: + case OPTIONAL_DOUBLE_TAKE: + case OPTIONAL_REDOUBLE_TAKE: + case OPTIONAL_DOUBLE_PASS: + case OPTIONAL_REDOUBLE_PASS: + /* correct cube action */ + return -1.0f; + + case TOOGOODRE_TAKE: + case TOOGOOD_TAKE: + /* never correct to double */ + return -1.0f; + + case NODOUBLE_TAKE: + case NODOUBLE_BEAVER: + case NO_REDOUBLE_TAKE: + case NO_REDOUBLE_BEAVER: + + /* how many doubles should be dropped before it is correct to double */ + + return (arDouble[OUTPUT_NODOUBLE] - arDouble[OUTPUT_TAKE]) / (arDouble[OUTPUT_DROP] - arDouble[OUTPUT_TAKE]); + + case TOOGOOD_PASS: + case TOOGOODRE_PASS: + + /* how many doubles should be taken before it is correct to double */ + if (arDouble[OUTPUT_NODOUBLE] > arDouble[OUTPUT_TAKE]) + /* strange match play scenario + * (see 3-ply eval on cAmgACAAGAAA/4HPkAUgzW8EBMA): + * never correct to double! */ + return -1.0f; + else + return + (arDouble[OUTPUT_NODOUBLE] - arDouble[OUTPUT_DROP]) / (arDouble[OUTPUT_TAKE] - arDouble[OUTPUT_DROP]); + + default: + + g_assert_not_reached(); + + } + + return -1.0f; +} + + +/* + * Resort movelist and recalculate best score. + * + * Input: + * pml: movelist + * + * Output: + * pml: update movelist + * ai : the new ordering. Caller must allocate ai. + * + * FIXME: the construction of the ai-array is *very* ugly. + * We should probably write a substitute for qsort that + * updates ai on the fly. + * + */ + +extern void +RefreshMoveList(movelist * pml, int *ai) +{ + static movelist ml; + + if (!pml->cMoves) + return; + + if (ai) + CopyMoveList(&ml, pml); + + qsort(pml->amMoves, pml->cMoves, sizeof(move), (cfunc) CompareMovesGeneral); + + pml->rBestScore = pml->amMoves[0].rScore; + + if (ai) { + for (unsigned int i = 0; i < pml->cMoves; i++) { + + for (unsigned int j = 0; j < pml->cMoves; j++) { + + if (!memcmp(ml.amMoves[j].anMove, pml->amMoves[i].anMove, 8 * sizeof(int))) + ai[j] = i; + + } + } + + g_free(ml.amMoves); + } +} + + +extern void +CopyMoveList(movelist * pmlDest, const movelist * pmlSrc) +{ + + if (pmlDest == pmlSrc) + return; + + pmlDest->cMoves = pmlSrc->cMoves; + pmlDest->cMaxMoves = pmlSrc->cMaxMoves; + pmlDest->cMaxPips = pmlSrc->cMaxPips; + pmlDest->iMoveBest = pmlSrc->iMoveBest; + pmlDest->rBestScore = pmlSrc->rBestScore; + +#if GLIB_CHECK_VERSION (2,67,4) + pmlDest->amMoves = (move *) g_memdup2(pmlSrc->amMoves, pmlSrc->cMoves * sizeof(move)); +#else + pmlDest->amMoves = (move *) g_memdup(pmlSrc->amMoves, pmlSrc->cMoves * sizeof(move)); +#endif + +} + + + +/* + * is this a close cubedecision? + * + * Input: + * arDouble: equities for cube decisions + * + */ + +extern int +isCloseCubedecision(const float arDouble[]) +{ + const float rThr = 0.16f; + float rDouble; + rDouble = MIN(arDouble[OUTPUT_TAKE], 1.0f); + + /* Report if doubling is less than 0.16 */ + if (arDouble[OUTPUT_OPTIMAL] - rDouble < rThr) + return 1; + + return 0; + +} + + +/* + * is this a missed double? + * + * Input: + * arDouble: equities for cube decisions + * fDouble: did the player double + * pci: cubeinfo + * + */ + +extern int +isMissedDouble(float arDouble[], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], const int fDouble, const cubeinfo * pci) +{ + + cubedecision cd = FindBestCubeDecision(arDouble, aarOutput, pci); + + switch (cd) { + + case DOUBLE_TAKE: + case DOUBLE_PASS: + case DOUBLE_BEAVER: + case REDOUBLE_TAKE: + case REDOUBLE_PASS: + + return !fDouble; + + default: + + return 0; + + } + +} + + +static int +MoveKey(const TanBoard anBoard, const int anMove[8], positionkey * pkey) +{ + TanBoard anBoardMove; + + memcpy(anBoardMove, anBoard, sizeof(anBoardMove)); + ApplyMove(anBoardMove, anMove, FALSE); + PositionKey((ConstTanBoard) anBoardMove, pkey); + + return 0; +} + + +extern unsigned int +locateMove(const TanBoard anBoard, const int anMove[8], const movelist * pml) +{ + + unsigned int i; + positionkey key1, key2; + + MoveKey(anBoard, anMove, &key1); + + for (i = 0; i < pml->cMoves; ++i) { + + MoveKey(anBoard, pml->amMoves[i].anMove, &key2); + + if (EqualKeys(key2, key1)) + return i; + + } + + return 0; + +} + + +extern int +equal_movefilter(const int i, const movefilter amf1[MAX_FILTER_PLIES], const movefilter amf2[MAX_FILTER_PLIES]) +{ + + int j; + + for (j = 0; j <= i; ++j) { + if (amf1[j].Accept != amf2[j].Accept) + return 0; + if (amf1[j].Accept < 0) + continue; + if (amf1[j].Extra != amf2[j].Extra) + return 0; + if (!amf1[j].Extra) + continue; + if (amf1[j].Threshold != amf2[j].Threshold) + return 0; + + } + + return 1; + +} + + +extern int +equal_movefilters(movefilter aamf1[MAX_FILTER_PLIES][MAX_FILTER_PLIES], + movefilter aamf2[MAX_FILTER_PLIES][MAX_FILTER_PLIES]) +{ + + int i; + + for (i = 0; i < MAX_FILTER_PLIES; ++i) + if (!equal_movefilter(i, aamf1[i], aamf2[i])) + return 0; + + return 1; + +} + + +/* + * Categorise double into normal, beaver, or raccoon. + * + * The function is called before ApplyMoveRecord: + * + * fDoubled = FALSE: + * + * the previous moverecord was not a MOVE_DOUBLE, + * hence this is a normal double. + * + * fDoubled = TRUE: + * + * The previous moverecord was a MOVE_DOUBLE + * so it's either a beaver or a raccoon + * + * Beaver: fTurn != fMove (the previous doubler was the player on roll + * so the redouble must be a beaver) + * Raccoon: fTurn == fMove and/or fCubeOwner != fMove + * + * + */ + +extern doubletype +DoubleType(const int fDoubled, const int fMove, const int fTurn) +{ + + if (fDoubled) { + + /* beaver or raccoon */ + + if (fTurn != fMove) + /* beaver */ + return DT_BEAVER; + else + /* raccoon */ + return DT_RACCOON; + + } + return DT_NORMAL; +} + +#else + +#define FindnSaveBestMoves FindnSaveBestMovesWithLocking +#define FindBestMove FindBestMoveWithLocking +#define EvaluatePosition EvaluatePositionWithLocking +#define ScoreMove ScoreMoveWithLocking +#define GeneralCubeDecisionE GeneralCubeDecisionEWithLocking +#define GeneralEvaluationE GeneralEvaluationEWithLocking +#define EvaluatePositionCache EvaluatePositionCacheWithLocking +#define FindBestMovePlied FindBestMovePliedWithLocking +#define GeneralEvaluationEPlied GeneralEvaluationEPliedWithLocking +#define EvaluatePositionCubeful3 EvaluatePositionCubeful3WithLocking +#define ScoreMoves ScoreMovesWithLocking +#define ScoreMovesPruned ScoreMovesPrunedWithLocking +#define FindBestMoveInEval FindBestMoveInEvalWithLocking +#define GeneralEvaluationEPliedCubeful GeneralEvaluationEPliedCubefulWithLocking +#define EvaluatePositionCubeful4 EvaluatePositionCubeful4WithLocking +#define CacheAdd CacheAddWithLocking +#define CacheLookup CacheLookupWithLocking + +static int EvaluatePositionCache(NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * const pci, const evalcontext * pecx, int nPlies, positionclass pc); + +static int FindBestMovePlied(int anMove[8], int nDice0, int nDice1, + TanBoard anBoard, const cubeinfo * pci, + const evalcontext * pec, int nPlies, movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]); + +#endif + +static int GeneralEvaluationEPlied(NNState * nnStates, float arOutput[NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * pci, const evalcontext * pec, int nPlies); +static int EvaluatePositionCubeful3(NNState * nnStates, const TanBoard anBoard, float arOutput[NUM_OUTPUTS], + float arCubeful[], const cubeinfo aciCubePos[], int cci, cubeinfo * pciMove, + const evalcontext * pec, int nPlies, int fTop); + +/* Functions that have both locking and non-locking versions below here */ + +static int ScoreMoves(movelist * pml, const cubeinfo * pci, const evalcontext * pec, int nPlies); +static int ScoreMovesPruned(movelist * pml, const cubeinfo * pci, const evalcontext * pec, unsigned int *bmovesi, + unsigned int prune_moves); +/* + * The pruning nets select the best MIN_PRUNE_MOVES + + * floor(log2(number of legal moves)) moves instead of 10 as they used + * to do. A value of 5 for MIN_PRUNE_MOVES brings a small speed-up + * and, according to the Depreli benchmark, an insignificant strength + * improvement. Using a lower value causes a measurable degradation + * of play. Using a higher one doesn't significantly improve it. + */ +#define MIN_PRUNE_MOVES 5 +#define MAX_PRUNE_MOVES (MIN_PRUNE_MOVES + 11) + +static SIMD_AVX_STACKALIGN void +FindBestMoveInEval(NNState * nnStates, int const nDice0, int const nDice1, const TanBoard anBoardIn, + TanBoard anBoardOut, cubeinfo * const pci, const evalcontext * pec) +{ + unsigned int i; + movelist ml; + positionclass evalClass = CLASS_OVER; + unsigned int bmovesi[MAX_PRUNE_MOVES]; + unsigned int prune_moves; + + GenerateMoves(&ml, anBoardIn, nDice0, nDice1, FALSE); + + if (ml.cMoves == 0) { + /* no legal moves */ + return; + } + + if (ml.cMoves == 1) { + /* forced move */ + ml.iMoveBest = 0; + PositionFromKey(anBoardOut, &ml.amMoves[ml.iMoveBest].key); + return; + } + + /* LogCube() is floor(log2()) */ + prune_moves = MIN_PRUNE_MOVES + LogCube(ml.cMoves); + + if (ml.cMoves <= prune_moves) { + ScoreMoves(&ml, pci, pec, 0); + PositionFromKey(anBoardOut, &ml.amMoves[ml.iMoveBest].key); + return; + } + + pci->fMove = !pci->fMove; + bmovesi[0] = 0; + + for (i = 0; i < ml.cMoves; i++) { + positionclass pc; + SSE_ALIGN(float arOutput[NUM_OUTPUTS]); + evalcache ec; + uint32_t l; + move *const pm = &ml.amMoves[i]; + + PositionFromKeySwapped(anBoardOut, &pm->key); + + pc = ClassifyPosition((ConstTanBoard) anBoardOut, VARIATION_STANDARD); + if (i == 0) { + if (pc < CLASS_RACE) + break; + evalClass = pc; + } else if (pc != evalClass) + break; + + CopyKey(pm->key, ec.key); + ec.nEvalContext = 0; + if ((l = CacheLookup(&cpEval, &ec, arOutput, NULL)) != CACHEHIT) { + SSE_ALIGN(float arInput[NUM_PRUNING_INPUTS]); + + baseInputs((ConstTanBoard) anBoardOut, arInput); + { + const neuralnet *nets[] = { &nnpRace, &nnpCrashed, &nnpContact }; + const neuralnet *n = nets[pc - CLASS_RACE]; +#if defined(USE_SIMD_INSTRUCTIONS) + (void) nnStates; /* silence compiler warning */ + NeuralNetEvaluateSSE(n, arInput, arOutput, NULL); +#else + if (nnStates) + nnStates[pc - CLASS_RACE].state = (i == 0) ? NNSTATE_INCREMENTAL : NNSTATE_DONE; + NeuralNetEvaluate(n, arInput, arOutput, nnStates); +#endif + if (pc == CLASS_RACE) + /* special evaluation of backgammons + * overrides net output */ + EvalRaceBG((ConstTanBoard) anBoardOut, arOutput, VARIATION_STANDARD); + + SanityCheck((ConstTanBoard) anBoardOut, arOutput); + } + memcpy(ec.ar, arOutput, sizeof(float) * NUM_OUTPUTS); + ec.ar[5] = 0.f; + CacheAdd(&cpEval, &ec, l); + } + pm->rScore = UtilityME(arOutput, pci); + if (i < prune_moves) { + bmovesi[i] = i; + if (pm->rScore > ml.amMoves[bmovesi[0]].rScore) { + bmovesi[i] = bmovesi[0]; + bmovesi[0] = i; + } + } else if (pm->rScore < ml.amMoves[bmovesi[0]].rScore) { + unsigned int m = 0, k; + bmovesi[0] = i; + for (k = 1; k < prune_moves; ++k) { + if (ml.amMoves[bmovesi[k]].rScore > ml.amMoves[bmovesi[m]].rScore) { + m = k; + } + } + bmovesi[0] = bmovesi[m]; + bmovesi[m] = i; + } + } + + pci->fMove = !pci->fMove; + + if (i == ml.cMoves) + ScoreMovesPruned(&ml, pci, pec, bmovesi, prune_moves); + else + ScoreMoves(&ml, pci, pec, 0); + + PositionFromKey(anBoardOut, &ml.amMoves[ml.iMoveBest].key); +} + +static int +EvaluatePositionFull(NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * const pci, const evalcontext * pec, unsigned int nPlies, positionclass pc) +{ + SSE_ALIGN(float arVariationOutput[NUM_OUTPUTS]); + int i; + + if (pc > CLASS_PERFECT && nPlies > 0) { + /* internal node; recurse */ + + TanBoard anBoardNew; + /* int anMove[ 8 ]; */ + cubeinfo ciOpp; + float rTemp; + int n0, n1; + + int const usePrune = pec->fUsePrune && pec->rNoise == 0.0f && pci->bgv == VARIATION_STANDARD; + + for (i = 0; i < NUM_OUTPUTS; i++) + arOutput[i] = 0.0f; + + /* loop over rolls */ + + for (n0 = 1; n0 <= 6; n0++) { + for (n1 = 1; n1 <= n0; n1++) { + float w = (n0 == n1) ? 1.0f : 2.0f; + + for (i = 0; i < 25; i++) { + anBoardNew[0][i] = anBoard[0][i]; + anBoardNew[1][i] = anBoard[1][i]; + } + + if (MT_SafeGet(&fInterrupt)) { + errno = EINTR; + return -1; + } + + if (usePrune) { + FindBestMoveInEval(nnStates, n0, n1, anBoard, anBoardNew, pci, pec); + } else { + + FindBestMovePlied(NULL, n0, n1, anBoardNew, pci, pec, 0, defaultFilters); + } + + SwapSides(anBoardNew); + + SetCubeInfo(&ciOpp, pci->nCube, pci->fCubeOwner, !pci->fMove, + pci->nMatchTo, pci->anScore, pci->fCrawford, pci->fJacoby, pci->fBeavers, pci->bgv); + + /* Evaluate at 0-ply */ + if (EvaluatePositionCache(nnStates, (ConstTanBoard) anBoardNew, arVariationOutput, + &ciOpp, pec, nPlies - 1, + ClassifyPosition((ConstTanBoard) anBoardNew, ciOpp.bgv))) + return -1; + + for (i = 0; i < NUM_OUTPUTS; i++) + arOutput[i] += w *arVariationOutput[i]; + } + + } + + /* normalize */ + for (i = 0; i < NUM_OUTPUTS; i++) + arOutput[i] /= 36; + + /* flop eval */ + arOutput[OUTPUT_WIN] = 1.0f - arOutput[OUTPUT_WIN]; + + rTemp = arOutput[OUTPUT_WINGAMMON]; + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_LOSEGAMMON]; + arOutput[OUTPUT_LOSEGAMMON] = rTemp; + + rTemp = arOutput[OUTPUT_WINBACKGAMMON]; + arOutput[OUTPUT_WINBACKGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON]; + arOutput[OUTPUT_LOSEBACKGAMMON] = rTemp; + + } else { + /* at leaf node; use static evaluation */ + + if (acef[pc] (anBoard, arOutput, pci->bgv, nnStates)) + return -1; + + if (pec->rNoise > 0.0f && pc != CLASS_OVER) { + for (i = 0; i < NUM_OUTPUTS; i++) { + arOutput[i] += Noise(pec, anBoard, i); + arOutput[i] = MAX(arOutput[i], 0.0f); + arOutput[i] = MIN(arOutput[i], 1.0f); + } + } + + if (pc > CLASS_GOOD || pec->rNoise > 0.0f) + /* no sanity check needed for accurate evaluations */ + SanityCheck(anBoard, arOutput); + } + + return 0; +} + + +static int +EvaluatePositionCache(NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * const pci, const evalcontext * pecx, int nPlies, positionclass pc) +{ + evalcache ec; + uint32_t l; + /* This should be a part of the code that is called in all + * time-consuming operations at a relatively steady rate, so is a + * good choice for a callback function. */ + if (!cCache || pecx->rNoise != 0.0f) { /* non-deterministic noisy evaluations; cannot cache */ + return EvaluatePositionFull(nnStates, anBoard, arOutput, pci, pecx, nPlies, pc); + } + + PositionKey(anBoard, &ec.key); + + ec.nEvalContext = EvalKey(pecx, nPlies, pci, FALSE); + if ((l = CacheLookup(&cEval, &ec, arOutput, NULL)) == CACHEHIT) { + return 0; + } + + if (EvaluatePositionFull(nnStates, anBoard, arOutput, pci, pecx, nPlies, pc)) + return -1; + + memcpy(ec.ar, arOutput, sizeof(float) * NUM_OUTPUTS); + ec.ar[5] = 0.f; + CacheAdd(&cEval, &ec, l); + return 0; +} + +extern int +EvaluatePosition(NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * const pci, const evalcontext * pec) +{ + + positionclass pc = ClassifyPosition(anBoard, pci->bgv); + + return EvaluatePositionCache(nnStates, anBoard, arOutput, pci, pec ? pec : &ecBasic, pec ? pec->nPlies : 0, pc); +} + + +extern int +ScoreMove(NNState * nnStates, move * pm, const cubeinfo * pci, const evalcontext * pec, int nPlies) +{ + TanBoard anBoardTemp; + SSE_ALIGN(float arEval[NUM_ROLLOUT_OUTPUTS]); + cubeinfo ci; + + PositionFromKeySwapped(anBoardTemp, &pm->key); + + /* swap fMove in cubeinfo */ + memcpy(&ci, pci, sizeof(ci)); + ci.fMove = !ci.fMove; + + if (GeneralEvaluationEPlied(nnStates, arEval, (ConstTanBoard) anBoardTemp, &ci, pec, nPlies)) + return -1; + + InvertEvaluationR(arEval, &ci); + + if (ci.nMatchTo) + arEval[OUTPUT_CUBEFUL_EQUITY] = mwc2eq(arEval[OUTPUT_CUBEFUL_EQUITY], pci); + + /* Save evaluations */ + memcpy(pm->arEvalMove, arEval, NUM_ROLLOUT_OUTPUTS * sizeof(float)); + + /* Save evaluation setup */ + pm->esMove.et = EVAL_EVAL; + pm->esMove.ec = *pec; + pm->esMove.ec.nPlies = nPlies; + + /* Score for move: + * rScore is the primary score (cubeful/cubeless) + * rScore2 is the secondary score (cubeless) */ + pm->rScore = (pec->fCubeful) ? arEval[OUTPUT_CUBEFUL_EQUITY] : arEval[OUTPUT_EQUITY]; + pm->rScore2 = arEval[OUTPUT_EQUITY]; + + return 0; +} + +static int +ScoreMoves(movelist * pml, const cubeinfo * pci, const evalcontext * pec, int nPlies) +{ + unsigned int i; + int r = 0; /* return value */ + NNState *nnStates = MT_Get_nnState(); + + pml->rBestScore = -99999.9f; + + if (nPlies == 0) { + /* start incremental evaluations */ + nnStates[0].state = nnStates[1].state = nnStates[2].state = NNSTATE_INCREMENTAL; + } + + + for (i = 0; i < pml->cMoves; i++) { + if (ScoreMove(nnStates, pml->amMoves + i, pci, pec, nPlies) < 0) { + r = -1; + break; + } + + if ((pml->amMoves[i].rScore > pml->rBestScore) || ((pml->amMoves[i].rScore == pml->rBestScore) + && (pml->amMoves[i].rScore2 > + pml->amMoves[pml->iMoveBest].rScore2))) { + pml->iMoveBest = i; + pml->rBestScore = pml->amMoves[i].rScore; + } + } + + if (nPlies == 0) { + /* reset to none */ + + nnStates[0].state = nnStates[1].state = nnStates[2].state = NNSTATE_NONE; + } + + return r; +} + +static int +ScoreMovesPruned(movelist * pml, const cubeinfo * pci, const evalcontext * pec, unsigned int *bmovesi, + unsigned int prune_moves) +{ + unsigned int j; + int r = 0; /* return value */ + NNState *nnStates = MT_Get_nnState(); + + pml->rBestScore = -99999.9f; + + /* start incremental evaluations */ + nnStates[0].state = nnStates[1].state = nnStates[2].state = NNSTATE_INCREMENTAL; + + for (j = 0; j < prune_moves; j++) { + + unsigned int i = bmovesi[j]; + + if (ScoreMove(nnStates, pml->amMoves + i, pci, pec, 0) < 0) { + r = -1; + break; + } + + if ((pml->amMoves[i].rScore > pml->rBestScore) || ((pml->amMoves[i].rScore == pml->rBestScore) + && (pml->amMoves[i].rScore2 > + pml->amMoves[pml->iMoveBest].rScore2))) { + pml->iMoveBest = i; + pml->rBestScore = pml->amMoves[i].rScore; + } + } + + nnStates[0].state = nnStates[1].state = nnStates[2].state = NNSTATE_NONE; + + return r; +} + +static movefilter NullFilter = { -1, 0, 0.0f }; + +static int +FindBestMovePlied(int anMove[8], int nDice0, int nDice1, + TanBoard anBoard, + const cubeinfo * pci, const evalcontext * pec, int nPlies, + movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]) +{ + + evalcontext ec; + movelist ml; + unsigned int i; + + memcpy(&ec, pec, sizeof(evalcontext)); + ec.nPlies = nPlies; + + if (anMove) + for (i = 0; i < 8; ++i) + anMove[i] = -1; + + if (FindnSaveBestMoves(&ml, nDice0, nDice1, (ConstTanBoard) anBoard, NULL, FALSE, 0.0f, pci, &ec, aamf) < 0) { + g_free(ml.amMoves); + return -1; + } + + if (anMove) { + for (i = 0; i < ml.cMaxMoves * 2; i++) + anMove[i] = ml.amMoves[ml.iMoveBest].anMove[i]; + } + + if (ml.cMoves) + PositionFromKey(anBoard, &ml.amMoves[ml.iMoveBest].key); + + g_free(ml.amMoves); + + return ml.cMaxMoves * 2; +} + + +extern + int +FindBestMove(int anMove[8], int nDice0, int nDice1, + TanBoard anBoard, const cubeinfo * pci, evalcontext * pec, + movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]) +{ + + return FindBestMovePlied(anMove, nDice0, nDice1, anBoard, pci, pec ? pec : &ecBasic, pec ? pec->nPlies : 0, aamf); +} + +extern int +FindnSaveBestMoves(movelist * pml, int nDice0, int nDice1, const TanBoard anBoard, positionkey * keyMove, const + int fAnalyse, float rThr, const cubeinfo * pci, const evalcontext * pec, + movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]) +{ + + /* Find best moves. + * Ensure that keyMove is evaluated at the deepest ply. */ + + unsigned int i; + unsigned int nMoves, iPly; + move *pm; + movefilter *mFilters; + unsigned int nMaxPly = 0; + unsigned int cOldMoves; + + /* Find all moves -- note that pml contains internal pointers to static + * data, so we can't call GenerateMoves again (or anything that calls + * it, such as ScoreMoves at more than 0 plies) until we have saved + * the moves we want to keep in amCandidates. */ + GenerateMoves(pml, anBoard, nDice0, nDice1, FALSE); + + if (pml->cMoves == 0) { + /* no legal moves */ + pml->amMoves = NULL; + return 0; + } + + /* Save moves */ +#if GLIB_CHECK_VERSION (2,67,4) + pm = (move *) g_memdup2(pml->amMoves, pml->cMoves * sizeof(move)); +#else + pm = (move *) g_memdup(pml->amMoves, pml->cMoves * sizeof(move)); +#endif + pml->amMoves = pm; + nMoves = pml->cMoves; + + mFilters = (pec->nPlies > 0 && pec->nPlies <= MAX_FILTER_PLIES) ? + aamf[pec->nPlies - 1] : aamf[MAX_FILTER_PLIES - 1]; + + for (iPly = 0; iPly < pec->nPlies; iPly++) { + + movefilter *mFilter = (iPly < MAX_FILTER_PLIES) ? &mFilters[iPly] : &NullFilter; + + unsigned int k; + + if (mFilter->Accept < 0) { + continue; + } + + if (ScoreMoves(pml, pci, pec, iPly) < 0) { + g_free(pm); + pml->cMoves = 0; + pml->amMoves = NULL; + return -1; + } + + qsort(pml->amMoves, pml->cMoves, sizeof(move), (cfunc) CompareMoves); + pml->iMoveBest = 0; + + k = pml->cMoves; + /* we check for mFilter->Accept < 0 above */ + pml->cMoves = MIN((unsigned int) mFilter->Accept, pml->cMoves); + + { + unsigned int limit = MIN(k, pml->cMoves + mFilter->Extra); + + for ( /**/; pml->cMoves < limit; ++pml->cMoves) { + if (pml->amMoves[pml->cMoves].rScore < pml->amMoves[0].rScore - mFilter->Threshold) { + break; + } + } + } + + nMaxPly = iPly; + + if (pml->cMoves == 1 && mFilter->Accept != 1) + /* if there is only one move to evaluate there is no need to continue */ + goto finished; + + + } + + /* evaluate moves on top ply */ + + if (ScoreMoves(pml, pci, pec, pec->nPlies) < 0) { + g_free(pm); + pml->cMoves = 0; + pml->amMoves = NULL; + return -1; + } + + nMaxPly = pec->nPlies; + + /* Resort the moves, in case the new evaluation reordered them. */ + qsort(pml->amMoves, pml->cMoves, sizeof(move), (cfunc) CompareMoves); + pml->iMoveBest = 0; + + /* set the proper size of the movelist */ + + finished: + + cOldMoves = pml->cMoves; + pml->cMoves = nMoves; + + if (fAnalyse) { + + /* + * If fAnalyse is true we don't want to have a move evaluated at a + * lower ply to appear better than a one evaluated at a higher ply: + * re-evaluate it at the ply of the previous move + */ + + int fChanged; + + do { + fChanged = 0; + for (i = 1; i < pml->cMoves; i++) + if (pml->amMoves[i].esMove.ec.nPlies < pml->amMoves[i-1].esMove.ec.nPlies + && pml->amMoves[i].rScore > pml->amMoves[i-1].rScore) { + float limit = pml->amMoves[i-1].rScore; + fChanged = 1; + for (unsigned int j = i; j < pml->cMoves; j++) + if (pml->amMoves[j].rScore > limit) { + ScoreMove(NULL, pml->amMoves + j, pci, pec, pml->amMoves[i-1].esMove.ec.nPlies); + limit = MIN(limit, pml->amMoves[j].rScore); + } + } + + qsort(pml->amMoves, pml->cMoves, sizeof(move), (cfunc) CompareMoves); + } while (fChanged == 1); + } + + /* Make sure that keyMove and top move are both + * evaluated at the deepest ply. */ + if (keyMove) { + + int fResort = FALSE; + + for (i = 0; i < pml->cMoves; i++) + if (EqualKeys((*keyMove), pml->amMoves[i].key)) { + + /* ensure top move is evaluted at deepest ply */ + + if (pml->amMoves[i].esMove.ec.nPlies < nMaxPly) { + ScoreMove(NULL, pml->amMoves + i, pci, pec, nMaxPly); + fResort = TRUE; + } + + if ((fabsf(pml->amMoves[i].rScore - pml->amMoves[0].rScore) > rThr) && (nMaxPly < pec->nPlies)) { + + /* this is en error/blunder: re-analyse at top-ply */ + + ScoreMove(NULL, pml->amMoves, pci, pec, pec->nPlies); + ScoreMove(NULL, pml->amMoves + i, pci, pec, pec->nPlies); + cOldMoves = 1; /* only one move scored at deepest ply */ + fResort = TRUE; + + } + + /* move it up to the other moves evaluated on nMaxPly */ + + if (fResort && pec->nPlies && i > 0) { + move m; + unsigned int j; + + memcpy(&m, pml->amMoves + i, sizeof m); + + for (j = i - 1; j >= cOldMoves; --j) + memcpy(pml->amMoves + j + 1, pml->amMoves + j, sizeof(move)); + + memcpy(pml->amMoves + cOldMoves, &m, sizeof(m)); + + /* reorder moves evaluated on nMaxPly */ + + qsort(pml->amMoves, cOldMoves + 1, sizeof(move), (cfunc) CompareMoves); + + } + break; + } + } + + return 0; + +} + +extern int +GeneralCubeDecisionE(float aarOutput[2][NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, + cubeinfo * const pci, const evalcontext * pec, const evalsetup * UNUSED(pes)) +{ + + SSE_ALIGN(float arOutput[NUM_OUTPUTS]); + cubeinfo aciCubePos[2]; + float arCubeful[2]; + int i, j; + + + /* Setup cube for "no double" and "double, take" */ + + memcpy(&aciCubePos[0], pci, sizeof(cubeinfo)); + memcpy(&aciCubePos[1], pci, sizeof(cubeinfo)); + aciCubePos[1].fCubeOwner = !aciCubePos[1].fMove; + aciCubePos[1].nCube *= 2; + + if (EvaluatePositionCubeful3(NULL, anBoard, arOutput, arCubeful, aciCubePos, 2, pci, pec, pec->nPlies, TRUE)) + return -1; + + + /* Scale double-take equity */ + if (!pci->nMatchTo) + arCubeful[1] *= 2.0f; + + for (i = 0; i < 2; i++) { + + /* copy cubeless winning chances */ + for (j = 0; j < NUM_OUTPUTS; j++) + aarOutput[i][j] = arOutput[j]; + + /* equity */ + + aarOutput[i][OUTPUT_EQUITY] = UtilityME(arOutput, &aciCubePos[i]); + + aarOutput[i][OUTPUT_CUBEFUL_EQUITY] = arCubeful[i]; + + } + + return 0; + +} + +extern int +GeneralEvaluationE(float arOutput[NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * const pci, const evalcontext * pec) +{ + + return GeneralEvaluationEPlied(NULL, arOutput, anBoard, pci, pec, pec->nPlies); + +} + + +static int +GeneralEvaluationEPliedCubeful(NNState * nnStates, float arOutput[NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * const pci, const evalcontext * pec, int nPlies) +{ + + float rCubeful; + + if (EvaluatePositionCubeful3(nnStates, anBoard, arOutput, &rCubeful, pci, 1, pci, pec, nPlies, FALSE)) + return -1; + + arOutput[OUTPUT_EQUITY] = UtilityME(arOutput, pci); + arOutput[OUTPUT_CUBEFUL_EQUITY] = rCubeful; + + return 0; + +} + +extern int +GeneralEvaluationEPlied(NNState * nnStates, float arOutput[NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * const pci, const evalcontext * pec, int nPlies) +{ + + if (pec->fCubeful) { + + if (GeneralEvaluationEPliedCubeful(nnStates, arOutput, anBoard, pci, pec, nPlies)) + return -1; + + } else { + if (EvaluatePositionCache(nnStates, anBoard, arOutput, pci, pec, nPlies, ClassifyPosition(anBoard, pci->bgv))) + return -1; + + arOutput[OUTPUT_EQUITY] = UtilityME(arOutput, pci); + arOutput[OUTPUT_CUBEFUL_EQUITY] = 0.0f; + } + + return 0; + +} + +static int +EvaluatePositionCubeful4(NNState * nnStates, const TanBoard anBoard, + float arOutput[NUM_OUTPUTS], + float arCubeful[], + const cubeinfo aciCubePos[], int cci, + cubeinfo * const pciMove, const evalcontext * pec, unsigned int nPlies, int fTop) +{ + + + /* calculate cubeful equity */ + + int i; + positionclass pc; + SSE_ALIGN(float ar[NUM_OUTPUTS]); + float arEquity[4]; + + cubeinfo ciMoveOpp; + + float *arCf = (float *) g_alloca(2 * cci * sizeof(float)); + float *arCfTemp = (float *) g_alloca(2 * cci * sizeof(float)); + cubeinfo *aci = (cubeinfo *) g_alloca(2 * cci * sizeof(cubeinfo)); + + pc = ClassifyPosition(anBoard, pciMove->bgv); + + if (pc > CLASS_OVER && nPlies > 0 && !(pc <= CLASS_PERFECT && !pciMove->nMatchTo)) { + /* internal node; recurse */ + + TanBoard anBoardNew; + int n0, n1; + float r; + + int const usePrune = pec->fUsePrune && pec->rNoise == 0.0f && pciMove->bgv == VARIATION_STANDARD; + + for (i = 0; i < NUM_OUTPUTS; i++) + arOutput[i] = 0.0f; + + for (i = 0; i < 2 * cci; i++) + arCf[i] = 0.0f; + + /* construct next level cube positions */ + + MakeCubePos(aciCubePos, cci, fTop, aci, TRUE); + + /* loop over rolls */ + + for (n0 = 1; n0 <= 6; n0++) { + for (n1 = 1; n1 <= n0; n1++) { + float w = (n0 == n1) ? 1.0f : 2.0f; + + for (i = 0; i < 25; i++) { + anBoardNew[0][i] = anBoard[0][i]; + anBoardNew[1][i] = anBoard[1][i]; + } + + if (MT_SafeGet(&fInterrupt)) { + errno = EINTR; + return -1; + } + + if (usePrune) { + FindBestMoveInEval(nnStates, n0, n1, anBoard, anBoardNew, pciMove, pec); + } else { + + FindBestMovePlied(NULL, n0, n1, anBoardNew, pciMove, pec, 0, defaultFilters); + } + + SwapSides(anBoardNew); + + SetCubeInfo(&ciMoveOpp, + pciMove->nCube, pciMove->fCubeOwner, + !pciMove->fMove, pciMove->nMatchTo, + pciMove->anScore, pciMove->fCrawford, pciMove->fJacoby, pciMove->fBeavers, pciMove->bgv); + + /* Evaluate at 0-ply */ + if (EvaluatePositionCubeful3(nnStates, (ConstTanBoard) anBoardNew, + ar, arCfTemp, aci, 2 * cci, &ciMoveOpp, pec, nPlies - 1, FALSE)) + return -1; + + /* Sum up cubeless winning chances and cubeful equities */ + + for (i = 0; i < NUM_OUTPUTS; i++) + arOutput[i] += w *ar[i]; + for (i = 0; i < 2 * cci; i++) + arCf[i] += w *arCfTemp[i]; + + } + + } + + /* Flip evals */ +#define sumW 36 + + arOutput[OUTPUT_WIN] = 1.0f - arOutput[OUTPUT_WIN] / sumW; + + r = arOutput[OUTPUT_WINGAMMON] / sumW; + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_LOSEGAMMON] / sumW; + arOutput[OUTPUT_LOSEGAMMON] = r; + + r = arOutput[OUTPUT_WINBACKGAMMON] / sumW; + arOutput[OUTPUT_WINBACKGAMMON] = arOutput[OUTPUT_LOSEBACKGAMMON] / sumW; + arOutput[OUTPUT_LOSEBACKGAMMON] = r; + + for (i = 0; i < 2 * cci; i++) + if (pciMove->nMatchTo) + arCf[i] = 1.0f - arCf[i] / sumW; + else + arCf[i] = -arCf[i] / sumW; +#undef sumW + + /* invert fMove */ + /* Remember than fMove was inverted in the call to MakeCubePos */ + + for (i = 0; i < 2 * cci; i++) + aci[i].fMove = !aci[i].fMove; + + /* get cubeful equities */ + + GetECF3(arCubeful, cci, arCf, aci); + + } else { + /* at leaf node; use static evaluation */ + + float rCubeX; + int ici; + + if (pc == CLASS_HYPERGAMMON1 || pc == CLASS_HYPERGAMMON2 || pc == CLASS_HYPERGAMMON3) { + + bearoffcontext *pbc = apbcHyper[pc - CLASS_HYPERGAMMON1]; + unsigned int nUs, nThem, iPos; + unsigned int n; + + if (!pbc) + return -1; + + nUs = PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + nThem = PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + n = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + iPos = nUs * n + nThem; + + if (BearoffHyper(apbcHyper[pc - CLASS_HYPERGAMMON1], iPos, arOutput, arEquity)) + return -1; + + } else if (pc > CLASS_OVER && pc <= CLASS_PERFECT /* && ! pciMove->nMatchTo */ ) { + + if (EvaluatePerfectCubeful(anBoard, arEquity, pciMove->bgv)) { + return -1; + } + + arOutput[OUTPUT_WIN] = (arEquity[0] + 1.0f) / 2.0f; + arOutput[OUTPUT_WINGAMMON] = arOutput[OUTPUT_WINBACKGAMMON] = arOutput[OUTPUT_LOSEGAMMON] = + arOutput[OUTPUT_LOSEBACKGAMMON] = 0.0f; + + } else { + + /* evaluate with neural net */ + + if (EvaluatePosition(nnStates, anBoard, arOutput, pciMove, NULL)) + return -1; + + if (pec->rNoise > 0.0f && pc != CLASS_OVER) { + for (i = 0; i < NUM_OUTPUTS; i++) { + arOutput[i] += Noise(pec, anBoard, i); + arOutput[i] = MAX(arOutput[i], 0.0f); + arOutput[i] = MIN(arOutput[i], 1.0f); + } + } + + if (pc > CLASS_GOOD || pec->rNoise > 0.0f) + /* no sanity check needed for accurate evaluations */ + SanityCheck(anBoard, arOutput); + + } + + /* Calculate cube efficiency */ + + rCubeX = EvalEfficiency(anBoard, pc, pec->nPlies); + + /* Build all possible cube positions */ + + MakeCubePos(aciCubePos, cci, fTop, aci, FALSE); + + /* Calculate cubeful equity for each possible cube position */ + + for (ici = 0; ici < 2 * cci; ici++) + if (aci[ici].nCube > 0) { + /* cube available */ + + if (!aci[ici].nMatchTo) { + + /* money play */ + + switch (pc) { + case CLASS_HYPERGAMMON1: + case CLASS_HYPERGAMMON2: + case CLASS_HYPERGAMMON3: + /* exact bearoff equities & contact */ + + arCf[ici] = CFHYPER(arEquity, &aci[ici]); + break; + + case CLASS_BEAROFF2: + case CLASS_BEAROFF_TS: + /* exact bearoff equities */ + + arCf[ici] = CFMONEY(arEquity, &aci[ici]); + break; + + case CLASS_OVER: + case CLASS_RACE: + case CLASS_CRASHED: + case CLASS_CONTACT: + case CLASS_BEAROFF1: + case CLASS_BEAROFF_OS: + /* approximate using Janowski's formulae */ + + arCf[ici] = Cl2CfMoney(arOutput, &aci[ici], rCubeX); + break; + + } + + } else { + + float rCl, rCf, rCfMoney; + float X = rCubeX; + cubeinfo ciMoney; + + /* match play */ + + switch (pc) { + case CLASS_HYPERGAMMON1: + case CLASS_HYPERGAMMON2: + case CLASS_HYPERGAMMON3: + /* use exact money equities to guess cube efficiency */ + + SetCubeInfoMoney(&ciMoney, 1, aci[ici].fCubeOwner, aci[ici].fMove, FALSE, FALSE, aci[ici].bgv); + + rCl = Utility(arOutput, &ciMoney); + rCubeX = 1.0f; + rCf = Cl2CfMoney(arOutput, &ciMoney, rCubeX); + rCfMoney = CFHYPER(arEquity, &ciMoney); + + if (fabsf(rCl - rCf) > 0.0001f) + rCubeX = (rCfMoney - rCl) / (rCf - rCl); + + arCf[ici] = Cl2CfMatch(arOutput, &aci[ici], rCubeX); + + rCubeX = X; + + break; + + case CLASS_BEAROFF2: + case CLASS_BEAROFF_TS: + /* use exact money equities to guess cube efficiency */ + + SetCubeInfoMoney(&ciMoney, 1, aci[ici].fCubeOwner, aci[ici].fMove, FALSE, FALSE, aci[ici].bgv); + + rCl = arEquity[0]; + rCubeX = 1.0f; + rCf = Cl2CfMoney(arOutput, &ciMoney, rCubeX); + rCfMoney = CFMONEY(arEquity, &ciMoney); + + if (fabsf(rCl - rCf) > 0.0001f) + rCubeX = (rCfMoney - rCl) / (rCf - rCl); + else + rCubeX = X; + + /* fabsf(...) > 0.0001 above is not enough. We still get some + * nutty values for rCubeX and need more sanity checking */ + + if (rCubeX < 0.0f) + rCubeX = 0.0f; + if (rCubeX > X) + rCubeX = X; + + arCf[ici] = Cl2CfMatch(arOutput, &aci[ici], rCubeX); + + rCubeX = X; + + break; + + case CLASS_OVER: + case CLASS_RACE: + case CLASS_CRASHED: + case CLASS_CONTACT: + case CLASS_BEAROFF1: + case CLASS_BEAROFF_OS: + /* approximate using Joern's generalisation of + * Janowski's formulae */ + + arCf[ici] = Cl2CfMatch(arOutput, &aci[ici], rCubeX); + break; + + } + + } + + } + + + /* find optimal of "no double" and "double" */ + + GetECF3(arCubeful, cci, arCf, aci); + + } + + return 0; + +} + +/* EvaluatePositionCubeful3 is now just a wrapper for ....Cubeful4, which + * first checks the cache, and then calls ...Cubeful3 */ + +extern int +EvaluatePositionCubeful3(NNState * nnStates, const TanBoard anBoard, + float arOutput[NUM_OUTPUTS], + float arCubeful[], + const cubeinfo aciCubePos[], int cci, + cubeinfo * const pciMove, const evalcontext * pec, int nPlies, int fTop) +{ + + int ici; + int fAll; + evalcache ec; + + if (!cCache || pec->rNoise != 0.0f) + /* non-deterministic evaluation; never cache */ + { + return EvaluatePositionCubeful4(nnStates, anBoard, arOutput, arCubeful, + aciCubePos, cci, pciMove, pec, nPlies, fTop); + } + + PositionKey(anBoard, &ec.key); + + /* check cache for existence for earlier calculation */ + + fAll = !fTop; /* FIXME: fTop should be a part of EvalKey */ + + for (ici = 0; ici < cci && fAll; ++ici) { + + if (aciCubePos[ici].nCube < 0) { + arCubeful[ici] = -99999.9f; + continue; + } + + ec.nEvalContext = EvalKey(pec, nPlies, &aciCubePos[ici], TRUE); + + if (CacheLookup(&cEval, &ec, arOutput, arCubeful + ici) != CACHEHIT) { + fAll = FALSE; + } + } + + /* get equities */ + + if (!fAll) { + + /* cache miss */ + if (EvaluatePositionCubeful4(nnStates, anBoard, arOutput, arCubeful, + aciCubePos, cci, pciMove, pec, nPlies, fTop)) + return -1; + + /* add to cache */ + + if (!fTop) { + + for (ici = 0; ici < cci; ++ici) { + if (aciCubePos[ici].nCube < 0) + continue; + + memcpy(ec.ar, arOutput, sizeof(float) * NUM_OUTPUTS); + ec.ar[5] = arCubeful[ici]; /* Cubeful equity stored in slot 5 */ + ec.nEvalContext = EvalKey(pec, nPlies, &aciCubePos[ici], TRUE); + + CacheAdd(&cEval, &ec, GetHashKey(cEval.hashMask, &ec)); + + } + } + } + + return 0; + +} diff --git a/engine/gnubg/eval.h b/engine/gnubg/eval.h new file mode 100644 index 0000000..02e6780 --- /dev/null +++ b/engine/gnubg/eval.h @@ -0,0 +1,549 @@ +/* + * Copyright (C) 1998-2002 Gary Wong + * Copyright (C) 2000-2025 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef EVAL_H +#define EVAL_H + +#include "dice.h" +#include "bearoff.h" +#include "neuralnet.h" +#include "cache.h" + +#define EXP_LOCK_FUN(ret, name, ...) \ + typedef ret (*f_##name)( __VA_ARGS__); \ + extern f_##name name; \ + extern ret name##NoLocking( __VA_ARGS__); \ + extern ret name##WithLocking( __VA_ARGS__) + +#define WEIGHTS_VERSION "1.01" +#define WEIGHTS_VERSION_BINARY 1.01f +#define WEIGHTS_MAGIC_BINARY 472.3782f + +#define NUM_OUTPUTS 5 +#define NUM_CUBEFUL_OUTPUTS 4 +#define NUM_ROLLOUT_OUTPUTS 7 + +#define BETA_HIDDEN 0.1f +#define BETA_OUTPUT 1.0f + +#define OUTPUT_WIN 0 +#define OUTPUT_WINGAMMON 1 +#define OUTPUT_WINBACKGAMMON 2 +#define OUTPUT_LOSEGAMMON 3 +#define OUTPUT_LOSEBACKGAMMON 4 + +#define OUTPUT_EQUITY 5 /* NB: neural nets do not output equity, only + * rollouts do. */ +#define OUTPUT_CUBEFUL_EQUITY 6 + +/* Cubeful evaluations */ +typedef enum { + OUTPUT_OPTIMAL = 0, + OUTPUT_NODOUBLE, + OUTPUT_TAKE, + OUTPUT_DROP +} CubefulOutputs; + +/* A trivial upper bound on the number of (complete or incomplete) + * legal moves of a single roll: if all 15 chequers are spread out, + * then there are 18 C 4 + 17 C 3 + 16 C 2 + 15 C 1 = 3875 + * combinations in which a roll of 11 could be played (up to 4 choices from + * 15 chequers, and a chequer may be chosen more than once). The true + * bound will be lower than this (because there are only 26 points, + * some plays of 15 chequers must "overlap" and map to the same + * resulting position), but that would be more difficult to + * compute. */ +#define MAX_INCOMPLETE_MOVES 3875 +#define MAX_MOVES 3060 + +typedef struct { + int Accept; /* always allow this many moves. + -1 means don't use this level */ + int Extra; /* and add up to this many more */ + float Threshold; /* if they are within this equity difference */ +} movefilter; + +/* we'll have filters for 1..4 ply evaluation */ +#define MAX_FILTER_PLIES 4 +extern movefilter defaultFilters[MAX_FILTER_PLIES][MAX_FILTER_PLIES]; + +typedef struct { + /* FIXME expand this... e.g. different settings for different position + * classes */ + unsigned int fCubeful:1; /* cubeful evaluation */ + unsigned int nPlies:4; + unsigned int fUsePrune:1; + unsigned int fDeterministic:1; + unsigned int :25; /* padding */ + float rNoise; /* standard deviation */ +} evalcontext; + +/* identifies the format of evaluation info in .sgf files + * early (pre extending rollouts) had no version numbers + * extendable rollouts have a version number of 1 + * with pruning nets, we have two possibilities - reduction could still + * be enabled (version = 2) or, given the speedup and performance + * improvements, I assume we will drop reduction entirely. (ver = 3 or more) + * When presented with an .sgf file, gnubg will attempt to work out what + * data is present in the file based on the version number + */ + +#define SGF_FORMAT_VER 3 + +typedef struct { + evalcontext aecCube[2], aecChequer[2]; /* evaluation parameters */ + evalcontext aecCubeLate[2], aecChequerLate[2]; /* ... for later moves */ + evalcontext aecCubeTrunc, aecChequerTrunc; /* ... at truncation point */ + movefilter aaamfChequer[2][MAX_FILTER_PLIES][MAX_FILTER_PLIES]; + movefilter aaamfLate[2][MAX_FILTER_PLIES][MAX_FILTER_PLIES]; + + unsigned int fCubeful:1; /* Cubeful rollout */ + unsigned int fVarRedn:1; /* variance reduction */ + unsigned int fInitial:1; /* roll out as opening position */ + unsigned int fRotate:1; /* quasi-random dice */ + unsigned int fTruncBearoff2:1; /* cubeless rollout: trunc at BEAROFF2 */ + unsigned int fTruncBearoffOS:1; /* cubeless rollout: trunc at BEAROFF_OS */ + unsigned int fLateEvals:1; /* enable different evals for later moves */ + unsigned int fDoTruncate:1; /* enable truncated rollouts */ + unsigned int fStopOnSTD:1; /* stop when std's are small enough */ + unsigned int fStopOnJsd:1; + unsigned int fStopMoveOnJsd:1; /* stop multi-line rollout when jsd + * is small enough */ + unsigned short nTruncate; /* truncation */ + unsigned int nTrials; /* number of rollouts */ + unsigned short nLate; /* switch evaluations on move nLate of game */ + rng rngRollout; + unsigned long nSeed; + unsigned int nMinimumGames; /* always do at least this many */ + float rStdLimit; /* stop when std < this */ + unsigned int nMinimumJsdGames; + float rJsdLimit; + unsigned int nGamesDone; + float rStoppedOnJSD; + int nSkip; +} rolloutcontext; + +typedef struct { + float rEquity; + float rJSD; + int nOrder; + int nRank; +} jsdinfo; + +typedef enum { + EVAL_NONE, EVAL_EVAL, EVAL_ROLLOUT +} evaltype; + +/* enumeration of variations of backgammon + * (starting position and/or special rules) */ + +extern bgvariation bgvDefault; + +extern int anChequers[NUM_VARIATIONS]; +extern const char *aszVariations[NUM_VARIATIONS]; +extern const char *aszVariationCommands[NUM_VARIATIONS]; + +/* + * Cubeinfo contains the information necessary for evaluation + * of a position. + * These structs are placed here so that the move struct can be defined + */ + +typedef struct { + /* + * nCube: the current value of the cube, + * fCubeOwner: the owner of the cube, + * fMove: the player for which we are + * calculating equity for, + * fCrawford, fJacoby, fBeavers: optional rules in effect, + * arGammonPrice: the gammon prices; + * [ 0 ] = gammon price for player 0, + * [ 1 ] = gammon price for player 1, + * [ 2 ] = backgammon price for player 0, + * [ 3 ] = backgammon price for player 1. + * + */ + int nCube, fCubeOwner, fMove, nMatchTo, anScore[2], fCrawford, fJacoby, fBeavers; + float arGammonPrice[4]; + bgvariation bgv; +} cubeinfo; + +typedef struct { + evaltype et; + evalcontext ec; + rolloutcontext rc; +} evalsetup; + +typedef enum { + DOUBLE_TAKE, + DOUBLE_PASS, + NODOUBLE_TAKE, + TOOGOOD_TAKE, + TOOGOOD_PASS, + DOUBLE_BEAVER, + NODOUBLE_BEAVER, + REDOUBLE_TAKE, + REDOUBLE_PASS, + NO_REDOUBLE_TAKE, + TOOGOODRE_TAKE, + TOOGOODRE_PASS, + NO_REDOUBLE_BEAVER, + NODOUBLE_DEADCUBE, /* cube is dead (match play only) */ + NO_REDOUBLE_DEADCUBE, /* cube is dead (match play only) */ + NOT_AVAILABLE, /* Cube not available */ + OPTIONAL_DOUBLE_TAKE, + OPTIONAL_REDOUBLE_TAKE, + OPTIONAL_DOUBLE_BEAVER, + OPTIONAL_DOUBLE_PASS, + OPTIONAL_REDOUBLE_PASS +} cubedecision; + +typedef enum { + DT_NORMAL, + DT_BEAVER, + DT_RACCOON, + NUM_DOUBLE_TYPES +} doubletype; + +/* + * TT_NA can happen if a single position was loaded from a sgf file. + * To check for beavers, use "> TT_NORMAL", not "!= TT_NORMAL". + */ +typedef enum { + TT_NA, + TT_NORMAL, + TT_BEAVER +} taketype; + +extern const char *aszDoubleTypes[NUM_DOUBLE_TYPES]; + +/* + * prefined settings + */ + +#define NUM_SETTINGS 9 +#define SETTINGS_4PLY 8 +#define SETTINGS_3PLY 7 +#define SETTINGS_2PLY 6 +#define SETTINGS_1PLY 5 +#define SETTINGS_0PLY 4 +#define SETTINGS_ADVANCED 3 +#define SETTINGS_INTERMEDIATE 2 +#define SETTINGS_NOVICE 1 +#define SETTINGS_BEGINNER 0 + +extern evalcontext aecSettings[NUM_SETTINGS]; +extern evalcontext ecBasic; +extern int aiSettingsMoveFilter[NUM_SETTINGS]; +extern const char *aszSettings[NUM_SETTINGS]; + +#define NUM_MOVEFILTER_SETTINGS 2 + +extern const char *aszMoveFilterSettings[NUM_MOVEFILTER_SETTINGS]; +extern movefilter aaamfMoveFilterSettings[NUM_MOVEFILTER_SETTINGS][MAX_FILTER_PLIES][MAX_FILTER_PLIES]; + +typedef enum { + CMARK_NONE, + CMARK_ROLLOUT +} CMark; + +typedef struct { + int anMove[8]; + positionkey key; + unsigned int cMoves, cPips; + /* scores for this move */ + float rScore, rScore2; + /* evaluation for this move */ + float arEvalMove[NUM_ROLLOUT_OUTPUTS]; + float arEvalStdDev[NUM_ROLLOUT_OUTPUTS]; + evalsetup esMove; + CMark cmark; +} move; + +extern int fInterrupt; +extern cubeinfo ciCubeless; +extern const char *aszEvalType[(int) EVAL_ROLLOUT + 1]; + +extern bearoffcontext *pbc1; +extern bearoffcontext *pbc2; +extern bearoffcontext *pbcOS; +extern bearoffcontext *pbcTS; +extern bearoffcontext *apbcHyper[3]; + +typedef struct { + unsigned int cMoves; /* and current move when building list */ + unsigned int cMaxMoves, cMaxPips; + int iMoveBest; + float rBestScore; + move *amMoves; +} movelist; + +/* cube efficiencies */ + +extern float rOSCubeX; +extern float rRaceFactorX[2]; +extern float rRaceCoefficientX[2]; +extern float rRaceMax[2]; +extern float rRaceMin[2]; +extern float rCrashedX[2]; +extern float rContactX[2]; + +/* position classes */ + +typedef enum { + CLASS_OVER = 0, /* Game already finished */ + CLASS_HYPERGAMMON1, /* hypergammon with 1 chequers */ + CLASS_HYPERGAMMON2, /* hypergammon with 2 chequers */ + CLASS_HYPERGAMMON3, /* hypergammon with 3 chequers */ + CLASS_BEAROFF2, /* Two-sided bearoff database (in memory) */ + CLASS_BEAROFF_TS, /* Two-sided bearoff database (on disk) */ + CLASS_BEAROFF1, /* One-sided bearoff database (in memory) */ + CLASS_BEAROFF_OS, /* One-sided bearoff database /on disk) */ + CLASS_RACE, /* Race neural network */ + CLASS_CRASHED, /* Contact, one side has less than 7 active checkers */ + CLASS_CONTACT /* Contact neural network */ +} positionclass; + +#define N_CLASSES (CLASS_CONTACT + 1) + +#define CLASS_PERFECT CLASS_BEAROFF_TS +#define CLASS_GOOD CLASS_BEAROFF_OS /* Good enough to not need SanityCheck */ + +typedef int (*classevalfunc) (const TanBoard anBoard, float arOutput[], const bgvariation bgv, NNState * nnStates); + +extern classevalfunc acef[N_CLASSES]; + +/* Evaluation cache size is 2^SIZE entries */ +#define CACHE_SIZE_DEFAULT 19 +#define CACHE_SIZE_GUIMAX 23 + +#define CFMONEY(arEquity,pci) \ + ( ( (pci)->fCubeOwner == -1 ) ? arEquity[ 2 ] : \ + ( ( (pci)->fCubeOwner == (pci)->fMove ) ? arEquity[ 1 ] : arEquity[ 3 ] ) ) + +#define CFHYPER(arEquity,pci) \ + ( ( (pci)->fCubeOwner == -1 ) ? \ + ( ( (pci)->fJacoby ) ? arEquity[ 2 ] : arEquity[ 1 ] ) : \ + ( ( (pci)->fCubeOwner == (pci)->fMove ) ? arEquity[ 0 ] : arEquity[ 3 ] ) ) + +extern void EvalInitialise(char *szWeights, char *szWeightsBinary, int fNoBearoff, void (*pfProgress) (unsigned int)); + +extern int EvalShutdown(void); + +extern void EvalStatus(char *szOutput); + +extern int EvalNewWeights(int nSize); + +extern int EvalSave(const char *szWeights); + + +EXP_LOCK_FUN(int, EvaluatePosition, NNState * nnStates, const TanBoard anBoard, float arOutput[], + cubeinfo * const pci, const evalcontext * pec); + +extern void + InvertEvaluationR(float ar[NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci); + +extern void + InvertEvaluation(float ar[NUM_OUTPUTS]); + +EXP_LOCK_FUN(int, FindBestMove, int anMove[8], int nDice0, int nDice1, + TanBoard anBoard, const cubeinfo * pci, evalcontext * pec, movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]); + +EXP_LOCK_FUN(int, FindnSaveBestMoves, movelist * pml, + int nDice0, int nDice1, const TanBoard anBoard, + positionkey * keyMove, int fAnalyse, const float rThr, + const cubeinfo * pci, const evalcontext * pec, movefilter aamf[MAX_FILTER_PLIES][MAX_FILTER_PLIES]); + +extern void + PipCount(const TanBoard anBoard, unsigned int anPips[2]); + +extern int + ThorpCount(const TanBoard anBoard, int *pnLeader, float *adjusted, int *pnTrailer); + +extern int + KeithCount(const TanBoard anBoard, int pn[2]); + +extern int + IsightCount(const TanBoard anBoard, int pn[2]); + +extern int + DumpPosition(const TanBoard anBoard, char *szOutput, + const evalcontext * pec, cubeinfo * pci, int fOutputMWC, + int fOutputWinPC, int fOutputInvert, const char *szMatchID); + +extern void + SwapSides(TanBoard anBoard); + +extern int GameStatus(const TanBoard anBoard, bgvariation bgv); + +extern void EvalCacheFlush(void); +extern int EvalCacheResize(unsigned int cNew); +extern int EvalCacheStats(unsigned int *pcUsed, unsigned int *pcLookup, unsigned int *pcHit); +extern double GetEvalCacheSize(void); +void SetEvalCacheSize(unsigned int size); +extern unsigned int GetEvalCacheEntries(void); +extern int GetCacheMB(int size); + +extern evalCache cEval; +extern evalCache cpEval; +extern unsigned int cCache; + +extern int + GenerateMoves(movelist * pml, const TanBoard anBoard, int n0, int n1, int fPartial); + +extern int ApplySubMove(TanBoard anBoard, int iSrc, int nRoll, int fCheckLegal); + +extern int ApplyMove(TanBoard anBoard, const int anMove[8], int fCheckLegal); + +extern positionclass ClassifyPosition(const TanBoard anBoard, bgvariation bgv); + +/* internal use only */ +extern void EvalRaceBG(const TanBoard anBoard, float arOutput[], bgvariation bgv); + +extern float + Utility(float ar[NUM_OUTPUTS], const cubeinfo * pci); + +extern float + UtilityME(float ar[NUM_OUTPUTS], const cubeinfo * pci); + +extern int + SetCubeInfoMoney(cubeinfo * pci, int nCube, int fCubeOwner, + int fMove, int fJacoby, int fBeavers, bgvariation bgv); + +extern int + SetCubeInfo(cubeinfo * pci, int nCube, int fCubeOwner, + int fMove, int nMatchTo, const int anScore[2], + int fCrawford, int fJacoby, int fBeavers, bgvariation bgv); + +extern void + swap_us(unsigned int *p0, unsigned int *p1); + +extern void + swap(int *p0, int *p1); + +extern void + SanityCheck(const TanBoard anBoard, float arOutput[]); + +extern int + EvalOver(const TanBoard anBoard, float arOutput[], bgvariation bgv, NNState * nnStates); + +extern float + KleinmanCount(int nPipOnRoll, int nPipNotOnRoll); + +extern int + GetDPEq(int *pfCube, float *prDPEq, const cubeinfo * pci); + +extern float + mwc2eq(float rMwc, const cubeinfo * pci); + +extern float + eq2mwc(float rEq, const cubeinfo * pci); + +extern float + se_mwc2eq(float rMwc, const cubeinfo * pci); + +extern float + se_eq2mwc(float rEq, const cubeinfo * pci); + +extern char +*FormatEval(char *sz, evalsetup * pes); + +extern cubedecision FindCubeDecision(float arDouble[], float aarOutput[][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci); + +EXP_LOCK_FUN(int, GeneralCubeDecisionE, float aarOutput[2][NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * const pci, const evalcontext * pec, const evalsetup * pes); + +EXP_LOCK_FUN(int, GeneralEvaluationE, float arOutput[NUM_ROLLOUT_OUTPUTS], + const TanBoard anBoard, cubeinfo * const pci, const evalcontext * pec); + +extern int + cmp_evalsetup(const evalsetup * pes1, const evalsetup * pes2); + +extern int + cmp_evalcontext(const evalcontext * pec1, const evalcontext * pec2); + +extern char +*GetCubeRecommendation(cubedecision cd); + +extern cubedecision +FindBestCubeDecision(float arDouble[], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci); + +extern int + getCurrentGammonRates(float aarRates[2][2], + float arOutput[], const TanBoard anBoard, cubeinfo * pci, const evalcontext * pec); + +extern void + getMoneyPoints(float aaarPoints[2][7][2], int fJacoby, int fBeavers, float aarRates[2][2]); + +extern void + getMatchPoints(float aaarPoints[2][4][2], + int afAutoRedouble[2], int afDead[2], const cubeinfo * pci, float aarRates[2][2]); + +extern void + getCubeDecisionOrdering(int aiOrder[3], + float arDouble[4], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], const cubeinfo * pci); + +extern float + getPercent(cubedecision cd, const float arDouble[]); + +extern void + RefreshMoveList(movelist * pml, int *ai); + +EXP_LOCK_FUN(int, ScoreMove, NNState * nnStates, move * pm, const cubeinfo * pci, const evalcontext * pec, int nPlies); + +extern void + CopyMoveList(movelist * pmlDest, const movelist * pmlSrc); + +extern int + isCloseCubedecision(const float arDouble[]); + +extern int + isMissedDouble(float arDouble[], float aarOutput[2][NUM_ROLLOUT_OUTPUTS], int fDouble, const cubeinfo * pci); + +extern unsigned int + locateMove(const TanBoard anBoard, const int anMove[8], const movelist * pml); + +extern int + equal_movefilter(int i, const movefilter amf1[MAX_FILTER_PLIES], const movefilter amf2[MAX_FILTER_PLIES]); + +extern int + equal_movefilters(movefilter aamf1[MAX_FILTER_PLIES][MAX_FILTER_PLIES], + movefilter aamf2[MAX_FILTER_PLIES][MAX_FILTER_PLIES]); + +extern doubletype DoubleType(int fDoubled, int fMove, int fTurn); + +extern int + PerfectCubeful(bearoffcontext * pbc, const TanBoard anBoard, float arEquity[]); + +extern void + baseInputs(const TanBoard anBoard, float arInput[]); + +extern int CompareMoves(const move * pm0, const move * pm1); +extern float EvalEfficiency(const TanBoard anBoard, positionclass pc, int ply); +extern float Cl2CfMoney(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX); +extern float Cl2CfMatch(float arOutput[NUM_OUTPUTS], cubeinfo * pci, float rCubeX); +extern float Noise(const evalcontext * pec, const TanBoard anBoard, int iOutput); +extern int EvalKey(const evalcontext * pec, int nPlies, const cubeinfo * pci, int fCubefulEquity); +extern void MakeCubePos(const cubeinfo aciCubePos[], int cci, int fTop, cubeinfo aci[], int fInvert); +extern void GetECF3(float arCubeful[], int cci, float arCf[], cubeinfo aci[]); +extern int EvaluatePerfectCubeful(const TanBoard anBoard, float arEquity[], bgvariation bgv); + +extern neuralnet nnContact, nnRace, nnCrashed; +extern neuralnet nnpContact, nnpRace, nnpCrashed; + +#endif diff --git a/engine/gnubg/lib/cache.c b/engine/gnubg/lib/cache.c new file mode 100644 index 0000000..9626aa1 --- /dev/null +++ b/engine/gnubg/lib/cache.c @@ -0,0 +1,349 @@ +/* + * Copyright (C) 1997-2000 Gary Wong + * Copyright (C) 2002-2022 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" + +#include +#include +#include + +#include "cache.h" +#include "positionid.h" + +#if defined(USE_MULTITHREAD) +#include "multithread.h" + +#if defined(__GNUC__) && ( \ + (( __GNUC__ * 100 + __GNUC_MINOR__ >= 401 ) \ + && (defined (__i486) || defined (__x86_64))) \ + || (( __GNUC__ * 100 + __GNUC_MINOR__ >= 404 ) \ + && defined (__i386)) \ + ) + +static inline void +cache_lock(evalCache * pc, uint32_t k) +{ + while (__sync_lock_test_and_set(&(pc->entries[k].lock), 1)) + while (__sync_fetch_and_add(&pc->entries[k].lock, 0)) + __asm__ __volatile__ ("pause":::"memory"); +} + +static inline void +cache_unlock(evalCache * pc, uint32_t k) +{ + __sync_lock_release(&(pc->entries[k].lock)); +} + +#else /* not x86 or older gcc: no suitable intrinsics */ + +static inline void +WaitForLock(volatile int *lock) +{ + do { + MT_SafeDec(lock); + } while (MT_SafeIncCheck(lock)); +} + +static inline void +cache_lock(evalCache * pc, uint32_t k) +{ + if (MT_SafeIncCheck(&(pc->entries[k].lock))) + WaitForLock(&(pc->entries[k].lock)); +} + +static inline void +cache_unlock(evalCache * pc, uint32_t k) +{ + MT_SafeDec(&(pc->entries[k].lock)); +} + +#endif + +#endif /* USE_MULTITHREAD */ + + +static int +CacheGetSize(unsigned int s) +{ + unsigned int size; + + if (s == 0) + return 0; + + if (s > 1u << 31) + return -1; + + /* A cache size of 1 would allocate zero cache nodes */ + if (s == 1) + s = 2; + + size = s; + /* adjust size to smallest power of 2 GE to s */ + while ((s & (s - 1)) != 0) + s &= (s - 1); + + size = (s < size) ? 2 * s : s; + + /* CacheResize() returns the cache size as an int. */ + if (size > (unsigned int) INT_MAX) + return -1; + + return (int) size; +} + +int +CacheCreate(evalCache * pc, unsigned int s) +{ + int size = CacheGetSize(s); + + if (size < 0) + return -1; + +#if CACHE_STATS + pc->cLookup = 0; + pc->cHit = 0; + pc->nAdds = 0; +#endif + + pc->size = (unsigned int) size; + if (pc->size == 0) { + pc->hashMask = 0; + pc->entries = NULL; + return 0; + } + + pc->hashMask = (pc->size >> 1) - 1; + + /* Avoid "comparison is always false due to limited range of data type" + * warning on 64bits architectures. + * Adapt (or remove the condition) if the involved types are changed. + */ +#if (SIZE_MAX / 64 < UINT_MAX) + /* Ensure the allocation size fits in size_t */ + if ((size_t) (pc->size / 2) > SIZE_MAX / sizeof(*pc->entries)) + return -1; +#endif + + pc->entries = (cacheNode *) malloc((pc->size / 2) * sizeof(*pc->entries)); + if (pc->entries == NULL) + return -1; + + CacheFlush(pc); + return 0; +} + +/* MurmurHash3 https://code.google.com/p/smhasher/wiki/MurmurHash */ + +extern uint32_t +GetHashKey(uint32_t hashMask, const cacheNodeDetail * restrict e) +{ + uint32_t hash = (uint32_t) e->nEvalContext; + int i; + + hash *= 0xcc9e2d51; + hash = (hash << 15) | (hash >> (32 - 15)); + hash *= 0x1b873593; + + hash = (hash << 13) | (hash >> (32 - 13)); + hash = hash * 5 + 0xe6546b64; + + for (i = 0; i < 7; i++) { + uint32_t k = e->key.data[i]; + + k *= 0xcc9e2d51; + k = (k << 15) | (k >> (32 - 15)); + k *= 0x1b873593; + + hash ^= k; + hash = (hash << 13) | (hash >> (32 - 13)); + hash = hash * 5 + 0xe6546b64; + } + + /* Real MurmurHash3 has a "hash ^= len" here, + * but for us len is constant. Skip it */ + + hash ^= hash >> 16; + hash *= 0x85ebca6b; + hash ^= hash >> 13; + hash *= 0xc2b2ae35; + hash ^= hash >> 16; + + return (hash & hashMask); +} + + +uint32_t +CacheLookupWithLocking(evalCache * restrict pc, const cacheNodeDetail * restrict e, float * restrict arOut, float * restrict arCubeful) +{ + uint32_t const l = GetHashKey(pc->hashMask, e); + +#if CACHE_STATS +#if defined(USE_MULTITHREAD) + MT_SafeInc(&pc->cLookup); +#else + ++pc->cLookup; +#endif +#endif + +#if defined(USE_MULTITHREAD) + cache_lock(pc, l); +#endif + + if (!EqualKeys(pc->entries[l].nd_primary.key, e->key) || pc->entries[l].nd_primary.nEvalContext != e->nEvalContext) { /* Not in primary slot */ + if (!EqualKeys(pc->entries[l].nd_secondary.key, e->key) || pc->entries[l].nd_secondary.nEvalContext != e->nEvalContext) { /* Cache miss */ +#if defined(USE_MULTITHREAD) + cache_unlock(pc, l); +#endif + return l; + } else { /* Found in second slot, promote "hot" entry */ + cacheNodeDetail tmp = pc->entries[l].nd_primary; + + pc->entries[l].nd_primary = pc->entries[l].nd_secondary; + pc->entries[l].nd_secondary = tmp; + } + } + /* Cache hit */ + memcpy(arOut, pc->entries[l].nd_primary.ar, sizeof(float) * 5 /*NUM_OUTPUTS */ ); + if (arCubeful) + *arCubeful = pc->entries[l].nd_primary.ar[5]; /* Cubeful equity stored in slot 5 */ + +#if defined(USE_MULTITHREAD) + cache_unlock(pc, l); +#endif + +#if CACHE_STATS +#if defined(USE_MULTITHREAD) + MT_SafeInc(&pc->cHit); +#else + ++pc->cHit; +#endif +#endif + + return CACHEHIT; +} + +uint32_t +CacheLookupNoLocking(evalCache * restrict pc, const cacheNodeDetail * restrict e, float *restrict arOut, float * restrict arCubeful) +{ + uint32_t const l = GetHashKey(pc->hashMask, e); + +#if CACHE_STATS + ++pc->cLookup; +#endif + if (!EqualKeys(pc->entries[l].nd_primary.key, e->key) || pc->entries[l].nd_primary.nEvalContext != e->nEvalContext) { /* Not in primary slot */ + if (!EqualKeys(pc->entries[l].nd_secondary.key, e->key) || pc->entries[l].nd_secondary.nEvalContext != e->nEvalContext) { /* Cache miss */ + return l; + } else { /* Found in second slot, promote "hot" entry */ + cacheNodeDetail tmp = pc->entries[l].nd_primary; + + pc->entries[l].nd_primary = pc->entries[l].nd_secondary; + pc->entries[l].nd_secondary = tmp; + } + } + + /* Cache hit */ + memcpy(arOut, pc->entries[l].nd_primary.ar, sizeof(float) * 5 /*NUM_OUTPUTS */ ); + if (arCubeful) + *arCubeful = pc->entries[l].nd_primary.ar[5]; /* Cubeful equity stored in slot 5 */ + +#if CACHE_STATS + ++pc->cHit; +#endif + + return CACHEHIT; +} + +void +CacheAddWithLocking(evalCache * restrict pc, const cacheNodeDetail * restrict e, uint32_t l) +{ +#if defined(USE_MULTITHREAD) + cache_lock(pc, l); +#endif + + pc->entries[l].nd_secondary = pc->entries[l].nd_primary; + pc->entries[l].nd_primary = *e; + +#if defined(USE_MULTITHREAD) + cache_unlock(pc, l); +#endif + +#if CACHE_STATS +#if defined(USE_MULTITHREAD) + MT_SafeInc(&pc->nAdds); +#else + ++pc->nAdds; +#endif +#endif +} + +/* CacheAddNoLocking() is inlined and in cache.h */ + +void +CacheDestroy(const evalCache * pc) +{ + free(pc->entries); +} + +void +CacheFlush(const evalCache * pc) +{ + unsigned int k; + for (k = 0; k < pc->size / 2; ++k) { + pc->entries[k].nd_primary.key.data[0] = (unsigned int) -1; + pc->entries[k].nd_secondary.key.data[0] = (unsigned int) -1; +#if defined(USE_MULTITHREAD) + pc->entries[k].lock = 0; +#endif + } +} + +int +CacheResize(evalCache * pc, unsigned int cNew) +{ + evalCache newCache = { 0 }; + int size = CacheGetSize(cNew); + + if (size < 0) + return -1; + + if ((unsigned int) size == pc->size) + return size; + + if (CacheCreate(&newCache, cNew) != 0) + return -1; + + CacheDestroy(pc); + *pc = newCache; + + return (int) pc->size; +} + +#if CACHE_STATS +void +CacheStats(const evalCache * pc, unsigned int *pcLookup, unsigned int *pcHit, unsigned int *pcUsed) +{ + if (pcLookup) + *pcLookup = pc->cLookup; + + if (pcHit) + *pcHit = pc->cHit; + + if (pcUsed) + *pcUsed = pc->nAdds; +} +#endif diff --git a/engine/gnubg/lib/cache.h b/engine/gnubg/lib/cache.h new file mode 100644 index 0000000..78c8f55 --- /dev/null +++ b/engine/gnubg/lib/cache.h @@ -0,0 +1,100 @@ +/* + * Copyright (C) 1997-2000 Gary Wong + * Copyright (C) 2002-2018 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef CACHE_H +#define CACHE_H + +#include "config.h" + +#ifdef HAVE_STDINT_H +#include +#else +typedef unsigned int uint32_t; +#endif + +#include "gnubg-types.h" + +/* Set to calculate simple cache stats */ +#define CACHE_STATS 0 + +typedef struct { + positionkey key; /* size = 28 */ + int nEvalContext; + float ar[6]; +} cacheNodeDetail; + +typedef struct { + cacheNodeDetail nd_primary; + cacheNodeDetail nd_secondary; +#if defined(USE_MULTITHREAD) + int lock; +#endif +} cacheNode; + +/* name used in eval.c */ +typedef cacheNodeDetail evalcache; + +typedef struct { + cacheNode *entries; + + unsigned int size; + uint32_t hashMask; + +#if CACHE_STATS + unsigned int nAdds; + unsigned int cLookup; + unsigned int cHit; +#endif +} evalCache; + +/* Cache size will be adjusted to a power of 2 */ +int CacheCreate(evalCache * pc, unsigned int size); +int CacheResize(evalCache * pc, unsigned int cNew); + +#define CACHEHIT ((uint32_t)-1) + +/* returns a value which is passed to CacheAdd (if a miss) */ +uint32_t CacheLookupWithLocking(evalCache * pc, const cacheNodeDetail * e, float *arOut, float *arCubeful); +uint32_t CacheLookupNoLocking(evalCache * pc, const cacheNodeDetail * e, float *arOut, float *arCubeful); + +void CacheAddWithLocking(evalCache * pc, const cacheNodeDetail * e, uint32_t l); + +static inline void +CacheAddNoLocking(evalCache * pc, const cacheNodeDetail * e, const uint32_t l) +{ + pc->entries[l].nd_secondary = pc->entries[l].nd_primary; + pc->entries[l].nd_primary = *e; +#if CACHE_STATS + ++pc->nAdds; +#endif +} + +void CacheFlush(const evalCache * pc); +void CacheDestroy(const evalCache * pc); + +#if CACHE_STATS +void CacheStats(const evalCache * pc, unsigned int *pcLookup, unsigned int *pcHit, unsigned int *pcUsed); +#endif + +#if defined(HAVE_FUNC_ATTRIBUTE_PURE) +uint32_t GetHashKey(uint32_t hashMask, const cacheNodeDetail * e) __attribute((pure)); +#else +uint32_t GetHashKey(uint32_t hashMask, const cacheNodeDetail * e); +#endif + +#endif diff --git a/engine/gnubg/lib/gnubg-types.h b/engine/gnubg/lib/gnubg-types.h new file mode 100644 index 0000000..5fae67e --- /dev/null +++ b/engine/gnubg/lib/gnubg-types.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2007-2009 Christian Anthon + * Copyright (C) 2007-2011 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: gnubg-types.h,v 1.9 2013/06/16 02:16:23 mdpetch Exp $ + */ + +#ifndef GNUBG_TYPES_H +#define GNUBG_TYPES_H + +typedef unsigned int TanBoard[2][25]; +typedef const unsigned int (*ConstTanBoard)[25]; + +typedef enum { + VARIATION_STANDARD, /* standard backgammon */ + VARIATION_NACKGAMMON, /* standard backgammon with nackgammon starting + * position */ + VARIATION_HYPERGAMMON_1, /* 1-chequer hypergammon */ + VARIATION_HYPERGAMMON_2, /* 2-chequer hypergammon */ + VARIATION_HYPERGAMMON_3, /* 3-chequer hypergammon */ + NUM_VARIATIONS +} bgvariation; + +typedef enum { + GAME_NONE, GAME_PLAYING, GAME_OVER, GAME_RESIGNED, GAME_DROP +} gamestate; + +typedef struct { + TanBoard anBoard; + unsigned int anDice[2]; /* (0,0) for unrolled dice */ + int fTurn; /* who makes the next decision */ + int fResigned; + int fResignationDeclined; + int fDoubled; + int cGames; + int fMove; /* player on roll */ + int fCubeOwner; + int fCrawford; + int fPostCrawford; + int nMatchTo; + int anScore[2]; + int nCube; + unsigned int cBeavers; + bgvariation bgv; + int fCubeUse; + int fJacoby; + gamestate gs; +} matchstate; + +typedef union { + unsigned int data[7]; +} positionkey; + +typedef union { + unsigned char auch[10]; +} oldpositionkey; + +#endif diff --git a/engine/gnubg/lib/inputs.c b/engine/gnubg/lib/inputs.c new file mode 100644 index 0000000..d780674 --- /dev/null +++ b/engine/gnubg/lib/inputs.c @@ -0,0 +1,238 @@ +/* + * Copyright (C) 2006 Oystein Johansen + * Copyright (C) 2011-2018 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: inputs.c,v 1.12 2018/05/12 20:59:35 plm Exp $ + */ + +#include "config.h" +#include "gnubg-types.h" +#include "simd.h" +#include "eval.h" + +#if defined(USE_SIMD_INSTRUCTIONS) +#if defined(USE_NEON) +#include +#elif defined(USE_AVX) +#include +#elif defined(USE_SSE2) +#include +#else +#include +#endif +#else +typedef float float_vector[4]; +#endif /* USE_SIMD_INSTRUCTIONS */ + +typedef SSE_ALIGN(float float_vec_aligned[sizeof(float_vector)/sizeof(float)]); + +SSE_ALIGN (static float_vec_aligned inpvec[16]) = { + /* 0 */ { 0.0, 0.0, 0.0, 0.0}, + /* 1 */ { 1.0, 0.0, 0.0, 0.0}, + /* 2 */ { 0.0, 1.0, 0.0, 0.0}, + /* 3 */ { 0.0, 0.0, 1.0, 0.0}, + /* 4 */ { 0.0, 0.0, 1.0, 0.5}, + /* 5 */ { 0.0, 0.0, 1.0, 1.0}, + /* 6 */ { 0.0, 0.0, 1.0, 1.5}, + /* 7 */ { 0.0, 0.0, 1.0, 2.0}, + /* 8 */ { 0.0, 0.0, 1.0, 2.5}, + /* 9 */ { 0.0, 0.0, 1.0, 3.0}, + /* 10 */ { 0.0, 0.0, 1.0, 3.5}, + /* 11 */ { 0.0, 0.0, 1.0, 4.0}, + /* 12 */ { 0.0, 0.0, 1.0, 4.5}, + /* 13 */ { 0.0, 0.0, 1.0, 5.0}, + /* 14 */ { 0.0, 0.0, 1.0, 5.5}, + /* 15 */ { 0.0, 0.0, 1.0, 6.0}}; + +SSE_ALIGN(static float_vec_aligned inpvecb[16]) = { + /* 0 */ { 0.0, 0.0, 0.0, 0.0}, + /* 1 */ { 1.0, 0.0, 0.0, 0.0}, + /* 2 */ { 1.0, 1.0, 0.0, 0.0}, + /* 3 */ { 1.0, 1.0, 1.0, 0.0}, + /* 4 */ { 1.0, 1.0, 1.0, 0.5}, + /* 5 */ { 1.0, 1.0, 1.0, 1.0}, + /* 6 */ { 1.0, 1.0, 1.0, 1.5}, + /* 7 */ { 1.0, 1.0, 1.0, 2.0}, + /* 8 */ { 1.0, 1.0, 1.0, 2.5}, + /* 9 */ { 1.0, 1.0, 1.0, 3.0}, + /* 10 */ { 1.0, 1.0, 1.0, 3.5}, + /* 11 */ { 1.0, 1.0, 1.0, 4.0}, + /* 12 */ { 1.0, 1.0, 1.0, 4.5}, + /* 13 */ { 1.0, 1.0, 1.0, 5.0}, + /* 14 */ { 1.0, 1.0, 1.0, 5.5}, + /* 15 */ { 1.0, 1.0, 1.0, 6.0}}; + +#if defined(USE_SIMD_INSTRUCTIONS) +extern SIMD_AVX_STACKALIGN void +baseInputs(const TanBoard anBoard, float arInput[]) +{ + int i = 3; + + const unsigned int *pB = &anBoard[0][0]; + float *pInput = &arInput[0]; + +#if defined(HAVE_SSE) + __m128 vec0; + __m128 vec1; + __m128 vec2; + __m128 vec3; + __m128 vec4; + __m128 vec5; + __m128 vec6; + __m128 vec7; +#elif defined(HAVE_NEON) + float32x4_t vec0; + float32x4_t vec1; + float32x4_t vec2; + float32x4_t vec3; + float32x4_t vec4; + float32x4_t vec5; + float32x4_t vec6; + float32x4_t vec7; +#endif + + while (i--) { +#if defined(HAVE_SSE) + vec0 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput, vec0); + vec1 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec1); + vec2 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec2); + vec3 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec3); + vec4 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec4); + vec5 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec5); + vec6 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec6); + vec7 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec7); +#else + vec0 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput, vec0); + vec1 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec1); + vec2 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec2); + vec3 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec3); + vec4 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec4); + vec5 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec5); + vec6 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec6); + vec7 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec7); +#endif + pInput += 4; + } + + /* bar */ +#if defined(HAVE_SSE) + vec0 = _mm_load_ps(inpvecb[*pB++]); + _mm_store_ps(pInput, vec0); +#else + vec0 = vld1q_f32(inpvecb[*pB++]); + vst1q_f32(pInput, vec0); +#endif + pInput += 4; + + i = 3; + while (i--) { +#if defined(HAVE_SSE) + vec0 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput, vec0); + vec1 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec1); + vec2 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec2); + vec3 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec3); + vec4 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec4); + vec5 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec5); + vec6 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec6); + vec7 = _mm_load_ps(inpvec[*pB++]); + _mm_store_ps(pInput += 4, vec7); +#else + vec0 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput, vec0); + vec1 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec1); + vec2 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec2); + vec3 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec3); + vec4 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec4); + vec5 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec5); + vec6 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec6); + vec7 = vld1q_f32(inpvec[*pB++]); + vst1q_f32(pInput += 4, vec7); +#endif + pInput += 4; + } + + /* bar */ +#if defined(HAVE_SSE) + vec0 = _mm_load_ps(inpvecb[*pB]); + _mm_store_ps(pInput, vec0); +#else + vec0 = vld1q_f32(inpvecb[*pB++]); + vst1q_f32(pInput, vec0); +#endif + + return; +} +#else +extern void +baseInputs(const TanBoard anBoard, float arInput[]) +{ + int j, i; + + for (j = 0; j < 2; ++j) { + float *afInput = arInput + j * 25 * 4; + const unsigned int *board = anBoard[j]; + + /* Points */ + for (i = 0; i < 24; i++) { + const unsigned int nc = board[i]; + + afInput[i * 4 + 0] = inpvec[nc][0]; + afInput[i * 4 + 1] = inpvec[nc][1]; + afInput[i * 4 + 2] = inpvec[nc][2]; + afInput[i * 4 + 3] = inpvec[nc][3]; + } + + /* Bar */ + { + const unsigned int nc = board[24]; + + afInput[24 * 4 + 0] = inpvecb[nc][0]; + afInput[24 * 4 + 1] = inpvecb[nc][1]; + afInput[24 * 4 + 2] = inpvecb[nc][2]; + afInput[24 * 4 + 3] = inpvecb[nc][3]; + } + } +} +#endif diff --git a/engine/gnubg/lib/isaac.c b/engine/gnubg/lib/isaac.c new file mode 100644 index 0000000..ba2a78c --- /dev/null +++ b/engine/gnubg/lib/isaac.c @@ -0,0 +1,145 @@ +/* + * ----------------------------------------------------------------------------- + * rand.c: By Bob Jenkins. My random number generator, ISAAC. Public Domain. + * MODIFIED: + * 960327: Creation (addition of randinit, really) + * 970719: use context, not global variables, for internal state + * 980324: added main (ifdef'ed out), also rearranged randinit() + * 010626: Note that this is public domain + * ----------------------------------------------------------------------------- + */ + +/* + * Minor modifications for use with GNU Backgammon. + * Copyright (C) 1999-2007 the AUTHORS + * + * $Id: isaac.c,v 1.8 2013/06/16 02:16:24 mdpetch Exp $ + */ + +/*lint --e{661,662} Ignore warnings of out of bounds array access (as ok) */ + +/* No configuration used in this file + * #include "config.h" */ +#include "isaac.h" + +#define ind(mm,x) ((mm)[((x)>>2)&(RANDSIZ-1)]) +#define rngstep(mix,a,b,mm,m,m2,r,x) \ +{ \ + x = *m; \ + a = ((a^(mix)) + *(m2++)) & 0xffffffff; \ + *(m++) = y = (ind(mm,x) + a + b) & 0xffffffff; \ + *(r++) = b = (ind(mm,y>>RANDSIZL) + x) & 0xffffffff; \ +} + +void +isaac(randctx * ctx) +{ + register ub4 a, b, x, y, *m, *mm, *m2, *r, *mend; + mm = ctx->randmem; + r = ctx->randrsl; + a = ctx->randa; + b = (ctx->randb + (++ctx->randc)) & 0xffffffff; + for (m = mm, mend = m2 = m + (RANDSIZ / 2); m < mend;) { + rngstep(a << 13, a, b, mm, m, m2, r, x); + rngstep(a >> 6, a, b, mm, m, m2, r, x); + rngstep(a << 2, a, b, mm, m, m2, r, x); + rngstep(a >> 16, a, b, mm, m, m2, r, x); + } + for (m2 = mm; m2 < mend;) { + rngstep(a << 13, a, b, mm, m, m2, r, x); + rngstep(a >> 6, a, b, mm, m, m2, r, x); + rngstep(a << 2, a, b, mm, m, m2, r, x); + rngstep(a >> 16, a, b, mm, m, m2, r, x); + } + ctx->randb = b; + ctx->randa = a; +} + + +#define mix(a,b,c,d,e,f,g,h) \ +{ \ + a^=b<<11; d+=a; b+=c; \ + b^=c>>2; e+=b; c+=d; \ + c^=d<<8; f+=c; d+=e; \ + d^=e>>16; g+=d; e+=f; \ + e^=f<<10; h+=e; f+=g; \ + f^=g>>4; a+=f; g+=h; \ + g^=h<<8; b+=g; h+=a; \ + h^=a>>9; c+=h; a+=b; \ +} + +/* if (flag==TRUE), then use the contents of randrsl[] to initialize mm[]. */ +void +irandinit(randctx * ctx, word flag) +{ + word i; + ub4 a, b, c, d, e, f, g, h; + ub4 *m, *r; + ctx->randa = ctx->randb = ctx->randc = 0; + m = ctx->randmem; + r = ctx->randrsl; + a = b = c = d = e = f = g = h = 0x9e3779b9; /* the golden ratio */ + + for (i = 0; i < 4; ++i) { /* scramble it */ + mix(a, b, c, d, e, f, g, h); + } + + if (flag) { + /* initialize using the contents of r[] as the seed */ + for (i = 0; i < RANDSIZ; i += 8) { + a += r[i]; + b += r[i + 1]; + c += r[i + 2]; + d += r[i + 3]; + e += r[i + 4]; + f += r[i + 5]; + g += r[i + 6]; + h += r[i + 7]; + mix(a, b, c, d, e, f, g, h); + m[i] = a; + m[i + 1] = b; + m[i + 2] = c; + m[i + 3] = d; + m[i + 4] = e; + m[i + 5] = f; + m[i + 6] = g; + m[i + 7] = h; + } + /* do a second pass to make all of the seed affect all of m */ + for (i = 0; i < RANDSIZ; i += 8) { + a += m[i]; + b += m[i + 1]; + c += m[i + 2]; + d += m[i + 3]; + e += m[i + 4]; + f += m[i + 5]; + g += m[i + 6]; + h += m[i + 7]; + mix(a, b, c, d, e, f, g, h); + m[i] = a; + m[i + 1] = b; + m[i + 2] = c; + m[i + 3] = d; + m[i + 4] = e; + m[i + 5] = f; + m[i + 6] = g; + m[i + 7] = h; + } + } else { + for (i = 0; i < RANDSIZ; i += 8) { + /* fill in mm[] with messy stuff */ + mix(a, b, c, d, e, f, g, h); + m[i] = a; + m[i + 1] = b; + m[i + 2] = c; + m[i + 3] = d; + m[i + 4] = e; + m[i + 5] = f; + m[i + 6] = g; + m[i + 7] = h; + } + } + + isaac(ctx); /* fill in the first set of results */ + ctx->randcnt = RANDSIZ; /* prepare to use the first set of results */ +} diff --git a/engine/gnubg/lib/isaac.h b/engine/gnubg/lib/isaac.h new file mode 100644 index 0000000..a2c2d42 --- /dev/null +++ b/engine/gnubg/lib/isaac.h @@ -0,0 +1,60 @@ +/* + * ----------------------------------------------------------------------------- + * rand.h: definitions for a random number generator + * By Bob Jenkins, 1996, Public Domain + * MODIFIED: + * 960327: Creation (addition of randinit, really) + * 970719: use context, not global variables, for internal state + * 980324: renamed seed to flag + * 980605: recommend RANDSIZL=4 for noncryptography. + * 010626: note this is public domain + * ----------------------------------------------------------------------------- + */ + +/* + * Minor modifications for use with GNU Backgammon. + * Copyright (C) 1999-2006 the AUTHORS + * + * $Id: isaac.h,v 1.5 2013/06/16 02:16:24 mdpetch Exp $ + */ + +#include "isaacs.h" + +#ifndef ISAAC_H +#define ISAAC_H + +#define RANDSIZL (4) /* I recommend 8 for crypto, 4 for simulations */ +#define RANDSIZ (1<randcnt-- ? \ + (isaac(r), (r)->randcnt=RANDSIZ-1, (r)->randrsl[(r)->randcnt]) : \ + (r)->randrsl[(r)->randcnt]) + +#endif diff --git a/engine/gnubg/lib/isaacs.h b/engine/gnubg/lib/isaacs.h new file mode 100644 index 0000000..bc16f92 --- /dev/null +++ b/engine/gnubg/lib/isaacs.h @@ -0,0 +1,47 @@ +/* + * ----------------------------------------------------------------------------- + * standard.hi: Standard definitions and types, Bob Jenkins + * ----------------------------------------------------------------------------- + */ + +/* + * Minor modifications for use with GNU Backgammon. + * Copyright (C) 1999-2013 the AUTHORS + * + * $Id: isaacs.h,v 1.5 2013/09/09 21:06:21 plm Exp $ + */ + +#ifndef ISAACS_H +#define ISAACS_H + +#if 0 + +/* Pre-64bits relics. Most of them are not used anyway */ + +typedef unsigned long int ub4; /* unsigned 4-byte quantities */ +#define UB4MAXVAL 0xffffffff +typedef signed long int sb4; +#define SB4MAXVAL 0x7fffffff +typedef unsigned short int ub2; +#define UB2MAXVAL 0xffff +typedef signed short int sb2; +#define SB2MAXVAL 0x7fff +typedef unsigned char ub1; +#define UB1MAXVAL 0xff +typedef signed char sb1; /* signed 1-byte quantities */ +#define SB1MAXVAL 0x7f + +#endif + +#ifdef HAVE_STDINT_H +#include +#else +typedef unsigned int uint32_t; +#endif + +typedef uint32_t ub4; /* unsigned 4-byte quantities */ +#define UB4MAXVAL 0xffffffff + +typedef int word; /* fastest type available */ + +#endif diff --git a/engine/gnubg/lib/list.c b/engine/gnubg/lib/list.c new file mode 100644 index 0000000..652f7c7 --- /dev/null +++ b/engine/gnubg/lib/list.c @@ -0,0 +1,75 @@ +/* + * Copyright (C) 1996-2001 Gary Wong + * Copyright (C) 2004-2026 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* No configuration used in this file + * #include "config.h" */ +#include "list.h" +#include +#include + +#include + +int +ListCreate(listOLD * pl) +{ + pl->plPrev = pl->plNext = pl; + pl->p = NULL; + + return 0; +} + +listOLD * +ListInsert(listOLD * pl, void *p) +{ + listOLD *plNew = g_malloc(sizeof(listOLD)); + + plNew->p = p; + + plNew->plNext = pl; + plNew->plPrev = pl->plPrev; + + pl->plPrev = plNew; + plNew->plPrev->plNext = plNew; + + return plNew; +} + +void +ListDelete(listOLD * pl) +{ + pl->plPrev->plNext = pl->plNext; + pl->plNext->plPrev = pl->plPrev; + + g_free(pl); +} + +void +ListDeleteAll(const listOLD * pl) +{ + listOLD *pc = pl->plNext; + + while (pc != pl) { + listOLD *pn = pc->plNext; + + g_free(pc->p); + ListDelete(pc); + pc = pn; + } + + g_assert(ListEmpty(pl)); +} diff --git a/engine/gnubg/lib/list.h b/engine/gnubg/lib/list.h new file mode 100644 index 0000000..027cb34 --- /dev/null +++ b/engine/gnubg/lib/list.h @@ -0,0 +1,39 @@ +/* + * Copyright (C) 1996-1999 Gary Wong + * Copyright (C) 2004-2026 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef LIST_H +#define LIST_H + +typedef struct list { + struct list *plPrev; + struct list *plNext; + void *p; +} listOLD; +/* Renamed to listOLD - use GList instead (hopefullly replace existing usage eventually */ + +extern int ListCreate(listOLD * pl); +extern listOLD *ListInsert(listOLD * pl, void *p); +extern void ListDelete(listOLD * pl); +extern void ListDeleteAll(const listOLD * pl); + +static inline int ListEmpty(const listOLD *pl) +{ + return ((pl->plNext == pl) && (pl->plPrev == pl)); +} + +#endif diff --git a/engine/gnubg/lib/md5.c b/engine/gnubg/lib/md5.c new file mode 100644 index 0000000..3a1c734 --- /dev/null +++ b/engine/gnubg/lib/md5.c @@ -0,0 +1,407 @@ +/* + * Functions to compute MD5 message digest of files or memory blocks. + * according to the definition of MD5 in RFC 1321 from April 1992, + * by Ulrich Drepper , 1995. + * Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + * + * Minor modifications for use with GNU Backgammon. + * Copyright (C) 2000-2019 the AUTHORS + * + * License changed from the GNU LGPL to the GNU GPL (as permitted under Term 3 + * of the GNU LGPL) by Gary Wong for distribution with GNU Backgammon. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: md5.c,v 1.15 2019/12/19 09:23:04 Superfly_Jon Exp $ + */ + +#include "config.h" +#include +#include +#include "md5.h" + +/* Be conservative and always perform explicit byte-ordering. This is + * redundant on little-endian architectures, but is portable. */ +#define WRITE( p, n ) \ + ( ( (unsigned char *) (p) )[ 0 ] = (unsigned char)( (n) & 0xFF ), \ + ( (unsigned char *) (p) )[ 1 ] = (unsigned char)(( (n) & 0xFF00 ) >> 8), \ + ( (unsigned char *) (p) )[ 2 ] = (unsigned char)(( (n) & 0xFF0000 ) >> 16), \ + ( (unsigned char *) (p) )[ 3 ] = (unsigned char)(( (n) & 0xFF000000 ) >> 24) ) + +#define READ( p ) \ + ( ( (const unsigned char *) (p) )[ 0 ] | \ + ( (unsigned int)((const unsigned char *) (p) )[ 1 ]) << 8 | \ + ( (unsigned int)((const unsigned char *) (p) )[ 2 ]) << 16 | \ + ( (unsigned int)((const unsigned char *) (p) )[ 3 ]) << 24 ) + +/* This array contains the bytes used to pad the buffer to the next + * 64-byte boundary. (RFC 1321, 3.1: Step 1) */ +/* But this isn't used ???? */ +/*lint -e{785} Ignore not enough initilizer warning */ +static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ... */ }; + + +/* Initialize structure containing state of computation. + * (RFC 1321, 3.3: Step 3) */ +void +md5_init_ctx(struct md5_ctx *ctx) +{ + ctx->A = 0x67452301; + ctx->B = 0xefcdab89; + ctx->C = 0x98badcfe; + ctx->D = 0x10325476; + + ctx->total[0] = ctx->total[1] = 0; + ctx->buflen = 0; +} + +/* Put result from CTX in first 16 bytes following RESBUF. The result + * must be in little endian byte order. + * + * IMPORTANT: On some systems it is required that RESBUF is correctly + * aligned for a 32 bits value. */ +void * +md5_read_ctx(const struct md5_ctx *ctx, void *resbuf) +{ + char *r = (char *) resbuf; + WRITE(r, ctx->A); + WRITE(r + 4, ctx->B); + WRITE(r + 8, ctx->C); + WRITE(r + 12, ctx->D); + + return resbuf; +} + +/* Process the remaining bytes in the internal buffer and the usual + * prolog according to the standard and write the result to RESBUF. + * + * IMPORTANT: On some systems it is required that RESBUF is correctly + * aligned for a 32 bits value. */ +void * +md5_finish_ctx(struct md5_ctx *ctx, void *resbuf) +{ + /* Take yet unprocessed bytes into account. */ + md5_uint32 bytes = ctx->buflen; + size_t pad; + + /* Now count remaining bytes. */ + ctx->total[0] += bytes; + if (ctx->total[0] < bytes) + ++ctx->total[1]; + + pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes; + memcpy(&ctx->buffer[bytes], fillbuf, pad); + + /* Put the 64-bit file length in *bits* at the end of the buffer. */ + WRITE(ctx->buffer + bytes + pad, ctx->total[0] << 3); + WRITE(ctx->buffer + bytes + pad + 4, ((ctx->total[1] << 3) | (ctx->total[0] >> 29))); + + /* Process last bytes. */ + md5_process_block(ctx->buffer, bytes + pad + 8, ctx); + + return md5_read_ctx(ctx, resbuf); +} + +#if 0 +/* Compute MD5 message digest for bytes read from STREAM. The + * resulting message digest number will be written into the 16 bytes + * beginning at RESBLOCK. */ +int +md5_stream(FILE * stream, void *resblock) +{ + /* Important: BLOCKSIZE must be a multiple of 64. */ +#define BLOCKSIZE 4096 + struct md5_ctx ctx; + char buffer[BLOCKSIZE + 72]; + size_t sum; + + /* Initialize the computation context. */ + md5_init_ctx(&ctx); + + /* Iterate over full file contents. */ + for (;;) { + /* We read the file in blocks of BLOCKSIZE bytes. One call of the + * computation function processes the whole buffer so that with the + * next round of the loop another block can be read. */ + size_t n; + sum = 0; + + /* Read block. Take care for partial reads. */ + do { + n = fread(buffer + sum, 1, BLOCKSIZE - sum, stream); + + sum += n; + } + while (sum < BLOCKSIZE && n != 0); + if (n == 0 && ferror(stream)) + return 1; + + /* If end of file is reached, end the loop. */ + if (n == 0) + break; + + /* Process buffer with BLOCKSIZE bytes. Note that + * BLOCKSIZE % 64 == 0 + */ + md5_process_block(buffer, BLOCKSIZE, &ctx); + } + + /* Add the last bytes if necessary. */ + if (sum > 0) + md5_process_bytes(buffer, sum, &ctx); + + /* Construct result in desired memory. */ + md5_finish_ctx(&ctx, resblock); + return 0; +} +#endif + +/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The + * result is always in little endian byte order, so that a byte-wise + * output yields to the wanted ASCII representation of the message + * digest. */ +void * +md5_buffer(const char *buffer, size_t len, void *resblock) +{ + struct md5_ctx ctx; + + /* Initialize the computation context. */ + md5_init_ctx(&ctx); + + /* Process whole buffer but last len % 64 bytes. */ + md5_process_bytes(buffer, len, &ctx); + + /* Put result in desired memory area. */ + return md5_finish_ctx(&ctx, resblock); +} + + +void +md5_process_bytes(const void *buffer, size_t len, struct md5_ctx *ctx) +{ + /* const void aligned_buffer = buffer; */ + + /* When we already have some bits in our internal buffer concatenate + * both inputs first. */ + if (ctx->buflen != 0) { + size_t left_over = ctx->buflen; + size_t add = 128 - left_over > len ? len : 128 - left_over; + + /* Only put full words in the buffer. */ + add -= add % sizeof(md5_uint32); + + memcpy(&ctx->buffer[left_over], buffer, add); + ctx->buflen += (md5_uint32) add; + + if (ctx->buflen > 64) { + md5_process_block(ctx->buffer, ctx->buflen & ~63U, ctx); + + ctx->buflen &= 63; + /* The regions in the following copy operation cannot overlap. */ + memcpy(ctx->buffer, &ctx->buffer[(left_over + add) & ~63U], ctx->buflen); + } + + buffer = (const char *) buffer + add; + len -= add; + } + + /* Process available complete blocks. */ + if (len > 64) { + md5_process_block(buffer, len & ~63U, ctx); + buffer = (const char *) buffer + (len & ~63U); + len &= 63; + } + + /* Move remaining bytes in internal buffer. */ + if (len > 0) { + size_t left_over = ctx->buflen; + + memcpy(&ctx->buffer[left_over], buffer, len); + left_over += len; + if (left_over >= 64) { + md5_process_block(ctx->buffer, 64, ctx); + left_over -= 64; + memcpy(ctx->buffer, &ctx->buffer[64], left_over); + } + ctx->buflen = (md5_uint32) left_over; + } +} + + +/* These are the four functions used in the four steps of the MD5 algorithm + * and defined in the RFC 1321. The first function is a little bit optimized + * (as found in Colin Plumbs public domain implementation). */ +/* #define FF(b, c, d) ((b & c) | (~b & d)) */ +#define FF(b, c, d) (d ^ (b & (c ^ d))) +#define FG(b, c, d) FF (d, b, c) +#define FH(b, c, d) (b ^ c ^ d) +#define FI(b, c, d) (c ^ (b | ~d)) + +/* Process LEN bytes of BUFFER, accumulating context into CTX. + * It is assumed that LEN % 64 == 0. */ + +void +md5_process_block(const void *buffer, size_t len, struct md5_ctx *ctx) +{ + md5_uint32 correct_words[16]; + const md5_uint32 *words = (const md5_uint32 *) buffer; + size_t nwords = len / sizeof(md5_uint32); + const md5_uint32 *endp = words + nwords; + md5_uint32 A = ctx->A; + md5_uint32 B = ctx->B; + md5_uint32 C = ctx->C; + md5_uint32 D = ctx->D; + + /* First increment the byte count. RFC 1321 specifies the possible + * length of the file up to 2^64 bits. Here we only compute the + * number of bytes. Do a double word increment. */ + ctx->total[0] += (md5_uint32) len; + if (ctx->total[0] < len) + ++ctx->total[1]; + + /* Process all bytes in the buffer with 64 bytes in each round of + * the loop. */ + while (words < endp) { + md5_uint32 *cwp = correct_words; + md5_uint32 A_save = A; + md5_uint32 B_save = B; + md5_uint32 C_save = C; + md5_uint32 D_save = D; + + /* First round: using the given function, the context and a constant + * the next context is computed. Because the algorithms processing + * unit is a 32-bit word and it is determined to work on words in + * little endian byte order we perhaps have to change the byte order + * before the computation. To reduce the work for the next steps + * we store the swapped words in the array CORRECT_WORDS. */ + +#define OP(a, b, c, d, s, T) \ + do \ + { \ + a += FF (b, c, d) + (*cwp++ = READ (words)) + T; \ + ++words; \ + CYCLIC (a, s); \ + a += b; \ + } \ + while (0) + + /* It is unfortunate that C does not provide an operator for + * cyclic rotation. Hope the C compiler is smart enough. */ +#define CYCLIC(w, s) (w = (w << s) | (w >> (32 - s))) + + /* Before we start, one word to the strange constants. + * They are defined in RFC 1321 as + * + * T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64 + */ + + /* Round 1. */ + /*lint --e{123, 717} Ignore macro warning */ + OP(A, B, C, D, 7, 0xd76aa478); + OP(D, A, B, C, 12, 0xe8c7b756); + OP(C, D, A, B, 17, 0x242070db); + OP(B, C, D, A, 22, 0xc1bdceee); + OP(A, B, C, D, 7, 0xf57c0faf); + OP(D, A, B, C, 12, 0x4787c62a); + OP(C, D, A, B, 17, 0xa8304613); + OP(B, C, D, A, 22, 0xfd469501); + OP(A, B, C, D, 7, 0x698098d8); + OP(D, A, B, C, 12, 0x8b44f7af); + OP(C, D, A, B, 17, 0xffff5bb1); + OP(B, C, D, A, 22, 0x895cd7be); + OP(A, B, C, D, 7, 0x6b901122); + OP(D, A, B, C, 12, 0xfd987193); + OP(C, D, A, B, 17, 0xa679438e); + OP(B, C, D, A, 22, 0x49b40821); + + /* For the second to fourth round we have the possibly swapped words + * in CORRECT_WORDS. Redefine the macro to take an additional first + * argument specifying the function to use. */ +#undef OP +#define OP(f, a, b, c, d, k, s, T) \ + do \ + { \ + a += f (b, c, d) + correct_words[k] + T; \ + CYCLIC (a, s); \ + a += b; \ + } \ + while (0) + + /* Round 2. */ + OP(FG, A, B, C, D, 1, 5, 0xf61e2562); + OP(FG, D, A, B, C, 6, 9, 0xc040b340); + OP(FG, C, D, A, B, 11, 14, 0x265e5a51); + OP(FG, B, C, D, A, 0, 20, 0xe9b6c7aa); + OP(FG, A, B, C, D, 5, 5, 0xd62f105d); + OP(FG, D, A, B, C, 10, 9, 0x02441453); + OP(FG, C, D, A, B, 15, 14, 0xd8a1e681); + OP(FG, B, C, D, A, 4, 20, 0xe7d3fbc8); + OP(FG, A, B, C, D, 9, 5, 0x21e1cde6); + OP(FG, D, A, B, C, 14, 9, 0xc33707d6); + OP(FG, C, D, A, B, 3, 14, 0xf4d50d87); + OP(FG, B, C, D, A, 8, 20, 0x455a14ed); + OP(FG, A, B, C, D, 13, 5, 0xa9e3e905); + OP(FG, D, A, B, C, 2, 9, 0xfcefa3f8); + OP(FG, C, D, A, B, 7, 14, 0x676f02d9); + OP(FG, B, C, D, A, 12, 20, 0x8d2a4c8a); + + /* Round 3. */ + OP(FH, A, B, C, D, 5, 4, 0xfffa3942); + OP(FH, D, A, B, C, 8, 11, 0x8771f681); + OP(FH, C, D, A, B, 11, 16, 0x6d9d6122); + OP(FH, B, C, D, A, 14, 23, 0xfde5380c); + OP(FH, A, B, C, D, 1, 4, 0xa4beea44); + OP(FH, D, A, B, C, 4, 11, 0x4bdecfa9); + OP(FH, C, D, A, B, 7, 16, 0xf6bb4b60); + OP(FH, B, C, D, A, 10, 23, 0xbebfbc70); + OP(FH, A, B, C, D, 13, 4, 0x289b7ec6); + OP(FH, D, A, B, C, 0, 11, 0xeaa127fa); + OP(FH, C, D, A, B, 3, 16, 0xd4ef3085); + OP(FH, B, C, D, A, 6, 23, 0x04881d05); + OP(FH, A, B, C, D, 9, 4, 0xd9d4d039); + OP(FH, D, A, B, C, 12, 11, 0xe6db99e5); + OP(FH, C, D, A, B, 15, 16, 0x1fa27cf8); + OP(FH, B, C, D, A, 2, 23, 0xc4ac5665); + + /* Round 4. */ + OP(FI, A, B, C, D, 0, 6, 0xf4292244); + OP(FI, D, A, B, C, 7, 10, 0x432aff97); + OP(FI, C, D, A, B, 14, 15, 0xab9423a7); + OP(FI, B, C, D, A, 5, 21, 0xfc93a039); + OP(FI, A, B, C, D, 12, 6, 0x655b59c3); + OP(FI, D, A, B, C, 3, 10, 0x8f0ccc92); + OP(FI, C, D, A, B, 10, 15, 0xffeff47d); + OP(FI, B, C, D, A, 1, 21, 0x85845dd1); + OP(FI, A, B, C, D, 8, 6, 0x6fa87e4f); + OP(FI, D, A, B, C, 15, 10, 0xfe2ce6e0); + OP(FI, C, D, A, B, 6, 15, 0xa3014314); + OP(FI, B, C, D, A, 13, 21, 0x4e0811a1); + OP(FI, A, B, C, D, 4, 6, 0xf7537e82); + OP(FI, D, A, B, C, 11, 10, 0xbd3af235); + OP(FI, C, D, A, B, 2, 15, 0x2ad7d2bb); + OP(FI, B, C, D, A, 9, 21, 0xeb86d391); + + /* Add the starting values of the context. */ + A += A_save; + B += B_save; + C += C_save; + D += D_save; + } + + /* Put checksum in context given as argument. */ + ctx->A = A; + ctx->B = B; + ctx->C = C; + ctx->D = D; +} diff --git a/engine/gnubg/lib/md5.h b/engine/gnubg/lib/md5.h new file mode 100644 index 0000000..2e8f993 --- /dev/null +++ b/engine/gnubg/lib/md5.h @@ -0,0 +1,101 @@ +/* + * Declaration of functions and data types used for MD5 sum computing + * library functions. + * Copyright (C) 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. + * + * Minor modifications for use with GNU Backgammon. + * Copyright (C) 2009-2021 the AUTHORS + * + * License changed from the GNU LGPL to the GNU GPL (as permitted under Term 3 + * of the GNU LGPL) by Gary Wong for distribution with GNU Backgammon. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: md5.h,v 1.8 2014/05/11 15:20:32 plm Exp $ + */ + +#ifndef MD5_H +#define MD5_H 1 +#include +#include +#include "common.h" + +typedef uint32_t md5_uint32; + +/* Structure to save state of computation between the single steps. */ +struct md5_ctx { + md5_uint32 A; + md5_uint32 B; + md5_uint32 C; + md5_uint32 D; + + md5_uint32 total[2]; + md5_uint32 buflen; + char buffer[128] __attribute__ ((__aligned__(__alignof__(md5_uint32)))); +}; + +/* + * The following three functions are build up the low level used in + * the functions `md5_stream' and `md5_buffer'. + */ + +/* Initialize structure containing state of computation. + * (RFC 1321, 3.3: Step 3) */ +extern void md5_init_ctx(struct md5_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + * initialization function) update the context for the next LEN bytes + * starting at BUFFER. + * It is necessary that LEN is a multiple of 64!!! */ +extern void md5_process_block(const void *buffer, size_t len, struct md5_ctx *ctx); + +/* Starting with the result of former calls of this function (or the + * initialization function) update the context for the next LEN bytes + * starting at BUFFER. + * It is NOT required that LEN is a multiple of 64. */ +extern void md5_process_bytes(const void *buffer, size_t len, struct md5_ctx *ctx); + +/* Process the remaining bytes in the buffer and put result from CTX + * in first 16 bytes following RESBUF. The result is always in little + * endian byte order, so that a byte-wise output yields to the wanted + * ASCII representation of the message digest. + * + * IMPORTANT: On some systems it is required that RESBUF is correctly + * aligned for a 32 bits value. */ +extern void *md5_finish_ctx(struct md5_ctx *ctx, void *resbuf); + + +/* Put result from CTX in first 16 bytes following RESBUF. The result is + * always in little endian byte order, so that a byte-wise output yields + * to the wanted ASCII representation of the message digest. + * + * IMPORTANT: On some systems it is required that RESBUF is correctly + * aligned for a 32 bits value. */ +extern void *md5_read_ctx(const struct md5_ctx *ctx, void *resbuf); + + +#if 0 +/* Compute MD5 message digest for bytes read from STREAM. The + * resulting message digest number will be written into the 16 bytes + * beginning at RESBLOCK. */ +extern int md5_stream(FILE * stream, void *resblock); +#endif + +/* Compute MD5 message digest for LEN bytes beginning at BUFFER. The + * result is always in little endian byte order, so that a byte-wise + * output yields to the wanted ASCII representation of the message + * digest. */ +extern void *md5_buffer(const char *buffer, size_t len, void *resblock); + +#endif /* md5.h */ diff --git a/engine/gnubg/lib/neuralnet.c b/engine/gnubg/lib/neuralnet.c new file mode 100644 index 0000000..34bb4a2 --- /dev/null +++ b/engine/gnubg/lib/neuralnet.c @@ -0,0 +1,569 @@ +/* + * Copyright (C) 1998-2002 Gary Wong + * Copyright (C) 2000-2019 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" +#include "backgammon.h" +#include "common.h" +#include +#include +#include +#include +#include +#include + +#include "neuralnet.h" +#include "simd.h" +#include "sigmoid.h" + +static int +NeuralNetCreate(neuralnet * pnn, unsigned int cInput, unsigned int cHidden, + unsigned int cOutput, float rBetaHidden, float rBetaOutput) +{ + pnn->cInput = cInput; + pnn->cHidden = cHidden; + pnn->cOutput = cOutput; + pnn->rBetaHidden = rBetaHidden; + pnn->rBetaOutput = rBetaOutput; + pnn->nTrained = 0; + + if ((pnn->arHiddenWeight = sse_malloc(cHidden * cInput * sizeof(float))) == NULL) + return -1; + + if ((pnn->arOutputWeight = sse_malloc(cOutput * cHidden * sizeof(float))) == NULL) { + sse_free(pnn->arHiddenWeight); + return -1; + } + + if ((pnn->arHiddenThreshold = sse_malloc(cHidden * sizeof(float))) == NULL) { + sse_free(pnn->arOutputWeight); + sse_free(pnn->arHiddenWeight); + return -1; + } + + if ((pnn->arOutputThreshold = sse_malloc(cOutput * sizeof(float))) == NULL) { + sse_free(pnn->arHiddenThreshold); + sse_free(pnn->arOutputWeight); + sse_free(pnn->arHiddenWeight); + return -1; + } + + return 0; +} + +extern void +NeuralNetDestroy(neuralnet * pnn) +{ + sse_free(pnn->arHiddenWeight); + pnn->arHiddenWeight = 0; + sse_free(pnn->arOutputWeight); + pnn->arOutputWeight = 0; + sse_free(pnn->arHiddenThreshold); + pnn->arHiddenThreshold = 0; + sse_free(pnn->arOutputThreshold); + pnn->arOutputThreshold = 0; +} + +#if !defined(USE_SIMD_INSTRUCTIONS) + +/* separate context for race, crashed, contact + * -1: regular eval + * 0: save base + * 1: from base + */ + +static inline NNEvalType +NNevalAction(NNState * pnState) +{ + if (!pnState) + return NNEVAL_NONE; + + switch (pnState->state) { + case NNSTATE_NONE: + { + /* incremental evaluation not useful */ + return NNEVAL_NONE; + } + case NNSTATE_INCREMENTAL: + { + /* next call should return FROMBASE */ + pnState->state = NNSTATE_DONE; + + /* starting a new context; save base in the hope it will be useful */ + return NNEVAL_SAVE; + } + case NNSTATE_DONE: + { + /* context hit! use the previously computed base */ + return NNEVAL_FROMBASE; + } + } + /* never reached */ + return NNEVAL_NONE; /* for the picky compiler */ +} + +static void +Evaluate(const neuralnet * pnn, const float arInput[], float ar[], float arOutput[], float *saveAr) +{ + const unsigned int cHidden = pnn->cHidden; + unsigned int i, j; + float *prWeight; + + /* Calculate activity at hidden nodes */ + for (i = 0; i < cHidden; i++) + ar[i] = pnn->arHiddenThreshold[i]; + + prWeight = pnn->arHiddenWeight; + + for (i = 0; i < pnn->cInput; i++) { + float const ari = arInput[i]; + + if (ari == 0.0f) + prWeight += cHidden; + else { + float *pr = ar; + + if (ari == 1.0f) + for (j = cHidden; j; j--) + *pr++ += *prWeight++; + else + for (j = cHidden; j; j--) + *pr++ += *prWeight++ * ari; + } + } + + if (saveAr) + memcpy(saveAr, ar, cHidden * sizeof(*saveAr)); + + for (i = 0; i < cHidden; i++) + ar[i] = sigmoid(-pnn->rBetaHidden * ar[i]); + + /* Calculate activity at output nodes */ + prWeight = pnn->arOutputWeight; + + for (i = 0; i < pnn->cOutput; i++) { + float r = pnn->arOutputThreshold[i]; + + for (j = 0; j < cHidden; j++) + r += ar[j] * *prWeight++; + + arOutput[i] = sigmoid(-pnn->rBetaOutput * r); + } +} + +static void +EvaluateFromBase(const neuralnet * pnn, const float arInputDif[], float ar[], float arOutput[]) +{ + unsigned int i, j; + float *prWeight; + + /* Calculate activity at hidden nodes */ + /* for( i = 0; i < pnn->cHidden; i++ ) + * ar[ i ] = pnn->arHiddenThreshold[ i ]; */ + + prWeight = pnn->arHiddenWeight; + + for (i = 0; i < pnn->cInput; ++i) { + float const ari = arInputDif[i]; + + if (ari == 0.0f) + prWeight += pnn->cHidden; + else { + float *pr = ar; + + if (ari == 1.0f) + for (j = pnn->cHidden; j; j--) + *pr++ += *prWeight++; + else if (ari == -1.0f) + for (j = pnn->cHidden; j; j--) + *pr++ -= *prWeight++; + else + for (j = pnn->cHidden; j; j--) + *pr++ += *prWeight++ * ari; + } + } + + for (i = 0; i < pnn->cHidden; i++) + ar[i] = sigmoid(-pnn->rBetaHidden * ar[i]); + + /* Calculate activity at output nodes */ + prWeight = pnn->arOutputWeight; + + for (i = 0; i < pnn->cOutput; i++) { + float r = pnn->arOutputThreshold[i]; + + for (j = 0; j < pnn->cHidden; j++) + r += ar[j] * *prWeight++; + + arOutput[i] = sigmoid(-pnn->rBetaOutput * r); + } +} + +extern int +NeuralNetEvaluate(const neuralnet * pnn, float arInput[], float arOutput[], NNState * pnState) +{ + float *ar = (float *) g_alloca(pnn->cHidden * sizeof(float)); + switch (NNevalAction(pnState)) { + case NNEVAL_NONE: + { + Evaluate(pnn, arInput, ar, arOutput, 0); + break; + } + case NNEVAL_SAVE: + { + pnState->cSavedIBase = pnn->cInput; + memcpy(pnState->savedIBase, arInput, pnn->cInput * sizeof(*ar)); + Evaluate(pnn, arInput, ar, arOutput, pnState->savedBase); + break; + } + case NNEVAL_FROMBASE: + { + if (pnState->cSavedIBase != pnn->cInput) { + Evaluate(pnn, arInput, ar, arOutput, 0); + break; + } + memcpy(ar, pnState->savedBase, pnn->cHidden * sizeof(*ar)); + + { + float *r = arInput; + float *s = pnState->savedIBase; + unsigned int i; + + for (i = 0; i < pnn->cInput; ++i, ++r, ++s) { + if (*r != *s /*lint --e(777) */ ) { + *r -= *s; + } else { + *r = 0.0; + } + } + } + EvaluateFromBase(pnn, arInput, ar, arOutput); + break; + } + } + return 0; +} +#endif + +extern int +NeuralNetLoad(neuralnet * pnn, FILE * pf) +{ + + unsigned int i; + float *pr; + char dummy[16]; + + if (fscanf(pf, "%u %u %u %15s %f %f\n", &pnn->cInput, &pnn->cHidden, + &pnn->cOutput, dummy, &pnn->rBetaHidden, + &pnn->rBetaOutput) < 5 || pnn->cInput < 1 || + pnn->cHidden < 1 || pnn->cOutput < 1 || pnn->rBetaHidden <= 0.0f || pnn->rBetaOutput <= 0.0f) { + errno = EINVAL; + return -1; + } + + if (NeuralNetCreate(pnn, pnn->cInput, pnn->cHidden, pnn->cOutput, pnn->rBetaHidden, pnn->rBetaOutput)) + return -1; + + pnn->nTrained = 1; + + for (i = pnn->cInput * pnn->cHidden, pr = pnn->arHiddenWeight; i; i--) + if (fscanf(pf, "%f\n", pr++) < 1) + return -1; + + for (i = pnn->cHidden * pnn->cOutput, pr = pnn->arOutputWeight; i; i--) + if (fscanf(pf, "%f\n", pr++) < 1) + return -1; + + for (i = pnn->cHidden, pr = pnn->arHiddenThreshold; i; i--) + if (fscanf(pf, "%f\n", pr++) < 1) + return -1; + + for (i = pnn->cOutput, pr = pnn->arOutputThreshold; i; i--) + if (fscanf(pf, "%f\n", pr++) < 1) + return -1; + + return 0; +} + +extern int +NeuralNetLoadBinary(neuralnet * pnn, FILE * pf) +{ + + int dummy; + +#define FREAD( p, c ) \ + if ( fread( (p), sizeof( *(p) ), (c), pf ) < (unsigned int)(c) ) return -1 + + FREAD(&pnn->cInput, 1); + FREAD(&pnn->cHidden, 1); + FREAD(&pnn->cOutput, 1); + FREAD(&dummy, 1); + FREAD(&pnn->rBetaHidden, 1); + FREAD(&pnn->rBetaOutput, 1); + + if (pnn->cInput < 1 || pnn->cHidden < 1 || pnn->cOutput < 1 || pnn->rBetaHidden <= 0.0f || pnn->rBetaOutput <= 0.0f) { + errno = EINVAL; + return -1; + } + + if (NeuralNetCreate(pnn, pnn->cInput, pnn->cHidden, pnn->cOutput, pnn->rBetaHidden, pnn->rBetaOutput)) + return -1; + + pnn->nTrained = 1; + + FREAD(pnn->arHiddenWeight, pnn->cInput * pnn->cHidden); + FREAD(pnn->arOutputWeight, pnn->cHidden * pnn->cOutput); + FREAD(pnn->arHiddenThreshold, pnn->cHidden); + FREAD(pnn->arOutputThreshold, pnn->cOutput); +#undef FREAD + + return 0; +} + +extern int +NeuralNetSaveBinary(const neuralnet * pnn, FILE * pf) +{ + +#define FWRITE( p, c ) \ + if ( fwrite( (p), sizeof( *(p) ), (c), pf ) < (unsigned int)(c) ) return -1 + + FWRITE(&pnn->cInput, 1); + FWRITE(&pnn->cHidden, 1); + FWRITE(&pnn->cOutput, 1); + FWRITE(&pnn->nTrained, 1); + FWRITE(&pnn->rBetaHidden, 1); + FWRITE(&pnn->rBetaOutput, 1); + + FWRITE(pnn->arHiddenWeight, pnn->cInput * pnn->cHidden); + FWRITE(pnn->arOutputWeight, pnn->cHidden * pnn->cOutput); + FWRITE(pnn->arHiddenThreshold, pnn->cHidden); + FWRITE(pnn->arOutputThreshold, pnn->cOutput); +#undef FWRITE + + return 0; +} + + +#if defined(USE_SIMD_INSTRUCTIONS) + +#if defined(DISABLE_SIMD_TEST) + +int +SIMD_Supported(void) +{ + return 1; +} + +#else + +#if defined(HAVE_SSE) + +#if defined(__APPLE__) || defined(__FreeBSD__) +#include +#endif + +static int +check_for_cpuid(void) +{ + int result; + + __asm__ __volatile__ ( +#if defined(ENVIRONMENT32) && defined(__PIC__) + /* We have to be careful to not destroy ebx if using PIC on 32bit builds */ + "pushl %%ebx\n\t" +#endif + "mov $1, %%eax\n\t" + "shl $21, %%eax\n\t" + "mov %%eax, %%edx\n\t" +#if defined(ENVIRONMENT64) + "pushf\n\t" + "pop %%rax\n\t" +#else + "pushfl\n\t" + "popl %%eax\n\t" +#endif + "mov %%eax, %%ecx\n\t" + "xor %%edx, %%eax\n\t" +#if defined(ENVIRONMENT64) + "push %%rax\n\t" + "popf\n\t" + "pushf\n\t" + "pop %%rax\n\t" +#else + "pushl %%eax\n\t" + "popfl\n\t" + "pushfl\n\t" + "popl %%eax\n\t" +#endif + "xor %%ecx, %%eax\n\t" + "test %%edx, %%eax\n\t" + "jnz cpuid_success\n\t" + /* Failed (non-pentium compatible machine) */ + "mov $-1, %%eax\n\t" + "jmp cpuid_finished\n\t" + +"cpuid_success:" + "xor %%eax, %%eax\n\t" + "cpuid\n\t" + "cmp $1, %%eax\n\t" + /* If 0 returned processor doesn't hav feature test */ + "jge feature_success\n\t" + + /* Unlucky - somehow cpuid 1 isn't supported */ + "mov $-2, %%eax\n\t" + "jmp cpuid_finished\n\t" + +"feature_success:" + "xor %%eax, %%eax\n\t" + +"cpuid_finished:" +#if defined(ENVIRONMENT32) && defined(__PIC__) + "popl %%ebx\n\t" +#endif + : "=a"(result) + : + : "%ecx", +#if !defined(ENVIRONMENT32) || !defined(__PIC__) + "%ebx", +#endif + "%edx"); + return result; +} + +static int +CheckSSE(void) +{ + int result; + int cpuidchk; + + if ((cpuidchk = check_for_cpuid()) < 0) + return cpuidchk; + +#if defined(USE_AVX) + + __asm__ __volatile__ ( +#if defined(ENVIRONMENT32) && defined(__PIC__) + /* We have to be careful to not destroy ebx if using PIC on 32bit builds */ + "pushl %%ebx\n\t" +#endif + "mov $1, %%eax\n\t" + "cpuid\n\t" + "and $0x018000000, %%ecx\n\t" /* Check bit 27 (OS uses XSAVE/XRSTOR)*/ + "cmp $0x018000000, %%ecx\n\t" /* and bit 28 (AVX supported by CPU) */ + "jne avx_unsupported\n\t" + "xor %%ecx, %%ecx\n\t" /* XFEATURE_ENABLED_MASK/XCR0 register number = 0 */ + "xgetbv\n\t" /* XFEATURE_ENABLED_MASK register is in edx:eax" */ + "and $0b110, %%eax\n\t" + "cmp $0b110, %%eax\n\t" /* check the AVX registers restore at context switch */ + "jne avx_unsupported\n\t" + "mov $1, %%eax\n\t" + "jmp avx_end\n\t" + +"avx_unsupported:" + "xor %%eax, %%eax\n\t" + +"avx_end:" +#if defined(ENVIRONMENT32) && defined(__PIC__) + "popl %%ebx\n\t" +#endif + : "=a"(result) /* Result returned in result variable */ + : + : "%ecx", +#if !defined(ENVIRONMENT32) || !defined(__PIC__) + "%ebx", +#endif + "%edx"); /* These are all destroyed by cpuid */ + +#else +#if defined(__APPLE__) || defined(__FreeBSD__) + size_t length = sizeof(result); +#if defined(__APPLE__) + int error = sysctlbyname("hw.optional.sse", &result, &length, NULL, 0); +#endif +#if defined(__FreeBSD__) + int error = sysctlbyname("hw.instruction_sse", &result, &length, NULL, 0); +#endif + if (error != 0) + result = 0; + +#else + + __asm__ __volatile__ ( +#if defined(ENVIRONMENT32) && defined(__PIC__) + /* We have to be careful to not destroy ebx if using PIC on I386 */ + "pushl %%ebx\n\t" +#endif + /* Check if sse is supported (bit 25/26 in edx from cpuid 1) */ + "mov $1, %%eax\n\t" + "cpuid\n\t" + "mov $1, %%eax\n\t" +#if defined(USE_SSE2) + "shl $26, %%eax\n\t" +#else + "shl $25, %%eax\n\t" +#endif + "test %%eax, %%edx\n\t" + "jnz sse_success\n\t" + /* Not supported */ + "mov $0, %%eax\n\t" + "jmp sse_end\n\t" + +"sse_success:" + /* Supported */ + "mov $1, %%eax\n\t" + +"sse_end:" +#if defined(ENVIRONMENT32) && defined(__PIC__) + "pop %%ebx\n\t" +#endif + + : "=a"(result) + : + : "%ecx", +#if !defined(ENVIRONMENT32) || !defined(__PIC__) + "%ebx", +#endif + "%edx"); +#endif /* APPLE/BSD */ + +#endif /* USE_AVX */ + + return result; +} + +#endif /* HAVE_SSE */ + +int +SIMD_Supported(void) +{ + static int state = -3; + + if (state == -3) { +#if defined(HAVE_NEON) + state = CheckNEON(); +#elif defined(HAVE_SSE) + state = CheckSSE(); +#else + state = -2; +#endif + } + + return state; +} + +#endif +#endif diff --git a/engine/gnubg/lib/neuralnet.h b/engine/gnubg/lib/neuralnet.h new file mode 100644 index 0000000..bed5e5c --- /dev/null +++ b/engine/gnubg/lib/neuralnet.h @@ -0,0 +1,89 @@ +/* + * Copyright (C) 1999-2002 Gary Wong + * Copyright (C) 2002-2017 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: neuralnet.h,v 1.36 2020/06/05 20:08:31 plm Exp $ + */ + +#ifndef NEURALNET_H +#define NEURALNET_H + +#include +#include "common.h" + +typedef struct { + unsigned int cInput; + unsigned int cHidden; + unsigned int cOutput; + int nTrained; + float rBetaHidden; + float rBetaOutput; + float *arHiddenWeight; + float *arOutputWeight; + float *arHiddenThreshold; + float *arOutputThreshold; +} neuralnet; + +typedef enum { + NNEVAL_NONE, + NNEVAL_SAVE, + NNEVAL_FROMBASE +} NNEvalType; + +typedef enum { + NNSTATE_NONE = -1, + NNSTATE_INCREMENTAL, + NNSTATE_DONE +} NNStateType; + +typedef struct { + NNStateType state; + float *savedBase; + float *savedIBase; +#if !defined(USE_SIMD_INSTRUCTIONS) + unsigned int cSavedIBase; +#endif +} NNState; + +extern void NeuralNetDestroy(neuralnet * pnn); +#if !defined(USE_SIMD_INSTRUCTIONS) +extern int NeuralNetEvaluate(const neuralnet * pnn, float arInput[], float arOutput[], NNState * pnState); +#else +extern int NeuralNetEvaluateSSE(const neuralnet * pnn, float arInput[], float arOutput[], NNState * pnState); +#endif +extern int NeuralNetLoad(neuralnet * pnn, FILE * pf); +extern int NeuralNetLoadBinary(neuralnet * pnn, FILE * pf); +extern int NeuralNetSaveBinary(const neuralnet * pnn, FILE * pf); +extern int SIMD_Supported(void); + +/* Try to determine whether we are 64-bit or 32-bit */ +#if defined(_WIN32) || defined(_WIN64) +#if defined(_WIN64) +#define ENVIRONMENT64 +#else +#define ENVIRONMENT32 +#endif +#endif + +#if defined(__GNUC__) +#if defined(__x86_64__) +#define ENVIRONMENT64 +#else +#define ENVIRONMENT32 +#endif +#endif + +#endif diff --git a/engine/gnubg/lib/neuralnetsse.c b/engine/gnubg/lib/neuralnetsse.c new file mode 100644 index 0000000..543db55 --- /dev/null +++ b/engine/gnubg/lib/neuralnetsse.c @@ -0,0 +1,583 @@ +/* + * Copyright (C) 2006-2009 Jon Kinsey + * Copyright (C) 2007-2021 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" +#include "common.h" + +#if defined(USE_SIMD_INSTRUCTIONS) + +#define DEBUG_SSE 0 + +#include "simd.h" +#include "neuralnet.h" +#include + +#if defined(USE_NEON) +#include +#elif defined(USE_AVX) +#include +#elif defined(USE_SSE2) +#include +#else +#include +#endif + +#include +#include "sigmoid.h" + +#if defined(HAVE_NEON) +#include +#include +#endif + +float * +sse_malloc(size_t size) +{ +#if defined(HAVE_POSIX_MEMALIGN) + void *ptr = NULL; + int ret; + + ret = posix_memalign(&ptr, ALIGN_SIZE, size); + + if (ret == 0) + return (float *)ptr; + + /* mimic g_malloc() error message */ + g_error("%s: failed to allocate %"G_GSIZE_FORMAT" bytes", G_STRLOC, size); + + /* avoid warning: "control reaches end of non-void function" for + compilers that don't understand that g_error() never returns. */ + return NULL; + +#elif defined(HAVE__ALIGNED_MALLOC) + return (float *) _aligned_malloc(size, ALIGN_SIZE); +#else + return (float *) _mm_malloc(size, ALIGN_SIZE); +#endif +} + +void +sse_free(float *ptr) +{ +#if defined(HAVE_POSIX_MEMALIGN) + free(ptr); +#elif defined(HAVE__ALIGNED_MALLOC) + _aligned_free(ptr); +#else + _mm_free(ptr); +#endif +} + +#if defined(HAVE_NEON) +static jmp_buf env; + +static void +my_handler(int status) +{ + longjmp(env, status); +} + +int +CheckNEON(void) +{ + void (*oldsig)(int); + + oldsig = signal(SIGILL, my_handler); + if (setjmp(env)) { + signal(SIGILL, oldsig); + return 0; + } else { +#if defined(__ARM_FEATURE_SIMD32) + /* v7 */ + __asm__ __volatile__ ("vmin.f32 q0, q0, q0"); +#elif defined(__ARM_NEON) + /* aarch64 */ + __asm__ __volatile__ ("fmin v0.4s, v0.4s, v0.4s"); +#else + #error "Unexpected ARM architecture" +#endif + signal(SIGILL, oldsig); + return 1; + } +} +#endif + +#if defined(USE_AVX) || defined(USE_SSE2) || defined(USE_NEON) +#include + +static const union { + float f[VEC_SIZE]; + float_vector ps; +#if defined(USE_AVX) +} ones = { { +1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}}; +#else +} ones = { { +1.0f, 1.0f, 1.0f, 1.0f}}; +#endif + +static const union { + float f[VEC_SIZE]; + float_vector ps; +#if defined(USE_AVX) +} tens = { { +10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f}}; +#else +} tens = { { +10.0f, 10.0f, 10.0f, 10.0f}}; +#endif + +static const union { + int32_t i32[VEC_SIZE]; + float_vector ps; +#if defined(USE_AVX) +} abs_mask = { { +0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF}}; +#else +} abs_mask = { { +0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF, 0x7FFFFFFF}}; +#endif + +static inline float_vector +sigmoid_positive_ps(float_vector xin) +{ + union { + int_vector i; + int32_t i32[VEC_SIZE]; + } i; + float_vector ex; + float *ex_elem = (float *) &ex; +#if defined(USE_AVX) + float_vector x1 = _mm256_min_ps(xin, tens.ps); +#elif defined(HAVE_SSE) + float_vector x1 = _mm_min_ps(xin, tens.ps); +#else + float_vector x1 = vminq_f32(xin, tens.ps); + float_vector rec; +#endif + +#if defined(USE_AVX) + x1 = _mm256_mul_ps(x1, tens.ps); + i.i = _mm256_cvttps_epi32(x1); +#elif defined(HAVE_SSE) + x1 = _mm_mul_ps(x1, tens.ps); + i.i = _mm_cvttps_epi32(x1); +#else + x1 = vmulq_f32(x1, tens.ps); + i.i = vcvtq_s32_f32(x1); +#endif + ex_elem[0] = e[i.i32[0]]; + ex_elem[1] = e[i.i32[1]]; + ex_elem[2] = e[i.i32[2]]; + ex_elem[3] = e[i.i32[3]]; +#if defined(USE_AVX) + ex_elem[4] = e[i.i32[4]]; + ex_elem[5] = e[i.i32[5]]; + ex_elem[6] = e[i.i32[6]]; + ex_elem[7] = e[i.i32[7]]; +#endif + +#if defined(USE_AVX) + x1 = _mm256_sub_ps(x1, _mm256_cvtepi32_ps(i.i)); + x1 = _mm256_add_ps(x1, tens.ps); +#if defined(USE_FMA3) + x1 = _mm256_fmadd_ps(x1, ex, ones.ps); +#else + x1 = _mm256_mul_ps(x1, ex); + x1 = _mm256_add_ps(x1, ones.ps); +#endif +#ifdef __FAST_MATH__ + return _mm256_rcp_ps(x1); +#else + return _mm256_div_ps(ones.ps, x1); +#endif +#elif defined(HAVE_SSE) + x1 = _mm_sub_ps(x1, _mm_cvtepi32_ps(i.i)); + x1 = _mm_add_ps(x1, tens.ps); + x1 = _mm_mul_ps(x1, ex); + x1 = _mm_add_ps(x1, ones.ps); +#ifdef __FAST_MATH__ + return _mm_rcp_ps(x1); +#else + return _mm_div_ps(ones.ps, x1); +#endif +#else + x1 = vsubq_f32(x1, vcvtq_f32_s32(i.i)); + x1 = vaddq_f32(x1, tens.ps); + x1 = vmulq_f32(x1, ex); + x1 = vaddq_f32(x1, ones.ps); + + /* TODO: Check how many Newton-Raphson iterations are needed to match x86 rcp and div accuracy */ +#ifdef __FAST_MATH__ + rec = vrecpeq_f32(x1); + return vmulq_f32(vrecpsq_f32(x1, rec), rec); +#else + rec = vrecpeq_f32(x1); + rec = vmulq_f32(vrecpsq_f32(x1, rec), rec); + return vmulq_f32(vrecpsq_f32(x1, rec), rec); +#endif +#endif +} + +static inline float_vector +sigmoid_ps(float_vector xin) +{ +#if defined(USE_AVX) + float_vector mask = _mm256_cmp_ps(xin, _mm256_setzero_ps(), _CMP_LT_OS); + float_vector c; + xin = _mm256_and_ps(xin, abs_mask.ps); /* Abs. value by clearing signbit */ + c = sigmoid_positive_ps(xin); + return _mm256_blendv_ps(c, _mm256_sub_ps(ones.ps, c), mask); +#elif defined(HAVE_SSE) + float_vector mask = _mm_cmplt_ps(xin, _mm_setzero_ps()); + float_vector c; + xin = _mm_and_ps(xin, abs_mask.ps); /* Abs. value by clearing signbit */ + c = sigmoid_positive_ps(xin); + /* _mm_blendv_ps() is only available with SSE4.1 or later */ + return _mm_or_ps(_mm_andnot_ps(mask, c), _mm_and_ps(mask, _mm_sub_ps(ones.ps, c))); +#else + int_vector mask = (int_vector)vcltq_f32(xin, vdupq_n_f32(0.0f)); + float_vector c; + xin = (float_vector)vandq_s32((int_vector)xin, (int_vector)abs_mask.ps); /* Abs. value by clearing signbit */ + c = sigmoid_positive_ps(xin); + return vbslq_f32((uint32x4_t)mask, vsubq_f32(ones.ps, c), c); +#endif +} + +#endif // USE_SSE2 or USE_AVX + +#if defined(USE_SSE2) +#define INPUT_ADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = _mm_load_ps(pr); \ + vec1 = _mm_load_ps(prWeight); \ + sum = _mm_add_ps(vec0, vec1); \ + _mm_store_ps(pr, sum); \ +} +#define INPUT_MULTADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = _mm_load_ps(pr); \ + vec1 = _mm_load_ps(prWeight); \ + vec3 = _mm_mul_ps(vec1, scalevec); \ + sum = _mm_add_ps(vec0, vec3); \ + _mm_store_ps(pr, sum); \ +} +#endif +#if defined(USE_AVX) +#define INPUT_ADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = _mm256_load_ps(pr); \ + vec1 = _mm256_load_ps(prWeight); \ + sum = _mm256_add_ps(vec0, vec1); \ + _mm256_store_ps(pr, sum); \ +} +#if defined(USE_FMA3) +#define INPUT_MULTADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = _mm256_load_ps(pr); \ + vec1 = _mm256_load_ps(prWeight); \ + sum = _mm256_fmadd_ps(vec1, scalevec, vec0); \ + _mm256_store_ps(pr, sum); \ +} +#else +#define INPUT_MULTADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = _mm256_load_ps(pr); \ + vec1 = _mm256_load_ps(prWeight); \ + vec3 = _mm256_mul_ps(vec1, scalevec); \ + sum = _mm256_add_ps(vec0, vec3); \ + _mm256_store_ps(pr, sum); \ +} +#endif +#endif +#if defined(USE_NEON) +#define INPUT_ADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = vld1q_f32(pr); \ + vec1 = vld1q_f32(prWeight); \ + sum = vaddq_f32(vec0, vec1); \ + vst1q_f32(pr, sum); \ +} +#define INPUT_MULTADD() \ +for (j = (cHidden >> LOG2VEC_SIZE); j; j--, pr += VEC_SIZE, prWeight += VEC_SIZE) { \ + vec0 = vld1q_f32(pr); \ + vec1 = vld1q_f32(prWeight); \ + vec3 = vmulq_f32(vec1, scalevec); \ + sum = vaddq_f32(vec0, vec3); \ + vst1q_f32(pr, sum); \ +} +#endif + +static void +EvaluateSSE(const neuralnet * restrict pnn, const float arInput[], float ar[], float arOutput[]) +{ + const unsigned int cHidden = pnn->cHidden; + unsigned int i, j; + float *prWeight; +#if defined(USE_SSE2) || defined(USE_AVX) || defined(USE_NEON) + float *par; +#if defined(USE_FMA3) + float_vector vec0, vec1, scalevec, sum; +#else + float_vector vec0, vec1, vec3, scalevec, sum; +#endif +#endif + + /* Calculate activity at hidden nodes */ + memcpy(ar, pnn->arHiddenThreshold, cHidden * sizeof(float)); + + prWeight = pnn->arHiddenWeight; + + if (pnn->cInput != 214) { /* everything but the racing net */ + for (i = 0; i < 200;) { /* base inputs */ + float ari = arInput[i++]; + + /* 3 binaries, 1 float */ + + if (likely(ari == 0.0f)) + prWeight += cHidden; + else { + float *pr = ar; + INPUT_ADD(); + } + + ari = arInput[i++]; + + if (likely(ari == 0.0f)) + prWeight += cHidden; + else { + float *pr = ar; + INPUT_ADD(); + } + + ari = arInput[i++]; + + if (likely(ari == 0.0f)) { + prWeight += cHidden; + /* If 3rd element is 0, so is 4th. Skip it */ + prWeight += cHidden; + i++; + continue; + } else { + float *pr = ar; + INPUT_ADD(); + } + + ari = arInput[i++]; + + if (likely(ari == 0.0f)) + prWeight += cHidden; + else { + float *pr = ar; + +#if defined(USE_FMA3) + scalevec = _mm256_set1_ps(ari); + INPUT_MULTADD(); +#elif defined(USE_NEON) + scalevec = vdupq_n_f32(ari); + INPUT_MULTADD(); +#else + if (unlikely(ari == 1.0f)) { + INPUT_ADD(); + } else { +#if defined(USE_AVX) + scalevec = _mm256_set1_ps(ari); +#elif defined(HAVE_SSE) + scalevec = _mm_set1_ps(ari); +#endif + INPUT_MULTADD(); + } +#endif + } /* base inputs are done */ + } + + if (pnn->cInput == 250) /* Pruning nets are over, contact/crashed still have 2 * 25 floats */ + for (i = 200; i < 250; i++) { + float const ari = arInput[i]; + + if (unlikely(ari == 0.0f)) + prWeight += cHidden; + else { + float *pr = ar; + +#if defined(USE_AVX) + scalevec = _mm256_set1_ps(ari); +#elif defined(HAVE_SSE) + scalevec = _mm_set1_ps(ari); +#else + scalevec = vdupq_n_f32(ari); +#endif + INPUT_MULTADD(); + } + } + } + + else /* racing net */ + for (i = 0; i < pnn->cInput; i++) { + float const ari = arInput[i]; + + if (likely(ari == 0.0f)) + prWeight += cHidden; + else { + float *pr = ar; +#if defined(USE_FMA3) + scalevec = _mm256_set1_ps(ari); + INPUT_MULTADD(); +#elif defined(USE_NEON) + scalevec = vdupq_n_f32(ari); + INPUT_MULTADD(); +#else + if (likely(ari == 1.0f)) { + INPUT_ADD(); + } else { +#if defined(USE_AVX) + scalevec = _mm256_set1_ps(ari); +#elif defined(HAVE_SSE) + scalevec = _mm_set1_ps(ari); +#endif + INPUT_MULTADD(); + } +#endif + } + } + +#if defined(USE_SSE2) || defined(USE_AVX) || defined(USE_NEON) +#if defined(USE_AVX) + scalevec = _mm256_set1_ps(-pnn->rBetaHidden); +#elif defined(HAVE_SSE) + scalevec = _mm_set1_ps(-pnn->rBetaHidden); +#else + scalevec = vdupq_n_f32(-pnn->rBetaHidden); +#endif + + for (par = ar, i = (cHidden >> LOG2VEC_SIZE); i; i--, par += VEC_SIZE) { +#if defined(USE_AVX) + float_vector vec = _mm256_load_ps(par); + vec = _mm256_mul_ps(vec, scalevec); + vec = sigmoid_ps(vec); + _mm256_store_ps(par, vec); +#elif defined(HAVE_SSE) + float_vector vec = _mm_load_ps(par); + vec = _mm_mul_ps(vec, scalevec); + vec = sigmoid_ps(vec); + _mm_store_ps(par, vec); +#else + float_vector vec = vld1q_f32(par); + vec = vmulq_f32(vec, scalevec); + vec = sigmoid_ps(vec); + vst1q_f32(par, vec); +#endif + } +#else + for (i = 0; i < cHidden; i++) + ar[i] = sigmoid(-pnn->rBetaHidden * ar[i]); +#endif + + /* Calculate activity at output nodes */ + prWeight = pnn->arOutputWeight; + + for (i = 0; i < pnn->cOutput; i++) { + +#if defined(USE_AVX) + SSE_ALIGN(float r[8]); +#else + float r; +#endif + float *pr = ar; +#if defined(USE_AVX) + sum = _mm256_setzero_ps(); +#elif defined(HAVE_SSE) + sum = _mm_setzero_ps(); +#else + sum = vdupq_n_f32(0.0f); +#endif + for (j = (cHidden >> LOG2VEC_SIZE); j; j--, prWeight += VEC_SIZE, pr += VEC_SIZE) { +#if defined(USE_AVX) + vec0 = _mm256_load_ps(pr); /* Eight floats into vec0 */ + vec1 = _mm256_load_ps(prWeight); /* Eight weights into vec1 */ +#if defined(USE_FMA3) + sum = _mm256_fmadd_ps(vec0, vec1, sum); +#else + vec3 = _mm256_mul_ps(vec0, vec1); /* Multiply */ + sum = _mm256_add_ps(sum, vec3); /* Add */ +#endif +#elif defined(HAVE_SSE) + vec0 = _mm_load_ps(pr); /* Four floats into vec0 */ + vec1 = _mm_load_ps(prWeight); /* Four weights into vec1 */ + vec3 = _mm_mul_ps(vec0, vec1); /* Multiply */ + sum = _mm_add_ps(sum, vec3); /* Add */ +#else + vec0 = vld1q_f32(pr); /* Four floats into vec0 */ + vec1 = vld1q_f32(prWeight); /* Four weights into vec1 */ + vec3 = vmulq_f32(vec0, vec1); /* Multiply */ + sum = vaddq_f32(sum, vec3); /* Add */ +#endif + } + +#if defined(USE_AVX) + vec0 = _mm256_hadd_ps(sum, sum); + vec1 = _mm256_hadd_ps(vec0, vec0); + _mm256_store_ps(r, vec1); + + arOutput[i] = sigmoid(-pnn->rBetaOutput * (r[0] + r[4] + pnn->arOutputThreshold[i])); +#elif defined(HAVE_SSE) + vec0 = _mm_shuffle_ps(sum, sum, _MM_SHUFFLE(2, 3, 0, 1)); + vec1 = _mm_add_ps(sum, vec0); + vec0 = _mm_shuffle_ps(vec1, vec1, _MM_SHUFFLE(1, 1, 3, 3)); + sum = _mm_add_ps(vec1, vec0); + _mm_store_ss(&r, sum); + + arOutput[i] = sigmoid(-pnn->rBetaOutput * (r + pnn->arOutputThreshold[i])); + +#else + { + float32x2_t vec0_h, vec0_l, vec1; + + vec0_h = vget_high_f32(sum); + vec0_l = vget_low_f32(sum); + vec1 = vpadd_f32(vec0_h, vec0_l); + vec1 = vpadd_f32(vec1, vec1); + vst1_lane_f32(&r, vec1, 0); + + arOutput[i] = sigmoid(-pnn->rBetaOutput * (r + pnn->arOutputThreshold[i])); + } +#endif + } +#if defined(USE_AVX) + _mm256_zeroupper(); +#endif +} + + +extern int +NeuralNetEvaluateSSE(const neuralnet * restrict pnn, /*lint -e{818} */ float arInput[], + float arOutput[], NNState * UNUSED(pnState)) +{ + SSE_ALIGN(float ar[pnn->cHidden]); + +#if DEBUG_SSE + g_assert(sse_aligned(arOutput)); + g_assert(sse_aligned(ar)); + g_assert(sse_aligned(arInput)); +#endif + + EvaluateSSE(pnn, arInput, ar, arOutput); + return 0; +} + +#endif diff --git a/engine/gnubg/lib/sigmoid.h b/engine/gnubg/lib/sigmoid.h new file mode 100644 index 0000000..d55026c --- /dev/null +++ b/engine/gnubg/lib/sigmoid.h @@ -0,0 +1,168 @@ +/* + * Copyright (C) 1998-2002 Gary Wong + * Copyright (C) 2008-2017 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef SIGMOID_H +#define SIGMOID_H +/* e[k] = exp(k/10) / 10 */ +static float e[101] = { + 0.10000000000000001f, + 0.11051709180756478f, + 0.12214027581601698f, + 0.13498588075760032f, + 0.14918246976412702f, + 0.16487212707001281f, + 0.18221188003905089f, + 0.20137527074704767f, + 0.22255409284924679f, + 0.245960311115695f, + 0.27182818284590454f, + 0.30041660239464335f, + 0.33201169227365473f, + 0.36692966676192446f, + 0.40551999668446748f, + 0.44816890703380646f, + 0.49530324243951152f, + 0.54739473917271997f, + 0.60496474644129461f, + 0.66858944422792688f, + 0.73890560989306509f, + 0.81661699125676512f, + 0.90250134994341225f, + 0.99741824548147184f, + 1.1023176380641602f, + 1.2182493960703473f, + 1.3463738035001691f, + 1.4879731724872838f, + 1.6444646771097049f, + 1.817414536944306f, + 2.0085536923187668f, + 2.2197951281441637f, + 2.4532530197109352f, + 2.7112638920657881f, + 2.9964100047397011f, + 3.3115451958692312f, + 3.6598234443677988f, + 4.0447304360067395f, + 4.4701184493300818f, + 4.9402449105530168f, + 5.4598150033144233f, + 6.034028759736195f, + 6.6686331040925158f, + 7.3699793699595784f, + 8.1450868664968148f, + 9.0017131300521811f, + 9.9484315641933776f, + 10.994717245212353f, + 12.151041751873485f, + 13.428977968493552f, + 14.841315910257659f, + 16.402190729990171f, + 18.127224187515122f, + 20.033680997479166f, + 22.140641620418716f, + 24.469193226422039f, + 27.042640742615255f, + 29.886740096706028f, + 33.029955990964865f, + 36.503746786532886f, + 40.34287934927351f, + 44.585777008251675f, + 49.274904109325632f, + 54.457191012592901f, + 60.184503787208222f, + 66.514163304436181f, + 73.509518924197266f, + 81.24058251675433f, + 89.784729165041753f, + 99.227471560502622f, + 109.66331584284585f, + 121.19670744925763f, + 133.9430764394418f, + 148.02999275845451f, + 163.59844299959269f, + 180.80424144560632f, + 199.81958951041173f, + 220.83479918872089f, + 244.06019776244983f, + 269.72823282685101f, + 298.09579870417281f, + 329.44680752838406f, + 364.09503073323521f, + 402.38723938223131f, + 444.7066747699858f, + 491.47688402991344f, + 543.16595913629783f, + 600.29122172610175f, + 663.42440062778894f, + 733.19735391559948f, + 810.3083927575384f, + 895.52927034825075f, + 989.71290587439091f, + 1093.8019208165192f, + 1208.8380730216988f, + 1335.9726829661872f, + 1476.4781565577266f, + 1631.7607198015421f, + 1803.3744927828525f, + 1993.0370438230298f, + 1993.0370438230298f /* one extra :-) */ +}; + +/* Calculate an approximation to the sigmoid function 1 / ( 1 + e^x ). + * This is executed very frequently during neural net evaluation, so + * careful optimisation here pays off. + * + * Statistics on sigmoid(x) calls: + * * >99% of the time, x is positive. + * * 82% of the time, 3 < abs(x) < 8. + * + * 02/2017: The numbers above are 10+ years old + * (old neural nets, possibly pruning nets not yet in use). + * Current stats : + * * 85% of the time, x is positive, comprising 80% < 10 and 20% > 10 + * * 15% of the time, x is negative with 99%+ > -10 + */ + +static inline float +sigmoid(float const xin) +{ + if (likely(xin >= 0.0f)) { + /* xin is almost always positive; we place this branch of the `if' + * first, in the hope that the compiler/processor will predict the + * conditional branch will not be taken. */ + if (likely(xin < 10.0f)) { + /* again, predict the branch not to be taken */ + const float x1 = 10.0f * xin; + const int i = (int) x1; + + return 1.0f / (1.0f + e[i] * ((float)(10 - i) + x1)); + } else + return 1.0f / 19931.370438230298f; + } else { + if (likely(xin > -10.0f)) { + const float x1 = -10.0f * xin; + const int i = (int) x1; + + return 1.0f - 1.0f / (1 + e[i] * ((float)(10 - i) + x1)); + } else + return 19930.370438230298f / 19931.370438230298f; + } +} + + +#endif diff --git a/engine/gnubg/lib/simd.h b/engine/gnubg/lib/simd.h new file mode 100644 index 0000000..90504f3 --- /dev/null +++ b/engine/gnubg/lib/simd.h @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2005-2006 Jon Kinsey + * Copyright (C) 2005-2018 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: simd.h,v 1.9 2018/05/12 21:42:33 plm Exp $ + */ + +#ifndef SIMD_H +#define SIMD_H + +#if defined(USE_SIMD_INSTRUCTIONS) + +#include +#include "common.h" + +#if defined(USE_AVX) +#define ALIGN_SIZE 32 +#define VEC_SIZE 8 +#define LOG2VEC_SIZE 3 +#define float_vector __m256 +#define int_vector __m256i +#else +#define ALIGN_SIZE 16 +#define VEC_SIZE 4 +#define LOG2VEC_SIZE 2 +#if defined(HAVE_SSE) +#define float_vector __m128 +#define int_vector __m128i +#elif defined(HAVE_NEON) +#define float_vector float32x4_t +#define int_vector int32x4_t +/* + * Workaround for clang on raspbian 9 + * It defines __ARM_FEATURE_SIMD32 but its arm_neon.h needs __ARM_NEON + */ +#define __ARM_NEON 1 +#else +#error "Inconsistent SIMD defines" +#endif +#endif + +#if defined(_MSC_VER) +#define SSE_ALIGN(D) __declspec(align(ALIGN_SIZE)) D +#else +#define SSE_ALIGN(D) D __attribute__ ((aligned(ALIGN_SIZE))) +#endif + +#if defined(__GNUC__) && defined(WIN32) +/* Align stack pointer on 16 byte boundary so SSE variables work correctly */ +#define SIMD_STACKALIGN __attribute__((force_align_arg_pointer)) +#if defined(USE_AVX) +#define SIMD_AVX_STACKALIGN __attribute__((force_align_arg_pointer)) +#else +#define SIMD_AVX_STACKALIGN +#endif /* USE_AVX */ +#else +#define SIMD_STACKALIGN +#define SIMD_AVX_STACKALIGN +#endif /* GNUC/WIN32 */ + +#define sse_aligned(ar) (!(((size_t)ar) % ALIGN_SIZE)) + +extern float *sse_malloc(size_t size); +extern void sse_free(float *ptr); + +#if defined(HAVE_NEON) +extern int CheckNEON(void); +#endif + +#else /* USE_SIMD_INSTRUCTIONS */ + +#define SSE_ALIGN(D) D +#define sse_malloc malloc +#define sse_free free +#define SIMD_STACKALIGN +#define SIMD_AVX_STACKALIGN + +#endif + +#endif /* SIMD_H */ diff --git a/engine/gnubg/makebearoff.c b/engine/gnubg/makebearoff.c new file mode 100644 index 0000000..1101d7d --- /dev/null +++ b/engine/gnubg/makebearoff.c @@ -0,0 +1,1458 @@ +/* + * Copyright (C) 1997-2003 Gary Wong + * Copyright (C) 2002-2024 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" + +#include +#ifdef WIN32 +#include +#endif +#include +#include +#if HAVE_UNISTD_H +#include +#endif +#include +#include +#include +#include + +#include "eval.h" +#include "positionid.h" +#include "bearoff.h" +#include "util.h" +#include "backgammon.h" +#include "multithread.h" + +void +MT_CloseThreads(void) +{ + return; +} + +typedef struct { + void *p; + unsigned int iKey; +} xhashent; + +typedef struct { + unsigned long int nQueries, nHits, nEntries, nOverwrites; + int nHashSize; + xhashent *phe; +} xhash; + + +static long cLookup; + +static int +XhashPosition(xhash * ph, const int iKey) +{ + + return iKey % ph->nHashSize; + +} + +static void +XhashStatus(xhash * ph) +{ + + g_printerr(_("Xhash status:\n")); + g_printerr(_("Size: %d elements\n"), ph->nHashSize); + g_printerr(_("Queries: %lu (hits: %lu)\n"), ph->nQueries, ph->nHits); + g_printerr(_("Entries: %lu (overwrites: %lu)\n"), ph->nEntries, ph->nOverwrites); + +} + + +static int +XhashCreate(xhash * ph, const int nHashSize) +{ + + int i; + + ph->phe = (xhashent *) g_malloc0(nHashSize * sizeof(xhashent)); + + ph->nQueries = 0; + ph->nHits = 0; + ph->nEntries = 0; + ph->nOverwrites = 0; + ph->nHashSize = nHashSize; + + for (i = 0; i < nHashSize; ++i) + ph->phe[i].p = NULL; + + return 0; + +} + + +static void +XhashDestroy(xhash * ph) +{ + + int i; + + for (i = 0; i < ph->nHashSize; ++i) + if (ph->phe[i].p) + g_free(ph->phe[i].p); + free(ph->phe); +} + + +static void +XhashAdd(xhash * ph, const unsigned int iKey, const void *data, const int size) +{ + + int l = XhashPosition(ph, iKey); + + if (ph->phe[l].p) { + /* occupied */ + g_free(ph->phe[l].p); + ph->nOverwrites++; + } else { + + /* free */ + ph->nEntries++; + + } + + ph->phe[l].iKey = iKey; +#if GLIB_CHECK_VERSION (2,67,4) + ph->phe[l].p = g_memdup2(data, size); +#else + ph->phe[l].p = g_memdup(data, size); +#endif +} + + +static void * +XhashLookup(xhash * ph, const unsigned int iKey) +{ + + + int l = XhashPosition(ph, iKey); + + ++ph->nQueries; + + if (ph->phe[l].p && ph->phe[l].iKey == iKey) { + /* hit */ + ++ph->nHits; + return (ph->phe[l].p); + } else + /* miss */ + return NULL; + +} + + +static int +OSLookup(const unsigned int iPos, + const int UNUSED(nPoints), + unsigned short int aProb[64], const int fGammon, const int fCompress, FILE * pfOutput, FILE * pfTmp) +{ + + unsigned int i, j; + unsigned char ac[128]; + + g_assert(pfOutput != stdin); + + if (fCompress) { + + long iOffset; + size_t nBytes; + unsigned int ioff, nz, ioffg = 0, nzg = 0; + unsigned short int us; + unsigned int index_entry_size = fGammon ? 8 : 6; + + /* find offsets and no. of non-zero elements */ + + if (fseek(pfOutput, 40 + iPos * index_entry_size, SEEK_SET) < 0) { + perror("output file"); + exit(-1); + } + + if (fread(ac, 1, index_entry_size, pfOutput) < index_entry_size) { + if (errno) + perror("output file"); + else + g_printerr(_("Error reading output file\n")); + exit(-1); + } + + iOffset = ((unsigned int) ac[0] | + (unsigned int) ac[1] << 8 | + (unsigned int) ac[2] << 16 | + (unsigned int) ac[3] << 24); + + nz = ac[4]; + ioff = ac[5]; + + if (fGammon) { + nzg = ac[6]; + ioffg = ac[7]; + } + + /* re-position at EOF */ + + if (fseek(pfOutput, 0L, SEEK_END) < 0) { + perror("output file"); + exit(-1); + } + + /* read distributions */ + + iOffset = 2 * iOffset; + + nBytes = 2 * (nz + nzg); + + if (fseek(pfTmp, iOffset, SEEK_SET) < 0) { + perror("fseek'ing temporary file"); + exit(-1); + } + + /* read data */ + + if (fread(ac, 1, nBytes, pfTmp) < nBytes) { + if (errno) + perror("reading temporary file"); + else + g_printerr(_("Error reading temporary file")); + exit(-1); + } + + memset(aProb, 0, 128); + + i = 0; + for (j = 0; j < nz; ++j, i += 2) { + us = (unsigned short) (ac[i] | ac[i + 1] << 8); + aProb[ioff + j] = us; + } + + /* if ( fGammon ) */ + for (j = 0; j < nzg; ++j, i += 2) { + us = (unsigned short) (ac[i] | ac[i + 1] << 8); + aProb[32 + ioffg + j] = us; + } + + /* re-position at EOF */ + + if (fseek(pfTmp, 0L, SEEK_END) < 0) { + perror("fseek'ing to EOF on temporary file"); + exit(-1); + } + + } else { + + /* look up position by seeking */ + + if (fseek(pfOutput, 40 + iPos * (fGammon ? 128 : 64), SEEK_SET) < 0) { + g_printerr(_("Error seeking in pfOutput\n")); + exit(-1); + } + + /* read distribution */ + + if (fread(ac, 1, fGammon ? 128U : 64U, pfOutput) < (fGammon ? 128U : 64U)) { + g_printerr(_("Error reading from pfOutput\n")); + exit(-1); + } + + /* save distribution */ + + i = 0; + for (j = 0; j < 32; ++j, i += 2) + aProb[j] = (unsigned short) (ac[i] | ac[i + 1] << 8); + + if (fGammon) + for (j = 0; j < 32; ++j, i += 2) + aProb[j + 32] = (unsigned short) (ac[i] | ac[i + 1] << 8); + + /* position cursor at end of file */ + + if (fseek(pfOutput, 0L, SEEK_END) < 0) { + g_printerr(_("Error seeking to end!\n")); + exit(-1); + } + + } + + ++cLookup; + + return 0; + +} + + +static void +CalcIndex(const unsigned short int aProb[32], unsigned int *piIdx, unsigned int *pnNonZero) +{ + + int i; + int j = 32; + + + /* find max non-zero element */ + + for (i = 31; i >= 0; --i) + if (aProb[i]) { + j = i; + break; + } + + /* find min non-zero element */ + + *piIdx = 0; + for (i = 0; i <= j; ++i) + if (aProb[i]) { + *piIdx = i; + break; + } + + + *pnNonZero = j - *piIdx + 1; + +} + + +static unsigned int +RollsOS(const unsigned short int aus[32]) +{ + + int i; + unsigned int j; + + for (j = 0, i = 1; i < 32; i++) + j += i * aus[i]; + + return j; + +} + +static void +BearOff(int nId, unsigned int nPoints, + unsigned short int aOutProb[64], + const int fGammon, xhash * ph, bearoffcontext * pbc, const int fCompress, FILE * pfOutput, FILE * pfTmp) +{ +#if !defined(G_DISABLE_ASSERT) + int iBest; +#endif + int iMode, j, anRoll[2], aProb[64] = { 0 }; + unsigned int i; + TanBoard anBoard, anBoardTemp; + movelist ml; + int k; + unsigned int us; + unsigned int usBest; + unsigned short int *pusj; + unsigned short int ausj[64]; + unsigned short int ausBest[32]; + + unsigned int usGammonBest; + unsigned short int ausGammonBest[32]; + unsigned int nBack; + + /* get board for given position */ + + PositionFromBearoff(anBoard[1], nId, nPoints, 15); + + /* initialise probabilities */ + + for (i = 0; i < 64; i++) + aOutProb[i] = 0; + + /* all chequers off is easy :-) */ + + if (!nId) { + aOutProb[0] = 0xFFFF; + aOutProb[32] = 0xFFFF; + return; + } + + /* initialise the remainder of the board */ + + for (i = nPoints; i < 25; i++) + anBoard[1][i] = 0; + + for (i = 0; i < 25; i++) + anBoard[0][i] = 0; + + nBack = 0; + for (i = 0, k = 0; i < nPoints; ++i) { + if (anBoard[1][i]) + nBack = i; + k += anBoard[1][i]; + } + + /* look for position in existing bearoff file */ + + if (pbc && nBack < pbc->nPoints) { + unsigned int nPosID = PositionBearoff(anBoard[1], + pbc->nPoints, pbc->nChequers); + BearoffDist(pbc, nPosID, NULL, NULL, NULL, aOutProb, aOutProb + 32); + return; + } + + if (k < 15) + aProb[32] = 0xFFFF * 36; + + for (anRoll[0] = 1; anRoll[0] <= 6; anRoll[0]++) + for (anRoll[1] = 1; anRoll[1] <= anRoll[0]; anRoll[1]++) { + GenerateMoves(&ml, (ConstTanBoard) anBoard, anRoll[0], anRoll[1], FALSE); + + usBest = 0xFFFFFFFF; +#if !defined(G_DISABLE_ASSERT) + iBest = -1; +#endif + usGammonBest = 0xFFFFFFFF; + + for (i = 0; i < ml.cMoves; i++) { + PositionFromKey(anBoardTemp, &ml.amMoves[i].key); + + j = PositionBearoff(anBoardTemp[1], nPoints, 15); + + g_assert(j >= 0); + g_assert(j < nId); + + + if (!j) { + + memset(pusj = ausj, 0, fGammon ? 128 : 64); + pusj[0] = 0xFFFF; + pusj[32] = 0xFFFF; + + } else if (!(pusj = XhashLookup(ph, j))) { + /* look up in file generated so far */ + pusj = ausj; + OSLookup(j, nPoints, pusj, fGammon, fCompress, pfOutput, pfTmp); + + XhashAdd(ph, j, pusj, fGammon ? 128 : 64); + } + + /* find best move to win */ + + if ((us = RollsOS(pusj)) < usBest) { +#if !defined(G_DISABLE_ASSERT) + iBest = j; +#endif + usBest = us; + memcpy(ausBest, pusj, 64); + } + + /* find best move to save gammon */ + + if (fGammon && ((us = RollsOS(pusj + 32)) < usGammonBest)) { + usGammonBest = us; + memcpy(ausGammonBest, pusj + 32, 64); + } + + } + + g_assert(iBest >= 0); + /* g_assert( iGammonBest >= 0 ); */ + + if (anRoll[0] == anRoll[1]) { + for (i = 0; i < 31; i++) { + aProb[i + 1] += ausBest[i]; + if (k == 15 && fGammon) + aProb[32 + i + 1] += ausGammonBest[i]; + } + } else { + for (i = 0; i < 31; i++) { + aProb[i + 1] += 2 * ausBest[i]; + if (k == 15 && fGammon) + aProb[32 + i + 1] += 2 * ausGammonBest[i]; + } + } + } + + for (i = 0, j = 0, iMode = 0; i < 32; i++) { + j += (aOutProb[i] = (unsigned short) ((aProb[i] + 18) / 36)); + if (aOutProb[i] > aOutProb[iMode]) + iMode = i; + } + + aOutProb[iMode] -= (unsigned short int) (j - 0xFFFF); + + /* gammon probs */ + + if (fGammon) { + for (i = 0, j = 0, iMode = 0; i < 32; i++) { + j += (aOutProb[32 + i] = (unsigned short) ((aProb[32 + i] + 18) / 36)); + if (aOutProb[32 + i] > aOutProb[32 + iMode]) + iMode = i; + } + + aOutProb[32 + iMode] -= (unsigned short int) (j - 0xFFFF); + } + +} + + +static void +WriteOS(const unsigned short int aus[32], const int fCompress, FILE * output) +{ + + unsigned int iIdx, nNonZero; + unsigned int j; + + if (fCompress) + CalcIndex(aus, &iIdx, &nNonZero); + else { + iIdx = 0; + nNonZero = 32; + } + + for (j = iIdx; j < iIdx + nNonZero; j++) { + putc(aus[j] & 0xFF, output); + putc(aus[j] >> 8, output); + } + +} + +static void +WriteIndex(unsigned int *pnpos, const unsigned short int aus[64], const int fGammon, FILE * output) +{ + + unsigned int iIdx, nNonZero; + + /* write offset */ + + putc(*pnpos & 0xFF, output); + putc((*pnpos >> 8) & 0xFF, output); + putc((*pnpos >> 16) & 0xFF, output); + putc((*pnpos >> 24) & 0xFF, output); + + /* write index and number of non-zero elements */ + + CalcIndex(aus, &iIdx, &nNonZero); + + putc(nNonZero & 0xFF, output); + putc(iIdx & 0xFF, output); + + *pnpos += nNonZero; + + /* gammon probs: write index and number of non-zero elements */ + + if (fGammon) { + CalcIndex(aus + 32, &iIdx, &nNonZero); + putc(nNonZero & 0xFF, output); + putc(iIdx & 0xFF, output); + *pnpos += nNonZero; + } +} + +static void +WriteFloat(const float r, FILE * output) +{ + + int j; + const unsigned char *pc; + + pc = (const unsigned char *) &r; + + for (j = 0; j < 4; ++j) + putc(*(pc++), output); + +} + + + +/* + * Generate one sided bearoff database + * + * ! fCompress: + * write database directly to stdout + * + * fCompress: + * write index directly to stdout + * and write actual db to tmp file + * the tmp file is concatenated to the index when + * the generation is done. + * + */ + + +static int +generate_os(const int nOS, const int fHeader, + const int fCompress, const int fGammon, const int nHashSize, bearoffcontext * pbc, FILE * output) +{ + + int i; + int n; + unsigned short int aus[64]; + xhash h; + FILE *pfTmp = NULL; + unsigned int npos; + char *tmpfile = NULL; + int fTTY = isatty(STDERR_FILENO); + + /* initialise xhash */ + + if (XhashCreate(&h, nHashSize / (fGammon ? 128 : 64))) { + g_printerr(_("Error creating xhash with %d elements\n"), nHashSize / (fGammon ? 128 : 64)); + exit(2); + } + + XhashStatus(&h); + + /* write header */ + + if (fHeader) { + char sz[41]; + sprintf(sz, "gnubg-OS-%02d-15-%1d-%1d-0xxxxxxxxxxxxxxxxxxx\n", nOS, fGammon, fCompress); + fputs(sz, output); + } + + if (fCompress) { + pfTmp = GetTemporaryFile(NULL, &tmpfile); + if (pfTmp == NULL) { + g_printerr(_("Error creating temporary file\n")); + exit(2); + } + } + + + /* loop trough bearoff positions */ + + n = Combination(nOS + 15, nOS); + npos = 0; + + + for (i = 0; i < n; ++i) { + + if (i) + BearOff(i, nOS, aus, fGammon, &h, pbc, fCompress, output, pfTmp); + else { + memset(aus, 0, 128); + aus[0] = 0xFFFF; + aus[32] = 0xFFFF; + } + if (!(i % 100) && fTTY) + g_printerr("%d/%d\r", i, n); + + WriteOS(aus, fCompress, fCompress ? pfTmp : output); + if (fGammon) + WriteOS(aus + 32, fCompress, fCompress ? pfTmp : output); + + XhashAdd(&h, i, aus, fGammon ? 128 : 64); + + if (fCompress) + WriteIndex(&npos, aus, fGammon, output); + + } + + if (fCompress) { + + char ac[256]; + size_t u; + /* write contents of pfTmp to output */ + + if (fseek(pfTmp, 0L, SEEK_SET) < 0) { + g_printerr(_("Error rewinding '%s'\n"), tmpfile); + exit(3); + } + + while (!feof(pfTmp) && (u = fread(ac, 1, sizeof(ac), pfTmp))) { + if (fwrite(ac, 1, u, output) != u) { + g_printerr(_("Error writing to '%s'\n"), tmpfile); + exit(3); + } + } + + if (ferror(pfTmp)) + exit(3); + + fclose(pfTmp); + + g_unlink(tmpfile); + g_free(tmpfile); + + } + putc('\n', stderr); + + XhashStatus(&h); + + XhashDestroy(&h); + + return 0; + +} + + +static void +NDBearoff(const int iPos, const unsigned int nPoints, float ar[4], xhash * ph, bearoffcontext * pbc) +{ + + int d0, d1; + movelist ml; + TanBoard anBoard, anBoardTemp; + int j, k; + unsigned int i; +#if !defined(G_DISABLE_ASSERT) + int iBest; + int iGammonBest; +#endif + float rBest; + float rMean; + float rVarSum, rGammonVarSum; + float *prj; + float arj[4] = { 0.0, 0.0, 0.0, 0.0 }; + float arBest[4] = { 0.0, 0.0, 0.0, 0.0 }; + float arGammonBest[4] = { 0.0, 0.0, 0.0, 0.0 }; + float rGammonBest; + + for (i = 0; i < 4; ++i) + ar[i] = 0.0f; + + if (!iPos) + return; + + PositionFromBearoff(anBoard[1], iPos, nPoints, 15); + + for (i = nPoints; i < 25; i++) + anBoard[1][i] = 0; + + /* + * look for position in existing bearoff file + */ + + if (pbc) { + int ii; + + for (ii = 24; ii >= 0 && !anBoard[1][ii]; --ii); + + if (ii < (int) pbc->nPoints) { + unsigned int nPosID = PositionBearoff(anBoard[1], + pbc->nPoints, pbc->nChequers); + BearoffDist(pbc, nPosID, NULL, NULL, ar, NULL, NULL); + return; + } + + } + + memset(anBoard[0], 0, 25 * sizeof(int)); + + for (i = 0, k = 0; i < nPoints; ++i) + k += anBoard[1][i]; + + /* loop over rolls */ + + rVarSum = rGammonVarSum = 0.0f; + + for (d0 = 1; d0 <= 6; ++d0) + for (d1 = 1; d1 <= d0; ++d1) { + + GenerateMoves(&ml, (ConstTanBoard) anBoard, d0, d1, FALSE); + + rBest = 1e10; + rGammonBest = 1e10; +#if !defined(G_DISABLE_ASSERT) + iBest = -1; + iGammonBest = -1; +#endif + + for (i = 0; i < ml.cMoves; ++i) { + + PositionFromKey(anBoardTemp, &ml.amMoves[i].key); + + j = PositionBearoff(anBoardTemp[1], nPoints, 15); + + if (!(prj = XhashLookup(ph, j))) { + prj = arj; + NDBearoff(j, nPoints, prj, ph, pbc); + XhashAdd(ph, j, prj, 16); + } + + /* find best move to win */ + + if (prj[0] < rBest) { +#if !defined(G_DISABLE_ASSERT) + iBest = j; +#endif + rBest = prj[0]; + memcpy(arBest, prj, 4 * sizeof(float)); + } + + /* find best move to save gammon */ + + if (prj[2] < rGammonBest) { +#if !defined(G_DISABLE_ASSERT) + iGammonBest = j; +#endif + rGammonBest = prj[2]; + memcpy(arGammonBest, prj, 4 * sizeof(float)); + } + + } + + g_assert(iBest >= 0); + g_assert(iGammonBest >= 0); + + rMean = 1.0f + arBest[0]; + + ar[0] += (d0 == d1) ? rMean : 2.0f * rMean; + + rMean = arBest[1] * arBest[1] + rMean * rMean; + + rVarSum += (d0 == d1) ? rMean : 2.0f * rMean; + + if (k == 15) { + + rMean = 1.0f + arGammonBest[2]; + + ar[2] += (d0 == d1) ? rMean : 2.0f * rMean; + + rMean = arGammonBest[3] * arGammonBest[3] + rMean * rMean; + + rGammonVarSum += (d0 == d1) ? rMean : 2.0f * rMean; + + } + + } + + ar[0] /= 36.0f; + ar[1] = sqrtf(rVarSum / 36.0f - ar[0] * ar[0]); + + ar[2] /= 36.0f; + ar[3] = sqrtf(rGammonVarSum / 36.0f - ar[2] * ar[2]); + +} + + +static void +generate_nd(const int nPoints, const int nHashSize, const int fHeader, bearoffcontext * pbc, FILE * outfile) +{ + + int n = Combination(nPoints + 15, nPoints); + + int i, j; + float ar[4]; + int fTTY = isatty(STDERR_FILENO); + + xhash h; + + /* initialise xhash */ + + + if (XhashCreate(&h, (int) (nHashSize / (4 * sizeof(float))))) { + g_printerr(_("Error creating cache\n")); + return; + } + + XhashStatus(&h); + + if (fHeader) { + char sz[41]; + + sprintf(sz, "gnubg-OS-%02d-15-1-0-1xxxxxxxxxxxxxxxxxxx\n", nPoints); + fputs(sz, outfile); + } + + + for (i = 0; i < n; ++i) { + + if (i) + NDBearoff(i, nPoints, ar, &h, pbc); + else + ar[0] = ar[1] = ar[2] = ar[3] = 0.0f; + + for (j = 0; j < 4; ++j) + WriteFloat(ar[j], outfile); + + XhashAdd(&h, i, ar, 16); + if (!(i % 100) && fTTY) + g_printerr("%d/%d\r", i, n); + + } + putc('\n', stderr); + XhashStatus(&h); + + XhashDestroy(&h); + +} + + +static short int +CubeEquity(const short int siND, const short int siDT, const short int siDP) +{ + + if (2 * siDT >= siND && siDP >= siND) { + /* it's a double */ + + if (2 * siDT >= siDP) + /* double, pass */ + return siDP; + else + /* double, take */ + return (short int) (2 * siDT); + + } else + /* no double */ + + return siND; + +} + +static int +CalcPosition(const int i, const int j, const int n) +{ + + int k; + + if (i + j < n) + k = (i + j) * (i + j + 1) / 2 + j; + else + k = n * n - CalcPosition(n - 1 - i, n - 1 - j, n - 1) - 1; + +#if 0 + if (n == 6) { + g_printerr("%2d ", k); + if (j == n - 1) + g_printerr("\n"); + } +#endif + + return k; + +} + + + +static void +TSLookup(const int nUs, const int nThem, + const int UNUSED(nTSP), const int UNUSED(nTSC), + short int arEquity[4], const int n, const int fCubeful, FILE * pfTmp) +{ + + int iPos = CalcPosition(nUs, nThem, n); + unsigned char ac[8]; + int i; + + /* seek to position */ + + if (fseek(pfTmp, iPos * (fCubeful ? 8 : 2), SEEK_SET) < 0) { + perror("temporary file"); + exit(-1); + } + + if (fread(ac, 1, 8, pfTmp) < 8) { + if (errno) + perror("temporary file"); + else + g_printerr(_("Error reading temporary file\n")); + exit(-1); + } + + /* re-position at EOF */ + + if (fseek(pfTmp, 0L, SEEK_END) < 0) { + perror("temporary file"); + exit(-1); + } + + for (i = 0; i < (fCubeful ? 4 : 1); ++i) + arEquity[i] = (unsigned short) ((ac[2 * i] | ac[2 * i + 1] << 8) - 0x8000); + + ++cLookup; + +} + + +/* + * Calculate exact equity for position. + * + * We store the equity in two bytes: + * 0x0000 meaning equity=-1 and 0xFFFF meaning equity=+1. + * + */ + + +static void +BearOff2(int nUs, int nThem, + const int nTSP, const int nTSC, + short int asiEquity[4], const int n, const int fCubeful, xhash * ph, bearoffcontext * pbc, FILE * pfTmp) +{ + + int j, anRoll[2]; + unsigned int i; + TanBoard anBoard, anBoardTemp; + movelist ml; +#if !defined(G_DISABLE_ASSERT) + int aiBest[4]; +#endif + int asiBest[4]; + int aiTotal[4]; + short int k; + short int *psij; + short int asij[4]; + const short int EQUITY_P1 = 0x7FFF; + const short int EQUITY_M1 = ~EQUITY_P1; + + if (!nUs) { + + /* we have won */ + asiEquity[0] = asiEquity[1] = asiEquity[2] = asiEquity[3] = EQUITY_P1; + return; + + } + + if (!nThem) { + + /* we have lost */ + asiEquity[0] = asiEquity[1] = asiEquity[2] = asiEquity[3] = EQUITY_M1; + return; + + } + + PositionFromBearoff(anBoard[0], nThem, nTSP, nTSC); + PositionFromBearoff(anBoard[1], nUs, nTSP, nTSC); + + for (i = nTSP; i < 25; i++) + anBoard[1][i] = anBoard[0][i] = 0; + + /* look for position in bearoff file */ + + if (pbc && isBearoff(pbc, (ConstTanBoard) anBoard)) { + unsigned short int nUsL = (unsigned short) PositionBearoff(anBoard[1], pbc->nPoints, pbc->nChequers); + unsigned short int nThemL = (unsigned short) PositionBearoff(anBoard[0], pbc->nPoints, pbc->nChequers); + int nL = Combination(pbc->nPoints + pbc->nChequers, pbc->nPoints); + unsigned int iPos = nUsL * nL + nThemL; + unsigned short int aus[4]; + + BearoffCubeful(pbc, iPos, NULL, aus); + + for (i = 0; i < 4; ++i) + asiEquity[i] = (short int) (aus[i] - 0x8000); + + return; + } + + aiTotal[0] = aiTotal[1] = aiTotal[2] = aiTotal[3] = 0; + + for (anRoll[0] = 1; anRoll[0] <= 6; anRoll[0]++) + for (anRoll[1] = 1; anRoll[1] <= anRoll[0]; anRoll[1]++) { + GenerateMoves(&ml, (ConstTanBoard) anBoard, anRoll[0], anRoll[1], FALSE); + + asiBest[0] = asiBest[1] = asiBest[2] = asiBest[3] = -0xFFFF; +#if !defined(G_DISABLE_ASSERT) + aiBest[0] = aiBest[1] = aiBest[2] = aiBest[3] = -1; +#endif + + for (i = 0; i < ml.cMoves; i++) { + PositionFromKey(anBoardTemp, &ml.amMoves[i].key); + + j = PositionBearoff(anBoardTemp[1], nTSP, nTSC); + + g_assert(j >= 0); + g_assert(j < nUs); + + if (!nThem) { + asij[0] = asij[1] = asij[2] = asij[3] = EQUITY_P1; + } else if (!j) { + asij[0] = asij[1] = asij[2] = asij[3] = EQUITY_M1; + } + if (!(psij = XhashLookup(ph, n * nThem + j))) { + /* lookup in file */ + psij = asij; + TSLookup(nThem, j, nTSP, nTSC, psij, n, fCubeful, pfTmp); + XhashAdd(ph, n * nThem + j, psij, fCubeful ? 8 : 2); + } + + /* cubeless */ + + if (psij[0] < -asiBest[0]) { +#if !defined(G_DISABLE_ASSERT) + aiBest[0] = j; +#endif + asiBest[0] = ~psij[0]; + } + + if (fCubeful) { + + /* I own cube: + * from opponent's view he doesn't own cube */ + + if (psij[3] < -asiBest[1]) { +#if !defined(G_DISABLE_ASSERT) + aiBest[1] = j; +#endif + asiBest[1] = ~psij[3]; + } + + /* Centered cube (so centered for opponent too) */ + + k = CubeEquity(psij[2], psij[3], EQUITY_P1); + if (~k > asiBest[2]) { +#if !defined(G_DISABLE_ASSERT) + aiBest[2] = j; +#endif + asiBest[2] = ~k; + } + + /* Opponent owns cube: + * from opponent's view he owns cube */ + + k = CubeEquity(psij[1], psij[3], EQUITY_P1); + if (~k > asiBest[3]) { +#if !defined(G_DISABLE_ASSERT) + aiBest[3] = j; +#endif + asiBest[3] = ~k; + } + + } + + } + + g_assert(aiBest[0] >= 0); + g_assert(!fCubeful || aiBest[1] >= 0); + g_assert(!fCubeful || aiBest[2] >= 0); + g_assert(!fCubeful || aiBest[3] >= 0); + + if (anRoll[0] == anRoll[1]) + for (k = 0; k < (fCubeful ? 4 : 1); ++k) + aiTotal[k] += asiBest[k]; + else + for (k = 0; k < (fCubeful ? 4 : 1); ++k) + aiTotal[k] += 2 * asiBest[k]; + + } + + /* final equities */ + for (k = 0; k < (fCubeful ? 4 : 1); ++k) + asiEquity[k] = (short) (aiTotal[k] / 36); + +} + + + +static void +WriteEquity(FILE * pf, const short int si) +{ + + unsigned short int us = (unsigned short int) (si + 0x8000); + + putc(us & 0xFF, pf); + putc((us >> 8) & 0xFF, pf); + +} + +static void +generate_ts(const int nTSP, const int nTSC, + const int fHeader, const int fCubeful, const int nHashSize, bearoffcontext * pbc, FILE * output) +{ + + int i, j, k; + int iPos; + int n; + short int asiEquity[4]; + xhash h; + FILE *pfTmp; + unsigned char ac[8]; + char *tmpfile; + int fTTY = isatty(STDERR_FILENO); + + pfTmp = GetTemporaryFile(NULL, &tmpfile); + if (pfTmp == NULL) { + g_printerr(_("Error creating temporary file\n")); + exit(2); + } + + /* initialise xhash */ + + if (XhashCreate(&h, nHashSize / (fCubeful ? 8 : 2))) { + g_printerr(_("Error creating xhash with %d elements\n"), nHashSize / (fCubeful ? 8 : 2)); + exit(2); + } + + XhashStatus(&h); + + /* write header information */ + + if (fHeader) { + char sz[41]; + sprintf(sz, "gnubg-TS-%02d-%02d-%1dxxxxxxxxxxxxxxxxxxxxxxx\n", nTSP, nTSC, fCubeful); + fputs(sz, output); + } + + + /* generate bearoff database */ + + n = Combination(nTSP + nTSC, nTSC); + iPos = 0; + + + /* positions above diagonal */ + + for (i = 0; i < n; i++) { + for (j = 0; j <= i; j++, ++iPos) { + + BearOff2(i - j, j, nTSP, nTSC, asiEquity, n, fCubeful, &h, pbc, pfTmp); + + for (k = 0; k < (fCubeful ? 4 : 1); ++k) + WriteEquity(pfTmp, asiEquity[k]); + + XhashAdd(&h, (i - j) * n + j, asiEquity, fCubeful ? 8 : 2); + + } + if (fTTY) + g_printerr("%d/%d\r", iPos, n * n); + } + + /* positions below diagonal */ + + for (i = 0; i < n; i++) { + for (j = i + 1; j < n; j++, ++iPos) { + + BearOff2(i + n - j, j, nTSP, nTSC, asiEquity, n, fCubeful, &h, pbc, pfTmp); + + for (k = 0; k < (fCubeful ? 4 : 1); ++k) + WriteEquity(pfTmp, asiEquity[k]); + + XhashAdd(&h, (i + n - j) * n + j, asiEquity, fCubeful ? 8 : 2); + + } + if (fTTY) + g_printerr("%d/%d\r", iPos, n * n); + } + + putc('\n', stderr); + XhashStatus(&h); + + XhashDestroy(&h); + + /* sort file from ordering: + * + * 136 123 + * 258 to 456 + * 479 789 + * + */ + + for (i = 0; i < n; ++i) { + for (j = 0; j < n; ++j) { + unsigned int count = fCubeful ? 8 : 2; + + k = CalcPosition(i, j, n); + + fseek(pfTmp, count * k, SEEK_SET); + if (fread(ac, 1, count, pfTmp) != count || fwrite(ac, 1, count, output) != count) { + g_printerr(_("failed to read from or write to database file\n")); + exit(3); + } + } + + } + + fclose(pfTmp); + + g_unlink(tmpfile); + g_free(tmpfile); + +} + + +extern int +main(int argc, char **argv) +{ + /* static storage for options to keep picky compiler happy */ + static int nOS = 0; + static int fHeader = TRUE; + static int fCompress = TRUE; + static int fGammon = TRUE; + static int nHashSize = 100000000; + static int fCubeful = TRUE; + static char *szOldBearoff = NULL; + static int fND = FALSE; + static char *szOutput = NULL; + static char *szTwoSided = NULL; + + bearoffcontext *pbc = NULL; + FILE *outfile; + double r; + int nTSP = 0, nTSC = 0; + + GOptionEntry ao[] = { + {"two-sided", 't', 0, G_OPTION_ARG_STRING, &szTwoSided, + N_("Number of points (P) and number of chequers (C) for two-sided database"), "PxC"}, + {"one-sided", 'o', 0, G_OPTION_ARG_INT, &nOS, + N_("Number of points (P) for one-sided database"), "P"}, + {"xhash-size", 's', 0, G_OPTION_ARG_INT, &nHashSize, + N_("Use cache of size N bytes"), "N"}, + {"old-bearoff", 'O', 0, G_OPTION_ARG_STRING, &szOldBearoff, + N_("Reuse already generated bearoff database \"filename\""), "filename"}, + {"no-header", 'H', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &fHeader, + N_("Do not write header"), NULL}, + {"no-cubeful", 'C', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &fCubeful, + N_("Do not calculate cubeful equities for two-sided databases"), NULL}, + {"no-compress", 'c', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &fCompress, + N_("Do not use compression scheme for one-sided databases"), NULL}, + {"no-gammon", 'g', G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE, &fGammon, + N_("Do not include gammon distribution for one-sided databases"), NULL}, + {"normal-dist", 'n', 0, G_OPTION_ARG_NONE, &fND, + N_("Approximate one-sided bearoff database with normal distributions"), NULL}, + {"outfile", 'f', 0, G_OPTION_ARG_STRING, &szOutput, + N_("Required output filename"), "filename"}, + {NULL, 0, 0, (GOptionArg) 0, NULL, NULL, NULL} + }; + + GError *error = NULL; + GOptionContext *context; + + /* i18n */ + + MT_InitThreads(); + setlocale(LC_ALL, ""); + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + + g_set_printerr_handler(print_utf8_to_locale); + + context = g_option_context_new(NULL); + g_option_context_add_main_entries(context, ao, PACKAGE); + g_option_context_parse(context, &argc, &argv, &error); + g_option_context_free(context); + if (error) { + g_printerr("%s\n", error->message); + exit(EXIT_FAILURE); + } + + if (szTwoSided) + sscanf(szTwoSided, "%2dx%2d", &nTSP, &nTSC); + + if (!szOutput) { + g_printerr(_("Required argument -f missing\n")); + exit(EXIT_FAILURE); + } + + if (!(outfile = g_fopen(szOutput, "w+b"))) { + perror(szOutput); + return EXIT_FAILURE; + } + + /* one sided database */ + + if (nOS) { + + if (nOS > 13) { + g_printerr(_("Size of one-sided bearoff database should be at most 13 points\n")); + exit(2); + } + g_printerr("%-37s\n", _("One-sided database")); + g_printerr("%-37s: %12d\n", _("Number of points"), nOS); + g_printerr("%-37s: %12d\n", _("Number of chequers"), 15); + g_printerr("%-37s: %12u\n", _("Number of positions"), Combination(nOS + 15, nOS)); + g_printerr("%-37s: %12s\n", _("Approximate by normal distribution"), fND ? _("yes") : _("no")); + g_printerr("%-37s: %12s\n", _("Include gammon distributions"), fGammon ? _("yes") : _("no")); + g_printerr("%-37s: %12s\n", _("Use compression scheme"), fCompress ? _("yes") : _("no")); + g_printerr("%-37s: %12s\n", _("Write header"), fHeader ? _("yes") : _("no")); + g_printerr("%-37s: %12d\n", _("Size of cache"), nHashSize); + g_printerr("%-37s: %12s %s\n", _("Reuse old bearoff database"), szOldBearoff ? _("yes") : _("no"), + szOldBearoff ? szOldBearoff : ""); + + if (fND) { + r = Combination(nOS + 15, nOS) * 16.0; + g_printerr("%-37s: %.0f (%.1f MB)\n", _("Size of database"), r, r / 1048576.0); + } else { + r = (float) Combination(nOS + 15, nOS) * (fGammon ? 128.0f : 64.0f); + g_printerr("%-37s: %.0f (%.1f MB)\n", _("Size of database (uncompressed)"), r, r / 1048576.0); + if (fCompress) { + r = (float) Combination(nOS + 15, nOS) * (fGammon ? 32.0f : 16.0f); + g_printerr("%-37s: %.0f (%.1f MB)\n", _("Estimated size of compressed db"), r, r / 1048576.0); + } + } + + if (szOldBearoff && !(pbc = BearoffInit(szOldBearoff, BO_NONE, NULL))) { + g_printerr(_("Error initialising old bearoff database!\n")); + exit(2); + } + + /* bearoff database must be of the same kind as the request one-sided + * database */ + + if (pbc && (pbc->bt != BEAROFF_ONESIDED || pbc->fND != fND || pbc->fGammon < fGammon)) { + g_printerr(_("The old database is not of the same kind as the" " requested database\n")); + exit(2); + } + + if (fND) { + generate_nd(nOS, nHashSize, fHeader, pbc, outfile); + } else { + generate_os(nOS, fHeader, fCompress, fGammon, nHashSize, pbc, outfile); + } + + BearoffClose(pbc); + + g_printerr(_("Number of re-reads while generating: %ld\n"), cLookup); + } + + /* + * Two-sided database + */ + + if (nTSC && nTSP) { + + int n = Combination(nTSP + nTSC, nTSC); + + if (nTSC > 11) { + g_printerr(_("Size of two-sided bearoff database must be at most 11 chequers\n")); + exit(2); + } + + r = n; + r = r * r * (fCubeful ? 8.0 : 2.0); + g_printerr("%-37s\n", _("Two-sided database:\n")); + g_printerr("%-37s: %12d\n", _("Number of points"), nTSP); + g_printerr("%-37s: %12d\n", _("Number of chequers"), nTSC); + g_printerr("%-37s: %12s\n", _("Calculate equities"), + fCubeful ? _("cubeless and cubeful") : _("cubeless only")); + g_printerr("%-37s: %12s\n", _("Write header"), fHeader ? _("yes") : _("no")); + g_printerr("%-37s: %12d\n", _("Number of one-sided positions"), n); + g_printerr("%-37s: %12d\n", _("Total number of positions"), n * n); + g_printerr("%-37s: %.0f %s (%.1f MB)\n", _("Size of resulting file"), r, _("bytes"), r / 1048576.0); + g_printerr("%-37s: %12d\n", _("Size of xhash"), nHashSize); + g_printerr("%-37s: %12s %s\n", _("Reuse old bearoff database"), szOldBearoff ? _("yes") : _("no"), + szOldBearoff ? szOldBearoff : ""); + /* initialise old bearoff database */ + if (szOldBearoff && !(pbc = BearoffInit(szOldBearoff, BO_NONE, NULL))) { + g_printerr(_("Error initialising old bearoff database!\n")); + exit(2); + } + + /* bearoff database must be of the same kind as the request one-sided + * database */ + + if (pbc && (pbc->bt != BEAROFF_TWOSIDED || pbc->fCubeful != fCubeful)) { + g_printerr(_("The old database is not of the same kind as the" " requested database\n")); + exit(2); + } + + generate_ts(nTSP, nTSC, fHeader, fCubeful, nHashSize, pbc, outfile); + + /* close old bearoff database */ + + BearoffClose(pbc); + + g_printerr(_("Number of re-reads while generating: %ld\n"), cLookup); + + } + + fclose(outfile); + return 0; + +} diff --git a/engine/gnubg/makeweights.c b/engine/gnubg/makeweights.c new file mode 100644 index 0000000..69b4363 --- /dev/null +++ b/engine/gnubg/makeweights.c @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2000-2001 Gary Wong + * Copyright (C) 2002-2019 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: makeweights.c,v 1.31 2022/02/02 22:04:12 plm Exp $ + */ + +#include "config.h" + +#include +#include +#include +#include +#include + +#include "eval.h" /* for WEIGHTS_VERSION */ +#include "output.h" + +static void +usage(char *prog) +{ + g_printerr(_("Usage: %s [[-f] outputfile [inputfile]]\n" + " outputfile: Output to file instead of stdout\n" + " inputfile: Input from file instead of stdin\n"), prog); + exit(1); +} + +extern int +main(int argc, /*lint -e{818} */ char *argv[]) +{ + neuralnet nn; + char szFileVersion[16]; + static float ar[2] = { WEIGHTS_MAGIC_BINARY, WEIGHTS_VERSION_BINARY }; + int c; + FILE *in = stdin, *out = stdout; + + if (!setlocale(LC_ALL, "C") || !bindtextdomain(PACKAGE, LOCALEDIR) || !textdomain(PACKAGE)) { + perror("setting locale failed"); + exit(1); + } + + g_set_printerr_handler(print_utf8_to_locale); + + if (argc > 1) { + int arg = 1; + if (!StrCaseCmp(argv[1], "-f")) + arg++; /* Skip */ + + if (argc > arg + 2) + usage(argv[0]); + if ((out = g_fopen(argv[arg], "wb")) == 0) { + g_printerr(_("Can't open output file")); + exit(1); + } + if (argc == arg + 2) { + if ((in = g_fopen(argv[arg + 1], "r")) == 0) { + g_printerr(_("Can't open input file")); + exit(1); + } + } + } + + /* generate weights */ + + if (fscanf(in, "GNU Backgammon %15s\n", szFileVersion) != 1) { + g_printerr(_("%s: invalid weights file\n"), argv[0]); + fclose(in); + fclose(out); + return EXIT_FAILURE; + } + + if (StrCaseCmp(szFileVersion, WEIGHTS_VERSION)) { + g_printerr(_("%s: incorrect weights version\n" + "(version %s is required, " + "but these weights are %s)\n"), argv[0], WEIGHTS_VERSION, szFileVersion); + fclose(in); + fclose(out); + return EXIT_FAILURE; + } + + if (fwrite(ar, sizeof(ar[0]), 2, out) != 2) { + g_printerr(_("Failed to write neural net!")); + fclose(in); + fclose(out); + return EXIT_FAILURE; + } + + for (c = 0; !feof(in); c++) { + if (NeuralNetLoad(&nn, in) == -1) { + g_printerr(_("Failed to load neural net!")); + fclose(in); + fclose(out); + return EXIT_FAILURE; + } + if (NeuralNetSaveBinary(&nn, out) == -1) { + g_printerr(_("Failed to save neural net!")); + fclose(in); + fclose(out); + return EXIT_FAILURE; + } + NeuralNetDestroy(&nn); + } + + g_printerr(_("%d nets converted\n"), c); + + fclose(in); + fclose(out); + + return EXIT_SUCCESS; + +} diff --git a/engine/gnubg/matchequity.c b/engine/gnubg/matchequity.c new file mode 100644 index 0000000..d288525 --- /dev/null +++ b/engine/gnubg/matchequity.c @@ -0,0 +1,1851 @@ +/* + * Copyright (C) 1999-2004 Joern Thyssen + * Copyright (C) 2000-2016 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include + +#include "list.h" +#include "mec.h" +#include "util.h" + +#define GAMMONRATE 0.25 + +#include "eval.h" +#include "matchequity.h" +#include "backgammon.h" + + +typedef struct { + char *szName; + float value; +} parameter; + + +typedef struct { + char *szName; + listOLD lParameters; +} metparameters; + +typedef struct { + + /* Data saved */ + + /* Pre crawford MET */ + + float aarMET[MAXSCORE][MAXSCORE]; + metparameters mpPreCrawford; + + /* post-crawford MET */ + + float aarMETPostCrawford[2][MAXSCORE]; + metparameters ampPostCrawford[2]; + + /* MET info */ + + metinfo mi; + +} metdata; + +/* + * A1 (A2) is the match equity of player 1 (2) + * Btilde is the post-crawford match equities. + */ + +float aafMET[MAXSCORE][MAXSCORE]; +float aafMETPostCrawford[2][MAXSCORE]; + +/* gammon prices (calculated once for efficiency) */ + +float aaaafGammonPrices[MAXCUBELEVEL] + [MAXSCORE][MAXSCORE][4]; +float aaaafGammonPricesPostCrawford[MAXCUBELEVEL] + [MAXSCORE][2][4]; + + +metinfo miCurrent; + + +/* + * Calculate area under normal distribution curve (with mean rMu and + * std.dev rSigma) from rMax to rMin. + * + * Input: + * rMin, rMax: upper and lower integral limits + * rMu, rSigma: normal distribution parameters. + * + * Returns: + * area + * + */ + +static float +NormalDistArea(float rMin, float rMax, float rMu, float rSigma) +{ + float rtMin, rtMax; + float rInt1, rInt2; + + rtMin = (rMin - rMu) / rSigma; + rtMax = (rMax - rMu) / rSigma; + + rInt1 = (erff(rtMin / sqrtf(2)) + 1.0f) / 2.0f; + rInt2 = (erff(rtMax / sqrtf(2)) + 1.0f) / 2.0f; + + return rInt2 - rInt1; +} + + + +static int +GetCubePrimeValue(int i, int j, int nCubeValue) +{ + + if ((i < 2 * nCubeValue) && (j >= 2 * nCubeValue)) + + /* automatic double */ + + return 2 * nCubeValue; + else + return nCubeValue; + +} + + +/* + * Calculate post-Crawford match equity table + * + * Formula taken from Zadeh, Management Science 23, 986 (1977) + * + * Input: + * rG: gammon rate for trailer + * rFD2: value of free drop at 1-away, 2-away + * rFD4: value of free drop at 1-away, 4-away + * iStart: score where met starts, e.g. + * iStart = 0 : 1-away, 1-away + * iStart = 15: 1-away, 16-away + * + * + * Output: + * afMETPostCrawford: post-Crawford match equity table + * + */ + +static void +initPostCrawfordMET(float afMETPostCrawford[MAXSCORE], + const int iStart, const float rG, const float rFD2, const float rFD4) +{ + + int i; + + /* + * Calculate post-crawford match equities + */ + + for (i = iStart; i < MAXSCORE; i++) { + + afMETPostCrawford[i] = rG * 0.5f * ((i - 4 >= 0) ? afMETPostCrawford[i - 4] : 1.0f) + + (1.0f - rG) * 0.5f * ((i - 2 >= 0) ? afMETPostCrawford[i - 2] : 1.0f); + + /*"insane post crawford equity" */ + g_assert(afMETPostCrawford[i] >= 0.0f && afMETPostCrawford[i] <= 1.0f); + /* + * add 1.5% at 1-away, 2-away for the free drop + * add 0.4% at 1-away, 4-away for the free drop + */ + + if (i == 1) + afMETPostCrawford[i] -= rFD2; + /*"insane post crawford equity(1)" */ + g_assert(afMETPostCrawford[i] >= 0.0f && afMETPostCrawford[i] <= 1.0f); + + if (i == 3) + afMETPostCrawford[i] -= rFD4; + /*"insane post crawford equity(2)" */ + g_assert(afMETPostCrawford[i] >= 0.0f && afMETPostCrawford[i] <= 1.0f); + + } + + +} + + +/* + * Calculate match equity table from Zadeh's formula published + * in Management Science 23, 986 (1977) + * + * Input: + * rG1: gammon rate for leader of match + * rG2: gammon rate for trailer of match + * rDelta, rDeltaBar: parameters in the Zadeh model + * (something to do with cube efficiencies) + * rG3: post-Crawford gammon rate for trailer of match + * afMETPostCrawford: post-Crawford match equity table + * + * Output: + * aafMET: match equity table + * + */ + +static void +initMETZadeh(float aafMET[MAXSCORE][MAXSCORE], + const float afMETPostCrawford[MAXSCORE], + const float rG1, const float rG2, const float rDelta, const float rDeltaBar) +{ + + int i, j, k; + int nCube; + int nCubeValue, nCubePrimeValue; + + /* + * D1bar (D2bar) is the equity of player 1 (2) at the drop point + * of player 2 (1) assuming dead cubes. + * D1 (D2) is the equity of player 1 (2) at the drop point + * of player 2 (1) assuming semiefficient recubes. + */ + + float aaafD1[MAXSCORE][MAXSCORE][MAXCUBELEVEL]; + float aaafD2[MAXSCORE][MAXSCORE][MAXCUBELEVEL]; + float aaafD1bar[MAXSCORE][MAXSCORE][MAXCUBELEVEL]; + float aaafD2bar[MAXSCORE][MAXSCORE][MAXCUBELEVEL]; + + + /* + * Calculate 1-away,n-away match equities + */ + + for (i = 0; i < MAXSCORE; i++) { + + aafMET[i][0] = rG1 * 0.5f * ((i - 2 >= 0) ? afMETPostCrawford[i - 2] : 1.0f) + + (1.0f - rG1) * 0.5f * ((i - 1 >= 0) ? afMETPostCrawford[i - 1] : 1.0f); + aafMET[0][i] = 1.0f - aafMET[i][0]; + + } + + for (i = 0; i < MAXSCORE; i++) { + + for (j = 0; j <= i; j++) { + + for (nCube = MAXCUBELEVEL - 1; nCube >= 0; nCube--) { + + nCubeValue = 1; + for (k = 0; k < nCube; k++) + nCubeValue *= 2; + + /* Calculate D1bar */ + + nCubePrimeValue = GetCubePrimeValue(i, j, nCubeValue); + + aaafD1bar[i][j][nCube] = (GET_MET(i - nCubeValue, j, aafMET) + - rG2 * GET_MET(i, j - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(i, j - 2 * nCubePrimeValue, aafMET)) + / (rG1 * GET_MET(i - 4 * nCubePrimeValue, j, aafMET) + + (1.0f - rG1) * GET_MET(i - 2 * nCubePrimeValue, j, aafMET) + - rG2 * GET_MET(i, j - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(i, j - 2 * nCubePrimeValue, aafMET)); + + + + if (i != j) { + + nCubePrimeValue = GetCubePrimeValue(j, i, nCubeValue); + + aaafD1bar[j][i][nCube] = (GET_MET(j - nCubeValue, i, aafMET) + - rG2 * GET_MET(j, i - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(j, i - 2 * nCubePrimeValue, aafMET)) + / (rG1 * GET_MET(j - 4 * nCubePrimeValue, i, aafMET) + + (1.0f - rG1) * GET_MET(j - 2 * nCubePrimeValue, i, aafMET) + - rG2 * GET_MET(j, i - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(j, i - 2 * nCubePrimeValue, aafMET)); + + + + } + + /* Calculate D2bar */ + + nCubePrimeValue = GetCubePrimeValue(j, i, nCubeValue); + + aaafD2bar[i][j][nCube] = (GET_MET(j - nCubeValue, i, aafMET) + - rG2 * GET_MET(j, i - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(j, i - 2 * nCubePrimeValue, aafMET)) + / (rG1 * GET_MET(j - 4 * nCubePrimeValue, i, aafMET) + + (1.0f - rG1) * GET_MET(j - 2 * nCubePrimeValue, i, aafMET) + - rG2 * GET_MET(j, i - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(j, i - 2 * nCubePrimeValue, aafMET)); + + + if (i != j) { + + nCubePrimeValue = GetCubePrimeValue(i, j, nCubeValue); + + aaafD2bar[j][i][nCube] = (GET_MET(i - nCubeValue, j, aafMET) + - rG2 * GET_MET(i, j - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(i, j - 2 * nCubePrimeValue, aafMET)) + / (rG1 * GET_MET(i - 4 * nCubePrimeValue, j, aafMET) + + (1.0f - rG1) * GET_MET(i - 2 * nCubePrimeValue, j, aafMET) + - rG2 * GET_MET(i, j - 4 * nCubePrimeValue, aafMET) + - (1.0f - rG2) * GET_MET(i, j - 2 * nCubePrimeValue, aafMET)); + + + + } + + /* Calculate D1 */ + + if ((i < 2 * nCubeValue) || (j < 2 * nCubeValue)) { + + aaafD1[i][j][nCube] = aaafD1bar[i][j][nCube]; + if (i != j) + aaafD1[j][i][nCube] = aaafD1bar[j][i][nCube]; + + } else { + + aaafD1[i][j][nCube] = 1.0f + (aaafD2[i][j][nCube + 1] + rDelta) + * (aaafD1bar[i][j][nCube] - 1.0f); + if (i != j) + aaafD1[j][i][nCube] = 1.0f + (aaafD2[j][i][nCube + 1] + rDelta) + * (aaafD1bar[j][i][nCube] - 1.0f); + + } + + + /* Calculate D2 */ + + if ((i < 2 * nCubeValue) || (j < 2 * nCubeValue)) { + + aaafD2[i][j][nCube] = aaafD2bar[i][j][nCube]; + if (i != j) + aaafD2[j][i][nCube] = aaafD2bar[j][i][nCube]; + + } else { + + aaafD2[i][j][nCube] = 1.0f + (aaafD1[i][j][nCube + 1] + rDelta) + * (aaafD2bar[i][j][nCube] - 1.0f); + + if (i != j) + aaafD2[j][i][nCube] = 1.0f + (aaafD1[j][i][nCube + 1] + rDelta) + * (aaafD2bar[j][i][nCube] - 1.0f); + } + + + /* Calculate A1 & A2 */ + + if ((nCube == 0) && (i > 0) && (j > 0)) { + + aafMET[i][j] = ((aaafD2[i][j][0] + rDeltaBar - 0.5f) + * GET_MET(i - 1, j, aafMET) + + (aaafD1[i][j][0] + rDeltaBar - 0.5f) + * GET_MET(i, j - 1, aafMET)) + / (aaafD1[i][j][0] + rDeltaBar + aaafD2[i][j][0] + rDeltaBar - 1.0f); + + + if (i != j) + aafMET[j][i] = 1.0f - aafMET[i][j]; + + } + + } + + } + + } + +} + +extern int +GetPoints(float arOutput[5], const cubeinfo * pci, float arCP[2]) +{ + + /* + * Input: + * - arOutput: we need the gammon and backgammon ratios + * (we assume arOutput is evaluate for pci -> fMove) + * - anScore: the current score. + * - nMatchTo: matchlength + * - pci: value of cube, who's turn is it + * + * + * Output: + * - arCP : cash points with live cube + * These points are necessary for the linear + * interpolation used in cubeless -> cubeful equity + * transformation. + */ + + /* Match play */ + + /* normalize score */ + + int i = pci->nMatchTo - pci->anScore[0] - 1; + int j = pci->nMatchTo - pci->anScore[1] - 1; + + int nCube = pci->nCube; + + float arCPLive[2][MAXCUBELEVEL]; + float arCPDead[2][MAXCUBELEVEL]; + float arG[2], arBG[2]; + + float rDP, rRDP, rDTW, rDTL; + + int nDead, n, nMax, nCubeValue, k; + + + float aarMETResults[2][DTLBP1 + 1]; + + /* Gammon and backgammon ratio's. + * Avoid division by zero in extreme cases. */ + + if (!pci->fMove) { + + /* arOutput evaluated for player 0 */ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + arG[0] = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + arBG[0] = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + arG[0] = 0.0; + arBG[0] = 0.0; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + arG[1] = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + arBG[1] = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + arG[1] = 0.0; + arBG[1] = 0.0; + } + + } else { + + /* arOutput evaluated for player 1 */ + + if (arOutput[OUTPUT_WIN] > 0.0f) { + arG[1] = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + arBG[1] = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + arG[1] = 0.0; + arBG[1] = 0.0; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + arG[0] = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + arBG[0] = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + arG[0] = 0.0; + arBG[0] = 0.0; + } + } + + /* Find out what value the cube has when you or your + * opponent give a dead cube. */ + + nDead = nCube; + nMax = 0; + + while ((i >= 2 * nDead) && (j >= 2 * nDead)) { + nMax++; + nDead *= 2; + } + + for (nCubeValue = nDead, n = nMax; n >= 0; nCubeValue >>= 1, n--) { + + /* Calculate dead and live cube cash points. + * See notes by me (Joern Thyssen) available from the + * 'doc' directory. (FIXME: write notes :-) ) */ + + /* Even though it's a dead cube we take account of the opponents + * automatic redouble. */ + + /* Dead cube cash point for player 0 */ + + getMEMultiple(pci->anScore[0], pci->anScore[1], pci->nMatchTo, nCubeValue, GetCubePrimeValue(i, j, nCubeValue), /* 0 */ + GetCubePrimeValue(j, i, nCubeValue), /* 1 */ + pci->fCrawford, aafMET, aafMETPostCrawford, aarMETResults[0], aarMETResults[1]); + + for (k = 0; k < 2; k++) { + + + + /* Live cube cash point for player */ + + if ((i < 2 * nCubeValue) || (j < 2 * nCubeValue)) { + + rDTL = (1.0f - arG[!k] - arBG[!k]) * aarMETResults[k][k ? DTLP1 : DTLP0] + + arG[!k] * aarMETResults[k][k ? DTLGP1 : DTLGP0] + + arBG[!k] * aarMETResults[k][k ? DTLBP1 : DTLBP0]; + + + rDP = aarMETResults[k][DP]; + + rDTW = (1.0f - arG[k] - arBG[k]) * aarMETResults[k][k ? DTWP1 : DTWP0] + + arG[k] * aarMETResults[k][k ? DTWGP1 : DTWGP0] + + arBG[k] * aarMETResults[k][k ? DTWBP1 : DTWBP0]; + + arCPDead[k][n] = (rDTL - rDP) / (rDTL - rDTW); + + /* The doubled cube is going to be dead */ + arCPLive[k][n] = arCPDead[k][n]; + + } else { + + /* Doubled cube is alive */ + + /* redouble, pass */ + rRDP = aarMETResults[k][DTL]; + + /* double, pass */ + rDP = aarMETResults[k][DP]; + + /* double, take win */ + + rDTW = (1.0f - arG[k] - arBG[k]) * aarMETResults[k][DTW] + + arG[k] * aarMETResults[k][DTWG] + + arBG[k] * aarMETResults[k][DTWB]; + + arCPLive[k][n] = 1.0f - arCPLive[!k][n + 1] * (rDP - rDTW) / (rRDP - rDTW); + + } + + } /* loop k */ + + } + + /* return cash point for current cube level */ + + arCP[0] = arCPLive[0][0]; + arCP[1] = arCPLive[1][0]; + +#if 0 + for (n = nMax; n >= 0; n--) { + + printf("Cube %i\n" + "Dead cube: cash point 0 %6.3f\n" + " cash point 1 %6.3f\n" + "Live cube: cash point 0 %6.3f\n" + " cash point 1 %6.3f\n\n", + n, arCPDead[0][n], arCPDead[1][n], arCPLive[0][n], arCPLive[1][n]); + + } +#endif + + return 0; + +} + +extern float +GetDoublePointDeadCube(float arOutput[5], cubeinfo * pci) +{ + /* + * Calculate double point for dead cubes + */ + + int player = pci->fMove; + + if (!pci->nMatchTo) { + + /* Use Rick Janowski's formulas + * [insert proper reference here] */ + + float rW, rL; + + if (arOutput[0] > 0.0f) + rW = 1.0f + (arOutput[1] + arOutput[2]) / arOutput[0]; + else + rW = 1.0f; + + if (arOutput[0] < 1.0f) + rL = 1.0f + (arOutput[3] + arOutput[4]) / (1.0f - arOutput[0]); + else + rL = 1.0f; + + if (pci->fCubeOwner == -1 && pci->fJacoby) { + + /* centered cube */ + + if (pci->fBeavers) { + return (rL - 0.25f) / (rW + rL - 0.5f); + } else { + return (rL - 0.5f) / (rW + rL - 1.0f); + } + } else { + + /* redoubles or Jacoby rule not in effect */ + + return rL / (rL + rW); + } + + } else { + + /* Match play */ + + float aarMETResults[2][DTLBP1 + 1]; + + /* normalize score */ + + float rG1, rBG1, rG2, rBG2, rDTW, rNDW, rDTL, rNDL; + float rRisk, rGain; + + /* FIXME: avoid division by zero */ + if (arOutput[OUTPUT_WIN] > 0.0f) { + rG1 = (arOutput[OUTPUT_WINGAMMON] - arOutput[OUTPUT_WINBACKGAMMON]) / arOutput[OUTPUT_WIN]; + rBG1 = arOutput[OUTPUT_WINBACKGAMMON] / arOutput[OUTPUT_WIN]; + } else { + rG1 = 0.0; + rBG1 = 0.0; + } + + if (arOutput[OUTPUT_WIN] < 1.0f) { + rG2 = (arOutput[OUTPUT_LOSEGAMMON] - arOutput[OUTPUT_LOSEBACKGAMMON]) / (1.0f - arOutput[OUTPUT_WIN]); + rBG2 = arOutput[OUTPUT_LOSEBACKGAMMON] / (1.0f - arOutput[OUTPUT_WIN]); + } else { + rG2 = 0.0; + rBG2 = 0.0; + } + + getMEMultiple(pci->anScore[0], pci->anScore[1], pci->nMatchTo, + pci->nCube, -1, -1, + pci->fCrawford, aafMET, aafMETPostCrawford, aarMETResults[0], aarMETResults[1]); + + /* double point */ + + /* double point */ + + rDTW = (1.0f - rG1 - rBG1) * aarMETResults[player][DTW] + + rG1 * aarMETResults[player][DTWG] + + rBG1 * aarMETResults[player][DTWB]; + + rNDW = (1.0f - rG1 - rBG1) * aarMETResults[player][NDW] + + rG1 * aarMETResults[player][NDWG] + + rBG1 * aarMETResults[player][NDWB]; + + rDTL = (1.0f - rG2 - rBG2) * aarMETResults[player][DTL] + + rG2 * aarMETResults[player][DTLG] + + rBG2 * aarMETResults[player][DTLB]; + + rNDL = (1.0f - rG2 - rBG2) * aarMETResults[player][NDL] + + rG2 * aarMETResults[player][NDLG] + + rBG2 * aarMETResults[player][NDLB]; + + /* risk & gain */ + + rRisk = rNDL - rDTL; + rGain = rDTW - rNDW; + + return (rRisk == 0.0f) ? 0.0f : rRisk / (rRisk + rGain); + + } + +} + +/* + * Extend match equity table to MAXSCORE using + * David Montgomery's extension algorithm. The formula + * is independent of the values for score < nMaxScore. + * + * Input: + * nMaxScore: the length of the native met + * aarMET: the match equity table for scores below nMaxScore + * + * Output: + * aarMET: the match equity table for scores up to MAXSCORE. + * + */ + +static void +ExtendMET(float aarMET[MAXSCORE][MAXSCORE], const int nMaxScore) +{ + + static const float arStddevTable[] = + { 0, 1.24f, 1.27f, 1.47f, 1.50f, 1.60f, 1.61f, 1.66f, 1.68f, 1.70f, 1.72f, 1.77f }; + + float rStddev0, rStddev1, rGames, rSigma; + int i, j; + + /* Extend match equity table */ + for (i = nMaxScore; i < MAXSCORE; i++) { + + int nScore0 = i + 1; + + if (nScore0 > 10) + rStddev0 = 1.77f; + else + rStddev0 = arStddevTable[nScore0]; + + for (j = 0; j <= i; j++) { + + int nScore1 = j + 1; + + rGames = (float)(nScore0 + nScore1) / 2.0f; + + if (nScore1 > 10) + rStddev1 = 1.77f; + else + rStddev1 = arStddevTable[nScore1]; + + rSigma = sqrtf(rStddev0 * rStddev0 + rStddev1 * rStddev1) * sqrtf(rGames); + + if (6.0f * rSigma > (float) (nScore0 - nScore1)) + aarMET[i][j] = NormalDistArea((float) (nScore0 - nScore1), 6.0f * rSigma, 0.0f, rSigma); + else + aarMET[i][j] = 0.0f; + } + } + + /* Generate j > i part of MET */ + + for (i = 0; i < MAXSCORE; i++) + for (j = ((i < nMaxScore) ? nMaxScore : i + 1); j < MAXSCORE; j++) + aarMET[i][j] = 1.0f - aarMET[j][i]; + +} + + +static void +initMP(metparameters * pmp) +{ + + pmp->szName = NULL; + ListCreate(&pmp->lParameters); + +} + + +static void +initMD(metdata * pmd) +{ + + int i; + + pmd->mi.szName = NULL; + pmd->mi.szFileName = NULL; + pmd->mi.szDescription = NULL; + + initMP(&pmd->mpPreCrawford); + + for (i = 0; i < 2; i++) + initMP(&pmd->ampPostCrawford[i]); + +} + + +static void +freeP(parameter * pp) +{ + + g_free(pp->szName); + g_free(pp); + +} + + +static void +freeMP(metparameters * pmp) +{ + + listOLD *pl; + + g_free(pmp->szName); + + pl = &pmp->lParameters; + + while (pl->plNext != pl) { + + freeP(pl->plNext->p); + ListDelete(pl->plNext); + + } + +} + + +static void +getDefaultMET(metdata * pmd) +{ + + int i, j; + parameter *pp; + + static parameter apPreCrawford[] = { {"gammon-rate-leader", 0.25f}, + {"gammon-rate-trailer", 0.15f}, + {"delta", 0.08f}, + {"deltebar", 0.06f} + }; + + static parameter apPostCrawford[] = { {"gammon-rate-trailer", 0.25f}, + {"free-drop-2-away", 0.015f}, + {"free-drop-4-away", 0.004f} + }; + + /* Setup default met */ + + initMD(pmd); + + for (i = 0; i < 4; i++) { + pp = (parameter *) g_malloc(sizeof(parameter)); + pp->szName = g_strdup(apPreCrawford[i].szName); + pp->value = apPreCrawford[i].value; + ListInsert(&pmd->mpPreCrawford.lParameters, pp); + } + + for (j = 0; j < 2; j++) { + for (i = 0; i < 3; i++) { + pp = (parameter *) g_malloc(sizeof(parameter)); + pp->szName = g_strdup(apPostCrawford[i].szName); + pp->value = apPostCrawford[i].value; + ListInsert(&pmd->ampPostCrawford[j].lParameters, pp); + } + pmd->ampPostCrawford[j].szName = g_strdup("zadeh"); + } + + pmd->mpPreCrawford.szName = g_strdup("zadeh"); + + pmd->mi.szName = g_strdup("N. Zadeh, Management Science 23, 986 (1977)"); + pmd->mi.szFileName = g_strdup("met/zadeh.xml"); + pmd->mi.szDescription = g_strdup(""); + pmd->mi.nLength = MAXSCORE; + +} + + +static int +initMETFromParameters(float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE], metparameters * pmp) +{ + + if (!strcmp((char *) pmp->szName, "mec")) { + + float rG = 0.15f; + float rWR = 0.5f; + listOLD *pl; + parameter *pp; + + /* + */ + + /* obtain parameters */ + + for (pl = pmp->lParameters.plNext; pl != &pmp->lParameters; pl = pl->plNext) { + + pp = pl->p; + + if (!strcmp((char *) pp->szName, "gammon-rate")) + rG = pp->value; + else if (!strcmp((char *) pp->szName, "win-rate")) + rWR = pp->value; + + } + + /* calculate table */ + + mec(rG, rWR, aafMETPostCrawford, aafMET); + + return 0; + + } else if (!strcmp((char *) pmp->szName, "zadeh")) { + + float rG1 = 0.25f; + float rG2 = 0.15f; + float rDelta = 0.08f; + float rDeltaBar = 0.06f; + listOLD *pl; + parameter *pp; + + /* + * Use Zadeh's formulae + */ + + /* obtain parameters */ + + for (pl = pmp->lParameters.plNext; pl != &pmp->lParameters; pl = pl->plNext) { + + pp = pl->p; + + if (!strcmp((char *) pp->szName, "gammon-rate-leader")) + rG1 = pp->value; + else if (!strcmp((char *) pp->szName, "gammon-rate-trailer")) + rG2 = pp->value; + else if (!strcmp((char *) pp->szName, "delta")) + rDelta = pp->value; + else if (!strcmp((char *) pp->szName, "delta-bar")) + rDeltaBar = pp->value; + + } + + /* calculate table */ + + initMETZadeh(aafMET, aafMETPostCrawford[0], rG1, rG2, rDelta, rDeltaBar); + return 0; + + } else { + + /* unknown type */ + + return -1; + + } + + +} + + +static int +initPostCrawfordMETFromParameters(float afMETPostCrawford[MAXSCORE], metparameters * pmp) +{ + + if (!strcmp((char *) pmp->szName, "zadeh")) { + + float rG = 0.25f; + float rFD2 = 0.015f; + float rFD4 = 0.004f; + listOLD *pl; + parameter *pp; + + /* + * Use Zadeh's formulae + */ + + /* obtain parameters */ + + for (pl = pmp->lParameters.plNext; pl != &pmp->lParameters; pl = pl->plNext) { + + pp = pl->p; + + if (!strcmp((char *) pp->szName, "gammon-rate-trailer")) + rG = pp->value; + else if (!strcmp((char *) pp->szName, "free-drop-2-away")) + rFD2 = pp->value; + else if (!strcmp((char *) pp->szName, "free-drop-4-away")) + rFD4 = pp->value; + + } + + /* calculate table */ + + initPostCrawfordMET(afMETPostCrawford, 0, rG, rFD2, rFD4); + return 0; + + } else if (!strcmp((char *) pmp->szName, "mec")) { + + float rG = 0.25f; + float rFD2 = 0.015f; + float rFD4 = 0.004f; + float rWR = 0.5f; + listOLD *pl; + parameter *pp; + + /* obtain parameters */ + + for (pl = pmp->lParameters.plNext; pl != &pmp->lParameters; pl = pl->plNext) { + + pp = pl->p; + + if (!strcmp((char *) pp->szName, "gammon-rate")) + rG = pp->value; + else if (!strcmp((char *) pp->szName, "free-drop-2-away")) + rFD2 = pp->value; + else if (!strcmp((char *) pp->szName, "free-drop-4-away")) + rFD4 = pp->value; + else if (!strcmp((char *) pp->szName, "win-rate")) + rWR = pp->value; + + } + + /* calculate table */ + + mec_pc(rG, rFD2, rFD4, rWR, afMETPostCrawford); + + return 0; + + } else { + + /* unknown type */ + + return -1; + + } + +} + +typedef enum { + STATE_NONE, + STATE_MET, + STATE_INFO, + STATE_NAME, + STATE_DESCRIPTION, STATE_LENGTH, + STATE_PRECRAWFORD, + STATE_PRECRAWFORD_ROW, + STATE_PRECRAWFORD_ME, + STATE_PRECRAWFORD_PARAMS, + STATE_PRECRAWFORD_PARAM, + STATE_POSTCRAWFORD, + STATE_POSTCRAWFORD_ROW, + STATE_POSTCRAWFORD_ME, + STATE_POSTCRAWFORD_PARAMS, + STATE_POSTCRAWFORD_PARAM +} parserstate; + +typedef enum { + TYPE_EXPLICIT, + TYPE_MEC, + TYPE_ZADEH +} tabletype; + +typedef enum { + MP_PLAYER_0 = 0, + MP_PLAYER_1, + MP_PLAYER_BOTH = 2 +} metplayer; + +typedef struct { + parserstate state; + tabletype type; + metplayer player; + metdata *data; + guint i, j; /* table index */ + parameter *current_param; + gchar *filename; +} MatchEquityParser; + +static void met_parser_start_element(GMarkupParseContext * context, + const gchar * element_name, + const gchar ** attribute_names, + const gchar ** attribute_values, gpointer user_data, GError ** error); + +static void met_parser_end_element(GMarkupParseContext * context, + const gchar * element_name, gpointer user_data, GError ** error); + +static void met_parser_characters(GMarkupParseContext * context, + const gchar * text, gsize text_len, gpointer user_data, GError ** error); + +static void met_parser_error(GMarkupParseContext * context, GError * error, gpointer user_data); + +static GMarkupParser markup_parser = { + met_parser_start_element, + met_parser_end_element, + met_parser_characters, + NULL, + met_parser_error +}; + +static void +met_parser_destroy(gpointer data) +{ + MatchEquityParser *parser = (MatchEquityParser *) data; + g_free(parser->filename); + g_free(parser); +} + +static int +readMET(metdata * met, const char *filename) +{ + GMarkupParseContext *context; + gchar *contents; + MatchEquityParser *parser; + gsize size; + GError *error = NULL; + + initMD(met); + met->mi.szFileName = g_strdup(filename); + + /* Make and initialize a new parser */ + parser = g_new0(MatchEquityParser, 1); + parser->filename = g_strdup(filename); + parser->data = met; + parser->state = STATE_NONE; + parser->i = 0; + parser->j = 0; + + if (!(context = g_markup_parse_context_new(&markup_parser, (GMarkupParseFlags) 0, parser, met_parser_destroy))) { + g_warning(_("Can't create XML parser\n")); + g_free(parser); + return -1; + } + + /* Read the file */ + if (!g_file_get_contents(filename, &contents, &size, &error)) { + g_warning(_("Error reading XML file: %s\n"), error->message); + goto err; + } + + /* Parse the content */ + if (!g_markup_parse_context_parse(context, contents, size, &error)) { + g_warning(_("Error parsing XML file: %s\n"), error->message); + goto err; + } + + err: + g_markup_parse_context_free(context); + g_free(contents); + + if (error) { + g_error_free(error); + return -1; + } else { + return 0; + } +} + +static void +parse_attributes(MatchEquityParser * parser, const gchar ** attr_names, const gchar ** attr_values) +{ + gint i = 0; + while (attr_names[i]) { + if (strcmp(attr_names[i], "type") == 0) { + if (strcmp(attr_values[i], "explicit") == 0) + parser->type = TYPE_EXPLICIT; + else if (strcmp(attr_values[i], "mec") == 0) + parser->type = TYPE_MEC; + else if (strcmp(attr_values[i], "zadeh") == 0) + parser->type = TYPE_ZADEH; + } else if (strcmp(attr_names[i], "player") == 0) { + if (strcmp(attr_values[i], "both") == 0) + parser->player = MP_PLAYER_BOTH; + if (strcmp(attr_values[i], "0") == 0) + parser->player = MP_PLAYER_0; + if (strcmp(attr_values[i], "1") == 0) + parser->player = MP_PLAYER_1; + } + i++; + } +} + +static void +start_param(MatchEquityParser * parser, const gchar ** attr_names, const gchar ** attr_values) +{ + gint i = 0; + while (attr_names[i]) { + if (strcmp(attr_names[i], "name") == 0) { + parser->current_param = g_new0(parameter, 1); + parser->current_param->szName = g_strdup(attr_values[i]); + break; + } + i++; + } +} + +static void +SetNameFromType(char **pName, tabletype type) +{ + switch (type) { + case TYPE_EXPLICIT: + *pName = g_strdup("explicit"); + break; + case TYPE_MEC: + *pName = g_strdup("mec"); + break; + case TYPE_ZADEH: + *pName = g_strdup("zadeh"); + break; + default: + g_error(_("Invalid MET table type")); + } +} + +static void +met_parser_start_element(GMarkupParseContext * UNUSED(context), + const gchar * element_name, + const gchar ** attribute_names, + const gchar ** attribute_values, gpointer user_data, GError ** UNUSED(error)) +{ + + MatchEquityParser *parser = (MatchEquityParser *) user_data; + + switch (parser->state) { + case STATE_NONE: + if (strcmp(element_name, "met") == 0) + parser->state = STATE_MET; + break; + case STATE_MET: + if (strcmp(element_name, "info") == 0) { + parser->state = STATE_INFO; + } else if (strcmp(element_name, "pre-crawford-table") == 0) { + parser->state = STATE_PRECRAWFORD; + parser->i = 0; + parser->j = 0; + parser->type = TYPE_EXPLICIT; + parse_attributes(parser, attribute_names, attribute_values); + SetNameFromType(&parser->data->mpPreCrawford.szName, parser->type); + } else if (strcmp(element_name, "post-crawford-table") == 0) { + parser->state = STATE_POSTCRAWFORD; + parser->i = 0; + parser->type = TYPE_EXPLICIT; + parser->player = MP_PLAYER_BOTH; + parse_attributes(parser, attribute_names, attribute_values); + SetNameFromType(&parser->data->ampPostCrawford[0].szName, parser->type); + SetNameFromType(&parser->data->ampPostCrawford[1].szName, parser->type); + } + break; /* STATE_MET */ + + case STATE_INFO: + if (strcmp(element_name, "name") == 0) + parser->state = STATE_NAME; + else if (strcmp(element_name, "description") == 0) + parser->state = STATE_DESCRIPTION; + else if (strcmp(element_name, "length") == 0) + parser->state = STATE_LENGTH; + break; /* STATE_INFO */ + + case STATE_PRECRAWFORD: + if (strcmp(element_name, "row") == 0) + parser->state = STATE_PRECRAWFORD_ROW; + else if (strcmp(element_name, "parameters") == 0) { + parser->state = STATE_PRECRAWFORD_PARAMS; + } + break; /* STATE_PRECRAWFORD */ + + case STATE_PRECRAWFORD_ROW: + if (strcmp(element_name, "me") == 0) + parser->state = STATE_PRECRAWFORD_ME; + break; /* STATE_PRECRAWFORD_ROW */ + + case STATE_PRECRAWFORD_PARAMS: + if (strcmp(element_name, "parameter") == 0) { + parser->state = STATE_PRECRAWFORD_PARAM; + start_param(parser, attribute_names, attribute_values); + } + break; /* STATE_PRECRAWFORD_PARAMS */ + + case STATE_POSTCRAWFORD: + if (strcmp(element_name, "row") == 0) + parser->state = STATE_POSTCRAWFORD_ROW; + else if (strcmp(element_name, "parameters") == 0) { + parser->state = STATE_POSTCRAWFORD_PARAMS; + } + break; /* STATE_POSTCRAWFORD */ + + case STATE_POSTCRAWFORD_ROW: + if (strcmp(element_name, "me") == 0) + parser->state = STATE_POSTCRAWFORD_ME; + break; /* STATE_POSTCRAWFORD_ROW */ + + case STATE_POSTCRAWFORD_PARAMS: + if (strcmp(element_name, "parameter") == 0) { + parser->state = STATE_POSTCRAWFORD_PARAM; + start_param(parser, attribute_names, attribute_values); + } + break; /* STATE_POSTCRAWFORD_PARAMS */ + + case STATE_NAME: + case STATE_DESCRIPTION: + case STATE_LENGTH: + case STATE_PRECRAWFORD_ME: + case STATE_POSTCRAWFORD_ME: + case STATE_PRECRAWFORD_PARAM: + case STATE_POSTCRAWFORD_PARAM: + default: + break; + } +} + +static void +met_parser_end_element(GMarkupParseContext * UNUSED(context), + const gchar * UNUSED(element_name), gpointer user_data, GError ** UNUSED(error)) +{ + MatchEquityParser *parser = (MatchEquityParser *) user_data; + + switch (parser->state) { + case STATE_NONE: + g_assert_not_reached(); + break; + case STATE_MET: + parser->state = STATE_NONE; + break; + case STATE_INFO: + case STATE_PRECRAWFORD: + case STATE_POSTCRAWFORD: + parser->state = STATE_MET; + break; + case STATE_NAME: + case STATE_DESCRIPTION: + case STATE_LENGTH: + parser->state = STATE_INFO; + break; + case STATE_PRECRAWFORD_ROW: + parser->state = STATE_PRECRAWFORD; + parser->j++; + parser->i = 0; + break; + case STATE_PRECRAWFORD_ME: + parser->state = STATE_PRECRAWFORD_ROW; + parser->i++; + break; + + case STATE_PRECRAWFORD_PARAMS: + parser->state = STATE_PRECRAWFORD; + break; + + case STATE_PRECRAWFORD_PARAM: + parser->state = STATE_PRECRAWFORD_PARAMS; + ListInsert(&parser->data->mpPreCrawford.lParameters, parser->current_param); + parser->current_param = NULL; + break; + + case STATE_POSTCRAWFORD_ROW: + case STATE_POSTCRAWFORD_PARAMS: + parser->state = STATE_POSTCRAWFORD; + break; + case STATE_POSTCRAWFORD_ME: + parser->state = STATE_POSTCRAWFORD_ROW; + parser->i++; + break; + case STATE_POSTCRAWFORD_PARAM: + parser->state = STATE_POSTCRAWFORD_PARAMS; + if (parser->player == MP_PLAYER_BOTH) { + ListInsert(&parser->data->ampPostCrawford[0].lParameters, parser->current_param); + } else { + ListInsert(&parser->data->ampPostCrawford[parser->player].lParameters, parser->current_param); + } + parser->current_param = NULL; + break; + + default: + g_assert_not_reached(); + } +} + +static void +met_parser_characters(GMarkupParseContext * UNUSED(context), + const gchar * text, gsize UNUSED(text_len), gpointer user_data, GError ** UNUSED(error)) +{ + MatchEquityParser *parser = (MatchEquityParser *) user_data; + + switch (parser->state) { + case STATE_NAME: + parser->data->mi.szName = g_strdup(text); + break; + case STATE_DESCRIPTION: + parser->data->mi.szDescription = g_strdup(text); + break; + case STATE_LENGTH: + /* bad bug in glib-2.12.x - see gnome bug 416062 */ + parser->data->mi.nLength = (gint) g_ascii_strtoull(text, NULL, 10); + break; + case STATE_PRECRAWFORD_ME: + parser->data->aarMET[parser->j][parser->i] = (float) g_ascii_strtod(text, NULL); + break; + case STATE_POSTCRAWFORD_ME: + if (parser->player == MP_PLAYER_BOTH) { + gfloat r = (gfloat) g_ascii_strtod(text, NULL); + parser->data->aarMETPostCrawford[0][parser->i] = r; + parser->data->aarMETPostCrawford[1][parser->i] = r; + } else { + gfloat r = (gfloat) g_ascii_strtod(text, NULL); + parser->data->aarMETPostCrawford[parser->player][parser->i] = r; + } + break; + + case STATE_PRECRAWFORD_PARAM: + case STATE_POSTCRAWFORD_PARAM: + g_assert(parser->current_param); + parser->current_param->value = (float) g_ascii_strtod(text, NULL); + default: + break; + } +} + +static void +met_parser_error(GMarkupParseContext * UNUSED(context), GError * UNUSED(error), gpointer user_data) +{ + MatchEquityParser *parser = (MatchEquityParser *) user_data; + g_warning(_("An error occurred while parsing file: %s\n"), parser->filename); +} + +/* + * Calculate gammon and backgammon price at the specified score + * with specified cube. + * + * Input: + * aafMET, aafMETPostCrawford: match equity tables. + * nCube: value of cube + * fCrawford: is this the Crawford game + * nScore0, nScore1, nMatchTo: current score and match length. + * + * Output: + * arGammonPrice: gammon and backgammon prices. + * + */ + +static void +getGammonPrice(float arGammonPrice[4], + const int nScore0, const int nScore1, const int nMatchTo, + const int nCube, const int fCrawford, + float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE]) +{ + + const float epsilon = 1.0E-7f; + + float rWin = getME(nScore0, nScore1, nMatchTo, + 0, nCube, 0, fCrawford, + aafMET, aafMETPostCrawford); + + float rWinGammon = getME(nScore0, nScore1, nMatchTo, + 0, 2 * nCube, 0, fCrawford, + aafMET, aafMETPostCrawford); + + float rWinBG = getME(nScore0, nScore1, nMatchTo, + 0, 3 * nCube, 0, fCrawford, + aafMET, aafMETPostCrawford); + + float rLose = getME(nScore0, nScore1, nMatchTo, + 0, nCube, 1, fCrawford, + aafMET, aafMETPostCrawford); + + float rLoseGammon = getME(nScore0, nScore1, nMatchTo, + 0, 2 * nCube, 1, fCrawford, + aafMET, aafMETPostCrawford); + + float rLoseBG = getME(nScore0, nScore1, nMatchTo, + 0, 3 * nCube, 1, fCrawford, + aafMET, aafMETPostCrawford); + + float rCenter = (rWin + rLose) / 2.0f; + + /* FIXME: correct numerical problems in a better way, than done + * below. If cube is dead gammon or backgammon price might be a + * small negative number. For example, at -2,-3 with cube on 2 + * the current code gives: 0.9090..., 0, -2.7e-8, 0 instead + * of the correct 0.9090..., 0, 0, 0. */ + + /* avoid division by zero */ + + if (fabsf(rWin - rCenter) > epsilon) { + + /* this expression can be reduced to: + * 2 * ( rWinGammon - rWin ) / ( rWin - rLose ) + * which is twice the "usual" gammon value */ + + arGammonPrice[0] = (rWinGammon - rCenter) / (rWin - rCenter) - 1.0f; + + /* this expression can be reduced to: + * 2 * ( rLose - rLoseGammon ) / ( rWin - rLose ) + * which is twice the "usual" gammon value */ + + arGammonPrice[1] = (rCenter - rLoseGammon) / (rWin - rCenter) - 1.0f; + + arGammonPrice[2] = (rWinBG - rCenter) / (rWin - rCenter) - (arGammonPrice[0] + 1.0f); + arGammonPrice[3] = (rCenter - rLoseBG) / (rWin - rCenter) - (arGammonPrice[1] + 1.0f); + + } else + arGammonPrice[0] = arGammonPrice[1] = arGammonPrice[2] = arGammonPrice[3] = 0.0f; + + + /* Correct numerical problems */ + if (arGammonPrice[0] < 0.0f) + arGammonPrice[0] = 0.0f; + if (arGammonPrice[1] < 0.0f) + arGammonPrice[1] = 0.0f; + if (arGammonPrice[2] < 0.0f) + arGammonPrice[2] = 0.0f; + if (arGammonPrice[3] < 0.0f) + arGammonPrice[3] = 0.0f; + +} + +/* + * Calculate all gammon and backgammon prices + * + * Input: + * aafMET, aafMETPostCrawford: match equity tables + * + * Output: + * aaaafGammonPrices: all gammon prices + * + */ + +static void +calcGammonPrices(float aafMET[MAXSCORE][MAXSCORE], + float aafMETPostCrawford[2][MAXSCORE], float aaaafGammonPrices[MAXCUBELEVEL] + [MAXSCORE][MAXSCORE][4], float aaaafGammonPricesPostCrawford[MAXCUBELEVEL] + [MAXSCORE][2][4]) +{ + + int i, j, k; + int nCube; + + for (i = 0, nCube = 1; i < MAXCUBELEVEL; i++, nCube *= 2) + for (j = 0; j < MAXSCORE; j++) + for (k = 0; k < MAXSCORE; k++) + getGammonPrice(aaaafGammonPrices[i][j][k], + MAXSCORE - j - 1, MAXSCORE - k - 1, MAXSCORE, + nCube, (MAXSCORE == j) || (MAXSCORE == k), aafMET, aafMETPostCrawford); + + for (i = 0, nCube = 1; i < MAXCUBELEVEL; i++, nCube *= 2) + for (j = 0; j < MAXSCORE; j++) { + getGammonPrice(aaaafGammonPricesPostCrawford[i][j][0], + MAXSCORE - 1, MAXSCORE - j - 1, MAXSCORE, nCube, FALSE, aafMET, aafMETPostCrawford); + getGammonPrice(aaaafGammonPricesPostCrawford[i][j][1], + MAXSCORE - j - 1, MAXSCORE - 1, MAXSCORE, nCube, FALSE, aafMET, aafMETPostCrawford); + } + +} + +extern void +InitMatchEquity(const char *szFileName) +{ + int i, j; + metdata md; + + /* Read match equity table from XML file */ + if (readMET(&md, szFileName) != 0) { /* load failed - make default as must have a met */ + getDefaultMET(&md); + } + + /* Copy met to current met, extend met (if needed) */ + + /* post-Crawford table */ + for (j = 0; j < 2; j++) { + if (!strcmp((char *) md.ampPostCrawford[j].szName, "explicit")) { + + /* copy and extend table */ + + /* FIXME: implement better extension of post-Crawford table */ + + /* Note that the post Crawford table is extended from + * n - 1 as the post Crawford table of a n match equity table + * might not include the post Crawford equity at n-away, since + * the first "legal" post Crawford score is n-1. */ + + for (i = 0; i < md.mi.nLength - 1; i++) + aafMETPostCrawford[j][i] = md.aarMETPostCrawford[j][i]; + + initPostCrawfordMET(aafMETPostCrawford[j], md.mi.nLength - 1, GAMMONRATE, 0.015f, 0.004f); + + } else { + + /* generate match equity table using Zadeh's formula */ + + if (initPostCrawfordMETFromParameters(aafMETPostCrawford[j], &md.ampPostCrawford[j]) < 0) { + + fprintf(stderr, _("Error generating post-Crawford MET\n")); + return; + + } + + } + } + + /* pre-Crawford table */ + if (!strcmp((char *) md.mpPreCrawford.szName, "explicit")) { /* copy table */ + for (i = 0; i < md.mi.nLength; i++) + for (j = 0; j < md.mi.nLength; j++) + aafMET[i][j] = md.aarMET[i][j]; + } else { + /* generate match equity table using Zadeh's formula */ + if (initMETFromParameters(aafMET, aafMETPostCrawford, &md.mpPreCrawford) < 0) { + + fprintf(stderr, _("Error generating pre-Crawford MET\n")); + return; + } + } + + /* Extend match equity table */ + ExtendMET(aafMET, md.mi.nLength); + + /* garbage collect */ + freeMP(&md.mpPreCrawford); + + for (i = 0; i < 2; i++) + freeMP(&md.ampPostCrawford[i]); + + g_free(miCurrent.szName); + g_free(miCurrent.szFileName); + g_free(miCurrent.szDescription); + + /* save match equity table information */ + memcpy(&miCurrent, &md.mi, sizeof(metinfo)); + + /* initialise gammon prices */ + calcGammonPrices(aafMET, aafMETPostCrawford, aaaafGammonPrices, aaaafGammonPricesPostCrawford); +} + + +/* + * Return match equity (mwc) assuming player fWhoWins wins nPoints points. + * + * If fCrawford then afMETPostCrawford is used, otherwise + * aafMET is used. + * + * Input: + * nAway0: points player 0 needs to win + * nAway1: points player 1 needs to win + * fPlayer: get mwc for this player + * fCrawford: is this the Crawford game + * aafMET: match equity table for player 0 + * afMETPostCrawford: post-Crawford match equity table for player 0 + * + */ + + +extern float +getME(const int nScore0, const int nScore1, const int nMatchTo, + const int fPlayer, + const int nPoints, const int fWhoWins, + const int fCrawford, float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE]) +{ + + int n0 = nMatchTo - (nScore0 + (!fWhoWins) * nPoints) - 1; + int n1 = nMatchTo - (nScore1 + fWhoWins * nPoints) - 1; + + /* check if any player has won the match */ + + if (unlikely(n0 < 0)) + /* player 0 has won the game */ + return (fPlayer) ? 0.0f : 1.0f; + else if (unlikely(n1 < 0)) + /* player 1 has won the game */ + return (fPlayer) ? 1.0f : 0.0f; + + /* the match is not finished */ + + if (fCrawford || (nMatchTo - nScore0 == 1) || (nMatchTo - nScore1 == 1)) { + + /* the next game will be post-Crawford */ + + if (!n0) + /* player 0 is leading match */ + /* FIXME: use pc-MET for player 0 */ + return (fPlayer) ? aafMETPostCrawford[1][n1] : 1.0f - aafMETPostCrawford[1][n1]; + else + /* player 1 is leading the match */ + return (fPlayer) ? 1.0f - aafMETPostCrawford[0][n0] : aafMETPostCrawford[0][n0]; + + } else + /* non-post-Crawford games */ + return (fPlayer) ? 1.0f - aafMET[n0][n1] : aafMET[n0][n1]; + +} + + +extern float +getMEAtScore(const int nScore0, const int nScore1, const int nMatchTo, + const int fPlayer, const int fCrawford, + float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE]) +{ + + int n0 = nMatchTo - nScore0 - 1; + int n1 = nMatchTo - nScore1 - 1; + + /* check if any player has won the match */ + + if (n0 < 0) + /* player 0 has won the game */ + return (fPlayer) ? 0.0f : 1.0f; + else if (n1 < 0) + /* player 1 has won the game */ + return (fPlayer) ? 1.0f : 0.0f; + + /* the match is not finished */ + + if (!fCrawford && ((nMatchTo - nScore0 == 1) || (nMatchTo - nScore1 == 1))) { + + /* this game is post-Crawford */ + + if (!n0) + /* player 0 is leading match */ + /* FIXME: use pc-MET for player 0 */ + return (fPlayer) ? aafMETPostCrawford[1][n1] : 1.0f - aafMETPostCrawford[1][n1]; + else + /* player 1 is leading the match */ + return (fPlayer) ? 1.0f - aafMETPostCrawford[0][n0] : aafMETPostCrawford[0][n0]; + + } else + /* non-post-Crawford games */ + return (fPlayer) ? 1.0f - aafMET[n0][n1] : aafMET[n0][n1]; + +} + + + +extern void +invertMET(void) +{ + + int i, j; + + for (i = 0; i < MAXSCORE; i++) { + + /* post crawford entries */ + + float r = aafMETPostCrawford[0][i]; + aafMETPostCrawford[0][i] = aafMETPostCrawford[1][i]; + aafMETPostCrawford[1][i] = r; + + /* diagonal */ + + aafMET[i][i] = 1.0f - aafMET[i][i]; + + /* off diagonal entries */ + + for (j = 0; j < i; j++) { + + r = aafMET[i][j]; + aafMET[i][j] = 1.0f - aafMET[j][i]; + aafMET[j][i] = 1.0f - r; + + } + } + + calcGammonPrices(aafMET, aafMETPostCrawford, aaaafGammonPrices, aaaafGammonPricesPostCrawford); +} + +/* given a match score, return a pair of arrays with the METs for + * player0 and player 1 winning/losing including gammons & backgammons + * + * if nCubePrime0 < 0, then we're only interested in the first + * values in each array, using nCube. + * + * Otherwise, if nCubePrime0 >= 0, we do another set of METs with + * both sides using nCubePrime0 + * + * if nCubePrime1 >= 0, we do a third set using nCubePrime1 + * + * FIXME ? It looks like if nCubePrime0 >= 0, nCubePrime1 is as well + * That could simplify the code below a little + * + * This reduces the *huge* number of calls to get equity table entries + * when analyzing matches by something like 40 times + */ + +extern void +getMEMultiple(const int nScore0, const int nScore1, const int nMatchTo, + const int nCube, const int nCubePrime0, const int nCubePrime1, + const int fCrawford, float aafMET[MAXSCORE][MAXSCORE], + float aafMETPostCrawford[2][MAXSCORE], float *player0, float *player1) +{ + + int scores[2][DTLBP1 + 1]; /* the resulting match scores */ + int i, max_res; + int *score0, *score1; + int mult[] = { 1, 2, 3, 4, 6 }; + float *p0, *p1, f; + int away0, away1; + int fCrawf = fCrawford; + + /* figure out how many results we'll be returning */ + max_res = (nCubePrime0 < 0) ? DTLB + 1 : (nCubePrime1 < 0) ? DTLBP0 + 1 : DTLBP1 + 1; + + /* set up a table of resulting match scores for all + * the results we're calculating */ + score0 = scores[0]; + score1 = scores[1]; + away0 = nMatchTo - nScore0 - 1; + away1 = nMatchTo - nScore1 - 1; + fCrawf |= (nMatchTo - nScore0 == 1) || (nMatchTo - nScore1 == 1); + + /* player 0 wins normal, doubled, gammon, backgammon */ + for (i = 0; i < NDL; ++i) { + *score0++ = away0 - mult[i] * nCube; + *score1++ = away1; + } + /* player 1 wins normal, doubled, etc. */ + for (i = 0; i < NDL; ++i) { + *score0++ = away0; + *score1++ = away1 - mult[i] * nCube; + } + if (max_res > DPP0) { + /* same using the second cube value */ + for (i = 0; i < NDL; ++i) { + *score0++ = away0 - mult[i] * nCubePrime0; + *score1++ = away1; + } + for (i = 0; i < NDL; ++i) { + *score0++ = away0; + *score1++ = away1 - mult[i] * nCubePrime0; + } + if (max_res > DPP1) { + /* same using the third cube value */ + for (i = 0; i < NDL; ++i) { + *score0++ = away0 - mult[i] * nCubePrime1; + *score1++ = away1; + } + for (i = 0; i < NDL; ++i) { + *score0++ = away0; + *score1++ = away1 - mult[i] * nCubePrime1; + } + } + } + + score0 = scores[0]; + score1 = scores[1]; + p0 = player0; + p1 = player1; + + /* now go through the resulting scores, looking up the equities */ + for (i = 0; i < max_res; ++i) { + int s0 = *score0++; + int s1 = *score1++; + + if (unlikely(s0 < 0)) { + /* player 0 wins */ + *p0++ = 1.0f; + *p1++ = 0.0f; + } else if (unlikely(s1 < 0)) { + *p0++ = 0.0f; + *p1++ = 1.0f; + } else if (unlikely(fCrawf)) { + if (s0 == 0) { /* player 0 is leading */ + *p0++ = 1.0f - aafMETPostCrawford[1][s1]; + *p1++ = aafMETPostCrawford[1][s1]; + } else { + *p0++ = aafMETPostCrawford[0][s0]; + *p1++ = 1.0f - aafMETPostCrawford[0][s0]; + } + } else { /* non-post-Crawford */ + *p0++ = aafMET[s0][s1]; + *p1++ = 1.0f - aafMET[s0][s1]; + } + } + + /* results for player 0 are done, results for player 1 have the + * losses in cols 0-4 and 8-12, but we want them to be in the same + * order as results0 - e.g wins in cols 0-4, and 8-12 + */ + p0 = player1; + p1 = player1 + NDL; + for (i = 0; i < NDL; ++i) { + f = *p0; + *p0++ = *p1; + *p1++ = f; + } + + if (max_res > DTLBP0) { + p0 += NDL; + p1 += NDL; + for (i = 0; i < NDL; ++i) { + f = *p0; + *p0++ = *p1; + *p1++ = f; + } + } + + if (max_res > DTLBP1) { + p0 += NDL; + p1 += NDL; + for (i = 0; i < NDL; ++i) { + f = *p0; + *p0++ = *p1; + *p1++ = f; + } + } + +} diff --git a/engine/gnubg/matchequity.h b/engine/gnubg/matchequity.h new file mode 100644 index 0000000..affa2e2 --- /dev/null +++ b/engine/gnubg/matchequity.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 1999-2003 Joern Thyssen + * Copyright (C) 2000-2013 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef MATCHEQUITY_H +#define MATCHEQUITY_H + +#include "eval.h" + +#define MAXSCORE 64 +#define MAXCUBELEVEL 7 + +/* Structure for information about match equity table */ + +typedef struct { + gchar *szName; /* Name of match equity table */ + gchar *szFileName; /* File name of MET */ + gchar *szDescription; /* Description of MET */ + int nLength; /* Native length of MET or -1 if pure calculated table */ +} metinfo; + +/* macros for getting match equities */ + +#define GET_MET(i,j,aafMET) ( ( (i) < 0 ) ? 1.0f : ( ( (j) < 0 ) ? 0.0f : \ + (aafMET [ i ][ j ]) ) ) +#define GET_METPostCrawford(i,afBtilde) ( (i) < 0 ? 1.0f : afBtilde [ i ] ) + +/* current match equity table used by gnubg */ + +extern float aafMET[MAXSCORE][MAXSCORE]; +extern float aafMETPostCrawford[2][MAXSCORE]; + +/* gammon prices (calculated once for efficiency) */ + +extern float aaaafGammonPrices[MAXCUBELEVEL] + [MAXSCORE][MAXSCORE][4]; +extern float aaaafGammonPricesPostCrawford[MAXCUBELEVEL] + [MAXSCORE][2][4]; + +extern metinfo miCurrent; + +extern float +getME(int nScore0, int nScore1, int nMatchTo, + int fPlayer, + int nPoints, int fWhoWins, + int fCrawford, float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE]); + +extern float +getMEAtScore(int nScore0, int nScore1, int nMatchTo, + int fPlayer, int fCrawford, + float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE]); + +/* Initialise match equity table */ + +void + InitMatchEquity(const char *szFileName); + +/* Get double points */ + +extern int + GetPoints(float arOutput[5], const cubeinfo * pci, float arCP[2]); + +extern float + GetDoublePointDeadCube(float arOutput[5], cubeinfo * pci); + +extern void + invertMET(void); + +/* enums for the entries in the arrays returned by getMEMultiple + * DoublePass, DoubleTakeWin, DoubleTakeWinGammon... for the first 8 + * then the same values using CubePrimeValues + * DP = Double/Pass, DTWG = double/take/wing gammon, etc + * DPP = double/Pass with CubePrime values, etc. + */ + +typedef enum { + /* player 0 wins, first cube value */ + DP = 0, NDW = 0, DTW = 1, NDWG = 1, NDWB, DTWG, DTWB, + /* player 0 loses, first cube value */ + NDL, DTL = 6, NDLG = 6, NDLB, DTLG, DTLB, + /* player 0 wins, 2nd cube value */ + DPP0, DTWP0, NDWBP0, DTWGP0, DTWBP0, + /* player 0 loses, 2nd cube value */ + NDLP0, DTLP0, NDLBP0, DTLGP0, DTLBP0, + /* player 0 wins, 3rd cube value */ + DPP1, DTWP1, NDWBP1, DTWGP1, DTWBP1, + /* player 0 loses, 3rd cube value */ + NDLP1, DTLP1, NDLBP1, DTLGP1, DTLBP1 +} met_indices; + +extern void +getMEMultiple(int nScore0, int nScore1, int nMatchTo, + int nCube, + int nCubePrime0, int nCubePrime1, + int fCrawford, + float aafMET[MAXSCORE][MAXSCORE], float aafMETPostCrawford[2][MAXSCORE], float *player0, float *player1); + +#endif /* MATCHEQUITY_H */ diff --git a/engine/gnubg/matchid.c b/engine/gnubg/matchid.c new file mode 100644 index 0000000..e64d1d3 --- /dev/null +++ b/engine/gnubg/matchid.c @@ -0,0 +1,283 @@ +/* + * Copyright (C) 2002-2003 Joern Thyssen + * Copyright (C) 2004-2013 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: matchid.c,v 1.30 2021/12/18 22:06:37 plm Exp $ + */ + +#include "config.h" + +#include "backgammon.h" +#include "positionid.h" +#include "matchequity.h" +#include "matchid.h" +#include + +/* + * Calculate log2 of Cube value. + * + * Input: + * n: cube value + * + * Returns: + * log(n)/log(2) + * + */ + +extern int +LogCube(int n) +{ + int i = 0; + + while (n >>= 1) + i++; + + return i; +} + + +static void +SetBit(unsigned char *pc, unsigned int bitPos, int test, unsigned int iBit) +{ + + const unsigned int k = bitPos / 8; + const unsigned char rbit = (unsigned char) (0x1 << (bitPos % 8)); + + unsigned char c; + + if (test & (0x1 << iBit)) + c = rbit; + else + c = 0; + pc[k] = (pc[k] & (0xFF ^ rbit)) | c; + +} + +static void +SetBits(unsigned char *pc, unsigned int bitPos, unsigned int nBits, int iContent) +{ + + unsigned int i; + + /* FIXME: rewrite SetBit, SetBits to be faster */ + + + for (i = 0; i < nBits; i++) { + + SetBit(pc, bitPos + i, iContent, i); + + } + +} + + +static void +GetBits(const unsigned char *pc, const unsigned int bitPos, const unsigned int nBits, int *piContent) +{ + unsigned int i, j; + unsigned char c[2]; + + /* FIXME: rewrite GetBits to be faster */ + + c[0] = 0; + c[1] = 0; + + for (i = 0, j = bitPos; i < nBits; i++, j++) { + + unsigned int k, r; + + k = j / 8; + r = j % 8; + + SetBit(c, i, pc[k], r); + + } + + *piContent = c[0] | (c[1] << 8); +} + + +static char * +MatchIDFromKey(unsigned char auchKey[9]) +{ + unsigned char *puch = auchKey; + static char szID[L_MATCHID + 1]; + char *pch = szID; + static const char aszBase64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + int i; + + for (i = 0; i < 3; i++) { + *pch++ = aszBase64[puch[0] >> 2]; + *pch++ = aszBase64[((puch[0] & 0x03) << 4) | (puch[1] >> 4)]; + *pch++ = aszBase64[((puch[1] & 0x0F) << 2) | (puch[2] >> 6)]; + *pch++ = aszBase64[puch[2] & 0x3F]; + + puch += 3; + } + + *pch = 0; + + return szID; +} + + +extern char * +MatchID(const unsigned int anDice[2], + const int fTurn, + const int fResigned, + const int fDoubled, + const int fMove, + const int fCubeOwner, const int fCrawford, const int nMatchTo, const int anScore[2], const int nCube, + const int fJacobyInUse, const gamestate gs) +{ + + unsigned char auchKey[9]; + + memset(auchKey, 0, 9); + + SetBits(auchKey, 0, 4, LogCube(nCube)); + SetBits(auchKey, 4, 2, fCubeOwner & 0x3); + SetBits(auchKey, 6, 1, fMove); + SetBits(auchKey, 7, 1, fCrawford); + SetBits(auchKey, 8, 3, (int) gs); + SetBits(auchKey, 11, 1, fTurn); + SetBits(auchKey, 12, 1, fDoubled); + SetBits(auchKey, 13, 2, fResigned); + if (anDice[0] >= anDice[1]) { + SetBits(auchKey, 15, 3, anDice[0] & 0x7); + SetBits(auchKey, 18, 3, anDice[1] & 0x7); + } else { + SetBits(auchKey, 15, 3, anDice[1] & 0x7); + SetBits(auchKey, 18, 3, anDice[0] & 0x7); + } + SetBits(auchKey, 21, 15, nMatchTo & 0x7FFF); + SetBits(auchKey, 36, 15, anScore[0] & 0x7FFF); + SetBits(auchKey, 51, 15, anScore[1] & 0x7FFF); + SetBits(auchKey, 66, 1, (!fJacobyInUse)); + + return MatchIDFromKey(auchKey); + +} + +static int +MatchFromKey(int anDice[2], + int *pfTurn, + int *pfResigned, + int *pfDoubled, + int *pfMove, int *pfCubeOwner, int *pfCrawford, int *pnMatchTo, int anScore[2], int *pnCube, + int *pfJacoby, gamestate * pgs, const unsigned char *auchKey) +{ + int temp; + GetBits(auchKey, 0, 4, pnCube); + *pnCube = 0x1 << *pnCube; + + GetBits(auchKey, 4, 2, pfCubeOwner); + if (*pfCubeOwner && *pfCubeOwner != 1) + *pfCubeOwner = -1; + + GetBits(auchKey, 6, 1, pfMove); + GetBits(auchKey, 7, 1, pfCrawford); + GetBits(auchKey, 8, 3, &temp); + *pgs = (gamestate) temp; + GetBits(auchKey, 11, 1, pfTurn); + GetBits(auchKey, 12, 1, pfDoubled); + GetBits(auchKey, 13, 2, pfResigned); + GetBits(auchKey, 15, 3, &anDice[0]); + GetBits(auchKey, 18, 3, &anDice[1]); + GetBits(auchKey, 21, 15, pnMatchTo); + GetBits(auchKey, 36, 15, &anScore[0]); + GetBits(auchKey, 51, 15, &anScore[1]); + GetBits(auchKey, 66, 1, pfJacoby); + *pfJacoby = !(*pfJacoby); + + /* FIXME: implement a consistency check */ + + if (anDice[0] < 0 || anDice[0] > 6) + return -1; + if (anDice[1] < 0 || anDice[1] > 6) + return -1; + if (*pnMatchTo < 0 || *pnMatchTo > MAXSCORE) + return -1; + + if (*pnMatchTo) { + if (anScore[0] < 0 || anScore[0] > *pnMatchTo) + return -1; + if (anScore[1] < 0 || anScore[1] > *pnMatchTo) + return -1; + } else { + /* money game */ + if (*pfCrawford) + /* no Crawford game in money play */ + return -1; + } + + return 0; + +} + + +extern int +MatchFromID(unsigned int anDice[2], + int *pfTurn, + int *pfResigned, + int *pfDoubled, int *pfMove, int *pfCubeOwner, int *pfCrawford, int *pnMatchTo, int anScore[2], int *pnCube, + int *pfJacoby, gamestate * pgs, const char *szMatchID) +{ + + unsigned char auchKey[9]; + unsigned char *puch = auchKey; + unsigned char ach[L_MATCHID + 1]; + unsigned char *pch = ach; + int i; + + memset(ach, 0, sizeof(ach)); + /* decode base64 into key */ + for (i = 0; i < L_MATCHID && szMatchID[i]; i++) + pch[i] = Base64((unsigned char) szMatchID[i]); + + for (i = 0; i < 3; i++) { + *puch++ = (unsigned char) (pch[0] << 2) | (pch[1] >> 4); + *puch++ = (unsigned char) (pch[1] << 4) | (pch[2] >> 2); + *puch++ = (unsigned char) (pch[2] << 6) | pch[3]; + + pch += 4; + } + + /* get matchstate info from the key */ + + return MatchFromKey((int *) anDice, pfTurn, pfResigned, pfDoubled, pfMove, pfCubeOwner, pfCrawford, pnMatchTo, + (int *) anScore, pnCube, pfJacoby, pgs, auchKey); +} + +/* + * Generate match ID from matchstate + * + * Input: + * pms: match state + * + */ + +extern char * +MatchIDFromMatchState(const matchstate * pms) +{ + + return MatchID(pms->anDice, + pms->fTurn, + pms->fResigned, + pms->fDoubled, pms->fMove, pms->fCubeOwner, pms->fCrawford, pms->nMatchTo, pms->anScore, pms->nCube, + pms->fJacoby, pms->gs); + +} diff --git a/engine/gnubg/matchid.h b/engine/gnubg/matchid.h new file mode 100644 index 0000000..be1602b --- /dev/null +++ b/engine/gnubg/matchid.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2002 Joern Thyssen + * Copyright (C) 2008-2013 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * $Id: matchid.h,v 1.18 2021/07/14 19:21:45 plm Exp $ + */ + +#ifndef MATCHID_H +#define MATCHID_H + +#define L_MATCHID 12 + +typedef struct { + int anDice[2]; + int fTurn; + int fResigned; + int fDoubled; + gamestate gs; +} posinfo; + +extern int LogCube(int n); + +extern char *MatchID(const unsigned int anDice[2], + int fTurn, + int fResigned, + int fDoubled, + int fMove, + int fCubeOwner, + int fCrawford, int nMatchTo, const int anScore[2], + int nCube, int fJacoby, gamestate gs); + +extern int MatchFromID(unsigned int anDice[2], + int *pfTurn, + int *pfResigned, + int *pfDoubled, int *pfMove, int *pfCubeOwner, int *pfCrawford, int *pnMatchTo, int anScore[2], int *pnCube, + int *pfJacoby, gamestate * pgs, const char *szMatchID); + +extern char *MatchIDFromMatchState(const matchstate * pms); + +#endif diff --git a/engine/gnubg/mec.c b/engine/gnubg/mec.c new file mode 100644 index 0000000..b1480e3 --- /dev/null +++ b/engine/gnubg/mec.c @@ -0,0 +1,506 @@ +/* + * mec - match equity calculator for backgammon. calculate equity table + * given match length, gammon rate and winning probabilities. + * + * Copyright (C) 1996 Claes Tornberg + * Copyright (C) 2004-2013 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * + * Modified for usage with GNUbg by Joern Thyssen : + * + * (1) make external entry for usage in GNUbg + * (2) change "double" to "metentry", and typedef metentry to float + * or double depending on MEC_STANDALONE + * (3) Compile with MEC_STANDALONE to get Tornberg's original program, e.g., + * + * gcc -DMEC_STANDALONE mec.c -o mec + */ + +#include "config.h" +#include +#include + +#ifndef MEC_STANDALONE +#include "mec.h" +#endif + +struct dp { + double e; + double w; +}; + +typedef struct dp dp; + +static void post_crawford(double gr, double wpf, int ml, double **E, double fd2, double fd4); + +static void crawford(double gr, double wpf, int ml, double **E); + +static void pre_crawford(double gr, double wpf, int ml, double **E); + +static dp dpt(int p, int o, int c, double gr, double wpp, double **E); + +/* + * Arguments are (in this order): + * match length + * gammon rate + * winning percentage (favorite) + */ + +#ifdef MEC_STANDALONE + +int +main(int argc, char **argv) +{ + /* match length */ + + int ml = argc > 1 ? atoi(argv[1]) : 9; + + /* gammon rate, i.e. how many of games won/lost will be gammons */ + + double gr = argc > 2 ? atof(argv[2]) : 0; + + /* Here one could argue for different approaches. Does the underdog + * in match (current score) have different gammon rate. Or does the + * underdog in match (equity at current score) have different gammon + * rate. This could be solved, but for now, we assume same rates. */ + + /* winning percentage for favorite in one game. NB: when one player + * is favorite, there is no symmetry in the equity table! I.e. + * E[i][1] = 1 - E[1][i] doesn't necessarily hold. This figure must + * be higher than or equal to .5, i.e. 50% */ + + double wpf = argc > 3 ? atof(argv[3]) : 0.5; + + /* Equity chart, E[p][o] = equity for p when p is p away, and o is o away. + * If there is a game favorite, i.e. wpf > 0.5, p above is considered + * to be the favorite in each game. For now we also assume no free drop + * vigourish. This will only affect the computation of post-Crawford + * equities, and is quite easy to correct. */ + + double **E = (double **) malloc((ml + 1) * sizeof(double *)); + + double *ec = (double *) calloc((ml + 1) * (ml + 1), sizeof(double)); + + if (E == NULL || ec == NULL) + exit(EXIT_FAILURE); + + { + int i; + + /* Initialize E to point to correct positions */ + + for (i = 0; i <= ml; i++) { + E[i] = &ec[i * (ml + 1)]; + } + + /* Initialize E for 0-away scores */ + + for (i = 1; i <= ml; i++) { + E[0][i] = 1; + E[i][0] = 0; + } + } + + /* Compute post-Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length. Fill in the equity table. */ + + post_crawford(gr, wpf, ml, E, 0.0, 0.0); + + { + int i; + printf("Post-Crawford:\n"); + for (i = 1; i < ml; ++i) + printf("%6.3f", E[i][1]); + printf("\n"); + for (i = 1; i < ml; ++i) + printf("%6.3f", E[1][i]); + printf("\n"); + } + + + /* Compute Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length, and post-Crawford equities. + * Fill in the table. */ + + crawford(gr, wpf, ml, E); + + /* Compute pre-Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length, and Crawford equities. + * Fill in the table. */ + + pre_crawford(gr, wpf, ml, E); + + /* Print the equity table. Nothing fancy. */ + + { + int i, j; + + printf("Gammon rate %5.4f\n" "Winning %% %5.4f\n\n", gr, wpf); + + + printf("%3s", ""); + + for (i = 1; i <= ml; i++) { + printf("%6d", i); + } + + printf("\n"); + + for (i = 1; i <= ml; i++) { + printf("%3d", i); + for (j = 1; j <= ml; j++) + printf("%6.3f", E[i][j]); + printf("\n"); + } + } + + free(ec); + free(E); +} + +#else /* MEC_STANDALONE */ + +extern void +mec_pc(const float rGammonRate, + const float rFreeDrop2Away, const float rFreeDrop4Away, const float rWinRate, float arMetPC[MAXSCORE]) +{ + + unsigned int i; + + /* match length */ + + const unsigned int ml = 64; + + /* gammon rate, i.e. how many of games won/lost will be gammons */ + + double gr = rGammonRate; + + /* Here one could argue for different approaches. Does the underdog + * in match (current score) have different gammon rate. Or does the + * underdog in match (equity at current score) have different gammon + * rate. This could be solved, but for now, we assume same rates. */ + + /* winning percentage for favorite in one game. NB: when one player + * is favorite, there is no symmetry in the equity table! I.e. + * E[i][1] = 1 - E[1][i] doesn't necessarily hold. This figure must + * be higher than or equal to .5, i.e. 50% */ + + double wpf = rWinRate; + + /* Equity chart, E[p][o] = equity for p when p is p away, and o is o away. + * If there is a game favorite, i.e. wpf > 0.5, p above is considered + * to be the favorite in each game. For now we also assume no free drop + * vigourish. This will only affect the computation of post-Crawford + * equities, and is quite easy to correct. */ + + double **E = (double **) malloc((ml + 1) * sizeof(double *)); + + double *ec = (double *) calloc((ml + 1) * (ml + 1), sizeof(double)); + + if (!E || !ec) + exit(-1); /* We're in trouble... */ + + { + + /* Initialize E to point to correct positions */ + + for (i = 0; i <= ml; i++) { + E[i] = &ec[i * (ml + 1)]; + } + + /* Initialize E for 0-away scores */ + + for (i = 1; i <= ml; i++) { + E[0][i] = 1; + E[i][0] = 0; + } + } + + /* Compute post-Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length. Fill in the equity table. */ + + post_crawford(gr, wpf, ml, E, (double) rFreeDrop2Away, (double) rFreeDrop4Away); + + /* save post Crawford equities */ + + for (i = 0; i < ml; ++i) + arMetPC[i] = (float) E[i + 1][1]; + + /* garbage collect */ + + free(ec); + free(E); +} + + +extern void +mec(const float rGammonRate, const float rWinRate, + /* const *//*lint -e{818} */ float aarMetPC[2][MAXSCORE], + float aarMet[MAXSCORE][MAXSCORE]) +{ + + unsigned int i, j; + + /* match length */ + + const unsigned int ml = 64; + + /* gammon rate, i.e. how many of games won/lost will be gammons */ + + double gr = rGammonRate; + + /* Here one could argue for different approaches. Does the underdog + * in match (current score) have different gammon rate. Or does the + * underdog in match (equity at current score) have different gammon + * rate. This could be solved, but for now, we assume same rates. */ + + /* winning percentage for favorite in one game. NB: when one player + * is favorite, there is no symmetry in the equity table! I.e. + * E[i][1] = 1 - E[1][i] doesn't necessarily hold. This figure must + * be higher than or equal to .5, i.e. 50% */ + + double wpf = rWinRate; + + /* Equity chart, E[p][o] = equity for p when p is p away, and o is o away. + * If there is a game favorite, i.e. wpf > 0.5, p above is considered + * to be the favorite in each game. For now we also assume no free drop + * vigourish. This will only affect the computation of post-Crawford + * equities, and is quite easy to correct. */ + + double **E = (double **) malloc((ml + 1) * sizeof(double *)); + + double *ec = (double *) calloc((ml + 1) * (ml + 1), sizeof(double)); + + if (!E || !ec) + exit(-1); /* We're in trouble... */ + + { + + /* Initialize E to point to correct positions */ + + for (i = 0; i <= ml; i++) { + E[i] = &ec[i * (ml + 1)]; + } + + /* Initialize E for 0-away scores */ + + for (i = 1; i <= ml; i++) { + E[0][i] = 1; + E[i][0] = 0; + } + } + + /* Compute post-Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length. Fill in the equity table. */ + + for (i = 0; i < ml; ++i) + E[i + 1][1] = aarMetPC[0][i]; + + for (i = 0; i < ml; ++i) + E[1][i + 1] = 1.0 - (double)aarMetPC[1][i]; + + /* Compute Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length, and post-Crawford equities. + * Fill in the table. */ + + crawford(gr, wpf, ml, E); + + /* Compute pre-Crawford equities, given gammon rate, winning percentage + * for favorite (game), match length, and Crawford equities. + * Fill in the table. */ + + pre_crawford(gr, wpf, ml, E); + + /* save the match equiy table */ + + for (i = 0; i < ml; ++i) + for (j = 0; j < ml; ++j) + aarMet[i][j] = (float) E[i + 1][j + 1]; + + /* garbage collect */ + + free(ec); + free(E); +} + +#endif /* ! MEC_STANDALONE */ + +/* If last bit is zero, then x is even. */ +#define even(x) (((x)&0x1)==0) + +/* sq returns x if x is greater than zero, else it returns zero. */ +#define sq(x) ((x)>0?(x):0) + +static void +post_crawford(double gr, double wpf, int ml, /*lint -e{818} */ double **E, + double fd2, double fd4) +{ + int i; + + E[1][1] = wpf; + + for (i = 2; i <= ml; i++) { + if (even(i)) { + /* Free drop condition exists */ + E[1][i] = E[1][i - 1]; + E[i][1] = E[i - 1][1]; + /* jth: add empirical values for free drop */ + if (i == 2) { + /* 2-away */ + E[1][i] += fd2; + E[i][1] -= fd2; + } else if (i == 4) { + /* 4-away */ + E[1][i] += fd4; + E[i][1] += fd4; + } + } else { + E[1][i] = /* Equity for favorite when 1-away, i-away */ + E[0][i] * wpf /* Favorite wins */ + + E[1][sq(i - 2)] * (1 - wpf) * (1 - gr) /* Favorite loses single */ + +E[1][sq(i - 4)] * (1 - wpf) * gr; /* Favorite loses gammon */ + + E[i][1] = /* Equity for favorite when i-away, 1-away */ + E[i][0] * (1 - wpf) /* Favorite loses */ + +E[sq(i - 2)][1] * wpf * (1 - gr) /* Favorite wins single */ + +E[sq(i - 4)][1] * wpf * gr; /* Favorite wins gammon */ + } + } +} + +static void +crawford(double gr, double wpf, int ml, /*lint -e{818} */ double **E) +{ + int i; + + /* Compute Crawford equities. Do this backwards, since + * we overwrite post-Crawford equities with Crawford equities. + * In this way we only overwrite equities no longer needed. */ + + for (i = ml; i >= 2; i--) { + E[1][i] = /* Equity for favorite when 1-away,i-away */ + E[0][i] * wpf /* Favorite wins */ + + E[1][i - 1] * (1 - wpf) * (1 - gr) /* Favorite loses single */ + +E[1][i - 2] * (1 - wpf) * gr; /* Favorite loses gammon */ + + E[i][1] = /* Equity for favorite when i-away, 1-away */ + E[i][0] * (1 - wpf) /* Favorite loses */ + +E[i - 1][1] * wpf * (1 - gr) /* Favorite wins single */ + +E[i - 2][1] * wpf * gr; /* Favorite wins gammon */ + } +} + +static void +pre_crawford(double gr, double wpf, int ml, double **E) +{ + int i, j; + dp dpf, dpu; + double eq; + + for (i = 2; i <= ml; i++) + for (j = i; j <= ml; j++) { + dpf = dpt(i, j, 2, gr, wpf, E); + dpu = dpt(j, i, 2, gr, 1 - wpf, E); + + dpu.e = 1 - dpu.e; + dpu.w = 1 - dpu.w; + + eq = dpu.e + (dpf.e - dpu.e) * (wpf - dpu.w) / (dpf.w - dpu.w); + + E[i][j] = eq; + + if (i != j) { + dpf = dpt(j, i, 2, gr, wpf, E); + dpu = dpt(i, j, 2, gr, 1 - wpf, E); + + dpu.e = 1 - dpu.e; + dpu.w = 1 - dpu.w; + + eq = dpu.e + (dpf.e - dpu.e) * (wpf - dpu.w) / (dpf.w - dpu.w); + + E[j][i] = eq; + } + } +} + +/* Compute point when p doubles o to c, assuming gammon rate gr, + * p wins wpp % of games, and equities E for favorite. At this + * point o does equally well passing the double as taking it. */ + +static dp +dpt(int p, int o, int c, double gr, double wpp, double **E) +{ + dp dpo, dpp; + double e0, edp, wdp; + + if (p <= c / 2) { + /* No reason for p to double o, since a single win + * is enough to win the match. */ + + dpp.e = 1; + dpp.w = 1; + return dpp; + } + + /* p might double o to c since he needs more than a single + * game to win the match. */ + + /* Find out when o (re)doubles p to 2*c */ + + dpo = dpt(o, p, 2 * c, gr, 1 - wpp, E); + + /* Find out equity for o if p does well and wins + * all games here (assuming no recube from o), i.e. + * o loses all games sitting on a c-cube. */ + + if (wpp > 0.5) { + /* o isn't game favorite, equity for o at o-away x-away is 1 - E[x][o]. */ + + e0 = (1 - E[sq(p - c)][o]) * (1 - gr) + + (1 - E[sq(p - 2 * c)][o]) * gr; + } else { + /* o is game favorite, equity for o at o-away x-away is E[o][x]. */ + + e0 = E[o][sq(p - c)] * (1 - gr) + + E[o][sq(p - 2 * c)] * gr; + } + + /* Find out o:s equity if o passes the double to c, i.e. loses c / 2 points. */ + + if (wpp > 0.5) { + /* o isn't game favorite, equity for o at o-away x-away is 1 - E[x][o]. */ + + edp = 1 - E[sq(p - c / 2)][o]; + } else { + /* o is game favorite, equity for o at o-away x-away is E[o][x]. */ + + edp = E[o][sq(p - c / 2)]; + } + + /* Find the winning percentage, which on the line from + * (w0?,e0) to (dpo.w,dpo.e) gives o an equity equal to O's + * equity passing the double to c (i.e. losing c / 2 pts) */ + + wdp = (edp - e0) * dpo.w / (dpo.e - e0); + + /* Now we know when p should double o, expressed as + * winning percentage and equity for o. Return this + * expressed in figures for p */ + + dpp.e = 1 - edp; + dpp.w = 1 - wdp; + return dpp; +} diff --git a/engine/gnubg/mec.h b/engine/gnubg/mec.h new file mode 100644 index 0000000..0ae8a80 --- /dev/null +++ b/engine/gnubg/mec.h @@ -0,0 +1,33 @@ +/* + * Copyright (C) 1999-2002 Joern Thyssen + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#ifndef MEC_H +#define MEC_H + +#include "matchequity.h" + +extern void +mec(float rGammonRate, float rWinRate, + float aarMetPC[2][MAXSCORE], + float aarMet[MAXSCORE][MAXSCORE]); + +extern void +mec_pc(float rGammonRate, + float rFreeDrop2Away, float rFreeDrop4Away, float rWinRate, float arMetPC[MAXSCORE]); + +#endif /* MEC_H */ diff --git a/engine/gnubg/movefilters.inc b/engine/gnubg/movefilters.inc new file mode 100644 index 0000000..9f4a03c --- /dev/null +++ b/engine/gnubg/movefilters.inc @@ -0,0 +1,31 @@ +/* + * Copyright (C) 1998-2003 Gary Wong + * Copyright (C) 1999-2025 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* Default movefilters */ + +#define MOVEFILTER_NORMAL \ + { { { .Accept = 0, .Extra = 12, .Threshold = 0.24f }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 12, .Threshold = 0.24f }, { .Accept = 0, .Extra = 6, .Threshold = 0.12f }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 16, .Threshold = 0.32f }, { .Accept = 0, .Extra = 8, .Threshold = 0.16f }, { .Accept = 0, .Extra = 4, .Threshold = 0.06f }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 16, .Threshold = 0.32f }, { .Accept = 0, .Extra = 12, .Threshold = 0.16f }, { .Accept = 0, .Extra = 6, .Threshold = 0.08f }, { .Accept = 0, .Extra = 4, .Threshold = 0.06f } } } + +#define MOVEFILTER_LARGE \ + { { { .Accept = 0, .Extra = 16, .Threshold = 0.32f }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 16, .Threshold = 0.32f }, { .Accept = 0, .Extra = 8, .Threshold = 0.16f }, { .Accept = 0, .Extra = 0 }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 24, .Threshold = 0.40f }, { .Accept = 0, .Extra = 12, .Threshold = 0.20f }, { .Accept = 0, .Extra = 6, .Threshold = 0.08f }, { .Accept = 0, .Extra = 0 } }, \ + { { .Accept = 0, .Extra = 32, .Threshold = 0.40f }, { .Accept = 0, .Extra = 16, .Threshold = 0.20f }, { .Accept = 0, .Extra = 8, .Threshold = 0.10f }, { .Accept = 0, .Extra = 6, .Threshold = 0.08f } } } diff --git a/engine/gnubg/mtsupport.c b/engine/gnubg/mtsupport.c new file mode 100644 index 0000000..8914217 --- /dev/null +++ b/engine/gnubg/mtsupport.c @@ -0,0 +1,313 @@ +/* + * Copyright (C) 2007-2009 Jon Kinsey + * Copyright (C) 2007-2018 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * Multithreaded support functions, moved out of multithread.c + */ + +#include "config.h" +#include "multithread.h" + +#include +#if defined (DEBUG_MULTITHREADED) +#include +#endif +#include + +#include "lib/simd.h" + +SSE_ALIGN(ThreadData td); + +extern ThreadLocalData * +MT_CreateThreadLocalData(int id) +{ + ThreadLocalData *tld = (ThreadLocalData *) g_malloc(sizeof(ThreadLocalData)); + tld->id = id; + tld->pnnState = (NNState *) g_malloc(sizeof(NNState) * 3); + tld->pnnState[CLASS_RACE - CLASS_RACE].savedBase = g_malloc0(nnRace.cHidden * sizeof(float)); + tld->pnnState[CLASS_RACE - CLASS_RACE].savedIBase = g_malloc0(nnRace.cInput * sizeof(float)); + tld->pnnState[CLASS_CRASHED - CLASS_RACE].savedBase = g_malloc0(nnCrashed.cHidden * sizeof(float)); + tld->pnnState[CLASS_CRASHED - CLASS_RACE].savedIBase = g_malloc0(nnCrashed.cInput * sizeof(float)); + tld->pnnState[CLASS_CONTACT - CLASS_RACE].savedBase = g_malloc0(nnContact.cHidden * sizeof(float)); + tld->pnnState[CLASS_CONTACT - CLASS_RACE].savedIBase = g_malloc0(nnContact.cInput * sizeof(float)); + + tld->aMoves = (move *) g_malloc0(sizeof(move) * MAX_INCOMPLETE_MOVES); + return tld; +} + +#if defined(USE_MULTITHREAD) + +#if defined(DEBUG_MULTITHREADED) && defined(WIN32) +unsigned int mainThreadID; +#endif + +static GMutex condMutex; /* Extra mutex needed for waiting */ + +static GPrivate private_item = G_PRIVATE_INIT(free); + +extern void +TLSCreate(TLSItem * pItem) +{ + *pItem = &private_item; +} + +extern void +TLSSetValue(TLSItem pItem, size_t value) +{ + size_t *pNew = (size_t *) g_malloc(sizeof(size_t)); + *pNew = value; + g_private_set(pItem, (gpointer) pNew); +} + +extern void +InitManualEvent(ManualEvent * pME) +{ + ManualEvent pNewME = g_malloc(sizeof(*pNewME)); + + g_cond_init(&pNewME->cond); + pNewME->signalled = FALSE; + *pME = pNewME; +} + +extern void +FreeManualEvent(ManualEvent ME) +{ + g_cond_clear(&ME->cond); + g_free(ME); +} + +extern void +WaitForManualEvent(ManualEvent ME) +{ + gint64 end_time; + + multi_debug("wait for manual event asks lock (condMutex)"); + + g_mutex_lock(&condMutex); + end_time = g_get_monotonic_time() + 10 * G_TIME_SPAN_SECOND; + + multi_debug("wait for manual event gets lock (condMutex)"); + + while (!ME->signalled) { + multi_debug("waiting for manual event"); + + if (!g_cond_wait_until(&ME->cond, &condMutex, end_time)) + break; + else { + multi_debug("still waiting for manual event"); + } + } + + g_mutex_unlock(&condMutex); + multi_debug("wait for manual event unlocks (condMutex)"); +} + +extern void +ResetManualEvent(ManualEvent ME) +{ + multi_debug("reset manual event asks lock (condMutex)"); + g_mutex_lock(&condMutex); + multi_debug("reset manual event gets lock (condMutex)"); + + ME->signalled = FALSE; + g_mutex_unlock(&condMutex); + multi_debug("reset manual event unlocks (condMutex)"); +} + +extern void +SetManualEvent(ManualEvent ME) +{ + multi_debug("set manual event asks lock (condMutex)"); + g_mutex_lock(&condMutex); + multi_debug("set manual event gets lock (condMutex)"); + + ME->signalled = TRUE; + g_cond_broadcast(&ME->cond); + + g_mutex_unlock(&condMutex); + multi_debug("set manual event unlocks (condMutex)"); +} + +extern void +InitMutex(Mutex * pMutex) +{ + g_mutex_init(pMutex); +} + +extern void +FreeMutex(Mutex * mutex) +{ + g_assert(MT_GetThreadID() == -1); + g_mutex_clear(mutex); +} + +extern void +Mutex_Lock(Mutex * mutex) +{ + g_mutex_lock(mutex); +} + +extern void +Mutex_Release(Mutex * mutex) +{ + g_mutex_unlock(mutex); +} + +extern void +MT_InitThreads(void) +{ + td.tasks = NULL; + MT_SafeSet(&td.doneTasks, 0); + td.addedTasks = 0; + td.totalTasks = -1; + InitManualEvent(&td.activity); + TLSCreate(&td.tlsItem); + TLSSetValue(td.tlsItem, (size_t) MT_CreateThreadLocalData(-1)); + +#if defined(DEBUG_MULTITHREADED) && defined(WIN32) + mainThreadID = GetCurrentThreadId(); +#endif + InitMutex(&td.multiLock); + InitMutex(&td.queueLock); + InitManualEvent(&td.syncStart); + InitManualEvent(&td.syncEnd); + td.numThreads = 0; +} + +extern void +CloseThread(void *UNUSED(unused)) +{ + ThreadLocalData *pTLD; + NNState *pnnState; + + g_assert(MT_SafeCompare(&td.closingThreads, TRUE)); + + pTLD = (ThreadLocalData *) TLSGet(td.tlsItem); + pnnState = pTLD->pnnState; + + g_free(pTLD->aMoves); + + for (int i = 0; i < 3; i++) { + g_free(pnnState[i].savedBase); + g_free(pnnState[i].savedIBase); + } + + g_free(pnnState); + g_free(pTLD); + + MT_SafeInc(&td.result); +} + +extern void +MT_Close(void) +{ + MT_CloseThreads(); + + FreeManualEvent(td.activity); + FreeMutex(&td.multiLock); + FreeMutex(&td.queueLock); + + FreeManualEvent(td.syncStart); + FreeManualEvent(td.syncEnd); +} + +extern void +MT_Exclusive(void) +{ + multi_debug("exclusive asks lock (multiLock)"); + Mutex_Lock(&td.multiLock); + multi_debug("exclusive gets lock (multiLock)"); +} + +extern void +MT_Release(void) +{ + Mutex_Release(&td.multiLock); + multi_debug("release unlocks (multiLock)"); +} + +#if defined(DEBUG_MULTITHREADED) +extern void +multi_debug(const char *str, ...) +{ + int id; + va_list vl; + char tn[5]; + char buf[1024]; + + /* Sync output so order makes some sense */ +#if defined(WIN32) + WaitForSingleObject(td.multiLock, INFINITE); +#endif + /* With glib threads, locking here doesn't seem to work : + * GLib (gthread-posix.c): Unexpected error from C library during 'pthread_mutex_lock': Resource deadlock avoided. Aborting. + * Timestamp the output instead. + * Maybe the g_get_*_time() calls will sync output as well anyway... */ + + va_start(vl, str); + vsprintf(buf, str, vl); + + id = MT_GetThreadID(); +#if defined(WIN32) + if (id == -1 && GetCurrentThreadId() == mainThreadID) +#else + if (id == -1) +#endif + strcpy(tn, "MT"); + else + sprintf(tn, "T%d", id); + + printf("%" G_GINT64_FORMAT " %s: %s\n", g_get_monotonic_time(), tn, buf); + + va_end(vl); + +#if defined(WIN32) + ReleaseMutex(td.multiLock); +#endif +} + +#endif + +#else /* !defined(USE_MULTITHREAD) */ + +extern void +MT_InitThreads(void) +{ + td.tld = MT_CreateThreadLocalData(-1); +} + +extern void +MT_Close(void) +{ + int i; + NNState *pnnState; + + if (!td.tld) + return; + + g_free(td.tld->aMoves); + pnnState = td.tld->pnnState; + for (i = 0; i < 3; i++) { + g_free(pnnState[i].savedBase); + g_free(pnnState[i].savedIBase); + } + g_free(pnnState); + g_free(td.tld); +} + +#endif diff --git a/engine/gnubg/positionid.c b/engine/gnubg/positionid.c new file mode 100644 index 0000000..05f874e --- /dev/null +++ b/engine/gnubg/positionid.c @@ -0,0 +1,539 @@ +/* + * Copyright (C) 1998-2002 Gary Wong + * Copyright (C) 2000-2014 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * + * An implementation of the legacy position key/ID described at: + * https://www.gnu.org/software/gnubg/manual/gnubg.html#gnubg-tech_postionid + * + * This encoding creates IDs as compact as possible. + * + * For internal use in moves generation and evaluation we now use another + * key, much faster to encode or decode, that is essentially the raw board + * squeezed down to 4 bits/point. + * + * This library also calculates bearoff IDs, which are enumerations of the + * + * c+6 + * C + * 6 + * + * combinations of (up to c) chequers among 6 points. + * + * + * $Id: positionid.c,v 1.56 2021/01/26 22:09:24 plm Exp $ + */ + +#include "config.h" +#include +#include +#include +#include "positionid.h" + +extern void +PositionKey(const TanBoard anBoard, positionkey * pkey) +{ + unsigned int i, j; + unsigned int *anpBoard = pkey->data; + + for (i = 0, j = 0; i < 3; i++, j += 8) { + anpBoard[i] = anBoard[1][j] + (anBoard[1][j + 1] << 4) + + (anBoard[1][j + 2] << 8) + (anBoard[1][j + 3] << 12) + + (anBoard[1][j + 4] << 16) + (anBoard[1][j + 5] << 20) + + (anBoard[1][j + 6] << 24) + (anBoard[1][j + 7] << 28); + anpBoard[i + 3] = anBoard[0][j] + (anBoard[0][j + 1] << 4) + + (anBoard[0][j + 2] << 8) + (anBoard[0][j + 3] << 12) + + (anBoard[0][j + 4] << 16) + (anBoard[0][j + 5] << 20) + + (anBoard[0][j + 6] << 24) + (anBoard[0][j + 7] << 28); + } + anpBoard[6] = anBoard[0][24] + (anBoard[1][24] << 4); +} + +extern void +PositionFromKey(TanBoard anBoard, const positionkey * pkey) +{ + unsigned int i, j; + unsigned int const *anpBoard = pkey->data; + + for (i = 0, j = 0; i < 3; i++, j += 8) { + anBoard[1][j] = anpBoard[i] & 0x0f; + anBoard[1][j + 1] = (anpBoard[i] >> 4) & 0x0f; + anBoard[1][j + 2] = (anpBoard[i] >> 8) & 0x0f; + anBoard[1][j + 3] = (anpBoard[i] >> 12) & 0x0f; + anBoard[1][j + 4] = (anpBoard[i] >> 16) & 0x0f; + anBoard[1][j + 5] = (anpBoard[i] >> 20) & 0x0f; + anBoard[1][j + 6] = (anpBoard[i] >> 24) & 0x0f; + anBoard[1][j + 7] = (anpBoard[i] >> 28) & 0x0f; + + anBoard[0][j] = anpBoard[i + 3] & 0x0f; + anBoard[0][j + 1] = (anpBoard[i + 3] >> 4) & 0x0f; + anBoard[0][j + 2] = (anpBoard[i + 3] >> 8) & 0x0f; + anBoard[0][j + 3] = (anpBoard[i + 3] >> 12) & 0x0f; + anBoard[0][j + 4] = (anpBoard[i + 3] >> 16) & 0x0f; + anBoard[0][j + 5] = (anpBoard[i + 3] >> 20) & 0x0f; + anBoard[0][j + 6] = (anpBoard[i + 3] >> 24) & 0x0f; + anBoard[0][j + 7] = (anpBoard[i + 3] >> 28) & 0x0f; + } + anBoard[0][24] = anpBoard[6] & 0x0f; + anBoard[1][24] = (anpBoard[6] >> 4) & 0x0f; +} + +/* In evaluations, the function above is often followed by swapping + * the board. This is expensive (SwapSides is about as costly as + * PositionFromKey itself). + * Provide one that fills the board already swapped. */ + +extern void +PositionFromKeySwapped(TanBoard anBoard, const positionkey * pkey) +{ + unsigned int i, j; + unsigned int const *anpBoard = pkey->data; + + for (i = 0, j = 0; i < 3; i++, j += 8) { + anBoard[0][j] = anpBoard[i] & 0x0f; + anBoard[0][j + 1] = (anpBoard[i] >> 4) & 0x0f; + anBoard[0][j + 2] = (anpBoard[i] >> 8) & 0x0f; + anBoard[0][j + 3] = (anpBoard[i] >> 12) & 0x0f; + anBoard[0][j + 4] = (anpBoard[i] >> 16) & 0x0f; + anBoard[0][j + 5] = (anpBoard[i] >> 20) & 0x0f; + anBoard[0][j + 6] = (anpBoard[i] >> 24) & 0x0f; + anBoard[0][j + 7] = (anpBoard[i] >> 28) & 0x0f; + + anBoard[1][j] = anpBoard[i + 3] & 0x0f; + anBoard[1][j + 1] = (anpBoard[i + 3] >> 4) & 0x0f; + anBoard[1][j + 2] = (anpBoard[i + 3] >> 8) & 0x0f; + anBoard[1][j + 3] = (anpBoard[i + 3] >> 12) & 0x0f; + anBoard[1][j + 4] = (anpBoard[i + 3] >> 16) & 0x0f; + anBoard[1][j + 5] = (anpBoard[i + 3] >> 20) & 0x0f; + anBoard[1][j + 6] = (anpBoard[i + 3] >> 24) & 0x0f; + anBoard[1][j + 7] = (anpBoard[i + 3] >> 28) & 0x0f; + } + anBoard[1][24] = anpBoard[6] & 0x0f; + anBoard[0][24] = (anpBoard[6] >> 4) & 0x0f; +} + +static inline void +addBits(unsigned char auchKey[10], unsigned int bitPos, unsigned int nBits) +{ + unsigned int k = bitPos / 8; + unsigned int r = (bitPos & 0x7); + unsigned int b = (((unsigned int) 0x1 << nBits) - 1) << r; + + auchKey[k] |= (unsigned char) b; + + if (k < 8) { + auchKey[k + 1] |= (unsigned char) (b >> 8); + auchKey[k + 2] |= (unsigned char) (b >> 16); + } else if (k == 8) { + auchKey[k + 1] |= (unsigned char) (b >> 8); + } +} + +extern void +oldPositionKey(const TanBoard anBoard, oldpositionkey * pkey) +{ + unsigned int i, iBit = 0; + const unsigned int *j; + + memset(pkey, 0, sizeof(oldpositionkey)); + + for (i = 0; i < 2; ++i) { + const unsigned int *const b = anBoard[i]; + for (j = b; j < b + 25; ++j) { + const unsigned int nc = *j; + + if (nc) { + addBits(pkey->auch, iBit, nc); + iBit += nc + 1; + } else { + ++iBit; + } + } + } +} + +extern void +oldPositionFromKey(TanBoard anBoard, const oldpositionkey * pkey) +{ + int i = 0, j = 0, k; + const unsigned char *a; + + memset(anBoard[0], 0, sizeof(anBoard[0])); + memset(anBoard[1], 0, sizeof(anBoard[1])); + + for (a = pkey->auch; a < pkey->auch + 10; ++a) { + unsigned char cur = *a; + + for (k = 0; k < 8; ++k) { + if ((cur & 0x1)) { + if (i >= 2 || j >= 25) { /* Error, so return - will probably show error message */ + return; + } + ++anBoard[i][j]; + } else { + if (++j == 25) { + ++i; + j = 0; + } + } + cur >>= 1; + } + } +} + + +static char * +oldPositionIDFromKey(const oldpositionkey * pkey) +{ + unsigned char const *puch = pkey->auch; + static char szID[L_POSITIONID + 1]; + char *pch = szID; + static const char aszBase64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + int i; + + for (i = 0; i < 3; i++) { + *pch++ = aszBase64[puch[0] >> 2]; + *pch++ = aszBase64[((puch[0] & 0x03) << 4) | (puch[1] >> 4)]; + *pch++ = aszBase64[((puch[1] & 0x0F) << 2) | (puch[2] >> 6)]; + *pch++ = aszBase64[puch[2] & 0x3F]; + + puch += 3; + } + + *pch++ = aszBase64[*puch >> 2]; + *pch++ = aszBase64[(*puch & 0x03) << 4]; + + *pch = 0; + + return szID; +} + +extern char * +PositionIDFromKey(const positionkey * pkey) +{ + TanBoard anBoard; + oldpositionkey okey; + + PositionFromKey(anBoard, pkey); + oldPositionKey((ConstTanBoard) anBoard, &okey); + + return oldPositionIDFromKey(&okey); +} + +extern char * +PositionID(const TanBoard anBoard) +{ + oldpositionkey key; + + oldPositionKey(anBoard, &key); + + return oldPositionIDFromKey(&key); +} + +extern int +PositionFromXG(TanBoard anBoard, const char *pos) +{ + int i; + + for (i = 0; i < 26; i++) { + int p0, p1; + + if (i == 0) { + p0 = 24; + p1 = -1; + } else if (i == 25) { + p0 = -1; + p1 = 24; + } else { + p0 = 24 - i; + p1 = i - 1; + } + + if (pos[i] >= 'A' && pos[i] <= 'P') { + if (p0 > -1) + anBoard[0][p0] = 0; + anBoard[1][p1] = (unsigned int) (pos[i] - 'A' + 1); + } else if (pos[i] >= 'a' && pos[i] <= 'p') { + anBoard[0][p0] = (unsigned int) (pos[i] - 'a' + 1); + if (p1 > -1) + anBoard[1][p1] = 0; + } else if (pos[i] == '-') { + if (p0 > -1) + anBoard[0][p0] = 0; + if (p1 > -1) + anBoard[1][p1] = 0; + } else { + return 1; + } + } + return 0; +} + +extern int +CheckPosition(const TanBoard anBoard) +{ + unsigned int ac[2], i; + + /* Check for a player with over 15 chequers */ + for (i = ac[0] = ac[1] = 0; i < 25; i++) + if ((ac[0] += anBoard[0][i]) > 15 || (ac[1] += anBoard[1][i]) > 15) { + errno = EINVAL; + return 0; + } + + /* Check for both players having chequers on the same point */ + for (i = 0; i < 24; i++) + if (anBoard[0][i] && anBoard[1][23 - i]) { + errno = EINVAL; + return 0; + } + + /* Check for both players on the bar against closed boards */ + for (i = 0; i < 6; i++) + if (anBoard[0][i] < 2 || anBoard[1][i] < 2) + return 1; + + if (!anBoard[0][24] || !anBoard[1][24]) + return 1; + + errno = EINVAL; + return 0; +} + +extern void +ClosestLegalPosition(TanBoard anBoard) +{ + unsigned int i, j, ac[2]; + + /* Limit each player to 15 chequers */ + for (i = 0; i < 2; i++) { + ac[i] = 15; + for (j = 0; j < 25; j++) { + if (anBoard[i][j] <= ac[i]) + ac[i] -= anBoard[i][j]; + else { + anBoard[i][j] = ac[i]; + ac[i] = 0; + } + } + } + + /* Forbid both players having a chequer on the same point */ + for (i = 0; i < 24; i++) + if (anBoard[0][i]) + anBoard[1][23 - i] = 0; + + /* If both players have closed boards, let at least one of them off + * the bar */ + for (i = 0; i < 6; i++) + if (anBoard[0][i] < 2 || anBoard[1][i] < 2) + /* open board */ + return; + + if (anBoard[0][24]) + anBoard[1][24] = 0; +} + +extern unsigned char +Base64(const unsigned char ch) +{ + if (ch >= 'A' && ch <= 'Z') + return (unsigned char)(ch - 'A'); + + if (ch >= 'a' && ch <= 'z') + return (unsigned char)(ch - 'a' + 26); + + if (ch >= '0' && ch <= '9') + return (unsigned char)(ch - '0' + 52); + + if (ch == '+') + return 62; + + if (ch == '/') + return 63; + + return 255; +} + +extern int +PositionFromID(TanBoard anBoard, const char *pchEnc) +{ + oldpositionkey key; + unsigned char ach[L_POSITIONID + 1], *pch = ach, *puch = key.auch; + int i; + + memset(ach, 0, L_POSITIONID + 1); + + for (i = 0; i < L_POSITIONID && pchEnc[i]; i++) + pch[i] = Base64((unsigned char) pchEnc[i]); + + for (i = 0; i < 3; i++) { + *puch++ = (unsigned char) (pch[0] << 2) | (pch[1] >> 4); + *puch++ = (unsigned char) (pch[1] << 4) | (pch[2] >> 2); + *puch++ = (unsigned char) (pch[2] << 6) | pch[3]; + + pch += 4; + } + + *puch = (unsigned char) (pch[0] << 2) | (pch[1] >> 4); + + oldPositionFromKey(anBoard, &key); + + return CheckPosition((ConstTanBoard) anBoard); +} + +extern int +EqualBoards(const TanBoard anBoard0, const TanBoard anBoard1) +{ + + int i; + + for (i = 0; i < 25; i++) + if (anBoard0[0][i] != anBoard1[0][i] || anBoard0[1][i] != anBoard1[1][i]) + return 0; + + return 1; +} + +#define MAX_N 40 +#define MAX_R 25 + +static unsigned int anCombination[MAX_N][MAX_R], fCalculated = 0; + +static void +InitCombination(void) +{ + unsigned int i, j; + + for (i = 0; i < MAX_N; i++) + anCombination[i][0] = i + 1; + + for (j = 1; j < MAX_R; j++) + anCombination[0][j] = 0; + + for (i = 1; i < MAX_N; i++) + for (j = 1; j < MAX_R; j++) + anCombination[i][j] = anCombination[i - 1][j - 1] + anCombination[i - 1][j]; + + fCalculated = 1; +} + +extern unsigned int +Combination(const unsigned int n, const unsigned int r) +{ + g_assert(n <= MAX_N && r <= MAX_R); + + if (!fCalculated) + InitCombination(); + + return anCombination[n - 1][r - 1]; +} + +static unsigned int +PositionF(unsigned int fBits, unsigned int n, unsigned int r) +{ + if (n == r) + return 0; + + return (fBits & (1u << (n - 1))) ? Combination(n - 1, r) + + PositionF(fBits, n - 1, r - 1) : PositionF(fBits, n - 1, r); +} + +extern unsigned int +PositionBearoff(const unsigned int anBoard[], unsigned int nPoints, unsigned int nChequers) +{ + unsigned int i, fBits, j; + + if (nPoints == 0) { + g_assert_not_reached(); + return 0; + } + + for (j = nPoints - 1, i = 0; i < nPoints; i++) + j += anBoard[i]; + + fBits = 1u << j; + + for (i = 0; i < nPoints - 1; i++) { + j -= anBoard[i] + 1; + fBits |= (1u << j); + } + + return PositionF(fBits, nChequers + nPoints, nPoints); +} + +static unsigned int +PositionInv(unsigned int nID, unsigned int n, unsigned int r) +{ + unsigned int nC; + + if (!r) + return 0; + else if (n == r) + return (1u << n) - 1; + + nC = Combination(n - 1, r); + + return (nID >= nC) ? (1u << (n - 1)) | PositionInv(nID - nC, n - 1, r - 1) : PositionInv(nID, n - 1, r); +} + +extern void +PositionFromBearoff(unsigned int anBoard[], unsigned int usID, unsigned int nPoints, unsigned int nChequers) +{ + unsigned int fBits = PositionInv(usID, nChequers + nPoints, nPoints); + unsigned int i, j; + + for (i = 0; i < nPoints; i++) + anBoard[i] = 0; + + j = nPoints - 1; + for (i = 0; i < (nChequers + nPoints); i++) { + if (fBits & (1u << i)) { + if (j == 0) + break; + j--; + } else + anBoard[j]++; + } +} + +extern unsigned short +PositionIndex(unsigned int g, const unsigned int anBoard[6]) +{ + unsigned int i, fBits; + unsigned int j; + + if (g == 0) { + g_assert_not_reached(); + return 0; + } + + j = g - 1; + + for (i = 0; i < g; i++) + j += anBoard[i]; + + fBits = 1u << j; + + for (i = 0; i < g - 1; i++) { + j -= anBoard[i] + 1; + fBits |= (1u << j); + } + + /* FIXME: 15 should be replaced by nChequers, but the function is + * only called from bearoffgammon, so this should be fine. */ + return (unsigned short) PositionF(fBits, 15, g); +} diff --git a/engine/gnubg/positionid.h b/engine/gnubg/positionid.h new file mode 100644 index 0000000..c7504f3 --- /dev/null +++ b/engine/gnubg/positionid.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 1998-2002 Gary Wong + * Copyright (C) 2000-2014 the AUTHORS + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef POSITIONID_H +#define POSITIONID_H + +#include "gnubg-types.h" + +#define L_POSITIONID 14 + +extern void PositionKey(const TanBoard anBoard, positionkey * pkey); +extern char *PositionID(const TanBoard anBoard); +extern char *PositionIDFromKey(const positionkey * pkey); + +extern int PositionFromXG(TanBoard anBoard, const char * pos); + +extern +unsigned int PositionBearoff(const unsigned int anBoard[], unsigned int nPoints, unsigned int nChequers); + +extern void PositionFromKey(TanBoard anBoard, const positionkey * pkey); +extern void PositionFromKeySwapped(TanBoard anBoard, const positionkey * pkey); + +/* Return 1 for success, 0 for invalid id */ +extern int PositionFromID(TanBoard anBoard, const char *pchEnc); + +extern void PositionFromBearoff(unsigned int anBoard[], unsigned int usID, + unsigned int nPoints, unsigned int nChequers); + +extern unsigned short PositionIndex(unsigned int g, const unsigned int anBoard[6]); + +#define EqualKeys(k1, k2) ((k1).data[0]==(k2).data[0]&&(k1).data[1]==(k2).data[1]&&(k1).data[2]==(k2).data[2]&&(k1).data[3]==(k2).data[3]&&(k1).data[4]==(k2).data[4]&&(k1).data[5]==(k2).data[5]&&(k1).data[6]==(k2).data[6]) + +#define CopyKey(ks, kd) (kd).data[0]=(ks).data[0],(kd).data[1]=(ks).data[1],(kd).data[2]=(ks).data[2],(kd).data[3]=(ks).data[3],(kd).data[4]=(ks).data[4],(kd).data[5]=(ks).data[5],(kd).data[6]=(ks).data[6] + +extern int EqualBoards(const TanBoard anBoard0, const TanBoard anBoard1); + +/* Return 1 for valid position, 0 for not */ +extern int CheckPosition(const TanBoard anBoard); + +extern void ClosestLegalPosition(TanBoard anBoard); + +extern unsigned int Combination(unsigned int n, unsigned int r); + +extern unsigned char Base64(unsigned char ch); + +extern void oldPositionFromKey(TanBoard anBoard, const oldpositionkey * pkey); +extern void oldPositionKey(const TanBoard anBoard, oldpositionkey * pkey); + +#endif diff --git a/tests/lint.sh b/tests/lint.sh index 52a9eb0..7631a75 100755 --- a/tests/lint.sh +++ b/tests/lint.sh @@ -29,6 +29,11 @@ for f in "${fichiers[@]}"; do if grep -q $'\r' "$f"; then signaler "$f : fins de ligne Windows (CRLF)" fi + # Copies fidèles de GNU Backgammon (sources et données) : on ne + # reformate pas leurs espaces, pour rester identique à l'original. + case "$f" in + engine/gnubg/* | engine/data/*) continue ;; + esac if grep -nE '[[:blank:]]+$' "$f" >/dev/null; then signaler "$f : espaces en fin de ligne (lignes $(grep -nE '[[:blank:]]+$' "$f" | cut -d: -f1 | paste -sd, -))" fi